max

package
v0.0.0-...-8d88297 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2023 License: AGPL-3.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	All = iota
	Active
	Closed
)
View Source
const (
	OrderStateDone = OrderState("done")

	OrderStateCancel     = OrderState("cancel")
	OrderStateWait       = OrderState("wait")
	OrderStateConvert    = OrderState("convert")
	OrderStateFinalizing = OrderState("finalizing")
	OrderStateFailed     = OrderState("failed")
)
View Source
const (
	OrderTypeMarket     = OrderType("market")
	OrderTypeLimit      = OrderType("limit")
	OrderTypePostOnly   = OrderType("post_only")
	OrderTypeStopLimit  = OrderType("stop_limit")
	OrderTypeStopMarket = OrderType("stop_market")
	OrderTypeIOCLimit   = OrderType("ioc_limit")
)

Order types that the API can return.

View Source
const (
	// ProductionAPIURL is the official MAX API v2 Endpoint
	ProductionAPIURL = "https://max-api.maicoin.com/api/v2"

	UserAgent = "bbgo/" + version.Version

	// 2018-09-01 08:00:00 +0800 CST
	TimestampSince = 1535760000
)
View Source
const (
	RewardAirdrop    = RewardType("airdrop_reward")
	RewardCommission = RewardType("commission")
	RewardHolding    = RewardType("holding_reward")
	RewardMining     = RewardType("mining_reward")
	RewardTrading    = RewardType("trading_reward")
	RewardRedemption = RewardType("redemption_reward")
	RewardVipRebate  = RewardType("vip_rebate")
)
View Source
const Buy = 1
View Source
const Sell = -1

Variables

View Source
var ErrIncorrectBookEntryElementLength = errors.New("incorrect book entry element length")
View Source
var ErrMessageTypeNotSupported = errors.New("message type currently not supported")
View Source
var WebSocketURL = "wss://max-stream.maicoin.com/ws"

Functions

func ParseMessage

func ParseMessage(payload []byte) (interface{}, error)

ParseMessage accepts the raw messages from max public websocket channels and parses them into market data Return types: *BookEvent, *PublicTradeEvent, *SubscriptionEvent, *ErrorEvent

func ParseUserEvent

func ParseUserEvent(v *fastjson.Value) (interface{}, error)

Types

type ADRatio

type ADRatio struct {
	ADRatio     fixedpoint.Value `json:"ad"`
	AssetInUSDT fixedpoint.Value `json:"as"`
	DebtInUSDT  fixedpoint.Value `json:"db"`
	IndexPrices []struct {
		Market string           `json:"M"`
		Price  fixedpoint.Value `json:"p"`
	} `json:"idxp"`
	TU types.MillisecondTimestamp `json:"TU"`
}

func (*ADRatio) String

func (r *ADRatio) String() string

type ADRatioEvent

type ADRatioEvent struct {
	ADRatio ADRatio `json:"ad"`
}

type Account

type Account struct {
	Type     string           `json:"type"`
	Currency string           `json:"currency"`
	Balance  fixedpoint.Value `json:"balance"`
	Locked   fixedpoint.Value `json:"locked"`

	// v3 fields for M wallet
	Debt      fixedpoint.Value `json:"debt"`
	Principal fixedpoint.Value `json:"principal"`
	Borrowed  fixedpoint.Value `json:"borrowed"`
	Interest  fixedpoint.Value `json:"interest"`

	// v2 fields
	FiatCurrency string           `json:"fiat_currency"`
	FiatBalance  fixedpoint.Value `json:"fiat_balance"`
}

Account is for max rest api v2, Balance and Type will be conflict with types.PrivateBalanceUpdate

type AccountService

type AccountService struct {
	// contains filtered or unexported fields
}

func (*AccountService) NewGetAccountRequest

func (s *AccountService) NewGetAccountRequest() *GetAccountRequest

func (*AccountService) NewGetAccountsRequest

func (s *AccountService) NewGetAccountsRequest() *GetAccountsRequest

func (*AccountService) NewGetDepositHistoryRequest

func (s *AccountService) NewGetDepositHistoryRequest() *GetDepositHistoryRequest

func (*AccountService) NewGetVipLevelRequest

func (s *AccountService) NewGetVipLevelRequest() *GetVipLevelRequest

func (*AccountService) NewGetWithdrawalHistoryRequest

func (s *AccountService) NewGetWithdrawalHistoryRequest() *GetWithdrawHistoryRequest

type AccountSnapshotEvent

type AccountSnapshotEvent struct {
	BaseEvent
	Balances []BalanceMessage `json:"B"`
}

type AccountUpdateEvent

type AccountUpdateEvent struct {
	BaseEvent
	Balances []BalanceMessage `json:"B"`
}

type AuthEvent

type AuthEvent struct {
	Event     string
	ID        string
	Timestamp int64
}

type AuthMessage

type AuthMessage struct {
	Action    string   `json:"action,omitempty"`
	APIKey    string   `json:"apiKey,omitempty"`
	Nonce     int64    `json:"nonce,omitempty"`
	Signature string   `json:"signature,omitempty"`
	ID        string   `json:"id,omitempty"`
	Filters   []string `json:"filters,omitempty"`
}

type BalanceMessage

type BalanceMessage struct {
	Currency  string           `json:"cu"`
	Available fixedpoint.Value `json:"av"`
	Locked    fixedpoint.Value `json:"l"`
}

func (*BalanceMessage) Balance

func (m *BalanceMessage) Balance() (*types.Balance, error)

type BaseEvent

type BaseEvent struct {
	Event     string `json:"e"`
	Timestamp int64  `json:"T"`
}

type BookEntry

type BookEntry struct {
	Side   int
	Time   time.Time
	Price  string
	Volume string
}

func (*BookEntry) PriceVolumePair

