types

package
v0.2.17 Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2020 License: BSD-2-Clause Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MinTokenPricePrecision           = 0
	MaxTokenPricePrecision           = 18
	LimitOrder             OrderType = 2
	SymbolSeparator                  = dex.SymbolSeparator
	OrderIDSeparator                 = "-"
	ExtraFrozenMoney                 = 0 // 100
	OrderIDPartsNum                  = 2
)
View Source
const (
	BID = 1
	BUY = 1

	ASK  = 2
	SELL = 2
)
View Source
const (
	DecByteCount = 40 // Dec's BitLen would not be larger than 255+60, so 40 bytes are enough
	GTE          = 3
	IOC          = 4
	LIMIT        = 2
)
View Source
const (
	IntegrationNetSubString       = "coinex-integrationtest"
	MaxOrderAmount          int64 = 1e18
	MaxOrderPrecision       byte  = 8
)
View Source
const (
	CodeSpaceMarket sdk.CodespaceType = "market"

	// 601 ~ 699
	CodeInvalidToken           sdk.CodeType = 601
	CodeInvalidPricePrecision  sdk.CodeType = 602
	CodeInvalidTokenIssuer     sdk.CodeType = 603
	CodeInvalidPrice           sdk.CodeType = 604
	CodeInvalidAddress         sdk.CodeType = 606
	CodeNotExistKeyInStore     sdk.CodeType = 607
	CodeInsufficientCoin       sdk.CodeType = 608
	CodeInvalidTradeSide       sdk.CodeType = 609
	CodeInvalidOrderType       sdk.CodeType = 610
	CodeInvalidSymbol          sdk.CodeType = 611
	CodeTokenForbidByIssuer    sdk.CodeType = 612
	CodeInvalidOrderID         sdk.CodeType = 613
	CodeMarshalFailed          sdk.CodeType = 614
	CodeOrderNotFound          sdk.CodeType = 616
	CodeNotMatchSender         sdk.CodeType = 617
	CodeInvalidCancelTime      sdk.CodeType = 618
	CodeAddressForbidByIssuer  sdk.CodeType = 619
	CodeInvalidOrderCommission sdk.CodeType = 620
	CodeNotListedAgainstCet    sdk.CodeType = 621
	CodeRepeatTradingPair      sdk.CodeType = 622
	CodeDelistNotAllowed       sdk.CodeType = 623
	CodeInvalidOrderAmount     sdk.CodeType = 624
	CodeInvalidExistBlocks     sdk.CodeType = 626
	CodeInvalidTimeInForce     sdk.CodeType = 627
	CodeOrderAlreadyExist      sdk.CodeType = 630
	CodeDelistRequestExist     sdk.CodeType = 632
	CodeInvalidMarket          sdk.CodeType = 633
)
View Source
const (
	// RouterKey = "market"
	// StoreKey  = RouterKey
	// Topic     = RouterKey
	// Query
	// ModuleName is the name of the module
	ModuleName = "market"

	// StoreKey is string representation of the store key for asset
	StoreKey = ModuleName

	// RouterKey is the message route for asset
	RouterKey = ModuleName

	// QuerierRoute is the querier route for asset
	QuerierRoute = ModuleName

	DefaultParamspace = ModuleName

	// Kafka topic name
	Topic = ModuleName
)
View Source
const (
	// msg keys for Kafka
	CreateMarketInfoKey = "create_market_info"
	CancelMarketInfoKey = "cancel_market_info"
	CreateOrderInfoKey  = "create_order_info"
	FillOrderInfoKey    = "fill_order_info"
	CancelOrderInfoKey  = "del_order_info"
)

RouterKey is the name of the market module

View Source
const (
	CancelOrderByManual        = "Manually cancel the order"
	CancelOrderByAllFilled     = "The order was fully filled"
	CancelOrderByGteTimeOut    = "GTE order timeout"
	CancelOrderByIocType       = "IOC order cancel "
	CancelOrderByNoEnoughMoney = "Insufficient freeze money"
	CancelOrderByNotKnow       = "Don't know"
)

cancel order of reasons

View Source
const (
	DefaultCreateMarketFee             = 1e10 // 100 * 10 ^8
	DefaultGTEOrderLifetime            = 200000
	DefaultGTEOrderFeatureFeeByBlocks  = 10
	DefaultMaxExecutedPriceChangeRatio = 25
	DefaultMarketFeeRatePrecision      = 4
	DefaultMarketFeeRate               = 10
	DefaultMarketFeeMin                = 1000000
	DefaultFeeForZeroDeal              = 1000000
	DefaultMarketMinExpiredTime        = 7 * 24 * time.Hour
)

