diff --git a/app/upgrades.go b/app/upgrades.go index af46db44..3c489f14 100755 --- a/app/upgrades.go +++ b/app/upgrades.go @@ -24,6 +24,7 @@ import ( evmv050 "github.com/pushchain/push-chain-node/app/upgrades/evm-v0-5-0" evmv060 "github.com/pushchain/push-chain-node/app/upgrades/evm-v0-6-0" evmv062 "github.com/pushchain/push-chain-node/app/upgrades/evm-v0-6-2" + evmv063 "github.com/pushchain/push-chain-node/app/upgrades/evm-v0-6-3" feeabs "github.com/pushchain/push-chain-node/app/upgrades/fee-abs" gasoracle "github.com/pushchain/push-chain-node/app/upgrades/gas-oracle" "github.com/pushchain/push-chain-node/app/upgrades/noop" @@ -100,6 +101,7 @@ var Upgrades = []upgrades.Upgrade{ // read-state — adds the x/ucallback store and reserves every system-contract // address still unclaimed in the A/B/C ranges (41 of 47 on donut, incl. 0xC2) readstate.NewUpgrade(), + evmv063.NewUpgrade(), } // RegisterUpgradeHandlers registers the chain upgrade handlers diff --git a/app/upgrades/evm-v0-6-3/upgrade.go b/app/upgrades/evm-v0-6-3/upgrade.go new file mode 100644 index 00000000..574f32c0 --- /dev/null +++ b/app/upgrades/evm-v0-6-3/upgrade.go @@ -0,0 +1,46 @@ +package evmv063 + +import ( + "context" + "fmt" + + storetypes "cosmossdk.io/store/types" + upgradetypes "cosmossdk.io/x/upgrade/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/module" + "github.com/pushchain/push-chain-node/app/upgrades" +) + +const UpgradeName = "evm-v0.6.3" + +// evm v0.6.2 -> v0.6.3 plus the read-state fixes in #366. No state migration; the +// plan name exists so cosmovisor swaps the binary at a coordinated height. +func NewUpgrade() upgrades.Upgrade { + return upgrades.Upgrade{ + UpgradeName: UpgradeName, + CreateUpgradeHandler: CreateUpgradeHandler, + StoreUpgrades: storetypes.StoreUpgrades{ + Added: []string{}, + Deleted: []string{}, + }, + } +} + +func CreateUpgradeHandler( + mm upgrades.ModuleManager, + configurator module.Configurator, + _ *upgrades.AppKeepers, +) upgradetypes.UpgradeHandler { + return func(ctx context.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { + logger := sdk.UnwrapSDKContext(ctx).Logger().With("upgrade", UpgradeName) + logger.Info("starting cosmos/evm v0.6.3 upgrade") + + versionMap, err := mm.RunMigrations(ctx, configurator, fromVM) + if err != nil { + return nil, fmt.Errorf("run migrations: %w", err) + } + + logger.Info("cosmos/evm v0.6.3 upgrade complete") + return versionMap, nil + } +}