From 7e625dd54822499d7fece76de9850377d65957c4 Mon Sep 17 00:00:00 2001 From: Rafael Matias Date: Wed, 1 Jul 2026 11:55:12 +0200 Subject: [PATCH] cmd: add amsterdam override flag (#35213) Co-authored-by: MariusVanDerWijden --- cmd/geth/chaincmd.go | 5 +++++ cmd/geth/config.go | 4 ++++ cmd/geth/main.go | 1 + cmd/utils/flags.go | 5 +++++ core/eip8246_test.go | 3 --- core/genesis.go | 12 ++++++++---- core/vm/eip8037_test.go | 3 --- eth/backend.go | 3 +++ eth/ethconfig/config.go | 3 +++ eth/ethconfig/gen_config.go | 6 ++++++ 10 files changed, 35 insertions(+), 10 deletions(-) diff --git a/cmd/geth/chaincmd.go b/cmd/geth/chaincmd.go index 891507d2ed..2c312f4e41 100644 --- a/cmd/geth/chaincmd.go +++ b/cmd/geth/chaincmd.go @@ -62,6 +62,7 @@ var ( Flags: slices.Concat([]cli.Flag{ utils.CachePreimagesFlag, utils.OverrideOsaka, + utils.OverrideAmsterdam, utils.OverrideBPO1, utils.OverrideBPO2, utils.OverrideUBT, @@ -287,6 +288,10 @@ func initGenesis(ctx *cli.Context) error { v := ctx.Uint64(utils.OverrideOsaka.Name) overrides.OverrideOsaka = &v } + if ctx.IsSet(utils.OverrideAmsterdam.Name) { + v := ctx.Uint64(utils.OverrideAmsterdam.Name) + overrides.OverrideAmsterdam = &v + } if ctx.IsSet(utils.OverrideBPO1.Name) { v := ctx.Uint64(utils.OverrideBPO1.Name) overrides.OverrideBPO1 = &v diff --git a/cmd/geth/config.go b/cmd/geth/config.go index ab9a336349..8ac9e7f6bd 100644 --- a/cmd/geth/config.go +++ b/cmd/geth/config.go @@ -228,6 +228,10 @@ func makeFullNode(ctx *cli.Context) *node.Node { v := ctx.Uint64(utils.OverrideOsaka.Name) cfg.Eth.OverrideOsaka = &v } + if ctx.IsSet(utils.OverrideAmsterdam.Name) { + v := ctx.Uint64(utils.OverrideAmsterdam.Name) + cfg.Eth.OverrideAmsterdam = &v + } if ctx.IsSet(utils.OverrideBPO1.Name) { v := ctx.Uint64(utils.OverrideBPO1.Name) cfg.Eth.OverrideBPO1 = &v diff --git a/cmd/geth/main.go b/cmd/geth/main.go index 5e90164aaa..d3934a8cb6 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -57,6 +57,7 @@ var ( utils.USBFlag, utils.SmartCardDaemonPathFlag, utils.OverrideOsaka, + utils.OverrideAmsterdam, utils.OverrideBPO1, utils.OverrideBPO2, utils.OverrideUBT, diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index a248d4fa8a..9d06e54f6c 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -254,6 +254,11 @@ var ( Usage: "Manually specify the Osaka fork timestamp, overriding the bundled setting", Category: flags.EthCategory, } + OverrideAmsterdam = &cli.Uint64Flag{ + Name: "override.amsterdam", + Usage: "Manually specify the Amsterdam fork timestamp, overriding the bundled setting", + Category: flags.EthCategory, + } OverrideBPO1 = &cli.Uint64Flag{ Name: "override.bpo1", Usage: "Manually specify the bpo1 fork timestamp, overriding the bundled setting", diff --git a/core/eip8246_test.go b/core/eip8246_test.go index 2fd39e3d44..18049d2279 100644 --- a/core/eip8246_test.go +++ b/core/eip8246_test.go @@ -49,9 +49,6 @@ func TestEIP8246SelfdestructNoBurn(t *testing.T) { // TODO: drop this hacky Amsterdam config initialization once the final // Amsterdam config is available (mirrors TestEthTransferLogs). config.AmsterdamTime = new(uint64) - blobConfig := *config.BlobScheduleConfig - blobConfig.Amsterdam = blobConfig.Osaka - config.BlobScheduleConfig = &blobConfig gspec := &Genesis{ Config: &config, diff --git a/core/genesis.go b/core/genesis.go index ec3e70a975..910a3fb0f5 100644 --- a/core/genesis.go +++ b/core/genesis.go @@ -277,10 +277,11 @@ func (e *GenesisMismatchError) Error() string { // ChainOverrides contains the changes to chain config. type ChainOverrides struct { - OverrideOsaka *uint64 - OverrideBPO1 *uint64 - OverrideBPO2 *uint64 - OverrideUBT *uint64 + OverrideOsaka *uint64 + OverrideAmsterdam *uint64 + OverrideBPO1 *uint64 + OverrideBPO2 *uint64 + OverrideUBT *uint64 } // apply applies the chain overrides on the supplied chain config. @@ -291,6 +292,9 @@ func (o *ChainOverrides) apply(cfg *params.ChainConfig) error { if o.OverrideOsaka != nil { cfg.OsakaTime = o.OverrideOsaka } + if o.OverrideAmsterdam != nil { + cfg.AmsterdamTime = o.OverrideAmsterdam + } if o.OverrideBPO1 != nil { cfg.BPO1Time = o.OverrideBPO1 } diff --git a/core/vm/eip8037_test.go b/core/vm/eip8037_test.go index 658096d228..07f0099207 100644 --- a/core/vm/eip8037_test.go +++ b/core/vm/eip8037_test.go @@ -45,9 +45,6 @@ var ( func amsterdam8037Config() *params.ChainConfig { cfg := *params.MergedTestChainConfig cfg.AmsterdamTime = new(uint64) - blob := *cfg.BlobScheduleConfig - blob.Amsterdam = blob.Osaka - cfg.BlobScheduleConfig = &blob return &cfg } diff --git a/eth/backend.go b/eth/backend.go index 7438486696..366f911785 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -280,6 +280,9 @@ func New(stack *node.Node, config *ethconfig.Config) (*Ethereum, error) { if config.OverrideOsaka != nil { overrides.OverrideOsaka = config.OverrideOsaka } + if config.OverrideAmsterdam != nil { + overrides.OverrideAmsterdam = config.OverrideAmsterdam + } if config.OverrideBPO1 != nil { overrides.OverrideBPO1 = config.OverrideBPO1 } diff --git a/eth/ethconfig/config.go b/eth/ethconfig/config.go index 99a0fa89f7..378bb64a1e 100644 --- a/eth/ethconfig/config.go +++ b/eth/ethconfig/config.go @@ -206,6 +206,9 @@ type Config struct { // OverrideOsaka (TODO: remove after the fork) OverrideOsaka *uint64 `toml:",omitempty"` + // OverrideAmsterdam (TODO: remove after the fork) + OverrideAmsterdam *uint64 `toml:",omitempty"` + // OverrideBPO1 (TODO: remove after the fork) OverrideBPO1 *uint64 `toml:",omitempty"` diff --git a/eth/ethconfig/gen_config.go b/eth/ethconfig/gen_config.go index 61d6ccb168..b24cde8a6a 100644 --- a/eth/ethconfig/gen_config.go +++ b/eth/ethconfig/gen_config.go @@ -64,6 +64,7 @@ func (c Config) MarshalTOML() (interface{}, error) { RPCEVMTimeout time.Duration RPCTxFeeCap float64 OverrideOsaka *uint64 `toml:",omitempty"` + OverrideAmsterdam *uint64 `toml:",omitempty"` OverrideBPO1 *uint64 `toml:",omitempty"` OverrideBPO2 *uint64 `toml:",omitempty"` OverrideUBT *uint64 `toml:",omitempty"` @@ -119,6 +120,7 @@ func (c Config) MarshalTOML() (interface{}, error) { enc.RPCEVMTimeout = c.RPCEVMTimeout enc.RPCTxFeeCap = c.RPCTxFeeCap enc.OverrideOsaka = c.OverrideOsaka + enc.OverrideAmsterdam = c.OverrideAmsterdam enc.OverrideBPO1 = c.OverrideBPO1 enc.OverrideBPO2 = c.OverrideBPO2 enc.OverrideUBT = c.OverrideUBT @@ -178,6 +180,7 @@ func (c *Config) UnmarshalTOML(unmarshal func(interface{}) error) error { RPCEVMTimeout *time.Duration RPCTxFeeCap *float64 OverrideOsaka *uint64 `toml:",omitempty"` + OverrideAmsterdam *uint64 `toml:",omitempty"` OverrideBPO1 *uint64 `toml:",omitempty"` OverrideBPO2 *uint64 `toml:",omitempty"` OverrideUBT *uint64 `toml:",omitempty"` @@ -330,6 +333,9 @@ func (c *Config) UnmarshalTOML(unmarshal func(interface{}) error) error { if dec.OverrideOsaka != nil { c.OverrideOsaka = dec.OverrideOsaka } + if dec.OverrideAmsterdam != nil { + c.OverrideAmsterdam = dec.OverrideAmsterdam + } if dec.OverrideBPO1 != nil { c.OverrideBPO1 = dec.OverrideBPO1 }