74 assert(compressed_money_amount <= compressed_money_amount_max);
78 static const uint256 u256_min(
uint256S(
"0000000000000000000000000000000000000000000000000000000000000000"));
79 static const uint256 u256_max(
uint256S(
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"));
80 const std::vector<uint256> v256{u256, u256_min, u256_max};
88 assert(parsed.value() == i64);
114 const unsigned char uch =
static_cast<unsigned char>(u8);
117 const std::set<int64_t> i64s{i64,
static_cast<int64_t
>(u64)};
120 assert(dynamic_usage == incremental_dynamic_usage * i64s.size());
130 assert(parsed.value() == i64);
133 if (i32 >= 0 && i32 <= 16) {
137 const std::chrono::seconds seconds{i64};
141 (void)script_num.
getint();
142 (void)script_num.getvch();
156 const CKeyID key_id{u160};
164 stream >> deserialized_u256;
165 assert(u256 == deserialized_u256 && stream.
empty());
169 stream >> deserialized_u160;
170 assert(u160 == deserialized_u160 && stream.
empty());
172 uint64_t deserialized_u64;
174 stream >> deserialized_u64;
177 int64_t deserialized_i64;
179 stream >> deserialized_i64;
182 uint32_t deserialized_u32;
184 stream >> deserialized_u32;
187 int32_t deserialized_i32;
189 stream >> deserialized_i32;
192 uint16_t deserialized_u16;
194 stream >> deserialized_u16;
197 int16_t deserialized_i16;
199 stream >> deserialized_i16;
202 uint8_t deserialized_u8;
204 stream >> deserialized_u8;
207 int8_t deserialized_i8;
209 stream >> deserialized_i8;
212 char deserialized_ch;
214 stream >> deserialized_ch;
219 stream >> deserialized_b;
242 assert(u32 == deserialized_u32be && stream.
empty());
250 assert(u16 == deserialized_u16be && stream.
empty());
264 }
catch (
const std::ios_base::failure&) {
static constexpr CAmount MAX_MONEY
No amount larger than this (in satoshi) is valid.
bool MoneyRange(const CAmount &nValue)
arith_uint256 UintToArith256(const uint256 &a)
uint256 ArithToUint256(const arith_uint256 &a)
void SelectParams(const std::string &network)
Sets the params returned by Params() to those for the given chain name.
const CChainParams & Params()
Return the currently selected parameters.
#define CHECK_NONFATAL(condition)
Throw a NonFatalCheckError when the condition evaluates to false.
static const std::string REGTEST
const Consensus::Params & GetConsensus() const
Double ended buffer combining vector and stream-like interfaces.
A reference to a CKey: the Hash160 of its serialized public key.
static int DecodeOP_N(opcodetype opcode)
Encode/decode small integers:
static opcodetype EncodeOP_N(int n)
A reference to a CScript: the Hash160 of its serialization (see script.h)
std::vector< T > ConsumeBytes(size_t num_bytes)
const std::string & getValStr() const
256-bit unsigned big integer.
uint32_t GetCompact(bool fNegative=false) const
unsigned int size() const
std::string ToString() const
uint64_t GetLow64() const
std::string GetHex() const
unsigned int bits() const
Returns the position of the highest bit set plus one, or zero if the value is zero.
uint64_t DecompressAmount(uint64_t x)
uint64_t CompressAmount(uint64_t n)
Compress amount.
unsigned int GetSpecialScriptSize(unsigned int nSize)
std::string SighashToStr(unsigned char sighash_type)
UniValue ValueFromAmount(const CAmount amount)
static uint64_t CountBits(uint64_t x)
Return the smallest number n such that (x >> n) == 0 (or 64 if the highest bit in x is set.
void initialize_integer()
FUZZ_TARGET_INIT(integer, initialize_integer)
uint256 ComputeMerkleRoot(std::vector< uint256 > hashes, bool *mutated)
std::optional< CAmount > ParseMoney(const std::string &money_string)
Parse an amount denoted in full coins.
std::string FormatMoney(const CAmount n)
Money parsing/formatting utilities.
static size_t DynamicUsage(const int8_t &v)
Dynamic memory usage for built-in types is zero.
static size_t IncrementalDynamicUsage(const std::set< X, Y > &s)
unsigned int nBytesPerSigOp
int64_t GetVirtualTransactionSize(int64_t nWeight, int64_t nSigOpCost, unsigned int bytes_per_sigop)
Compute the virtual transaction size (weight reinterpreted as bytes).
bool CheckProofOfWork(uint256 hash, unsigned int nBits, const Consensus::Params ¶ms)
Check whether a block hash satisfies the proof-of-work requirement specified by nBits.
static bool HasAllDesirableServiceFlags(ServiceFlags services)
A shortcut for (services & GetDesirableServiceFlags(services)) == GetDesirableServiceFlags(services),...
ServiceFlags
nServices flags
static bool MayHaveUsefulAddressDB(ServiceFlags services)
Checks if a peer with the given service flags may be capable of having a robust address-storage DB.
uint8_t ser_readdata8(Stream &s)
void ser_writedata32be(Stream &s, uint32_t obj)
void ser_writedata32(Stream &s, uint32_t obj)
unsigned int GetSizeOfCompactSize(uint64_t nSize)
Compact Size size < 253 – 1 byte size <= USHRT_MAX – 3 bytes (253 + 2 bytes) size <= UINT_MAX – 5 byt...
void ser_writedata16(Stream &s, uint16_t obj)
void ser_writedata16be(Stream &s, uint16_t obj)
uint16_t ser_readdata16(Stream &s)
uint64_t ser_readdata64(Stream &s)
void ser_writedata8(Stream &s, uint8_t obj)
uint64_t ReadCompactSize(Stream &is, bool range_check=true)
Decode a CompactSize-encoded variable-length integer.
uint32_t ser_readdata32(Stream &s)
uint16_t ser_readdata16be(Stream &s)
void ser_writedata64(Stream &s, uint64_t obj)
uint32_t ser_readdata32be(Stream &s)
void WriteCompactSize(CSizeComputer &os, uint64_t nSize)
uint64_t SipHashUint256Extra(uint64_t k0, uint64_t k1, const uint256 &val, uint32_t extra)
uint64_t SipHashUint256(uint64_t k0, uint64_t k1, const uint256 &val)
Optimized SipHash-2-4 implementation for uint256.
std::string ToLower(const std::string &str)
Returns the lowercase equivalent of the given string.
signed char HexDigit(char c)
std::string ToUpper(const std::string &str)
Returns the uppercase equivalent of the given string.
constexpr bool IsDigit(char c)
Tests if the given character is a decimal digit.
constexpr bool IsSpace(char c) noexcept
Tests if the given character is a whitespace character.
std::string ToString(const T &t)
Locale-independent version of std::to_string.
Parameters that influence chain consensus.
bool IsSwitchChar(char c)
bool AdditionOverflow(const T i, const T j) noexcept
bool MultiplicationOverflow(const T i, const T j) noexcept
struct timeval MillisToTimeval(int64_t nTimeout)
Convert milliseconds to a struct timeval for e.g.
std::string FormatISO8601Date(int64_t nTime)
std::string FormatISO8601DateTime(int64_t nTime)
ISO 8601 formatting is preferred.
constexpr int64_t count_seconds(std::chrono::seconds t)
Helper to count the seconds of a duration.
uint256 uint256S(const char *str)
static const int INIT_PROTO_VERSION
initial proto version, to be increased after version/verack negotiation