diff options
author | brunoerg <brunoely.gc@gmail.com> | 2023-11-07 10:44:25 -0300 |
---|---|---|
committer | brunoerg <brunoely.gc@gmail.com> | 2023-11-20 15:57:56 -0300 |
commit | 641dddf01812407d163520def83f5975413691e4 (patch) | |
tree | fc1f51d2c5e901627dff2456ab9e2edafd2f48f4 /src/test/fuzz/util.cpp | |
parent | 2e1833ca1341ab4dc92508a59181aa6c7c38db88 (diff) | |
download | bitcoin-641dddf01812407d163520def83f5975413691e4.tar.xz |
fuzz: create ConsumeCoins
Diffstat (limited to 'src/test/fuzz/util.cpp')
-rw-r--r-- | src/test/fuzz/util.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/test/fuzz/util.cpp b/src/test/fuzz/util.cpp index 87ca2f6aed..4ce78d125a 100644 --- a/src/test/fuzz/util.cpp +++ b/src/test/fuzz/util.cpp @@ -164,6 +164,24 @@ uint32_t ConsumeSequence(FuzzedDataProvider& fuzzed_data_provider) noexcept fuzzed_data_provider.ConsumeIntegral<uint32_t>(); } +std::map<COutPoint, Coin> ConsumeCoins(FuzzedDataProvider& fuzzed_data_provider) noexcept +{ + std::map<COutPoint, Coin> coins; + LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 10000) { + const std::optional<COutPoint> outpoint{ConsumeDeserializable<COutPoint>(fuzzed_data_provider)}; + if (!outpoint) { + break; + } + const std::optional<Coin> coin{ConsumeDeserializable<Coin>(fuzzed_data_provider)}; + if (!coin) { + break; + } + coins[*outpoint] = *coin; + } + + return coins; +} + CTxDestination ConsumeTxDestination(FuzzedDataProvider& fuzzed_data_provider) noexcept { CTxDestination tx_destination; |