2023-01-05 16:59:46 +00:00
|
|
|
package v4
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/cosmos/cosmos-sdk/codec"
|
|
|
|
storetypes "github.com/cosmos/cosmos-sdk/store/types"
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
|
|
"github.com/evmos/ethermint/x/feemarket/types"
|
|
|
|
)
|
|
|
|
|
|
|
|
// MigrateStore migrates the x/evm module state from the consensus version 3 to
|
|
|
|
// version 4. Specifically, it takes the parameters that are currently stored
|
|
|
|
// and managed by the Cosmos SDK params module and stores them directly into the x/evm module state.
|
|
|
|
func MigrateStore(
|
|
|
|
ctx sdk.Context,
|
|
|
|
storeKey storetypes.StoreKey,
|
|
|
|
legacySubspace types.Subspace,
|
|
|
|
cdc codec.BinaryCodec,
|
|
|
|
) error {
|
|
|
|
var (
|
|
|
|
store = ctx.KVStore(storeKey)
|
2023-01-12 08:52:55 +00:00
|
|
|
params types.Params
|
2023-01-05 16:59:46 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
legacySubspace.GetParamSetIfExists(ctx, ¶ms)
|
|
|
|
|
|
|
|
if err := params.Validate(); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
bz, err := cdc.Marshal(¶ms)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
store.Set(types.ParamsKey, bz)
|
|
|
|
|
|
|
|
return nil
|
|
|
|
}
|