Changeset View
Changeset View
Standalone View
Standalone View
test/functional/abc-replay-protection.py
Show First 20 Lines • Show All 285 Lines • ▼ Show 20 Lines | def get_tests(self): | ||||
postforkblockid = node.getbestblockhash() | postforkblockid = node.getbestblockhash() | ||||
node.invalidateblock(postforkblockid) | node.invalidateblock(postforkblockid) | ||||
assert(replay_tx0_id in set(node.getrawmempool())) | assert(replay_tx0_id in set(node.getrawmempool())) | ||||
assert(replay_tx1_id in set(node.getrawmempool())) | assert(replay_tx1_id in set(node.getrawmempool())) | ||||
# Deactivating replay protection. | # Deactivating replay protection. | ||||
forkblockid = node.getbestblockhash() | forkblockid = node.getbestblockhash() | ||||
node.invalidateblock(forkblockid) | node.invalidateblock(forkblockid) | ||||
assert(replay_tx0_id not in set(node.getrawmempool())) | # The funding tx is not evicted from the mempool, since it's valid in | ||||
# both sides of the fork | |||||
assert(replay_tx0_id in set(node.getrawmempool())) | |||||
assert(replay_tx1_id not in set(node.getrawmempool())) | assert(replay_tx1_id not in set(node.getrawmempool())) | ||||
# Check that we also do it properly on deeper reorg. | # Check that we also do it properly on deeper reorg. | ||||
node.reconsiderblock(forkblockid) | node.reconsiderblock(forkblockid) | ||||
node.reconsiderblock(postforkblockid) | node.reconsiderblock(postforkblockid) | ||||
node.invalidateblock(forkblockid) | node.invalidateblock(forkblockid) | ||||
assert(replay_tx0_id not in set(node.getrawmempool())) | assert(replay_tx0_id in set(node.getrawmempool())) | ||||
assert(replay_tx1_id not in set(node.getrawmempool())) | assert(replay_tx1_id not in set(node.getrawmempool())) | ||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
ReplayProtectionTest().main() | ReplayProtectionTest().main() |