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, &params)
    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, &params)
    70  	return params
    71  }