mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-11-10 18:15:19 +00:00
bbb2235ba0
* add initial auction migration from Levi's work * reserve bid_duration field name as well * refactor auction specifc migration code to legacy v0_17 pkg * Add auction migration specific test. Delete v016 migration files. Add makefile target for running migration tests. Co-authored-by: galxy25 <levismschoen@gmail.com>
78 lines
2.6 KiB
Go
78 lines
2.6 KiB
Go
package v0_17
|
|
|
|
import (
|
|
"github.com/cosmos/cosmos-sdk/client"
|
|
"github.com/cosmos/cosmos-sdk/codec"
|
|
"github.com/cosmos/cosmos-sdk/codec/types"
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
authz "github.com/cosmos/cosmos-sdk/x/authz"
|
|
genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
|
|
evmtypes "github.com/tharsis/ethermint/x/evm/types"
|
|
feemarkettypes "github.com/tharsis/ethermint/x/feemarket/types"
|
|
|
|
evmutiltypes "github.com/kava-labs/kava/x/evmutil/types"
|
|
|
|
bridgetypes "github.com/kava-labs/kava-bridge/x/bridge/types"
|
|
v016auction "github.com/kava-labs/kava/x/auction/legacy/v0_16"
|
|
v017auction "github.com/kava-labs/kava/x/auction/legacy/v0_17"
|
|
auctiontypes "github.com/kava-labs/kava/x/auction/types"
|
|
)
|
|
|
|
func migrateAppState(appState genutiltypes.AppMap, clientCtx client.Context) {
|
|
interfaceRegistry := types.NewInterfaceRegistry()
|
|
v016auction.RegisterInterfaces(interfaceRegistry)
|
|
v16Codec := codec.NewProtoCodec(interfaceRegistry)
|
|
|
|
codec := clientCtx.Codec
|
|
|
|
// x/emvutil
|
|
evmUtilGenState := evmutiltypes.NewGenesisState([]evmutiltypes.Account{})
|
|
appState[evmutiltypes.ModuleName] = codec.MustMarshalJSON(evmUtilGenState)
|
|
|
|
// x/evm
|
|
evmGenState := &evmtypes.GenesisState{
|
|
Accounts: []evmtypes.GenesisAccount{},
|
|
Params: evmtypes.Params{
|
|
EvmDenom: "akava",
|
|
EnableCreate: true,
|
|
EnableCall: true,
|
|
ChainConfig: evmtypes.DefaultChainConfig(),
|
|
ExtraEIPs: nil,
|
|
},
|
|
}
|
|
appState[evmtypes.ModuleName] = codec.MustMarshalJSON(evmGenState)
|
|
|
|
// x/bridge
|
|
bridgeGenState := bridgetypes.NewGenesisState(
|
|
bridgetypes.NewParams(
|
|
false, // Bridge disabled
|
|
bridgetypes.EnabledERC20Tokens{}, // No bridge ERC20 tokens
|
|
nil, // No relayer
|
|
bridgetypes.ConversionPairs{}, // No conversion pairs
|
|
),
|
|
bridgetypes.ERC20BridgePairs{}, // Empty state as there has been no ERC20 contracts deployed
|
|
sdk.OneInt(), // NextWithdrawSequence starts at 1
|
|
)
|
|
appState[bridgetypes.ModuleName] = codec.MustMarshalJSON(&bridgeGenState)
|
|
|
|
// x/feemarket
|
|
feemarketState := feemarkettypes.DefaultGenesisState()
|
|
appState[feemarkettypes.ModuleName] = codec.MustMarshalJSON(feemarketState)
|
|
|
|
// x/authz
|
|
authzState := authz.DefaultGenesisState()
|
|
appState[authz.ModuleName] = codec.MustMarshalJSON(authzState)
|
|
|
|
// x/auction
|
|
if appState[auctiontypes.ModuleName] != nil {
|
|
var v16GenState v016auction.GenesisState
|
|
v16Codec.MustUnmarshalJSON(appState[auctiontypes.ModuleName], &v16GenState)
|
|
|
|
migratedState := v017auction.Migrate(v16GenState)
|
|
encodedState := codec.MustMarshalJSON(migratedState)
|
|
|
|
appState[auctiontypes.ModuleName] = encodedState
|
|
}
|
|
}
|