|
|
@ -53,12 +53,17 @@ class GetBlockTemplateProposalTest(BitcoinTestFramework): |
|
|
|
self.log.info("getblocktemplate: Test valid block") |
|
|
|
self.log.info("getblocktemplate: Test valid block") |
|
|
|
assert_template(node, block, None) |
|
|
|
assert_template(node, block, None) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.log.info("submitblock: Test block decode failure") |
|
|
|
|
|
|
|
assert_raises_jsonrpc(-22, "Block decode failed", node.submitblock, b2x(block.serialize()[:-15])) |
|
|
|
|
|
|
|
|
|
|
|
self.log.info("getblocktemplate: Test bad input hash for coinbase transaction") |
|
|
|
self.log.info("getblocktemplate: Test bad input hash for coinbase transaction") |
|
|
|
bad_block = copy.deepcopy(block) |
|
|
|
bad_block = copy.deepcopy(block) |
|
|
|
bad_block.vtx[0].vin[0].prevout.hash += 1 |
|
|
|
bad_block.vtx[0].vin[0].prevout.hash += 1 |
|
|
|
bad_block.vtx[0].rehash() |
|
|
|
bad_block.vtx[0].rehash() |
|
|
|
assert_template(node, bad_block, 'bad-cb-missing') |
|
|
|
assert_template(node, bad_block, 'bad-cb-missing') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.log.info("submitblock: Test invalid coinbase transaction") |
|
|
|
|
|
|
|
assert_raises_jsonrpc(-22, "Block does not start with a coinbase", node.submitblock, b2x(bad_block.serialize())) |
|
|
|
|
|
|
|
|
|
|
|
self.log.info("getblocktemplate: Test truncated final transaction") |
|
|
|
self.log.info("getblocktemplate: Test truncated final transaction") |
|
|
|
assert_raises_jsonrpc(-22, "Block decode failed", node.getblocktemplate, {'data': b2x(block.serialize()[:-1]), 'mode': 'proposal'}) |
|
|
|
assert_raises_jsonrpc(-22, "Block decode failed", node.getblocktemplate, {'data': b2x(block.serialize()[:-1]), 'mode': 'proposal'}) |
|
|
|