Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ bin/

.DS_Store
*.swp
.run/
13 changes: 13 additions & 0 deletions app/constants/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,16 @@ var (
"ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9", // ATOM
}
)

// SetConfig address/coin params at the global state
func SetConfig() {
cfg := sdk.GetConfig()

cfg.SetBech32PrefixForAccount(Bech32PrefixAccAddr, Bech32PrefixAccPub)
cfg.SetBech32PrefixForValidator(Bech32PrefixValAddr, Bech32PrefixValPub)
cfg.SetBech32PrefixForConsensusNode(Bech32PrefixConsAddr, Bech32PrefixConsPub)
cfg.SetCoinType(CoinType)
cfg.SetPurpose(Purpose)

cfg.Seal()
}
26 changes: 26 additions & 0 deletions app/upgrades/testnet/v16.0.0-rc0/upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,14 @@ package v16_0_0_rc0

import (
"context"
"fmt"

upgradetypes "cosmossdk.io/x/upgrade/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
ibctransfertypes "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types"

"github.com/persistenceOne/persistenceCore/v16/app/keepers"
"github.com/persistenceOne/persistenceCore/v16/app/upgrades"
)

Expand All @@ -20,7 +24,29 @@ func CreateUpgradeHandler(args upgrades.UpgradeHandlerArgs) upgradetypes.Upgrade
return vm, err
}

err = ResetIBCTransferVersions(sdkCtx, args.Keepers)
if err != nil {
return vm, err
}

sdkCtx.Logger().Info("Upgrade complete")
return vm, nil
}
}

func ResetIBCTransferVersions(sdkCtx sdk.Context, keepers *keepers.AppKeepers) error {

channels := keepers.IBCKeeper.ChannelKeeper.GetAllChannels(sdkCtx)
for _, channel := range channels {
if channel.PortId == ibctransfertypes.PortID && channel.Version != ibctransfertypes.V1 {
channelDb, ok := keepers.IBCKeeper.ChannelKeeper.GetChannel(sdkCtx, channel.PortId, channel.ChannelId)
if !ok {
return fmt.Errorf("channel %s not found", channel.ChannelId)
}
channelDb.Version = ibctransfertypes.V1
keepers.IBCKeeper.ChannelKeeper.SetChannel(sdkCtx, channel.PortId, channel.ChannelId, channelDb)
}
}

return nil
}
68 changes: 68 additions & 0 deletions app/upgrades/testnet/v16.0.0-rc0/upgrades_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
package v16_0_0_rc0_test

import (
"testing"

"cosmossdk.io/log"
"github.com/CosmWasm/wasmd/x/wasm"
dbm "github.com/cosmos/cosmos-db"
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
ibctransfertypes "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types"
channeltypes "github.com/cosmos/ibc-go/v10/modules/core/04-channel/types"
"github.com/persistenceOne/persistenceCore/v16/app/constants"
v1600rc0 "github.com/persistenceOne/persistenceCore/v16/app/upgrades/testnet/v16.0.0-rc0"
"github.com/stretchr/testify/require"

"github.com/persistenceOne/persistenceCore/v16/app"
)

func TestResetIBCTransferVersions(t *testing.T) {
constants.SetConfig()
testApp := app.NewApplication(log.NewNopLogger(), dbm.NewMemDB(), nil, true, simtestutil.NewAppOptionsWithFlagHome(t.TempDir()), []wasm.Option{})
ctx := testApp.NewContext(true)

type args struct {
portID string
channelID string
version string
}
tests := []struct {
name string
args args
}{
{
name: "correct case",
args: args{ibctransfertypes.PortID, "channel-0", ibctransfertypes.V1},
},
{
name: "fee version should be converted to v1",
args: args{ibctransfertypes.PortID, "channel-1", "{\"fee_version\":\"ics29-1\",\"app_version\":\"ics20-1\"}"},
},
{
name: "random port ids should not be affected",
args: args{"ica-controller-xxx", "channel-2", ibctransfertypes.V1},
},
{
name: "random port ids should not be affected 2",
args: args{"ica-controller-xxxyyy", "channel-3", "ibcfee-0,controller-1"},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
testApp.IBCKeeper.ChannelKeeper.SetChannel(ctx, tt.args.portID, tt.args.channelID, channeltypes.Channel{
Version: tt.args.version,
})
err := v1600rc0.ResetIBCTransferVersions(ctx, testApp.AppKeepers)
require.NoError(t, err)
channel, ok := testApp.IBCKeeper.ChannelKeeper.GetChannel(ctx, tt.args.portID, tt.args.channelID)
require.True(t, ok)
if tt.args.portID == ibctransfertypes.PortID {
require.Equal(t, ibctransfertypes.V1, channel.Version)
} else {
require.Equal(t, tt.args.version, channel.Version)

}

})
}
}
25 changes: 25 additions & 0 deletions app/upgrades/v16.0.0/upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,14 @@ package v16_0_0

import (
"context"
"fmt"

upgradetypes "cosmossdk.io/x/upgrade/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
ibctransfertypes "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types"

"github.com/persistenceOne/persistenceCore/v16/app/keepers"
"github.com/persistenceOne/persistenceCore/v16/app/upgrades"
)

