mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 14:38:29 +01:00
fuzz: create ConsumeCoins
This commit is contained in:
@@ -125,18 +125,7 @@ FUZZ_TARGET(script_sign, .init = initialize_script_sign)
|
|||||||
}
|
}
|
||||||
(void)signature_creator.CreateSig(provider, vch_sig, address, ConsumeScript(fuzzed_data_provider), fuzzed_data_provider.PickValueInArray({SigVersion::BASE, SigVersion::WITNESS_V0}));
|
(void)signature_creator.CreateSig(provider, vch_sig, address, ConsumeScript(fuzzed_data_provider), fuzzed_data_provider.PickValueInArray({SigVersion::BASE, SigVersion::WITNESS_V0}));
|
||||||
}
|
}
|
||||||
std::map<COutPoint, Coin> coins;
|
std::map<COutPoint, Coin> coins{ConsumeCoins(fuzzed_data_provider)};
|
||||||
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;
|
|
||||||
}
|
|
||||||
std::map<int, bilingual_str> input_errors;
|
std::map<int, bilingual_str> input_errors;
|
||||||
(void)SignTransaction(sign_transaction_tx_to, &provider, coins, fuzzed_data_provider.ConsumeIntegral<int>(), input_errors);
|
(void)SignTransaction(sign_transaction_tx_to, &provider, coins, fuzzed_data_provider.ConsumeIntegral<int>(), input_errors);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -164,6 +164,24 @@ uint32_t ConsumeSequence(FuzzedDataProvider& fuzzed_data_provider) noexcept
|
|||||||
fuzzed_data_provider.ConsumeIntegral<uint32_t>();
|
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 ConsumeTxDestination(FuzzedDataProvider& fuzzed_data_provider) noexcept
|
||||||
{
|
{
|
||||||
CTxDestination tx_destination;
|
CTxDestination tx_destination;
|
||||||
|
|||||||
@@ -181,6 +181,8 @@ template <typename WeakEnumType, size_t size>
|
|||||||
return UintToArith256(ConsumeUInt256(fuzzed_data_provider));
|
return UintToArith256(ConsumeUInt256(fuzzed_data_provider));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[[nodiscard]] std::map<COutPoint, Coin> ConsumeCoins(FuzzedDataProvider& fuzzed_data_provider) noexcept;
|
||||||
|
|
||||||
[[nodiscard]] CTxDestination ConsumeTxDestination(FuzzedDataProvider& fuzzed_data_provider) noexcept;
|
[[nodiscard]] CTxDestination ConsumeTxDestination(FuzzedDataProvider& fuzzed_data_provider) noexcept;
|
||||||
|
|
||||||
[[nodiscard]] CKey ConsumePrivateKey(FuzzedDataProvider& fuzzed_data_provider, std::optional<bool> compressed = std::nullopt) noexcept;
|
[[nodiscard]] CKey ConsumePrivateKey(FuzzedDataProvider& fuzzed_data_provider, std::optional<bool> compressed = std::nullopt) noexcept;
|
||||||
|
|||||||
Reference in New Issue
Block a user