Variables

View Source
var (
	KeyCreateMarketFee = []byte("CreateMarketFee")

	KeyGTEOrderLifetime            = []byte("GTEOrderLifetime")
	KeyGTEOrderFeatureFeeByBlocks  = []byte("GTEOrderFeatureFeeByBlocks")
	KeyMaxExecutedPriceChangeRatio = []byte("MaxExecutedPriceChangeRatio")
	KeyMarketFeeRate               = []byte("MarketFeeRate")
	KeyMarketFeeMin                = []byte("MarketFeeMin")
	KeyFeeForZeroDeal              = []byte("FeeForZeroDeal")
)
View Source
var ModuleCdc = codec.New()

Functions

func AssemblyOrderID

func AssemblyOrderID(userAddr string, seq uint64, identify byte) string

func DecToBigEndianBytes

func DecToBigEndianBytes(d sdk.Dec) []byte

func ErrAddressForbidByIssuer

func ErrAddressForbidByIssuer() sdk.Error

func ErrDelistNotAllowed

func ErrDelistNotAllowed(s string) sdk.Error

func ErrDelistRequestExist

func ErrDelistRequestExist(market string) sdk.Error

func ErrFailedMarshal

func ErrFailedMarshal() sdk.Error

func ErrFailedParseParam

func ErrFailedParseParam() sdk.Error

func ErrInsufficientCoins

func ErrInsufficientCoins() sdk.Error

func ErrInvalidAddress

func ErrInvalidAddress() sdk.Error

func ErrInvalidCancelTime

func ErrInvalidCancelTime() sdk.Error

func ErrInvalidExistBlocks

func ErrInvalidExistBlocks(eb int64) sdk.Error

func ErrInvalidMarket

func ErrInvalidMarket(s string) sdk.Error

func ErrInvalidOrderAmount

func ErrInvalidOrderAmount(s string) sdk.Error

func ErrInvalidOrderCommission

func ErrInvalidOrderCommission(err string) sdk.Error

func ErrInvalidOrderID

func ErrInvalidOrderID() sdk.Error

func ErrInvalidOrderType

func ErrInvalidOrderType() sdk.Error

func ErrInvalidPrice

func ErrInvalidPrice(price int64) sdk.Error

func ErrInvalidPricePrecision

func ErrInvalidPricePrecision(precision byte) sdk.Error

func ErrInvalidSymbol

func ErrInvalidSymbol() sdk.Error

func ErrInvalidTimeInForce

func ErrInvalidTimeInForce(tif int64) sdk.Error

func ErrInvalidTokenIssuer

func ErrInvalidTokenIssuer() sdk.Error

func ErrInvalidTradeSide

func ErrInvalidTradeSide() sdk.Error

func ErrNoExistKeyInStore

func ErrNoExistKeyInStore() sdk.Error

func ErrNotListedAgainstCet

func ErrNotListedAgainstCet(stock string) sdk.Error

func ErrNotMatchSender

func ErrNotMatchSender(s string) sdk.Error

func ErrOrderAlreadyExist

func ErrOrderAlreadyExist(id string) sdk.Error

func ErrOrderAmountTooSmall

func ErrOrderAmountTooSmall(err string) sdk.Error

func ErrOrderNotFound

func ErrOrderNotFound(id string) sdk.Error

func ErrRepeatTradingPair

func ErrRepeatTradingPair() sdk.Error

func ErrStockAndMoneyAreSame

func ErrStockAndMoneyAreSame() sdk.Error

func ErrTokenForbidByIssuer

func ErrTokenForbidByIssuer() sdk.Error

func ErrTokenNoExist

func ErrTokenNoExist() sdk.Error

func GetGranularityOfOrder

func GetGranularityOfOrder(orderPrecision byte) int64

func IsValidTradingPair

func IsValidTradingPair(tokens []string) bool

func ParamKeyTable

func ParamKeyTable() params.KeyTable

ParamKeyTable for market module

func RegisterCodec

func RegisterCodec(cdc *codec.Codec)

func ValidateOrderID

func ValidateOrderID(id string) sdk.Error

Types

type CancelMarketInfo

type CancelMarketInfo struct {
	Stock string `json:"stock"`
	Money string `json:"money"`

	// del market info
	Deleter string `json:"deleter"`
	DelTime int64  `json:"del_time"`
}

type CancelOrderInfo

