Documentation ¶
Index ¶
- Constants
- Variables
- func AssemblyOrderID(userAddr string, seq uint64, identify byte) string
- func DecToBigEndianBytes(d sdk.Dec) []byte
- func ErrAddressForbidByIssuer() sdk.Error
- func ErrDelistNotAllowed(s string) sdk.Error
- func ErrDelistRequestExist(market string) sdk.Error
- func ErrFailedMarshal() sdk.Error
- func ErrFailedParseParam() sdk.Error
- func ErrInsufficientCoins() sdk.Error
- func ErrInvalidAddress() sdk.Error
- func ErrInvalidCancelTime() sdk.Error
- func ErrInvalidExistBlocks(eb int64) sdk.Error
- func ErrInvalidMarket(s string) sdk.Error
- func ErrInvalidOrderAmount(s string) sdk.Error
- func ErrInvalidOrderCommission(err string) sdk.Error
- func ErrInvalidOrderID() sdk.Error
- func ErrInvalidOrderType() sdk.Error
- func ErrInvalidPrice(price int64) sdk.Error
- func ErrInvalidPricePrecision(precision byte) sdk.Error
- func ErrInvalidSymbol() sdk.Error
- func ErrInvalidTimeInForce(tif int64) sdk.Error
- func ErrInvalidTokenIssuer() sdk.Error
- func ErrInvalidTradeSide() sdk.Error
- func ErrNoExistKeyInStore() sdk.Error
- func ErrNotListedAgainstCet(stock string) sdk.Error
- func ErrNotMatchSender(s string) sdk.Error
- func ErrOrderAlreadyExist(id string) sdk.Error
- func ErrOrderAmountTooSmall(err string) sdk.Error
- func ErrOrderNotFound(id string) sdk.Error
- func ErrRepeatTradingPair() sdk.Error
- func ErrStockAndMoneyAreSame() sdk.Error
- func ErrTokenForbidByIssuer() sdk.Error
- func ErrTokenNoExist() sdk.Error
- func GetGranularityOfOrder(orderPrecision byte) int64
- func IsValidTradingPair(tokens []string) bool
- func ParamKeyTable() params.KeyTable
- func RegisterCodec(cdc *codec.Codec)
- func ValidateOrderID(id string) sdk.Error
- type CancelMarketInfo
- type CancelOrderInfo
- type CreateMarketInfo
- type CreateOrderInfo
- type ExpectedAssetStatusKeeper
- type ExpectedAuthXKeeper
- type ExpectedBankxKeeper
- type ExpectedChargeFeeKeeper
- type FillOrderInfo
- type Keeper
- type MarketInfo
- type ModifyPricePrecisionInfo
- type MsgCancelOrder
- func (msg MsgCancelOrder) GetSignBytes() []byte
- func (msg MsgCancelOrder) GetSigners() []sdk.AccAddress
- func (msg MsgCancelOrder) Route() string
- func (msg *MsgCancelOrder) SetAccAddress(address sdk.AccAddress)
- func (msg MsgCancelOrder) Type() string
- func (msg MsgCancelOrder) ValidateBasic() sdk.Error
- type MsgCancelTradingPair
- func (msg MsgCancelTradingPair) GetSignBytes() []byte
- func (msg MsgCancelTradingPair) GetSigners() []sdk.AccAddress
- func (msg MsgCancelTradingPair) Route() string
- func (msg *MsgCancelTradingPair) SetAccAddress(address sdk.AccAddress)
- func (msg MsgCancelTradingPair) Type() string
- func (msg MsgCancelTradingPair) ValidateBasic() sdk.Error
- type MsgCreateOrder
- func (msg MsgCreateOrder) GetSignBytes() []byte
- func (msg MsgCreateOrder) GetSigners() []sdk.AccAddress
- func (msg MsgCreateOrder) IsGTEOrder() bool
- func (msg MsgCreateOrder) Route() string
- func (msg *MsgCreateOrder) SetAccAddress(address sdk.AccAddress)
- func (msg MsgCreateOrder) Type() string
- func (msg MsgCreateOrder) ValidateBasic() sdk.Error
- type MsgCreateTradingPair
- func (msg MsgCreateTradingPair) GetSignBytes() []byte
- func (msg MsgCreateTradingPair) GetSigners() []sdk.AccAddress
- func (msg MsgCreateTradingPair) GetSymbol() string
- func (msg MsgCreateTradingPair) Route() string
- func (msg *MsgCreateTradingPair) SetAccAddress(address sdk.AccAddress)
- func (msg MsgCreateTradingPair) Type() string
- func (msg MsgCreateTradingPair) ValidateBasic() sdk.Error
- type MsgModifyPricePrecision
- func (msg MsgModifyPricePrecision) GetSignBytes() []byte
- func (msg MsgModifyPricePrecision) GetSigners() []sdk.AccAddress
- func (msg MsgModifyPricePrecision) Route() string
- func (msg *MsgModifyPricePrecision) SetAccAddress(address sdk.AccAddress)
- func (msg MsgModifyPricePrecision) Type() string
- func (msg MsgModifyPricePrecision) ValidateBasic() sdk.Error
- type Order
- type OrderType
- type Params
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 DecToBigEndianBytes ¶
func ErrDelistNotAllowed ¶
func ErrDelistRequestExist ¶
func ErrFailedMarshal ¶
func ErrFailedParseParam ¶
func ErrInsufficientCoins ¶
func ErrInvalidAddress ¶
func ErrInvalidCancelTime ¶
func ErrInvalidExistBlocks ¶
func ErrInvalidMarket ¶
func ErrInvalidOrderAmount ¶
func ErrInvalidOrderID ¶
func ErrInvalidOrderType ¶
func ErrInvalidPrice ¶
func ErrInvalidSymbol ¶
func ErrInvalidTimeInForce ¶
func ErrInvalidTokenIssuer ¶
func ErrInvalidTradeSide ¶
func ErrNoExistKeyInStore ¶
func ErrNotListedAgainstCet ¶
func ErrNotMatchSender ¶
func ErrOrderAlreadyExist ¶
func ErrOrderAmountTooSmall ¶
func ErrOrderNotFound ¶
func ErrRepeatTradingPair ¶
func ErrStockAndMoneyAreSame ¶
func ErrTokenForbidByIssuer ¶
func ErrTokenNoExist ¶
func GetGranularityOfOrder ¶
func IsValidTradingPair ¶
func RegisterCodec ¶
func ValidateOrderID ¶
Types ¶
type CancelMarketInfo ¶
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 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 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 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 Keeper ¶
type Keeper interface { ExpectedChargeFeeKeeper ExpectedAuthXKeeper ExpectedBankxKeeper }
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 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 (*Order) CalActualOrderFeatureFeeInt64 ¶
func (*Order) GetOrderUsedDenom ¶
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 (*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) ValidateGenesis ¶
Click to show internal directories.
Click to hide internal directories.