diff --git a/tests/basicswap/extended/test_firo.py b/tests/basicswap/extended/test_firo.py index 296c1c7..a54861e 100644 --- a/tests/basicswap/extended/test_firo.py +++ b/tests/basicswap/extended/test_firo.py @@ -285,34 +285,25 @@ class Test(BaseTest): swap_client = self.swap_clients[0] + # First address sometimes has a balance already addr_plain = self.callnoderpc('getnewaddress', ['gettxout test',]) 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 - self.callnoderpc('generatetoaddress', [1, self.firo_addr]) + self.mineBlock() - unspents = self.callnoderpc('listunspent') - - 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,]]) + unspents = self.callnoderpc('listunspent', [0, 999999999, [addr_plain1,]]) assert (len(unspents) == 1) utxo = unspents[0] txout = self.callnoderpc('gettxout', [utxo['txid'], utxo['vout']]) - assert (addr_witness in txout['scriptPubKey']['addresses']) + assert (addr_plain1 in txout['scriptPubKey']['addresses']) # Spend 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_witness2: 0.99}]) + tx_funded = self.callnoderpc('createrawtransaction', [[{'txid': utxo['txid'], 'vout': utxo['vout']}], {addr_plain2: 0.99}]) tx_signed = self.callnoderpc('signrawtransaction', [tx_funded,])['hex'] self.callnoderpc('sendrawtransaction', [tx_signed,]) @@ -320,7 +311,7 @@ class Test(BaseTest): txout = self.callnoderpc('gettxout', [utxo['txid'], utxo['vout']]) assert (txout is None) - self.callnoderpc('generatetoaddress', [1, self.firo_addr]) + self.mineBlock() ci = swap_client.ci(Coins.FIRO) require_amount: int = ci.make_int(1) diff --git a/tests/basicswap/test_btc_xmr.py b/tests/basicswap/test_btc_xmr.py index cd22afa..01b0c2e 100644 --- a/tests/basicswap/test_btc_xmr.py +++ b/tests/basicswap/test_btc_xmr.py @@ -663,6 +663,45 @@ class BasicSwapTest(TestFunctions): rv = read_json_api(1800, 'getcoinseed', {'coin': 'XMR'}) 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): logging.info('---------- Test {} txn_size'.format(self.test_coin_from.name))