Changeset View
Changeset View
Standalone View
Standalone View
test/functional/wallet_importdescriptors.py
Show First 20 Lines • Show All 119 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
assert_equal(w1.getwalletinfo()['keypoolsize'], 0) | assert_equal(w1.getwalletinfo()['keypoolsize'], 0) | ||||
test_address(w1, | test_address(w1, | ||||
key.p2pkh_addr, | key.p2pkh_addr, | ||||
ismine=True, | ismine=True, | ||||
solvable=True) | solvable=True) | ||||
# Check persistence of data and that loading works correctly | |||||
w1.unloadwallet() | |||||
self.nodes[1].loadwallet('w1') | |||||
test_address(w1, | |||||
key.p2pkh_addr, | |||||
ismine=True, | |||||
solvable=True) | |||||
# # Test importing of a multisig descriptor | # # Test importing of a multisig descriptor | ||||
key1 = get_generate_key() | key1 = get_generate_key() | ||||
key2 = get_generate_key() | key2 = get_generate_key() | ||||
self.log.info("Should import a 1-of-2 bare multisig from descriptor") | self.log.info("Should import a 1-of-2 bare multisig from descriptor") | ||||
self.test_importdesc({"desc": descsum_create("multi(1," + key1.pubkey + "," + key2.pubkey + ")"), | self.test_importdesc({"desc": descsum_create("multi(1," + key1.pubkey + "," + key2.pubkey + ")"), | ||||
"timestamp": "now"}, | "timestamp": "now"}, | ||||
success=True) | success=True) | ||||
self.log.info( | self.log.info( | ||||
▲ Show 20 Lines • Show All 231 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
assert_equal(wmulti_pub.getwalletinfo()['keypoolsize'], 999) | assert_equal(wmulti_pub.getwalletinfo()['keypoolsize'], 999) | ||||
txid = w0.sendtoaddress(addr, 10000000) | txid = w0.sendtoaddress(addr, 10000000) | ||||
vout = find_vout_for_address(self.nodes[0], txid, addr) | vout = find_vout_for_address(self.nodes[0], txid, addr) | ||||
self.nodes[0].generate(6) | self.nodes[0].generate(6) | ||||
self.sync_all() | self.sync_all() | ||||
assert_equal(wmulti_pub.getbalance(), wmulti_priv.getbalance()) | assert_equal(wmulti_pub.getbalance(), wmulti_priv.getbalance()) | ||||
# Make sure that descriptor wallets containing multiple xpubs in a | |||||
# single descriptor load correctly | |||||
wmulti_pub.unloadwallet() | |||||
self.nodes[1].loadwallet('wmulti_pub') | |||||
self.log.info("Multisig with distributed keys") | self.log.info("Multisig with distributed keys") | ||||
self.nodes[1].createwallet( | self.nodes[1].createwallet( | ||||
wallet_name="wmulti_priv1", | wallet_name="wmulti_priv1", | ||||
descriptors=True) | descriptors=True) | ||||
wmulti_priv1 = self.nodes[1].get_wallet_rpc("wmulti_priv1") | wmulti_priv1 = self.nodes[1].get_wallet_rpc("wmulti_priv1") | ||||
res = wmulti_priv1.importdescriptors([ | res = wmulti_priv1.importdescriptors([ | ||||
{ | { | ||||
"desc": descsum_create("sh(multi(2,tprv8ZgxMBicQKsPevADjDCWsa6DfhkVXicu8NQUzfibwX2MexVwW4tCec5mXdCW8kJwkzBRRmAay1KZya4WsehVvjTGVW6JLqiqd8DdZ4xSg52/84h/0h/0h/*,[59b09cd6/84h/0h/0h]tpubDDBF2BTR6s8drwrfDei8WxtckGuSm1cyoKxYY1QaKSBFbHBYQArWhHPA6eJrzZej6nfHGLSURYSLHr7GuYch8aY5n61tGqgn8b4cXrMuoPH/*,[e81a0532/84h/0h/0h]tpubDCsWoW1kuQB9kG5MXewHqkbjPtqPueRnXju7uM2NK7y3JYb2ajAZ9EiuZXNNuE4661RAfriBWhL8UsnAPpk8zrKKnZw1Ug7X4oHgMdZiU4E/*))"), | "desc": descsum_create("sh(multi(2,tprv8ZgxMBicQKsPevADjDCWsa6DfhkVXicu8NQUzfibwX2MexVwW4tCec5mXdCW8kJwkzBRRmAay1KZya4WsehVvjTGVW6JLqiqd8DdZ4xSg52/84h/0h/0h/*,[59b09cd6/84h/0h/0h]tpubDDBF2BTR6s8drwrfDei8WxtckGuSm1cyoKxYY1QaKSBFbHBYQArWhHPA6eJrzZej6nfHGLSURYSLHr7GuYch8aY5n61tGqgn8b4cXrMuoPH/*,[e81a0532/84h/0h/0h]tpubDCsWoW1kuQB9kG5MXewHqkbjPtqPueRnXju7uM2NK7y3JYb2ajAZ9EiuZXNNuE4661RAfriBWhL8UsnAPpk8zrKKnZw1Ug7X4oHgMdZiU4E/*))"), | ||||
▲ Show 20 Lines • Show All 81 Lines • Show Last 20 Lines |