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  }