func (e *BookEntry) PriceVolumePair() (pv types.PriceVolume, err error)

type BookEvent

type BookEvent struct {
	Event     string `json:"e"`
	Market    string `json:"M"`
	Channel   string `json:"c"`
	Timestamp int64  `json:"t"` // Millisecond timestamp
	Bids      []BookEntry
	Asks      []BookEntry
}

func (*BookEvent) OrderBook

func (e *BookEvent) OrderBook() (snapshot types.SliceOrderBook, err error)

func (*BookEvent) Time

func (e *BookEvent) Time() time.Time

type CancelOrderRequest

type CancelOrderRequest struct {
	// contains filtered or unexported fields
}

func (*CancelOrderRequest) ClientOrderID

func (c *CancelOrderRequest) ClientOrderID(clientOrderID string) *CancelOrderRequest

func (*CancelOrderRequest) Do

func (c *CancelOrderRequest) Do(ctx context.Context) (*Order, error)

func (*CancelOrderRequest) GetParameters

func (c *CancelOrderRequest) GetParameters() (map[string]interface{}, error)

GetParameters builds and checks the parameters and return the result in a map object

func (*CancelOrderRequest) GetParametersJSON

func (c *CancelOrderRequest) GetParametersJSON() ([]byte, error)

GetParametersJSON converts the parameters from GetParameters into the JSON format

func (*CancelOrderRequest) GetParametersQuery

func (c *CancelOrderRequest) GetParametersQuery() (url.Values, error)

GetParametersQuery converts the parameters from GetParameters into the url.Values format

func (*CancelOrderRequest) GetQueryParameters

func (c *CancelOrderRequest) GetQueryParameters() (url.Values, error)

GetQueryParameters builds and checks the query parameters and returns url.Values

func (*CancelOrderRequest) GetSlugParameters

func (c *CancelOrderRequest) GetSlugParameters() (map[string]interface{}, error)

GetSlugParameters builds and checks the slug parameters and return the result in a map object

func (*CancelOrderRequest) GetSlugsMap

func (c *CancelOrderRequest) GetSlugsMap() (map[string]string, error)

func (*CancelOrderRequest) Id

type CreateOrderRequest

type CreateOrderRequest struct {
	// contains filtered or unexported fields
}

func (*CreateOrderRequest) ClientOrderID

func (c *CreateOrderRequest) ClientOrderID(clientOrderID string) *CreateOrderRequest

func (*CreateOrderRequest) Do

func (c *CreateOrderRequest) Do(ctx context.Context) (*Order, error)

func (*CreateOrderRequest) GetParameters

func (c *CreateOrderRequest) GetParameters() (map[string]interface{}, error)

GetParameters builds and checks the parameters and return the result in a map object

func (*CreateOrderRequest) GetParametersJSON

func (c *CreateOrderRequest) GetParametersJSON() ([]byte, error)

GetParametersJSON converts the parameters from GetParameters into the JSON format

func (*CreateOrderRequest) GetParametersQuery

func (c *CreateOrderRequest) GetParametersQuery() (url.Values, error)

GetParametersQuery converts the parameters from GetParameters into the url.Values format

func (*CreateOrderRequest) GetQueryParameters

func (c *CreateOrderRequest) GetQueryParameters() (url.Values, error)

GetQueryParameters builds and checks the query parameters and returns url.Values

func (*CreateOrderRequest) GetSlugParameters

func (c *CreateOrderRequest) GetSlugParameters() (map[string]interface{}, error)

GetSlugParameters builds and checks the slug parameters and return the result in a map object

func (*CreateOrderRequest) GetSlugsMap

func (c *CreateOrderRequest) GetSlugsMap() (map[string]string, error)

func (*CreateOrderRequest) GroupID

func (c *CreateOrderRequest) GroupID(groupID string) *CreateOrderRequest

func (*CreateOrderRequest) Market

func (c *CreateOrderRequest) Market(market string) *CreateOrderRequest

func (*CreateOrderRequest) OrderType

func (c *CreateOrderRequest) OrderType(orderType OrderType) *CreateOrderRequest

func (*CreateOrderRequest) Price

func (c *CreateOrderRequest) Price(price string) *CreateOrderRequest

func (*CreateOrderRequest) Side

func (*CreateOrderRequest) StopPrice

func (c *CreateOrderRequest) StopPrice(stopPrice string) *CreateOrderRequest

func (*CreateOrderRequest) Volume

func (c *CreateOrderRequest) Volume(volume string) *CreateOrderRequest

type Debt

type Debt struct {
	Currency      string                     `json:"cu"`
	DebtPrincipal fixedpoint.Value           `json:"dbp"`
	DebtInterest  fixedpoint.Value           `json:"dbi"`
	TU            types.MillisecondTimestamp `json:"TU"`
}

func (*Debt) String

func (d *Debt) String() string

type DebtEvent

type DebtEvent struct {
	Debts []Debt `json:"db"`
}

type Deposit

type Deposit struct {
	Currency        string           `json:"currency"`
	CurrencyVersion string           `json:"currency_version"` // "eth"
	Amount          fixedpoint.Value `json:"amount"`
	Fee             fixedpoint.Value `json:"fee"`
	TxID            string           `json:"txid"`
	State           string           `json:"state"`
	Confirmations   int64            `json:"confirmations"`
	CreatedAt       int64            `json:"created_at"`
	UpdatedAt       int64            `json:"updated_at"`
}

type ErrorEvent

type ErrorEvent struct {
	Timestamp int64
	Errors    []string
	CommandID string
}

func (ErrorEvent) Time

func (e ErrorEvent) Time() time.Time

type ErrorField

type ErrorField struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
}

ErrorResponse is the custom error type that is returned if the API returns an error.

type ErrorResponse

