Commit graph

10 commits

Author SHA1 Message Date
Mark Friedenbach
23f42e61dd Replace NOP3 with CHECKSEQUENCEVERIFY (BIPXX)
<nInvSequence> CHECKSEQUENCEVERIFY -> <nInvSequence>

Fails if ~txin.nSequence < nInvSequence (the nSequence field of the txin is bit-inverted before the comparison), allowing funds of a txout to be locked for a number of blocks or a duration of time after its inclusion in a block.

Only the logic and unit tests are implemented; this commit does not have changes to policy or consensus behavior.
2015-06-04 22:08:22 -07:00
Peter Todd
dfe3d9a4cd Replace NOP2 with CHECKLOCKTIMEVERIFY (BIP65)
<nLockTime> CHECKLOCKTIMEVERIFY -> <nLockTime>

Fails if tx.nLockTime < nLockTime, allowing the funds in a txout to be
locked until some block height or block time in the future is reached.

Only the logic and unittests are implemented; this commit does not have
any actual soft-fork logic in it.

Thanks to Pieter Wuille for rebase.

Credit goes to Gregory Maxwell for the suggestion of comparing the
argument against the transaction nLockTime rather than the current
time/blockheight directly.
2015-06-04 22:08:22 -07:00
Peter Todd
6380180821 Add rejection of non-null CHECKMULTISIG dummy values
This is a source of transaction mutability as the dummy value was
previously not checked and could be modified to something other than the
usual OP_0 value.
2014-05-08 00:55:01 -04:00
Peter Todd
29c17498a5 Let tx (in)valid tests use any SCRIPT_VERIFY flag
Previously only P2SH could be set.
2014-05-05 05:59:59 -04:00
Matt Corallo
c32a486f4b Add more data-driven tests. 2014-01-30 03:53:52 -05:00
Tamas Blummer
3e01c00f42 Add tests for correct and incorrect order of signatures for a multisig
(P2SH)
2013-12-11 00:03:50 +01:00
Eric Lombrozo
05df3fc68d Removed AcceptToMemoryPool method from CTransaction. This method belongs to the mempool instance.
Removed AreInputsStandard from CTransaction, made it a regular function in main.
Moved CTransaction::GetOutputFor to CCoinsViewCache.

Moved GetLegacySigOpCount and GetP2SHSigOpCount out of CTransaction into regular functions in main.

Moved GetValueIn and HaveInputs from CTransaction into CCoinsViewCache.

Moved AllowFree, ClientCheckInputs, CheckInputs, UpdateCoins, and CheckTransaction out of CTransaction and into main.

Moved IsStandard and IsFinal out of CTransaction and put them in main as IsStandardTx and IsFinalTx. Moved GetValueOut out of CTransaction into main. Moved CTxIn, CTxOut, and CTransaction into core.

Added minimum fee parameter to CTxOut::IsDust() temporarily until CTransaction is moved to core.h so that CTxOut needn't know about CTransaction.
2013-06-05 23:15:20 -07:00
Matt Corallo
e175c16f5b Add a few data-driven tests for SIGHASH_ANYONECANPAY 2013-05-21 18:16:43 +02:00
Matt Corallo
65786afb05 Add various tests for CTransaction::CheckTransaction() 2012-09-05 22:33:59 -04:00
Matt Corallo
fc4743faa8 Add data-driven transaction tests. 2012-08-20 12:12:41 -04:00