Changeset View
Changeset View
Standalone View
Standalone View
test/functional/wallet_importdescriptors.py
Show First 20 Lines • Show All 270 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
self.test_importdesc({"desc": descsum_create(desc), | self.test_importdesc({"desc": descsum_create(desc), | ||||
"timestamp": "now"}, | "timestamp": "now"}, | ||||
success=True, | success=True, | ||||
wallet=wpriv) | wallet=wpriv) | ||||
test_address(wpriv, | test_address(wpriv, | ||||
address, | address, | ||||
solvable=True, | solvable=True, | ||||
ismine=True) | ismine=True) | ||||
txid = w0.sendtoaddress(address, 49.99999600) | txid = w0.sendtoaddress(address, 49999996.00) | ||||
w0.generatetoaddress(6, w0.getnewaddress()) | w0.generatetoaddress(6, w0.getnewaddress()) | ||||
self.sync_blocks() | self.sync_blocks() | ||||
tx = wpriv.createrawtransaction([{"txid": txid, "vout": 0}], { | tx = wpriv.createrawtransaction([{"txid": txid, "vout": 0}], { | ||||
w0.getnewaddress(): 49.999}) | w0.getnewaddress(): 49999000}) | ||||
signed_tx = wpriv.signrawtransactionwithwallet(tx) | signed_tx = wpriv.signrawtransactionwithwallet(tx) | ||||
w1.sendrawtransaction(signed_tx['hex']) | w1.sendrawtransaction(signed_tx['hex']) | ||||
# Make sure that we can use import and use multisig as addresses | # Make sure that we can use import and use multisig as addresses | ||||
self.log.info( | self.log.info( | ||||
'Test that multisigs can be imported, signed for, and getnewaddress\'d') | 'Test that multisigs can be imported, signed for, and getnewaddress\'d') | ||||
self.nodes[1].createwallet( | self.nodes[1].createwallet( | ||||
wallet_name="wmulti_priv", | wallet_name="wmulti_priv", | ||||
Show All 27 Lines | def run_test(self): | ||||
addr, | addr, | ||||
'ecregtest:pzkcf26dw7np58jcspnpxaupgz9csnc3wsf5wdh2a3') | 'ecregtest:pzkcf26dw7np58jcspnpxaupgz9csnc3wsf5wdh2a3') | ||||
change_addr = wmulti_priv.getrawchangeaddress() | change_addr = wmulti_priv.getrawchangeaddress() | ||||
assert_equal( | assert_equal( | ||||
change_addr, | change_addr, | ||||
'ecregtest:prnkfg7pxe3kpyv3l4v00ft6q3sfseag7vnva0k49n') | 'ecregtest:prnkfg7pxe3kpyv3l4v00ft6q3sfseag7vnva0k49n') | ||||
assert_equal(wmulti_priv.getwalletinfo()['keypoolsize'], 1000) | assert_equal(wmulti_priv.getwalletinfo()['keypoolsize'], 1000) | ||||
txid = w0.sendtoaddress(addr, 10) | txid = w0.sendtoaddress(addr, 10000000) | ||||
self.nodes[0].generate(6) | self.nodes[0].generate(6) | ||||
self.sync_all() | self.sync_all() | ||||
self.nodes[1].createwallet( | self.nodes[1].createwallet( | ||||
wallet_name="wmulti_pub", | wallet_name="wmulti_pub", | ||||
disable_private_keys=True, | disable_private_keys=True, | ||||
blank=True, | blank=True, | ||||
descriptors=True) | descriptors=True) | ||||
Show All 25 Lines | def run_test(self): | ||||
addr, | addr, | ||||
'ecregtest:pr5xql8r03jp5dvrep22dns59vf7hhykr5nmaucy2h') | 'ecregtest:pr5xql8r03jp5dvrep22dns59vf7hhykr5nmaucy2h') | ||||
change_addr = wmulti_pub.getrawchangeaddress() | change_addr = wmulti_pub.getrawchangeaddress() | ||||
assert_equal( | assert_equal( | ||||
change_addr, | change_addr, | ||||
'ecregtest:prnkfg7pxe3kpyv3l4v00ft6q3sfseag7vnva0k49n') | 'ecregtest:prnkfg7pxe3kpyv3l4v00ft6q3sfseag7vnva0k49n') | ||||
assert_equal(wmulti_pub.getwalletinfo()['keypoolsize'], 999) | assert_equal(wmulti_pub.getwalletinfo()['keypoolsize'], 999) | ||||
txid = w0.sendtoaddress(addr, 10) | 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()) | ||||
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", | ||||
▲ Show 20 Lines • Show All 50 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
res[0]['warnings'][0], | res[0]['warnings'][0], | ||||
'Not all private keys provided. Some wallet functionality may return unexpected errors') | 'Not all private keys provided. Some wallet functionality may return unexpected errors') | ||||
assert_equal(res[1]['success'], True) | assert_equal(res[1]['success'], True) | ||||
assert_equal( | assert_equal( | ||||
res[1]['warnings'][0], | res[1]['warnings'][0], | ||||
'Not all private keys provided. Some wallet functionality may return unexpected errors') | 'Not all private keys provided. Some wallet functionality may return unexpected errors') | ||||
rawtx = self.nodes[1].createrawtransaction( | rawtx = self.nodes[1].createrawtransaction( | ||||
[{'txid': txid, 'vout': vout}], {w0.getnewaddress(): 9.999}) | [{'txid': txid, 'vout': vout}], {w0.getnewaddress(): 9999000}) | ||||
tx_signed_1 = wmulti_priv1.signrawtransactionwithwallet(rawtx) | tx_signed_1 = wmulti_priv1.signrawtransactionwithwallet(rawtx) | ||||
assert_equal(tx_signed_1['complete'], False) | assert_equal(tx_signed_1['complete'], False) | ||||
tx_signed_2 = wmulti_priv2.signrawtransactionwithwallet( | tx_signed_2 = wmulti_priv2.signrawtransactionwithwallet( | ||||
tx_signed_1['hex']) | tx_signed_1['hex']) | ||||
assert_equal(tx_signed_2['complete'], True) | assert_equal(tx_signed_2['complete'], True) | ||||
self.nodes[1].sendrawtransaction(tx_signed_2['hex']) | self.nodes[1].sendrawtransaction(tx_signed_2['hex']) | ||||
self.log.info("Combo descriptors cannot be active") | self.log.info("Combo descriptors cannot be active") | ||||
Show All 19 Lines |