type ErrorResponse struct {
	*requestgen.Response
	Err ErrorField `json:"error"`
}

func ToErrorResponse

func ToErrorResponse(response *requestgen.Response) (errorResponse *ErrorResponse, err error)

ToErrorResponse tries to convert/parse the server response to the standard Error interface object

func (*ErrorResponse) Error

func (r *ErrorResponse) Error() string

type GetAccountRequest

type GetAccountRequest struct {
	// contains filtered or unexported fields
}

func (*GetAccountRequest) Currency

func (g *GetAccountRequest) Currency(currency string) *GetAccountRequest

func (*GetAccountRequest) Do

func (*GetAccountRequest) GetParameters

func (g *GetAccountRequest) GetParameters() (map[string]interface{}, error)

GetParameters builds and checks the parameters and return the result in a map object

func (*GetAccountRequest) GetParametersJSON

func (g *GetAccountRequest) GetParametersJSON() ([]byte, error)

GetParametersJSON converts the parameters from GetParameters into the JSON format

func (*GetAccountRequest) GetParametersQuery

func (g *GetAccountRequest) GetParametersQuery() (url.Values, error)

GetParametersQuery converts the parameters from GetParameters into the url.Values format

func (*GetAccountRequest) GetQueryParameters

func (g *GetAccountRequest) GetQueryParameters() (url.Values, error)

GetQueryParameters builds and checks the query parameters and returns url.Values

func (*GetAccountRequest) GetSlugParameters

func (g *GetAccountRequest) GetSlugParameters() (map[string]interface{}, error)

GetSlugParameters builds and checks the slug parameters and return the result in a map object

func (*GetAccountRequest) GetSlugsMap

func (g *GetAccountRequest) GetSlugsMap() (map[string]string, error)

type GetAccountsRequest

type GetAccountsRequest struct {
	// contains filtered or unexported fields
}

func (*GetAccountsRequest) Do

func (*GetAccountsRequest) GetParameters

func (g *GetAccountsRequest) GetParameters() (map[string]interface{}, error)

GetParameters builds and checks the parameters and return the result in a map object

func (*GetAccountsRequest) GetParametersJSON

func (g *GetAccountsRequest) GetParametersJSON() ([]byte, error)

GetParametersJSON converts the parameters from GetParameters into the JSON format

func (*GetAccountsRequest) GetParametersQuery

func (g *GetAccountsRequest) GetParametersQuery() (url.Values, error)

GetParametersQuery converts the parameters from GetParameters into the url.Values format

func (*GetAccountsRequest) GetQueryParameters

func (g *GetAccountsRequest) GetQueryParameters() (url.Values, error)

GetQueryParameters builds and checks the query parameters and returns url.Values

func (*GetAccountsRequest) GetSlugParameters

func (g *GetAccountsRequest) GetSlugParameters() (map[string]interface{}, error)

GetSlugParameters builds and checks the slug parameters and return the result in a map object

func (*GetAccountsRequest) GetSlugsMap

func (g *GetAccountsRequest) GetSlugsMap() (map[string]string, error)

type GetDepositHistoryRequest

type GetDepositHistoryRequest struct {
	// contains filtered or unexported fields
}

func (*GetDepositHistoryRequest) Currency

func (*GetDepositHistoryRequest) Do

func (*GetDepositHistoryRequest) From

func (*GetDepositHistoryRequest) GetParameters

func (g *GetDepositHistoryRequest) GetParameters() (map[string]interface{}, error)

GetParameters builds and checks the parameters and return the result in a map object

func (*GetDepositHistoryRequest) GetParametersJSON

func (g *GetDepositHistoryRequest) GetParametersJSON() ([]byte, error)

GetParametersJSON converts the parameters from GetParameters into the JSON format

func (*GetDepositHistoryRequest) GetParametersQuery

func (g *GetDepositHistoryRequest) GetParametersQuery() (url.Values, error)

GetParametersQuery converts the parameters from GetParameters into the url.Values format

func (*GetDepositHistoryRequest) GetQueryParameters

func (g *GetDepositHistoryRequest) GetQueryParameters() (url.Values, error)

GetQueryParameters builds and checks the query parameters and returns url.Values

func (*GetDepositHistoryRequest) GetSlugParameters

func (g *GetDepositHistoryRequest) GetSlugParameters() (map[string]interface{}, error)

GetSlugParameters builds and checks the slug parameters and return the result in a map object

func (*GetDepositHistoryRequest) GetSlugsMap

func (g *GetDepositHistoryRequest) GetSlugsMap() (map[string]string, error)

func (*GetDepositHistoryRequest) Limit

func (*GetDepositHistoryRequest) State

func (*GetDepositHistoryRequest) To

type GetKLinesRequest

type GetKLinesRequest struct {
	// contains filtered or unexported fields
}

func (*GetKLinesRequest) Do

func (*GetKLinesRequest) GetParameters

func (g *GetKLinesRequest) GetParameters() (map[string]interface{}, error)

GetParameters builds and checks the parameters and return the result in a map object

func (*GetKLinesRequest) GetParametersJSON

func (g *GetKLinesRequest) GetParametersJSON() ([]byte, error)

GetParametersJSON converts the parameters from GetParameters into the JSON format

func (*GetKLinesRequest) GetParametersQuery

func (g *GetKLinesRequest) GetParametersQuery() (url.Values, error)

GetParametersQuery converts the parameters from GetParameters into the url.Values format

func (*GetKLinesRequest) GetQueryParameters

func (g *GetKLinesRequest) GetQueryParameters() (url.Values, error)

GetQueryParameters builds and checks the query parameters and returns url.Values

func (*GetKLinesRequest) GetSlugParameters

func (g *GetKLinesRequest) GetSlugParameters() (map[string]interface{}, error)

GetSlugParameters builds and checks the slug parameters and return the result in a map object

