Skip to content

Commit

Permalink
Cudos upgrade handler
Browse files Browse the repository at this point in the history
  • Loading branch information
MissingNO57 committed Jul 24, 2024
1 parent f76b4fa commit 9fd52c7
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 24 deletions.
66 changes: 42 additions & 24 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@ type App struct {
interfaceRegistry types.InterfaceRegistry

invCheckPeriod uint
cudosPath string

// keys to access the substores
keys map[string]*sdk.KVStoreKey
Expand Down Expand Up @@ -256,7 +257,7 @@ type App struct {
// NewSimApp returns a reference to an initialized SimApp.
func New(
logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool,
skipUpgradeHeights map[int64]bool, homePath string, invCheckPeriod uint, encodingConfig appparams.EncodingConfig, enabledProposals []wasm.ProposalType,
skipUpgradeHeights map[int64]bool, homePath string, invCheckPeriod uint, cudosPath string, encodingConfig appparams.EncodingConfig, enabledProposals []wasm.ProposalType,
appOpts servertypes.AppOptions, wasmOpts []wasm.Option, baseAppOptions ...func(*baseapp.BaseApp),
) *App {

Expand Down Expand Up @@ -285,6 +286,7 @@ func New(
appCodec: appCodec,
interfaceRegistry: interfaceRegistry,
invCheckPeriod: invCheckPeriod,
cudosPath: cudosPath,
keys: keys,
tkeys: tkeys,
memKeys: memKeys,
Expand Down Expand Up @@ -369,7 +371,7 @@ func New(

app.GovKeeper = *govKeeper.SetHooks(
govtypes.NewMultiGovHooks(
// register the governance hooks
// register the governance hooks
),
)

Expand Down Expand Up @@ -718,41 +720,57 @@ func (app *App) GetSubspace(moduleName string) paramstypes.Subspace {
return subspace
}

func (app *App) PerformASIUpgradeTasks(ctx sdk.Context, networkInfo *NetworkConfig, manifest *UpgradeManifest) error {
err := app.DeleteContractStates(ctx, networkInfo, manifest)
if err != nil {
return err
}

// Call the separate function to handle the admin upgrade
err = app.UpgradeContractAdmins(ctx, networkInfo, manifest)
if err != nil {
return err
}

err = app.ProcessReconciliation(ctx, networkInfo, manifest)
if err != nil {
return err
}

err = app.ChangeContractLabels(ctx, networkInfo, manifest)
if err != nil {
return err
}

err = app.ChangeContractVersions(ctx, networkInfo, manifest)
if err != nil {
return err
}

return nil
}

func (app *App) RegisterUpgradeHandlers(cfg module.Configurator) {
app.UpgradeKeeper.SetUpgradeHandler("v0.11.3", func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
return app.mm.RunMigrations(ctx, cfg, fromVM)
})

app.UpgradeKeeper.SetUpgradeHandler("v0.11.4", func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
manifest := NewUpgradeManifest()

networkInfo, ok := NetworkInfos[ctx.ChainID()]
if !ok {
panic("Network info not found for chain id: " + ctx.ChainID())
}

err := app.DeleteContractStates(ctx, &networkInfo, manifest)
if err != nil {
return nil, err
}

// Call the separate function to handle the admin upgrade
err = app.UpgradeContractAdmins(ctx, &networkInfo, manifest)
genesis, err := ReadGenesisFile(app.cudosPath)
if err != nil {
return nil, err
}
print(genesis)

err = app.ProcessReconciliation(ctx, &networkInfo, manifest)
if err != nil {
return nil, err
}
manifest := NewUpgradeManifest()

err = app.ChangeContractLabels(ctx, &networkInfo, manifest)
if err != nil {
return nil, err
networkInfo, ok := NetworkInfos[ctx.ChainID()]
if !ok {
panic("Network info not found for chain id: " + ctx.ChainID())
}

err = app.ChangeContractVersions(ctx, &networkInfo, manifest)
// Perform ASI upgrade tasks
err = app.PerformASIUpgradeTasks(ctx, &networkInfo, manifest)
if err != nil {
return nil, err
}
Expand Down
24 changes: 24 additions & 0 deletions app/cudos_merge.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package app

import (
"encoding/json"
"fmt"
"os"
)

func ReadGenesisFile(filePath string) (*GenesisState, error) {
// Read the file into a byte slice
fileData, err := os.ReadFile(filePath)
if err != nil {
return nil, fmt.Errorf("error reading genesis file: %v", err)
}

// Parse the JSON data
var genesisState GenesisState
err = json.Unmarshal(fileData, &genesisState)
if err != nil {
return nil, fmt.Errorf("error unmarshalling genesis file: %v", err)
}

return &genesisState, nil
}
12 changes: 12 additions & 0 deletions cmd/fetchd/cmd/cudos_merge.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package cmd

import "github.com/spf13/cobra"

// Module init related flags
const (
FlagCudosPath = "cudos-path"
)

func AddCudosFlags(startCmd *cobra.Command) {
startCmd.Flags().String(FlagCudosPath, "", "Cudos genesis path")
}
9 changes: 9 additions & 0 deletions cmd/fetchd/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ func initRootCmd(rootCmd *cobra.Command, encodingConfig params.EncodingConfig) {
func addModuleInitFlags(startCmd *cobra.Command) {
crisis.AddModuleInitFlags(startCmd)
wasm.AddModuleInitFlags(startCmd)
AddCudosFlags(startCmd)
}

func queryCommand() *cobra.Command {
Expand Down Expand Up @@ -247,6 +248,7 @@ func (a appCreator) newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, a
logger, db, traceStore, true, skipUpgradeHeights,
cast.ToString(appOpts.Get(flags.FlagHome)),
cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod)),
cast.ToString(appOpts.Get(FlagCudosPath)),
a.encCfg,
app.GetEnabledProposals(),
appOpts,
Expand Down Expand Up @@ -277,6 +279,11 @@ func (a appCreator) appExport(
return servertypes.ExportedApp{}, errors.New("application home not set")
}

cudosPath, ok := appOpts.Get(FlagCudosPath).(string)
if !ok || cudosPath == "" {
return servertypes.ExportedApp{}, errors.New("cudos path not set")
}

var emptyWasmOpts []wasm.Option
if height != -1 {
anApp = app.New(
Expand All @@ -287,6 +294,7 @@ func (a appCreator) appExport(
map[int64]bool{},
homePath,
uint(1),
cudosPath,
a.encCfg,
app.GetEnabledProposals(),
appOpts,
Expand All @@ -305,6 +313,7 @@ func (a appCreator) appExport(
map[int64]bool{},
homePath,
uint(1),
cudosPath,
a.encCfg,
app.GetEnabledProposals(),
appOpts,
Expand Down

0 comments on commit 9fd52c7

Please sign in to comment.