Skip to content

Commit 8c010fa

Browse files
jdubpark0xHansLee
authored andcommitted
feat(upgrade): upgrade handler for v1.2 (#511)
upgrade handler to set new params for validator fallback (#484) in v1.2 issue: none
1 parent ed4e6bd commit 8c010fa

File tree

3 files changed

+85
-0
lines changed

3 files changed

+85
-0
lines changed

client/app/upgrades.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@ import (
99

1010
"github.com/piplabs/story/client/app/upgrades"
1111
"github.com/piplabs/story/client/app/upgrades/singularity/virgil"
12+
"github.com/piplabs/story/client/app/upgrades/v_1_2_0"
1213
)
1314

1415
var (
1516
// `Upgrades` defines the upgrade handlers and store loaders for the application.
1617
// New upgrades should be added to this slice after they are implemented.
1718
Upgrades = []upgrades.Upgrade{
1819
virgil.Upgrade,
20+
v_1_2_0.Upgrade,
1921
}
2022
// Forks are for hard forks that breaks backward compatibility.
2123
Forks = []upgrades.Fork{
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
//nolint:revive,stylecheck // versioning
2+
package v_1_2_0
3+
4+
import (
5+
"time"
6+
7+
storetypes "cosmossdk.io/store/types"
8+
9+
"github.com/piplabs/story/client/app/upgrades"
10+
)
11+
12+
const (
13+
UpgradeName = "v1.2.0"
14+
15+
// Initial parameters.
16+
InitialRefundFeeBps uint32 = 100 // 1%
17+
InitialRefundPeriod time.Duration = 24 * time.Hour // 1 days
18+
)
19+
20+
var Upgrade = upgrades.Upgrade{
21+
UpgradeName: UpgradeName,
22+
CreateUpgradeHandler: CreateUpgradeHandler,
23+
StoreUpgrades: storetypes.StoreUpgrades{},
24+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
//nolint:revive,stylecheck // versioning
2+
package v_1_2_0
3+
4+
import (
5+
"context"
6+
7+
upgradetypes "cosmossdk.io/x/upgrade/types"
8+
9+
"github.com/cosmos/cosmos-sdk/types/module"
10+
11+
"github.com/piplabs/story/client/app/keepers"
12+
estypes "github.com/piplabs/story/client/x/evmstaking/types"
13+
"github.com/piplabs/story/lib/errors"
14+
"github.com/piplabs/story/lib/log"
15+
)
16+
17+
func CreateUpgradeHandler(
18+
_ *module.Manager,
19+
_ module.Configurator,
20+
keepers *keepers.Keepers,
21+
) upgradetypes.UpgradeHandler {
22+
return func(ctx context.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
23+
log.Info(ctx, "Start upgrade v1.2.0")
24+
25+
oldParams, err := keepers.EvmStakingKeeper.GetParams(ctx)
26+
if err != nil {
27+
return vm, errors.Wrap(err, "get evm staking params")
28+
}
29+
30+
if err = keepers.EvmStakingKeeper.SetParams(ctx, estypes.Params{
31+
MaxWithdrawalPerBlock: oldParams.MaxWithdrawalPerBlock,
32+
MaxSweepPerBlock: oldParams.MaxSweepPerBlock,
33+
MinPartialWithdrawalAmount: oldParams.MinPartialWithdrawalAmount,
34+
RefundFeeBps: InitialRefundFeeBps,
35+
RefundPeriod: InitialRefundPeriod,
36+
}); err != nil {
37+
return vm, errors.Wrap(err, "set evm staking params")
38+
}
39+
40+
newParams, err := keepers.EvmStakingKeeper.GetParams(ctx)
41+
if err != nil {
42+
return vm, errors.Wrap(err, "get evm staking params")
43+
}
44+
45+
if newParams.RefundFeeBps != InitialRefundFeeBps || newParams.RefundPeriod != InitialRefundPeriod {
46+
return vm, errors.Wrap(err, "set new evm staking params")
47+
}
48+
49+
if newParams.MaxWithdrawalPerBlock != oldParams.MaxWithdrawalPerBlock ||
50+
newParams.MaxSweepPerBlock != oldParams.MaxSweepPerBlock ||
51+
newParams.MinPartialWithdrawalAmount != oldParams.MinPartialWithdrawalAmount {
52+
return vm, errors.Wrap(err, "set existing evm staking params")
53+
}
54+
55+
log.Info(ctx, "Upgrade v1.2.0 complete")
56+
57+
return vm, nil
58+
}
59+
}

0 commit comments

Comments
 (0)