From fb010392995631a8bd6135c174f4bccbe492271e Mon Sep 17 00:00:00 2001 From: Dustin Xie Date: Tue, 26 Mar 2024 10:56:56 -0700 Subject: [PATCH] [genesis] add Upernavik block height --- .github/CODEOWNERS | 6 +++--- blockchain/genesis/genesis.go | 9 +++++++++ blockchain/genesis/heightupgrade_test.go | 3 +++ config/config.go | 2 ++ config/config_test.go | 5 +++++ 5 files changed, 22 insertions(+), 3 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index cb9f9d50c6..d798176e37 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -6,9 +6,9 @@ #Specific owners /consensus/ @CoderZhi @dustinxie @Liuhaai @envestcc -/ioctl/ @CoderZhi @dustinxie @Liuhaai -/api/ @CoderZhi @dustinxie @Liuhaai @millken -/config/ @CoderZhi @dustinxie @Liuhaai @envestcc +/ioctl/ @CoderZhi @dustinxie @Liuhaai @envestcc @millken +/api/ @CoderZhi @dustinxie @Liuhaai @millken @envestcc +/config/ @CoderZhi @dustinxie @Liuhaai @envestcc @millken /p2p/ @CoderZhi @dustinxie @Liuhaai @envestcc /action/ @CoderZhi @dustinxie @Liuhaai @envestcc /blockchain/ @CoderZhi @dustinxie @Liuhaai diff --git a/blockchain/genesis/genesis.go b/blockchain/genesis/genesis.go index b291813b28..3e0ab5eb16 100644 --- a/blockchain/genesis/genesis.go +++ b/blockchain/genesis/genesis.go @@ -76,6 +76,7 @@ func defaultConfig() Genesis { RedseaBlockHeight: 26704441, SumatraBlockHeight: 28516681, TsunamiBlockHeight: 29275561, + UpernavikBlockHeight: 39275561, ToBeEnabledBlockHeight: math.MaxUint64, }, Account: Account{ @@ -258,6 +259,9 @@ type ( // 2. generate transaction log for Suicide() call in EVM // 3. raise block gas limit to 50M TsunamiBlockHeight uint64 `yaml:"tsunamiHeight"` + // UpernavikBlockHeight is the start height to + // 1. enable Cancun EVM + UpernavikBlockHeight uint64 `yaml:"upernavikHeight"` // ToBeEnabledBlockHeight is a fake height that acts as a gating factor for WIP features // upon next release, change IsToBeEnabled() to IsNextHeight() for features to be released ToBeEnabledBlockHeight uint64 `yaml:"toBeEnabledHeight"` @@ -609,6 +613,11 @@ func (g *Blockchain) IsTsunami(height uint64) bool { return g.isPost(g.TsunamiBlockHeight, height) } +// IsUpernavik checks whether height is equal to or larger than upernavik height +func (g *Blockchain) IsUpernavik(height uint64) bool { + return g.isPost(g.UpernavikBlockHeight, height) +} + // IsToBeEnabled checks whether height is equal to or larger than toBeEnabled height func (g *Blockchain) IsToBeEnabled(height uint64) bool { return g.isPost(g.ToBeEnabledBlockHeight, height) diff --git a/blockchain/genesis/heightupgrade_test.go b/blockchain/genesis/heightupgrade_test.go index e1398e885c..72cdbc762d 100644 --- a/blockchain/genesis/heightupgrade_test.go +++ b/blockchain/genesis/heightupgrade_test.go @@ -63,6 +63,8 @@ func TestNewHeightChange(t *testing.T) { require.True(cfg.IsSumatra(uint64(28516681))) require.False(cfg.IsTsunami(uint64(29275560))) require.True(cfg.IsTsunami(uint64(29275561))) + require.False(cfg.IsUpernavik(uint64(39275560))) + require.True(cfg.IsUpernavik(uint64(39275561))) require.Equal(cfg.PacificBlockHeight, uint64(432001)) require.Equal(cfg.AleutianBlockHeight, uint64(864001)) @@ -87,4 +89,5 @@ func TestNewHeightChange(t *testing.T) { require.Equal(cfg.RedseaBlockHeight, uint64(26704441)) require.Equal(cfg.SumatraBlockHeight, uint64(28516681)) require.Equal(cfg.TsunamiBlockHeight, uint64(29275561)) + require.Equal(cfg.UpernavikBlockHeight, uint64(39275561)) } diff --git a/config/config.go b/config/config.go index 1def5da96b..43080347d1 100644 --- a/config/config.go +++ b/config/config.go @@ -331,6 +331,8 @@ func ValidateForkHeights(cfg Config) error { return errors.Wrap(ErrInvalidCfg, "Redsea is heigher than Sumatra") case hu.SumatraBlockHeight > hu.TsunamiBlockHeight: return errors.Wrap(ErrInvalidCfg, "Sumatra is heigher than Tsunami") + case hu.TsunamiBlockHeight > hu.UpernavikBlockHeight: + return errors.Wrap(ErrInvalidCfg, "Tsunami is heigher than Upernavik") } return nil } diff --git a/config/config_test.go b/config/config_test.go index 243bc5961e..389aeaab8f 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -380,6 +380,9 @@ func TestValidateForkHeights(t *testing.T) { { "Sumatra", ErrInvalidCfg, "Sumatra is heigher than Tsunami", }, + { + "Tsunami", ErrInvalidCfg, "Tsunami is heigher than Upernavik", + }, { "", nil, "", }, @@ -440,6 +443,8 @@ func newTestCfg(fork string) Config { cfg.Genesis.RedseaBlockHeight = cfg.Genesis.SumatraBlockHeight + 1 case "Sumatra": cfg.Genesis.SumatraBlockHeight = cfg.Genesis.TsunamiBlockHeight + 1 + case "Tsunami": + cfg.Genesis.TsunamiBlockHeight = cfg.Genesis.UpernavikBlockHeight + 1 } return cfg }