type CancelOrderInfo struct {
	OrderID     string  `json:"order_id"`
	TradingPair string  `json:"trading_pair"`
	Height      int64   `json:"height"`
	Side        byte    `json:"side"`
	Price       sdk.Dec `json:"price"`

	// Del infos
	DelReason string `json:"del_reason"`

	// Fields of amount
	UsedCommission    int64  `json:"used_commission"`
	UsedFeatureFee    int64  `json:"used_feature_fee"`
	RebateAmount      int64  `json:"rebate_amount"`
	RebateRefereeAddr string `json:"rebate_referee_addr"`
	LeftStock         int64  `json:"left_stock"`
	RemainAmount      int64  `json:"remain_amount"`
	DealStock         int64  `json:"deal_stock"`
	DealMoney         int64  `json:"deal_money"`
}

type CreateMarketInfo

type CreateMarketInfo struct {
	Stock          string `json:"stock"`
	Money          string `json:"money"`
	PricePrecision byte   `json:"price_precision"`

	// create market info
	Creator      string `json:"creator"`
	CreateHeight int64  `json:"create_height"`
}

type CreateOrderInfo

type CreateOrderInfo struct {
	OrderID          string  `json:"order_id"`
	Sender           string  `json:"sender"`
	TradingPair      string  `json:"trading_pair"`
	OrderType        byte    `json:"order_type"`
	Price            sdk.Dec `json:"price"`
	Quantity         int64   `json:"quantity"`
	Side             byte    `json:"side"`
	TimeInForce      int64   `json:"time_in_force"`
	Height           int64   `json:"height"`
	FrozenCommission int64   `json:"frozen_commission"`
	FrozenFeatureFee int64   `json:"frozen_feature_fee"`
	Freeze           int64   `json:"freeze"`
}

type ExpectedAssetStatusKeeper

type ExpectedAssetStatusKeeper interface {
	IsTokenForbidden(ctx sdk.Context, denom string) bool // the coin's issuer has forbidden "denom", forbiding transmission and exchange.
	IsTokenExists(ctx sdk.Context, denom string) bool    // check whether there is a coin named "denom"
	IsTokenIssuer(ctx sdk.Context, denom string, addr sdk.AccAddress) bool
	IsForbiddenByTokenIssuer(ctx sdk.Context, denom string, addr sdk.AccAddress) bool
	GetToken(ctx sdk.Context, symbol string) asset.Token
}

Asset Keeper will implement the interface

type ExpectedAuthXKeeper

type ExpectedAuthXKeeper interface {
	GetRefereeAddr(ctx sdk.Context, accAddr sdk.AccAddress) sdk.AccAddress
	GetRebateRatio(ctx sdk.Context) int64
	GetRebateRatioBase(ctx sdk.Context) int64
}

type ExpectedBankxKeeper

type ExpectedBankxKeeper interface {
	SubtractCoins(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coins) sdk.Error
	DeductInt64CetFee(ctx sdk.Context, addr sdk.AccAddress, amt int64) sdk.Error
	HasCoins(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coins) bool                          // to check whether have sufficient coins in special address
	SendCoins(ctx sdk.Context, from sdk.AccAddress, to sdk.AccAddress, amt sdk.Coins) sdk.Error // to tranfer coins
	FreezeCoins(ctx sdk.Context, acc sdk.AccAddress, amt sdk.Coins) sdk.Error                   // freeze some coins when creating orders
	UnFreezeCoins(ctx sdk.Context, acc sdk.AccAddress, amt sdk.Coins) sdk.Error                 // unfreeze coins and then orders can be executed
}

Bankx Keeper will implement the interface

type ExpectedChargeFeeKeeper

type ExpectedChargeFeeKeeper interface {
	SubtractFeeAndCollectFee(ctx sdk.Context, addr sdk.AccAddress, amt int64) sdk.Error
}

type FillOrderInfo

type FillOrderInfo struct {
	OrderID     string  `json:"order_id"`
	TradingPair string  `json:"trading_pair"`
	Height      int64   `json:"height"`
	Side        byte    `json:"side"`
	Price       sdk.Dec `json:"price"`

	// These fields will change when order was filled/canceled.
	LeftStock int64   `json:"left_stock"`
	Freeze    int64   `json:"freeze"`
	DealStock int64   `json:"deal_stock"`
	DealMoney int64   `json:"deal_money"`
	CurrStock int64   `json:"curr_stock"`
	CurrMoney int64   `json:"curr_money"`
	FillPrice sdk.Dec `json:"fill_price"`
}

type MarketInfo

