2021-08-06 00:46:05 +00:00
|
|
|
package kit
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/filecoin-project/go-state-types/abi"
|
|
|
|
"github.com/filecoin-project/go-state-types/network"
|
2021-09-02 16:07:23 +00:00
|
|
|
|
|
|
|
"github.com/filecoin-project/lotus/chain/consensus/filcns"
|
2021-08-06 00:46:05 +00:00
|
|
|
"github.com/filecoin-project/lotus/chain/stmgr"
|
|
|
|
)
|
|
|
|
|
|
|
|
func UpgradeSchedule(upgrades ...stmgr.Upgrade) EnsembleOpt {
|
|
|
|
return func(opts *ensembleOpts) error {
|
|
|
|
opts.upgradeSchedule = upgrades
|
|
|
|
return opts.upgradeSchedule.Validate()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// GenesisNetworkVersion sets the network version of genesis.
|
|
|
|
func GenesisNetworkVersion(nv network.Version) EnsembleOpt {
|
|
|
|
return UpgradeSchedule(stmgr.Upgrade{
|
|
|
|
Network: nv,
|
|
|
|
Height: -1,
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
func SDRUpgradeAt(calico, persian abi.ChainEpoch) EnsembleOpt {
|
|
|
|
return UpgradeSchedule(stmgr.Upgrade{
|
|
|
|
Network: network.Version6,
|
|
|
|
Height: -1,
|
|
|
|
}, stmgr.Upgrade{
|
|
|
|
Network: network.Version7,
|
|
|
|
Height: calico,
|
2022-04-07 17:52:43 +00:00
|
|
|
Migration: filcns.LegacyMigration(filcns.UpgradeCalico),
|
2021-08-06 00:46:05 +00:00
|
|
|
}, stmgr.Upgrade{
|
|
|
|
Network: network.Version8,
|
|
|
|
Height: persian,
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
func LatestActorsAt(upgradeHeight abi.ChainEpoch) EnsembleOpt {
|
2021-10-18 15:17:54 +00:00
|
|
|
/* inline-gen template
|
|
|
|
return UpgradeSchedule(stmgr.Upgrade{
|
|
|
|
Network: network.Version{{add .latestNetworkVersion -1}},
|
|
|
|
Height: -1,
|
|
|
|
}, stmgr.Upgrade{
|
|
|
|
Network: network.Version{{.latestNetworkVersion}},
|
|
|
|
Height: upgradeHeight,
|
|
|
|
Migration: filcns.UpgradeActorsV{{.latestActorsVersion}},
|
|
|
|
})
|
2021-10-18 15:21:53 +00:00
|
|
|
/* inline-gen start */
|
2021-08-06 00:46:05 +00:00
|
|
|
return UpgradeSchedule(stmgr.Upgrade{
|
2022-03-01 03:57:40 +00:00
|
|
|
Network: network.Version15,
|
2021-08-06 00:46:05 +00:00
|
|
|
Height: -1,
|
|
|
|
}, stmgr.Upgrade{
|
2022-03-01 03:57:40 +00:00
|
|
|
Network: network.Version16,
|
2021-08-06 00:46:05 +00:00
|
|
|
Height: upgradeHeight,
|
2022-03-01 03:57:40 +00:00
|
|
|
Migration: filcns.UpgradeActorsV8,
|
2021-08-06 00:46:05 +00:00
|
|
|
})
|
2021-10-18 15:21:53 +00:00
|
|
|
/* inline-gen end */
|
2021-08-06 00:46:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func TurboUpgradeAt(upgradeHeight abi.ChainEpoch) EnsembleOpt {
|
|
|
|
return UpgradeSchedule(stmgr.Upgrade{
|
|
|
|
Network: network.Version11,
|
|
|
|
Height: -1,
|
|
|
|
}, stmgr.Upgrade{
|
|
|
|
Network: network.Version12,
|
|
|
|
Height: upgradeHeight,
|
2022-04-07 17:52:43 +00:00
|
|
|
Migration: filcns.LegacyMigration(filcns.UpgradeActorsV4),
|
2021-08-06 00:46:05 +00:00
|
|
|
})
|
|
|
|
}
|