diff --git a/contrib/sidechain-manipulation.py b/contrib/sidechain-manipulation.py index a6d5fa5488..04e456e71c 100755 --- a/contrib/sidechain-manipulation.py +++ b/contrib/sidechain-manipulation.py @@ -118,7 +118,26 @@ try: print("Sending %s to %s..." % (sys.argv[3], send_address)) print("(nonce: %s)" % nonce) - txid = bitcoin.sendtoaddress(send_address, Decimal(sys.argv[3])) + try: + tx_hex = bitcoin.createrawtransaction([], {send_address: Decimal(sys.argv[3])}) + tx_hex = bitcoin.fundrawtransaction(tx_hex)['hex'] + tx = bitcoin.signrawtransaction(tx_hex) + assert(tx['complete']) + + tx_hex = tx['hex'] + + total_length = len(tx_hex)/2 + total_length += 14*32 + total_length += 1000 # wild guess + + if total_length >= 10000: + print("Transaction is too large.") + exit(1) + + txid = bitcoin.sendrawtransaction(tx_hex) + except: + txid = bitcoin.sendtoaddress(send_address, Decimal(sys.argv[3])) + print("Sent tx with id %s" % txid) elif sys.argv[1] == "claim-on-sidechain": if len(sys.argv) != 5: