56 const uint256 u256(fuzzed_data_provider.ConsumeBytes<
unsigned char>(
sizeof(
uint256)));
57 const uint160 u160(fuzzed_data_provider.ConsumeBytes<
unsigned char>(
sizeof(
uint160)));
58 const uint64_t u64 = fuzzed_data_provider.ConsumeIntegral<uint64_t>();
59 const int64_t i64 = fuzzed_data_provider.ConsumeIntegral<int64_t>();
60 const uint32_t
u32 = fuzzed_data_provider.ConsumeIntegral<uint32_t>();
61 const int32_t i32 = fuzzed_data_provider.ConsumeIntegral<int32_t>();
62 const uint16_t u16 = fuzzed_data_provider.ConsumeIntegral<uint16_t>();
63 const int16_t i16 = fuzzed_data_provider.ConsumeIntegral<int16_t>();
64 const uint8_t
u8 = fuzzed_data_provider.ConsumeIntegral<uint8_t>();
65 const int8_t i8 = fuzzed_data_provider.ConsumeIntegral<int8_t>();
68 const char ch = fuzzed_data_provider.ConsumeIntegral<
char>();
69 const bool b = fuzzed_data_provider.ConsumeBool();
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&) {
uint64_t SipHashUint256(uint64_t k0, uint64_t k1, const uint256 &val)
Optimized SipHash-2-4 implementation for uint256.
uint64_t CompressAmount(uint64_t n)
Compress amount.
bool AdditionOverflow(const T i, const T j) noexcept
std::string ToString() const
static int DecodeOP_N(opcodetype opcode)
Encode/decode small integers:
ServiceFlags
nServices flags
uint8_t ser_readdata8(Stream &s)
void ser_writedata64(Stream &s, uint64_t obj)
uint64_t ReadCompactSize(Stream &is, bool range_check=true)
Decode a CompactSize-encoded variable-length integer.
static size_t DynamicUsage(const int8_t &v)
Dynamic memory usage for built-in types is zero.
bool MoneyRange(const CAmount &nValue)
#define CHECK_NONFATAL(condition)
Identity function.
void ser_writedata32(Stream &s, uint32_t obj)
constexpr bool IsDigit(char c)
Tests if the given character is a decimal digit.
void initialize_integer()
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)
const std::string & getValStr() const
uint32_t GetCompact(bool fNegative=false) const
arith_uint256 UintToArith256(const uint256 &a)
bool MultiplicationOverflow(const T i, const T j) noexcept
signed char HexDigit(char c)
uint16_t ser_readdata16(Stream &s)
uint32_t ser_readdata32(Stream &s)
Double ended buffer combining vector and stream-like interfaces.
void WriteCompactSize(SizeComputer &os, uint64_t nSize)
void ser_writedata16(Stream &s, uint16_t obj)
static std::optional< uint256 > FromHex(std::string_view str)
std::optional< CAmount > ParseMoney(const std::string &money_string)
Parse an amount denoted in full coins.
std::string SighashToStr(unsigned char sighash_type)
void ser_writedata32be(Stream &s, uint32_t obj)
Parameters that influence chain consensus.
uint64_t SipHashUint256Extra(uint64_t k0, uint64_t k1, const uint256 &val, uint32_t extra)
256-bit unsigned big integer.
uint64_t ser_readdata64(Stream &s)
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 int64_t count_seconds(std::chrono::seconds t)
std::string ToLower(std::string_view str)
Returns the lowercase equivalent of the given string.
std::string FormatMoney(const CAmount n)
Money parsing/formatting utilities.
uint16_t ser_readdata16be(Stream &s)
uint256 ComputeMerkleRoot(std::vector< uint256 > hashes, bool *mutated)
uint256 ArithToUint256(const arith_uint256 &a)
static opcodetype EncodeOP_N(int n)
const CChainParams & Params()
Return the currently selected parameters.
uint64_t GetLow64() const
constexpr bool IsSpace(char c) noexcept
Tests if the given character is a whitespace character.
A reference to a CKey: the Hash160 of its serialized public key.
uint32_t ser_readdata32be(Stream &s)
UniValue ValueFromAmount(const CAmount amount)
static constexpr CAmount MAX_MONEY
No amount larger than this (in satoshi) is valid.
struct timeval MillisToTimeval(int64_t nTimeout)
Convert milliseconds to a struct timeval for e.g.
static size_t IncrementalDynamicUsage(const std::set< X, Y > &s)
void ser_writedata16be(Stream &s, uint16_t obj)
A reference to a CScript: the Hash160 of its serialization.
unsigned int GetSpecialScriptSize(unsigned int nSize)
std::string GetHex() const
Hex encoding of the number (with the most significant digits first).
const Consensus::Params & GetConsensus() const
uint64_t DecompressAmount(uint64_t x)
unsigned int size() const
constexpr unsigned int GetSizeOfCompactSize(uint64_t nSize)
Compact Size size < 253 – 1 byte size <= USHRT_MAX – 3 bytes (253 + 2 bytes) size <= UINT_MAX –...
FUZZ_TARGET(integer,.init=initialize_integer)
bool IsSwitchChar(char c)
void SelectParams(const ChainType chain)
Sets the params returned by Params() to those for the given chain type.
void ser_writedata8(Stream &s, uint8_t obj)
std::string ToString(const T &t)
Locale-independent version of std::to_string.
unsigned int bits() const
Returns the position of the highest bit set plus one, or zero if the value is zero.
std::string ToUpper(std::string_view str)
Returns the uppercase equivalent of the given string.