Skip to content

Commit

Permalink
[qa] fundrawtransaction: Fix race, assert amounts
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcoFalke committed Jun 13, 2016
1 parent fa26c42 commit fae1d06
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions qa/rpc-tests/fundrawtransaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ def run_test(self):
self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(), 1.0)
self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(), 5.0)

self.sync_all()
self.nodes[0].generate(1)
self.sync_all()

Expand Down Expand Up @@ -552,7 +551,6 @@ def run_test(self):
self.nodes[1].walletpassphrase("test", 100)
signedTx = self.nodes[1].signrawtransaction(fundedTx['hex'])
txId = self.nodes[1].sendrawtransaction(signedTx['hex'])
self.sync_all()
self.nodes[1].generate(1)
self.sync_all()

Expand All @@ -572,7 +570,6 @@ def run_test(self):

for i in range(0,20):
self.nodes[0].sendtoaddress(self.nodes[1].getnewaddress(), 0.01)
self.sync_all()
self.nodes[0].generate(1)
self.sync_all()

Expand Down Expand Up @@ -603,7 +600,6 @@ def run_test(self):

for i in range(0,20):
self.nodes[0].sendtoaddress(self.nodes[1].getnewaddress(), 0.01)
self.sync_all()
self.nodes[0].generate(1)
self.sync_all()

Expand Down Expand Up @@ -677,15 +673,25 @@ def run_test(self):
signedtx = self.nodes[0].signrawtransaction(signedtx["hex"])
assert(signedtx["complete"])
self.nodes[0].sendrawtransaction(signedtx["hex"])
self.nodes[0].generate(1)
self.sync_all()

#######################
# Test feeRate option #
#######################

# Make sure there is exactly one input so coin selection can't skew the result
assert_equal(len(self.nodes[3].listunspent(1)), 1)

inputs = []
outputs = {self.nodes[2].getnewaddress() : 1}
rawtx = self.nodes[3].createrawtransaction(inputs, outputs)
result = self.nodes[3].fundrawtransaction(rawtx) # uses min_relay_tx_fee (set by settxfee)
result2 = self.nodes[3].fundrawtransaction(rawtx, {"feeRate": 2*min_relay_tx_fee})
result3 = self.nodes[3].fundrawtransaction(rawtx, {"feeRate": 10*min_relay_tx_fee})
assert_equal(result['fee']*2, result2['fee'])
assert_equal(result['fee']*10, result3['fee'])
result_fee_rate = result['fee'] * 1000 / count_bytes(result['hex'])
assert_fee_amount(result2['fee'], count_bytes(result2['hex']), 2 * result_fee_rate)
assert_fee_amount(result3['fee'], count_bytes(result3['hex']), 10 * result_fee_rate)

if __name__ == '__main__':
RawTransactionsTest().main()

0 comments on commit fae1d06

Please sign in to comment.