types

package
v0.2.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 23, 2022 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EventSnapshotSaved    = "reserve_snapshot_saved"
	AttributeBlockHeight  = "block_height"
	AttributeQuoteReserve = "quote_reserve"
	AttributeBaseReserve  = "base_reserve"

	EventSwapQuoteForBase     = "swap_input"
	EventSwapBaseForQuote     = "swap_output"
	AttributeQuoteAssetAmount = "quote_asset_amount"
	AttributeBaseAssetAmount  = "base_asset_amount"
)
View Source
const (
	ModuleName = "vpool"
	StoreKey   = "vpoolkey"
)

Variables

View Source
var (
	ErrPairNotSupported     = sdkerrors.Register(ModuleName, 1, "pair not supported")
	ErrOverTradingLimit     = sdkerrors.Register(ModuleName, 2, "over trading limit")
	ErrQuoteReserveAtZero   = sdkerrors.Register(ModuleName, 3, "quote reserve after at zero")
	ErrBaseReserveAtZero    = sdkerrors.Register(ModuleName, 4, "base reserve after at zero")
	ErrNoLastSnapshotSaved  = sdkerrors.Register(ModuleName, 5, "There was no last snapshot, could be that you did not do snapshot on pool creation")
	ErrOverFluctuationLimit = sdkerrors.Register(ModuleName, 6, "price is over fluctuation limit")
	ErrAssetOverUserLimit   = sdkerrors.Register(ModuleName, 7, "amout of assets traded is over user-defined limit")
)
View Source
var (
	PoolKey                    = []byte{0x00}
	PoolReserveSnapshotCounter = []byte{0x01}
	PoolReserveSnapshots       = []byte{0x02}
)

PoolKey | 0x00 + PairString | The Pool struct PoolReserveSnapshotCounter | 0x01 + PairString | Integer PoolReserveSnapshots | 0x02 + PairString + Counter | Snapshot

View Source
var (
	ErrInvalidLengthVpool        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowVpool          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupVpool = fmt.Errorf("proto: unexpected end of group")
)
View Source
var Direction_name = map[int32]string{
	0: "ADD_TO_POOL",
	1: "REMOVE_FROM_POOL",
}
View Source
var Direction_value = map[string]int32{
	"ADD_TO_POOL":      0,
	"REMOVE_FROM_POOL": 1,
}
View Source
var TwapCalcOption_name = map[int32]string{
	0: "SPOT",
	1: "QUOTE_ASSET_SWAP",
	2: "BASE_ASSET_SWAP",
}
View Source
var TwapCalcOption_value = map[string]int32{
	"SPOT":             0,
	"QUOTE_ASSET_SWAP": 1,
	"BASE_ASSET_SWAP":  2,
}

Functions

func GetPoolKey

func GetPoolKey(pair common.TokenPair) []byte

GetPoolKey returns pool key for KVStore

func GetSnapshotCounterKey

func GetSnapshotCounterKey(pair common.TokenPair) []byte

GetSnapshotCounterKey returns the KVStore for the Snapshot Pool counters.

func GetSnapshotKey

func GetSnapshotKey(pair common.TokenPair, counter uint64) []byte

GetSnapshotKey returns the KVStore for the pool reserve snapshots.

Types

type Direction

type Direction int32
const (
	Direction_ADD_TO_POOL      Direction = 0
	Direction_REMOVE_FROM_POOL Direction = 1
)

func (Direction) EnumDescriptor

func (Direction) EnumDescriptor() ([]byte, []int)

func (Direction) String

func (x Direction) String() string

type Pool

