From 2c24cb342e746a2fe1a6499461edf4dc654f5a33 Mon Sep 17 00:00:00 2001 From: Anna Shaleva Date: Tue, 4 Jun 2024 13:25:21 +0300 Subject: [PATCH] core: introduce Echidna hardfork Signed-off-by: Anna Shaleva --- pkg/config/hardfork.go | 3 +++ pkg/config/hardfork_string.go | 8 ++++++-- pkg/core/blockchain_core_test.go | 4 +++- pkg/core/blockchain_neotest_test.go | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/pkg/config/hardfork.go b/pkg/config/hardfork.go index 0cb80bc312..d218cce211 100644 --- a/pkg/config/hardfork.go +++ b/pkg/config/hardfork.go @@ -43,6 +43,9 @@ const ( // different ApplicationLogs comparing to the C# node, but the node states // match. See #3485 for details. HFDomovoi // Domovoi + // HFEchidna represents hard-fork introduced in #3554 (ported from + // https://github.com/neo-project/neo/pull/3454). + HFEchidna // Echidna // hfLast denotes the end of hardforks enum. Consider adding new hardforks // before hfLast. hfLast diff --git a/pkg/config/hardfork_string.go b/pkg/config/hardfork_string.go index f45f1b3ca2..834f43075f 100644 --- a/pkg/config/hardfork_string.go +++ b/pkg/config/hardfork_string.go @@ -13,14 +13,16 @@ func _() { _ = x[HFBasilisk-2] _ = x[HFCockatrice-4] _ = x[HFDomovoi-8] - _ = x[hfLast-16] + _ = x[HFEchidna-16] + _ = x[hfLast-32] } const ( _Hardfork_name_0 = "DefaultAspidocheloneBasilisk" _Hardfork_name_1 = "Cockatrice" _Hardfork_name_2 = "Domovoi" - _Hardfork_name_3 = "hfLast" + _Hardfork_name_3 = "Echidna" + _Hardfork_name_4 = "hfLast" ) var ( @@ -37,6 +39,8 @@ func (i Hardfork) String() string { return _Hardfork_name_2 case i == 16: return _Hardfork_name_3 + case i == 32: + return _Hardfork_name_4 default: return "Hardfork(" + strconv.FormatInt(int64(i), 10) + ")" } diff --git a/pkg/core/blockchain_core_test.go b/pkg/core/blockchain_core_test.go index 0365338d71..c5f24995fc 100644 --- a/pkg/core/blockchain_core_test.go +++ b/pkg/core/blockchain_core_test.go @@ -371,6 +371,7 @@ func TestNewBlockchain_InitHardforks(t *testing.T) { config.HFBasilisk.String(): 0, config.HFCockatrice.String(): 0, config.HFDomovoi.String(): 0, + config.HFEchidna.String(): 0, }, bc.GetConfig().Hardforks) }) t.Run("empty set", func(t *testing.T) { @@ -401,7 +402,7 @@ func TestNewBlockchain_InitHardforks(t *testing.T) { }) t.Run("all present", func(t *testing.T) { bc := newTestChainWithCustomCfg(t, func(c *config.Config) { - c.ProtocolConfiguration.Hardforks = map[string]uint32{config.HFAspidochelone.String(): 5, config.HFBasilisk.String(): 10, config.HFCockatrice.String(): 15, config.HFDomovoi.String(): 20} + c.ProtocolConfiguration.Hardforks = map[string]uint32{config.HFAspidochelone.String(): 5, config.HFBasilisk.String(): 10, config.HFCockatrice.String(): 15, config.HFDomovoi.String(): 20, config.HFEchidna.String(): 25} require.NoError(t, c.ProtocolConfiguration.Validate()) }) require.Equal(t, map[string]uint32{ @@ -409,6 +410,7 @@ func TestNewBlockchain_InitHardforks(t *testing.T) { config.HFBasilisk.String(): 10, config.HFCockatrice.String(): 15, config.HFDomovoi.String(): 20, + config.HFEchidna.String(): 25, }, bc.GetConfig().Hardforks) }) } diff --git a/pkg/core/blockchain_neotest_test.go b/pkg/core/blockchain_neotest_test.go index 3a30ef48db..10966375c1 100644 --- a/pkg/core/blockchain_neotest_test.go +++ b/pkg/core/blockchain_neotest_test.go @@ -271,7 +271,7 @@ func TestBlockchain_StartFromExistingDB(t *testing.T) { _, _, _, err = chain.NewMultiWithCustomConfigAndStoreNoCheck(t, customConfig, cache) require.Error(t, err) - require.True(t, strings.Contains(err.Error(), fmt.Sprintf("native %s: version mismatch for the latest hardfork Domovoi (stored contract state differs from autogenerated one)", nativenames.CryptoLib)), err) + require.True(t, strings.Contains(err.Error(), fmt.Sprintf("native %s: version mismatch for the latest hardfork Echidna (stored contract state differs from autogenerated one)", nativenames.CryptoLib)), err) }) t.Run("good", func(t *testing.T) {