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