48 lines
1.6 KiB
Go
48 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/filecoin-project/go-state-types/abi"
|
|
|
|
"github.com/filecoin-project/lotus/build"
|
|
)
|
|
|
|
// ProtocolCodenames is a table that summarises the protocol codenames that
|
|
// will be set on extracted vectors, depending on the original execution height.
|
|
//
|
|
// Implementers rely on these names to filter the vectors they can run through
|
|
// their implementations, based on their support level
|
|
var ProtocolCodenames = []struct {
|
|
firstEpoch abi.ChainEpoch
|
|
name string
|
|
}{
|
|
{0, "genesis"},
|
|
{build.UpgradeBreezeHeight + 1, "breeze"},
|
|
{build.UpgradeSmokeHeight + 1, "smoke"},
|
|
{build.UpgradeIgnitionHeight + 1, "ignition"},
|
|
{build.UpgradeRefuelHeight + 1, "refuel"},
|
|
{build.UpgradeAssemblyHeight + 1, "actorsv2"},
|
|
{build.UpgradeTapeHeight + 1, "tape"},
|
|
{build.UpgradeLiftoffHeight + 1, "liftoff"},
|
|
{build.UpgradeKumquatHeight + 1, "postliftoff"},
|
|
{build.UpgradeCalicoHeight + 1, "calico"},
|
|
{build.UpgradePersianHeight + 1, "persian"},
|
|
{build.UpgradeOrangeHeight + 1, "orange"},
|
|
{build.UpgradeTrustHeight + 1, "trust"},
|
|
{build.UpgradeNorwegianHeight + 1, "norwegian"},
|
|
{build.UpgradeTurboHeight + 1, "turbo"},
|
|
{build.UpgradeHyperdriveHeight + 1, "hyperdrive"},
|
|
{build.UpgradeChocolateHeight + 1, "chocolate"},
|
|
{build.UpgradeOhSnapHeight + 1, "ohsnap"},
|
|
}
|
|
|
|
// GetProtocolCodename gets the protocol codename associated with a height.
|
|
func GetProtocolCodename(height abi.ChainEpoch) string {
|
|
for i, v := range ProtocolCodenames {
|
|
if height < v.firstEpoch {
|
|
// found the cutoff, return previous.
|
|
return ProtocolCodenames[i-1].name
|
|
}
|
|
}
|
|
return ProtocolCodenames[len(ProtocolCodenames)-1].name
|
|
}
|