mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-08 10:31:50 -05:00
test: feature_cltv.py: don't return tx copies in modification functions
The functions cltv_modify_tx(), cltv_invalidate() and cltv_validate() all modify the passed transaction in-place, i.e. there is no need to return a copy.
This commit is contained in:
parent
9ab2ce0a66
commit
7e32fde912
1 changed files with 5 additions and 6 deletions
|
@ -45,7 +45,6 @@ def cltv_modify_tx(tx, prepend_scriptsig, nsequence=None, nlocktime=None):
|
||||||
|
|
||||||
tx.vin[0].scriptSig = CScript(prepend_scriptsig + list(CScript(tx.vin[0].scriptSig)))
|
tx.vin[0].scriptSig = CScript(prepend_scriptsig + list(CScript(tx.vin[0].scriptSig)))
|
||||||
tx.rehash()
|
tx.rehash()
|
||||||
return tx
|
|
||||||
|
|
||||||
|
|
||||||
def cltv_invalidate(tx, failure_reason):
|
def cltv_invalidate(tx, failure_reason):
|
||||||
|
@ -69,14 +68,14 @@ def cltv_invalidate(tx, failure_reason):
|
||||||
[[CScriptNum(500), OP_CHECKLOCKTIMEVERIFY, OP_DROP], 0xffffffff, 500],
|
[[CScriptNum(500), OP_CHECKLOCKTIMEVERIFY, OP_DROP], 0xffffffff, 500],
|
||||||
][failure_reason]
|
][failure_reason]
|
||||||
|
|
||||||
return cltv_modify_tx(tx, prepend_scriptsig=scheme[0], nsequence=scheme[1], nlocktime=scheme[2])
|
cltv_modify_tx(tx, prepend_scriptsig=scheme[0], nsequence=scheme[1], nlocktime=scheme[2])
|
||||||
|
|
||||||
|
|
||||||
def cltv_validate(tx, height):
|
def cltv_validate(tx, height):
|
||||||
# Modify the signature in vin 0 and nSequence/nLockTime of the tx to pass CLTV
|
# Modify the signature in vin 0 and nSequence/nLockTime of the tx to pass CLTV
|
||||||
scheme = [[CScriptNum(height), OP_CHECKLOCKTIMEVERIFY, OP_DROP], 0, height]
|
scheme = [[CScriptNum(height), OP_CHECKLOCKTIMEVERIFY, OP_DROP], 0, height]
|
||||||
|
|
||||||
return cltv_modify_tx(tx, prepend_scriptsig=scheme[0], nsequence=scheme[1], nlocktime=scheme[2])
|
cltv_modify_tx(tx, prepend_scriptsig=scheme[0], nsequence=scheme[1], nlocktime=scheme[2])
|
||||||
|
|
||||||
|
|
||||||
class BIP65Test(BitcoinTestFramework):
|
class BIP65Test(BitcoinTestFramework):
|
||||||
|
@ -114,7 +113,7 @@ class BIP65Test(BitcoinTestFramework):
|
||||||
invalid_cltv_txs = []
|
invalid_cltv_txs = []
|
||||||
for i in range(5):
|
for i in range(5):
|
||||||
spendtx = wallet.create_self_transfer(from_node=self.nodes[0])['tx']
|
spendtx = wallet.create_self_transfer(from_node=self.nodes[0])['tx']
|
||||||
spendtx = cltv_invalidate(spendtx, i)
|
cltv_invalidate(spendtx, i)
|
||||||
invalid_cltv_txs.append(spendtx)
|
invalid_cltv_txs.append(spendtx)
|
||||||
|
|
||||||
tip = self.nodes[0].getbestblockhash()
|
tip = self.nodes[0].getbestblockhash()
|
||||||
|
@ -149,7 +148,7 @@ class BIP65Test(BitcoinTestFramework):
|
||||||
# create and test one invalid tx per CLTV failure reason (5 in total)
|
# create and test one invalid tx per CLTV failure reason (5 in total)
|
||||||
for i in range(5):
|
for i in range(5):
|
||||||
spendtx = wallet.create_self_transfer(from_node=self.nodes[0])['tx']
|
spendtx = wallet.create_self_transfer(from_node=self.nodes[0])['tx']
|
||||||
spendtx = cltv_invalidate(spendtx, i)
|
cltv_invalidate(spendtx, i)
|
||||||
|
|
||||||
expected_cltv_reject_reason = [
|
expected_cltv_reject_reason = [
|
||||||
"non-mandatory-script-verify-flag (Operation not valid with the current stack size)",
|
"non-mandatory-script-verify-flag (Operation not valid with the current stack size)",
|
||||||
|
@ -182,7 +181,7 @@ class BIP65Test(BitcoinTestFramework):
|
||||||
peer.sync_with_ping()
|
peer.sync_with_ping()
|
||||||
|
|
||||||
self.log.info("Test that a version 4 block with a valid-according-to-CLTV transaction is accepted")
|
self.log.info("Test that a version 4 block with a valid-according-to-CLTV transaction is accepted")
|
||||||
spendtx = cltv_validate(spendtx, CLTV_HEIGHT - 1)
|
cltv_validate(spendtx, CLTV_HEIGHT - 1)
|
||||||
|
|
||||||
block.vtx.pop(1)
|
block.vtx.pop(1)
|
||||||
block.vtx.append(spendtx)
|
block.vtx.append(spendtx)
|
||||||
|
|
Loading…
Add table
Reference in a new issue