Skip to content

Commit 2a0b8b6

Browse files
authored
Merge pull request #445 from OffchainLabs/eip_2935_arbos_40
Skip calling ProcessParentBlockHash in geth for arbitrum chain
2 parents 1b11b94 + 0651aff commit 2a0b8b6

File tree

6 files changed

+9
-9
lines changed

6 files changed

+9
-9
lines changed

cmd/evm/internal/t8ntool/execution.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ func (pre *Prestate) Apply(vmConfig vm.Config, chainConfig *params.ChainConfig,
216216
if beaconRoot := pre.Env.ParentBeaconBlockRoot; beaconRoot != nil {
217217
core.ProcessBeaconBlockRoot(*beaconRoot, evm)
218218
}
219-
if pre.Env.BlockHashes != nil && chainConfig.IsPrague(new(big.Int).SetUint64(pre.Env.Number), pre.Env.Timestamp, vmContext.ArbOSVersion) {
219+
if !chainConfig.IsArbitrum() && pre.Env.BlockHashes != nil && chainConfig.IsPrague(new(big.Int).SetUint64(pre.Env.Number), pre.Env.Timestamp, vmContext.ArbOSVersion) {
220220
var (
221221
prevNumber = pre.Env.Number - 1
222222
prevHash = pre.Env.BlockHashes[math.HexOrDecimal64(prevNumber)]

core/chain_makers.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ func GenerateChain(config *params.ChainConfig, parent *types.Block, engine conse
390390
}
391391

392392
blockContext := NewEVMBlockContext(b.header, cm, &b.header.Coinbase)
393-
if config.IsPrague(b.header.Number, b.header.Time, blockContext.ArbOSVersion) || config.IsVerkle(b.header.Number, b.header.Time) {
393+
if !config.IsArbitrum() && config.IsPrague(b.header.Number, b.header.Time, blockContext.ArbOSVersion) || config.IsVerkle(b.header.Number, b.header.Time) {
394394
// EIP-2935
395395
blockContext.Random = &common.Hash{} // enable post-merge instruction set
396396
evm := vm.NewEVM(blockContext, statedb, cm.config, vm.Config{})

eth/state_accessor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ func (eth *Ethereum) stateAtTransaction(ctx context.Context, block *types.Block,
261261
core.ProcessBeaconBlockRoot(*beaconRoot, evm)
262262
}
263263
// If prague hardfork, insert parent block hash in the state as per EIP-2935.
264-
if eth.blockchain.Config().IsPrague(block.Number(), block.Time(), context.ArbOSVersion) {
264+
if !eth.blockchain.Config().IsArbitrum() && eth.blockchain.Config().IsPrague(block.Number(), block.Time(), context.ArbOSVersion) {
265265
core.ProcessParentBlockHash(block.ParentHash(), evm)
266266
}
267267
if txIndex == 0 && len(block.Transactions()) == 0 {

eth/tracers/api.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ func (api *API) traceChain(start, end *types.Block, config *TraceConfig, closed
389389
core.ProcessBeaconBlockRoot(*beaconRoot, evm)
390390
}
391391
// Insert parent hash in history contract.
392-
if api.backend.ChainConfig().IsPrague(next.Number(), next.Time(), context.ArbOSVersion) {
392+
if !api.backend.ChainConfig().IsArbitrum() && api.backend.ChainConfig().IsPrague(next.Number(), next.Time(), context.ArbOSVersion) {
393393
core.ProcessParentBlockHash(next.ParentHash(), evm)
394394
}
395395
// Clean out any pending release functions of trace state. Note this
@@ -544,7 +544,7 @@ func (api *API) IntermediateRoots(ctx context.Context, hash common.Hash, config
544544
if beaconRoot := block.BeaconRoot(); beaconRoot != nil {
545545
core.ProcessBeaconBlockRoot(*beaconRoot, evm)
546546
}
547-
if chainConfig.IsPrague(block.Number(), block.Time(), vmctx.ArbOSVersion) {
547+
if !chainConfig.IsArbitrum() && chainConfig.IsPrague(block.Number(), block.Time(), vmctx.ArbOSVersion) {
548548
core.ProcessParentBlockHash(block.ParentHash(), evm)
549549
}
550550
for i, tx := range block.Transactions() {
@@ -608,7 +608,7 @@ func (api *API) traceBlock(ctx context.Context, block *types.Block, config *Trac
608608
if beaconRoot := block.BeaconRoot(); beaconRoot != nil {
609609
core.ProcessBeaconBlockRoot(*beaconRoot, evm)
610610
}
611-
if api.backend.ChainConfig().IsPrague(block.Number(), block.Time(), blockCtx.ArbOSVersion) {
611+
if !api.backend.ChainConfig().IsArbitrum() && api.backend.ChainConfig().IsPrague(block.Number(), block.Time(), blockCtx.ArbOSVersion) {
612612
core.ProcessParentBlockHash(block.ParentHash(), evm)
613613
}
614614

@@ -787,7 +787,7 @@ func (api *API) standardTraceBlockToFile(ctx context.Context, block *types.Block
787787
if beaconRoot := block.BeaconRoot(); beaconRoot != nil {
788788
core.ProcessBeaconBlockRoot(*beaconRoot, evm)
789789
}
790-
if chainConfig.IsPrague(block.Number(), block.Time(), vmctx.ArbOSVersion) {
790+
if !chainConfig.IsArbitrum() && chainConfig.IsPrague(block.Number(), block.Time(), vmctx.ArbOSVersion) {
791791
core.ProcessParentBlockHash(block.ParentHash(), evm)
792792
}
793793
for i, tx := range block.Transactions() {

internal/ethapi/simulate.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ func (sim *simulator) processBlock(ctx context.Context, block *simBlock, header,
208208
if precompiles != nil {
209209
evm.SetPrecompiles(precompiles)
210210
}
211-
if sim.chainConfig.IsPrague(header.Number, header.Time, parentArbOSVersion) || sim.chainConfig.IsVerkle(header.Number, header.Time) {
211+
if !sim.chainConfig.IsArbitrum() && sim.chainConfig.IsPrague(header.Number, header.Time, parentArbOSVersion) || sim.chainConfig.IsVerkle(header.Number, header.Time) {
212212
core.ProcessParentBlockHash(header.ParentHash, evm)
213213
}
214214
var allLogs []*types.Log

miner/worker.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ func (miner *Miner) prepareWork(genParams *generateParams, witness bool) (*envir
230230
if header.ParentBeaconRoot != nil {
231231
core.ProcessBeaconBlockRoot(*header.ParentBeaconRoot, env.evm)
232232
}
233-
if miner.chainConfig.IsPrague(header.Number, header.Time, prevArbosVersion) {
233+
if !miner.chainConfig.IsArbitrum() && miner.chainConfig.IsPrague(header.Number, header.Time, prevArbosVersion) {
234234
core.ProcessParentBlockHash(header.ParentHash, env.evm)
235235
}
236236
return env, nil

0 commit comments

Comments
 (0)