wallet_blank.py raw
1 #!/usr/bin/env python3
2 # Copyright (c) 2022-present The Bitcoin Core developers
3 # Distributed under the MIT software license, see the accompanying
4 # file COPYING or https://www.opensource.org/licenses/mit-license.php.
5
6
7 from test_framework.test_framework import BitcoinTestFramework
8 from test_framework.address import (
9 ADDRESS_BCRT1_UNSPENDABLE_DESCRIPTOR,
10 )
11 from test_framework.util import (
12 assert_equal,
13 )
14
15
16 class WalletBlankTest(BitcoinTestFramework):
17 def set_test_params(self):
18 self.num_nodes = 1
19
20 def skip_test_if_missing_module(self):
21 self.skip_if_no_wallet()
22
23 def test_importdescriptors(self):
24 self.log.info("Test that importdescriptors preserves the blank flag")
25 self.nodes[0].createwallet(wallet_name="idesc", disable_private_keys=True, blank=True)
26 wallet = self.nodes[0].get_wallet_rpc("idesc")
27 info = wallet.getwalletinfo()
28 assert_equal(info["descriptors"], True)
29 assert_equal(info["blank"], True)
30 wallet.importdescriptors([{
31 "desc": ADDRESS_BCRT1_UNSPENDABLE_DESCRIPTOR,
32 "timestamp": "now",
33 }])
34 assert_equal(wallet.getwalletinfo()["blank"], True)
35
36 def test_encrypt_descriptors(self):
37 self.log.info("Test that encrypting a blank descriptor wallet preserves the blank flag and descriptors remain the same")
38 self.nodes[0].createwallet(wallet_name="encblankdesc", blank=True)
39 wallet = self.nodes[0].get_wallet_rpc("encblankdesc")
40
41 info = wallet.getwalletinfo()
42 assert_equal(info["descriptors"], True)
43 assert_equal(info["blank"], True)
44 descs = wallet.listdescriptors()
45
46 wallet.encryptwallet("pass")
47 assert_equal(wallet.getwalletinfo()["blank"], True)
48 assert_equal(descs, wallet.listdescriptors())
49
50 def run_test(self):
51 self.test_importdescriptors()
52 self.test_encrypt_descriptors()
53
54
55 if __name__ == '__main__':
56 WalletBlankTest(__file__).main()
57