github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/params/keeper.go (about) 1 package params 2 3 import ( 4 "fmt" 5 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec" 6 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 7 sdkparams "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/params" 8 9 "github.com/fibonacci-chain/fbc/libs/tendermint/libs/log" 10 "github.com/fibonacci-chain/fbc/x/params/types" 11 ) 12 13 // Keeper is the struct of params keeper 14 type Keeper struct { 15 cdc *codec.Codec 16 sdkparams.Keeper 17 // the reference to the Paramstore to get and set gov specific params 18 paramSpace sdkparams.Subspace 19 // the reference to the DelegationSet and ValidatorSet to get information about validators and delegators 20 sk StakingKeeper 21 // the reference to the CoinKeeper to modify balances 22 ck BankKeeper 23 // the reference to the GovKeeper to insert waiting queue 24 gk GovKeeper 25 signals []func() 26 27 logger log.Logger 28 upgradeCache *types.UpgradeCache 29 } 30 31 // NewKeeper creates a new instance of params keeper 32 func NewKeeper(cdc *codec.Codec, key *sdk.KVStoreKey, tkey *sdk.TransientStoreKey, logger log.Logger) ( 33 k Keeper) { 34 k = Keeper{ 35 Keeper: sdkparams.NewKeeper(cdc, key, tkey), 36 signals: make([]func(), 0), 37 logger: logger.With("module", fmt.Sprintf("x/%s", ModuleName)), 38 39 upgradeCache: types.NewUpgreadeCache(key, logger, cdc), 40 } 41 k.cdc = cdc 42 k.paramSpace = k.Subspace(DefaultParamspace).WithKeyTable(types.ParamKeyTable()) 43 return k 44 } 45 46 // SetStakingKeeper hooks the staking keeper into params keeper 47 func (keeper *Keeper) SetStakingKeeper(sk StakingKeeper) { 48 keeper.sk = sk 49 } 50 51 // SetBankKeeper hooks the bank keeper into params keeper 52 func (keeper *Keeper) SetBankKeeper(ck BankKeeper) { 53 keeper.ck = ck 54 } 55 56 // SetGovKeeper hooks the gov keeper into params keeper 57 func (keeper *Keeper) SetGovKeeper(gk GovKeeper) { 58 keeper.gk = gk 59 } 60 61 // SetParams sets the params into the store 62 func (keeper *Keeper) SetParams(ctx sdk.Context, params types.Params) { 63 keeper.paramSpace.SetParamSet(ctx, ¶ms) 64 } 65 66 // GetParams gets the params info from the store 67 func (keeper Keeper) GetParams(ctx sdk.Context) types.Params { 68 var params types.Params 69 keeper.paramSpace.GetParamSet(ctx, ¶ms) 70 return params 71 }