From dacd03b6eb2c5f261ba2a5ec2d18d12d8cbe3726 Mon Sep 17 00:00:00 2001 From: Mark Tyneway Date: Mon, 3 Oct 2022 17:47:45 -0700 Subject: [PATCH] op-chain-ops: defensive storage config Check for nil values coming from the block when creating a new `StorageConfig`. This will prevent cryptic errors that happen deeper in serialization, when trying to deal with `nil` values. Instead the error should be caught earlier with a better error message. --- op-chain-ops/genesis/config.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/op-chain-ops/genesis/config.go b/op-chain-ops/genesis/config.go index 336a8ea5811..c7aba95acb6 100644 --- a/op-chain-ops/genesis/config.go +++ b/op-chain-ops/genesis/config.go @@ -2,6 +2,7 @@ package genesis import ( "encoding/json" + "errors" "os" "path/filepath" @@ -120,6 +121,13 @@ func NewL2ImmutableConfig(config *DeployConfig, block *types.Block, proxyL1Stand func NewL2StorageConfig(config *DeployConfig, block *types.Block, proxyL1StandardBridge common.Address, proxyL1CrossDomainMessenger common.Address) (state.StorageConfig, error) { storage := make(state.StorageConfig) + if block.Number() == nil { + return storage, errors.New("block number not set") + } + if block.BaseFee() == nil { + return storage, errors.New("block base fee not set") + } + storage["L2ToL1MessagePasser"] = state.StorageValues{ "nonce": 0, }