From ec2adf3c51ca7322307be3d052bc0e9fa4332dd2 Mon Sep 17 00:00:00 2001 From: w0xlt <94266259+w0xlt@users.noreply.github.com> Date: Thu, 20 Aug 2026 17:53:37 -0700 Subject: [PATCH] test: Check miniscript descriptor h and apostrophe equivalence --- test/functional/wallet_importdescriptors.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/functional/wallet_importdescriptors.py b/test/functional/wallet_importdescriptors.py index 328b4c99b85..8953402ef49 100755 --- a/test/functional/wallet_importdescriptors.py +++ b/test/functional/wallet_importdescriptors.py @@ -629,6 +629,24 @@ class ImportDescriptorsTest(BitcoinTestFramework): success=True) assert_equal(w1.getnewaddress('', 'bech32'), addresses[i]) + self.log.info("Equivalent Miniscript descriptors should not be duplicated") + self.nodes[1].createwallet(wallet_name="wminiscript", disable_private_keys=True, blank=True) + wminiscript = self.nodes[1].get_wallet_rpc("wminiscript") + miniscript_request = { + 'active': True, + 'range': [0, 9], + 'timestamp': 'now', + } + self.test_importdesc({ + **miniscript_request, + 'desc': descsum_create(f"wsh(and_v(v:pk([80002067/0h/0h]{xpub}/*),older(1)))"), + }, success=True, wallet=wminiscript) + self.test_importdesc({ + **miniscript_request, + 'desc': descsum_create(f"wsh(and_v(v:pk([80002067/0'/0']{xpub}/*),older(1)))"), + }, success=True, wallet=wminiscript) + assert_equal(len(wminiscript.listdescriptors()["descriptors"]), 1) + # Check active=False default self.log.info('Check imported descriptors are not active by default') self.test_importdesc({'desc': descsum_create('pkh([12345678/1h]' + xpub + '/*)'),