1 // Copyright (c) 2020 The Bitcoin Core developers 2 // Distributed under the MIT software license, see the accompanying 3 // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 5 #include <chainparams.h> 6 #include <consensus/validation.h> 7 #include <primitives/block.h> 8 #include <signet.h> 9 #include <streams.h> 10 #include <test/fuzz/FuzzedDataProvider.h> 11 #include <test/fuzz/fuzz.h> 12 #include <test/fuzz/util.h> 13 14 #include <cstdint> 15 #include <optional> 16 #include <vector> 17 initialize()18void initialize() 19 { 20 InitializeFuzzingContext(CBaseChainParams::SIGNET); 21 } 22 test_one_input(const std::vector<uint8_t> & buffer)23void test_one_input(const std::vector<uint8_t>& buffer) 24 { 25 FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()}; 26 const std::optional<CBlock> block = ConsumeDeserializable<CBlock>(fuzzed_data_provider); 27 if (!block) { 28 return; 29 } 30 (void)CheckSignetBlockSolution(*block, Params().GetConsensus()); 31 (void)SignetTxs::Create(*block, ConsumeScript(fuzzed_data_provider)); 32 } 33