Bitcoin Core 32.99.0
P2P Digital Currency
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Static Public Attributes | Static Private Member Functions | Private Attributes | List of all members
CScriptNum Class Reference

#include <script.h>

Public Member Functions

 CScriptNum (const int64_t &n)
 Numeric opcodes (OP_1ADD, etc) are restricted to operating on 4-byte integers.
 
 CScriptNum (const std::vector< unsigned char > &vch, bool fRequireMinimal, const size_t nMaxNumSize=nDefaultMaxNumSize)
 
bool operator== (const int64_t &rhs) const
 
auto operator<=> (const int64_t &rhs) const
 
bool operator== (const CScriptNum &rhs) const
 
auto operator<=> (const CScriptNum &rhs) const
 
CScriptNum operator+ (const int64_t &rhs) const
 
CScriptNum operator- (const int64_t &rhs) const
 
CScriptNum operator+ (const CScriptNum &rhs) const
 
CScriptNum operator- (const CScriptNum &rhs) const
 
CScriptNum & operator+= (const CScriptNum &rhs)
 
CScriptNum & operator-= (const CScriptNum &rhs)
 
CScriptNum operator& (const int64_t &rhs) const
 
CScriptNum operator& (const CScriptNum &rhs) const
 
CScriptNum & operator&= (const CScriptNum &rhs)
 
CScriptNum operator- () const
 
CScriptNum & operator= (const int64_t &rhs)
 
CScriptNum & operator+= (const int64_t &rhs)
 
CScriptNum & operator-= (const int64_t &rhs)
 
CScriptNum & operator&= (const int64_t &rhs)
 
int getint () const
 
int64_t GetInt64 () const
 
std::vector< unsigned char > getvch () const
 

Static Public Member Functions

static std::vector< unsigned char > serialize (const int64_t &value)
 

Static Public Attributes

static constexpr size_t nDefaultMaxNumSize {4}
 

Static Private Member Functions

static int64_t set_vch (const std::vector< unsigned char > &vch)
 

Private Attributes

int64_t m_value
 

Detailed Description

Definition at line 227 of file script.h.

Constructor & Destructor Documentation

◆ CScriptNum() [1/2]

CScriptNum::CScriptNum ( const int64_t &  n)
inlineexplicit

Numeric opcodes (OP_1ADD, etc) are restricted to operating on 4-byte integers.

The semantics are subtle, though: operands must be in the range [-2^31 +1...2^31 -1], but results may overflow (and are valid as long as they are not used in a subsequent numeric operation). CScriptNum enforces those semantics by storing results as an int64 and allowing out-of-range values to be returned as a vector of bytes but throwing an exception if arithmetic is done or the result is interpreted as an integer.

Definition at line 239 of file script.h.

◆ CScriptNum() [2/2]

CScriptNum::CScriptNum ( const std::vector< unsigned char > &  vch,
bool  fRequireMinimal,
const size_t  nMaxNumSize = nDefaultMaxNumSize 
)
inlineexplicit

Definition at line 246 of file script.h.

Here is the call graph for this function:

Member Function Documentation

◆ getint()

int CScriptNum::getint ( ) const
inline

Definition at line 326 of file script.h.

Here is the caller graph for this function:

◆ GetInt64()

int64_t CScriptNum::GetInt64 ( ) const
inline

Definition at line 335 of file script.h.

Here is the caller graph for this function:

◆ getvch()

std::vector< unsigned char > CScriptNum::getvch ( ) const
inline

Definition at line 337 of file script.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator&() [1/2]

CScriptNum CScriptNum::operator& ( const CScriptNum &  rhs) const
inline

Definition at line 288 of file script.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator&() [2/2]

CScriptNum CScriptNum::operator& ( const int64_t &  rhs) const
inline

Definition at line 287 of file script.h.

Here is the call graph for this function:

◆ operator&=() [1/2]

CScriptNum & CScriptNum::operator&= ( const CScriptNum &  rhs)
inline

Definition at line 290 of file script.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator&=() [2/2]

CScriptNum & CScriptNum::operator&= ( const int64_t &  rhs)
inline

Definition at line 320 of file script.h.

Here is the call graph for this function:

◆ operator+() [1/2]

CScriptNum CScriptNum::operator+ ( const CScriptNum &  rhs) const
inline

Definition at line 281 of file script.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator+() [2/2]

CScriptNum CScriptNum::operator+ ( const int64_t &  rhs) const
inline

Definition at line 279 of file script.h.

Here is the call graph for this function:

◆ operator+=() [1/2]

CScriptNum & CScriptNum::operator+= ( const CScriptNum &  rhs)
inline

Definition at line 284 of file script.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator+=() [2/2]

CScriptNum & CScriptNum::operator+= ( const int64_t &  rhs)
inline

Definition at line 304 of file script.h.

Here is the call graph for this function:

◆ operator-() [1/3]

CScriptNum CScriptNum::operator- ( ) const
inline

Definition at line 292 of file script.h.

Here is the call graph for this function:

◆ operator-() [2/3]

CScriptNum CScriptNum::operator- ( const CScriptNum &  rhs) const
inline

Definition at line 282 of file script.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator-() [3/3]

CScriptNum CScriptNum::operator- ( const int64_t &  rhs) const
inline

Definition at line 280 of file script.h.

Here is the call graph for this function:

◆ operator-=() [1/2]

CScriptNum & CScriptNum::operator-= ( const CScriptNum &  rhs)
inline

Definition at line 285 of file script.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator-=() [2/2]

CScriptNum & CScriptNum::operator-= ( const int64_t &  rhs)
inline

Definition at line 312 of file script.h.

Here is the call graph for this function:

◆ operator<=>() [1/2]

auto CScriptNum::operator<=> ( const CScriptNum &  rhs) const
inline

Definition at line 277 of file script.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator<=>() [2/2]

auto CScriptNum::operator<=> ( const int64_t &  rhs) const
inline

Definition at line 274 of file script.h.

Here is the call graph for this function:

◆ operator=()

CScriptNum & CScriptNum::operator= ( const int64_t &  rhs)
inline

Definition at line 298 of file script.h.

Here is the call graph for this function:

◆ operator==() [1/2]

bool CScriptNum::operator== ( const CScriptNum &  rhs) const
inline

Definition at line 276 of file script.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator==() [2/2]

bool CScriptNum::operator== ( const int64_t &  rhs) const
inline

Definition at line 273 of file script.h.

Here is the call graph for this function:

◆ serialize()

static std::vector< unsigned char > CScriptNum::serialize ( const int64_t &  value)
inlinestatic

Definition at line 342 of file script.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_vch()

static int64_t CScriptNum::set_vch ( const std::vector< unsigned char > &  vch)
inlinestaticprivate

Definition at line 376 of file script.h.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ m_value

int64_t CScriptNum::m_value
private

Definition at line 393 of file script.h.

◆ nDefaultMaxNumSize

constexpr size_t CScriptNum::nDefaultMaxNumSize {4}
staticconstexpr

Definition at line 244 of file script.h.


The documentation for this class was generated from the following file: