Skip to content

Commit

Permalink
fix: implement upgrade handler
Browse files Browse the repository at this point in the history
  • Loading branch information
arirubinstein authored and mergify[bot] committed Oct 8, 2022
1 parent 6e63e70 commit 0f64bf1
Show file tree
Hide file tree
Showing 2 changed files with 107 additions and 1 deletion.
40 changes: 39 additions & 1 deletion golang/cosmos/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import (
"github.com/cosmos/cosmos-sdk/server/config"
servertypes "github.com/cosmos/cosmos-sdk/server/types"
"github.com/cosmos/cosmos-sdk/simapp"
store "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
"github.com/cosmos/cosmos-sdk/version"
Expand Down Expand Up @@ -732,10 +733,47 @@ func NewAgoricApp(
app.UpgradeKeeper.SetUpgradeHandler(
upgradeName,
func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return vm, nil
//Run migrations first so InitGenesis is called for swingset, vibc, vbank, vstorage, lien
vm, err := app.mm.RunMigrations(ctx, app.configurator, vm)
if err != nil {
return vm, err
}

// Set bean count
currentSwingset := app.SwingSetKeeper.GetParams(ctx)
ctx.Logger().Info("pre-swingset upgrade", "subspace", swingset.ModuleName, "params", currentSwingset)

for i := 0; i < len(currentSwingset.BeansPerUnit); i++ {
if currentSwingset.BeansPerUnit[i].Key == swingsettypes.BeansPerBlockComputeLimit {
currentSwingset.BeansPerUnit[i] = swingsettypes.NewStringBeans(swingsettypes.BeansPerBlockComputeLimit, sdk.NewUint(6500000000))
}
}

// Set bootstrap

currentSwingset.BootstrapVatConfig = "@agoric/vats/decentral-prod-config.json"
ctx.Logger().Info("post-swingset upgrade", "subspace", swingset.ModuleName, "params", currentSwingset)

app.SwingSetKeeper.SetParams(ctx, currentSwingset)

return vm, err
},
)

upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()
if err != nil {
panic(fmt.Sprintf("failed to read upgrade info from disk %s", err))
}

if upgradeInfo.Name == upgradeName && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
storeUpgrades := store.StoreUpgrades{
Added: []string{swingsettypes.StoreKey, vbanktypes.StoreKey, vibc.StoreKey, vstorage.StoreKey},
}

// configure store loader that checks if version == upgradeHeight and applies store upgrades
app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades))
}

if loadLatest {
if err := app.LoadLatestVersion(); err != nil {
tmos.Exit(fmt.Sprintf("failed to load latest version: %s", err))
Expand Down
68 changes: 68 additions & 0 deletions packages/vats/decentral-prod-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
{
"bootstrap": "bootstrap",
"defaultReapInterval": 1000,
"snapshotInterval": 1000,
"vats": {
"bootstrap": {
"sourceSpec": "@agoric/vats/src/core/boot-psm.js",
"parameters": {
"anchorAssets": [
{
"denom": "ibc/usdc1234"
}
],
"economicCommitteeAddresses": {
"voter": "agoric1ersatz"
}
},
"creationOptions": {
"critical": true
}
}
},
"bundles": {
"walletFactory": {
"sourceSpec": "@agoric/smart-wallet/src/walletFactory.js"
},
"provisionPool": {
"sourceSpec": "@agoric/vats/src/provisionPool.js"
},
"committee": {
"sourceSpec": "@agoric/governance/src/committee.js"
},
"contractGovernor": {
"sourceSpec": "@agoric/governance/src/contractGovernor.js"
},
"binaryVoteCounter": {
"sourceSpec": "@agoric/governance/src/binaryVoteCounter.js"
},
"psm": {
"sourceSpec": "@agoric/inter-protocol/src/psm/psm.js"
},
"psmCharter": {
"sourceSpec": "@agoric/inter-protocol/src/psm/psmCharter.js"
},
"bank": {
"sourceSpec": "@agoric/vats/src/vat-bank.js"
},
"centralSupply": {
"sourceSpec": "@agoric/vats/src/centralSupply.js"
},
"mintHolder": {
"sourceSpec": "@agoric/vats/src/mintHolder.js"
},
"board": {
"sourceSpec": "@agoric/vats/src/vat-board.js"
},
"chainStorage": {
"sourceSpec": "@agoric/vats/src/vat-chainStorage.js"
},
"zcf": {
"sourceSpec": "@agoric/zoe/contractFacet.js"
},
"zoe": {
"sourceSpec": "@agoric/vats/src/vat-zoe.js"
}
},
"defaultManagerType": "xs-worker"
}

0 comments on commit 0f64bf1

Please sign in to comment.