75 assert(compressed_money_amount <= compressed_money_amount_max);
79 static const uint256 u256_min(
uint256S(
"0000000000000000000000000000000000000000000000000000000000000000"));
80 static const uint256 u256_max(
uint256S(
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"));
81 const std::vector<uint256> v256{u256, u256_min, u256_max};
86 assert(parsed.value() == i64);
109 const unsigned char uch =
static_cast<unsigned char>(
u8);
112 const std::set<int64_t> i64s{i64,
static_cast<int64_t
>(u64)};
115 assert(dynamic_usage == incremental_dynamic_usage * i64s.size());
125 assert(parsed.value() == i64);
128 if (i32 >= 0 && i32 <= 16) {
132 const std::chrono::seconds seconds{i64};
136 (void)script_num.
getint();
137 (void)script_num.getvch();
151 const CKeyID key_id{u160};
159 stream >> deserialized_u256;
160 assert(u256 == deserialized_u256 && stream.empty());
164 stream >> deserialized_u160;
165 assert(u160 == deserialized_u160 && stream.empty());
167 uint64_t deserialized_u64;
169 stream >> deserialized_u64;
170 assert(u64 == deserialized_u64 && stream.empty());
172 int64_t deserialized_i64;
174 stream >> deserialized_i64;
175 assert(i64 == deserialized_i64 && stream.empty());
177 uint32_t deserialized_u32;
179 stream >> deserialized_u32;
180 assert(
u32 == deserialized_u32 && stream.empty());
182 int32_t deserialized_i32;
184 stream >> deserialized_i32;
185 assert(i32 == deserialized_i32 && stream.empty());
187 uint16_t deserialized_u16;
189 stream >> deserialized_u16;
190 assert(u16 == deserialized_u16 && stream.empty());
192 int16_t deserialized_i16;
194 stream >> deserialized_i16;
195 assert(i16 == deserialized_i16 && stream.empty());
197 uint8_t deserialized_u8;
199 stream >> deserialized_u8;
200 assert(
u8 == deserialized_u8 && stream.empty());
202 int8_t deserialized_i8;
204 stream >> deserialized_i8;
205 assert(i8 == deserialized_i8 && stream.empty());
209 stream >> deserialized_b;
210 assert(b == deserialized_b && stream.empty());
223 assert(u64 == deserialized_u64 && stream.empty());
227 assert(
u32 == deserialized_u32 && stream.empty());
231 assert(
u32 == deserialized_u32be && stream.empty());
235 assert(u16 == deserialized_u16 && stream.empty());
239 assert(u16 == deserialized_u16be && stream.empty());
243 assert(
u8 == deserialized_u8 && stream.empty());
252 assert(u64 == deserialized_u64 && stream.empty());
253 }
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)
const CChainParams & Params()
Return the currently selected parameters.
void SelectParams(const ChainType chain)
Sets the params returned by Params() to those for the given chain type.
#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
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)
FUZZ_TARGET(integer,.init=initialize_integer)
void initialize_integer()
uint256 ComputeMerkleRoot(std::vector< uint256 > hashes, bool *mutated)
std::string FormatMoney(const CAmount n)
Money parsing/formatting utilities.
std::optional< CAmount > ParseMoney(const std::string &money_string)
Parse an amount denoted in full coins.
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)
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 CheckProofOfWork(uint256 hash, unsigned int nBits, const Consensus::Params ¶ms)
Check whether a block hash satisfies the proof-of-work requirement specified by nBits.
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.
std::string ToString(const T &t)
Locale-independent version of std::to_string.
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)
uint256 uint256S(const char *str)
std::string ToUpper(std::string_view str)
Returns the uppercase equivalent of the given string.
signed char HexDigit(char c)
std::string ToLower(std::string_view str)
Returns the lowercase equivalent of the given string.