type MarketInfo struct {
	Stock             string  `json:"stock"`
	Money             string  `json:"money"`
	PricePrecision    byte    `json:"price_precision"`
	LastExecutedPrice sdk.Dec `json:"last_executed_price"`
	OrderPrecision    byte    `json:"order_precision"`
}

func (MarketInfo) GetSymbol

func (msg MarketInfo) GetSymbol() string

type ModifyPricePrecisionInfo

type ModifyPricePrecisionInfo struct {
	Sender            string `json:"sender"`
	TradingPair       string `json:"trading_pair"`
	OldPricePrecision byte   `json:"old_price_precision"`
	NewPricePrecision byte   `json:"new_price_precision"`
}

type MsgCancelOrder

type MsgCancelOrder struct {
	Sender  sdk.AccAddress `json:"sender"`
	OrderID string         `json:"order_id"`
}

func (MsgCancelOrder) GetSignBytes

func (msg MsgCancelOrder) GetSignBytes() []byte

func (MsgCancelOrder) GetSigners

func (msg MsgCancelOrder) GetSigners() []sdk.AccAddress

func (MsgCancelOrder) Route

func (msg MsgCancelOrder) Route() string

func (*MsgCancelOrder) SetAccAddress

func (msg *MsgCancelOrder) SetAccAddress(address sdk.AccAddress)

func (MsgCancelOrder) Type

func (msg MsgCancelOrder) Type() string

func (MsgCancelOrder) ValidateBasic

func (msg MsgCancelOrder) ValidateBasic() sdk.Error

type MsgCancelTradingPair

type MsgCancelTradingPair struct {
	Sender        sdk.AccAddress `json:"sender"`
	TradingPair   string         `json:"trading_pair"`
	EffectiveTime int64          `json:"effective_time"`
}

func (MsgCancelTradingPair) GetSignBytes

func (msg MsgCancelTradingPair) GetSignBytes() []byte

func (MsgCancelTradingPair) GetSigners

func (msg MsgCancelTradingPair) GetSigners() []sdk.AccAddress

func (MsgCancelTradingPair) Route

func (msg MsgCancelTradingPair) Route() string

func (*MsgCancelTradingPair) SetAccAddress

func (msg *MsgCancelTradingPair) SetAccAddress(address sdk.AccAddress)

func (MsgCancelTradingPair) Type

func (msg MsgCancelTradingPair) Type() string

func (MsgCancelTradingPair) ValidateBasic

func (msg MsgCancelTradingPair) ValidateBasic() sdk.Error

type MsgCreateOrder

type MsgCreateOrder struct {
	Sender         sdk.AccAddress `json:"sender"`
	Identify       byte           `json:"identify"`
	TradingPair    string         `json:"trading_pair"`
	OrderType      byte           `json:"order_type"`
	PricePrecision byte           `json:"price_precision"`
	Price          int64          `json:"price"`
	Quantity       int64          `json:"quantity"`
	Side           byte           `json:"side"`
	TimeInForce    int64          `json:"time_in_force"`
	ExistBlocks    int64          `json:"exist_blocks"`
}

func (MsgCreateOrder) GetSignBytes

func (msg MsgCreateOrder) GetSignBytes() []byte

func (MsgCreateOrder) GetSigners

func (msg MsgCreateOrder) GetSigners() []sdk.AccAddress

func (MsgCreateOrder) IsGTEOrder

func (msg MsgCreateOrder) IsGTEOrder() bool

func (MsgCreateOrder) Route

func (msg MsgCreateOrder) Route() string

func (*MsgCreateOrder) SetAccAddress

func (msg *MsgCreateOrder) SetAccAddress(address sdk.AccAddress)

func (MsgCreateOrder) Type

func (msg MsgCreateOrder) Type() string

func (MsgCreateOrder) ValidateBasic

func (msg MsgCreateOrder) ValidateBasic() sdk.Error

type MsgCreateTradingPair

type MsgCreateTradingPair struct {
	Stock          string         `json:"stock"`
	Money          string         `json:"money"`
	Creator        sdk.AccAddress `json:"creator"`
	PricePrecision byte           `json:"price_precision"`
	OrderPrecision byte           `json:"order_precision"`
}

func NewMsgCreateTradingPair

func NewMsgCreateTradingPair(stock, money string, creator sdk.AccAddress, pricePrecision byte, orderPrecision byte) MsgCreateTradingPair

func (MsgCreateTradingPair) GetSignBytes

func (msg MsgCreateTradingPair) GetSignBytes() []byte

func (MsgCreateTradingPair) GetSigners

func (msg MsgCreateTradingPair) GetSigners() []sdk.AccAddress

