go-ethereum/libevm
Arran Schlosberg bedfd12e2d
feat: RulesHooks.MinimumGasConsumption (#185)
## Why this should be merged

Required for
[ACP-194](https://github.com/avalanche-foundation/ACPs/tree/main/ACPs/194-streaming-asynchronous-execution#gas-charged)
$\lambda$ bound on gas consumption.

## How this works

Hook into `core.StateTransition.TransitionDb()` as this is the bottom of
all execution paths (e.g. `core.ApplyTransaction()` as used in SAE,
`core.StateProcessor.Process(*Block,...)`, etc.). Once consumed gas is
no longer changing (i.e. after all spends and refunds), the transaction
limit is passed to the hook to determine the minimum consumption, which
is applied.

## How this was tested

Unit test via `core.ApplyTransaction()` as this is our entry point in
SAE.

---------

Signed-off-by: Arran Schlosberg <519948+ARR4N@users.noreply.github.com>
Co-authored-by: Stephen Buttolph <stephen@avalabs.org>
2025-06-11 18:22:33 +00:00
..
cmd/internalise feat: internalise command (#90) 2024-12-17 17:20:02 +01:00
ethapi feat: partially expose internal/ethapi package (#182) 2025-05-27 10:29:35 -04:00
ethtest test: lock in types.Header RLP encoding (#87) 2024-12-12 13:00:02 +00:00
hookstest feat: RulesHooks.MinimumGasConsumption (#185) 2025-06-11 18:22:33 +00:00
legacy fix(libevm/legacy): PrecompiledStatefulContract gas and remaining gas handling (#114) 2025-02-07 14:29:33 +01:00
options refactor: abstract options package (#74) 2024-11-21 13:59:51 -08:00
precompiles/p256verify feat: RIP-7212 precompile for P256 ECDSA verification (#184) 2025-06-10 10:28:02 -04:00
pseudo refactor!: consolidate params and types payload access (#84) 2024-12-09 18:32:15 +00:00
register refactor: consolidate once-only registration of extras (#85) 2024-12-09 17:43:59 +00:00
set chore: logging (#151) 2025-02-24 16:53:21 +00:00
stateconf feat: state.SnapshotTree interface for drop-in replacement (#77) 2024-11-26 17:22:13 +00:00
sync feat(core/state): async trie prefetching (#76) 2024-11-26 08:01:47 -08:00
testonly test: StateAccount.Extra via trie.StateTrie.{Update,Get}Account() (#45) 2024-10-02 09:45:02 -07:00
tooling chore: deprecate cherry-picking on release (#186) 2025-06-10 15:18:42 +01:00
interfaces_test.go Merge branch 'auto-rename-module_source-2bd6bd01d2e8561dd7fc21b631f4a34ac16627a1_workflow-c1fc594f020d23958b641a4e5a856b6e52c49d3bece94b95594864db16c1b0fc-main' into arr4n/rename-module 2024-10-17 13:07:28 +11:00
libevm.go chore: post-rename cleanup + libevm intro (#68) 2024-10-30 09:51:41 -04:00