Skip to content

Commit 2dd0d4c

Browse files
ShahanaFarooquirustyrussell
authored andcommitted
test: listaddresses tests
Added a new test for listaddresses rpc.
1 parent 117dd74 commit 2dd0d4c

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

tests/test_misc.py

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4325,3 +4325,84 @@ def test_badparam_discretion(node_factory):
43254325
l1.rpc.check('checkrune', rune='THIS IS NOT ACTUALLY A RUNE')
43264326

43274327
assert err.value.error['message'] == "rune: should be base64 string: invalid token '\"THIS IS NOT ACTUALLY A RUNE\"'"
4328+
4329+
4330+
@unittest.skipIf(TEST_NETWORK == 'liquid-regtest', "P2TR not yet supported on Elements")
4331+
def test_listaddresses(node_factory):
4332+
"""Test listaddresses command."""
4333+
l1 = node_factory.get_node()
4334+
addr = []
4335+
for i in range(10):
4336+
if i % 3 == 0:
4337+
addr.append(l1.rpc.newaddr('all')['p2tr'])
4338+
elif i % 3 == 1:
4339+
addr.append(l1.rpc.newaddr('p2tr')['p2tr'])
4340+
else:
4341+
addr.append(l1.rpc.newaddr('bech32')['bech32'])
4342+
4343+
# Default start and limit (all)
4344+
addresses = l1.rpc.listaddresses()["addresses"]
4345+
assert len(addresses) == 10
4346+
assert addresses[0]['keyidx'] == 1
4347+
assert addresses[-1]['keyidx'] == 10
4348+
4349+
# Default limit (till end)
4350+
addresses = l1.rpc.listaddresses(start=5)["addresses"]
4351+
assert len(addresses) == 6
4352+
assert addresses[0]['keyidx'] == 5
4353+
assert addresses[-1]['keyidx'] == 10
4354+
4355+
# Default start
4356+
addresses = l1.rpc.listaddresses(limit=5)["addresses"]
4357+
assert len(addresses) == 5
4358+
assert addresses[0]['keyidx'] == 1
4359+
assert addresses[-1]['keyidx'] == 5
4360+
4361+
# Start and limit
4362+
addresses = l1.rpc.listaddresses(start=5, limit=2)["addresses"]
4363+
assert len(addresses) == 2
4364+
assert addresses[0]['keyidx'] == 5
4365+
assert addresses[-1]['keyidx'] == 6
4366+
4367+
# Invalid Address
4368+
with pytest.raises(RpcError, match='Could not parse destination address, address should be a valid address') as err:
4369+
l1.rpc.listaddresses(address="bcrt1q3p9jh7x0907wc0")
4370+
4371+
assert err.value.error['code'] == -1
4372+
assert err.value.error['message'] == "Could not parse destination address, address should be a valid address"
4373+
4374+
# Address search, default start=0, default limit is length of the list
4375+
addresses = l1.rpc.listaddresses(address=addr[7])["addresses"]
4376+
assert len(addresses) == 1
4377+
assert addresses[0]['keyidx'] == 8
4378+
4379+
# Address is between start and limit indices
4380+
addresses = l1.rpc.listaddresses(address=addr[4], start=2, limit=4)["addresses"]
4381+
assert len(addresses) == 1
4382+
assert addresses[0]['keyidx'] == 5
4383+
4384+
# Address is not between start and limit indices
4385+
addresses = l1.rpc.listaddresses(address=addr[9], start=5, limit=4)["addresses"]
4386+
assert len(addresses) == 0
4387+
4388+
# Not our Address
4389+
addresses = l1.rpc.listaddresses(address="bcrt1q3p9jh7x0mnx8tmx5meapksvcxytlxgwz907wc0")["addresses"]
4390+
assert len(addresses) == 0
4391+
4392+
# Check all fields are present in the response
4393+
addresses = l1.rpc.listaddresses(address=addr[0])["addresses"]
4394+
assert addresses[0]['keyidx'] == 1
4395+
assert addresses[0]['bech32'] == 'bcrt1qq8adjz4u6enf0cjey9j8yt0y490tact93fzgsf'
4396+
assert addresses[0]['p2tr'] == 'bcrt1pjaazqg6qgqpv2wxgdpg8hyj49wehrfgajqe2tyuzhcp7p50hachq7tkdxf'
4397+
4398+
# start > 10 (issued addresses till now)
4399+
addresses = l1.rpc.listaddresses(start=11, limit=2)["addresses"]
4400+
assert len(addresses) == 0
4401+
4402+
# limit > bip32_max_index (10)
4403+
addresses = l1.rpc.listaddresses(start=8, limit=15)["addresses"]
4404+
assert len(addresses) == 3
4405+
4406+
# start and limit from future
4407+
addresses = l1.rpc.listaddresses(start=21, limit=5)["addresses"]
4408+
assert len(addresses) == 0

0 commit comments

Comments
 (0)