Use incrementalRelayFee for BIP 125 replacement
This commit is contained in:
parent
82274c02ed
commit
5b158707f2
2 changed files with 9 additions and 9 deletions
|
@ -898,14 +898,14 @@ bool AcceptToMemoryPoolWorker(CTxMemPool& pool, CValidationState& state, const C
|
||||||
// Finally in addition to paying more fees than the conflicts the
|
// Finally in addition to paying more fees than the conflicts the
|
||||||
// new transaction must pay for its own bandwidth.
|
// new transaction must pay for its own bandwidth.
|
||||||
CAmount nDeltaFees = nModifiedFees - nConflictingFees;
|
CAmount nDeltaFees = nModifiedFees - nConflictingFees;
|
||||||
if (nDeltaFees < ::minRelayTxFee.GetFee(nSize))
|
if (nDeltaFees < ::incrementalRelayFee.GetFee(nSize))
|
||||||
{
|
{
|
||||||
return state.DoS(0, false,
|
return state.DoS(0, false,
|
||||||
REJECT_INSUFFICIENTFEE, "insufficient fee", false,
|
REJECT_INSUFFICIENTFEE, "insufficient fee", false,
|
||||||
strprintf("rejecting replacement %s, not enough additional fees to relay; %s < %s",
|
strprintf("rejecting replacement %s, not enough additional fees to relay; %s < %s",
|
||||||
hash.ToString(),
|
hash.ToString(),
|
||||||
FormatMoney(nDeltaFees),
|
FormatMoney(nDeltaFees),
|
||||||
FormatMoney(::minRelayTxFee.GetFee(nSize))));
|
FormatMoney(::incrementalRelayFee.GetFee(nSize))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2652,8 +2652,8 @@ UniValue bumpfee(const JSONRPCRequest& request)
|
||||||
"By default, the new fee will be calculated automatically using estimatefee.\n"
|
"By default, the new fee will be calculated automatically using estimatefee.\n"
|
||||||
"The user can specify a confirmation target for estimatefee.\n"
|
"The user can specify a confirmation target for estimatefee.\n"
|
||||||
"Alternatively, the user can specify totalFee, or use RPC setpaytxfee to set a higher fee rate.\n"
|
"Alternatively, the user can specify totalFee, or use RPC setpaytxfee to set a higher fee rate.\n"
|
||||||
"At a minimum, the new fee rate must be high enough to pay a new relay fee (relay fee amount returned\n"
|
"At a minimum, the new fee rate must be high enough to pay a new relay fee over the original fee\n"
|
||||||
"by getnetworkinfo RPC) and to enter the node's mempool.\n"
|
"to enter the node's mempool.\n"
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. txid (string, required) The txid to be bumped\n"
|
"1. txid (string, required) The txid to be bumped\n"
|
||||||
"2. options (object, optional)\n"
|
"2. options (object, optional)\n"
|
||||||
|
@ -2787,9 +2787,9 @@ UniValue bumpfee(const JSONRPCRequest& request)
|
||||||
CFeeRate nNewFeeRate;
|
CFeeRate nNewFeeRate;
|
||||||
|
|
||||||
if (totalFee > 0) {
|
if (totalFee > 0) {
|
||||||
CAmount minTotalFee = nOldFeeRate.GetFee(maxNewTxSize) + minRelayTxFee.GetFee(maxNewTxSize);
|
CAmount minTotalFee = nOldFeeRate.GetFee(maxNewTxSize) + ::incrementalRelayFee.GetFee(maxNewTxSize);
|
||||||
if (totalFee < minTotalFee) {
|
if (totalFee < minTotalFee) {
|
||||||
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Invalid totalFee, must be at least %s (oldFee %s + relayFee %s)", FormatMoney(minTotalFee), nOldFeeRate.GetFee(maxNewTxSize), minRelayTxFee.GetFee(maxNewTxSize)));
|
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Invalid totalFee, must be at least %s (oldFee %s + relayFee %s)", FormatMoney(minTotalFee), nOldFeeRate.GetFee(maxNewTxSize), ::incrementalRelayFee.GetFee(maxNewTxSize)));
|
||||||
}
|
}
|
||||||
nNewFee = totalFee;
|
nNewFee = totalFee;
|
||||||
nNewFeeRate = CFeeRate(totalFee, maxNewTxSize);
|
nNewFeeRate = CFeeRate(totalFee, maxNewTxSize);
|
||||||
|
@ -2804,9 +2804,9 @@ UniValue bumpfee(const JSONRPCRequest& request)
|
||||||
nNewFeeRate = CWallet::fallbackFee;
|
nNewFeeRate = CWallet::fallbackFee;
|
||||||
}
|
}
|
||||||
|
|
||||||
// new fee rate must be at least old rate + minimum relay rate
|
// new fee rate must be at least old rate + minimum incremental relay rate
|
||||||
if (nNewFeeRate.GetFeePerK() < nOldFeeRate.GetFeePerK() + ::minRelayTxFee.GetFeePerK()) {
|
if (nNewFeeRate.GetFeePerK() < nOldFeeRate.GetFeePerK() + ::incrementalRelayFee.GetFeePerK()) {
|
||||||
nNewFeeRate = CFeeRate(nOldFeeRate.GetFeePerK() + ::minRelayTxFee.GetFeePerK());
|
nNewFeeRate = CFeeRate(nOldFeeRate.GetFeePerK() + ::incrementalRelayFee.GetFeePerK());
|
||||||
}
|
}
|
||||||
|
|
||||||
nNewFee = nNewFeeRate.GetFee(maxNewTxSize);
|
nNewFee = nNewFeeRate.GetFee(maxNewTxSize);
|
||||||
|
|
Loading…
Reference in a new issue