func (*GetKLinesRequest) GetSlugsMap

func (g *GetKLinesRequest) GetSlugsMap() (map[string]string, error)

func (*GetKLinesRequest) Limit

func (g *GetKLinesRequest) Limit(limit int) *GetKLinesRequest

func (*GetKLinesRequest) Market

func (g *GetKLinesRequest) Market(market string) *GetKLinesRequest

func (*GetKLinesRequest) Period

func (g *GetKLinesRequest) Period(period int) *GetKLinesRequest

func (*GetKLinesRequest) Timestamp

func (g *GetKLinesRequest) Timestamp(timestamp time.Time) *GetKLinesRequest

type GetPrivateTradesRequest

type GetPrivateTradesRequest struct {
	// contains filtered or unexported fields
}

type GetRewardsOfTypeRequest

type GetRewardsOfTypeRequest struct {
	// contains filtered or unexported fields
}

func (*GetRewardsOfTypeRequest) Do

func (*GetRewardsOfTypeRequest) From

func (*GetRewardsOfTypeRequest) GetParameters

func (g *GetRewardsOfTypeRequest) GetParameters() (map[string]interface{}, error)

GetParameters builds and checks the parameters and return the result in a map object

func (*GetRewardsOfTypeRequest) GetParametersJSON

func (g *GetRewardsOfTypeRequest) GetParametersJSON() ([]byte, error)

GetParametersJSON converts the parameters from GetParameters into the JSON format

func (*GetRewardsOfTypeRequest) GetParametersQuery

func (g *GetRewardsOfTypeRequest) GetParametersQuery() (url.Values, error)

GetParametersQuery converts the parameters from GetParameters into the url.Values format

func (*GetRewardsOfTypeRequest) GetQueryParameters

func (g *GetRewardsOfTypeRequest) GetQueryParameters() (url.Values, error)

GetQueryParameters builds and checks the query parameters and returns url.Values

func (*GetRewardsOfTypeRequest) GetSlugParameters

func (g *GetRewardsOfTypeRequest) GetSlugParameters() (map[string]interface{}, error)

GetSlugParameters builds and checks the slug parameters and return the result in a map object

func (*GetRewardsOfTypeRequest) GetSlugsMap

func (g *GetRewardsOfTypeRequest) GetSlugsMap() (map[string]string, error)

func (*GetRewardsOfTypeRequest) Limit

func (*GetRewardsOfTypeRequest) Offset

func (*GetRewardsOfTypeRequest) Page

func (*GetRewardsOfTypeRequest) PathType

func (*GetRewardsOfTypeRequest) To

type GetRewardsRequest

type GetRewardsRequest struct {
	// contains filtered or unexported fields
}

func (*GetRewardsRequest) Currency

func (g *GetRewardsRequest) Currency(currency string) *GetRewardsRequest

func (*GetRewardsRequest) Do

func (g *GetRewardsRequest) Do(ctx context.Context) ([]Reward, error)

func (*GetRewardsRequest) From

func (g *GetRewardsRequest) From(from int64) *GetRewardsRequest

func (*GetRewardsRequest) GetParameters

func (g *GetRewardsRequest) GetParameters() (map[string]interface{}, error)

GetParameters builds and checks the parameters and return the result in a map object

func (*GetRewardsRequest) GetParametersJSON

func (g *GetRewardsRequest) GetParametersJSON() ([]byte, error)

GetParametersJSON converts the parameters from GetParameters into the JSON format

func (*GetRewardsRequest) GetParametersQuery

func (g *GetRewardsRequest) GetParametersQuery() (url.Values, error)

GetParametersQuery converts the parameters from GetParameters into the url.Values format

func (*GetRewardsRequest) GetQueryParameters

func (g *GetRewardsRequest) GetQueryParameters() (url.Values, error)

GetQueryParameters builds and checks the query parameters and returns url.Values

func (*GetRewardsRequest) GetSlugParameters

func (g *GetRewardsRequest) GetSlugParameters() (map[string]interface{}, error)

GetSlugParameters builds and checks the slug parameters and return the result in a map object

func (*GetRewardsRequest) GetSlugsMap

func (g *GetRewardsRequest) GetSlugsMap() (map[string]string, error)

func (*GetRewardsRequest) Limit

func (g *GetRewardsRequest) Limit(limit int64) *GetRewardsRequest

func (*GetRewardsRequest) Offset

func (g *GetRewardsRequest) Offset(offset int64) *GetRewardsRequest

func (*GetRewardsRequest) Page

func (g *GetRewardsRequest) Page(page int64) *GetRewardsRequest

func (*GetRewardsRequest) To

type GetVipLevelRequest

type GetVipLevelRequest struct {
	// contains filtered or unexported fields
}

func (*GetVipLevelRequest) Do

func (*GetVipLevelRequest) GetParameters

func (g *GetVipLevelRequest) GetParameters() (map[string]interface{}, error)

GetParameters builds and checks the parameters and return the result in a map object

func (*GetVipLevelRequest) GetParametersJSON

func (g *GetVipLevelRequest) GetParametersJSON() ([]byte, error)

GetParametersJSON converts the parameters from GetParameters into the JSON format

func (*GetVipLevelRequest) GetParametersQuery

func (g *GetVipLevelRequest) GetParametersQuery() (url.Values, error)

GetParametersQuery converts the parameters from GetParameters into the url.Values format

func (*GetVipLevelRequest) GetQueryParameters

func (g *GetVipLevelRequest) GetQueryParameters() (url.Values, error)

GetQueryParameters builds and checks the query parameters and returns url.Values

func (*GetVipLevelRequest) GetSlugParameters

func (g *GetVipLevelRequest) GetSlugParameters() (map[string]interface{}, error)

GetSlugParameters builds and checks the slug parameters and return the result in a map object

