github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/ammswap/types/expected_keepers.go (about)

     1  package types
     2  
     3  import (
     4  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     5  	"github.com/fibonacci-chain/fbc/x/params"
     6  	token "github.com/fibonacci-chain/fbc/x/token/types"
     7  )
     8  
     9  // ParamSubspace defines the expected Subspace interface
    10  type ParamSubspace interface {
    11  	WithKeyTable(table params.KeyTable) params.Subspace
    12  	Get(ctx sdk.Context, key []byte, ptr interface{})
    13  	GetParamSet(ctx sdk.Context, ps params.ParamSet)
    14  	SetParamSet(ctx sdk.Context, ps params.ParamSet)
    15  }
    16  
    17  // BankKeeper defines the expected bank interface
    18  type BankKeeper interface {
    19  	SubtractCoins(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coins) (sdk.Coins, error)
    20  	SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error
    21  }
    22  
    23  // SupplyKeeper defines the expected supply interface
    24  type SupplyKeeper interface {
    25  	GetSupplyByDenom(ctx sdk.Context, denom string) sdk.Dec
    26  	SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string,
    27  		recipientAddr sdk.AccAddress, amt sdk.Coins) sdk.Error
    28  	SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress,
    29  		recipientModule string, amt sdk.Coins) sdk.Error
    30  	MintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) sdk.Error
    31  	BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) sdk.Error
    32  }
    33  
    34  // TokenKeeper defines the expected token interface
    35  type TokenKeeper interface {
    36  	GetTokenInfo(ctx sdk.Context, symbol string) token.Token
    37  	NewToken(ctx sdk.Context, token token.Token)
    38  	UpdateToken(ctx sdk.Context, token token.Token)
    39  	GetCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.SysCoins
    40  	TokenExist(ctx sdk.Context, symbol string) bool
    41  	GetTokensInfo(ctx sdk.Context) (tokens []token.Token)
    42  }
    43  
    44  type BackendKeeper interface {
    45  	OnSwapToken(ctx sdk.Context, address sdk.AccAddress, swapTokenPair SwapTokenPair, sellAmount sdk.SysCoin, buyAmount sdk.SysCoin)
    46  	OnSwapCreateExchange(ctx sdk.Context, swapTokenPair SwapTokenPair)
    47  }