Skip to content

Commit 1ce188a

Browse files
authored
Merge pull request #158 from xpladev/feature/upgrade_v1_8
apply v1_8 software upgrade code
2 parents dc8bb01 + 3242a3f commit 1ce188a

File tree

3 files changed

+70
-2
lines changed

3 files changed

+70
-2
lines changed

app/app.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ import (
6868
"github.com/xpladev/xpla/app/openapiconsole"
6969
xplaappparams "github.com/xpladev/xpla/app/params"
7070
"github.com/xpladev/xpla/app/upgrades"
71-
"github.com/xpladev/xpla/app/upgrades/v1_7"
71+
"github.com/xpladev/xpla/app/upgrades/v1_8"
7272
"github.com/xpladev/xpla/docs"
7373

7474
protov2 "google.golang.org/protobuf/proto"
@@ -79,7 +79,7 @@ var (
7979
DefaultNodeHome string
8080

8181
Upgrades = []upgrades.Upgrade{
82-
v1_7.Upgrade,
82+
v1_8.Upgrade,
8383
}
8484
)
8585

app/upgrades/v1_8/const.go

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package v1_8
2+
3+
import (
4+
store "cosmossdk.io/store/types"
5+
6+
"github.com/xpladev/xpla/app/upgrades"
7+
)
8+
9+
const (
10+
UpgradeName = "v1_8"
11+
)
12+
13+
var Upgrade = upgrades.Upgrade{
14+
UpgradeName: UpgradeName,
15+
CreateUpgradeHandler: CreateUpgradeHandler,
16+
StoreUpgrades: store.StoreUpgrades{
17+
Added: []string{},
18+
},
19+
}

app/upgrades/v1_8/upgrades.go

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package v1_8
2+
3+
import (
4+
"context"
5+
6+
upgradetypes "cosmossdk.io/x/upgrade/types"
7+
8+
sdk "github.com/cosmos/cosmos-sdk/types"
9+
"github.com/cosmos/cosmos-sdk/types/module"
10+
11+
"github.com/xpladev/xpla/app/keepers"
12+
authkeeper "github.com/xpladev/xpla/x/auth/keeper"
13+
)
14+
15+
func CreateUpgradeHandler(
16+
mm *module.Manager,
17+
configurator module.Configurator,
18+
keepers *keepers.AppKeepers,
19+
) upgradetypes.UpgradeHandler {
20+
return func(c context.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
21+
ctx := sdk.UnwrapSDKContext(c)
22+
23+
ctx.Logger().Info("Starting migrateSlicedAccount")
24+
migrateSlicedAccount(ctx, keepers.AccountKeeper)
25+
26+
ctx.Logger().Info("Starting module migrations...")
27+
vm, err := mm.RunMigrations(ctx, configurator, fromVM)
28+
if err != nil {
29+
return vm, err
30+
}
31+
32+
ctx.Logger().Info("Upgrading v1_8 has completed")
33+
return vm, nil
34+
}
35+
}
36+
37+
// If the length of the address exceeds 20 (for example, a cosmwasm address),
38+
// set the sliceAddress for it.
39+
func migrateSlicedAccount(ctx sdk.Context, ak authkeeper.AccountKeeper) {
40+
ak.IterateAccounts(ctx, func(acc sdk.AccountI) (stop bool) {
41+
address := acc.GetAddress()
42+
if len(address) != 20 {
43+
sliceAddress := address[len(address)-20:]
44+
ak.SliceAddresses.Set(ctx, sliceAddress, address)
45+
}
46+
47+
return false
48+
})
49+
}

0 commit comments

Comments
 (0)