tests: Add gettxout and scantxoutset tests to test_btc_xmr.py
This commit is contained in:
parent
9efb244952
commit
01bb3870b6
@ -285,34 +285,25 @@ class Test(BaseTest):
|
|||||||
|
|
||||||
swap_client = self.swap_clients[0]
|
swap_client = self.swap_clients[0]
|
||||||
|
|
||||||
|
# First address sometimes has a balance already
|
||||||
addr_plain = self.callnoderpc('getnewaddress', ['gettxout test',])
|
addr_plain = self.callnoderpc('getnewaddress', ['gettxout test',])
|
||||||
|
|
||||||
addr_plain1 = self.callnoderpc('getnewaddress', ['gettxout test 1',])
|
addr_plain1 = self.callnoderpc('getnewaddress', ['gettxout test 1',])
|
||||||
addr_witness = self.callnoderpc('addwitnessaddress', [addr_plain1,])
|
|
||||||
|
|
||||||
txid = self.callnoderpc('sendtoaddress', [addr_witness, 1.0])
|
txid = self.callnoderpc('sendtoaddress', [addr_plain1, 1.0])
|
||||||
assert len(txid) == 64
|
assert len(txid) == 64
|
||||||
|
|
||||||
self.callnoderpc('generatetoaddress', [1, self.firo_addr])
|
self.mineBlock()
|
||||||
|
|
||||||
unspents = self.callnoderpc('listunspent')
|
unspents = self.callnoderpc('listunspent', [0, 999999999, [addr_plain1,]])
|
||||||
|
|
||||||
for u in unspents:
|
|
||||||
if u['spendable'] is not True:
|
|
||||||
continue
|
|
||||||
if u['address'] == addr_witness:
|
|
||||||
print(u)
|
|
||||||
|
|
||||||
unspents = self.callnoderpc('listunspent', [0, 999999999, [addr_witness,]])
|
|
||||||
assert (len(unspents) == 1)
|
assert (len(unspents) == 1)
|
||||||
|
|
||||||
utxo = unspents[0]
|
utxo = unspents[0]
|
||||||
txout = self.callnoderpc('gettxout', [utxo['txid'], utxo['vout']])
|
txout = self.callnoderpc('gettxout', [utxo['txid'], utxo['vout']])
|
||||||
assert (addr_witness in txout['scriptPubKey']['addresses'])
|
assert (addr_plain1 in txout['scriptPubKey']['addresses'])
|
||||||
# Spend
|
# Spend
|
||||||
addr_plain2 = self.callnoderpc('getnewaddress', ['gettxout test 2',])
|
addr_plain2 = self.callnoderpc('getnewaddress', ['gettxout test 2',])
|
||||||
addr_witness2 = self.callnoderpc('addwitnessaddress', [addr_plain2,])
|
tx_funded = self.callnoderpc('createrawtransaction', [[{'txid': utxo['txid'], 'vout': utxo['vout']}], {addr_plain2: 0.99}])
|
||||||
tx_funded = self.callnoderpc('createrawtransaction', [[{'txid': utxo['txid'], 'vout': utxo['vout']}], {addr_witness2: 0.99}])
|
|
||||||
tx_signed = self.callnoderpc('signrawtransaction', [tx_funded,])['hex']
|
tx_signed = self.callnoderpc('signrawtransaction', [tx_funded,])['hex']
|
||||||
self.callnoderpc('sendrawtransaction', [tx_signed,])
|
self.callnoderpc('sendrawtransaction', [tx_signed,])
|
||||||
|
|
||||||
@ -320,7 +311,7 @@ class Test(BaseTest):
|
|||||||
txout = self.callnoderpc('gettxout', [utxo['txid'], utxo['vout']])
|
txout = self.callnoderpc('gettxout', [utxo['txid'], utxo['vout']])
|
||||||
assert (txout is None)
|
assert (txout is None)
|
||||||
|
|
||||||
self.callnoderpc('generatetoaddress', [1, self.firo_addr])
|
self.mineBlock()
|
||||||
|
|
||||||
ci = swap_client.ci(Coins.FIRO)
|
ci = swap_client.ci(Coins.FIRO)
|
||||||
require_amount: int = ci.make_int(1)
|
require_amount: int = ci.make_int(1)
|
||||||
|
@ -663,6 +663,45 @@ class BasicSwapTest(TestFunctions):
|
|||||||
rv = read_json_api(1800, 'getcoinseed', {'coin': 'XMR'})
|
rv = read_json_api(1800, 'getcoinseed', {'coin': 'XMR'})
|
||||||
assert (rv['address'] == '47H7UDLzYEsR28BWttxp59SP1UVSxs4VKDJYSfmz7Wd4Fue5VWuoV9x9eejunwzVSmHWN37gBkaAPNf9VD4bTvwQKsBVWyK')
|
assert (rv['address'] == '47H7UDLzYEsR28BWttxp59SP1UVSxs4VKDJYSfmz7Wd4Fue5VWuoV9x9eejunwzVSmHWN37gBkaAPNf9VD4bTvwQKsBVWyK')
|
||||||
|
|
||||||
|
def test_008_gettxout(self):
|
||||||
|
logging.info('---------- Test {} gettxout'.format(self.test_coin_from.name))
|
||||||
|
|
||||||
|
swap_client = self.swap_clients[0]
|
||||||
|
|
||||||
|
addr_1 = self.callnoderpc('getnewaddress', ['gettxout test 1',])
|
||||||
|
txid = self.callnoderpc('sendtoaddress', [addr_1, 1.0])
|
||||||
|
assert len(txid) == 64
|
||||||
|
|
||||||
|
self.mineBlock()
|
||||||
|
|
||||||
|
unspents = self.callnoderpc('listunspent', [0, 999999999, [addr_1,]])
|
||||||
|
assert (len(unspents) == 1)
|
||||||
|
|
||||||
|
utxo = unspents[0]
|
||||||
|
txout = self.callnoderpc('gettxout', [utxo['txid'], utxo['vout']])
|
||||||
|
assert (addr_1 == txout['scriptPubKey']['address'])
|
||||||
|
# Spend
|
||||||
|
addr_2 = self.callnoderpc('getnewaddress', ['gettxout test 2',])
|
||||||
|
tx_funded = self.callnoderpc('createrawtransaction', [[{'txid': utxo['txid'], 'vout': utxo['vout']}], {addr_2: 0.99}])
|
||||||
|
tx_signed = self.callnoderpc('signrawtransactionwithwallet', [tx_funded,])['hex']
|
||||||
|
self.callnoderpc('sendrawtransaction', [tx_signed,])
|
||||||
|
|
||||||
|
# utxo should be unavailable when spent in the mempool
|
||||||
|
txout = self.callnoderpc('gettxout', [utxo['txid'], utxo['vout']])
|
||||||
|
assert (txout is None)
|
||||||
|
|
||||||
|
def test_009_scantxoutset(self):
|
||||||
|
logging.info('---------- Test {} scantxoutset'.format(self.test_coin_from.name))
|
||||||
|
addr_1 = self.callnoderpc('getnewaddress', ['scantxoutset test', ])
|
||||||
|
txid = self.callnoderpc('sendtoaddress', [addr_1, 1.0])
|
||||||
|
assert len(txid) == 64
|
||||||
|
|
||||||
|
self.mineBlock()
|
||||||
|
|
||||||
|
ro = self.callnoderpc('scantxoutset', ['start', ['addr({})'.format(addr_1)]])
|
||||||
|
assert (len(ro['unspents']) == 1)
|
||||||
|
assert (ro['unspents'][0]['txid'] == txid)
|
||||||
|
|
||||||
def test_010_txn_size(self):
|
def test_010_txn_size(self):
|
||||||
logging.info('---------- Test {} txn_size'.format(self.test_coin_from.name))
|
logging.info('---------- Test {} txn_size'.format(self.test_coin_from.name))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user