mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-07-12 18:22:33 +02:00
test: Add bad-txns-*-toolarge test cases to invalid_txs
This commit is contained in:
@ -21,7 +21,13 @@ Invalid tx cases not covered here can be found by running:
|
||||
"""
|
||||
import abc
|
||||
|
||||
from test_framework.messages import CTransaction, CTxIn, CTxOut, COutPoint
|
||||
from test_framework.messages import (
|
||||
COutPoint,
|
||||
CTransaction,
|
||||
CTxIn,
|
||||
CTxOut,
|
||||
MAX_MONEY,
|
||||
)
|
||||
from test_framework import script as sc
|
||||
from test_framework.blocktools import create_tx_with_script, MAX_BLOCK_SIGOPS
|
||||
from test_framework.script import (
|
||||
@ -166,7 +172,7 @@ class SpendTooMuch(BadTxTemplate):
|
||||
self.spend_tx, 0, script_pub_key=basic_p2sh, amount=(self.spend_avail + 1))
|
||||
|
||||
|
||||
class SpendNegative(BadTxTemplate):
|
||||
class CreateNegative(BadTxTemplate):
|
||||
reject_reason = 'bad-txns-vout-negative'
|
||||
expect_disconnect = True
|
||||
|
||||
@ -174,6 +180,25 @@ class SpendNegative(BadTxTemplate):
|
||||
return create_tx_with_script(self.spend_tx, 0, amount=-1)
|
||||
|
||||
|
||||
class CreateTooLarge(BadTxTemplate):
|
||||
reject_reason = 'bad-txns-vout-toolarge'
|
||||
expect_disconnect = True
|
||||
|
||||
def get_tx(self):
|
||||
return create_tx_with_script(self.spend_tx, 0, amount=MAX_MONEY + 1)
|
||||
|
||||
|
||||
class CreateSumTooLarge(BadTxTemplate):
|
||||
reject_reason = 'bad-txns-txouttotal-toolarge'
|
||||
expect_disconnect = True
|
||||
|
||||
def get_tx(self):
|
||||
tx = create_tx_with_script(self.spend_tx, 0, amount=MAX_MONEY)
|
||||
tx.vout = [tx.vout[0]] * 2
|
||||
tx.calc_sha256()
|
||||
return tx
|
||||
|
||||
|
||||
class InvalidOPIFConstruction(BadTxTemplate):
|
||||
reject_reason = "mandatory-script-verify-flag-failed (Invalid OP_IF construction)"
|
||||
expect_disconnect = True
|
||||
@ -237,4 +262,3 @@ DisabledOpcodeTemplates = [getDisabledOpcodeTemplate(opcode) for opcode in [
|
||||
def iter_all_templates():
|
||||
"""Iterate through all bad transaction template types."""
|
||||
return BadTxTemplate.__subclasses__()
|
||||
|
||||
|
Reference in New Issue
Block a user