func (*GetVipLevelRequest) GetSlugsMap

func (g *GetVipLevelRequest) GetSlugsMap() (map[string]string, error)

type GetWithdrawHistoryRequest

type GetWithdrawHistoryRequest struct {
	// contains filtered or unexported fields
}

func (*GetWithdrawHistoryRequest) Currency

func (*GetWithdrawHistoryRequest) Do

func (*GetWithdrawHistoryRequest) From

func (*GetWithdrawHistoryRequest) GetParameters

func (g *GetWithdrawHistoryRequest) GetParameters() (map[string]interface{}, error)

GetParameters builds and checks the parameters and return the result in a map object

func (*GetWithdrawHistoryRequest) GetParametersJSON

func (g *GetWithdrawHistoryRequest) GetParametersJSON() ([]byte, error)

GetParametersJSON converts the parameters from GetParameters into the JSON format

func (*GetWithdrawHistoryRequest) GetParametersQuery

func (g *GetWithdrawHistoryRequest) GetParametersQuery() (url.Values, error)

GetParametersQuery converts the parameters from GetParameters into the url.Values format

func (*GetWithdrawHistoryRequest) GetQueryParameters

func (g *GetWithdrawHistoryRequest) GetQueryParameters() (url.Values, error)

GetQueryParameters builds and checks the query parameters and returns url.Values

func (*GetWithdrawHistoryRequest) GetSlugParameters

func (g *GetWithdrawHistoryRequest) GetSlugParameters() (map[string]interface{}, error)

GetSlugParameters builds and checks the slug parameters and return the result in a map object

func (*GetWithdrawHistoryRequest) GetSlugsMap

func (g *GetWithdrawHistoryRequest) GetSlugsMap() (map[string]string, error)

func (*GetWithdrawHistoryRequest) Limit

func (*GetWithdrawHistoryRequest) State

func (*GetWithdrawHistoryRequest) To

type GetWithdrawalAddressesRequest

type GetWithdrawalAddressesRequest struct {
	// contains filtered or unexported fields
}

func (*GetWithdrawalAddressesRequest) Currency

func (*GetWithdrawalAddressesRequest) Do

func (*GetWithdrawalAddressesRequest) GetParameters

func (g *GetWithdrawalAddressesRequest) GetParameters() (map[string]interface{}, error)

GetParameters builds and checks the parameters and return the result in a map object

func (*GetWithdrawalAddressesRequest) GetParametersJSON

func (g *GetWithdrawalAddressesRequest) GetParametersJSON() ([]byte, error)

GetParametersJSON converts the parameters from GetParameters into the JSON format

func (*GetWithdrawalAddressesRequest) GetParametersQuery

func (g *GetWithdrawalAddressesRequest) GetParametersQuery() (url.Values, error)

GetParametersQuery converts the parameters from GetParameters into the url.Values format

func (*GetWithdrawalAddressesRequest) GetQueryParameters

func (g *GetWithdrawalAddressesRequest) GetQueryParameters() (url.Values, error)

GetQueryParameters builds and checks the query parameters and returns url.Values

func (*GetWithdrawalAddressesRequest) GetSlugParameters

func (g *GetWithdrawalAddressesRequest) GetSlugParameters() (map[string]interface{}, error)

GetSlugParameters builds and checks the slug parameters and return the result in a map object

func (*GetWithdrawalAddressesRequest) GetSlugsMap

func (g *GetWithdrawalAddressesRequest) GetSlugsMap() (map[string]string, error)

type Interval

type Interval int64

func ParseInterval

func ParseInterval(a string) (Interval, error)

type KLine

type KLine struct {
	Symbol                 string
	Interval               string
	StartTime, EndTime     time.Time
	Open, High, Low, Close fixedpoint.Value
	Volume                 fixedpoint.Value
	Closed                 bool
}

func (KLine) KLine

func (k KLine) KLine() types.KLine

type KLineData

type KLineData []float64

type KLineEvent

type KLineEvent struct {
	Event     string `json:"e"`
	Market    string `json:"M"`
	Channel   string `json:"c"`
	KLine     KLine  `json:"k"`
	Timestamp int64  `json:"T"`
}

type KLinePayload

type KLinePayload struct {
	StartTime   int64  `json:"ST"`
	EndTime     int64  `json:"ET"`
	Market      string `json:"M"`
	Resolution  string `json:"R"`
	Open        string `json:"O"`
	High        string `json:"H"`
	Low         string `json:"L"`
	Close       string `json:"C"`
	Volume      string `json:"v"`
	LastTradeID int    `json:"ti"`
	Closed      bool   `json:"x"`
}
{
  "c": "kline",
  "M": "btcusdt",
  "e": "update",
  "T": 1602999650179,
  "k": {
    "ST": 1602999900000,
    "ET": 1602999900000,
    "M": "btcusdt",
    "R": "5m",
    "O": "11417.21",
    "H": "11417.21",
    "L": "11417.21",
    "C": "11417.21",
    "v": "0",
    "ti": 0,
    "x": false
  }
}

func (KLinePayload) KLine

func (k KLinePayload) KLine() types.KLine

type Liquidity

type Liquidity string

type MarkerInfo

type MarkerInfo struct {
	Fee         string `json:"fee"`
	FeeCurrency string `json:"fee_currency"`
	OrderID     int    `json:"order_id"`
}

type Market

type Market struct {
	ID                 string           `json:"id"`
	Name               string           `json:"name"`
	Status             string           `json:"market_status"` // active
	BaseUnit           string           `json:"base_unit"`
	BaseUnitPrecision  int              `json:"base_unit_precision"`
	QuoteUnit          string           `json:"quote_unit"`
	QuoteUnitPrecision int              `json:"quote_unit_precision"`
	MinBaseAmount      fixedpoint.Value `json:"min_base_amount"`
	MinQuoteAmount     fixedpoint.Value `json:"min_quote_amount"`
	SupportMargin      bool             `json:"m_wallet_supported"`
}

