mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 22:50:59 +01:00
BIP112: Implement CHECKSEQUENCEVERIFY
- Replace NOP3 with CHECKSEQUENCEVERIFY (BIP112) <nSequence> CHECKSEQUENCEVERIFY -> <nSequence> - Fails if txin.nSequence < nSequence, allowing funds of a txout to be locked for a number of blocks or a duration of time after its inclusion in a block. - Pull most of CheckLockTime() out into VerifyLockTime(), a local function that will be reused for CheckSequence() - Add bitwise AND operator to CScriptNum - Enable CHECKSEQUENCEVERIFY as a standard script verify flag - Transactions that fail CSV verification will be rejected from the mempool, making it easy to test the feature. However blocks containing "invalid" CSV-using transactions will still be accepted; this is *not* the soft-fork required to actually enable CSV for production use.
This commit is contained in:
committed by
BtcDrak
parent
80d1f2e483
commit
53e53a33c9
@@ -165,6 +165,7 @@ enum opcodetype
|
||||
OP_CHECKLOCKTIMEVERIFY = 0xb1,
|
||||
OP_NOP2 = OP_CHECKLOCKTIMEVERIFY,
|
||||
OP_NOP3 = 0xb2,
|
||||
OP_CHECKSEQUENCEVERIFY = OP_NOP3,
|
||||
OP_NOP4 = 0xb3,
|
||||
OP_NOP5 = 0xb4,
|
||||
OP_NOP6 = 0xb5,
|
||||
@@ -259,6 +260,11 @@ public:
|
||||
inline CScriptNum& operator+=( const CScriptNum& rhs) { return operator+=(rhs.m_value); }
|
||||
inline CScriptNum& operator-=( const CScriptNum& rhs) { return operator-=(rhs.m_value); }
|
||||
|
||||
inline CScriptNum operator&( const int64_t& rhs) const { return CScriptNum(m_value & rhs);}
|
||||
inline CScriptNum operator&( const CScriptNum& rhs) const { return operator&(rhs.m_value); }
|
||||
|
||||
inline CScriptNum& operator&=( const CScriptNum& rhs) { return operator&=(rhs.m_value); }
|
||||
|
||||
inline CScriptNum operator-() const
|
||||
{
|
||||
assert(m_value != std::numeric_limits<int64_t>::min());
|
||||
@@ -287,6 +293,12 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline CScriptNum& operator&=( const int64_t& rhs)
|
||||
{
|
||||
m_value &= rhs;
|
||||
return *this;
|
||||
}
|
||||
|
||||
int getint() const
|
||||
{
|
||||
if (m_value > std::numeric_limits<int>::max())
|
||||
|
||||
Reference in New Issue
Block a user