Merge #12210: wallet: Deprecate addwitnessaddress
cdf3e03
wallet: Deprecate addwitnessaddress (Wladimir J. van der Laan)
Pull request description:
Now that segwit is natively supported by the wallet, deprecate the hack `addwitnessaddress`.
Tree-SHA512: f33b1c33d200fa8f1a0fba424b30e9c2a78147cde8bb0a3fd41194b77980454cddfb23da256cd6fe78726e87161deaa23357d0764e74c3eb83177cc518afa49c
This commit is contained in:
commit
17180fa608
7 changed files with 18 additions and 9 deletions
|
@ -97,6 +97,8 @@ Low-level RPC changes
|
||||||
* `getwalletinfo`
|
* `getwalletinfo`
|
||||||
* `getmininginfo`
|
* `getmininginfo`
|
||||||
- The wallet RPC `getreceivedbyaddress` will return an error if called with an address not in the wallet.
|
- The wallet RPC `getreceivedbyaddress` will return an error if called with an address not in the wallet.
|
||||||
|
- The wallet RPC `addwitnessaddress` was deprecated and will be removed in version 0.17,
|
||||||
|
set the `address_type` argument of `getnewaddress`, or option `-addresstype=[bech32|p2sh-segwit]` instead.
|
||||||
|
|
||||||
Changed command-line options
|
Changed command-line options
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
|
@ -1285,7 +1285,8 @@ UniValue addwitnessaddress(const JSONRPCRequest& request)
|
||||||
if (request.fHelp || request.params.size() < 1 || request.params.size() > 2)
|
if (request.fHelp || request.params.size() < 1 || request.params.size() > 2)
|
||||||
{
|
{
|
||||||
std::string msg = "addwitnessaddress \"address\" ( p2sh )\n"
|
std::string msg = "addwitnessaddress \"address\" ( p2sh )\n"
|
||||||
"\nAdd a witness address for a script (with pubkey or redeemscript known). Requires a new wallet backup.\n"
|
"\nDEPRECATED: set the address_type argument of getnewaddress, or option -addresstype=[bech32|p2sh-segwit] instead.\n"
|
||||||
|
"Add a witness address for a script (with pubkey or redeemscript known). Requires a new wallet backup.\n"
|
||||||
"It returns the witness script.\n"
|
"It returns the witness script.\n"
|
||||||
|
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
|
@ -1299,6 +1300,12 @@ UniValue addwitnessaddress(const JSONRPCRequest& request)
|
||||||
throw std::runtime_error(msg);
|
throw std::runtime_error(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!IsDeprecatedRPCEnabled("addwitnessaddress")) {
|
||||||
|
throw JSONRPCError(RPC_METHOD_DEPRECATED, "addwitnessaddress is deprecated and will be fully removed in v0.17. "
|
||||||
|
"To use addwitnessaddress in v0.16, restart bitcoind with -deprecatedrpc=addwitnessaddress.\n"
|
||||||
|
"Projects should transition to using the address_type argument of getnewaddress, or option -addresstype=[bech32|p2sh-segwit] instead.\n");
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
LOCK(cs_main);
|
LOCK(cs_main);
|
||||||
if (!IsWitnessEnabled(chainActive.Tip(), Params().GetConsensus()) && !gArgs.GetBoolArg("-walletprematurewitness", false)) {
|
if (!IsWitnessEnabled(chainActive.Tip(), Params().GetConsensus()) && !gArgs.GetBoolArg("-walletprematurewitness", false)) {
|
||||||
|
@ -3479,7 +3486,7 @@ static const CRPCCommand commands[] =
|
||||||
{ "wallet", "abandontransaction", &abandontransaction, {"txid"} },
|
{ "wallet", "abandontransaction", &abandontransaction, {"txid"} },
|
||||||
{ "wallet", "abortrescan", &abortrescan, {} },
|
{ "wallet", "abortrescan", &abortrescan, {} },
|
||||||
{ "wallet", "addmultisigaddress", &addmultisigaddress, {"nrequired","keys","account"} },
|
{ "wallet", "addmultisigaddress", &addmultisigaddress, {"nrequired","keys","account"} },
|
||||||
{ "wallet", "addwitnessaddress", &addwitnessaddress, {"address","p2sh"} },
|
{ "hidden", "addwitnessaddress", &addwitnessaddress, {"address","p2sh"} },
|
||||||
{ "wallet", "backupwallet", &backupwallet, {"destination"} },
|
{ "wallet", "backupwallet", &backupwallet, {"destination"} },
|
||||||
{ "wallet", "bumpfee", &bumpfee, {"txid", "options"} },
|
{ "wallet", "bumpfee", &bumpfee, {"txid", "options"} },
|
||||||
{ "wallet", "dumpprivkey", &dumpprivkey, {"address"} },
|
{ "wallet", "dumpprivkey", &dumpprivkey, {"address"} },
|
||||||
|
|
|
@ -33,7 +33,7 @@ class BumpFeeTest(BitcoinTestFramework):
|
||||||
def set_test_params(self):
|
def set_test_params(self):
|
||||||
self.num_nodes = 2
|
self.num_nodes = 2
|
||||||
self.setup_clean_chain = True
|
self.setup_clean_chain = True
|
||||||
self.extra_args = [["-prematurewitness", "-walletprematurewitness", "-walletrbf={}".format(i)]
|
self.extra_args = [["-prematurewitness", "-walletprematurewitness", "-deprecatedrpc=addwitnessaddress", "-walletrbf={}".format(i)]
|
||||||
for i in range(self.num_nodes)]
|
for i in range(self.num_nodes)]
|
||||||
|
|
||||||
def run_test(self):
|
def run_test(self):
|
||||||
|
|
|
@ -42,7 +42,7 @@ class NULLDUMMYTest(BitcoinTestFramework):
|
||||||
self.setup_clean_chain = True
|
self.setup_clean_chain = True
|
||||||
# This script tests NULLDUMMY activation, which is part of the 'segwit' deployment, so we go through
|
# This script tests NULLDUMMY activation, which is part of the 'segwit' deployment, so we go through
|
||||||
# normal segwit activation here (and don't use the default always-on behaviour).
|
# normal segwit activation here (and don't use the default always-on behaviour).
|
||||||
self.extra_args = [['-whitelist=127.0.0.1', '-walletprematurewitness', '-vbparams=segwit:0:999999999999', '-addresstype=legacy']]
|
self.extra_args = [['-whitelist=127.0.0.1', '-walletprematurewitness', '-vbparams=segwit:0:999999999999', '-addresstype=legacy', "-deprecatedrpc=addwitnessaddress"]]
|
||||||
|
|
||||||
def run_test(self):
|
def run_test(self):
|
||||||
self.address = self.nodes[0].getnewaddress()
|
self.address = self.nodes[0].getnewaddress()
|
||||||
|
|
|
@ -95,7 +95,7 @@ class CompactBlocksTest(BitcoinTestFramework):
|
||||||
self.num_nodes = 2
|
self.num_nodes = 2
|
||||||
# This test was written assuming SegWit is activated using BIP9 at height 432 (3x confirmation window).
|
# This test was written assuming SegWit is activated using BIP9 at height 432 (3x confirmation window).
|
||||||
# TODO: Rewrite this test to support SegWit being always active.
|
# TODO: Rewrite this test to support SegWit being always active.
|
||||||
self.extra_args = [["-vbparams=segwit:0:0"], ["-vbparams=segwit:0:999999999999", "-txindex"]]
|
self.extra_args = [["-vbparams=segwit:0:0"], ["-vbparams=segwit:0:999999999999", "-txindex", "-deprecatedrpc=addwitnessaddress"]]
|
||||||
self.utxos = []
|
self.utxos = []
|
||||||
|
|
||||||
def build_block_on_tip(self, node, segwit=False):
|
def build_block_on_tip(self, node, segwit=False):
|
||||||
|
|
|
@ -40,9 +40,9 @@ class SegWitTest(BitcoinTestFramework):
|
||||||
self.setup_clean_chain = True
|
self.setup_clean_chain = True
|
||||||
self.num_nodes = 3
|
self.num_nodes = 3
|
||||||
# This test tests SegWit both pre and post-activation, so use the normal BIP9 activation.
|
# This test tests SegWit both pre and post-activation, so use the normal BIP9 activation.
|
||||||
self.extra_args = [["-walletprematurewitness", "-rpcserialversion=0", "-vbparams=segwit:0:999999999999", "-addresstype=legacy"],
|
self.extra_args = [["-walletprematurewitness", "-rpcserialversion=0", "-vbparams=segwit:0:999999999999", "-addresstype=legacy", "-deprecatedrpc=addwitnessaddress"],
|
||||||
["-blockversion=4", "-promiscuousmempoolflags=517", "-prematurewitness", "-walletprematurewitness", "-rpcserialversion=1", "-vbparams=segwit:0:999999999999", "-addresstype=legacy"],
|
["-blockversion=4", "-promiscuousmempoolflags=517", "-prematurewitness", "-walletprematurewitness", "-rpcserialversion=1", "-vbparams=segwit:0:999999999999", "-addresstype=legacy", "-deprecatedrpc=addwitnessaddress"],
|
||||||
["-blockversion=536870915", "-promiscuousmempoolflags=517", "-prematurewitness", "-walletprematurewitness", "-vbparams=segwit:0:999999999999", "-addresstype=legacy"]]
|
["-blockversion=536870915", "-promiscuousmempoolflags=517", "-prematurewitness", "-walletprematurewitness", "-vbparams=segwit:0:999999999999", "-addresstype=legacy", "-deprecatedrpc=addwitnessaddress"]]
|
||||||
|
|
||||||
def setup_network(self):
|
def setup_network(self):
|
||||||
super().setup_network()
|
super().setup_network()
|
||||||
|
|
|
@ -69,7 +69,7 @@ def read_dump(file_name, addrs, script_addrs, hd_master_addr_old):
|
||||||
class WalletDumpTest(BitcoinTestFramework):
|
class WalletDumpTest(BitcoinTestFramework):
|
||||||
def set_test_params(self):
|
def set_test_params(self):
|
||||||
self.num_nodes = 1
|
self.num_nodes = 1
|
||||||
self.extra_args = [["-keypool=90", "-addresstype=legacy"]]
|
self.extra_args = [["-keypool=90", "-addresstype=legacy", "-deprecatedrpc=addwitnessaddress"]]
|
||||||
|
|
||||||
def setup_network(self, split=False):
|
def setup_network(self, split=False):
|
||||||
# Use 1 minute timeout because the initial getnewaddress RPC can take
|
# Use 1 minute timeout because the initial getnewaddress RPC can take
|
||||||
|
|
Loading…
Reference in a new issue