core: introduce Echidna hardfork

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
This commit is contained in:
Anna Shaleva 2024-06-04 13:25:21 +03:00
parent 79e78980c4
commit 2c24cb342e
4 changed files with 13 additions and 4 deletions

View file

@ -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

View file

@ -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) + ")"
}

View file

@ -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)
})
}

View file

@ -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) {