type Order

type Order struct {
	ID              uint64                     `json:"id,omitempty"`
	WalletType      WalletType                 `json:"wallet_type,omitempty"`
	Side            string                     `json:"side"`
	OrderType       OrderType                  `json:"ord_type"`
	Price           fixedpoint.Value           `json:"price,omitempty"`
	StopPrice       fixedpoint.Value           `json:"stop_price,omitempty"`
	AveragePrice    fixedpoint.Value           `json:"avg_price,omitempty"`
	State           OrderState                 `json:"state,omitempty"`
	Market          string                     `json:"market,omitempty"`
	Volume          fixedpoint.Value           `json:"volume"`
	RemainingVolume fixedpoint.Value           `json:"remaining_volume,omitempty"`
	ExecutedVolume  fixedpoint.Value           `json:"executed_volume,omitempty"`
	TradesCount     int64                      `json:"trades_count,omitempty"`
	GroupID         uint32                     `json:"group_id,omitempty"`
	ClientOID       string                     `json:"client_oid,omitempty"`
	CreatedAt       types.MillisecondTimestamp `json:"created_at"`
}

Order represents one returned order (POST order/GET order/GET orders) on the max platform.

type OrderService

type OrderService struct {
	// contains filtered or unexported fields
}

OrderService manages the Order endpoint.

func (*OrderService) NewCancelOrderRequest

func (s *OrderService) NewCancelOrderRequest() *CancelOrderRequest

func (*OrderService) NewCreateOrderRequest

func (s *OrderService) NewCreateOrderRequest() *CreateOrderRequest

type OrderSnapshotEvent

type OrderSnapshotEvent struct {
	BaseEvent

	Orders []OrderUpdate `json:"o"`
}

type OrderState

type OrderState string

type OrderStateToQuery

type OrderStateToQuery int

type OrderType

type OrderType string

type OrderUpdate

type OrderUpdate struct {
	Event     string    `json:"e"`
	ID        uint64    `json:"i"`
	Side      string    `json:"sd"`
	OrderType OrderType `json:"ot"`

	Price     fixedpoint.Value `json:"p"`
	StopPrice fixedpoint.Value `json:"sp"`

	Volume       fixedpoint.Value `json:"v"`
	AveragePrice fixedpoint.Value `json:"ap"`
	State        OrderState       `json:"S"`
	Market       string           `json:"M"`

	RemainingVolume fixedpoint.Value `json:"rv"`
	ExecutedVolume  fixedpoint.Value `json:"ev"`

	TradesCount int64 `json:"tc"`

	GroupID     uint32 `json:"gi"`
	ClientOID   string `json:"ci"`
	CreatedAtMs int64  `json:"T"`
	UpdateTime  int64  `json:"TU"`
}

type OrderUpdateEvent

type OrderUpdateEvent struct {
	BaseEvent

	Orders []OrderUpdate `json:"o"`
}

type PrivateRequestParams

type PrivateRequestParams struct {
	Nonce int64  `json:"nonce"`
	Path  string `json:"path"`
}

type PublicService

type PublicService struct {
	// contains filtered or unexported fields
}

func (*PublicService) KLines

func (s *PublicService) KLines(symbol string, resolution string, start time.Time, limit int) ([]KLine, error)

func (*PublicService) Markets

func (s *PublicService) Markets() ([]Market, error)

func (*PublicService) NewGetKLinesRequest

func (s *PublicService) NewGetKLinesRequest() *GetKLinesRequest

func (*PublicService) Ticker

func (s *PublicService) Ticker(market string) (*Ticker, error)

func (*PublicService) Tickers

func (s *PublicService) Tickers() (map[string]Ticker, error)

func (*PublicService) Timestamp

func (s *PublicService) Timestamp() (serverTimestamp int64, err error)

type PublicTradeEvent

type PublicTradeEvent struct {
	Event     string       `json:"e"`
	Market    string       `json:"M"`
	Channel   string       `json:"c"`
	Trades    []TradeEntry `json:"t"`
	Timestamp int64        `json:"T"`
}

func (*PublicTradeEvent) Time

func (e *PublicTradeEvent) Time() time.Time

type QueryOrderOptions

type QueryOrderOptions struct {
	GroupID int
	Offset  int
	Limit   int
	Page    int
	OrderBy string
}

type QueryTradeOptions

type QueryTradeOptions struct {
	Market    string `json:"market"`
	Timestamp int64  `json:"timestamp,omitempty"`
	From      int64  `json:"from,omitempty"`
	To        int64  `json:"to,omitempty"`
	OrderBy   string `json:"order_by,omitempty"`
	Page      int    `json:"page,omitempty"`
	Offset    int    `json:"offset,omitempty"`
	Limit     int64  `json:"limit,omitempty"`
}

func (*QueryTradeOptions) Map

func (options *QueryTradeOptions) Map() map[string]interface{}

func (*QueryTradeOptions) Params

func (options *QueryTradeOptions) Params() url.Values

type RestClient

type RestClient struct {
	requestgen.BaseAPIClient

	APIKey, APISecret string

	AccountService    *AccountService
	PublicService     *PublicService
	TradeService      *TradeService
	OrderService      *OrderService
	RewardService     *RewardService
	WithdrawalService *WithdrawalService
}

func NewRestClient

func NewRestClient(baseURL string) *RestClient

func (*RestClient) Auth

func (c *RestClient) Auth(key string, secret string) *RestClient

Auth sets api key and secret for usage is requests that requires authentication.

func (*RestClient) NewAuthenticatedRequest

func (c *RestClient) NewAuthenticatedRequest(ctx context.Context, m string, refURL string, params url.Values, payload interface{}) (*http.Request, error)

