1 // Copyright (c) 2019 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 <consensus/validation.h> 6 #include <core_memusage.h> 7 #include <policy/policy.h> 8 #include <primitives/transaction.h> 9 #include <streams.h> 10 #include <test/fuzz/fuzz.h> 11 #include <version.h> 12 13 #include <cassert> 14 test_one_input(const std::vector<uint8_t> & buffer)15void test_one_input(const std::vector<uint8_t>& buffer) 16 { 17 CDataStream ds(buffer, SER_NETWORK, INIT_PROTO_VERSION); 18 CTxIn tx_in; 19 try { 20 int version; 21 ds >> version; 22 ds.SetVersion(version); 23 ds >> tx_in; 24 } catch (const std::ios_base::failure&) { 25 return; 26 } 27 28 (void)GetTransactionInputWeight(tx_in); 29 (void)GetVirtualTransactionInputSize(tx_in); 30 (void)RecursiveDynamicUsage(tx_in); 31 32 (void)tx_in.ToString(); 33 } 34