Documentation ¶
Index ¶
- Constants
- Variables
- func DepositorPoolSharesKey(depositor sdk.AccAddress, poolID string) []byte
- func ParamKeyTable() params.KeyTable
- func PoolID(denomA string, denomB string) string
- func PoolIDFromCoins(coins sdk.Coins) string
- func PoolKey(poolID string) []byte
- func RegisterCodec(cdc *codec.Codec)
- type AccountKeeper
- type AllowedPool
- type AllowedPools
- type BasePool
- func (p *BasePool) AddLiquidity(desiredA sdk.Int, desiredB sdk.Int) (sdk.Int, sdk.Int, sdk.Int)
- func (p *BasePool) IsEmpty() bool
- func (p *BasePool) RemoveLiquidity(shares sdk.Int) (sdk.Int, sdk.Int)
- func (p *BasePool) ReservesA() sdk.Int
- func (p *BasePool) ReservesB() sdk.Int
- func (p *BasePool) ShareValue(shares sdk.Int) (sdk.Int, sdk.Int)
- func (p *BasePool) SwapAForExactB(b sdk.Int, fee sdk.Dec) (sdk.Int, sdk.Int)
- func (p *BasePool) SwapBForExactA(a sdk.Int, fee sdk.Dec) (sdk.Int, sdk.Int)
- func (p *BasePool) SwapExactAForB(a sdk.Int, fee sdk.Dec) (sdk.Int, sdk.Int)
- func (p *BasePool) SwapExactBForA(b sdk.Int, fee sdk.Dec) (sdk.Int, sdk.Int)
- func (p *BasePool) TotalShares() sdk.Int
- type DenominatedPool
- func (p *DenominatedPool) AddLiquidity(deposit sdk.Coins) (sdk.Coins, sdk.Int)
- func (p *DenominatedPool) IsEmpty() bool
- func (p *DenominatedPool) RemoveLiquidity(shares sdk.Int) sdk.Coins
- func (p *DenominatedPool) Reserves() sdk.Coins
- func (p *DenominatedPool) ShareValue(shares sdk.Int) sdk.Coins
- func (p *DenominatedPool) SwapWithExactInput(swapInput sdk.Coin, fee sdk.Dec) (sdk.Coin, sdk.Coin)
- func (p *DenominatedPool) SwapWithExactOutput(swapOutput sdk.Coin, fee sdk.Dec) (sdk.Coin, sdk.Coin)
- func (p *DenominatedPool) TotalShares() sdk.Int
- type DepositsQueryResult
- type DepositsQueryResults
- type GenesisState
- type MsgDeposit
- func (msg MsgDeposit) DeadlineExceeded(blockTime time.Time) bool
- func (msg MsgDeposit) GetDeadline() time.Time
- func (msg MsgDeposit) GetSignBytes() []byte
- func (msg MsgDeposit) GetSigners() []sdk.AccAddress
- func (msg MsgDeposit) Route() string
- func (msg MsgDeposit) Type() string
- func (msg MsgDeposit) ValidateBasic() error
- type MsgSwapExactForTokens
- func (msg MsgSwapExactForTokens) DeadlineExceeded(blockTime time.Time) bool
- func (msg MsgSwapExactForTokens) GetDeadline() time.Time
- func (msg MsgSwapExactForTokens) GetSignBytes() []byte
- func (msg MsgSwapExactForTokens) GetSigners() []sdk.AccAddress
- func (msg MsgSwapExactForTokens) Route() string
- func (msg MsgSwapExactForTokens) Type() string
- func (msg MsgSwapExactForTokens) ValidateBasic() error
- type MsgSwapForExactTokens
- func (msg MsgSwapForExactTokens) DeadlineExceeded(blockTime time.Time) bool
- func (msg MsgSwapForExactTokens) GetDeadline() time.Time
- func (msg MsgSwapForExactTokens) GetSignBytes() []byte
- func (msg MsgSwapForExactTokens) GetSigners() []sdk.AccAddress
- func (msg MsgSwapForExactTokens) Route() string
- func (msg MsgSwapForExactTokens) Type() string
- func (msg MsgSwapForExactTokens) ValidateBasic() error
- type MsgWithDeadline
- type MsgWithdraw
- func (msg MsgWithdraw) DeadlineExceeded(blockTime time.Time) bool
- func (msg MsgWithdraw) GetDeadline() time.Time
- func (msg MsgWithdraw) GetSignBytes() []byte
- func (msg MsgWithdraw) GetSigners() []sdk.AccAddress
- func (msg MsgWithdraw) Route() string
- func (msg MsgWithdraw) Type() string
- func (msg MsgWithdraw) ValidateBasic() error
- type Params
- type PoolRecord
- type PoolRecords
- type PoolStatsQueryResult
- type PoolStatsQueryResults
- type QueryDepositsParams
- type QueryPoolParams
- type ShareRecord
- type ShareRecords
- type SupplyKeeper
- type SwapHooks
Constants ¶
const ( AttributeValueCategory = ModuleName EventTypeSwapDeposit = "swap_deposit" EventTypeSwapWithdraw = "swap_withdraw" EventTypeSwapTrade = "swap_trade" AttributeKeyPoolID = "pool_id" AttributeKeyDepositor = "depositor" AttributeKeyOwner = "owner" AttributeKeyRequester = "requester" AttributeKeySwapInput = "input" AttributeKeySwapOutput = "output" AttributeKeyFeePaid = "fee" AttributeKeyExactDirection = "exact" )
Event types for swap module
const ( // ModuleName name that will be used throughout the module ModuleName = "swap" // ModuleAccountName name of module account used to hold liquidity ModuleAccountName = "swap" // StoreKey Top level store key where all module items will be stored StoreKey = ModuleName // RouterKey Top level router key RouterKey = ModuleName // QuerierRoute Top level query string QuerierRoute = ModuleName // DefaultParamspace default name for parameter store DefaultParamspace = ModuleName )
const ( QueryGetParams = "params" QueryGetDeposits = "deposits" QueryGetPool = "pool" QueryGetPools = "pools" )
Querier routes for the swap module
const PoolIDSep = ":"
Variables ¶
var ( ErrNotAllowed = sdkerrors.Register(ModuleName, 2, "not allowed") ErrInvalidDeadline = sdkerrors.Register(ModuleName, 3, "invalid deadline") ErrDeadlineExceeded = sdkerrors.Register(ModuleName, 4, "deadline exceeded") ErrSlippageExceeded = sdkerrors.Register(ModuleName, 5, "slippage exceeded") ErrInvalidPool = sdkerrors.Register(ModuleName, 6, "invalid pool") ErrInvalidSlippage = sdkerrors.Register(ModuleName, 7, "invalid slippage") ErrInsufficientLiquidity = sdkerrors.Register(ModuleName, 8, "insufficient liquidity") ErrDepositNotFound = sdkerrors.Register(ModuleName, 10, "deposit not found") ErrInvalidCoin = sdkerrors.Register(ModuleName, 11, "invalid coin") ErrNotImplemented = sdkerrors.Register(ModuleName, 12, "not implemented") )
swap module errors
var ( // DefaultPoolRecords is used to set default records in default genesis state DefaultPoolRecords = PoolRecords{} DefaultShareRecords = ShareRecords{} )
var ( PoolKeyPrefix = []byte{0x01} )
key prefixes for store
var ( KeyAllowedPools = []byte("AllowedPools") KeySwapFee = []byte("SwapFee") DefaultAllowedPools = AllowedPools{} DefaultSwapFee = sdk.ZeroDec() MaxSwapFee = sdk.OneDec() )
Parameter keys and default values
var ModuleCdc *codec.Codec
ModuleCdc generic sealed codec to be used throughout module
Functions ¶
func DepositorPoolSharesKey ¶
func DepositorPoolSharesKey(depositor sdk.AccAddress, poolID string) []byte
DepositorPoolSharesKey returns a key from a depositor and poolID
func ParamKeyTable ¶
ParamKeyTable Key declaration for parameters
func PoolID ¶
PoolID returns an alphabetically sorted pool name from two denoms. The name is commutative for any all pairs A,B: f(A,B) == f(B,A).
func PoolIDFromCoins ¶
PoolIDFromCoins returns a poolID from a coins object
func RegisterCodec ¶
RegisterCodec registers the necessary types for swap module
Types ¶
type AccountKeeper ¶
type AccountKeeper interface { GetAccount(ctx sdk.Context, addr sdk.AccAddress) authexported.Account SetAccount(ctx sdk.Context, acc authexported.Account) }
AccountKeeper defines the expected keeper interface for interacting with account (noalias)
type AllowedPool ¶
type AllowedPool struct { TokenA string `json:"token_a" yaml:"token_a"` TokenB string `json:"token_b" yaml:"token_b"` }
AllowedPool defines a tradable pool
func NewAllowedPool ¶
func NewAllowedPool(tokenA, tokenB string) AllowedPool
NewAllowedPool returns a new AllowedPool object
func (AllowedPool) Name ¶
func (p AllowedPool) Name() string
Name returns the name for the allowed pool
func (AllowedPool) String ¶
func (p AllowedPool) String() string
String pretty prints the allowedPool
func (AllowedPool) Validate ¶
func (p AllowedPool) Validate() error
Validate validates allowedPool attributes and returns an error if invalid
type AllowedPools ¶
type AllowedPools []AllowedPool
AllowedPools is a slice of AllowedPool
func NewAllowedPools ¶
func NewAllowedPools(allowedPools ...AllowedPool) AllowedPools
NewAllowedPools returns AllowedPools from the provided values
func (AllowedPools) Validate ¶
func (p AllowedPools) Validate() error
Validate validates each allowedPool and returns an error if there are any duplicates
type BasePool ¶
type BasePool struct {
// contains filtered or unexported fields
}
BasePool implements a unitless constant-product liquidity pool.
The pool is symmetric. For all A,B,s, any operation F on a pool (A,B,s) and pool (B,A,s) will result in equal state values of A', B', s': F(A,B,s) => (A',B',s'), F(B,A,s) => (B',A',s')
In addition, the pool is protected from overflow in intermediate calculations, and will only overflow when A, B, or s become larger than the max sdk.Int.
Pool operations with non-positive values are invalid, and all functions on a pool will panic when given zero or negative values.
func NewBasePool ¶
NewBasePool returns a pointer to a base pool with reserves and total shares initialized
func NewBasePoolWithExistingShares ¶
NewBasePoolWithExistingShares returns a pointer to a base pool with existing shares
func (*BasePool) AddLiquidity ¶
AddLiquidity adds liquidity to the pool returns the actual reservesA, reservesB deposits in addition to the number of shares created. The deposits are always less than or equal to the provided and desired values.
func (*BasePool) IsEmpty ¶
IsEmpty returns true if all reserves are zero and returns false if reserveA or reserveB is not empty
func (*BasePool) RemoveLiquidity ¶
RemoveLiquidity removes liquidity from the pool and panics if the shares provided are greater than the total shares of the pool or the shares are not positive. In addition, also panics if reserves go negative, which should not happen. If panic occurs, it is a bug.
func (*BasePool) ShareValue ¶
ShareValue returns the value of the provided shares and panics if the shares are greater than the total shares of the pool or if the shares are not positive.
func (*BasePool) SwapAForExactB ¶
SwapAForExactB trades a for an exact b. Returns the positive amount a that is added to the pool, and the portion of a that is used to pay the fee.
func (*BasePool) SwapBForExactA ¶
SwapBForExactA trades b for an exact a. Returns the positive amount b that is added to the pool, and the portion of b that is used to pay the fee.
func (*BasePool) SwapExactAForB ¶
SwapExactAForB trades an exact value of a for b. Returns the positive amount b that is removed from the pool and the portion of a that is used for paying the fee.
func (*BasePool) SwapExactBForA ¶
SwapExactBForA trades an exact value of b for a. Returns the positive amount a that is removed from the pool and the portion of b that is used for paying the fee.
func (*BasePool) TotalShares ¶
TotalShares returns the total number of shares in the pool
type DenominatedPool ¶
type DenominatedPool struct {
// contains filtered or unexported fields
}
DenominatedPool implements a denominated constant-product liquidity pool
func NewDenominatedPool ¶
func NewDenominatedPool(reserves sdk.Coins) (*DenominatedPool, error)
NewDenominatedPool creates a new denominated pool from reserve coins
func NewDenominatedPoolWithExistingShares ¶
func NewDenominatedPoolWithExistingShares(reserves sdk.Coins, totalShares sdk.Int) (*DenominatedPool, error)
NewDenominatedPoolWithExistingShares creates a new denominated pool from reserve coins
func (*DenominatedPool) AddLiquidity ¶
AddLiquidity adds liquidity to the reserves and returns the added amount and shares created
func (*DenominatedPool) IsEmpty ¶
func (p *DenominatedPool) IsEmpty() bool
IsEmpty returns true if the pool is empty
func (*DenominatedPool) RemoveLiquidity ¶
func (p *DenominatedPool) RemoveLiquidity(shares sdk.Int) sdk.Coins
RemoveLiquidity removes liquidity from the pool
func (*DenominatedPool) Reserves ¶
func (p *DenominatedPool) Reserves() sdk.Coins
Reserves returns the reserves held in the pool
func (*DenominatedPool) ShareValue ¶
func (p *DenominatedPool) ShareValue(shares sdk.Int) sdk.Coins
ShareValue returns the value of the provided shares
func (*DenominatedPool) SwapWithExactInput ¶
SwapWithExactInput trades an exact input coin for the other. Returns the positive other coin amount that is removed from the pool and the portion of the input coin that is used for the fee. It panics if the input denom does not match the pool reserves.
func (*DenominatedPool) SwapWithExactOutput ¶
func (p *DenominatedPool) SwapWithExactOutput(swapOutput sdk.Coin, fee sdk.Dec) (sdk.Coin, sdk.Coin)
SwapWithExactOutput trades a coin for an exact output coin b. Returns the positive input coin that is added to the pool, and the portion of that input that is used to pay the fee. Panics if the output denom does not match the pool reserves.
func (*DenominatedPool) TotalShares ¶
func (p *DenominatedPool) TotalShares() sdk.Int
TotalShares returns the total shares for the pool
type DepositsQueryResult ¶
type DepositsQueryResult struct { Depositor sdk.AccAddress `json:"depositor" yaml:"depositor"` PoolID string `json:"pool_id" yaml:"pool_id"` }
DepositsQueryResult contains the result of a deposits query
func NewDepositsQueryResult ¶
func NewDepositsQueryResult(shareRecord ShareRecord, sharesValue sdk.Coins) DepositsQueryResult
NewDepositsQueryResult creates a new DepositsQueryResult
type DepositsQueryResults ¶
type DepositsQueryResults []DepositsQueryResult
DepositsQueryResults is a slice of DepositsQueryResult
type GenesisState ¶
type GenesisState struct { Params Params `json:"params" yaml:"params"` PoolRecords `json:"pool_records" yaml:"pool_records"` }
GenesisState is the state that must be provided at genesis.
func DefaultGenesisState ¶
func DefaultGenesisState() GenesisState
DefaultGenesisState returns a default genesis state
func NewGenesisState ¶
func NewGenesisState(params Params, poolRecords PoolRecords, shareRecords ShareRecords) GenesisState
NewGenesisState creates a new genesis state.
func (GenesisState) Equal ¶
func (gs GenesisState) Equal(gs2 GenesisState) bool
Equal checks whether two gov GenesisState structs are equivalent
func (GenesisState) IsEmpty ¶
func (gs GenesisState) IsEmpty() bool
IsEmpty returns true if a GenesisState is empty
func (GenesisState) Validate ¶
func (gs GenesisState) Validate() error
Validate validates the module's genesis state
type MsgDeposit ¶
type MsgDeposit struct { Depositor sdk.AccAddress `json:"depositor" yaml:"depositor"` TokenA sdk.Coin `json:"token_a" yaml:"token_a"` TokenB sdk.Coin `json:"token_b" yaml:"token_b"` Slippage sdk.Dec `json:"slippage" yaml:"slippage"` Deadline int64 `json:"deadline" yaml:"deadline"` }
MsgDeposit deposits liquidity into a pool
func NewMsgDeposit ¶
func NewMsgDeposit(depositor sdk.AccAddress, tokenA sdk.Coin, tokenB sdk.Coin, slippage sdk.Dec, deadline int64) MsgDeposit
NewMsgDeposit returns a new MsgDeposit
func (MsgDeposit) DeadlineExceeded ¶
func (msg MsgDeposit) DeadlineExceeded(blockTime time.Time) bool
DeadlineExceeded returns if the msg has exceeded it's deadline
func (MsgDeposit) GetDeadline ¶
func (msg MsgDeposit) GetDeadline() time.Time
GetDeadline returns the time at which the msg is considered invalid
func (MsgDeposit) GetSignBytes ¶
func (msg MsgDeposit) GetSignBytes() []byte
GetSignBytes gets the canonical byte representation of the Msg.
func (MsgDeposit) GetSigners ¶
func (msg MsgDeposit) GetSigners() []sdk.AccAddress
GetSigners returns the addresses of signers that must sign.
func (MsgDeposit) Route ¶
func (msg MsgDeposit) Route() string
Route return the message type used for routing the message.
func (MsgDeposit) Type ¶
func (msg MsgDeposit) Type() string
Type returns a human-readable string for the message, intended for utilization within tags.
func (MsgDeposit) ValidateBasic ¶
func (msg MsgDeposit) ValidateBasic() error
ValidateBasic does a simple validation check that doesn't require access to any other information.
type MsgSwapExactForTokens ¶
type MsgSwapExactForTokens struct { Requester sdk.AccAddress `json:"requester" yaml:"requester"` ExactTokenA sdk.Coin `json:"exact_token_a" yaml:"exact_token_a"` TokenB sdk.Coin `json:"token_b" yaml:"token_b"` Slippage sdk.Dec `json:"slippage" yaml:"slippage"` Deadline int64 `json:"deadline" yaml:"deadline"` }
MsgSwapExactForTokens trades an exact coinA for coinB
func NewMsgSwapExactForTokens ¶
func NewMsgSwapExactForTokens(requester sdk.AccAddress, exactTokenA sdk.Coin, tokenB sdk.Coin, slippage sdk.Dec, deadline int64) MsgSwapExactForTokens
NewMsgSwapExactForTokens returns a new MsgSwapExactForTokens
func (MsgSwapExactForTokens) DeadlineExceeded ¶
func (msg MsgSwapExactForTokens) DeadlineExceeded(blockTime time.Time) bool
DeadlineExceeded returns if the msg has exceeded it's deadline
func (MsgSwapExactForTokens) GetDeadline ¶
func (msg MsgSwapExactForTokens) GetDeadline() time.Time
GetDeadline returns the time at which the msg is considered invalid
func (MsgSwapExactForTokens) GetSignBytes ¶
func (msg MsgSwapExactForTokens) GetSignBytes() []byte
GetSignBytes gets the canonical byte representation of the Msg.
func (MsgSwapExactForTokens) GetSigners ¶
func (msg MsgSwapExactForTokens) GetSigners() []sdk.AccAddress
GetSigners returns the addresses of signers that must sign.
func (MsgSwapExactForTokens) Route ¶
func (msg MsgSwapExactForTokens) Route() string
Route return the message type used for routing the message.
func (MsgSwapExactForTokens) Type ¶
func (msg MsgSwapExactForTokens) Type() string
Type returns a human-readable string for the message, intended for utilization within tags.
func (MsgSwapExactForTokens) ValidateBasic ¶
func (msg MsgSwapExactForTokens) ValidateBasic() error
ValidateBasic does a simple validation check that doesn't require access to any other information.
type MsgSwapForExactTokens ¶
type MsgSwapForExactTokens struct { Requester sdk.AccAddress `json:"requester" yaml:"requester"` TokenA sdk.Coin `json:"token_a" yaml:"token_a"` ExactTokenB sdk.Coin `json:"exact_token_b" yaml:"exact_token_b"` Slippage sdk.Dec `json:"slippage" yaml:"slippage"` Deadline int64 `json:"deadline" yaml:"deadline"` }
MsgSwapForExactTokens trades coinA for an exact coinB
func NewMsgSwapForExactTokens ¶
func NewMsgSwapForExactTokens(requester sdk.AccAddress, tokenA sdk.Coin, exactTokenB sdk.Coin, slippage sdk.Dec, deadline int64) MsgSwapForExactTokens
NewMsgSwapForExactTokens returns a new MsgSwapForExactTokens
func (MsgSwapForExactTokens) DeadlineExceeded ¶
func (msg MsgSwapForExactTokens) DeadlineExceeded(blockTime time.Time) bool
DeadlineExceeded returns if the msg has exceeded it's deadline
func (MsgSwapForExactTokens) GetDeadline ¶
func (msg MsgSwapForExactTokens) GetDeadline() time.Time
GetDeadline returns the time at which the msg is considered invalid
func (MsgSwapForExactTokens) GetSignBytes ¶
func (msg MsgSwapForExactTokens) GetSignBytes() []byte
GetSignBytes gets the canonical byte representation of the Msg.
func (MsgSwapForExactTokens) GetSigners ¶
func (msg MsgSwapForExactTokens) GetSigners() []sdk.AccAddress
GetSigners returns the addresses of signers that must sign.
func (MsgSwapForExactTokens) Route ¶
func (msg MsgSwapForExactTokens) Route() string
Route return the message type used for routing the message.
func (MsgSwapForExactTokens) Type ¶
func (msg MsgSwapForExactTokens) Type() string
Type returns a human-readable string for the message, intended for utilization within tags.
func (MsgSwapForExactTokens) ValidateBasic ¶
func (msg MsgSwapForExactTokens) ValidateBasic() error
ValidateBasic does a simple validation check that doesn't require access to any other information.
type MsgWithDeadline ¶
type MsgWithDeadline interface { GetDeadline() time.Time DeadlineExceeded(blockTime time.Time) bool }
MsgWithDeadline allows messages to define a deadline of when they are considered invalid
type MsgWithdraw ¶
type MsgWithdraw struct { From sdk.AccAddress `json:"from" yaml:"from"` MinTokenA sdk.Coin `json:"min_token_a" yaml:"min_token_a"` MinTokenB sdk.Coin `json:"min_token_b" yaml:"min_token_b"` Deadline int64 `json:"deadline" yaml:"deadline"` }
MsgWithdraw deposits liquidity into a pool
func NewMsgWithdraw ¶
func NewMsgWithdraw(from sdk.AccAddress, shares sdk.Int, minTokenA, minTokenB sdk.Coin, deadline int64) MsgWithdraw
NewMsgWithdraw returns a new MsgWithdraw
func (MsgWithdraw) DeadlineExceeded ¶
func (msg MsgWithdraw) DeadlineExceeded(blockTime time.Time) bool
DeadlineExceeded returns if the msg has exceeded it's deadline
func (MsgWithdraw) GetDeadline ¶
func (msg MsgWithdraw) GetDeadline() time.Time
GetDeadline returns the time at which the msg is considered invalid
func (MsgWithdraw) GetSignBytes ¶
func (msg MsgWithdraw) GetSignBytes() []byte
GetSignBytes gets the canonical byte representation of the Msg.
func (MsgWithdraw) GetSigners ¶
func (msg MsgWithdraw) GetSigners() []sdk.AccAddress
GetSigners returns the addresses of signers that must sign.
func (MsgWithdraw) Route ¶
func (msg MsgWithdraw) Route() string
Route return the message type used for routing the message.
func (MsgWithdraw) Type ¶
func (msg MsgWithdraw) Type() string
Type returns a human-readable string for the message, intended for utilization within tags.
func (MsgWithdraw) ValidateBasic ¶
func (msg MsgWithdraw) ValidateBasic() error
ValidateBasic does a simple validation check that doesn't require access to any other information.
type Params ¶
type Params struct { AllowedPools AllowedPools `json:"allowed_pools" yaml:"allowed_pools"` SwapFee sdk.Dec `json:"swap_fee" yaml:"swap_fee"` }
Params are governance parameters for the swap module
func DefaultParams ¶
func DefaultParams() Params
DefaultParams returns default params for swap module
func NewParams ¶
func NewParams(pairs AllowedPools, swapFee sdk.Dec) Params
NewParams returns a new params object
func (*Params) ParamSetPairs ¶
func (p *Params) ParamSetPairs() params.ParamSetPairs
ParamSetPairs implements the ParamSet interface and returns all the key/value pairs
type PoolRecord ¶
type PoolRecord struct { // primary key PoolID string `json:"pool_id" yaml:"pool_id"` ReservesA sdk.Coin `json:"reserves_a" yaml:"reserves_a"` ReservesB sdk.Coin `json:"reserves_b" yaml:"reserves_b"` }
PoolRecord represents the state of a liquidity pool and is used to store the state of a denominated pool
func NewPoolRecord ¶
func NewPoolRecord(reserves sdk.Coins, totalShares sdk.Int) PoolRecord
NewPoolRecord takes reserve coins and total shares, returning a new pool record with a id
func NewPoolRecordFromPool ¶
func NewPoolRecordFromPool(pool *DenominatedPool) PoolRecord
NewPoolRecordFromPool takes a pointer to a denominated pool and returns a pool record for storage in state.
func (PoolRecord) Reserves ¶
func (p PoolRecord) Reserves() sdk.Coins
Reserves returns the total reserves for a pool
func (PoolRecord) Validate ¶
func (p PoolRecord) Validate() error
Validate performs basic validation checks of the record data
type PoolRecords ¶
type PoolRecords []PoolRecord
PoolRecords is a slice of PoolRecord
func (PoolRecords) Validate ¶
func (prs PoolRecords) Validate() error
Validate performs basic validation checks on all records in the slice
type PoolStatsQueryResult ¶
type PoolStatsQueryResult struct { Name string `json:"name" yaml:"name"` Coins sdk.Coins `json:"coins" yaml:"coins"` }
PoolStatsQueryResult contains the result of a pool query
func NewPoolStatsQueryResult ¶
func NewPoolStatsQueryResult(name string, coins sdk.Coins, totalShares sdk.Int) PoolStatsQueryResult
NewPoolStatsQueryResult creates a new PoolStatsQueryResult
type PoolStatsQueryResults ¶
type PoolStatsQueryResults []PoolStatsQueryResult
PoolStatsQueryResults is a slice of PoolStatsQueryResult
type QueryDepositsParams ¶
type QueryDepositsParams struct { Page int `json:"page" yaml:"page"` Limit int `json:"limit" yaml:"limit"` Owner sdk.AccAddress `json:"owner" yaml:"owner"` Pool string `json:"pool" yaml:"pool"` }
QueryDepositsParams is the params for a filtered deposits query
func NewQueryDepositsParams ¶
func NewQueryDepositsParams(page, limit int, owner sdk.AccAddress, pool string) QueryDepositsParams
NewQueryDepositsParams creates a new QueryDepositsParams
type QueryPoolParams ¶
type QueryPoolParams struct {
Pool string `json:"pool" yaml:"pool"`
}
QueryPoolParams is the params for a pool query
func NewQueryPoolParams ¶
func NewQueryPoolParams(pool string) QueryPoolParams
NewQueryPoolParams creates a new QueryPoolParams
type ShareRecord ¶
type ShareRecord struct { sdk.AccAddress `json:"depositor" yaml:"depositor"` // secondary / sort key }Depositor
ShareRecord stores the shares owned for a depositor and pool
func NewShareRecord ¶
func NewShareRecord(depositor sdk.AccAddress, poolID string, sharesOwned sdk.Int) ShareRecord
NewShareRecord takes a depositor, poolID, and shares and returns a new share record for storage in state.
func (ShareRecord) Validate ¶
func (sr ShareRecord) Validate() error
Validate performs basic validation checks of the record data
type ShareRecords ¶
type ShareRecords []ShareRecord
ShareRecords is a slice of ShareRecord
func (ShareRecords) Validate ¶
func (srs ShareRecords) Validate() error
Validate performs basic validation checks on all records in the slice
type SupplyKeeper ¶
type SupplyKeeper interface { GetModuleAddress(name string) sdk.AccAddress GetModuleAccount(ctx sdk.Context, name string) exported.ModuleAccountI SendCoinsFromModuleToModule(ctx sdk.Context, senderModule, recipientModule string, amt sdk.Coins) error SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error }
SupplyKeeper defines the expected supply keeper (noalias)
type SwapHooks ¶
type SwapHooks interface { AfterPoolDepositCreated(ctx sdk.Context, poolID string, depositor sdk.AccAddress, sharedOwned sdk.Int) BeforePoolDepositModified(ctx sdk.Context, poolID string, depositor sdk.AccAddress, sharedOwned sdk.Int) }
SwapHooks are event hooks called when a user's deposit to a swap pool changes.