Changeset View
Changeset View
Standalone View
Standalone View
test/functional/rpc_rawtransaction.py
Show First 20 Lines • Show All 135 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
self.nodes[2].sendrawtransaction(rawTxSigned['hex']) | self.nodes[2].sendrawtransaction(rawTxSigned['hex']) | ||||
rawTx = self.nodes[0].decoderawtransaction(rawTxSigned['hex']) | rawTx = self.nodes[0].decoderawtransaction(rawTxSigned['hex']) | ||||
self.sync_all() | self.sync_all() | ||||
self.nodes[0].generate(1) | self.nodes[0].generate(1) | ||||
self.sync_all() | self.sync_all() | ||||
assert_equal(self.nodes[0].getbalance(), bal + Decimal( | assert_equal(self.nodes[0].getbalance(), bal + Decimal( | ||||
'50.00000000') + Decimal('2.19000000')) # block reward + tx | '50.00000000') + Decimal('2.19000000')) # block reward + tx | ||||
rawTxBlock = self.nodes[0].getblock(self.nodes[0].getbestblockhash()) | |||||
# 2of2 test for combining transactions | # 2of2 test for combining transactions | ||||
bal = self.nodes[2].getbalance() | bal = self.nodes[2].getbalance() | ||||
addr1 = self.nodes[1].getnewaddress() | addr1 = self.nodes[1].getnewaddress() | ||||
addr2 = self.nodes[2].getnewaddress() | addr2 = self.nodes[2].getnewaddress() | ||||
addr1Obj = self.nodes[1].validateaddress(addr1) | addr1Obj = self.nodes[1].validateaddress(addr1) | ||||
addr2Obj = self.nodes[2].validateaddress(addr2) | addr2Obj = self.nodes[2].validateaddress(addr2) | ||||
▲ Show 20 Lines • Show All 77 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
# 7. invalid parameters - supply txid and empty array | # 7. invalid parameters - supply txid and empty array | ||||
assert_raises_rpc_error( | assert_raises_rpc_error( | ||||
-3, "Invalid type", self.nodes[0].getrawtransaction, txHash, []) | -3, "Invalid type", self.nodes[0].getrawtransaction, txHash, []) | ||||
# 8. invalid parameters - supply txid and empty dict | # 8. invalid parameters - supply txid and empty dict | ||||
assert_raises_rpc_error( | assert_raises_rpc_error( | ||||
-3, "Invalid type", self.nodes[0].getrawtransaction, txHash, {}) | -3, "Invalid type", self.nodes[0].getrawtransaction, txHash, {}) | ||||
# Sanity checks on verbose getrawtransaction output | |||||
rawTxOutput = self.nodes[0].getrawtransaction(txHash, True) | |||||
assert_equal(rawTxOutput["hex"], rawTxSigned["hex"]) | |||||
assert_equal(rawTxOutput["txid"], txHash) | |||||
assert_equal(rawTxOutput["hash"], txHash) | |||||
assert_greater_than(rawTxOutput["size"], 300) | |||||
assert_equal(rawTxOutput["version"], 0x02) | |||||
assert_equal(rawTxOutput["locktime"], 0) | |||||
assert_equal(len(rawTxOutput["vin"]), 1) | |||||
assert_equal(len(rawTxOutput["vout"]), 1) | |||||
assert_equal(rawTxOutput["blockhash"], rawTxBlock["hash"]) | |||||
assert_equal(rawTxOutput["confirmations"], 3) | |||||
assert_equal(rawTxOutput["time"], rawTxBlock["time"]) | |||||
assert_equal(rawTxOutput["blocktime"], rawTxBlock["time"]) | |||||
inputs = [ | inputs = [ | ||||
{'txid': "1d1d4e24ed99057e84c3f80fd8fbec79ed9e1acee37da269356ecea000000000", 'sequence': 1000}] | {'txid': "1d1d4e24ed99057e84c3f80fd8fbec79ed9e1acee37da269356ecea000000000", 'sequence': 1000}] | ||||
outputs = {self.nodes[0].getnewaddress(): 1} | outputs = {self.nodes[0].getnewaddress(): 1} | ||||
assert_raises_rpc_error( | assert_raises_rpc_error( | ||||
-8, 'Invalid parameter, missing vout key', | -8, 'Invalid parameter, missing vout key', | ||||
self.nodes[0].createrawtransaction, inputs, outputs) | self.nodes[0].createrawtransaction, inputs, outputs) | ||||
inputs[0]['vout'] = "1" | inputs[0]['vout'] = "1" | ||||
Show All 34 Lines |