-
Notifications
You must be signed in to change notification settings - Fork 103
Expand file tree
/
Copy pathupgrades.go
More file actions
51 lines (42 loc) · 1.58 KB
/
upgrades.go
File metadata and controls
51 lines (42 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package v5
import (
"context"
"fmt"
store "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/babylonlabs-io/babylon/v4/app/keepers"
"github.com/babylonlabs-io/babylon/v4/app/upgrades"
bstypes "github.com/babylonlabs-io/babylon/v4/x/btcstaking/types"
)
const UpgradeName = "v5"
var Upgrade = upgrades.Upgrade{
UpgradeName: UpgradeName,
CreateUpgradeHandler: CreateUpgradeHandler,
StoreUpgrades: store.StoreUpgrades{
Added: []string{},
Deleted: []string{},
},
}
func CreateUpgradeHandler(mm *module.Manager, configurator module.Configurator, keepers *keepers.AppKeepers) upgradetypes.UpgradeHandler {
return func(ctx context.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
sdkCtx := sdk.UnwrapSDKContext(ctx)
currentHeight := uint64(sdkCtx.HeaderInfo().Height)
// run migrations (includes btcstaking v1->v2 migration for multisig support)
migrations, err := mm.RunMigrations(ctx, configurator, fromVM)
if err != nil {
return nil, fmt.Errorf("failed to run migrations: %w", err)
}
// log successful upgrade
btcStakingPrevVersion := fromVM[bstypes.ModuleName]
btcStakingNewVersion := migrations[bstypes.ModuleName]
sdkCtx.Logger().Info("multisig BTC staker upgrade completed successfully",
"upgrade", UpgradeName,
"btcstaking_migration", fmt.Sprintf("v%d->v%d", btcStakingPrevVersion, btcStakingNewVersion),
"height", currentHeight,
"epoch_boundary", true,
)
return migrations, nil
}
}