From fe838dd391be669ccd0765b95f81c25fecfd3636 Mon Sep 17 00:00:00 2001 From: Ava Chow Date: Thu, 8 May 2025 11:48:47 -0700 Subject: [PATCH] test: Replace usage of addmultisigaddress --- test/functional/rpc_psbt.py | 16 +++++++++++++--- test/functional/test_framework/test_node.py | 15 --------------- test/functional/wallet_address_types.py | 10 ++++++---- test/functional/wallet_fundrawtransaction.py | 8 +++++--- test/functional/wallet_labels.py | 1 - 5 files changed, 24 insertions(+), 26 deletions(-) diff --git a/test/functional/rpc_psbt.py b/test/functional/rpc_psbt.py index fbbbae91a7c..e1122e5f475 100755 --- a/test/functional/rpc_psbt.py +++ b/test/functional/rpc_psbt.py @@ -314,9 +314,19 @@ class PSBTTest(BitcoinTestFramework): wmulti = self.nodes[2].get_wallet_rpc('wmulti') # Create all the addresses - p2sh = wmulti.addmultisigaddress(2, [pubkey0, pubkey1, pubkey2], label="", address_type="legacy")["address"] - p2wsh = wmulti.addmultisigaddress(2, [pubkey0, pubkey1, pubkey2], label="", address_type="bech32")["address"] - p2sh_p2wsh = wmulti.addmultisigaddress(2, [pubkey0, pubkey1, pubkey2], label="", address_type="p2sh-segwit")["address"] + p2sh_ms = wmulti.createmultisig(2, [pubkey0, pubkey1, pubkey2], address_type="legacy") + p2sh = p2sh_ms["address"] + p2wsh_ms = wmulti.createmultisig(2, [pubkey0, pubkey1, pubkey2], address_type="bech32") + p2wsh = p2wsh_ms["address"] + p2sh_p2wsh_ms = wmulti.createmultisig(2, [pubkey0, pubkey1, pubkey2], address_type="p2sh-segwit") + p2sh_p2wsh = p2sh_p2wsh_ms["address"] + import_res = wmulti.importdescriptors( + [ + {"desc": p2sh_ms["descriptor"], "timestamp": "now"}, + {"desc": p2wsh_ms["descriptor"], "timestamp": "now"}, + {"desc": p2sh_p2wsh_ms["descriptor"], "timestamp": "now"}, + ]) + assert_equal(all([r["success"] for r in import_res]), True) p2wpkh = self.nodes[1].getnewaddress("", "bech32") p2pkh = self.nodes[1].getnewaddress("", "legacy") p2sh_p2wpkh = self.nodes[1].getnewaddress("", "p2sh-segwit") diff --git a/test/functional/test_framework/test_node.py b/test/functional/test_framework/test_node.py index 14d1e5a09ed..ffd9252edab 100755 --- a/test/functional/test_framework/test_node.py +++ b/test/functional/test_framework/test_node.py @@ -931,21 +931,6 @@ class RPCOverloadWrapper(): def __getattr__(self, name): return getattr(self.rpc, name) - def addmultisigaddress(self, nrequired, keys, *, label=None, address_type=None): - wallet_info = self.getwalletinfo() - if 'descriptors' not in wallet_info or ('descriptors' in wallet_info and not wallet_info['descriptors']): - return self.__getattr__('addmultisigaddress')(nrequired, keys, label, address_type) - cms = self.createmultisig(nrequired, keys, address_type) - req = [{ - 'desc': cms['descriptor'], - 'timestamp': 0, - 'label': label if label else '', - }] - import_res = self.importdescriptors(req) - if not import_res[0]['success']: - raise JSONRPCException(import_res[0]['error']) - return cms - def importpubkey(self, pubkey, *, label=None, rescan=None): wallet_info = self.getwalletinfo() if 'descriptors' not in wallet_info or ('descriptors' in wallet_info and not wallet_info['descriptors']): diff --git a/test/functional/wallet_address_types.py b/test/functional/wallet_address_types.py index d8c2aab36de..cfb8f926f00 100755 --- a/test/functional/wallet_address_types.py +++ b/test/functional/wallet_address_types.py @@ -260,9 +260,11 @@ class AddressTypeTest(BitcoinTestFramework): else: address = self.nodes[to_node].getnewaddress(address_type=address_type) else: - addr1 = self.nodes[to_node].getnewaddress() - addr2 = self.nodes[to_node].getnewaddress() - address = self.nodes[to_node].addmultisigaddress(2, [addr1, addr2])['address'] + pubkey1 = self.nodes[to_node].getaddressinfo(self.nodes[to_node].getnewaddress())["pubkey"] + pubkey2 = self.nodes[to_node].getaddressinfo(self.nodes[to_node].getnewaddress())["pubkey"] + ms = self.nodes[to_node].createmultisig(2, [pubkey1, pubkey2]) + import_res = self.nodes[to_node].importdescriptors([{"desc": ms["descriptor"], "timestamp": 0}]) + assert_equal(import_res[0]["success"], True) # Do some sanity checking on the created address if address_type is not None: @@ -344,7 +346,7 @@ class AddressTypeTest(BitcoinTestFramework): self.test_address(3, self.nodes[3].getrawchangeaddress(), multisig=False, typ='bech32') self.log.info('test invalid address type arguments') - assert_raises_rpc_error(-5, "Unknown address type ''", self.nodes[3].addmultisigaddress, 2, [compressed_1, compressed_2], address_type="") + assert_raises_rpc_error(-5, "Unknown address type ''", self.nodes[3].createmultisig, 2, [compressed_1, compressed_2], address_type="") assert_raises_rpc_error(-5, "Unknown address type ''", self.nodes[3].getnewaddress, None, '') assert_raises_rpc_error(-5, "Unknown address type ''", self.nodes[3].getrawchangeaddress, '') assert_raises_rpc_error(-5, "Unknown address type 'bech23'", self.nodes[3].getrawchangeaddress, 'bech23') diff --git a/test/functional/wallet_fundrawtransaction.py b/test/functional/wallet_fundrawtransaction.py index aeaa8e54622..08d9e9226cb 100755 --- a/test/functional/wallet_fundrawtransaction.py +++ b/test/functional/wallet_fundrawtransaction.py @@ -565,16 +565,18 @@ class RawTransactionsTest(BitcoinTestFramework): self.nodes[2].createwallet(wallet_name='wmulti', disable_private_keys=True) wmulti = self.nodes[2].get_wallet_rpc('wmulti') w2 = self.nodes[2].get_wallet_rpc(self.default_wallet_name) - mSigObj = wmulti.addmultisigaddress( + mSigObj = self.nodes[2].createmultisig( 2, [ addr1Obj['pubkey'], addr2Obj['pubkey'], ] - )['address'] + ) + import_res = wmulti.importdescriptors([{"desc": mSigObj["descriptor"], "timestamp": "now"}]) + assert_equal(import_res[0]["success"], True) # Send 1.2 BTC to msig addr. - self.nodes[0].sendtoaddress(mSigObj, 1.2) + self.nodes[0].sendtoaddress(mSigObj["address"], 1.2) self.generate(self.nodes[0], 1) oldBalance = self.nodes[1].getbalance() diff --git a/test/functional/wallet_labels.py b/test/functional/wallet_labels.py index 2f580e18d92..56b721551b3 100755 --- a/test/functional/wallet_labels.py +++ b/test/functional/wallet_labels.py @@ -35,7 +35,6 @@ class WalletLabelsTest(BitcoinTestFramework): [node.setlabel, address], [node.getaddressesbylabel], [node.importpubkey, pubkey], - [node.addmultisigaddress, 1, [pubkey]], [node.getreceivedbylabel], [node.listsinceblock, node.getblockhash(0), 1, False, True, False], ]