Skip to content

Commit 751a4da

Browse files
authored
Merge pull request #229 from bane-labs/fix-t8ntool
t8ntool: process OnPersist before state transition
2 parents 175960b + 925d13b commit 751a4da

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

cmd/evm/internal/t8ntool/execution.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,10 +187,20 @@ func (pre *Prestate) Apply(vmConfig vm.Config, chainConfig *params.ChainConfig,
187187
chainConfig.DAOForkBlock.Cmp(new(big.Int).SetUint64(pre.Env.Number)) == 0 {
188188
misc.ApplyDAOHardFork(statedb)
189189
}
190+
var evm *vm.EVM
190191
if beaconRoot := pre.Env.ParentBeaconBlockRoot; beaconRoot != nil {
191-
evm := vm.NewEVM(vmContext, vm.TxContext{}, statedb, chainConfig, vmConfig)
192+
evm = vm.NewEVM(vmContext, vm.TxContext{}, statedb, chainConfig, vmConfig)
192193
core.ProcessBeaconBlockRoot(*beaconRoot, evm, statedb)
193194
}
195+
if chainConfig.DBFT != nil {
196+
if evm == nil {
197+
evm = vm.NewEVM(vmContext, vm.TxContext{}, statedb, chainConfig, vmConfig)
198+
}
199+
err := core.ProcessOnPersist(evm, statedb)
200+
if err != nil {
201+
return nil, nil, nil, NewError(ErrorEVM, fmt.Errorf("could not process OnPersist: %v", err))
202+
}
203+
}
194204

195205
for i := 0; txIt.Next(); i++ {
196206
tx, err := txIt.Tx()

0 commit comments

Comments
 (0)