@@ -19,10 +19,15 @@ def set_test_params(self):
19
19
self .extra_args = [["-disablewallet" ]]
20
20
self .wallet_names = []
21
21
22
- def test_desc (self , desc , isrange , issolvable , hasprivatekeys ):
22
+ def test_desc (self , desc , isrange , issolvable , hasprivatekeys , expanded_descs = None ):
23
23
info = self .nodes [0 ].getdescriptorinfo (desc )
24
24
assert_equal (info , self .nodes [0 ].getdescriptorinfo (descsum_create (desc )))
25
- assert_equal (info ['descriptor' ], descsum_create (desc ))
25
+ if expanded_descs is not None :
26
+ assert_equal (info ["descriptor" ], descsum_create (expanded_descs [0 ]))
27
+ assert_equal (info ["multipath_expansion" ], [descsum_create (x ) for x in expanded_descs ])
28
+ else :
29
+ assert_equal (info ['descriptor' ], descsum_create (desc ))
30
+ assert "multipath_expansion" not in info
26
31
assert_equal (info ['isrange' ], isrange )
27
32
assert_equal (info ['issolvable' ], issolvable )
28
33
assert_equal (info ['hasprivatekeys' ], hasprivatekeys )
@@ -60,6 +65,11 @@ def run_test(self):
60
65
self .test_desc ("pkh([d34db33f/44h/0h/0h]tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/1/*)" , isrange = True , issolvable = True , hasprivatekeys = False )
61
66
# A set of *1-of-2* P2WSH multisig outputs where the first multisig key is the *1/0/`i`* child of the first specified xpub and the second multisig key is the *0/0/`i`* child of the second specified xpub, and `i` is any number in a configurable range (`0-1000` by default).
62
67
self .test_desc ("wsh(multi(1,tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/1/0/*,tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/0/0/*))" , isrange = True , issolvable = True , hasprivatekeys = False )
68
+ # A multipath descriptor
69
+ self .test_desc ("wpkh(tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/<0;1>/*)" , isrange = True , issolvable = True , hasprivatekeys = False ,
70
+ expanded_descs = ["wpkh(tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/0/*)" , "wpkh(tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/1/*)" ])
71
+ self .test_desc ("wsh(multi(1,tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/<1;2>/0/*,tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/<2;3>/0/*))" , isrange = True , issolvable = True , hasprivatekeys = False ,
72
+ expanded_descs = ["wsh(multi(1,tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/1/0/*,tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/2/0/*))" , "wsh(multi(1,tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/2/0/*,tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/3/0/*))" ])
63
73
64
74
65
75
if __name__ == '__main__' :
0 commit comments