Skip to content

Commit

Permalink
Merge bitcoin/bitcoin#18919: test: Add gettransaction test for "coin-…
Browse files Browse the repository at this point in the history
…join" tx

fa20f89 test: Add gettransaction test for "coin-join" tx (MarcoFalke)

Pull request description:

ACKs for top commit:
  furszy:
    utACK fa20f89

Tree-SHA512: 6e92455ef478d6bf2c544910402be9046698ded66f1f68d5fe5b989aafc20ba0537d362331e0e653595bca553166f6197fe548bdd0bcf295743775b8afb663a1
  • Loading branch information
fanquake committed Nov 23, 2023
2 parents f4073c5 + fa20f89 commit 930bcfd
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions test/functional/wallet_listtransactions.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ def run_test(self):

self.run_rbf_opt_in_test()
self.run_externally_generated_address_test()
self.run_coinjoin_test()
self.run_invalid_parameters_test()
self.test_op_return()

Expand Down Expand Up @@ -281,6 +282,34 @@ def normalize_list(txs):
assert_equal(['pizza2'], self.nodes[0].getaddressinfo(addr2)['labels'])
assert_equal(['pizza3'], self.nodes[0].getaddressinfo(addr3)['labels'])

def run_coinjoin_test(self):
self.log.info('Check "coin-join" transaction')
input_0 = next(i for i in self.nodes[0].listunspent(query_options={"minimumAmount": 0.2}, include_unsafe=False))
input_1 = next(i for i in self.nodes[1].listunspent(query_options={"minimumAmount": 0.2}, include_unsafe=False))
raw_hex = self.nodes[0].createrawtransaction(
inputs=[
{
"txid": input_0["txid"],
"vout": input_0["vout"],
},
{
"txid": input_1["txid"],
"vout": input_1["vout"],
},
],
outputs={
self.nodes[0].getnewaddress(): 0.123,
self.nodes[1].getnewaddress(): 0.123,
},
)
raw_hex = self.nodes[0].signrawtransactionwithwallet(raw_hex)["hex"]
raw_hex = self.nodes[1].signrawtransactionwithwallet(raw_hex)["hex"]
txid_join = self.nodes[0].sendrawtransaction(hexstring=raw_hex, maxfeerate=0)
fee_join = self.nodes[0].getmempoolentry(txid_join)["fees"]["base"]
# Fee should be correct: assert_equal(fee_join, self.nodes[0].gettransaction(txid_join)['fee'])
# But it is not, see for example https://github.com/bitcoin/bitcoin/issues/14136:
assert fee_join != self.nodes[0].gettransaction(txid_join)["fee"]

def run_invalid_parameters_test(self):
self.log.info("Test listtransactions RPC parameter validity")
assert_raises_rpc_error(-8, 'Label argument must be a valid label name or "*".', self.nodes[0].listtransactions, label="")
Expand Down

0 comments on commit 930bcfd

Please sign in to comment.