|
|
@ -58,7 +58,6 @@ class RawTransactionsTest(BitcoinTestFramework): |
|
|
|
self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(), 1.0) |
|
|
|
self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(), 1.0) |
|
|
|
self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(), 5.0) |
|
|
|
self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(), 5.0) |
|
|
|
|
|
|
|
|
|
|
|
self.sync_all() |
|
|
|
|
|
|
|
self.nodes[0].generate(1) |
|
|
|
self.nodes[0].generate(1) |
|
|
|
self.sync_all() |
|
|
|
self.sync_all() |
|
|
|
|
|
|
|
|
|
|
@ -552,7 +551,6 @@ class RawTransactionsTest(BitcoinTestFramework): |
|
|
|
self.nodes[1].walletpassphrase("test", 100) |
|
|
|
self.nodes[1].walletpassphrase("test", 100) |
|
|
|
signedTx = self.nodes[1].signrawtransaction(fundedTx['hex']) |
|
|
|
signedTx = self.nodes[1].signrawtransaction(fundedTx['hex']) |
|
|
|
txId = self.nodes[1].sendrawtransaction(signedTx['hex']) |
|
|
|
txId = self.nodes[1].sendrawtransaction(signedTx['hex']) |
|
|
|
self.sync_all() |
|
|
|
|
|
|
|
self.nodes[1].generate(1) |
|
|
|
self.nodes[1].generate(1) |
|
|
|
self.sync_all() |
|
|
|
self.sync_all() |
|
|
|
|
|
|
|
|
|
|
@ -572,7 +570,6 @@ class RawTransactionsTest(BitcoinTestFramework): |
|
|
|
|
|
|
|
|
|
|
|
for i in range(0,20): |
|
|
|
for i in range(0,20): |
|
|
|
self.nodes[0].sendtoaddress(self.nodes[1].getnewaddress(), 0.01) |
|
|
|
self.nodes[0].sendtoaddress(self.nodes[1].getnewaddress(), 0.01) |
|
|
|
self.sync_all() |
|
|
|
|
|
|
|
self.nodes[0].generate(1) |
|
|
|
self.nodes[0].generate(1) |
|
|
|
self.sync_all() |
|
|
|
self.sync_all() |
|
|
|
|
|
|
|
|
|
|
@ -603,7 +600,6 @@ class RawTransactionsTest(BitcoinTestFramework): |
|
|
|
|
|
|
|
|
|
|
|
for i in range(0,20): |
|
|
|
for i in range(0,20): |
|
|
|
self.nodes[0].sendtoaddress(self.nodes[1].getnewaddress(), 0.01) |
|
|
|
self.nodes[0].sendtoaddress(self.nodes[1].getnewaddress(), 0.01) |
|
|
|
self.sync_all() |
|
|
|
|
|
|
|
self.nodes[0].generate(1) |
|
|
|
self.nodes[0].generate(1) |
|
|
|
self.sync_all() |
|
|
|
self.sync_all() |
|
|
|
|
|
|
|
|
|
|
@ -677,6 +673,15 @@ class RawTransactionsTest(BitcoinTestFramework): |
|
|
|
signedtx = self.nodes[0].signrawtransaction(signedtx["hex"]) |
|
|
|
signedtx = self.nodes[0].signrawtransaction(signedtx["hex"]) |
|
|
|
assert(signedtx["complete"]) |
|
|
|
assert(signedtx["complete"]) |
|
|
|
self.nodes[0].sendrawtransaction(signedtx["hex"]) |
|
|
|
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 = [] |
|
|
|
inputs = [] |
|
|
|
outputs = {self.nodes[2].getnewaddress() : 1} |
|
|
|
outputs = {self.nodes[2].getnewaddress() : 1} |
|
|
@ -684,8 +689,9 @@ class RawTransactionsTest(BitcoinTestFramework): |
|
|
|
result = self.nodes[3].fundrawtransaction(rawtx) # uses min_relay_tx_fee (set by settxfee) |
|
|
|
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}) |
|
|
|
result2 = self.nodes[3].fundrawtransaction(rawtx, {"feeRate": 2*min_relay_tx_fee}) |
|
|
|
result3 = self.nodes[3].fundrawtransaction(rawtx, {"feeRate": 10*min_relay_tx_fee}) |
|
|
|
result3 = self.nodes[3].fundrawtransaction(rawtx, {"feeRate": 10*min_relay_tx_fee}) |
|
|
|
assert_equal(result['fee']*2, result2['fee']) |
|
|
|
result_fee_rate = result['fee'] * 1000 / count_bytes(result['hex']) |
|
|
|
assert_equal(result['fee']*10, result3['fee']) |
|
|
|
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__': |
|
|
|
if __name__ == '__main__': |
|
|
|
RawTransactionsTest().main() |
|
|
|
RawTransactionsTest().main() |
|
|
|