MCPcopy Create free account
hub / github.com/ElementsProject/elements / test_watchonly_psbt

Function test_watchonly_psbt

test/functional/wallet_bumpfee.py:388–481  ·  view source on GitHub ↗
(self, peer_node, rbf_node, dest_address)

Source from the content-addressed store, hash-verified

386
387
388def test_watchonly_psbt(self, peer_node, rbf_node, dest_address):
389 self.log.info('Test that PSBT is returned for bumpfee in watchonly wallets')
390 priv_rec_desc = "wpkh([00000001/84'/1'/0']tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/0/*)#rweraev0"
391 pub_rec_desc = rbf_node.getdescriptorinfo(priv_rec_desc)["descriptor"]
392 priv_change_desc = "wpkh([00000001/84'/1'/0']tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/*)#j6uzqvuh"
393 pub_change_desc = rbf_node.getdescriptorinfo(priv_change_desc)["descriptor"]
394 # Create a wallet with private keys that can sign PSBTs
395 rbf_node.createwallet(wallet_name="signer", disable_private_keys=False, blank=True)
396 signer = rbf_node.get_wallet_rpc("signer")
397 assert signer.getwalletinfo()['private_keys_enabled']
398 reqs = [{
399 "desc": priv_rec_desc,
400 "timestamp": 0,
401 "range": [0,1],
402 "internal": False,
403 "keypool": False # Keys can only be imported to the keypool when private keys are disabled
404 },
405 {
406 "desc": priv_change_desc,
407 "timestamp": 0,
408 "range": [0, 0],
409 "internal": True,
410 "keypool": False
411 }]
412 if self.options.descriptors:
413 result = signer.importdescriptors(reqs)
414 else:
415 result = signer.importmulti(reqs)
416 assert_equal(result, [{'success': True}, {'success': True}])
417
418 # Create another wallet with just the public keys, which creates PSBTs
419 rbf_node.createwallet(wallet_name="watcher", disable_private_keys=True, blank=True)
420 watcher = rbf_node.get_wallet_rpc("watcher")
421 assert not watcher.getwalletinfo()['private_keys_enabled']
422
423 reqs = [{
424 "desc": pub_rec_desc,
425 "timestamp": 0,
426 "range": [0, 10],
427 "internal": False,
428 "keypool": True,
429 "watchonly": True,
430 "active": True,
431 }, {
432 "desc": pub_change_desc,
433 "timestamp": 0,
434 "range": [0, 10],
435 "internal": True,
436 "keypool": True,
437 "watchonly": True,
438 "active": True,
439 }]
440 if self.options.descriptors:
441 result = watcher.importdescriptors(reqs)
442 else:
443 result = watcher.importmulti(reqs)
444 assert_equal(result, [{'success': True}, {'success': True}])
445

Callers 1

run_testMethod · 0.85

Calls 9

assert_equalFunction · 0.90
assert_raises_rpc_errorFunction · 0.90
assert_greater_thanFunction · 0.90
infoMethod · 0.80
createwalletMethod · 0.80
sendrawtransactionMethod · 0.80
clear_mempoolMethod · 0.80
get_wallet_rpcMethod · 0.45
generateMethod · 0.45

Tested by

no test coverage detected