github.com/InjectiveLabs/sdk-go@v1.53.0/chain/exchange/types/expected_keepers.go (about) 1 package types 2 3 import ( 4 "context" 5 "time" 6 7 sdkmath "cosmossdk.io/math" 8 sdk "github.com/cosmos/cosmos-sdk/types" 9 "github.com/cosmos/cosmos-sdk/x/distribution/types" 10 v1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" 11 stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" 12 "github.com/ethereum/go-ethereum/common" 13 14 wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" 15 16 insurancetypes "github.com/InjectiveLabs/sdk-go/chain/insurance/types" 17 oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" 18 wasmxtypes "github.com/InjectiveLabs/sdk-go/chain/wasmx/types" 19 ) 20 21 // BankKeeper defines the expected bank keeper methods. 22 type BankKeeper interface { 23 SendCoinsFromModuleToModule(ctx sdk.Context, senderModule, recipientModule string, amt sdk.Coins) error 24 SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error 25 SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error 26 GetSupply(ctx sdk.Context) sdk.Coin 27 } 28 29 // OracleKeeper defines the expected oracle keeper methods. 30 type OracleKeeper interface { 31 GetPrice(ctx sdk.Context, oracletype oracletypes.OracleType, base string, quote string) *sdkmath.LegacyDec 32 GetPricePairState(ctx sdk.Context, oracletype oracletypes.OracleType, base, quote string, scalingOptions *oracletypes.ScalingOptions) *oracletypes.PricePairState 33 GetCumulativePrice(ctx sdk.Context, oracleType oracletypes.OracleType, base string, quote string) *sdkmath.LegacyDec 34 GetHistoricalPriceRecords(ctx sdk.Context, oracleType oracletypes.OracleType, symbol string, from int64) (entry *oracletypes.PriceRecords, omitted bool) 35 GetMixedHistoricalPriceRecords(ctx sdk.Context, baseOracleType, quoteOracleType oracletypes.OracleType, baseSymbol, quoteSymbol string, from int64) (mixed *oracletypes.PriceRecords, ok bool) 36 GetStandardDeviationForPriceRecords(priceRecords []*oracletypes.PriceRecord) *sdkmath.LegacyDec 37 GetProviderInfo(ctx sdk.Context, provider string) *oracletypes.ProviderInfo 38 GetProviderPrice(ctx sdk.Context, provider, symbol string) *sdkmath.LegacyDec 39 GetProviderPriceState(ctx sdk.Context, provider, symbol string) *oracletypes.ProviderPriceState 40 } 41 42 // InsuranceKeeper defines the expected insurance keeper methods. 43 type InsuranceKeeper interface { 44 // HasInsuranceFund returns true if InsuranceFund for the given marketID exists. 45 HasInsuranceFund(ctx sdk.Context, marketID common.Hash) bool 46 // GetInsuranceFund returns the insurance fund corresponding to the given marketID. 47 GetInsuranceFund(ctx sdk.Context, marketID common.Hash) *insurancetypes.InsuranceFund 48 // DepositIntoInsuranceFund increments the insurance fund balance by amount. 49 DepositIntoInsuranceFund(ctx sdk.Context, marketID common.Hash, amount sdkmath.Int) error 50 // WithdrawFromInsuranceFund decrements the insurance fund balance by amount and sends 51 WithdrawFromInsuranceFund(ctx sdk.Context, marketID common.Hash, amount sdkmath.Int) error 52 // UpdateInsuranceFundOracleParams updates the insurance fund's oracle parameters 53 UpdateInsuranceFundOracleParams(ctx sdk.Context, marketID common.Hash, oracleParams *OracleParams) error 54 } 55 56 type GovKeeper interface { 57 IterateActiveProposalsQueue(ctx context.Context, endTime time.Time, cb func(proposal v1.Proposal) (stop bool)) 58 GetParams(ctx context.Context) v1.Params 59 } 60 61 type DistributionKeeper interface { 62 GetFeePool(ctx sdk.Context) (feePool types.FeePool) 63 DistributeFromFeePool(ctx sdk.Context, amount sdk.Coins, receiveAddr sdk.AccAddress) error 64 FundCommunityPool(ctx sdk.Context, amount sdk.Coins, sender sdk.AccAddress) error 65 } 66 67 type StakingKeeper interface { 68 GetDelegatorDelegations(ctx context.Context, delegator sdk.AccAddress, maxRetrieve uint16) (delegations []stakingtypes.Delegation, err error) 69 Validator(context.Context, sdk.ValAddress) (stakingtypes.ValidatorI, error) // get a particular validator by operator address 70 } 71 72 type WasmViewKeeper interface { 73 wasmtypes.ViewKeeper 74 } 75 76 type WasmContractOpsKeeper interface { 77 wasmtypes.ContractOpsKeeper 78 } 79 80 type WasmxExecutionKeeper interface { 81 InjectiveExec(ctx sdk.Context, contractAddress sdk.AccAddress, funds sdk.Coins, msg *wasmxtypes.InjectiveExecMsg) ([]byte, error) 82 }