type Pool struct {
	// always BASE:QUOTE, e.g. BTC:NUSD or ETH:NUSD
	Pair string `protobuf:"bytes,1,opt,name=pair,proto3" json:"pair,omitempty"`
	// base asset is the crypto asset, e.g. BTC or ETH
	BaseAssetReserve github_com_cosmos_cosmos_sdk_types.Dec `` /* 151-byte string literal not displayed */
	// quote asset is usually stablecoin, in our case NUSD
	QuoteAssetReserve github_com_cosmos_cosmos_sdk_types.Dec `` /* 154-byte string literal not displayed */
	// ratio applied to reserves in order not to over trade
	TradeLimitRatio github_com_cosmos_cosmos_sdk_types.Dec `` /* 148-byte string literal not displayed */
	// percentage that a single open or close position can alter the reserve amounts
	FluctuationLimitRatio github_com_cosmos_cosmos_sdk_types.Dec `` /* 166-byte string literal not displayed */
	// max_oracle_spread_ratio
	MaxOracleSpreadRatio github_com_cosmos_cosmos_sdk_types.Dec `` /* 165-byte string literal not displayed */
}

A virtual pool used only for price discovery of perpetual futures contracts. No real liquidity exists in this pool.

func NewPool

func NewPool(
	pair string,
	tradeLimitRatio sdk.Dec,
	quoteAssetReserve sdk.Dec,
	baseAssetReserve sdk.Dec,
	fluctuationLimitRatio sdk.Dec,
	maxOracleSpreadRatio sdk.Dec,
) *Pool

func (*Pool) DecreaseBaseAssetReserve

func (p *Pool) DecreaseBaseAssetReserve(amount sdk.Dec)

DecreaseBaseAssetReserve descreases the quote asset reserve by amount

func (*Pool) DecreaseQuoteAssetReserve

func (p *Pool) DecreaseQuoteAssetReserve(amount sdk.Dec)

DecreaseQuoteAssetReserve decreases the base reserve by amount

func (*Pool) Descriptor

func (*Pool) Descriptor() ([]byte, []int)

func (*Pool) GetBaseAmountByQuoteAmount

func (p *Pool) GetBaseAmountByQuoteAmount(
	dir Direction,
	quoteAmount sdk.Dec,
) (baseAmount sdk.Dec, err error)

GetBaseAmountByQuoteAmount returns the amount of base asset you will get out by giving a specified amount of quote asset

args:

  • dir: add to pool or remove from pool
  • quoteAmount: the amount of quote asset to add to/remove from the pool

ret:

  • baseAmountOut: the amount of base assets required to make this hypothetical swap always an absolute value
  • err: error

func (*Pool) GetPair

func (m *Pool) GetPair() string

func (*Pool) GetQuoteAmountByBaseAmount

func (p *Pool) GetQuoteAmountByBaseAmount(
	dir Direction, baseAmount sdk.Dec,
) (quoteAmount sdk.Dec, err error)

GetQuoteAmountByBaseAmount returns the amount of quote asset you will get out by giving a specified amount of base asset

args:

  • dir: add to pool or remove from pool
  • baseAmount: the amount of base asset to add to/remove from the pool

ret:

  • quoteAmountOut: the amount of quote assets required to make this hypothetical swap always an absolute value
  • err: error

func (*Pool) HasEnoughBaseReserve

func (p *Pool) HasEnoughBaseReserve(baseAmount sdk.Dec) bool

HasEnoughBaseReserve returns true if there is enough base reserve based on baseReserve * tradeLimitRatio

func (*Pool) HasEnoughQuoteReserve

func (p *Pool) HasEnoughQuoteReserve(quoteAmount sdk.Dec) bool

HasEnoughQuoteReserve returns true if there is enough quote reserve based on quoteReserve * tradeLimitRatio

func (*Pool) IncreaseBaseAssetReserve

func (p *Pool) IncreaseBaseAssetReserve(amount sdk.Dec)

IncreaseBaseAssetReserve increases the quote reserve by amount

func (*Pool) IncreaseQuoteAssetReserve

func (p *Pool) IncreaseQuoteAssetReserve(amount sdk.Dec)

func (*Pool) Marshal

func (m *Pool) Marshal() (dAtA []byte, err error)

func (*Pool) MarshalTo

func (m *Pool) MarshalTo(dAtA []byte) (int, error)

func (*Pool) MarshalToSizedBuffer

func (m *Pool) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Pool) ProtoMessage

func (*Pool) ProtoMessage()

func (*Pool) Reset

func (m *Pool) Reset()

func (*Pool) Size

