@@ -172,9 +172,9 @@ class WalletTaprootTest(BitcoinTestFramework):
172
172
"""Test generation and spending of P2TR address outputs."""
173
173
174
174
def set_test_params (self ):
175
- self .num_nodes = 2
175
+ self .num_nodes = 3
176
176
self .setup_clean_chain = True
177
- self .extra_args = [['-keypool=100' ], ['-keypool=100' ]]
177
+ self .extra_args = [['-keypool=100' ], ['-keypool=100' ], [ "-vbparams=taproot:1:1" ] ]
178
178
self .supports_cli = False
179
179
180
180
def skip_test_if_missing_module (self ):
@@ -230,12 +230,34 @@ def do_test_addr(self, comment, pattern, privmap, treefn, keys):
230
230
addr_r = self .make_addr (treefn , keys , i )
231
231
assert_equal (addr_g , addr_r )
232
232
233
+ # tr descriptors cannot be imported when Taproot is not active
234
+ result = self .privs_tr_enabled .importdescriptors ([{"desc" : desc , "timestamp" : "now" }])
235
+ assert (result [0 ]["success" ])
236
+ result = self .privs_tr_disabled .importdescriptors ([{"desc" : desc , "timestamp" : "now" }])
237
+ assert (not result [0 ]["success" ])
238
+ assert_equal (result [0 ]["error" ]["code" ], - 4 )
239
+ assert_equal (result [0 ]["error" ]["message" ], "Cannot import tr() descriptor when Taproot is not active" )
240
+ result = self .pubs_tr_enabled .importdescriptors ([{"desc" : desc_pub , "timestamp" : "now" }])
241
+ assert (result [0 ]["success" ])
242
+ result = self .pubs_tr_disabled .importdescriptors ([{"desc" : desc_pub , "timestamp" : "now" }])
243
+ assert (not result [0 ]["success" ])
244
+ assert_equal (result [0 ]["error" ]["code" ], - 4 )
245
+ assert_equal (result [0 ]["error" ]["message" ], "Cannot import tr() descriptor when Taproot is not active" )
246
+
233
247
def do_test (self , comment , pattern , privmap , treefn , nkeys ):
234
248
keys = self .rand_keys (nkeys )
235
249
self .do_test_addr (comment , pattern , privmap , treefn , keys )
236
250
237
251
def run_test (self ):
238
252
self .log .info ("Creating wallets..." )
253
+ self .nodes [0 ].createwallet (wallet_name = "privs_tr_enabled" , descriptors = True , blank = True )
254
+ self .privs_tr_enabled = self .nodes [0 ].get_wallet_rpc ("privs_tr_enabled" )
255
+ self .nodes [2 ].createwallet (wallet_name = "privs_tr_disabled" , descriptors = True , blank = True )
256
+ self .privs_tr_disabled = self .nodes [2 ].get_wallet_rpc ("privs_tr_disabled" )
257
+ self .nodes [0 ].createwallet (wallet_name = "pubs_tr_enabled" , descriptors = True , blank = True , disable_private_keys = True )
258
+ self .pubs_tr_enabled = self .nodes [0 ].get_wallet_rpc ("pubs_tr_enabled" )
259
+ self .nodes [2 ].createwallet (wallet_name = "pubs_tr_disabled" , descriptors = True , blank = True , disable_private_keys = True )
260
+ self .pubs_tr_disabled = self .nodes [2 ].get_wallet_rpc ("pubs_tr_disabled" )
239
261
self .nodes [0 ].createwallet (wallet_name = "addr_gen" , descriptors = True , disable_private_keys = True , blank = True )
240
262
self .addr_gen = self .nodes [0 ].get_wallet_rpc ("addr_gen" )
241
263
0 commit comments