Browse Source

Fix BIP68 activation test

0.15
John Newbery 8 years ago
parent
commit
99c0e81b95
  1. 32
      qa/rpc-tests/bip68-sequence.py

32
qa/rpc-tests/bip68-sequence.py

@ -51,15 +51,12 @@ class BIP68Test(BitcoinTestFramework):
print("Running test BIP68 not consensus before versionbits activation") print("Running test BIP68 not consensus before versionbits activation")
self.test_bip68_not_consensus() self.test_bip68_not_consensus()
print("Verifying nVersion=2 transactions aren't standard") print("Verifying nVersion=2 transactions are standard")
self.test_version2_relay(before_activation=True) self.test_version2_relay()
print("Activating BIP68 (and 112/113)") print("Activating BIP68 (and 112/113)")
self.activateCSV() self.activateCSV()
print("Verifying nVersion=2 transactions are now standard")
self.test_version2_relay(before_activation=False)
print("Passed\n") print("Passed\n")
# Test that BIP68 is not in effect if tx version is 1, or if # Test that BIP68 is not in effect if tx version is 1, or if
@ -399,17 +396,8 @@ class BIP68Test(BitcoinTestFramework):
self.nodes[0].submitblock(ToHex(block)) self.nodes[0].submitblock(ToHex(block))
assert_equal(self.nodes[0].getbestblockhash(), block.hash) assert_equal(self.nodes[0].getbestblockhash(), block.hash)
def activateCSV(self): # Use self.nodes[1] to test that version 2 transactions are standard even before BIP68 activation.
# activation should happen at block height 432 (3 periods) def test_version2_relay(self):
min_activation_height = 432
height = self.nodes[0].getblockcount()
assert(height < 432)
self.nodes[0].generate(432-height)
assert(get_bip9_status(self.nodes[0], 'csv')['status'] == 'active')
sync_blocks(self.nodes)
# Use self.nodes[1] to test standardness relay policy
def test_version2_relay(self, before_activation):
inputs = [ ] inputs = [ ]
outputs = { self.nodes[1].getnewaddress() : 1.0 } outputs = { self.nodes[1].getnewaddress() : 1.0 }
rawtx = self.nodes[1].createrawtransaction(inputs, outputs) rawtx = self.nodes[1].createrawtransaction(inputs, outputs)
@ -417,12 +405,16 @@ class BIP68Test(BitcoinTestFramework):
tx = FromHex(CTransaction(), rawtxfund) tx = FromHex(CTransaction(), rawtxfund)
tx.nVersion = 2 tx.nVersion = 2
tx_signed = self.nodes[1].signrawtransaction(ToHex(tx))["hex"] tx_signed = self.nodes[1].signrawtransaction(ToHex(tx))["hex"]
try:
tx_id = self.nodes[1].sendrawtransaction(tx_signed) tx_id = self.nodes[1].sendrawtransaction(tx_signed)
assert(before_activation == False)
except:
assert(before_activation)
def activateCSV(self):
# activation should happen at block height 432 (3 periods)
min_activation_height = 432
height = self.nodes[0].getblockcount()
assert(height < 432)
self.nodes[0].generate(432-height)
assert(get_bip9_status(self.nodes[0], 'csv')['status'] == 'active')
sync_blocks(self.nodes)
if __name__ == '__main__': if __name__ == '__main__':
BIP68Test().main() BIP68Test().main()

Loading…
Cancel
Save