The transaction validation flow now can be described as a separated two-step process.
1. The low cost basic validation step:
The transaction types must be accepted in txpool and executable
Value must not be negative
IntrinsicGas ≤ GasLimit ≤ MaxGasLimit of chain
GasFeeCap ≥ GasTipCap and they must not be extremely large numbers
GasTipCap ≥ EffectiveMinTip of chain
The sender is ecrecover-able from the transaction signature
2. The heavy state-related validation step:
Nonce of from address must be greater or equal to current nonce
Balance of from address must be enough to cover all the transaction cost of that address
Currently all transaction must pass both validation steps to be included in local txpool. While some processes in txpool require basic validation only, and some future process focus on state-related validations, such as paymaster/AA flow or future subpools. This leads to the need of breaking down the whole validation process first
The transaction validation flow now can be described as a separated two-step process.
1. The low cost basic validation step:
txpool
and executableValue
must not be negativeIntrinsicGas
≤GasLimit
≤MaxGasLimit
of chainGasFeeCap
≥GasTipCap
and they must not be extremely large numbersGasTipCap
≥EffectiveMinTip
of chainsender
is ecrecover-able from the transaction signature2. The heavy state-related validation step:
Nonce
offrom
address must be greater or equal to currentnonce
Balance
offrom
address must be enough to cover all the transaction cost of that addressCurrently all transaction must pass both validation steps to be included in local
txpool
. While some processes intxpool
require basic validation only, and some future process focus on state-related validations, such as paymaster/AA flow or futuresubpools
. This leads to the need of breaking down the whole validation process first