Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes an issue where invalid transactions are stored on pallet-ethereum storage for free.
Description
A
sends transaction with input data which's cost is greater than the gas limit.nonce
is not increased in that case.pallet_evm::runner
does not Error in that case, so pallet-ethereum inserts the transaction metadata in it's storage. At this point, once the block is sealed, that transaction is mapped to the block, even if it didn't increase thenonce
for userA
, thus bloating the runtime storage for free (as the used gas still 0 and the fees are refunded in the runner after).Transactions that cannot pay for the transaction cost itself should be discarded, its source account nonce not increased and not stored in the ethereum block (and they shouldn't be included in the substrate block neither). They cannot occupy blockchain space.