From fc2b7f96521eb6c46ed9d4282cd6080a5a76c6c7 Mon Sep 17 00:00:00 2001 From: rhuairahrighairigh Date: Fri, 29 Nov 2019 10:55:10 +0000 Subject: [PATCH] add new modules to app --- app/app.go | 69 ++++++++++++++++++++++++++++++++++-------- x/pricefeed/genesis.go | 3 +- 2 files changed, 58 insertions(+), 14 deletions(-) diff --git a/app/app.go b/app/app.go index be60f667..c3398d5b 100644 --- a/app/app.go +++ b/app/app.go @@ -4,6 +4,10 @@ import ( "io" "os" + "github.com/kava-labs/kava/x/auction" + "github.com/kava-labs/kava/x/cdp" + "github.com/kava-labs/kava/x/liquidator" + "github.com/kava-labs/kava/x/pricefeed" validatorvesting "github.com/kava-labs/kava/x/validator-vesting" abci "github.com/tendermint/tendermint/abci/types" @@ -55,6 +59,10 @@ var ( crisis.AppModuleBasic{}, slashing.AppModuleBasic{}, supply.AppModuleBasic{}, + auction.AppModuleBasic{}, + cdp.AppModuleBasic{}, + liquidator.AppModuleBasic{}, + pricefeed.AppModuleBasic{}, ) // module account permissions @@ -81,17 +89,21 @@ type App struct { tkeys map[string]*sdk.TransientStoreKey // keepers from all the modules - accountKeeper auth.AccountKeeper - bankKeeper bank.Keeper - supplyKeeper supply.Keeper - stakingKeeper staking.Keeper - slashingKeeper slashing.Keeper - mintKeeper mint.Keeper - distrKeeper distr.Keeper - govKeeper gov.Keeper - crisisKeeper crisis.Keeper - paramsKeeper params.Keeper - vvKeeper validatorvesting.Keeper + accountKeeper auth.AccountKeeper + bankKeeper bank.Keeper + supplyKeeper supply.Keeper + stakingKeeper staking.Keeper + slashingKeeper slashing.Keeper + mintKeeper mint.Keeper + distrKeeper distr.Keeper + govKeeper gov.Keeper + crisisKeeper crisis.Keeper + paramsKeeper params.Keeper + vvKeeper validatorvesting.Keeper + auctionKeeper auction.Keeper + cdpKeeper cdp.Keeper + liquidatorKeeper liquidator.Keeper + pricefeedKeeper pricefeed.Keeper // the module manager mm *module.Manager @@ -115,6 +127,7 @@ func NewApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool, bam.MainStoreKey, auth.StoreKey, staking.StoreKey, supply.StoreKey, mint.StoreKey, distr.StoreKey, slashing.StoreKey, gov.StoreKey, params.StoreKey, validatorvesting.StoreKey, + auction.StoreKey, cdp.StoreKey, liquidator.StoreKey, pricefeed.StoreKey, ) tkeys := sdk.NewTransientStoreKeys(params.TStoreKey) @@ -136,6 +149,10 @@ func NewApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool, slashingSubspace := app.paramsKeeper.Subspace(slashing.DefaultParamspace) govSubspace := app.paramsKeeper.Subspace(gov.DefaultParamspace).WithKeyTable(gov.ParamKeyTable()) crisisSubspace := app.paramsKeeper.Subspace(crisis.DefaultParamspace) + auctionSubspace := app.paramsKeeper.Subspace(auction.DefaultParamspace) + cdpSubspace := app.paramsKeeper.Subspace(cdp.DefaultParamspace) + liquidatorSubspace := app.paramsKeeper.Subspace(liquidator.DefaultParamspace) + pricefeedSubspace := app.paramsKeeper.Subspace(pricefeed.DefaultParamspace).WithKeyTable(pricefeed.ParamKeyTable()) // TODO why do other modules not need this? // add keepers app.accountKeeper = auth.NewAccountKeeper( @@ -207,6 +224,29 @@ func NewApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool, app.bankKeeper, app.supplyKeeper, &stakingKeeper) + app.pricefeedKeeper = pricefeed.NewKeeper( + app.cdc, + keys[pricefeed.StoreKey], + pricefeedSubspace, + pricefeed.DefaultCodespace) + app.cdpKeeper = cdp.NewKeeper( + app.cdc, + keys[cdp.StoreKey], + cdpSubspace, + app.pricefeedKeeper, + app.bankKeeper) + app.auctionKeeper = auction.NewKeeper( + app.cdc, + app.cdpKeeper, // CDP keeper standing in for bank + keys[auction.StoreKey], + auctionSubspace) + app.liquidatorKeeper = liquidator.NewKeeper( + app.cdc, + keys[liquidator.StoreKey], + liquidatorSubspace, + app.cdpKeeper, + app.auctionKeeper, + app.cdpKeeper) // CDP keeper standing in for bank // register the staking hooks // NOTE: stakingKeeper above is passed by reference, so that it will contain these hooks @@ -227,6 +267,10 @@ func NewApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool, slashing.NewAppModule(app.slashingKeeper, app.stakingKeeper), staking.NewAppModule(app.stakingKeeper, app.accountKeeper, app.supplyKeeper), validatorvesting.NewAppModule(app.vvKeeper, app.accountKeeper), + auction.NewAppModule(app.auctionKeeper), + cdp.NewAppModule(app.cdpKeeper, app.pricefeedKeeper), + liquidator.NewAppModule(app.liquidatorKeeper), + pricefeed.NewAppModule(app.pricefeedKeeper), ) // During begin block slashing happens after distr.BeginBlocker so that @@ -234,7 +278,7 @@ func NewApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool, // CanWithdrawInvariant invariant. app.mm.SetOrderBeginBlockers(mint.ModuleName, distr.ModuleName, slashing.ModuleName, validatorvesting.ModuleName) - app.mm.SetOrderEndBlockers(crisis.ModuleName, gov.ModuleName, staking.ModuleName) + app.mm.SetOrderEndBlockers(crisis.ModuleName, gov.ModuleName, staking.ModuleName, pricefeed.ModuleName, auction.ModuleName) // TODO is this correct order? // Note: genutils must occur after staking so that pools are properly // initialized with tokens from genesis accounts. @@ -245,6 +289,7 @@ func NewApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool, auth.ModuleName, validatorvesting.ModuleName, distr.ModuleName, staking.ModuleName, bank.ModuleName, slashing.ModuleName, gov.ModuleName, mint.ModuleName, supply.ModuleName, crisis.ModuleName, genutil.ModuleName, + pricefeed.ModuleName, cdp.ModuleName, auction.ModuleName, liquidator.ModuleName, // TODO is this order ok? ) app.mm.RegisterInvariants(&app.crisisKeeper) diff --git a/x/pricefeed/genesis.go b/x/pricefeed/genesis.go index 2dafc2b3..ed19d3e6 100644 --- a/x/pricefeed/genesis.go +++ b/x/pricefeed/genesis.go @@ -4,13 +4,12 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" ) - // InitGenesis sets distribution information for genesis. func InitGenesis(ctx sdk.Context, keeper Keeper, data GenesisState) { // Set the assets and oracles from params keeper.SetAssetParams(ctx, data.AssetParams) - keeper.SetOracleParams(ctx ,data.OracleParams) + keeper.SetOracleParams(ctx, data.OracleParams) // Iterate through the posted prices and set them in the store for _, pp := range data.PostedPrices {