diff --git a/eth/tracers/native/prestate.go b/eth/tracers/native/prestate.go index 9706eb43f..84fa3b109 100644 --- a/eth/tracers/native/prestate.go +++ b/eth/tracers/native/prestate.go @@ -91,9 +91,11 @@ func newPrestateTracer(ctx *tracers.Context, cfg json.RawMessage, chainConfig *p } return &tracers.Tracer{ Hooks: &tracing.Hooks{ - OnTxStart: t.OnTxStart, - OnTxEnd: t.OnTxEnd, - OnOpcode: t.OnOpcode, + OnTxStart: t.OnTxStart, + OnTxEnd: t.OnTxEnd, + OnOpcode: t.OnOpcode, + CaptureArbitrumStorageGet: t.CaptureArbitrumStorageGet, + CaptureArbitrumStorageSet: t.CaptureArbitrumStorageSet, }, GetResult: t.GetResult, Stop: t.Stop, diff --git a/eth/tracers/native/tracer_arbitrum.go b/eth/tracers/native/tracer_arbitrum.go index adb7bab42..5cafd8eb0 100644 --- a/eth/tracers/native/tracer_arbitrum.go +++ b/eth/tracers/native/tracer_arbitrum.go @@ -21,6 +21,7 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/tracing" + "github.com/ethereum/go-ethereum/core/types" ) type arbitrumTransfer struct { @@ -73,6 +74,16 @@ func (t *flatCallTracer) CaptureArbitrumTransfer(from, to *common.Address, value } } +func (t *prestateTracer) CaptureArbitrumStorageGet(key common.Hash, depth int, before bool) { + t.lookupAccount(types.ArbosStateAddress) + t.lookupStorage(types.ArbosStateAddress, key) +} + +func (t *prestateTracer) CaptureArbitrumStorageSet(key, value common.Hash, depth int, before bool) { + t.lookupAccount(types.ArbosStateAddress) + t.lookupStorage(types.ArbosStateAddress, key) +} + func bigToHex(n *big.Int) string { if n == nil { return ""