github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/feesplit/keeper/keeper.go (about) 1 package keeper 2 3 import ( 4 "fmt" 5 6 "github.com/ethereum/go-ethereum/common" 7 8 ethermint "github.com/fibonacci-chain/fbc/app/types" 9 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec" 10 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 11 "github.com/fibonacci-chain/fbc/libs/tendermint/libs/log" 12 "github.com/fibonacci-chain/fbc/x/feesplit/types" 13 "github.com/fibonacci-chain/fbc/x/params" 14 ) 15 16 // Keeper of this module maintains collections of fee splits for contracts 17 // registered to receive transaction fees. 18 type Keeper struct { 19 storeKey sdk.StoreKey 20 cdc *codec.Codec 21 paramSpace types.Subspace 22 23 evmKeeper types.EvmKeeper 24 govKeeper types.GovKeeper 25 supplyKeeper types.SupplyKeeper 26 accountKeeper types.AccountKeeper 27 updateFeeSplitHandler sdk.UpdateFeeSplitHandler 28 } 29 30 // NewKeeper creates new instances of the fees Keeper 31 func NewKeeper( 32 storeKey sdk.StoreKey, 33 cdc *codec.Codec, 34 ps params.Subspace, 35 ek types.EvmKeeper, 36 sk types.SupplyKeeper, 37 ak types.AccountKeeper, 38 ) Keeper { 39 // set KeyTable if it has not already been set 40 if !ps.HasKeyTable() { 41 ps = ps.WithKeyTable(types.ParamKeyTable()) 42 } 43 44 return Keeper{ 45 storeKey: storeKey, 46 cdc: cdc, 47 paramSpace: ps, 48 evmKeeper: ek, 49 supplyKeeper: sk, 50 accountKeeper: ak, 51 } 52 } 53 54 // Logger returns a module-specific logger. 55 func (k Keeper) Logger(ctx sdk.Context) log.Logger { 56 return ctx.Logger().With("module", fmt.Sprintf("x/%s", types.ModuleName)) 57 } 58 59 // GetEthAccount returns an eth account. 60 func (k Keeper) GetEthAccount(ctx sdk.Context, addr common.Address) (*ethermint.EthAccount, bool) { 61 cosmosAddr := sdk.AccAddress(addr.Bytes()) 62 acct := k.accountKeeper.GetAccount(ctx, cosmosAddr) 63 if acct == nil { 64 return nil, false 65 } 66 67 ethAcct, _ := acct.(*ethermint.EthAccount) 68 return ethAcct, true 69 } 70 71 // SetGovKeeper sets keeper of gov 72 func (k *Keeper) SetGovKeeper(gk types.GovKeeper) { 73 k.govKeeper = gk 74 }