Exceptions¶
Exception types are represented as a JSON string in the test fixtures.
The exception converted into a string is composed of the exception type name, followed by a period, followed by the specific exception name.
For example, the exception INSUFFICIENT_ACCOUNT_FUNDS
of type
TransactionException
is represented as
"TransactionException.INSUFFICIENT_ACCOUNT_FUNDS"
.
The JSON string can contain multiple exception types, separated by the |
character, denoting that the transaction or block can throw either one of
the exceptions.
TransactionException
¶
Bases: ExceptionBase
Exception raised when a transaction is invalid, and thus cannot be executed.
If a transaction with any of these exceptions is included in a block, the block is invalid.
Source code in src/ethereum_test_tools/exceptions/exceptions.py
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
|
INSUFFICIENT_ACCOUNT_FUNDS = auto()
class-attribute
instance-attribute
¶
Transaction's sender does not have enough funds to pay for the transaction.
INSUFFICIENT_MAX_FEE_PER_GAS = auto()
class-attribute
instance-attribute
¶
Transaction's max-fee-per-gas is lower than the block base-fee.
PRIORITY_GREATER_THAN_MAX_FEE_PER_GAS = auto()
class-attribute
instance-attribute
¶
Transaction's max-priority-fee-per-gas is greater than the max-fee-per-gas.
INSUFFICIENT_MAX_FEE_PER_BLOB_GAS = auto()
class-attribute
instance-attribute
¶
Transaction's max-fee-per-blob-gas is lower than the block's blob-gas price.
INTRINSIC_GAS_TOO_LOW = auto()
class-attribute
instance-attribute
¶
Transaction's gas limit is too low.
INITCODE_SIZE_EXCEEDED = auto()
class-attribute
instance-attribute
¶
Transaction's initcode for a contract-creating transaction is too large.
TYPE_3_TX_PRE_FORK = auto()
class-attribute
instance-attribute
¶
Transaction type 3 included before activation fork.
TYPE_3_TX_ZERO_BLOBS_PRE_FORK = auto()
class-attribute
instance-attribute
¶
Transaction type 3, with zero blobs, included before activation fork.
TYPE_3_TX_INVALID_BLOB_VERSIONED_HASH = auto()
class-attribute
instance-attribute
¶
Transaction contains a blob versioned hash with an invalid version.
TYPE_3_TX_WITH_FULL_BLOBS = auto()
class-attribute
instance-attribute
¶
Transaction contains full blobs (network-version of the transaction).
TYPE_3_TX_BLOB_COUNT_EXCEEDED = auto()
class-attribute
instance-attribute
¶
Transaction contains too many blob versioned hashes.
TYPE_3_TX_CONTRACT_CREATION = auto()
class-attribute
instance-attribute
¶
Transaction is a type 3 transaction and has an empty to
.
TYPE_3_TX_MAX_BLOB_GAS_ALLOWANCE_EXCEEDED = auto()
class-attribute
instance-attribute
¶
Transaction causes block to go over blob gas limit.
TYPE_3_TX_ZERO_BLOBS = auto()
class-attribute
instance-attribute
¶
Transaction is type 3, but has no blobs.
BlockException
¶
Bases: ExceptionBase
Exception raised when a block is invalid, but not due to a transaction.
E.g. all transactions in the block are valid, and can be applied to the state, but the block header contains an invalid field.
Source code in src/ethereum_test_tools/exceptions/exceptions.py
130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
|
INCORRECT_BLOCK_FORMAT = auto()
class-attribute
instance-attribute
¶
Block's format is incorrect, contains invalid fields, is missing fields, or contains fields of a fork that is not active yet.
BLOB_GAS_USED_ABOVE_LIMIT = auto()
class-attribute
instance-attribute
¶
Block's blob gas used in header is above the limit.
INCORRECT_BLOB_GAS_USED = auto()
class-attribute
instance-attribute
¶
Block's blob gas used in header is incorrect.
INCORRECT_EXCESS_BLOB_GAS = auto()
class-attribute
instance-attribute
¶
Block's excess blob gas in header is incorrect.
RLP_STRUCTURES_ENCODING = auto()
class-attribute
instance-attribute
¶
Block's rlp encoding is valid but ethereum structures in it are invalid