From 3a20c033b02c4e2a45e15aee52ea395ee484eec0 Mon Sep 17 00:00:00 2001 From: Gary Rong Date: Wed, 13 May 2026 10:00:43 +0800 Subject: [PATCH] core: address comments from sina --- core/state_transition.go | 10 +++++----- core/tracing/hooks.go | 6 +++--- core/vm/contract.go | 4 ++-- core/vm/contracts.go | 2 +- core/vm/evm.go | 18 +++++++++--------- core/vm/gascosts.go | 2 +- core/vm/interpreter.go | 2 +- 7 files changed, 22 insertions(+), 22 deletions(-) diff --git a/core/state_transition.go b/core/state_transition.go index ec124594c3..0a6994505d 100644 --- a/core/state_transition.go +++ b/core/state_transition.go @@ -423,7 +423,7 @@ func (st *stateTransition) buyGas() error { if st.evm.Config.Tracer.HasGasHook() { empty := vm.GasBudget{} initial := vm.NewGasBudget(st.msg.GasLimit) - st.evm.Config.Tracer.FireGasChange(empty.AsTracing(), initial.AsTracing(), tracing.GasChangeTxInitialBalance) + st.evm.Config.Tracer.EmitGasChange(empty.AsTracing(), initial.AsTracing(), tracing.GasChangeTxInitialBalance) } st.gasRemaining = vm.NewGasBudget(st.msg.GasLimit) st.initialBudget = st.gasRemaining.Copy() @@ -569,7 +569,7 @@ func (st *stateTransition) execute() (*ExecutionResult, error) { return nil, fmt.Errorf("%w: have %d, want %d", ErrIntrinsicGas, st.gasRemaining.RegularGas, cost.RegularGas) } if st.evm.Config.Tracer.HasGasHook() { - st.evm.Config.Tracer.FireGasChange(prior.AsTracing(), st.gasRemaining.AsTracing(), tracing.GasChangeTxIntrinsicGas) + st.evm.Config.Tracer.EmitGasChange(prior.AsTracing(), st.gasRemaining.AsTracing(), tracing.GasChangeTxIntrinsicGas) } // Gas limit suffices for the floor data cost (EIP-7623) if rules.IsPrague { @@ -654,7 +654,7 @@ func (st *stateTransition) execute() (*ExecutionResult, error) { if used := st.gasUsed(); used < floorDataGas { prior, _ := st.gasRemaining.Charge(vm.GasCosts{RegularGas: floorDataGas - used}) if st.evm.Config.Tracer.HasGasHook() { - st.evm.Config.Tracer.FireGasChange(prior.AsTracing(), st.gasRemaining.AsTracing(), tracing.GasChangeTxDataFloor) + st.evm.Config.Tracer.EmitGasChange(prior.AsTracing(), st.gasRemaining.AsTracing(), tracing.GasChangeTxDataFloor) } } if peakGasUsed < floorDataGas { @@ -786,7 +786,7 @@ func (st *stateTransition) calcRefund() vm.GasBudget { after := st.gasRemaining after.RegularGas += refund - st.evm.Config.Tracer.FireGasChange(st.gasRemaining.AsTracing(), after.AsTracing(), tracing.GasChangeTxRefunds) + st.evm.Config.Tracer.EmitGasChange(st.gasRemaining.AsTracing(), after.AsTracing(), tracing.GasChangeTxRefunds) } return vm.NewGasBudget(refund) } @@ -801,7 +801,7 @@ func (st *stateTransition) returnGas() { if st.gasRemaining.RegularGas > 0 && st.evm.Config.Tracer.HasGasHook() { after := st.gasRemaining after.RegularGas = 0 - st.evm.Config.Tracer.FireGasChange(st.gasRemaining.AsTracing(), after.AsTracing(), tracing.GasChangeTxLeftOverReturned) + st.evm.Config.Tracer.EmitGasChange(st.gasRemaining.AsTracing(), after.AsTracing(), tracing.GasChangeTxLeftOverReturned) } } diff --git a/core/tracing/hooks.go b/core/tracing/hooks.go index 7ae4f46daa..6ea3f7ebbf 100644 --- a/core/tracing/hooks.go +++ b/core/tracing/hooks.go @@ -309,13 +309,13 @@ type Hooks struct { // HasGasHook reports whether any gas-change hook is registered. Call sites // should use this to short-circuit before constructing the Gas / GasBudget -// arguments to FireGasChange when tracing is off — the dispatch is otherwise +// arguments to EmitGasChange when tracing is off — the dispatch is otherwise // always paid the cost of evaluating those args. func (h *Hooks) HasGasHook() bool { return h != nil && (h.OnGasChangeV2 != nil || h.OnGasChange != nil) } -// FireGasChange dispatches a gas change event to the registered hooks. If the +// EmitGasChange dispatches a gas change event to the registered hooks. If the // multi-dimensional OnGasChangeV2 hook is set it is invoked with the full Gas // vectors; otherwise the single-dimensional OnGasChange hook is invoked with // the regular-gas dimension only. The call is a no-op when the receiver is @@ -323,7 +323,7 @@ func (h *Hooks) HasGasHook() bool { // // Call sites SHOULD use this helper instead of invoking the hooks directly so // that both variants stay consistent across the Amsterdam fork boundary. -func (h *Hooks) FireGasChange(old, new Gas, reason GasChangeReason) { +func (h *Hooks) EmitGasChange(old, new Gas, reason GasChangeReason) { if h == nil || reason == GasChangeIgnored { return } diff --git a/core/vm/contract.go b/core/vm/contract.go index 2471eefeae..45c879c80f 100644 --- a/core/vm/contract.go +++ b/core/vm/contract.go @@ -132,7 +132,7 @@ func (c *Contract) UseGas(cost GasCosts, logger *tracing.Hooks, reason tracing.G return false } if logger.HasGasHook() && reason != tracing.GasChangeIgnored { - logger.FireGasChange(prior.AsTracing(), c.Gas.AsTracing(), reason) + logger.EmitGasChange(prior.AsTracing(), c.Gas.AsTracing(), reason) } return true } @@ -144,7 +144,7 @@ func (c *Contract) RefundGas(refund GasBudget, logger *tracing.Hooks, reason tra return } if logger.HasGasHook() && reason != tracing.GasChangeIgnored { - logger.FireGasChange(prior.AsTracing(), c.Gas.AsTracing(), reason) + logger.EmitGasChange(prior.AsTracing(), c.Gas.AsTracing(), reason) } } diff --git a/core/vm/contracts.go b/core/vm/contracts.go index 1dc488f1e4..71cfdbc527 100644 --- a/core/vm/contracts.go +++ b/core/vm/contracts.go @@ -270,7 +270,7 @@ func RunPrecompiledContract(stateDB StateDB, p PrecompiledContract, address comm return nil, gas, ErrOutOfGas } if logger.HasGasHook() { - logger.FireGasChange(prior.AsTracing(), gas.AsTracing(), tracing.GasChangeCallPrecompiledContract) + logger.EmitGasChange(prior.AsTracing(), gas.AsTracing(), tracing.GasChangeCallPrecompiledContract) } // Touch the precompile for block-level accessList recording once Amsterdam // fork is activated. diff --git a/core/vm/evm.go b/core/vm/evm.go index 1f14c2fe86..9fe6faa3a2 100644 --- a/core/vm/evm.go +++ b/core/vm/evm.go @@ -318,7 +318,7 @@ func (evm *EVM) Call(caller common.Address, addr common.Address, input []byte, g evm.StateDB.RevertToSnapshot(snapshot) if err != ErrExecutionReverted { if evm.Config.Tracer.HasGasHook() { - evm.Config.Tracer.FireGasChange(gas.AsTracing(), tracing.Gas{}, tracing.GasChangeCallFailedExecution) + evm.Config.Tracer.EmitGasChange(gas.AsTracing(), tracing.Gas{}, tracing.GasChangeCallFailedExecution) } gas.Exhaust() } @@ -372,7 +372,7 @@ func (evm *EVM) CallCode(caller common.Address, addr common.Address, input []byt evm.StateDB.RevertToSnapshot(snapshot) if err != ErrExecutionReverted { if evm.Config.Tracer.HasGasHook() { - evm.Config.Tracer.FireGasChange(gas.AsTracing(), tracing.Gas{}, tracing.GasChangeCallFailedExecution) + evm.Config.Tracer.EmitGasChange(gas.AsTracing(), tracing.Gas{}, tracing.GasChangeCallFailedExecution) } gas.Exhaust() } @@ -416,7 +416,7 @@ func (evm *EVM) DelegateCall(originCaller common.Address, caller common.Address, evm.StateDB.RevertToSnapshot(snapshot) if err != ErrExecutionReverted { if evm.Config.Tracer.HasGasHook() { - evm.Config.Tracer.FireGasChange(gas.AsTracing(), tracing.Gas{}, tracing.GasChangeCallFailedExecution) + evm.Config.Tracer.EmitGasChange(gas.AsTracing(), tracing.Gas{}, tracing.GasChangeCallFailedExecution) } gas.Exhaust() } @@ -471,7 +471,7 @@ func (evm *EVM) StaticCall(caller common.Address, addr common.Address, input []b evm.StateDB.RevertToSnapshot(snapshot) if err != ErrExecutionReverted { if evm.Config.Tracer.HasGasHook() { - evm.Config.Tracer.FireGasChange(gas.AsTracing(), tracing.Gas{}, tracing.GasChangeCallFailedExecution) + evm.Config.Tracer.EmitGasChange(gas.AsTracing(), tracing.Gas{}, tracing.GasChangeCallFailedExecution) } gas.Exhaust() } @@ -510,7 +510,7 @@ func (evm *EVM) create(caller common.Address, code []byte, gas GasBudget, value return nil, common.Address{}, gas, ErrOutOfGas } if evm.Config.Tracer.HasGasHook() { - evm.Config.Tracer.FireGasChange(prior.AsTracing(), gas.AsTracing(), tracing.GasChangeWitnessContractCollisionCheck) + evm.Config.Tracer.EmitGasChange(prior.AsTracing(), gas.AsTracing(), tracing.GasChangeWitnessContractCollisionCheck) } } @@ -529,7 +529,7 @@ func (evm *EVM) create(caller common.Address, code []byte, gas GasBudget, value (contractHash != (common.Hash{}) && contractHash != types.EmptyCodeHash) || // non-empty code isEIP7610RejectedAccount(evm.ChainConfig().ChainID, address, evm.chainRules.IsEIP158) { if evm.Config.Tracer.HasGasHook() { - evm.Config.Tracer.FireGasChange(gas.AsTracing(), tracing.Gas{}, tracing.GasChangeCallFailedExecution) + evm.Config.Tracer.EmitGasChange(gas.AsTracing(), tracing.Gas{}, tracing.GasChangeCallFailedExecution) } gas.Exhaust() return nil, common.Address{}, gas, ErrContractAddressCollision @@ -559,7 +559,7 @@ func (evm *EVM) create(caller common.Address, code []byte, gas GasBudget, value } prior, _ := gas.Charge(GasCosts{RegularGas: consumed}) if evm.Config.Tracer.HasGasHook() { - evm.Config.Tracer.FireGasChange(prior.AsTracing(), gas.AsTracing(), tracing.GasChangeWitnessContractInit) + evm.Config.Tracer.EmitGasChange(prior.AsTracing(), gas.AsTracing(), tracing.GasChangeWitnessContractInit) } } evm.Context.Transfer(evm.StateDB, caller, address, value, &evm.chainRules) @@ -675,7 +675,7 @@ func (evm *EVM) captureBegin(depth int, typ OpCode, from common.Address, to comm } if tracer.HasGasHook() { initial := NewGasBudget(startGas) - tracer.FireGasChange(tracing.Gas{}, initial.AsTracing(), tracing.GasChangeCallInitialBalance) + tracer.EmitGasChange(tracing.Gas{}, initial.AsTracing(), tracing.GasChangeCallInitialBalance) } } @@ -683,7 +683,7 @@ func (evm *EVM) captureEnd(depth int, startGas uint64, leftOverGas uint64, ret [ tracer := evm.Config.Tracer if leftOverGas != 0 && tracer.HasGasHook() { leftover := NewGasBudget(leftOverGas) - tracer.FireGasChange(leftover.AsTracing(), tracing.Gas{}, tracing.GasChangeCallLeftOverReturned) + tracer.EmitGasChange(leftover.AsTracing(), tracing.Gas{}, tracing.GasChangeCallLeftOverReturned) } var reverted bool if err != nil { diff --git a/core/vm/gascosts.go b/core/vm/gascosts.go index 3424f436f6..ed938ae41f 100644 --- a/core/vm/gascosts.go +++ b/core/vm/gascosts.go @@ -101,6 +101,6 @@ func (g *GasBudget) Refund(other GasBudget) (GasBudget, bool) { } // AsTracing converts the GasBudget into the tracing-facing Gas vector. -func (g *GasBudget) AsTracing() tracing.Gas { +func (g GasBudget) AsTracing() tracing.Gas { return tracing.Gas{Regular: g.RegularGas, State: g.StateGas} } diff --git a/core/vm/interpreter.go b/core/vm/interpreter.go index 5166de6475..3994327247 100644 --- a/core/vm/interpreter.go +++ b/core/vm/interpreter.go @@ -235,7 +235,7 @@ func (evm *EVM) Run(contract *Contract, input []byte, readOnly bool) (ret []byte // Do tracing before potential memory expansion if debug { if evm.Config.Tracer.HasGasHook() { - evm.Config.Tracer.FireGasChange( + evm.Config.Tracer.EmitGasChange( tracing.Gas{Regular: gasCopy, State: contract.Gas.StateGas}, tracing.Gas{Regular: gasCopy - cost, State: contract.Gas.StateGas}, tracing.GasChangeCallOpCode,