Skip to content

Commit

Permalink
Added fee market state/params initialization
Browse files Browse the repository at this point in the history
  • Loading branch information
guilherme-brandao committed Nov 28, 2024
1 parent 5f47674 commit 263335a
Show file tree
Hide file tree
Showing 12 changed files with 125 additions and 62 deletions.
62 changes: 5 additions & 57 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,7 @@ import (
dbm "github.com/cosmos/cosmos-db"

storetypes "cosmossdk.io/store/types"
circuitkeeper "cosmossdk.io/x/circuit/keeper"
feegrantkeeper "cosmossdk.io/x/feegrant/keeper"
upgradekeeper "cosmossdk.io/x/upgrade/keeper"
emissionsKeeper "github.com/allora-network/allora-chain/x/emissions/keeper"
mintkeeper "github.com/allora-network/allora-chain/x/mint/keeper"
"github.com/allora-network/allora-chain/app/keepers"
"github.com/cosmos/cosmos-sdk/baseapp"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/codec"
Expand All @@ -41,29 +37,14 @@ import (
servertypes "github.com/cosmos/cosmos-sdk/server/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper"
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
consensuskeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper"
distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper"
"github.com/cosmos/cosmos-sdk/x/genutil"
genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper"
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
paramsclient "github.com/cosmos/cosmos-sdk/x/params/client"
paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper"
paramstypes "github.com/cosmos/cosmos-sdk/x/params/types"
slashingkeeper "github.com/cosmos/cosmos-sdk/x/slashing/keeper"
stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper"
capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper"
icacontrollerkeeper "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/keeper"
icahostkeeper "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/keeper"
ibcfeekeeper "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/keeper"
ibctransferkeeper "github.com/cosmos/ibc-go/v8/modules/apps/transfer/keeper"
ibckeeper "github.com/cosmos/ibc-go/v8/modules/core/keeper"
metrics "github.com/hashicorp/go-metrics"
feemarketkeeper "github.com/skip-mev/feemarket/x/feemarket/keeper"
feemarkettypes "github.com/skip-mev/feemarket/x/feemarket/types"

_ "cosmossdk.io/api/cosmos/tx/config/v1" // import for side-effects
_ "cosmossdk.io/x/circuit" // import for side-effects
Expand Down Expand Up @@ -101,44 +82,13 @@ var (
// capabilities aren't needed for testing.
type AlloraApp struct {
*runtime.App
keepers.AppKeepers

legacyAmino *codec.LegacyAmino
appCodec codec.Codec
txConfig client.TxConfig
interfaceRegistry codectypes.InterfaceRegistry

// keepers
AccountKeeper authkeeper.AccountKeeper
AuthzKeeper authzkeeper.Keeper
CircuitBreakerKeeper circuitkeeper.Keeper
BankKeeper bankkeeper.Keeper
StakingKeeper *stakingkeeper.Keeper
DistrKeeper distrkeeper.Keeper
ConsensusParamsKeeper consensuskeeper.Keeper
MintKeeper mintkeeper.Keeper
GovKeeper *govkeeper.Keeper
EmissionsKeeper emissionsKeeper.Keeper
ParamsKeeper paramskeeper.Keeper
UpgradeKeeper *upgradekeeper.Keeper
SlashingKeeper slashingkeeper.Keeper
FeeGrantKeeper feegrantkeeper.Keeper

// IBC
IBCKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly
CapabilityKeeper *capabilitykeeper.Keeper
IBCFeeKeeper ibcfeekeeper.Keeper
ICAControllerKeeper icacontrollerkeeper.Keeper
ICAHostKeeper icahostkeeper.Keeper
TransferKeeper ibctransferkeeper.Keeper

// Scoped IBC
ScopedIBCKeeper capabilitykeeper.ScopedKeeper
ScopedIBCTransferKeeper capabilitykeeper.ScopedKeeper
ScopedICAControllerKeeper capabilitykeeper.ScopedKeeper
ScopedICAHostKeeper capabilitykeeper.ScopedKeeper

// Fee Market
FeeMarketKeeper feemarketkeeper.Keeper

// simulation manager
sm *module.SimulationManager

Expand Down Expand Up @@ -209,6 +159,7 @@ func NewAlloraApp(
appOpts,
),
),

&appBuilder,
&app.appCodec,
&app.legacyAmino,
Expand Down Expand Up @@ -249,7 +200,7 @@ func NewAlloraApp(
app.sm = module.NewSimulationManagerFromAppModules(app.ModuleManager.Modules, make(map[string]module.AppModuleSimulation, 0))
app.sm.RegisterStoreDecoders()

app.setupUpgradeHandlers()
app.setupUpgradeHandlers(&app.AppKeepers)
app.setupUpgradeStoreLoaders()

app.SetInitChainer(func(ctx sdk.Context, req *abci.RequestInitChain) (*abci.ResponseInitChain, error) {
Expand All @@ -260,9 +211,6 @@ func NewAlloraApp(
return app.App.InitChainer(ctx, req)
})

// set denom resolver to test variant.
app.FeeMarketKeeper.SetDenomResolver(&feemarkettypes.TestDenomResolver{})

// Create a global ante handler that will be called on each transaction when
// proposals are being built and verified.
anteHandlerOptions := ante.HandlerOptions{
Expand Down
2 changes: 1 addition & 1 deletion app/app.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ modules:
- slashing
# staking module is required if HistoricalEntries param > 0
- staking
- feegrant
- mint
- feemarket
- ibc
Expand Down Expand Up @@ -56,6 +55,7 @@ modules:
- upgrade
- consensus
- circuit
# feemarket must be after genutil to allow genesis transactions with 0fees
- feemarket
- emissions

Expand Down
60 changes: 60 additions & 0 deletions app/keepers/keepers.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package keepers

import (
circuitkeeper "cosmossdk.io/x/circuit/keeper"
feegrantkeeper "cosmossdk.io/x/feegrant/keeper"
upgradekeeper "cosmossdk.io/x/upgrade/keeper"
emissionsKeeper "github.com/allora-network/allora-chain/x/emissions/keeper"
mintkeeper "github.com/allora-network/allora-chain/x/mint/keeper"
authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper"
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
consensuskeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper"
distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper"
govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper"
paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper"
slashingkeeper "github.com/cosmos/cosmos-sdk/x/slashing/keeper"
stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper"
capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper"
icacontrollerkeeper "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/keeper"
icahostkeeper "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/keeper"
ibcfeekeeper "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/keeper"
ibctransferkeeper "github.com/cosmos/ibc-go/v8/modules/apps/transfer/keeper"
ibckeeper "github.com/cosmos/ibc-go/v8/modules/core/keeper"
feemarketkeeper "github.com/skip-mev/feemarket/x/feemarket/keeper"
)

type AppKeepers struct {
// keepers
AccountKeeper authkeeper.AccountKeeper
AuthzKeeper authzkeeper.Keeper
CircuitBreakerKeeper circuitkeeper.Keeper
BankKeeper bankkeeper.Keeper
StakingKeeper *stakingkeeper.Keeper
DistrKeeper distrkeeper.Keeper
ConsensusParamsKeeper consensuskeeper.Keeper
MintKeeper mintkeeper.Keeper
GovKeeper *govkeeper.Keeper
EmissionsKeeper emissionsKeeper.Keeper
ParamsKeeper paramskeeper.Keeper
UpgradeKeeper *upgradekeeper.Keeper
SlashingKeeper slashingkeeper.Keeper
FeeGrantKeeper feegrantkeeper.Keeper

// IBC
IBCKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly
CapabilityKeeper *capabilitykeeper.Keeper
IBCFeeKeeper ibcfeekeeper.Keeper
ICAControllerKeeper icacontrollerkeeper.Keeper
ICAHostKeeper icahostkeeper.Keeper
TransferKeeper ibctransferkeeper.Keeper

// Scoped IBC
ScopedIBCKeeper capabilitykeeper.ScopedKeeper
ScopedIBCTransferKeeper capabilitykeeper.ScopedKeeper
ScopedICAControllerKeeper capabilitykeeper.ScopedKeeper
ScopedICAHostKeeper capabilitykeeper.ScopedKeeper

// Fee Market
FeeMarketKeeper feemarketkeeper.Keeper
}
6 changes: 4 additions & 2 deletions app/upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"fmt"

upgradetypes "cosmossdk.io/x/upgrade/types"
"github.com/allora-network/allora-chain/app/keepers"
"github.com/allora-network/allora-chain/app/upgrades"
"github.com/allora-network/allora-chain/app/upgrades/v0_3_0"
"github.com/allora-network/allora-chain/app/upgrades/v0_4_0"
Expand All @@ -22,10 +23,11 @@ var upgradeHandlers = []upgrades.Upgrade{
// ...
}

func (app *AlloraApp) setupUpgradeHandlers() {
func (app *AlloraApp) setupUpgradeHandlers(appKeepers *keepers.AppKeepers) {
for _, handler := range upgradeHandlers {
app.UpgradeKeeper.SetUpgradeHandler(handler.UpgradeName,
handler.CreateUpgradeHandler(app.ModuleManager, app.Configurator()))
handler.CreateUpgradeHandler(app.ModuleManager, app.Configurator(), appKeepers))

}
}

Expand Down
3 changes: 2 additions & 1 deletion app/upgrades/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
storetypes "cosmossdk.io/store/types"
upgradetypes "cosmossdk.io/x/upgrade/types"

"github.com/allora-network/allora-chain/app/keepers"
"github.com/cosmos/cosmos-sdk/types/module"
)

Expand All @@ -15,7 +16,7 @@ type Upgrade struct {
UpgradeName string

// CreateUpgradeHandler defines the function that creates an upgrade handler
CreateUpgradeHandler func(mm *module.Manager, configurator module.Configurator) upgradetypes.UpgradeHandler
CreateUpgradeHandler func(mm *module.Manager, configurator module.Configurator, keepers *keepers.AppKeepers) upgradetypes.UpgradeHandler

// StoreUpgrades should be used for any new modules introduced, new modules deleted, or store names renamed.
StoreUpgrades storetypes.StoreUpgrades
Expand Down
2 changes: 2 additions & 0 deletions app/upgrades/v0_3_0/upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (

storetypes "cosmossdk.io/store/types"
upgradetypes "cosmossdk.io/x/upgrade/types"
"github.com/allora-network/allora-chain/app/keepers"
"github.com/allora-network/allora-chain/app/upgrades"
"github.com/cosmos/cosmos-sdk/types/module"
)
Expand All @@ -22,6 +23,7 @@ var Upgrade = upgrades.Upgrade{
func CreateUpgradeHandler(
moduleManager *module.Manager,
configurator module.Configurator,
keepers *keepers.AppKeepers,
) upgradetypes.UpgradeHandler {
return func(ctx context.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return moduleManager.RunMigrations(ctx, configurator, vm)
Expand Down
2 changes: 2 additions & 0 deletions app/upgrades/v0_4_0/upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (

storetypes "cosmossdk.io/store/types"
upgradetypes "cosmossdk.io/x/upgrade/types"
"github.com/allora-network/allora-chain/app/keepers"
"github.com/allora-network/allora-chain/app/upgrades"
"github.com/cosmos/cosmos-sdk/types/module"
)
Expand All @@ -22,6 +23,7 @@ var Upgrade = upgrades.Upgrade{
func CreateUpgradeHandler(
moduleManager *module.Manager,
configurator module.Configurator,
keepers *keepers.AppKeepers,
) upgradetypes.UpgradeHandler {
return func(ctx context.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return moduleManager.RunMigrations(ctx, configurator, vm)
Expand Down
3 changes: 3 additions & 0 deletions app/upgrades/v0_5_0/upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import (

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

"github.com/allora-network/allora-chain/app/keepers"
"github.com/allora-network/allora-chain/app/upgrades"
"github.com/cosmos/cosmos-sdk/types/module"
)
Expand All @@ -22,6 +24,7 @@ var Upgrade = upgrades.Upgrade{
func CreateUpgradeHandler(
moduleManager *module.Manager,
configurator module.Configurator,
keepers *keepers.AppKeepers,
) upgradetypes.UpgradeHandler {
return func(ctx context.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return moduleManager.RunMigrations(ctx, configurator, vm)
Expand Down
2 changes: 2 additions & 0 deletions app/upgrades/v0_6_0/upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (

storetypes "cosmossdk.io/store/types"
upgradetypes "cosmossdk.io/x/upgrade/types"
"github.com/allora-network/allora-chain/app/keepers"
"github.com/allora-network/allora-chain/app/upgrades"
"github.com/cosmos/cosmos-sdk/types/module"
)
Expand All @@ -22,6 +23,7 @@ var Upgrade = upgrades.Upgrade{
func CreateUpgradeHandler(
moduleManager *module.Manager,
configurator module.Configurator,
keepers *keepers.AppKeepers,
) upgradetypes.UpgradeHandler {
return func(ctx context.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return moduleManager.RunMigrations(ctx, configurator, vm)
Expand Down
43 changes: 42 additions & 1 deletion app/upgrades/v0_7_0/upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,14 @@ package v0_7_0 //nolint:revive // var-naming: don't use an underscore in package
import (
"context"

cosmosmath "cosmossdk.io/math"
storetypes "cosmossdk.io/store/types"
"cosmossdk.io/x/feegrant"
upgradetypes "cosmossdk.io/x/upgrade/types"
"github.com/allora-network/allora-chain/app/keepers"
"github.com/allora-network/allora-chain/app/params"
"github.com/allora-network/allora-chain/app/upgrades"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
feemarkettypes "github.com/skip-mev/feemarket/x/feemarket/types"
)
Expand All @@ -30,8 +34,45 @@ var Upgrade = upgrades.Upgrade{
func CreateUpgradeHandler(
moduleManager *module.Manager,
configurator module.Configurator,
keepers *keepers.AppKeepers,
) upgradetypes.UpgradeHandler {
return func(ctx context.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return moduleManager.RunMigrations(ctx, configurator, vm)

vm, err := moduleManager.RunMigrations(ctx, configurator, vm)
if err != nil {
return vm, err
}

if err := ConfigureFeeMarketModule(ctx, keepers); err != nil {
return vm, err
}

return vm, nil
}
}

func ConfigureFeeMarketModule(ctx context.Context, keepers *keepers.AppKeepers) error {
sdkCtx := sdk.UnwrapSDKContext(ctx)

feeMarketParams, err := keepers.FeeMarketKeeper.GetParams(sdkCtx)
if err != nil {
return err
}

feeMarketParams.Enabled = true
feeMarketParams.FeeDenom = params.BaseCoinUnit
feeMarketParams.MinBaseGasPrice = cosmosmath.LegacyMustNewDecFromStr("10")
feeMarketParams.MaxBlockUtilization = feemarkettypes.DefaultMaxBlockUtilization
if err := keepers.FeeMarketKeeper.SetParams(sdkCtx, feeMarketParams); err != nil {
return err
}

state, err := keepers.FeeMarketKeeper.GetState(sdkCtx)
if err != nil {
return err
}

state.BaseGasPrice = cosmosmath.LegacyMustNewDecFromStr("10")

return keepers.FeeMarketKeeper.SetState(sdkCtx, state)
}
1 change: 1 addition & 0 deletions test/common/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ func NewClient(
cosmosclient.WithHome(alloraHomeDir),
cosmosclient.WithGas("auto"),
cosmosclient.WithGasAdjustment(1.2),
cosmosclient.WithFees("10000uallo"),
)
require.NoError(t, err)
ccCtx := cosmosClient.Context()
Expand Down
1 change: 1 addition & 0 deletions test/generate_genesis.sh
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ FAUCET_ADDRESS="${FAUCET_ADDRESS%%[[:cntrl:]]}"
# some sample default parameters for integration tests
dasel put 'app_state.emissions.core_team_addresses.append()' -t string -v $FAUCET_ADDRESS -f $genesisHome/config/genesis.json
dasel put 'app_state.gov.params.expedited_voting_period' -t string -v "300s" -f $genesisHome/config/genesis.json
dasel put 'app_state.feemarket.params.fee_denom' -t string -v "uallo" -f $genesisHome/config/genesis.json

cp -f $genesisHome/config/genesis.json $COMMON_HOME_DIR

Expand Down

0 comments on commit 263335a

Please sign in to comment.