func (m *Pool) Size() (n int)

func (*Pool) String

func (m *Pool) String() string

func (*Pool) Unmarshal

func (m *Pool) Unmarshal(dAtA []byte) error

func (*Pool) XXX_DiscardUnknown

func (m *Pool) XXX_DiscardUnknown()

func (*Pool) XXX_Marshal

func (m *Pool) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Pool) XXX_Merge

func (m *Pool) XXX_Merge(src proto.Message)

func (*Pool) XXX_Size

func (m *Pool) XXX_Size() int

func (*Pool) XXX_Unmarshal

func (m *Pool) XXX_Unmarshal(b []byte) error

type PricefeedKeeper

type PricefeedKeeper interface {
	GetCurrentPrice(ctx sdk.Context, token0 string, token1 string) (
		pftypes.CurrentPrice, error,
	)
}

type ReserveSnapshot

type ReserveSnapshot struct {
	BaseAssetReserve github_com_cosmos_cosmos_sdk_types.Dec `` /* 151-byte string literal not displayed */
	// quote asset is usually the margin asset, e.g. NUSD
	QuoteAssetReserve github_com_cosmos_cosmos_sdk_types.Dec `` /* 154-byte string literal not displayed */
	// milliseconds since unix epoch
	TimestampMs int64 `protobuf:"varint,3,opt,name=timestamp_ms,json=timestampMs,proto3" json:"timestamp_ms,omitempty"`
	BlockNumber int64 `protobuf:"varint,4,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"`
}

a snapshot of the vpool's reserves at a given point in time

func (*ReserveSnapshot) Descriptor

func (*ReserveSnapshot) Descriptor() ([]byte, []int)

func (*ReserveSnapshot) GetBlockNumber

func (m *ReserveSnapshot) GetBlockNumber() int64

func (*ReserveSnapshot) GetTimestampMs

func (m *ReserveSnapshot) GetTimestampMs() int64

func (*ReserveSnapshot) Marshal

func (m *ReserveSnapshot) Marshal() (dAtA []byte, err error)

func (*ReserveSnapshot) MarshalTo

func (m *ReserveSnapshot) MarshalTo(dAtA []byte) (int, error)

func (*ReserveSnapshot) MarshalToSizedBuffer

func (m *ReserveSnapshot) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*ReserveSnapshot) ProtoMessage

func (*ReserveSnapshot) ProtoMessage()

func (*ReserveSnapshot) Reset

func (m *ReserveSnapshot) Reset()

func (*ReserveSnapshot) Size

func (m *ReserveSnapshot) Size() (n int)

func (*ReserveSnapshot) String

func (m *ReserveSnapshot) String() string

func (*ReserveSnapshot) Unmarshal

func (m *ReserveSnapshot) Unmarshal(dAtA []byte) error

func (*ReserveSnapshot) XXX_DiscardUnknown

func (m *ReserveSnapshot) XXX_DiscardUnknown()

func (*ReserveSnapshot) XXX_Marshal

func (m *ReserveSnapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ReserveSnapshot) XXX_Merge

func (m *ReserveSnapshot) XXX_Merge(src proto.Message)

func (*ReserveSnapshot) XXX_Size

func (m *ReserveSnapshot) XXX_Size() int

func (*ReserveSnapshot) XXX_Unmarshal

func (m *ReserveSnapshot) XXX_Unmarshal(b []byte) error

type TwapCalcOption

type TwapCalcOption int32

Enumerates different options of calculating twap.

const (
	// Spot price from quote asset reserve / base asset reserve
	TwapCalcOption_SPOT TwapCalcOption = 0
	// Swapping with quote assets, output denominated in base assets
	TwapCalcOption_QUOTE_ASSET_SWAP TwapCalcOption = 1
	// Swapping with base assets, output denominated in quote assets
	TwapCalcOption_BASE_ASSET_SWAP TwapCalcOption = 2
)

func (TwapCalcOption) EnumDescriptor

func (TwapCalcOption) EnumDescriptor() ([]byte, []int)

func (TwapCalcOption) String

func (x TwapCalcOption) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL