upgrade

package module
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2026 License: BSD-3-Clause Imports: 4 Imported by: 12

Documentation

Index

Constants

View Source
const (
	MainnetID uint32 = 1
	TestnetID uint32 = 5
)

Network IDs - inlined to avoid circular dependency with node package

Variables

View Source
var (
	InitiallyActiveTime       = time.Date(2020, time.December, 5, 5, 0, 0, 0, time.UTC)
	UnscheduledActivationTime = time.Date(9999, time.December, 1, 0, 0, 0, 0, time.UTC)

	// Lux is a fresh-genesis network: every Avalanche-inherited fork gate
	// (ApricotPhase1-6, Banff, Cortina, Durango) and the now-historical
	// Lux-native gates (Quasar, Fortuna) are collapsed to InitiallyActiveTime,
	// so each is active from block 0. Because the historical dates are all in
	// the past, a genesis-active timestamp is behaviorally identical for any
	// live block. Granite stays UnscheduledActivationTime: it is a not-yet-live
	// Lux upgrade, not Avalanche legacy, so activating it is a consensus
	// decision rather than a mechanical de-Avalanche collapse. Per-network
	// VALUES (X-Chain stop vertex, epoch duration) are preserved; only the gate
	// TIMES collapse.
	Mainnet = Config{
		ApricotPhase1Time:            InitiallyActiveTime,
		ApricotPhase2Time:            InitiallyActiveTime,
		ApricotPhase3Time:            InitiallyActiveTime,
		ApricotPhase4Time:            InitiallyActiveTime,
		ApricotPhase4MinPChainHeight: 0,
		ApricotPhase5Time:            InitiallyActiveTime,
		ApricotPhasePre6Time:         InitiallyActiveTime,
		ApricotPhase6Time:            InitiallyActiveTime,
		ApricotPhasePost6Time:        InitiallyActiveTime,
		BanffTime:                    InitiallyActiveTime,
		CortinaTime:                  InitiallyActiveTime,

		CortinaXChainStopVertexID: ids.FromStringOrPanic("jrGWDh5Po9FMj54depyunNixpia5PN4aAYxfmNzU8n752Rjga"),
		DurangoTime:               InitiallyActiveTime,
		QuasarTime:                InitiallyActiveTime,
		FortunaTime:               InitiallyActiveTime,
		GraniteTime:               UnscheduledActivationTime,
		GraniteEpochDuration:      5 * time.Minute,
	}
	// Testnet collapses identically to Mainnet (see above): all Avalanche-
	// inherited and historical Lux gate TIMES become genesis-active; Granite
	// stays future-gated; the X-Chain stop vertex and epoch duration are
	// preserved as per-network values.
	Testnet = Config{
		ApricotPhase1Time:            InitiallyActiveTime,
		ApricotPhase2Time:            InitiallyActiveTime,
		ApricotPhase3Time:            InitiallyActiveTime,
		ApricotPhase4Time:            InitiallyActiveTime,
		ApricotPhase4MinPChainHeight: 0,
		ApricotPhase5Time:            InitiallyActiveTime,
		ApricotPhasePre6Time:         InitiallyActiveTime,
		ApricotPhase6Time:            InitiallyActiveTime,
		ApricotPhasePost6Time:        InitiallyActiveTime,
		BanffTime:                    InitiallyActiveTime,
		CortinaTime:                  InitiallyActiveTime,

		CortinaXChainStopVertexID: ids.FromStringOrPanic("2D1cmbiG36BqQMRyHt4kFhWarmatA1ighSpND3FeFgz3vFVtCZ"),
		DurangoTime:               InitiallyActiveTime,
		QuasarTime:                InitiallyActiveTime,
		FortunaTime:               InitiallyActiveTime,
		GraniteTime:               UnscheduledActivationTime,
		GraniteEpochDuration:      5 * time.Minute,
	}
	Default = Config{
		ApricotPhase1Time:            InitiallyActiveTime,
		ApricotPhase2Time:            InitiallyActiveTime,
		ApricotPhase3Time:            InitiallyActiveTime,
		ApricotPhase4Time:            InitiallyActiveTime,
		ApricotPhase4MinPChainHeight: 0,
		ApricotPhase5Time:            InitiallyActiveTime,
		ApricotPhasePre6Time:         InitiallyActiveTime,
		ApricotPhase6Time:            InitiallyActiveTime,
		ApricotPhasePost6Time:        InitiallyActiveTime,
		BanffTime:                    InitiallyActiveTime,
		CortinaTime:                  InitiallyActiveTime,
		CortinaXChainStopVertexID:    ids.Empty,
		DurangoTime:                  InitiallyActiveTime,
		QuasarTime:                   InitiallyActiveTime,
		FortunaTime:                  InitiallyActiveTime,
		GraniteTime:                  UnscheduledActivationTime,
		GraniteEpochDuration:         30 * time.Second,
	}

	ErrInvalidUpgradeTimes = errors.New("invalid upgrade configuration")
)

Functions

This section is empty.

Types

type Config

type Config struct {
	ApricotPhase1Time            time.Time     `json:"apricotPhase1Time"`
	ApricotPhase2Time            time.Time     `json:"apricotPhase2Time"`
	ApricotPhase3Time            time.Time     `json:"apricotPhase3Time"`
	ApricotPhase4Time            time.Time     `json:"apricotPhase4Time"`
	ApricotPhase4MinPChainHeight uint64        `json:"apricotPhase4MinPChainHeight"`
	ApricotPhase5Time            time.Time     `json:"apricotPhase5Time"`
	ApricotPhasePre6Time         time.Time     `json:"apricotPhasePre6Time"`
	ApricotPhase6Time            time.Time     `json:"apricotPhase6Time"`
	ApricotPhasePost6Time        time.Time     `json:"apricotPhasePost6Time"`
	BanffTime                    time.Time     `json:"banffTime"`
	CortinaTime                  time.Time     `json:"cortinaTime"`
	CortinaXChainStopVertexID    ids.ID        `json:"cortinaXChainStopVertexID"`
	DurangoTime                  time.Time     `json:"durangoTime"`
	QuasarTime                   time.Time     `json:"quasarTime"`
	FortunaTime                  time.Time     `json:"fortunaTime"`
	GraniteTime                  time.Time     `json:"graniteTime"`
	GraniteEpochDuration         time.Duration `json:"graniteEpochDuration"`
}

func GetConfig

func GetConfig(networkID uint32) Config

func (*Config) IsApricotPhase1Activated

func (c *Config) IsApricotPhase1Activated(t time.Time) bool

func (*Config) IsApricotPhase2Activated

func (c *Config) IsApricotPhase2Activated(t time.Time) bool

func (*Config) IsApricotPhase3Activated

func (c *Config) IsApricotPhase3Activated(t time.Time) bool

func (*Config) IsApricotPhase4Activated

func (c *Config) IsApricotPhase4Activated(t time.Time) bool

func (*Config) IsApricotPhase5Activated

func (c *Config) IsApricotPhase5Activated(t time.Time) bool

func (*Config) IsApricotPhase6Activated

func (c *Config) IsApricotPhase6Activated(t time.Time) bool

func (*Config) IsApricotPhasePost6Activated

func (c *Config) IsApricotPhasePost6Activated(t time.Time) bool

func (*Config) IsApricotPhasePre6Activated

func (c *Config) IsApricotPhasePre6Activated(t time.Time) bool

func (*Config) IsBanffActivated

func (c *Config) IsBanffActivated(t time.Time) bool

func (*Config) IsCortinaActivated

func (c *Config) IsCortinaActivated(t time.Time) bool

func (*Config) IsDurangoActivated

func (c *Config) IsDurangoActivated(t time.Time) bool

func (*Config) IsFortunaActivated

func (c *Config) IsFortunaActivated(t time.Time) bool

func (*Config) IsGraniteActivated

func (c *Config) IsGraniteActivated(t time.Time) bool

func (*Config) IsQuasarActivated

func (c *Config) IsQuasarActivated(t time.Time) bool

func (*Config) Validate

func (c *Config) Validate() error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL