diff --git a/app/upgrades.go b/app/upgrades.go index 4bc60636..e452aba1 100755 --- a/app/upgrades.go +++ b/app/upgrades.go @@ -11,6 +11,7 @@ import ( auditfixes "github.com/pushchain/push-chain-node/app/upgrades/audit-fixes" ceagasandpayload "github.com/pushchain/push-chain-node/app/upgrades/cea-gas-and-payload" ceapayloadverificationfix "github.com/pushchain/push-chain-node/app/upgrades/cea-payload-verification-fix" + ceareadingest "github.com/pushchain/push-chain-node/app/upgrades/cea-read-ingest" chainmeta "github.com/pushchain/push-chain-node/app/upgrades/chain-meta" chainmetavotegasless "github.com/pushchain/push-chain-node/app/upgrades/chain-meta-vote-gasless" contractauditchanges "github.com/pushchain/push-chain-node/app/upgrades/contract-audit-changes" @@ -104,6 +105,8 @@ var Upgrades = []upgrades.Upgrade{ readstate.NewUpgrade(), evmv063.NewUpgrade(), auditfixes.NewUpgrade(), + // cea-read-ingest — ingests reads from CEA-invoked contracts (#373) + ceareadingest.NewUpgrade(), } // RegisterUpgradeHandlers registers the chain upgrade handlers diff --git a/app/upgrades/cea-read-ingest/upgrade.go b/app/upgrades/cea-read-ingest/upgrade.go new file mode 100644 index 00000000..3313729b --- /dev/null +++ b/app/upgrades/cea-read-ingest/upgrade.go @@ -0,0 +1,46 @@ +package ceareadingest + +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 = "cea-read-ingest" + +// Ingests reads emitted by a CEA-invoked contract (#373). No state migration; +// the plan name only coordinates the binary swap. +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 cea-read-ingest upgrade") + + versionMap, err := mm.RunMigrations(ctx, configurator, fromVM) + if err != nil { + return nil, fmt.Errorf("run migrations: %w", err) + } + + logger.Info("cea-read-ingest upgrade complete") + return versionMap, nil + } +}