type Reward

type Reward struct {
	// UUID here is more like SN, not the real UUID
	UUID     string           `json:"uuid"`
	Type     RewardType       `json:"type"`
	Currency string           `json:"currency"`
	Amount   fixedpoint.Value `json:"amount"`
	State    string           `json:"state"`
	Note     string           `json:"note"`

	// Unix timestamp in seconds
	CreatedAt types.Timestamp `json:"created_at"`
}

func (Reward) Reward

func (reward Reward) Reward() (*types.Reward, error)

type RewardService

type RewardService struct {
	// contains filtered or unexported fields
}

func (*RewardService) NewGetRewardsOfTypeRequest

func (s *RewardService) NewGetRewardsOfTypeRequest(pathType RewardType) *GetRewardsOfTypeRequest

func (*RewardService) NewGetRewardsRequest

func (s *RewardService) NewGetRewardsRequest() *GetRewardsRequest

type RewardType

type RewardType string

func ParseRewardType

func ParseRewardType(s string) (RewardType, error)

func (RewardType) RewardType

func (t RewardType) RewardType() (types.RewardType, error)

func (*RewardType) UnmarshalJSON

func (t *RewardType) UnmarshalJSON(o []byte) error

type SubmitOrder

type SubmitOrder struct {
	Side      string    `json:"side"`
	Market    string    `json:"market"`
	Price     string    `json:"price"`
	StopPrice string    `json:"stop_price,omitempty"`
	OrderType OrderType `json:"ord_type"`
	Volume    string    `json:"volume"`
	GroupID   uint32    `json:"group_id,omitempty"`
	ClientOID string    `json:"client_oid,omitempty"`
}

type SubscribeOptions

type SubscribeOptions struct {
	Depth      int    `json:"depth,omitempty"`
	Resolution string `json:"resolution,omitempty"`
}

type Subscription

type Subscription struct {
	Channel    string `json:"channel"`
	Market     string `json:"market"`
	Depth      int    `json:"depth,omitempty"`
	Resolution string `json:"resolution,omitempty"`
}

Subscription is used for presenting the subscription metadata. This is used for sending subscribe and unsubscribe requests

type SubscriptionEvent

type SubscriptionEvent struct {
	Event         string         `json:"e"`
	Timestamp     int64          `json:"T"`
	CommandID     string         `json:"i"`
	Subscriptions []Subscription `json:"s"`
}

func (SubscriptionEvent) Time

func (e SubscriptionEvent) Time() time.Time

type Ticker

type Ticker struct {
	Time time.Time

	At          int64  `json:"at"`
	Buy         string `json:"buy"`
	Sell        string `json:"sell"`
	Open        string `json:"open"`
	High        string `json:"high"`
	Low         string `json:"low"`
	Last        string `json:"last"`
	Volume      string `json:"vol"`
	VolumeInBTC string `json:"vol_in_btc"`
}

type Trade

type Trade struct {
	ID          uint64                     `json:"id" db:"exchange_id"`
	WalletType  WalletType                 `json:"wallet_type,omitempty"`
	Price       fixedpoint.Value           `json:"price"`
	Volume      fixedpoint.Value           `json:"volume"`
	Funds       fixedpoint.Value           `json:"funds"`
	Market      string                     `json:"market"`
	MarketName  string                     `json:"market_name"`
	CreatedAt   types.MillisecondTimestamp `json:"created_at"`
	Side        string                     `json:"side"`
	OrderID     uint64                     `json:"order_id"`
	Fee         fixedpoint.Value           `json:"fee"` // float number as string
	FeeCurrency string                     `json:"fee_currency"`
	Liquidity   Liquidity                  `json:"liquidity"`
	Info        TradeInfo                  `json:"info,omitempty"`
}

Trade represents one returned trade on the max platform.

func (Trade) IsBuyer

func (t Trade) IsBuyer() bool

func (Trade) IsMaker

func (t Trade) IsMaker() bool

type TradeEntry

type TradeEntry struct {
	Trend     string `json:"tr"`
	Price     string `json:"p"`
	Volume    string `json:"v"`
	Timestamp int64  `json:"T"`
}

func (TradeEntry) Time

func (e TradeEntry) Time() time.Time

type TradeInfo

type TradeInfo struct {
	// Maker tells you the maker trade side
	Maker string      `json:"maker,omitempty"`
	Bid   *MarkerInfo `json:"bid,omitempty"`
	Ask   *MarkerInfo `json:"ask,omitempty"`
}

type TradeService

type TradeService struct {
	// contains filtered or unexported fields
}

func (*TradeService) NewGetPrivateTradeRequest

func (s *TradeService) NewGetPrivateTradeRequest() *GetPrivateTradesRequest

type TradeSnapshot

type TradeSnapshot []TradeUpdate

type TradeSnapshotEvent

type TradeSnapshotEvent struct {
	BaseEvent

	Trades []TradeUpdate `json:"t"`
}

type TradeUpdate

type TradeUpdate struct {
	ID     uint64 `json:"i"`
	Side   string `json:"sd"`
	Price  string `json:"p"`
	Volume string `json:"v"`
	Market string `json:"M"`

	Fee         string `json:"f"`
	FeeCurrency string `json:"fc"`
	Timestamp   int64  `json:"T"`
	UpdateTime  int64  `json:"TU"`

	OrderID uint64 `json:"oi"`

	Maker bool `json:"m"`
}

type TradeUpdateEvent

type TradeUpdateEvent struct {
	BaseEvent

	Trades []TradeUpdate `json:"t"`
}

type UserBank

type UserBank struct {
	Branch  string `json:"branch"`
	Name    string `json:"name"`
	Account string `json:"account"`
	State   string `json:"state"`
}

type UserInfo

