From 672a38cc061f801b691d9a91cd720d0a414d2e63 Mon Sep 17 00:00:00 2001 From: Ross Nicoll Date: Sat, 7 Aug 2021 07:44:32 +0100 Subject: [PATCH 1/2] Use CAmount for amounts Use CAmount rather than unsigned int for amounts for consistency with other fee rate amounts. This does change the type from unsigned int to unsigned int64, and while it is unlikely anyone would need a dust limit higher than unsigned int, again this ensures the theoretical maximum is in line with other rates. --- src/policy/policy.cpp | 2 +- src/policy/policy.h | 2 +- src/primitives/transaction.h | 3 ++- src/wallet/test/wallet_tests.cpp | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/policy/policy.cpp b/src/policy/policy.cpp index 7b2b23964..506eb6f17 100644 --- a/src/policy/policy.cpp +++ b/src/policy/policy.cpp @@ -209,7 +209,7 @@ bool IsWitnessStandard(const CTransaction& tx, const CCoinsViewCache& mapInputs) CFeeRate incrementalRelayFee = CFeeRate(DEFAULT_INCREMENTAL_RELAY_FEE); CFeeRate dustRelayFee = CFeeRate(DUST_RELAY_TX_FEE); unsigned int nBytesPerSigOp = DEFAULT_BYTES_PER_SIGOP; -unsigned int nDustLimit = DEFAULT_DUST_LIMIT; +CAmount nDustLimit = DEFAULT_DUST_LIMIT; int64_t GetVirtualTransactionSize(int64_t nWeight, int64_t nSigOpCost) { diff --git a/src/policy/policy.h b/src/policy/policy.h index 5380f7b5b..a41d2fe5f 100644 --- a/src/policy/policy.h +++ b/src/policy/policy.h @@ -103,7 +103,7 @@ bool IsWitnessStandard(const CTransaction& tx, const CCoinsViewCache& mapInputs) extern CFeeRate incrementalRelayFee; extern CFeeRate dustRelayFee; extern unsigned int nBytesPerSigOp; -extern unsigned int nDustLimit; +extern CAmount nDustLimit; /** Compute the virtual transaction size (weight reinterpreted as bytes). */ int64_t GetVirtualTransactionSize(int64_t nWeight, int64_t nSigOpCost); diff --git a/src/primitives/transaction.h b/src/primitives/transaction.h index 0d0ceda54..63e34697a 100644 --- a/src/primitives/transaction.h +++ b/src/primitives/transaction.h @@ -15,7 +15,8 @@ static const int SERIALIZE_TRANSACTION_NO_WITNESS = 0x40000000; static const int WITNESS_SCALE_FACTOR = 4; -extern unsigned int nDustLimit; +/** An amount smaller than this is considered dust */ +extern CAmount nDustLimit; /** An outpoint - a combination of a transaction hash and an index n into its vout */ class COutPoint diff --git a/src/wallet/test/wallet_tests.cpp b/src/wallet/test/wallet_tests.cpp index 79a994bf6..a72e1ce09 100644 --- a/src/wallet/test/wallet_tests.cpp +++ b/src/wallet/test/wallet_tests.cpp @@ -36,7 +36,7 @@ std::vector> wtxn; typedef set > CoinSet; -extern unsigned int nDustLimit; +extern CAmount nDustLimit; BOOST_FIXTURE_TEST_SUITE(wallet_tests, WalletTestingSetup) From c42b38ea5110008f2d74abb02ee363ea9bb64188 Mon Sep 17 00:00:00 2001 From: Ross Nicoll Date: Sun, 8 Aug 2021 21:41:35 +0100 Subject: [PATCH 2/2] Use CAmount for constant amounts too --- src/policy/policy.h | 6 +++--- src/validation.h | 2 +- src/wallet/wallet.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/policy/policy.h b/src/policy/policy.h index a41d2fe5f..2540f373c 100644 --- a/src/policy/policy.h +++ b/src/policy/policy.h @@ -31,7 +31,7 @@ static const unsigned int MAX_STANDARD_TX_SIGOPS_COST = MAX_BLOCK_SIGOPS_COST/5; /** Default for -maxmempool, maximum megabytes of mempool memory usage */ static const unsigned int DEFAULT_MAX_MEMPOOL_SIZE = 300; /** Default for -incrementalrelayfee, which sets the minimum feerate increase for mempool limiting or BIP 125 replacement **/ -static const unsigned int DEFAULT_INCREMENTAL_RELAY_FEE = 1000; +static const CAmount DEFAULT_INCREMENTAL_RELAY_FEE = 1000; /** Default for -bytespersigop */ static const unsigned int DEFAULT_BYTES_PER_SIGOP = 20; /** The maximum number of witness stack items in a standard P2WSH script */ @@ -45,13 +45,13 @@ static const unsigned int MAX_STANDARD_P2WSH_SCRIPT_SIZE = 3600; * standard and should be done with care and ideally rarely. It makes sense to * only increase the dust limit after prior releases were already not creating * outputs below the new threshold */ -static const unsigned int DUST_RELAY_TX_FEE = COIN / 100000; +static const CAmount DUST_RELAY_TX_FEE = COIN / 100000; /** * Dogecoin: Default dust limit that is evaluated when considering whether a * transaction output is required to pay additional fee for relay and inclusion * in blocks. Overridden by -dustlimit */ -static const unsigned int DEFAULT_DUST_LIMIT = COIN / 1; +static const CAmount DEFAULT_DUST_LIMIT = COIN / 1; /** * Standard script verification flags that standard transactions will comply diff --git a/src/validation.h b/src/validation.h index 138103803..afe5e89ac 100644 --- a/src/validation.h +++ b/src/validation.h @@ -54,7 +54,7 @@ static const bool DEFAULT_WHITELISTRELAY = true; /** Default for DEFAULT_WHITELISTFORCERELAY. */ static const bool DEFAULT_WHITELISTFORCERELAY = true; /** Default for -minrelaytxfee, minimum relay fee for transactions */ -static const unsigned int DEFAULT_MIN_RELAY_TX_FEE = COIN; +static const CAmount DEFAULT_MIN_RELAY_TX_FEE = COIN; //! -maxtxfee default static const CAmount DEFAULT_TRANSACTION_MAXFEE = 400 * COIN; //! Discourage users to set fees higher than this amount (in satoshis) per kB diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h index e3a041e7f..32db83f24 100644 --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -54,7 +54,7 @@ static const CAmount DEFAULT_FALLBACK_FEE = COIN; //! -mintxfee default static const CAmount DEFAULT_TRANSACTION_MINFEE = COIN; //mlumin 5/2021: adding a minimum Wallet fee vs relay, currently still 1 COIN, to be reduced. -static const unsigned int DEFAULT_MIN_WALLET_TX_FEE = COIN; +static const CAmount DEFAULT_MIN_WALLET_TX_FEE = COIN; //! minimum recommended increment for BIP 125 replacement txs static const CAmount WALLET_INCREMENTAL_RELAY_FEE = COIN/10 * 5; //! target minimum change amount