Expand All @@ -20,7 +24,28 @@ func CreateUpgradeHandler(args upgrades.UpgradeHandlerArgs) upgradetypes.Upgrade
return vm, err
}

err = ResetIBCTransferVersions(sdkCtx, args.Keepers)
if err != nil {
return vm, err
}

sdkCtx.Logger().Info("Upgrade complete")
return vm, nil
}
}

func ResetIBCTransferVersions(sdkCtx sdk.Context, keepers *keepers.AppKeepers) error {
channels := keepers.IBCKeeper.ChannelKeeper.GetAllChannels(sdkCtx)
for _, channel := range channels {
if channel.PortId == ibctransfertypes.PortID && channel.Version != ibctransfertypes.V1 {
channelDb, ok := keepers.IBCKeeper.ChannelKeeper.GetChannel(sdkCtx, channel.PortId, channel.ChannelId)
if !ok {
return fmt.Errorf("channel %s not found", channel.ChannelId)
}
channelDb.Version = ibctransfertypes.V1
keepers.IBCKeeper.ChannelKeeper.SetChannel(sdkCtx, channel.PortId, channel.ChannelId, channelDb)
}
}

return nil
}
68 changes: 68 additions & 0 deletions app/upgrades/v16.0.0/upgrades_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
package v16_0_0_test

import (
"testing"

"cosmossdk.io/log"
"github.com/CosmWasm/wasmd/x/wasm"
dbm "github.com/cosmos/cosmos-db"
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
ibctransfertypes "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types"
channeltypes "github.com/cosmos/ibc-go/v10/modules/core/04-channel/types"
"github.com/persistenceOne/persistenceCore/v16/app/constants"
v1600 "github.com/persistenceOne/persistenceCore/v16/app/upgrades/v16.0.0"
"github.com/stretchr/testify/require"

"github.com/persistenceOne/persistenceCore/v16/app"
)

func TestResetIBCTransferVersions(t *testing.T) {
constants.SetConfig()
testApp := app.NewApplication(log.NewNopLogger(), dbm.NewMemDB(), nil, true, simtestutil.NewAppOptionsWithFlagHome(t.TempDir()), []wasm.Option{})
ctx := testApp.NewContext(true)

type args struct {
portID string
channelID string
version string
}
tests := []struct {
name string
args args
}{
{
name: "correct case",
args: args{ibctransfertypes.PortID, "channel-0", ibctransfertypes.V1},
},
{
name: "fee version should be converted to v1",
args: args{ibctransfertypes.PortID, "channel-1", "{\"fee_version\":\"ics29-1\",\"app_version\":\"ics20-1\"}"},
},
{
name: "random port ids should not be affected",
args: args{"ica-controller-xxx", "channel-2", ibctransfertypes.V1},
},
{
name: "random port ids should not be affected 2",
args: args{"ica-controller-xxxyyy", "channel-3", "ibcfee-0,controller-1"},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
testApp.IBCKeeper.ChannelKeeper.SetChannel(ctx, tt.args.portID, tt.args.channelID, channeltypes.Channel{
Version: tt.args.version,
})
err := v1600.ResetIBCTransferVersions(ctx, testApp.AppKeepers)
require.NoError(t, err)
channel, ok := testApp.IBCKeeper.ChannelKeeper.GetChannel(ctx, tt.args.portID, tt.args.channelID)
require.True(t, ok)
if tt.args.portID == ibctransfertypes.PortID {
require.Equal(t, ibctransfertypes.V1, channel.Version)
} else {
require.Equal(t, tt.args.version, channel.Version)

}

})
}
}
16 changes: 1 addition & 15 deletions cmd/persistenceCore/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ import (
serverconfig "github.com/cosmos/cosmos-sdk/server/config"
servertypes "github.com/cosmos/cosmos-sdk/server/types"
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/tx/signing"
"github.com/cosmos/cosmos-sdk/version"
authcmd "github.com/cosmos/cosmos-sdk/x/auth/client/cli"
Expand All @@ -46,7 +45,7 @@ import (
)

func NewRootCmd() *cobra.Command {
setConfig()
constants.SetConfig()

tempDir := tempDir()
tempApp := app.NewApplication(log.NewNopLogger(), dbm.NewMemDB(), nil, true, simtestutil.NewAppOptionsWithFlagHome(tempDir), []wasm.Option{})
Expand Down Expand Up @@ -136,19 +135,6 @@ func NewRootCmd() *cobra.Command {
return rootCmd
}

// setConfig params at the package state
func setConfig() {
cfg := sdk.GetConfig()

cfg.SetBech32PrefixForAccount(constants.Bech32PrefixAccAddr, constants.Bech32PrefixAccPub)
cfg.SetBech32PrefixForValidator(constants.Bech32PrefixValAddr, constants.Bech32PrefixValPub)
cfg.SetBech32PrefixForConsensusNode(constants.Bech32PrefixConsAddr, constants.Bech32PrefixConsPub)
cfg.SetCoinType(constants.CoinType)
cfg.SetPurpose(constants.Purpose)

cfg.Seal()
}

func initCometbftConfig() *cmtcfg.Config {
cfg := cmtcfg.DefaultConfig()

Expand Down
Loading