Skip to content

Commit

Permalink
Merge pull request CosmWasm#13 from oraichain/feat/move-test-prepare-…
Browse files Browse the repository at this point in the history
…v050

Feat/move test prepare v050
  • Loading branch information
ducphamle2 authored Oct 9, 2024
2 parents 0501015 + 2c95bd9 commit 66aa437
Show file tree
Hide file tree
Showing 49 changed files with 4,320 additions and 207 deletions.
15 changes: 14 additions & 1 deletion app/ante.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@ import (

sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/x/auth/ante"
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper"

"github.com/CosmWasm/wasmd/precompile/registry"
wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper"
wasmTypes "github.com/CosmWasm/wasmd/x/wasm/types"

Expand Down Expand Up @@ -48,11 +50,12 @@ type HandlerOptions struct {
FeeMarketKeeper feemarketkeeper.Keeper
WasmConfig *wasmTypes.WasmConfig
WasmKeeper *wasmkeeper.Keeper
ContractKeeper *wasmkeeper.PermissionedKeeper
TXCounterStoreService corestoretypes.KVStoreService
TxCounterStoreKey storetypes.StoreKey
MaxTxGasWanted uint64
CircuitKeeper *circuitkeeper.Keeper
BankKeeper evmtypes.BankKeeper
BankKeeper *bankkeeper.BaseKeeper
DisabledAuthzMsgs []string
BypassMinFeeMsgTypes []string
}
Expand All @@ -79,6 +82,13 @@ func (options *HandlerOptions) Validate() error {
if options.EvmKeeper == nil {
return errors.New("evm keeper is required for ante builder")
}
if options.WasmKeeper == nil {
return errors.New("wasm keeper is required for ante builder")
}
if options.ContractKeeper == nil {
return errors.New("contract keeper is required for ante builder")
}

return nil
}

Expand All @@ -92,6 +102,9 @@ func NewAnteHandler(options HandlerOptions) (sdk.AnteHandler, error) {
return func(
ctx sdk.Context, tx sdk.Tx, sim bool,
) (newCtx sdk.Context, err error) {

registry.InitializePrecompiles(options.ContractKeeper, options.WasmKeeper, options.EvmKeeper, options.BankKeeper, options.AccountKeeper)

var anteHandler sdk.AnteHandler

defer Recover(ctx.Logger(), &err)
Expand Down
73 changes: 40 additions & 33 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,10 @@ import (
"cosmossdk.io/x/feegrant"
feegrantkeeper "cosmossdk.io/x/feegrant/keeper"
feegrantmodule "cosmossdk.io/x/feegrant/module"
"cosmossdk.io/x/nft"
nftkeeper "cosmossdk.io/x/nft/keeper"
nftmodule "cosmossdk.io/x/nft/module"

// "cosmossdk.io/x/nft"
// nftkeeper "cosmossdk.io/x/nft/keeper"
// nftmodule "cosmossdk.io/x/nft/module"
"cosmossdk.io/x/tx/signing"
"cosmossdk.io/x/upgrade"
upgradekeeper "cosmossdk.io/x/upgrade/keeper"
Expand Down Expand Up @@ -84,9 +85,10 @@ import (
govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper"
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
"github.com/cosmos/cosmos-sdk/x/group"
groupkeeper "github.com/cosmos/cosmos-sdk/x/group/keeper"
groupmodule "github.com/cosmos/cosmos-sdk/x/group/module"

// "github.com/cosmos/cosmos-sdk/x/group"
// groupkeeper "github.com/cosmos/cosmos-sdk/x/group/keeper"
// groupmodule "github.com/cosmos/cosmos-sdk/x/group/module"
"github.com/cosmos/cosmos-sdk/x/mint"
mintkeeper "github.com/cosmos/cosmos-sdk/x/mint/keeper"
minttypes "github.com/cosmos/cosmos-sdk/x/mint/types"
Expand Down Expand Up @@ -220,7 +222,7 @@ var maccPerms = map[string][]string{
stakingtypes.BondedPoolName: {authtypes.Burner, authtypes.Staking},
stakingtypes.NotBondedPoolName: {authtypes.Burner, authtypes.Staking},
govtypes.ModuleName: {authtypes.Burner},
nft.ModuleName: nil,
// nft.ModuleName: nil,
// non sdk modules
ibctransfertypes.ModuleName: {authtypes.Minter, authtypes.Burner},
ibcfeetypes.ModuleName: nil,
Expand Down Expand Up @@ -264,8 +266,6 @@ type WasmApp struct {
AuthzKeeper authzkeeper.Keeper
EvidenceKeeper evidencekeeper.Keeper
FeeGrantKeeper feegrantkeeper.Keeper
GroupKeeper groupkeeper.Keeper
NFTKeeper nftkeeper.Keeper
ConsensusParamsKeeper consensusparamkeeper.Keeper
CircuitKeeper circuitkeeper.Keeper

Expand Down Expand Up @@ -397,9 +397,10 @@ func NewWasmApp(
keys := storetypes.NewKVStoreKeys(
authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey, crisistypes.StoreKey,
minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey,
govtypes.StoreKey, paramstypes.StoreKey, consensusparamtypes.StoreKey, upgradetypes.StoreKey, feegrant.StoreKey,
govtypes.StoreKey, paramstypes.StoreKey, consensusparamtypes.StoreKey, upgradetypes.StoreKey, feegrant.StoreKey, authzkeeper.StoreKey,
evidencetypes.StoreKey, circuittypes.StoreKey,
authzkeeper.StoreKey, nftkeeper.StoreKey, group.StoreKey,
// nftkeeper.StoreKey,
// group.StoreKey,
// non sdk store keys
capabilitytypes.StoreKey, ibcexported.StoreKey, ibctransfertypes.StoreKey, ibcfeetypes.StoreKey,
wasmtypes.StoreKey, icahosttypes.StoreKey,
Expand Down Expand Up @@ -563,19 +564,19 @@ func NewWasmApp(
app.AccountKeeper,
)

groupConfig := group.DefaultConfig()
// groupConfig := group.DefaultConfig()
/*
Example of setting group params:
groupConfig.MaxMetadataLen = 1000
*/
app.GroupKeeper = groupkeeper.NewKeeper(
keys[group.StoreKey],
// runtime.NewKVStoreService(keys[group.StoreKey]),
appCodec,
app.MsgServiceRouter(),
app.AccountKeeper,
groupConfig,
)
// app.GroupKeeper = groupkeeper.NewKeeper(
// keys[group.StoreKey],
// // runtime.NewKVStoreService(keys[group.StoreKey]),
// appCodec,
// app.MsgServiceRouter(),
// app.AccountKeeper,
// groupConfig,
// )

// get skipUpgradeHeights from the app options
skipUpgradeHeights := map[int64]bool{}
Expand Down Expand Up @@ -614,7 +615,7 @@ func NewWasmApp(
evmBankKeeper := evmkeeper.NewEvmBankKeeperWithDenoms(app.BankKeeper, app.AccountKeeper, appconfig.EvmDenom, appconfig.CosmosDenom)
app.EvmKeeper = evmkeeper.NewKeeper(
appCodec, runtime.NewKVStoreService(keys[evmtypes.StoreKey]), tkeys[evmtypes.TransientKey], Authority,
app.AccountKeeper, evmBankKeeper, app.StakingKeeper, app.FeeMarketKeeper,
app.AccountKeeper, evmBankKeeper, app.BankKeeper, app.StakingKeeper, app.FeeMarketKeeper,
nil, geth.NewEVM, tracer, evmSs,
)

Expand Down Expand Up @@ -658,12 +659,12 @@ func NewWasmApp(
),
)

app.NFTKeeper = nftkeeper.NewKeeper(
runtime.NewKVStoreService(keys[nftkeeper.StoreKey]),
appCodec,
app.AccountKeeper,
app.BankKeeper,
)
// app.NFTKeeper = nftkeeper.NewKeeper(
// runtime.NewKVStoreService(keys[nftkeeper.StoreKey]),
// appCodec,
// app.AccountKeeper,
// app.BankKeeper,
// )

// create evidence keeper with router
evidenceKeeper := evidencekeeper.NewKeeper(
Expand Down Expand Up @@ -880,8 +881,8 @@ func NewWasmApp(
evidence.NewAppModule(app.EvidenceKeeper),
params.NewAppModule(app.ParamsKeeper),
authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
groupmodule.NewAppModule(appCodec, app.GroupKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
nftmodule.NewAppModule(appCodec, app.NFTKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
// groupmodule.NewAppModule(appCodec, app.GroupKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
// nftmodule.NewAppModule(appCodec, app.NFTKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper),
circuit.NewAppModule(appCodec, app.CircuitKeeper),
// non sdk modules
Expand Down Expand Up @@ -973,7 +974,7 @@ func NewWasmApp(
stakingtypes.ModuleName,
genutiltypes.ModuleName,
feegrant.ModuleName,
group.ModuleName,
// group.ModuleName,
// additional non simd modules
capabilitytypes.ModuleName,
ibctransfertypes.ModuleName,
Expand Down Expand Up @@ -1005,7 +1006,10 @@ func NewWasmApp(
authtypes.ModuleName, banktypes.ModuleName,
distrtypes.ModuleName, stakingtypes.ModuleName, slashingtypes.ModuleName, govtypes.ModuleName,
minttypes.ModuleName, crisistypes.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName,
feegrant.ModuleName, nft.ModuleName, group.ModuleName, paramstypes.ModuleName, upgradetypes.ModuleName,
feegrant.ModuleName,
// nft.ModuleName,
// group.ModuleName,
paramstypes.ModuleName, upgradetypes.ModuleName,
vestingtypes.ModuleName, consensusparamtypes.ModuleName, circuittypes.ModuleName,
// additional non simd modules
ibctransfertypes.ModuleName,
Expand Down Expand Up @@ -1146,14 +1150,15 @@ func (app *WasmApp) setAnteHandler(txConfig client.TxConfig, wasmConfig wasmtype
TxFeeChecker: evmante.NewDynamicFeeChecker(app.EvmKeeper),
},
AccountKeeper: app.AccountKeeper,
BankKeeper: app.BankKeeper,
BankKeeper: &app.BankKeeper,
IBCKeeper: app.IBCKeeper,
EvmKeeper: app.EvmKeeper,
StakingKeeper: *app.StakingKeeper,
GlobalFeeKeeper: app.GlobalFeeKeeper,
FeeMarketKeeper: app.FeeMarketKeeper,
WasmConfig: &wasmConfig,
WasmKeeper: &app.WasmKeeper,
ContractKeeper: app.ContractKeeper,
TXCounterStoreService: runtime.NewKVStoreService(txCounterStoreKey),
CircuitKeeper: &app.CircuitKeeper,
DisabledAuthzMsgs: []string{
Expand All @@ -1170,6 +1175,7 @@ func (app *WasmApp) setAnteHandler(txConfig client.TxConfig, wasmConfig wasmtype

// Set the AnteHandler for the app
app.SetAnteHandler(anteHandler)

}

func (app *WasmApp) setPostHandler() {
Expand Down Expand Up @@ -1385,6 +1391,7 @@ func BlockedAddresses(authorityAddr string) map[string]bool {

// allow the following addresses to receive funds
delete(modAccAddrs, authorityAddr)
delete(modAccAddrs, authtypes.NewModuleAddress(authtypes.FeeCollectorName).String())

return modAccAddrs
}
Expand Down Expand Up @@ -1416,7 +1423,7 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
paramsKeeper.Subspace(ibchookstypes.ModuleName)
paramsKeeper.Subspace(packetforwardtypes.ModuleName).WithKeyTable(packetforwardtypes.ParamKeyTable())
paramsKeeper.Subspace(tokenfactorytypes.ModuleName)
paramsKeeper.Subspace(evmtypes.ModuleName)
paramsKeeper.Subspace(evmtypes.ModuleName).WithKeyTable(evmtypes.ParamKeyTable())
paramsKeeper.Subspace(feemarkettypes.ModuleName).WithKeyTable(feemarkettypes.ParamKeyTable())
paramsKeeper.Subspace(erc20types.ModuleName)

Expand Down
3 changes: 3 additions & 0 deletions app/test_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ import (
slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"

"github.com/CosmWasm/wasmd/precompile/registry"
wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper"
)

Expand Down Expand Up @@ -148,6 +149,8 @@ func Setup(t *testing.T, opts ...wasmkeeper.Option) *WasmApp {
}

app := SetupWithGenesisValSet(t, valSet, []authtypes.GenesisAccount{acc}, SimAppChainID, opts, balance)
// register precompile contracts
registry.InitializePrecompiles(app.ContractKeeper, app.WasmKeeper, app.EvmKeeper, app.BankKeeper, app.AccountKeeper)

return app
}
Expand Down
56 changes: 56 additions & 0 deletions app/upgrades.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package app

import (
"context"
"fmt"

upgradetypes "cosmossdk.io/x/upgrade/types"

cmtbfttypes "github.com/cometbft/cometbft/types"
"github.com/cosmos/cosmos-sdk/baseapp"
"github.com/cosmos/cosmos-sdk/types/module"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types"
Expand All @@ -17,12 +20,20 @@ import (
paramstypes "github.com/cosmos/cosmos-sdk/x/params/types"
slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
icacontrollertypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/types"
ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"
ibcclienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types"
ibcconnectiontypes "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types"
ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported"
evmtypes "github.com/evmos/ethermint/x/evm/types"
feemarkettypes "github.com/evmos/ethermint/x/feemarket/types"

"github.com/CosmWasm/wasmd/app/upgrades"
"github.com/CosmWasm/wasmd/app/upgrades/noop"
v050 "github.com/CosmWasm/wasmd/app/upgrades/v050"
v2 "github.com/CosmWasm/wasmd/x/wasm/migrations/v2"
wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types"
cmtproto "github.com/cometbft/cometbft/proto/tendermint/types"
)

// Upgrades list of chain upgrades
Expand All @@ -45,9 +56,43 @@ func (app *WasmApp) RegisterUpgradeHandlers() {
Codec: app.appCodec,
GetStoreKey: app.GetKey,
}

app.GetStoreKeys()
// register all upgrade handlers
for _, upgrade := range Upgrades {
// special case, we need to resolve this issue: https://github.com/cosmos/cosmos-sdk/issues/20160
if upgrade.UpgradeName == v050.Upgrade.UpgradeName {
app.UpgradeKeeper.SetUpgradeHandler(
upgrade.UpgradeName,
func(ctx context.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {

defaultConsensusParams := cmtbfttypes.DefaultConsensusParams()
cp := cmtproto.ConsensusParams{
Block: &cmtproto.BlockParams{
// hard-coded max bytes like in prod params
MaxBytes: 1048576,
MaxGas: defaultConsensusParams.Block.MaxGas,
},
Evidence: &cmtproto.EvidenceParams{
MaxAgeNumBlocks: defaultConsensusParams.Evidence.MaxAgeNumBlocks,
MaxAgeDuration: defaultConsensusParams.Evidence.MaxAgeDuration,
MaxBytes: defaultConsensusParams.Evidence.MaxBytes,
},
Validator: &cmtproto.ValidatorParams{
PubKeyTypes: defaultConsensusParams.Validator.PubKeyTypes,
},
Version: defaultConsensusParams.ToProto().Version, // Version is stored in x/upgrade
}
err := app.ConsensusParamsKeeper.ParamsStore.Set(ctx, cp)
if err != nil {
return nil, err
}
return app.ModuleManager.RunMigrations(ctx, app.configurator, fromVM)
},
)
continue
}

app.UpgradeKeeper.SetUpgradeHandler(
upgrade.UpgradeName,
upgrade.CreateUpgradeHandler(
Expand Down Expand Up @@ -101,6 +146,17 @@ func setupLegacyKeyTables(k *paramskeeper.Keeper) {
// wasm
case wasmtypes.ModuleName:
keyTable = v2.ParamKeyTable() //nolint:staticcheck
case ibcexported.ModuleName:
keyTable = ibcclienttypes.ParamKeyTable()
keyTable.RegisterParamSet(&ibcconnectiontypes.Params{})
case icacontrollertypes.SubModuleName:
keyTable = icacontrollertypes.ParamKeyTable() //nolint:staticcheck
case ibctransfertypes.ModuleName:
keyTable = ibctransfertypes.ParamKeyTable() //nolint:staticcheck
case evmtypes.ModuleName:
keyTable = evmtypes.ParamKeyTable()
case feemarkettypes.ModuleName:
keyTable = feemarkettypes.ParamKeyTable()
default:
continue
}
Expand Down
10 changes: 8 additions & 2 deletions app/upgrades/v050/upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,27 @@ import (
upgradetypes "cosmossdk.io/x/upgrade/types"

"github.com/cosmos/cosmos-sdk/types/module"
consensustypes "github.com/cosmos/cosmos-sdk/x/consensus/types"
crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types"
erc20types "github.com/evmos/ethermint/x/erc20/types"

"github.com/CosmWasm/wasmd/app/upgrades"
)

// UpgradeName defines the on-chain upgrade name
const UpgradeName = "v0.50"
const UpgradeName = "v0.50.0"

var Upgrade = upgrades.Upgrade{
UpgradeName: UpgradeName,
CreateUpgradeHandler: CreateUpgradeHandler,
StoreUpgrades: storetypes.StoreUpgrades{
Added: []string{
circuittypes.ModuleName,
consensustypes.StoreKey,
crisistypes.StoreKey,
erc20types.StoreKey,
},
Deleted: []string{},
Deleted: []string{"utilevm", "evmutil", "intertx"},
},
}

Expand Down
Loading

0 comments on commit 66aa437

Please sign in to comment.