Changeset View
Changeset View
Standalone View
Standalone View
test/functional/txn_clone.py
Show First 20 Lines • Show All 72 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
rawtx1["vout"][0]["value"] != 40 and clone_raw[pos0: pos0 + 16] == hex40): | rawtx1["vout"][0]["value"] != 40 and clone_raw[pos0: pos0 + 16] == hex40): | ||||
output0 = clone_raw[pos0: pos0 + output_len] | output0 = clone_raw[pos0: pos0 + output_len] | ||||
output1 = clone_raw[pos0 + output_len: pos0 + 2 * output_len] | output1 = clone_raw[pos0 + output_len: pos0 + 2 * output_len] | ||||
clone_raw = clone_raw[:pos0] + output1 + \ | clone_raw = clone_raw[:pos0] + output1 + \ | ||||
output0 + clone_raw[pos0 + 2 * output_len:] | output0 + clone_raw[pos0 + 2 * output_len:] | ||||
# Use a different signature hash type to sign. This creates an equivalent but malleated clone. | # Use a different signature hash type to sign. This creates an equivalent but malleated clone. | ||||
# Don't send the clone anywhere yet | # Don't send the clone anywhere yet | ||||
tx1_clone = self.nodes[0].signrawtransaction( | tx1_clone = self.nodes[0].signrawtransactionwithwallet( | ||||
clone_raw, None, None, "ALL|FORKID|ANYONECANPAY") | clone_raw, None, "ALL|FORKID|ANYONECANPAY") | ||||
assert_equal(tx1_clone["complete"], True) | assert_equal(tx1_clone["complete"], True) | ||||
# Have node0 mine a block, if requested: | # Have node0 mine a block, if requested: | ||||
if (self.options.mine_block): | if (self.options.mine_block): | ||||
self.nodes[0].generate(1) | self.nodes[0].generate(1) | ||||
sync_blocks(self.nodes[0:2]) | sync_blocks(self.nodes[0:2]) | ||||
tx1 = self.nodes[0].gettransaction(txid1) | tx1 = self.nodes[0].gettransaction(txid1) | ||||
▲ Show 20 Lines • Show All 80 Lines • Show Last 20 Lines |