func (MsgCreateTradingPair) GetSymbol

func (msg MsgCreateTradingPair) GetSymbol() string

func (MsgCreateTradingPair) Route

func (msg MsgCreateTradingPair) Route() string

func (*MsgCreateTradingPair) SetAccAddress

func (msg *MsgCreateTradingPair) SetAccAddress(address sdk.AccAddress)

func (MsgCreateTradingPair) Type

func (msg MsgCreateTradingPair) Type() string

func (MsgCreateTradingPair) ValidateBasic

func (msg MsgCreateTradingPair) ValidateBasic() sdk.Error

type MsgModifyPricePrecision

type MsgModifyPricePrecision struct {
	Sender         sdk.AccAddress `json:"sender"`
	TradingPair    string         `json:"trading_pair"`
	PricePrecision byte           `json:"price_precision"`
}

func (MsgModifyPricePrecision) GetSignBytes

func (msg MsgModifyPricePrecision) GetSignBytes() []byte

func (MsgModifyPricePrecision) GetSigners

func (msg MsgModifyPricePrecision) GetSigners() []sdk.AccAddress

func (MsgModifyPricePrecision) Route

func (msg MsgModifyPricePrecision) Route() string

func (*MsgModifyPricePrecision) SetAccAddress

func (msg *MsgModifyPricePrecision) SetAccAddress(address sdk.AccAddress)

func (MsgModifyPricePrecision) Type

func (msg MsgModifyPricePrecision) Type() string

func (MsgModifyPricePrecision) ValidateBasic

func (msg MsgModifyPricePrecision) ValidateBasic() sdk.Error

type Order

type Order struct {
	Sender           sdk.AccAddress `json:"sender"`
	Sequence         uint64         `json:"sequence"`
	Identify         byte           `json:"identify"`
	TradingPair      string         `json:"trading_pair"`
	OrderType        byte           `json:"order_type"`
	Price            sdk.Dec        `json:"price"`
	Quantity         int64          `json:"quantity"`
	Side             byte           `json:"side"`
	TimeInForce      int64          `json:"time_in_force"`
	Height           int64          `json:"height"`
	FrozenCommission int64          `json:"frozen_commission"` // DEX2
	ExistBlocks      int64          `json:"exist_blocks"`
	FrozenFeatureFee int64          `json:"frozen_feature_fee"`   // DEX2
	FrozenFee        int64          `json:"frozen_fee,omitempty"` // DEX2: -> frozen_commission

	// These fields will change when order was filled/canceled.
	LeftStock int64 `json:"left_stock"`
	Freeze    int64 `json:"freeze"`
	DealStock int64 `json:"deal_stock"`
	DealMoney int64 `json:"deal_money"`
}

func (*Order) CalActualOrderCommissionInt64

func (or *Order) CalActualOrderCommissionInt64(feeForZeroDeal int64) int64

func (*Order) CalActualOrderFeatureFeeInt64

func (or *Order) CalActualOrderFeatureFeeInt64(ctx sdk.Context, freeTimeBlocks int64) int64

func (*Order) GetOrderUsedDenom

func (or *Order) GetOrderUsedDenom() string

func (*Order) OrderID

func (or *Order) OrderID() string

type OrderType

type OrderType = byte

type Params

type Params struct {
	CreateMarketFee             int64 `json:"create_market_fee"`
	MarketMinExpiredTime        int64 `json:"market_min_expired_time"`
	GTEOrderLifetime            int64 `json:"gte_order_lifetime"`
	GTEOrderFeatureFeeByBlocks  int64 `json:"gte_order_feature_fee_by_blocks"`
	MaxExecutedPriceChangeRatio int64 `json:"max_executed_price_change_ratio"`
	MarketFeeRate               int64 `json:"market_fee_rate"`
	MarketFeeMin                int64 `json:"market_fee_min"`
	FeeForZeroDeal              int64 `json:"fee_for_zero_deal"`
}

func DefaultParams

func DefaultParams() Params

DefaultParams returns a default set of parameters.

func (Params) Equal

func (p Params) Equal(p2 Params) bool

Equal returns a boolean determining if two Params types are identical.

func (*Params) ParamSetPairs

func (p *Params) ParamSetPairs() params.ParamSetPairs

ParamSetPairs implements the ParamSet interface and returns all the key/value pairs pairs of asset module's parameters. nolint

func (Params) String

func (p Params) String() string

func (*Params) ValidateGenesis

func (p *Params) ValidateGenesis() error

Jump to

Keyboard shortcuts

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