mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-08 20:28:55 +02:00
wallet, rpc: deprecate settxfee and paytxfee
This commit is contained in:
parent
83a9e55ae1
commit
bf194c920c
@ -66,7 +66,7 @@ void WalletInit::AddWalletOptions(ArgsManager& argsman) const
|
||||
CURRENCY_UNIT, FormatMoney(DEFAULT_TRANSACTION_MAXFEE)), ArgsManager::ALLOW_ANY, OptionsCategory::DEBUG_TEST);
|
||||
argsman.AddArg("-mintxfee=<amt>", strprintf("Fee rates (in %s/kvB) smaller than this are considered zero fee for transaction creation (default: %s)",
|
||||
CURRENCY_UNIT, FormatMoney(DEFAULT_TRANSACTION_MINFEE)), ArgsManager::ALLOW_ANY, OptionsCategory::WALLET);
|
||||
argsman.AddArg("-paytxfee=<amt>", strprintf("Fee rate (in %s/kvB) to add to transactions you send (default: %s)",
|
||||
argsman.AddArg("-paytxfee=<amt>", strprintf("(DEPRECATED) Fee rate (in %s/kvB) to add to transactions you send (default: %s)",
|
||||
CURRENCY_UNIT, FormatMoney(CFeeRate{DEFAULT_PAY_TX_FEE}.GetFeePerK())), ArgsManager::ALLOW_ANY, OptionsCategory::WALLET);
|
||||
#ifdef ENABLE_EXTERNAL_SIGNER
|
||||
argsman.AddArg("-signer=<cmd>", "External signing tool, see doc/external-signer.md", ArgsManager::ALLOW_ANY, OptionsCategory::WALLET);
|
||||
|
@ -418,7 +418,7 @@ RPCHelpMan sendmany()
|
||||
RPCHelpMan settxfee()
|
||||
{
|
||||
return RPCHelpMan{"settxfee",
|
||||
"\nSet the transaction fee rate in " + CURRENCY_UNIT + "/kvB for this wallet. Overrides the global -paytxfee command line parameter.\n"
|
||||
"\n(DEPRECATED) Set the transaction fee rate in " + CURRENCY_UNIT + "/kvB for this wallet. Overrides the global -paytxfee command line parameter.\n"
|
||||
"Can be deactivated by passing 0 as the fee. In that case automatic fee selection will be used by default.\n",
|
||||
{
|
||||
{"amount", RPCArg::Type::AMOUNT, RPCArg::Optional::NO, "The transaction fee rate in " + CURRENCY_UNIT + "/kvB"},
|
||||
@ -437,6 +437,11 @@ RPCHelpMan settxfee()
|
||||
|
||||
LOCK(pwallet->cs_wallet);
|
||||
|
||||
if (!pwallet->chain().rpcEnableDeprecated("settxfee")) {
|
||||
throw JSONRPCError(RPC_METHOD_DEPRECATED, "settxfee is deprecated and will be fully removed in v31.0."
|
||||
"\nTo use settxfee restart bitcoind with -deprecatedrpc=settxfee.");
|
||||
}
|
||||
|
||||
CAmount nAmount = AmountFromValue(request.params[0]);
|
||||
CFeeRate tx_fee_rate(nAmount, 1000);
|
||||
CFeeRate max_tx_fee_rate(pwallet->m_default_max_tx_fee, 1000);
|
||||
|
@ -3181,6 +3181,8 @@ std::shared_ptr<CWallet> CWallet::Create(WalletContext& context, const std::stri
|
||||
}
|
||||
|
||||
if (args.IsArgSet("-paytxfee")) {
|
||||
warnings.push_back(_("-paytxfee is deprecated and will be fully removed in v31.0."));
|
||||
|
||||
std::optional<CAmount> pay_tx_fee = ParseMoney(args.GetArg("-paytxfee", ""));
|
||||
if (!pay_tx_fee) {
|
||||
error = AmountErrMsg("paytxfee", args.GetArg("-paytxfee", ""));
|
||||
|
@ -4,13 +4,21 @@
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
"""Test deprecation of RPC calls."""
|
||||
from test_framework.test_framework import BitcoinTestFramework
|
||||
from test_framework.util import assert_raises_rpc_error
|
||||
|
||||
class DeprecatedRpcTest(BitcoinTestFramework):
|
||||
def add_options(self, parser):
|
||||
self.add_wallet_options(parser)
|
||||
|
||||
def set_test_params(self):
|
||||
self.num_nodes = 1
|
||||
self.setup_clean_chain = True
|
||||
self.extra_args = [[]]
|
||||
|
||||
|
||||
def skip_test_if_missing_module(self):
|
||||
self.skip_if_no_wallet()
|
||||
|
||||
def run_test(self):
|
||||
# This test should be used to verify the errors of the currently
|
||||
# deprecated RPC methods (without the -deprecatedrpc flag) until
|
||||
@ -23,7 +31,8 @@ class DeprecatedRpcTest(BitcoinTestFramework):
|
||||
# at least one other functional test that still tests the RPCs
|
||||
# functionality using the respective -deprecatedrpc flag.
|
||||
|
||||
self.log.info("Currently no tests for deprecated RPC methods")
|
||||
self.log.info("Test settxfee RPC")
|
||||
assert_raises_rpc_error(-32, 'settxfee is deprecated and will be fully removed in v31.0.', self.nodes[0].rpc.settxfee, 0.01)
|
||||
|
||||
if __name__ == '__main__':
|
||||
DeprecatedRpcTest(__file__).main()
|
||||
|
@ -598,9 +598,9 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
|
||||
# Wait for nodes to stop
|
||||
node.wait_until_stopped()
|
||||
|
||||
def restart_node(self, i, extra_args=None, clear_addrman=False):
|
||||
def restart_node(self, i, extra_args=None, clear_addrman=False, *, expected_stderr=''):
|
||||
"""Stop and start a test node"""
|
||||
self.stop_node(i)
|
||||
self.stop_node(i, expected_stderr=expected_stderr)
|
||||
if clear_addrman:
|
||||
peers_dat = self.nodes[i].chain_path / "peers.dat"
|
||||
os.remove(peers_dat)
|
||||
|
@ -35,7 +35,7 @@ class WalletTest(BitcoinTestFramework):
|
||||
# whitelist peers to speed up tx relay / mempool sync
|
||||
self.noban_tx_relay = True
|
||||
self.extra_args = [[
|
||||
"-dustrelayfee=0", "-walletrejectlongchains=0"
|
||||
"-dustrelayfee=0", "-walletrejectlongchains=0", "-deprecatedrpc=settxfee"
|
||||
]] * self.num_nodes
|
||||
self.setup_clean_chain = True
|
||||
self.supports_cli = False
|
||||
|
@ -61,6 +61,7 @@ class BumpFeeTest(BitcoinTestFramework):
|
||||
"-walletrbf={}".format(i),
|
||||
"-mintxfee=0.00002",
|
||||
"-addresstype=bech32",
|
||||
"-deprecatedrpc=settxfee"
|
||||
] for i in range(self.num_nodes)]
|
||||
|
||||
def skip_test_if_missing_module(self):
|
||||
|
@ -23,6 +23,7 @@ class CreateTxWalletTest(BitcoinTestFramework):
|
||||
def set_test_params(self):
|
||||
self.setup_clean_chain = True
|
||||
self.num_nodes = 1
|
||||
self.extra_args = [["-deprecatedrpc=settxfee"]]
|
||||
|
||||
def skip_test_if_missing_module(self):
|
||||
self.skip_if_no_wallet()
|
||||
@ -71,7 +72,7 @@ class CreateTxWalletTest(BitcoinTestFramework):
|
||||
)
|
||||
|
||||
self.log.info('Check maxtxfee in combination with settxfee')
|
||||
self.restart_node(0)
|
||||
self.restart_node(0, expected_stderr='Warning: -paytxfee is deprecated and will be fully removed in v31.0.')
|
||||
self.nodes[0].settxfee(0.01)
|
||||
assert_raises_rpc_error(
|
||||
-6,
|
||||
|
@ -44,6 +44,9 @@ class RawTransactionsTest(BitcoinTestFramework):
|
||||
|
||||
def set_test_params(self):
|
||||
self.num_nodes = 4
|
||||
self.extra_args = [[
|
||||
"-deprecatedrpc=settxfee"
|
||||
] for i in range(self.num_nodes)]
|
||||
self.setup_clean_chain = True
|
||||
# whitelist peers to speed up tx relay / mempool sync
|
||||
self.noban_tx_relay = True
|
||||
|
@ -46,7 +46,7 @@ class MultiWalletTest(BitcoinTestFramework):
|
||||
self.setup_clean_chain = True
|
||||
self.num_nodes = 2
|
||||
self.rpc_timeout = 120
|
||||
self.extra_args = [["-nowallet"], []]
|
||||
self.extra_args = [["-nowallet", "-deprecatedrpc=settxfee"], []]
|
||||
|
||||
def skip_test_if_missing_module(self):
|
||||
self.skip_if_no_wallet()
|
||||
|
@ -18,6 +18,9 @@ class TxnMallTest(BitcoinTestFramework):
|
||||
def set_test_params(self):
|
||||
self.num_nodes = 3
|
||||
self.supports_cli = False
|
||||
self.extra_args = [[
|
||||
"-deprecatedrpc=settxfee"
|
||||
] for i in range(self.num_nodes)]
|
||||
|
||||
def skip_test_if_missing_module(self):
|
||||
self.skip_if_no_wallet()
|
||||
|
Loading…
x
Reference in New Issue
Block a user