Bitcoin Core  31.0.0
P2P Digital Currency
tx_out.cpp
Go to the documentation of this file.
1 // Copyright (c) 2019-present 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/feerate.h>
8 #include <policy/policy.h>
10 #include <streams.h>
11 #include <test/fuzz/fuzz.h>
12 
13 FUZZ_TARGET(tx_out)
14 {
15  CTxOut tx_out;
16  try {
17  SpanReader{buffer} >> tx_out;
18  } catch (const std::ios_base::failure&) {
19  return;
20  }
21 
22  const CFeeRate dust_relay_fee{DUST_RELAY_TX_FEE};
23  (void)GetDustThreshold(tx_out, dust_relay_fee);
24  (void)IsDust(tx_out, dust_relay_fee);
25  (void)RecursiveDynamicUsage(tx_out);
26 
27  (void)tx_out.ToString();
28  (void)tx_out.IsNull();
29  tx_out.SetNull();
30  assert(tx_out.IsNull());
31 }
void SetNull()
Definition: transaction.h:154
assert(!tx.IsCoinBase())
std::string ToString() const
Definition: transaction.cpp:61
bool IsNull() const
Definition: transaction.h:160
Minimal stream for reading from an existing byte array by std::span.
Definition: streams.h:82
An output of a transaction.
Definition: transaction.h:139
FUZZ_TARGET(tx_out)
Definition: tx_out.cpp:13
CAmount GetDustThreshold(const CTxOut &txout, const CFeeRate &dustRelayFeeIn)
Definition: policy.cpp:26
static constexpr unsigned int DUST_RELAY_TX_FEE
Min feerate for defining dust.
Definition: policy.h:67
Fee rate in satoshis per virtualbyte: CAmount / vB the feerate is represented internally as FeeFrac...
Definition: feerate.h:31
static size_t RecursiveDynamicUsage(const CScript &script)
Definition: core_memusage.h:12
bool IsDust(const CTxOut &txout, const CFeeRate &dustRelayFeeIn)
Definition: policy.cpp:65