core: introduce D hardfork
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
This commit is contained in:
parent
836183ecb6
commit
e0825e7665
4 changed files with 13 additions and 4 deletions
|
@ -27,6 +27,9 @@ const (
|
||||||
// https://github.com/neo-project/neo/pull/2925) and #3362 (ported from
|
// https://github.com/neo-project/neo/pull/2925) and #3362 (ported from
|
||||||
// https://github.com/neo-project/neo/pull/3154).
|
// https://github.com/neo-project/neo/pull/3154).
|
||||||
HFCockatrice // Cockatrice
|
HFCockatrice // Cockatrice
|
||||||
|
// HFDomovoi represents hard-fork introduced in #3476 (ported from
|
||||||
|
// https://github.com/neo-project/neo/pull/3290).
|
||||||
|
HFDomovoi // Domovoi
|
||||||
// hfLast denotes the end of hardforks enum. Consider adding new hardforks
|
// hfLast denotes the end of hardforks enum. Consider adding new hardforks
|
||||||
// before hfLast.
|
// before hfLast.
|
||||||
hfLast
|
hfLast
|
||||||
|
|
|
@ -12,13 +12,15 @@ func _() {
|
||||||
_ = x[HFAspidochelone-1]
|
_ = x[HFAspidochelone-1]
|
||||||
_ = x[HFBasilisk-2]
|
_ = x[HFBasilisk-2]
|
||||||
_ = x[HFCockatrice-4]
|
_ = x[HFCockatrice-4]
|
||||||
_ = x[hfLast-8]
|
_ = x[HFDomovoi-8]
|
||||||
|
_ = x[hfLast-16]
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
_Hardfork_name_0 = "DefaultAspidocheloneBasilisk"
|
_Hardfork_name_0 = "DefaultAspidocheloneBasilisk"
|
||||||
_Hardfork_name_1 = "Cockatrice"
|
_Hardfork_name_1 = "Cockatrice"
|
||||||
_Hardfork_name_2 = "hfLast"
|
_Hardfork_name_2 = "Domovoi"
|
||||||
|
_Hardfork_name_3 = "hfLast"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -33,6 +35,8 @@ func (i Hardfork) String() string {
|
||||||
return _Hardfork_name_1
|
return _Hardfork_name_1
|
||||||
case i == 8:
|
case i == 8:
|
||||||
return _Hardfork_name_2
|
return _Hardfork_name_2
|
||||||
|
case i == 16:
|
||||||
|
return _Hardfork_name_3
|
||||||
default:
|
default:
|
||||||
return "Hardfork(" + strconv.FormatInt(int64(i), 10) + ")"
|
return "Hardfork(" + strconv.FormatInt(int64(i), 10) + ")"
|
||||||
}
|
}
|
||||||
|
|
|
@ -370,6 +370,7 @@ func TestNewBlockchain_InitHardforks(t *testing.T) {
|
||||||
config.HFAspidochelone.String(): 0,
|
config.HFAspidochelone.String(): 0,
|
||||||
config.HFBasilisk.String(): 0,
|
config.HFBasilisk.String(): 0,
|
||||||
config.HFCockatrice.String(): 0,
|
config.HFCockatrice.String(): 0,
|
||||||
|
config.HFDomovoi.String(): 0,
|
||||||
}, bc.GetConfig().Hardforks)
|
}, bc.GetConfig().Hardforks)
|
||||||
})
|
})
|
||||||
t.Run("empty set", func(t *testing.T) {
|
t.Run("empty set", func(t *testing.T) {
|
||||||
|
@ -400,13 +401,14 @@ func TestNewBlockchain_InitHardforks(t *testing.T) {
|
||||||
})
|
})
|
||||||
t.Run("all present", func(t *testing.T) {
|
t.Run("all present", func(t *testing.T) {
|
||||||
bc := newTestChainWithCustomCfg(t, func(c *config.Config) {
|
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}
|
c.ProtocolConfiguration.Hardforks = map[string]uint32{config.HFAspidochelone.String(): 5, config.HFBasilisk.String(): 10, config.HFCockatrice.String(): 15, config.HFDomovoi.String(): 20}
|
||||||
require.NoError(t, c.ProtocolConfiguration.Validate())
|
require.NoError(t, c.ProtocolConfiguration.Validate())
|
||||||
})
|
})
|
||||||
require.Equal(t, map[string]uint32{
|
require.Equal(t, map[string]uint32{
|
||||||
config.HFAspidochelone.String(): 5,
|
config.HFAspidochelone.String(): 5,
|
||||||
config.HFBasilisk.String(): 10,
|
config.HFBasilisk.String(): 10,
|
||||||
config.HFCockatrice.String(): 15,
|
config.HFCockatrice.String(): 15,
|
||||||
|
config.HFDomovoi.String(): 20,
|
||||||
}, bc.GetConfig().Hardforks)
|
}, bc.GetConfig().Hardforks)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -271,7 +271,7 @@ func TestBlockchain_StartFromExistingDB(t *testing.T) {
|
||||||
|
|
||||||
_, _, _, err = chain.NewMultiWithCustomConfigAndStoreNoCheck(t, customConfig, cache)
|
_, _, _, err = chain.NewMultiWithCustomConfigAndStoreNoCheck(t, customConfig, cache)
|
||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
require.True(t, strings.Contains(err.Error(), fmt.Sprintf("native %s: version mismatch for the latest hardfork Cockatrice (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 Domovoi (stored contract state differs from autogenerated one)", nativenames.CryptoLib)), err)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("good", func(t *testing.T) {
|
t.Run("good", func(t *testing.T) {
|
||||||
|
|
Loading…
Reference in a new issue