type UserInfo struct {
	Sn              string    `json:"sn"`
	Name            string    `json:"name"`
	Type            string    `json:"member_type"`
	Level           int       `json:"level"`
	VipLevel        int       `json:"vip_level"`
	Email           string    `json:"email"`
	Accounts        []Account `json:"accounts"`
	Bank            *UserBank `json:"bank,omitempty"`
	IsFrozen        bool      `json:"is_frozen"`
	IsActivated     bool      `json:"is_activated"`
	KycApproved     bool      `json:"kyc_approved"`
	KycState        string    `json:"kyc_state"`
	PhoneSet        bool      `json:"phone_set"`
	PhoneNumber     string    `json:"phone_number"`
	ProfileVerified bool      `json:"profile_verified"`
	CountryCode     string    `json:"country_code"`
	IdentityNumber  string    `json:"identity_number"`
	WithDrawable    bool      `json:"withdrawable"`
	ReferralCode    string    `json:"referral_code"`
}

type VipLevel

type VipLevel struct {
	Current VipLevelSettings `json:"current_vip_level"`
	Next    VipLevelSettings `json:"next_vip_level"`
}

type VipLevelSettings

type VipLevelSettings struct {
	Level                int     `json:"level"`
	MinimumTradingVolume float64 `json:"minimum_trading_volume"`
	MinimumStakingVolume float64 `json:"minimum_staking_volume"`
	MakerFee             float64 `json:"maker_fee"`
	TakerFee             float64 `json:"taker_fee"`
}

type WalletType

type WalletType string
const (
	WalletTypeSpot   WalletType = "spot"
	WalletTypeMargin WalletType = "m"
)

type WebsocketCommand

type WebsocketCommand struct {
	// Action is used for specify the action of the websocket session.
	// Valid values are "subscribe", "unsubscribe" and "auth"
	Action        string         `json:"action"`
	Subscriptions []Subscription `json:"subscriptions,omitempty"`
}

type Withdraw

type Withdraw struct {
	UUID            string           `json:"uuid"`
	Currency        string           `json:"currency"`
	CurrencyVersion string           `json:"currency_version"` // "eth"
	Amount          fixedpoint.Value `json:"amount"`
	Fee             fixedpoint.Value `json:"fee"`
	FeeCurrency     string           `json:"fee_currency"`
	TxID            string           `json:"txid"`

	// State can be "submitting", "submitted",
	//     "rejected", "accepted", "suspect", "approved", "delisted_processing",
	//     "processing", "retryable", "sent", "canceled",
	//     "failed", "pending", "confirmed",
	//     "kgi_manually_processing", "kgi_manually_confirmed", "kgi_possible_failed",
	//     "sygna_verifying"
	State         string `json:"state"`
	Confirmations int    `json:"confirmations"`
	CreatedAt     int64  `json:"created_at"`
	UpdatedAt     int64  `json:"updated_at"`
	Notes         string `json:"notes"`
}

type WithdrawalAddress

type WithdrawalAddress struct {
	UUID            string `json:"uuid"`
	Currency        string `json:"currency"`
	CurrencyVersion string `json:"currency_version"`
	Address         string `json:"address"`
	ExtraLabel      string `json:"extra_label"`
	State           string `json:"state"`
	SygnaVaspCode   string `json:"sygna_vasp_code"`
	SygnaUserType   string `json:"sygna_user_type"`
	SygnaUserCode   string `json:"sygna_user_code"`
	IsInternal      bool   `json:"is_internal"`
}

type WithdrawalRequest

type WithdrawalRequest struct {
	// contains filtered or unexported fields
}

func (*WithdrawalRequest) AddressUUID

func (w *WithdrawalRequest) AddressUUID(addressUUID string) *WithdrawalRequest

func (*WithdrawalRequest) Amount

func (w *WithdrawalRequest) Amount(amount float64) *WithdrawalRequest

func (*WithdrawalRequest) Currency

func (w *WithdrawalRequest) Currency(currency string) *WithdrawalRequest

func (*WithdrawalRequest) Do

func (*WithdrawalRequest) GetParameters

func (w *WithdrawalRequest) GetParameters() (map[string]interface{}, error)

GetParameters builds and checks the parameters and return the result in a map object

func (*WithdrawalRequest) GetParametersJSON

func (w *WithdrawalRequest) GetParametersJSON() ([]byte, error)

GetParametersJSON converts the parameters from GetParameters into the JSON format

func (*WithdrawalRequest) GetParametersQuery

func (w *WithdrawalRequest) GetParametersQuery() (url.Values, error)

GetParametersQuery converts the parameters from GetParameters into the url.Values format

func (*WithdrawalRequest) GetQueryParameters

func (w *WithdrawalRequest) GetQueryParameters() (url.Values, error)

GetQueryParameters builds and checks the query parameters and returns url.Values

func (*WithdrawalRequest) GetSlugParameters

func (w *WithdrawalRequest) GetSlugParameters() (map[string]interface{}, error)

GetSlugParameters builds and checks the slug parameters and return the result in a map object

func (*WithdrawalRequest) GetSlugsMap

func (w *WithdrawalRequest) GetSlugsMap() (map[string]string, error)

type WithdrawalService

type WithdrawalService struct {
	// contains filtered or unexported fields
}

func (*WithdrawalService) NewGetWithdrawalAddressesRequest

func (s *WithdrawalService) NewGetWithdrawalAddressesRequest() *GetWithdrawalAddressesRequest

func (*WithdrawalService) NewGetWithdrawalHistoryRequest

func (s *WithdrawalService) NewGetWithdrawalHistoryRequest() *GetWithdrawHistoryRequest

func (*WithdrawalService) NewWithdrawalRequest

func (s *WithdrawalService) NewWithdrawalRequest() *WithdrawalRequest

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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