Changeset View
Changeset View
Standalone View
Standalone View
src/test/fuzz/transaction.cpp
Show First 20 Lines • Show All 89 Lines • ▼ Show 20 Lines | void test_one_input(const std::vector<uint8_t> &buffer) { | ||||
(void)IsStandardTx(tx, reason); | (void)IsStandardTx(tx, reason); | ||||
(void)RecursiveDynamicUsage(tx); | (void)RecursiveDynamicUsage(tx); | ||||
CCoinsView coins_view; | CCoinsView coins_view; | ||||
const CCoinsViewCache coins_view_cache(&coins_view); | const CCoinsViewCache coins_view_cache(&coins_view); | ||||
(void)AreInputsStandard(tx, coins_view_cache, STANDARD_SCRIPT_VERIFY_FLAGS); | (void)AreInputsStandard(tx, coins_view_cache, STANDARD_SCRIPT_VERIFY_FLAGS); | ||||
UniValue u(UniValue::VOBJ); | UniValue u(UniValue::VOBJ); | ||||
// ValueFromAmount(i) not defined when i == | // Amount::operator UniValue() not defined when Amount.amount == | ||||
// std::numeric_limits<int64_t>::min() | // std::numeric_limits<int64_t>::min() | ||||
bool skip_tx_to_univ = false; | bool skip_tx_to_univ = false; | ||||
for (const CTxOut &txout : tx.vout) { | for (const CTxOut &txout : tx.vout) { | ||||
if (txout.nValue == std::numeric_limits<int64_t>::min() * SATOSHI) { | if (txout.nValue == std::numeric_limits<int64_t>::min() * SATOSHI) { | ||||
skip_tx_to_univ = true; | skip_tx_to_univ = true; | ||||
} | } | ||||
} | } | ||||
if (!skip_tx_to_univ) { | if (!skip_tx_to_univ) { | ||||
TxToUniv(tx, /* hashBlock */ {}, u); | TxToUniv(tx, /* hashBlock */ {}, u); | ||||
static const uint256 u256_max( | static const uint256 u256_max( | ||||
uint256S("fffffffffffffffffffffffffffffffffffffffffffffffffffffffff" | uint256S("fffffffffffffffffffffffffffffffffffffffffffffffffffffffff" | ||||
"fffffff")); | "fffffff")); | ||||
TxToUniv(tx, u256_max, u); | TxToUniv(tx, u256_max, u); | ||||
} | } | ||||
} | } |