@@ -144,7 +144,8 @@ func (pre *Prestate) Apply(vmConfig vm.Config, chainConfig *params.ChainConfig,
144144 return h
145145 }
146146 var (
147- statedb = MakePreState (rawdb .NewMemoryDatabase (), chainConfig , pre , chainConfig .IsVerkle (big .NewInt (int64 (pre .Env .Number )), pre .Env .Timestamp ))
147+ isEIP4762 = chainConfig .IsVerkle (big .NewInt (int64 (pre .Env .Number )), pre .Env .Timestamp )
148+ statedb = MakePreState (rawdb .NewMemoryDatabase (), chainConfig , pre , isEIP4762 )
148149 signer = types .MakeSigner (chainConfig , new (big.Int ).SetUint64 (pre .Env .Number ), pre .Env .Timestamp )
149150 gaspool = new (core.GasPool )
150151 blockHash = common.Hash {0x13 , 0x37 }
@@ -253,7 +254,6 @@ func (pre *Prestate) Apply(vmConfig vm.Config, chainConfig *params.ChainConfig,
253254 }
254255 }
255256 statedb .SetTxContext (tx .Hash (), txIndex )
256- evm .AccessEvents = state .NewAccessEvents (evm .StateDB .PointCache ())
257257 var (
258258 snapshot = statedb .Snapshot ()
259259 prevGas = gaspool .Gas ()
@@ -318,7 +318,9 @@ func (pre *Prestate) Apply(vmConfig vm.Config, chainConfig *params.ChainConfig,
318318 evm .Config .Tracer .OnTxEnd (receipt , nil )
319319 }
320320 }
321- statedb .AccessEvents ().Merge (evm .AccessEvents )
321+ if isEIP4762 {
322+ statedb .AccessEvents ().Merge (evm .AccessEvents )
323+ }
322324 txIndex ++
323325 }
324326 statedb .IntermediateRoot (chainConfig .IsEIP158 (vmContext .BlockNumber ))
@@ -352,7 +354,9 @@ func (pre *Prestate) Apply(vmConfig vm.Config, chainConfig *params.ChainConfig,
352354 amount := new (big.Int ).Mul (new (big.Int ).SetUint64 (w .Amount ), big .NewInt (params .GWei ))
353355 statedb .AddBalance (w .Address , uint256 .MustFromBig (amount ), tracing .BalanceIncreaseWithdrawal )
354356
355- statedb .AccessEvents ().AddAccount (w .Address , true )
357+ if isEIP4762 {
358+ statedb .AccessEvents ().AddAccount (w .Address , true )
359+ }
356360 }
357361
358362 // Gather the execution-layer triggered requests.
@@ -420,7 +424,7 @@ func (pre *Prestate) Apply(vmConfig vm.Config, chainConfig *params.ChainConfig,
420424}
421425
422426func MakePreState (db ethdb.Database , chainConfig * params.ChainConfig , pre * Prestate , verkle bool ) * state.StateDB {
423- tdb := triedb .NewDatabase (db , & triedb.Config {Preimages : true })
427+ tdb := triedb .NewDatabase (db , & triedb.Config {Preimages : true , IsVerkle : verkle })
424428 sdb := state .NewDatabase (tdb , nil )
425429
426430 statedb , _ := state .New (types .EmptyRootHash , sdb )
0 commit comments