77 assert(compressed_money_amount <= compressed_money_amount_max);
81 constexpr uint256 u256_min{
"0000000000000000000000000000000000000000000000000000000000000000"};
82 constexpr uint256 u256_max{
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"};
83 const std::vector<uint256> v256{u256, u256_min, u256_max};
88 assert(parsed.value() == i64);
111 const unsigned char uch =
static_cast<unsigned char>(
u8);
114 const std::set<int64_t> i64s{i64,
static_cast<int64_t
>(u64)};
117 assert(dynamic_usage == incremental_dynamic_usage * i64s.size());
127 assert(parsed.value() == i64);
130 if (i32 >= 0 && i32 <= 16) {
134 const std::chrono::seconds seconds{i64};
138 (void)script_num.
getint();
139 (void)script_num.getvch();
153 const CKeyID key_id{u160};
161 stream >> deserialized_u256;
162 assert(u256 == deserialized_u256 && stream.empty());
166 stream >> deserialized_u160;
167 assert(u160 == deserialized_u160 && stream.empty());
169 uint64_t deserialized_u64;
171 stream >> deserialized_u64;
172 assert(u64 == deserialized_u64 && stream.empty());
174 int64_t deserialized_i64;
176 stream >> deserialized_i64;
177 assert(i64 == deserialized_i64 && stream.empty());
179 uint32_t deserialized_u32;
181 stream >> deserialized_u32;
182 assert(
u32 == deserialized_u32 && stream.empty());
184 int32_t deserialized_i32;
186 stream >> deserialized_i32;
187 assert(i32 == deserialized_i32 && stream.empty());
189 uint16_t deserialized_u16;
191 stream >> deserialized_u16;
192 assert(u16 == deserialized_u16 && stream.empty());
194 int16_t deserialized_i16;
196 stream >> deserialized_i16;
197 assert(i16 == deserialized_i16 && stream.empty());
199 uint8_t deserialized_u8;
201 stream >> deserialized_u8;
202 assert(
u8 == deserialized_u8 && stream.empty());
204 int8_t deserialized_i8;
206 stream >> deserialized_i8;
207 assert(i8 == deserialized_i8 && stream.empty());
211 stream >> deserialized_b;
212 assert(b == deserialized_b && stream.empty());
225 assert(u64 == deserialized_u64 && stream.empty());
229 assert(
u32 == deserialized_u32 && stream.empty());
233 assert(
u32 == deserialized_u32be && stream.empty());
237 assert(u16 == deserialized_u16 && stream.empty());
241 assert(u16 == deserialized_u16be && stream.empty());
245 assert(
u8 == deserialized_u8 && stream.empty());
254 assert(u64 == deserialized_u64 && stream.empty());
255 }
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)
bool IsSwitchChar(char c)
arith_uint256 UintToArith256(const uint256 &a)
uint256 ArithToUint256(const arith_uint256 &a)
void SelectParams(const ChainType chain)
Sets the params returned by Params() to those for the given chain type.
const CChainParams & Params()
Return the currently selected parameters.
#define CHECK_NONFATAL(condition)
Identity function.
const Consensus::Params & GetConsensus() const
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.
Double ended buffer combining vector and stream-like interfaces.
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
Hex encoding of the number (with the most significant digits first).
unsigned int bits() const
Returns the position of the highest bit set plus one, or zero if the value is zero.
static std::optional< uint256 > FromHex(std::string_view str)
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)
signed char HexDigit(char c)
FUZZ_TARGET(integer,.init=initialize_integer)
void 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)
std::string ToString(const T &t)
Locale-independent version of std::to_string.
bool AdditionOverflow(const T i, const T j) noexcept
int64_t GetVirtualTransactionSize(int64_t nWeight, int64_t nSigOpCost, unsigned int bytes_per_sigop)
Compute the virtual transaction size (weight reinterpreted as bytes).
bool CheckProofOfWorkImpl(uint256 hash, unsigned int nBits, const Consensus::Params ¶ms)
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.
constexpr 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...
uint8_t ser_readdata8(Stream &s)
void ser_writedata32be(Stream &s, uint32_t obj)
void ser_writedata32(Stream &s, uint32_t obj)
void ser_writedata16(Stream &s, uint16_t obj)
void WriteCompactSize(SizeComputer &os, uint64_t nSize)
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)
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.
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.
Parameters that influence chain consensus.
bool MultiplicationOverflow(const T i, const T j) noexcept
struct timeval MillisToTimeval(int64_t nTimeout)
Convert milliseconds to a struct timeval for e.g.
constexpr int64_t count_seconds(std::chrono::seconds t)
std::string ToUpper(std::string_view str)
Returns the uppercase equivalent of the given string.
std::string ToLower(std::string_view str)
Returns the lowercase equivalent of the given string.