Changeset View
Changeset View
Standalone View
Standalone View
test/functional/rpc_deriveaddresses.py
Show All 28 Lines | def run_test(self): | ||||
descriptor_pubkey = "pkh(tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/1/1/0)#7st8eans" | descriptor_pubkey = "pkh(tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/1/1/0)#7st8eans" | ||||
address = "bchreg:qzgrvmwc8vevauc25j86hgfpduz8j98yvvyr0qx0ew" | address = "bchreg:qzgrvmwc8vevauc25j86hgfpduz8j98yvvyr0qx0ew" | ||||
assert_equal(self.nodes[0].deriveaddresses( | assert_equal(self.nodes[0].deriveaddresses( | ||||
descriptor_pubkey), [address]) | descriptor_pubkey), [address]) | ||||
ranged_descriptor = "pkh(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/*)#77vpsvm5" | ranged_descriptor = "pkh(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/*)#77vpsvm5" | ||||
assert_equal( | assert_equal( | ||||
self.nodes[0].deriveaddresses(ranged_descriptor, 0, 2), | self.nodes[0].deriveaddresses(ranged_descriptor, [1, 2]), | ||||
["bchreg:qz7mjsvr6gglnl389gnfxmqx0asxp0hcvqjx829c6k", "bchreg:qq9q9wefpjzuna7qhuzz7rvck9tuhrzp3gvrzd8kx2"]) | |||||
assert_equal( | |||||
self.nodes[0].deriveaddresses(ranged_descriptor, 2), | |||||
[address, "bchreg:qz7mjsvr6gglnl389gnfxmqx0asxp0hcvqjx829c6k", "bchreg:qq9q9wefpjzuna7qhuzz7rvck9tuhrzp3gvrzd8kx2"]) | [address, "bchreg:qz7mjsvr6gglnl389gnfxmqx0asxp0hcvqjx829c6k", "bchreg:qq9q9wefpjzuna7qhuzz7rvck9tuhrzp3gvrzd8kx2"]) | ||||
assert_raises_rpc_error( | assert_raises_rpc_error( | ||||
-8, | -8, | ||||
"Range should not be specified for an un-ranged descriptor", | "Range should not be specified for an un-ranged descriptor", | ||||
self.nodes[0].deriveaddresses, | self.nodes[0].deriveaddresses, | ||||
descsum_create( | descsum_create( | ||||
"pkh(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/0)"), | "pkh(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/0)"), | ||||
0, | [0, 2]) | ||||
2) | |||||
assert_raises_rpc_error( | assert_raises_rpc_error( | ||||
-8, | -8, | ||||
"Range must be specified for a ranged descriptor", | "Range must be specified for a ranged descriptor", | ||||
self.nodes[0].deriveaddresses, | self.nodes[0].deriveaddresses, | ||||
descsum_create("pkh(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/*)")) | descsum_create("pkh(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/*)")) | ||||
assert_raises_rpc_error( | assert_raises_rpc_error( | ||||
-8, | -8, | ||||
"Missing range end parameter", | "End of range is too high", | ||||
self.nodes[0].deriveaddresses, | |||||
descsum_create( | |||||
"pkh(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/*)"), | |||||
10000000000) | |||||
assert_raises_rpc_error( | |||||
-8, | |||||
"Range is too large", | |||||
self.nodes[0].deriveaddresses, | self.nodes[0].deriveaddresses, | ||||
descsum_create( | descsum_create( | ||||
"pkh(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/*)"), | "pkh(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/*)"), | ||||
0) | [1000000000, 2000000000]) | ||||
assert_raises_rpc_error( | assert_raises_rpc_error( | ||||
-8, | -8, | ||||
"Range end should be equal to or greater than begin", | "Range specified as [begin,end] must not have begin after end", | ||||
self.nodes[0].deriveaddresses, | self.nodes[0].deriveaddresses, | ||||
descsum_create( | descsum_create( | ||||
"pkh(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/*)"), | "pkh(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/*)"), | ||||
2, | [2, 0]) | ||||
0) | |||||
assert_raises_rpc_error( | assert_raises_rpc_error( | ||||
-8, | -8, | ||||
"Range should be greater or equal than 0", | "Range should be greater or equal than 0", | ||||
self.nodes[0].deriveaddresses, | self.nodes[0].deriveaddresses, | ||||
descsum_create( | descsum_create( | ||||
"pkh(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/*)"), | "pkh(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/*)"), | ||||
-1, | [-1, 0]) | ||||
0) | |||||
combo_descriptor = descsum_create( | combo_descriptor = descsum_create( | ||||
"combo(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/0)") | "combo(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/1/1/0)") | ||||
assert_equal(self.nodes[0].deriveaddresses( | assert_equal(self.nodes[0].deriveaddresses( | ||||
combo_descriptor), [address, address]) | combo_descriptor), [address, address]) | ||||
hardened_without_privkey_descriptor = descsum_create( | hardened_without_privkey_descriptor = descsum_create( | ||||
"pkh(tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/1'/1/0)") | "pkh(tpubD6NzVbkrYhZ4WaWSyoBvQwbpLkojyoTZPRsgXELWz3Popb3qkjcJyJUGLnL4qHHoQvao8ESaAstxYSnhyswJ76uZPStJRJCTKvosUCJZL5B/1'/1/0)") | ||||
Show All 15 Lines |