github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/farm/keeper/keeper.go (about) 1 package keeper 2 3 import ( 4 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec" 5 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 6 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/supply" 7 "github.com/fibonacci-chain/fbc/libs/tendermint/libs/log" 8 swap "github.com/fibonacci-chain/fbc/x/ammswap/keeper" 9 evm "github.com/fibonacci-chain/fbc/x/evm/keeper" 10 "github.com/fibonacci-chain/fbc/x/farm/types" 11 "github.com/fibonacci-chain/fbc/x/token" 12 ) 13 14 // Keeper of the farm store 15 type Keeper struct { 16 storeKey sdk.StoreKey 17 cdc *codec.Codec 18 feeCollectorName string // name of the FeeCollector ModuleAccount 19 paramSubspace types.ParamSubspace 20 supplyKeeper supply.Keeper 21 tokenKeeper token.Keeper 22 swapKeeper swap.Keeper 23 evmKeeper evm.Keeper 24 govKeeper GovKeeper 25 ObserverKeeper []types.BackendKeeper 26 } 27 28 // NewKeeper creates a farm keeper 29 func NewKeeper(feeCollectorName string, supplyKeeper supply.Keeper, 30 tokenKeeper token.Keeper, 31 swapKeeper swap.Keeper, 32 evmKeeper evm.Keeper, 33 paramSubspace types.ParamSubspace, key sdk.StoreKey, cdc *codec.Codec) Keeper { 34 return Keeper{ 35 storeKey: key, 36 cdc: cdc, 37 feeCollectorName: feeCollectorName, 38 paramSubspace: paramSubspace.WithKeyTable(types.ParamKeyTable()), 39 supplyKeeper: supplyKeeper, 40 tokenKeeper: tokenKeeper, 41 swapKeeper: swapKeeper, 42 evmKeeper: evmKeeper, 43 } 44 } 45 46 func (k Keeper) StoreKey() sdk.StoreKey { 47 return k.storeKey 48 } 49 50 func (k Keeper) SupplyKeeper() supply.Keeper { 51 return k.supplyKeeper 52 } 53 54 func (k Keeper) TokenKeeper() token.Keeper { 55 return k.tokenKeeper 56 } 57 58 func (k Keeper) SwapKeeper() swap.Keeper { 59 return k.swapKeeper 60 } 61 62 func (k Keeper) EvmKeeper() evm.Keeper { 63 return k.evmKeeper 64 } 65 66 // GetFeeCollector returns feeCollectorName 67 func (k Keeper) GetFeeCollector() string { 68 return k.feeCollectorName 69 } 70 71 // Logger returns a module-specific logger 72 func (k Keeper) Logger(ctx sdk.Context) log.Logger { 73 return ctx.Logger().With("module", types.ModuleName) 74 } 75 76 // SetGovKeeper sets keeper of gov 77 func (k *Keeper) SetGovKeeper(gk GovKeeper) { 78 k.govKeeper = gk 79 } 80 81 func (k *Keeper) SetObserverKeeper(bk types.BackendKeeper) { 82 k.ObserverKeeper = append(k.ObserverKeeper, bk) 83 } 84 85 func (k Keeper) OnClaim(ctx sdk.Context, address sdk.AccAddress, poolName string, claimedCoins sdk.SysCoins) { 86 for _, observer := range k.ObserverKeeper { 87 observer.OnFarmClaim(ctx, address, poolName, claimedCoins) 88 } 89 }