/* * Gate API * * Welcome to Gate API APIv4 provides operations related to spot, margin, and contract trading, including public interfaces for querying market data and authenticated private interfaces for implementing API-based automated trading. * * Contact: support@mail.gate.com * Generated by: OpenAPI Generator (https://openapi-generator.tech) */ package gateapi import ( "context" "github.com/antihax/optional" "io/ioutil" "net/http" "net/url" "strings" ) // Linger please var ( _ context.Context ) // SpotApiService SpotApi service type SpotApiService service /* ListCurrencies List all currencies' details When a currency corresponds to multiple chains, you can query the information of multiple chains through the `chains` field, such as the charging and recharge status, identification, etc. of the chain. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @return []Currency */ func (a *SpotApiService) ListCurrencies(ctx context.Context) ([]Currency, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue []Currency ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/currencies" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } ctx = context.WithValue(ctx, ContextPublic, true) r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } /* GetCurrency Get details of a specific currency - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param currency Currency name @return Currency */ func (a *SpotApiService) GetCurrency(ctx context.Context, currency string) (Currency, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue Currency ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/currencies/{currency}" localVarPath = strings.Replace(localVarPath, "{"+"currency"+"}", url.QueryEscape(parameterToString(currency, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } ctx = context.WithValue(ctx, ContextPublic, true) r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } /* ListCurrencyPairs List all currency pairs supported - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @return []CurrencyPair */ func (a *SpotApiService) ListCurrencyPairs(ctx context.Context) ([]CurrencyPair, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue []CurrencyPair ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/currency_pairs" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } ctx = context.WithValue(ctx, ContextPublic, true) r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } /* GetCurrencyPair Get details of a specifc currency pair - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param currencyPair Currency pair @return CurrencyPair */ func (a *SpotApiService) GetCurrencyPair(ctx context.Context, currencyPair string) (CurrencyPair, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue CurrencyPair ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/currency_pairs/{currency_pair}" localVarPath = strings.Replace(localVarPath, "{"+"currency_pair"+"}", url.QueryEscape(parameterToString(currencyPair, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } ctx = context.WithValue(ctx, ContextPublic, true) r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // ListTickersOpts Optional parameters for the method 'ListTickers' type ListTickersOpts struct { CurrencyPair optional.String Timezone optional.String } /* ListTickers Retrieve ticker information Return only related data if `currency_pair` is specified; otherwise return all of them - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param optional nil or *ListTickersOpts - Optional Parameters: - @param "CurrencyPair" (optional.String) - Currency pair - @param "Timezone" (optional.String) - Timezone @return []Ticker */ func (a *SpotApiService) ListTickers(ctx context.Context, localVarOptionals *ListTickersOpts) ([]Ticker, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue []Ticker ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/tickers" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if localVarOptionals != nil && localVarOptionals.CurrencyPair.IsSet() { localVarQueryParams.Add("currency_pair", parameterToString(localVarOptionals.CurrencyPair.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Timezone.IsSet() { localVarQueryParams.Add("timezone", parameterToString(localVarOptionals.Timezone.Value(), "")) } // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } ctx = context.WithValue(ctx, ContextPublic, true) r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // ListOrderBookOpts Optional parameters for the method 'ListOrderBook' type ListOrderBookOpts struct { Interval optional.String Limit optional.Int32 WithId optional.Bool } /* ListOrderBook Retrieve order book Market depth buy orders are sorted by price from high to low, sell orders are reversed are reversed - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param currencyPair Currency pair - @param optional nil or *ListOrderBookOpts - Optional Parameters: - @param "Interval" (optional.String) - Order depth. 0 means no aggregation is applied. default to 0 - @param "Limit" (optional.Int32) - Maximum number of order depth data in asks or bids - @param "WithId" (optional.Bool) - Return order book ID @return OrderBook */ func (a *SpotApiService) ListOrderBook(ctx context.Context, currencyPair string, localVarOptionals *ListOrderBookOpts) (OrderBook, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue OrderBook ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/order_book" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} localVarQueryParams.Add("currency_pair", parameterToString(currencyPair, "")) if localVarOptionals != nil && localVarOptionals.Interval.IsSet() { localVarQueryParams.Add("interval", parameterToString(localVarOptionals.Interval.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) } if localVarOptionals != nil && localVarOptionals.WithId.IsSet() { localVarQueryParams.Add("with_id", parameterToString(localVarOptionals.WithId.Value(), "")) } // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } ctx = context.WithValue(ctx, ContextPublic, true) r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // ListTradesOpts Optional parameters for the method 'ListTrades' type ListTradesOpts struct { Limit optional.Int32 LastId optional.String Reverse optional.Bool From optional.Int64 To optional.Int64 Page optional.Int32 } /* ListTrades Retrieve market trades Supports `from` and `to` by time range query or page-turn query based on `last_id`. By default, query by time range is the last 30 days. The query method based on `last_id` page turn is no longer recommended. If `last_id` is specified, the time range query parameters will be ignored. The maximum number of pages when searching data using limit&page paging function is 100,000, that is, limit * (page - 1) <= 100,000. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param currencyPair Currency pair - @param optional nil or *ListTradesOpts - Optional Parameters: - @param "Limit" (optional.Int32) - Maximum number of records to be returned in a single list. Default: 100, Minimum: 1, Maximum: 1000 - @param "LastId" (optional.String) - Specify the currency name to query in batches, and support up to 100 pass parameters at a time. - @param "Reverse" (optional.Bool) - Whether the id of records to be retrieved should be less than the last_id specified. Default to false. When `last_id` is specified. Set `reverse` to `true` to trace back trading history; `false` to retrieve latest tradings. No effect if `last_id` is not specified. - @param "From" (optional.Int64) - Start timestamp of the query - @param "To" (optional.Int64) - Time range ending, default to current time - @param "Page" (optional.Int32) - Page number @return []Trade */ func (a *SpotApiService) ListTrades(ctx context.Context, currencyPair string, localVarOptionals *ListTradesOpts) ([]Trade, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue []Trade ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/trades" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} localVarQueryParams.Add("currency_pair", parameterToString(currencyPair, "")) if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) } if localVarOptionals != nil && localVarOptionals.LastId.IsSet() { localVarQueryParams.Add("last_id", parameterToString(localVarOptionals.LastId.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Reverse.IsSet() { localVarQueryParams.Add("reverse", parameterToString(localVarOptionals.Reverse.Value(), "")) } if localVarOptionals != nil && localVarOptionals.From.IsSet() { localVarQueryParams.Add("from", parameterToString(localVarOptionals.From.Value(), "")) } if localVarOptionals != nil && localVarOptionals.To.IsSet() { localVarQueryParams.Add("to", parameterToString(localVarOptionals.To.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Page.IsSet() { localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page.Value(), "")) } // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } ctx = context.WithValue(ctx, ContextPublic, true) r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // ListCandlesticksOpts Optional parameters for the method 'ListCandlesticks' type ListCandlesticksOpts struct { Limit optional.Int32 From optional.Int64 To optional.Int64 Interval optional.String } /* ListCandlesticks Market candlesticks Maximum of 1000 points can be returned in a query. Be sure not to exceed the limit when specifying from, to and interval - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param currencyPair Currency pair - @param optional nil or *ListCandlesticksOpts - Optional Parameters: - @param "Limit" (optional.Int32) - Maximum recent data points to return. `limit` is conflicted with `from` and `to`. If either `from` or `to` is specified, request will be rejected. - @param "From" (optional.Int64) - Start time of candlesticks, formatted in Unix timestamp in seconds. Default to`to - 100 * interval` if not specified - @param "To" (optional.Int64) - Specify the end time of the K-line chart, defaults to current time if not specified, note that the time format is Unix timestamp with second - @param "Interval" (optional.String) - Interval time between data points. Note that `30d` means 1 natual month, not 30 days @return [][]string */ func (a *SpotApiService) ListCandlesticks(ctx context.Context, currencyPair string, localVarOptionals *ListCandlesticksOpts) ([][]string, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue [][]string ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/candlesticks" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} localVarQueryParams.Add("currency_pair", parameterToString(currencyPair, "")) if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) } if localVarOptionals != nil && localVarOptionals.From.IsSet() { localVarQueryParams.Add("from", parameterToString(localVarOptionals.From.Value(), "")) } if localVarOptionals != nil && localVarOptionals.To.IsSet() { localVarQueryParams.Add("to", parameterToString(localVarOptionals.To.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Interval.IsSet() { localVarQueryParams.Add("interval", parameterToString(localVarOptionals.Interval.Value(), "")) } // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } ctx = context.WithValue(ctx, ContextPublic, true) r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // GetFeeOpts Optional parameters for the method 'GetFee' type GetFeeOpts struct { CurrencyPair optional.String } /* GetFee Query user trading fee rates This API is deprecated in favour of new fee retrieving API `/wallet/fee`. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param optional nil or *GetFeeOpts - Optional Parameters: - @param "CurrencyPair" (optional.String) - Specify a currency pair to retrieve precise fee rate This field is optional. In most cases, the fee rate is identical among all currency pairs @return SpotFee */ func (a *SpotApiService) GetFee(ctx context.Context, localVarOptionals *GetFeeOpts) (SpotFee, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue SpotFee ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/fee" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if localVarOptionals != nil && localVarOptionals.CurrencyPair.IsSet() { localVarQueryParams.Add("currency_pair", parameterToString(localVarOptionals.CurrencyPair.Value(), "")) } // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } /* GetBatchSpotFee Query a batch of user trading fee rates - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param currencyPairs A request can only query up to 50 currency pairs @return map[string]SpotFee */ func (a *SpotApiService) GetBatchSpotFee(ctx context.Context, currencyPairs string) (map[string]SpotFee, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue map[string]SpotFee ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/batch_fee" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} localVarQueryParams.Add("currency_pairs", parameterToString(currencyPairs, "")) // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // ListSpotAccountsOpts Optional parameters for the method 'ListSpotAccounts' type ListSpotAccountsOpts struct { Currency optional.String } /* ListSpotAccounts List spot accounts - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param optional nil or *ListSpotAccountsOpts - Optional Parameters: - @param "Currency" (optional.String) - Retrieve data of the specified currency @return []SpotAccount */ func (a *SpotApiService) ListSpotAccounts(ctx context.Context, localVarOptionals *ListSpotAccountsOpts) ([]SpotAccount, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue []SpotAccount ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/accounts" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if localVarOptionals != nil && localVarOptionals.Currency.IsSet() { localVarQueryParams.Add("currency", parameterToString(localVarOptionals.Currency.Value(), "")) } // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // ListSpotAccountBookOpts Optional parameters for the method 'ListSpotAccountBook' type ListSpotAccountBookOpts struct { Currency optional.String From optional.Int64 To optional.Int64 Page optional.Int32 Limit optional.Int32 Type_ optional.String Code optional.String } /* ListSpotAccountBook Query account book Record query time range is not allowed to exceed 30 days. The maximum number of pages when searching data using limit&page paging function is 100,000, that is, limit * (page - 1) <= 100,000. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param optional nil or *ListSpotAccountBookOpts - Optional Parameters: - @param "Currency" (optional.String) - Retrieve data of the specified currency - @param "From" (optional.Int64) - Start timestamp of the query - @param "To" (optional.Int64) - Time range ending, default to current time - @param "Page" (optional.Int32) - Page number - @param "Limit" (optional.Int32) - Maximum number of records to be returned in a single list - @param "Type_" (optional.String) - Only retrieve changes of the specified type. All types will be returned if not specified. - @param "Code" (optional.String) - Specify account change code query, if not specified, all change types are included, and the priority is higher than `type` @return []SpotAccountBook */ func (a *SpotApiService) ListSpotAccountBook(ctx context.Context, localVarOptionals *ListSpotAccountBookOpts) ([]SpotAccountBook, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue []SpotAccountBook ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/account_book" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if localVarOptionals != nil && localVarOptionals.Currency.IsSet() { localVarQueryParams.Add("currency", parameterToString(localVarOptionals.Currency.Value(), "")) } if localVarOptionals != nil && localVarOptionals.From.IsSet() { localVarQueryParams.Add("from", parameterToString(localVarOptionals.From.Value(), "")) } if localVarOptionals != nil && localVarOptionals.To.IsSet() { localVarQueryParams.Add("to", parameterToString(localVarOptionals.To.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Page.IsSet() { localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Type_.IsSet() { localVarQueryParams.Add("type", parameterToString(localVarOptionals.Type_.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Code.IsSet() { localVarQueryParams.Add("code", parameterToString(localVarOptionals.Code.Value(), "")) } // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // CreateBatchOrdersOpts Optional parameters for the method 'CreateBatchOrders' type CreateBatchOrdersOpts struct { XGateExptime optional.String } /* CreateBatchOrders Create a batch of orders Batch orders requirements: 1. custom order field `text` is required 2. At most 4 currency pairs, maximum 10 orders each, are allowed in one request 3. No mixture of spot orders and margin orders, i.e. `account` must be identical for all orders - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param order - @param optional nil or *CreateBatchOrdersOpts - Optional Parameters: - @param "XGateExptime" (optional.String) - Specify the expiration time (milliseconds); if the GATE receives the request time greater than the expiration time, the request will be rejected @return []BatchOrder */ func (a *SpotApiService) CreateBatchOrders(ctx context.Context, order []Order, localVarOptionals *CreateBatchOrdersOpts) ([]BatchOrder, *http.Response, error) { var ( localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue []BatchOrder ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/batch_orders" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if localVarOptionals != nil && localVarOptionals.XGateExptime.IsSet() { localVarHeaderParams["x-gate-exptime"] = parameterToString(localVarOptionals.XGateExptime.Value(), "") } // body params localVarPostBody = &order if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // ListAllOpenOrdersOpts Optional parameters for the method 'ListAllOpenOrders' type ListAllOpenOrdersOpts struct { Page optional.Int32 Limit optional.Int32 Account optional.String } /* ListAllOpenOrders List all open orders Query the current order list of all trading pairs. Please note that the paging parameter controls the number of pending orders in each trading pair. There is no paging control for the number of trading pairs. All trading pairs with pending orders will be returned. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param optional nil or *ListAllOpenOrdersOpts - Optional Parameters: - @param "Page" (optional.Int32) - Page number - @param "Limit" (optional.Int32) - Maximum number of records returned in one page in each currency pair - @param "Account" (optional.String) - Specify query account. @return []OpenOrders */ func (a *SpotApiService) ListAllOpenOrders(ctx context.Context, localVarOptionals *ListAllOpenOrdersOpts) ([]OpenOrders, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue []OpenOrders ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/open_orders" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if localVarOptionals != nil && localVarOptionals.Page.IsSet() { localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Account.IsSet() { localVarQueryParams.Add("account", parameterToString(localVarOptionals.Account.Value(), "")) } // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } /* CreateCrossLiquidateOrder close position when cross-currency is disabled Currently, only cross-margin accounts are supported to close position when cross currencies are disabled. Maximum buy quantity = (unpaid principal and interest - currency balance - the amount of the currency in the order book) / 0.998 - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param liquidateOrder @return Order */ func (a *SpotApiService) CreateCrossLiquidateOrder(ctx context.Context, liquidateOrder LiquidateOrder) (Order, *http.Response, error) { var ( localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue Order ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/cross_liquidate_orders" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } // body params localVarPostBody = &liquidateOrder if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // ListOrdersOpts Optional parameters for the method 'ListOrders' type ListOrdersOpts struct { Page optional.Int32 Limit optional.Int32 Account optional.String From optional.Int64 To optional.Int64 Side optional.String } /* ListOrders List orders Note that the query results are spot order lists for spot, unified account and warehouse-by-site leverage accounts by default. `status` is set to `open`, that is, when querying the pending order list, only pagination control of `page` and `limit` is supported. `limit` Maximum setting is only allowed to 100 . The `side` and `from`, `to` parameters for time range query are not supported. `status` is set to `finished`, that is, when querying historical delegations, in addition to pagination queries, `from` and `to` are also supported by time range queries. In addition, it supports setting the `side` parameter to filter one-side history. The parameters of the time range filtering are processed according to the order end time. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param currencyPair Retrieve results with specified currency pair. It is required for open orders, but optional for finished ones. - @param status List orders based on status `open` - order is waiting to be filled `finished` - order has been filled or cancelled - @param optional nil or *ListOrdersOpts - Optional Parameters: - @param "Page" (optional.Int32) - Page number - @param "Limit" (optional.Int32) - Maximum number of records to be returned. If `status` is `open`, maximum of `limit` is 100 - @param "Account" (optional.String) - Specify query account. - @param "From" (optional.Int64) - Start timestamp of the query - @param "To" (optional.Int64) - Time range ending, default to current time - @param "Side" (optional.String) - All bids or asks. Both included if not specified @return []Order */ func (a *SpotApiService) ListOrders(ctx context.Context, currencyPair string, status string, localVarOptionals *ListOrdersOpts) ([]Order, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue []Order ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/orders" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} localVarQueryParams.Add("currency_pair", parameterToString(currencyPair, "")) localVarQueryParams.Add("status", parameterToString(status, "")) if localVarOptionals != nil && localVarOptionals.Page.IsSet() { localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Account.IsSet() { localVarQueryParams.Add("account", parameterToString(localVarOptionals.Account.Value(), "")) } if localVarOptionals != nil && localVarOptionals.From.IsSet() { localVarQueryParams.Add("from", parameterToString(localVarOptionals.From.Value(), "")) } if localVarOptionals != nil && localVarOptionals.To.IsSet() { localVarQueryParams.Add("to", parameterToString(localVarOptionals.To.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Side.IsSet() { localVarQueryParams.Add("side", parameterToString(localVarOptionals.Side.Value(), "")) } // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // CreateOrderOpts Optional parameters for the method 'CreateOrder' type CreateOrderOpts struct { XGateExptime optional.String } /* CreateOrder Create an order Support spot, margin, leverage, and full-position leverage orders. Use different accounts through the `account` field, default is `spot`, that is, use the spot account to place an order if the user is `unified` account, default is to place an order with a unified account When using leveraged account trading, that is, when `account` is set to `margin`, you can set `auto_borrow` to `true`, In the case of insufficient account balance, the system will automatically execute the `POST /margin/uni/loans` to borrow the insufficient part. Whether the assets obtained after the leveraged order is automatically used to return the borrowing orders of the leveraged account in a position-by-store leverage account depends on the automatic repayment settings of the user's position-by-store leverage account**, The account automatic repayment settings can be queried and set through `/margin/auto_repay`. Use unified account transactions, that is, when `account` is set to `unified`, `auto_borrow` \" can also be enableTo realize the insufficient part of automatic borrowing, but unlike the leverage account, whether the entrustment of a unified account is automatically repayable depends on the when placing an order`auto_repay` setting, this setting is only effective for the current entrustment, that is, only the assets obtained after the entrustment transaction will be used to repay the borrowing orders of the full-position leverage account. Unified account ordering currently supports `auto_borrow` and `auto_repay` at the same time. Auto repayment will be triggered at the end of the order, i.e. `status` is `cancelled` or `closed` . **Delegation Status** The entrustment status in the pending order is `open`, which remains at `open` until all the quantity is traded. If it is eaten, the order ends and the status becomes `closed`. If the order is cancelled before all transactions are completed, regardless of whether there are partial transactions, the status will become `cancelled` **Iceberg Entrustment** `iceberg` is used to set the number of iceberg delegations displayed, and does not support complete hiding. Note that when hidden part of the transaction is charged according to the taker's handling rate. **Restrict user transactions** Set `stp_act` to decide to use strategies that limit user transactions - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param order - @param optional nil or *CreateOrderOpts - Optional Parameters: - @param "XGateExptime" (optional.String) - Specify the expiration time (milliseconds); if the GATE receives the request time greater than the expiration time, the request will be rejected @return Order */ func (a *SpotApiService) CreateOrder(ctx context.Context, order Order, localVarOptionals *CreateOrderOpts) (Order, *http.Response, error) { var ( localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue Order ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/orders" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if localVarOptionals != nil && localVarOptionals.XGateExptime.IsSet() { localVarHeaderParams["x-gate-exptime"] = parameterToString(localVarOptionals.XGateExptime.Value(), "") } // body params localVarPostBody = &order if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // CancelOrdersOpts Optional parameters for the method 'CancelOrders' type CancelOrdersOpts struct { CurrencyPair optional.String Side optional.String Account optional.String ActionMode optional.String XGateExptime optional.String } /* CancelOrders Cancel all `open` orders in specified currency pair When the `account` parameter is not specified, all pending orders including spot, unified account, and position-by-position leverage will be cancelled. When `currency_pair` is not specified, all transaction pairs are revoked You can specify a certain account separately to cancel all orders under the specified account - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param optional nil or *CancelOrdersOpts - Optional Parameters: - @param "CurrencyPair" (optional.String) - Currency pair - @param "Side" (optional.String) - All bids or asks. Both included if not specified - @param "Account" (optional.String) - Specify account type Classic account: All are included if not specified Unified account: Specify unified - @param "ActionMode" (optional.String) - Processing Mode When placing an order, different fields are returned based on the action_mode - ACK: Asynchronous mode, returns only key order fields - RESULT: No clearing information - FULL: Full mode (default) - @param "XGateExptime" (optional.String) - Specify the expiration time (milliseconds); if the GATE receives the request time greater than the expiration time, the request will be rejected @return []OrderCancel */ func (a *SpotApiService) CancelOrders(ctx context.Context, localVarOptionals *CancelOrdersOpts) ([]OrderCancel, *http.Response, error) { var ( localVarHTTPMethod = http.MethodDelete localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue []OrderCancel ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/orders" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if localVarOptionals != nil && localVarOptionals.CurrencyPair.IsSet() { localVarQueryParams.Add("currency_pair", parameterToString(localVarOptionals.CurrencyPair.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Side.IsSet() { localVarQueryParams.Add("side", parameterToString(localVarOptionals.Side.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Account.IsSet() { localVarQueryParams.Add("account", parameterToString(localVarOptionals.Account.Value(), "")) } if localVarOptionals != nil && localVarOptionals.ActionMode.IsSet() { localVarQueryParams.Add("action_mode", parameterToString(localVarOptionals.ActionMode.Value(), "")) } // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if localVarOptionals != nil && localVarOptionals.XGateExptime.IsSet() { localVarHeaderParams["x-gate-exptime"] = parameterToString(localVarOptionals.XGateExptime.Value(), "") } if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // CancelBatchOrdersOpts Optional parameters for the method 'CancelBatchOrders' type CancelBatchOrdersOpts struct { XGateExptime optional.String } /* CancelBatchOrders Cancel a batch of orders with an ID list Multiple currency pairs can be specified, but maximum 20 orders are allowed per request - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param cancelBatchOrder - @param optional nil or *CancelBatchOrdersOpts - Optional Parameters: - @param "XGateExptime" (optional.String) - Specify the expiration time (milliseconds); if the GATE receives the request time greater than the expiration time, the request will be rejected @return []CancelOrderResult */ func (a *SpotApiService) CancelBatchOrders(ctx context.Context, cancelBatchOrder []CancelBatchOrder, localVarOptionals *CancelBatchOrdersOpts) ([]CancelOrderResult, *http.Response, error) { var ( localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue []CancelOrderResult ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/cancel_batch_orders" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if localVarOptionals != nil && localVarOptionals.XGateExptime.IsSet() { localVarHeaderParams["x-gate-exptime"] = parameterToString(localVarOptionals.XGateExptime.Value(), "") } // body params localVarPostBody = &cancelBatchOrder if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // GetOrderOpts Optional parameters for the method 'GetOrder' type GetOrderOpts struct { Account optional.String } /* GetOrder Get a single order By default, orders for spot, unified account and warehouse-by-site leverage account are checked. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param orderId The order ID returned when the order was successfully created or the custom ID specified by the user's creation (i.e. the `text` field). Operations based on custom IDs can only be checked in pending orders. Only order ID can be used after the order is finished (transaction/cancel) - @param currencyPair Specify the transaction pair to query. If you are querying pending order records, this field is required. If you are querying traded records, this field can be left blank. - @param optional nil or *GetOrderOpts - Optional Parameters: - @param "Account" (optional.String) - Specify query account. @return Order */ func (a *SpotApiService) GetOrder(ctx context.Context, orderId string, currencyPair string, localVarOptionals *GetOrderOpts) (Order, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue Order ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/orders/{order_id}" localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", url.QueryEscape(parameterToString(orderId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} localVarQueryParams.Add("currency_pair", parameterToString(currencyPair, "")) if localVarOptionals != nil && localVarOptionals.Account.IsSet() { localVarQueryParams.Add("account", parameterToString(localVarOptionals.Account.Value(), "")) } // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // CancelOrderOpts Optional parameters for the method 'CancelOrder' type CancelOrderOpts struct { Account optional.String ActionMode optional.String XGateExptime optional.String } /* CancelOrder Cancel a single order By default, orders for spot, unified accounts and leveraged accounts are revoked. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param orderId The order ID returned when the order was successfully created or the custom ID specified by the user's creation (i.e. the `text` field). Operations based on custom IDs can only be checked in pending orders. Only order ID can be used after the order is finished (transaction/cancel) - @param currencyPair Currency pair - @param optional nil or *CancelOrderOpts - Optional Parameters: - @param "Account" (optional.String) - Specify query account. - @param "ActionMode" (optional.String) - Processing Mode When placing an order, different fields are returned based on the action_mode - ACK: Asynchronous mode, returns only key order fields - RESULT: No clearing information - FULL: Full mode (default) - @param "XGateExptime" (optional.String) - Specify the expiration time (milliseconds); if the GATE receives the request time greater than the expiration time, the request will be rejected @return Order */ func (a *SpotApiService) CancelOrder(ctx context.Context, orderId string, currencyPair string, localVarOptionals *CancelOrderOpts) (Order, *http.Response, error) { var ( localVarHTTPMethod = http.MethodDelete localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue Order ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/orders/{order_id}" localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", url.QueryEscape(parameterToString(orderId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} localVarQueryParams.Add("currency_pair", parameterToString(currencyPair, "")) if localVarOptionals != nil && localVarOptionals.Account.IsSet() { localVarQueryParams.Add("account", parameterToString(localVarOptionals.Account.Value(), "")) } if localVarOptionals != nil && localVarOptionals.ActionMode.IsSet() { localVarQueryParams.Add("action_mode", parameterToString(localVarOptionals.ActionMode.Value(), "")) } // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if localVarOptionals != nil && localVarOptionals.XGateExptime.IsSet() { localVarHeaderParams["x-gate-exptime"] = parameterToString(localVarOptionals.XGateExptime.Value(), "") } if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // AmendOrderOpts Optional parameters for the method 'AmendOrder' type AmendOrderOpts struct { CurrencyPair optional.String Account optional.String XGateExptime optional.String } /* AmendOrder Amend an order Modify orders in spot, unified account and isolated margin account by default. Currently both request body and query support currency_pair and account parameters, but request body has higher priority. currency_pair must be filled in one of the request body or query parameters. About rate limit: Order modification and order creation share the same rate limit rules. About matching priority: Only reducing the quantity does not affect the matching priority. Modifying the price or increasing the quantity will adjust the priority to the end of the new price level. Note: Modifying the quantity to be less than the filled quantity will trigger a cancellation operation.Modify orders in spot, unified account and isolated margin account by default. Currently both request body and query support currency_pair and account parameters, but request body has higher priority. currency_pair must be filled in one of the request body or query parameters. About rate limit: Order modification and order creation share the same rate limit rules. About matching priority: Only reducing the quantity does not affect the matching priority. Modifying the price or increasing the quantity will adjust the priority to the end of the new price level. Note: Modifying the quantity to be less than the filled quantity will trigger a cancellation operation. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param orderId The order ID returned when the order was successfully created or the custom ID specified by the user's creation (i.e. the `text` field). Operations based on custom IDs can only be checked in pending orders. Only order ID can be used after the order is finished (transaction/cancel) - @param orderPatch - @param optional nil or *AmendOrderOpts - Optional Parameters: - @param "CurrencyPair" (optional.String) - Currency pair - @param "Account" (optional.String) - Specify query account. - @param "XGateExptime" (optional.String) - Specify the expiration time (milliseconds); if the GATE receives the request time greater than the expiration time, the request will be rejected @return Order */ func (a *SpotApiService) AmendOrder(ctx context.Context, orderId string, orderPatch OrderPatch, localVarOptionals *AmendOrderOpts) (Order, *http.Response, error) { var ( localVarHTTPMethod = http.MethodPatch localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue Order ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/orders/{order_id}" localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", url.QueryEscape(parameterToString(orderId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if localVarOptionals != nil && localVarOptionals.CurrencyPair.IsSet() { localVarQueryParams.Add("currency_pair", parameterToString(localVarOptionals.CurrencyPair.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Account.IsSet() { localVarQueryParams.Add("account", parameterToString(localVarOptionals.Account.Value(), "")) } // to determine the Content-Type header localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if localVarOptionals != nil && localVarOptionals.XGateExptime.IsSet() { localVarHeaderParams["x-gate-exptime"] = parameterToString(localVarOptionals.XGateExptime.Value(), "") } // body params localVarPostBody = &orderPatch if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // ListMyTradesOpts Optional parameters for the method 'ListMyTrades' type ListMyTradesOpts struct { CurrencyPair optional.String Limit optional.Int32 Page optional.Int32 OrderId optional.String Account optional.String From optional.Int64 To optional.Int64 } /* ListMyTrades List personal trading history By default query of transaction records for spot, unified account and warehouse-by-site leverage accounts. The history within a specified time range can be queried by specifying `from` or (and) `to`. - If no time parameters are specified, only data for the last 7 days can be obtained. - If only any parameter of `from` or `to` is specified, only 7-day data from the start (or end) of the specified time is returned. - The range of `from` and `to` is not allowed to exceed 30 days. The parameters of the time range filter are processed according to the order end time. The maximum number of pages when searching data using limit&page paging function is 100,000, that is, limit * (page - 1) <= 100,000. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param optional nil or *ListMyTradesOpts - Optional Parameters: - @param "CurrencyPair" (optional.String) - Retrieve results with specified currency pair - @param "Limit" (optional.Int32) - Maximum number of records to be returned in a single list. Default: 100, Minimum: 1, Maximum: 1000 - @param "Page" (optional.Int32) - Page number - @param "OrderId" (optional.String) - Filter trades with specified order ID. `currency_pair` is also required if this field is present - @param "Account" (optional.String) - Specify query account. - @param "From" (optional.Int64) - Start timestamp of the query - @param "To" (optional.Int64) - Time range ending, default to current time @return []Trade */ func (a *SpotApiService) ListMyTrades(ctx context.Context, localVarOptionals *ListMyTradesOpts) ([]Trade, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue []Trade ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/my_trades" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if localVarOptionals != nil && localVarOptionals.CurrencyPair.IsSet() { localVarQueryParams.Add("currency_pair", parameterToString(localVarOptionals.CurrencyPair.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Page.IsSet() { localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page.Value(), "")) } if localVarOptionals != nil && localVarOptionals.OrderId.IsSet() { localVarQueryParams.Add("order_id", parameterToString(localVarOptionals.OrderId.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Account.IsSet() { localVarQueryParams.Add("account", parameterToString(localVarOptionals.Account.Value(), "")) } if localVarOptionals != nil && localVarOptionals.From.IsSet() { localVarQueryParams.Add("from", parameterToString(localVarOptionals.From.Value(), "")) } if localVarOptionals != nil && localVarOptionals.To.IsSet() { localVarQueryParams.Add("to", parameterToString(localVarOptionals.To.Value(), "")) } // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } /* GetSystemTime Get server current time - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @return SystemTime */ func (a *SpotApiService) GetSystemTime(ctx context.Context) (SystemTime, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue SystemTime ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/time" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } ctx = context.WithValue(ctx, ContextPublic, true) r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } /* CountdownCancelAllSpot Countdown cancel orders Spot order heartbeat detection. If there is no \"cancel existing countdown\" or \"set new countdown\" when the user-set `timeout` time is reached, the related `spot pending orders` will be automatically cancelled. This interface can be called repeatedly to set a new countdown or cancel the countdown. Usage example: Repeat this interface at 30s intervals, setting the countdown `timeout` to `30 (seconds)` each time. If this interface is not called again within 30 seconds, all pending orders on the `market` you specified will be automatically cancelled. If no `market` is specified, all market pending orders will be cancelled. If the `timeout` is set to 0 within 30 seconds, the countdown timer will be terminated and the automatic order cancellation function will be cancelled. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param countdownCancelAllSpotTask @return TriggerTime */ func (a *SpotApiService) CountdownCancelAllSpot(ctx context.Context, countdownCancelAllSpotTask CountdownCancelAllSpotTask) (TriggerTime, *http.Response, error) { var ( localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue TriggerTime ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/countdown_cancel_all" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } // body params localVarPostBody = &countdownCancelAllSpotTask if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // AmendBatchOrdersOpts Optional parameters for the method 'AmendBatchOrders' type AmendBatchOrdersOpts struct { XGateExptime optional.String } /* AmendBatchOrders Batch modification of orders Modify orders in spot, unified account and isolated margin account by default. Modify uncompleted orders, up to 5 orders can be modified at a time. Request parameters should be passed in array format. If there are order modification failures during the batch modification process, the modification of the next order will continue to be executed, and the execution will return with the corresponding order failure information. The call order of batch modification orders is consistent with the order list order. The return content order of batch modification orders is consistent with the order list order. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param batchAmendItem - @param optional nil or *AmendBatchOrdersOpts - Optional Parameters: - @param "XGateExptime" (optional.String) - Specify the expiration time (milliseconds); if the GATE receives the request time greater than the expiration time, the request will be rejected @return []BatchOrder */ func (a *SpotApiService) AmendBatchOrders(ctx context.Context, batchAmendItem []BatchAmendItem, localVarOptionals *AmendBatchOrdersOpts) ([]BatchOrder, *http.Response, error) { var ( localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue []BatchOrder ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/amend_batch_orders" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if localVarOptionals != nil && localVarOptionals.XGateExptime.IsSet() { localVarHeaderParams["x-gate-exptime"] = parameterToString(localVarOptionals.XGateExptime.Value(), "") } // body params localVarPostBody = &batchAmendItem if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // GetSpotInsuranceHistoryOpts Optional parameters for the method 'GetSpotInsuranceHistory' type GetSpotInsuranceHistoryOpts struct { Page optional.Int32 Limit optional.Int32 } /* GetSpotInsuranceHistory Query spot insurance fund historical data - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param business Leverage business, margin - position by position; unified - unified account - @param currency Currency - @param from Start timestamp, seconds - @param to End timestamp, in seconds - @param optional nil or *GetSpotInsuranceHistoryOpts - Optional Parameters: - @param "Page" (optional.Int32) - Page number - @param "Limit" (optional.Int32) - The maximum number of items returned in the list, the default value is 30 @return []SpotInsuranceHistory */ func (a *SpotApiService) GetSpotInsuranceHistory(ctx context.Context, business string, currency string, from int64, to int64, localVarOptionals *GetSpotInsuranceHistoryOpts) ([]SpotInsuranceHistory, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue []SpotInsuranceHistory ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/insurance_history" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} localVarQueryParams.Add("business", parameterToString(business, "")) localVarQueryParams.Add("currency", parameterToString(currency, "")) if localVarOptionals != nil && localVarOptionals.Page.IsSet() { localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) } localVarQueryParams.Add("from", parameterToString(from, "")) localVarQueryParams.Add("to", parameterToString(to, "")) // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } ctx = context.WithValue(ctx, ContextPublic, true) r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // ListSpotPriceTriggeredOrdersOpts Optional parameters for the method 'ListSpotPriceTriggeredOrders' type ListSpotPriceTriggeredOrdersOpts struct { Market optional.String Account optional.String Limit optional.Int32 Offset optional.Int32 } /* ListSpotPriceTriggeredOrders Retrieve running auto order list - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param status Only list the orders with this status - @param optional nil or *ListSpotPriceTriggeredOrdersOpts - Optional Parameters: - @param "Market" (optional.String) - Currency pair - @param "Account" (optional.String) - Trading account type. Portfolio margin account must set to `unified` - @param "Limit" (optional.Int32) - Maximum number of records to be returned in a single list - @param "Offset" (optional.Int32) - List offset, starting from 0 @return []SpotPriceTriggeredOrder */ func (a *SpotApiService) ListSpotPriceTriggeredOrders(ctx context.Context, status string, localVarOptionals *ListSpotPriceTriggeredOrdersOpts) ([]SpotPriceTriggeredOrder, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue []SpotPriceTriggeredOrder ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/price_orders" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} localVarQueryParams.Add("status", parameterToString(status, "")) if localVarOptionals != nil && localVarOptionals.Market.IsSet() { localVarQueryParams.Add("market", parameterToString(localVarOptionals.Market.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Account.IsSet() { localVarQueryParams.Add("account", parameterToString(localVarOptionals.Account.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Offset.IsSet() { localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), "")) } // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } /* CreateSpotPriceTriggeredOrder Create a price-triggered order - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param spotPriceTriggeredOrder @return TriggerOrderResponse */ func (a *SpotApiService) CreateSpotPriceTriggeredOrder(ctx context.Context, spotPriceTriggeredOrder SpotPriceTriggeredOrder) (TriggerOrderResponse, *http.Response, error) { var ( localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue TriggerOrderResponse ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/price_orders" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } // body params localVarPostBody = &spotPriceTriggeredOrder if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } // CancelSpotPriceTriggeredOrderListOpts Optional parameters for the method 'CancelSpotPriceTriggeredOrderList' type CancelSpotPriceTriggeredOrderListOpts struct { Market optional.String Account optional.String } /* CancelSpotPriceTriggeredOrderList Cancel All Price-triggered Orders - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param optional nil or *CancelSpotPriceTriggeredOrderListOpts - Optional Parameters: - @param "Market" (optional.String) - Currency pair - @param "Account" (optional.String) - Trading account type. Portfolio margin account must set to `unified` @return []SpotPriceTriggeredOrder */ func (a *SpotApiService) CancelSpotPriceTriggeredOrderList(ctx context.Context, localVarOptionals *CancelSpotPriceTriggeredOrderListOpts) ([]SpotPriceTriggeredOrder, *http.Response, error) { var ( localVarHTTPMethod = http.MethodDelete localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue []SpotPriceTriggeredOrder ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/price_orders" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if localVarOptionals != nil && localVarOptionals.Market.IsSet() { localVarQueryParams.Add("market", parameterToString(localVarOptionals.Market.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Account.IsSet() { localVarQueryParams.Add("account", parameterToString(localVarOptionals.Account.Value(), "")) } // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } /* GetSpotPriceTriggeredOrder Get a price-triggered order - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param orderId Retrieve the data of the order with the specified ID @return SpotPriceTriggeredOrder */ func (a *SpotApiService) GetSpotPriceTriggeredOrder(ctx context.Context, orderId string) (SpotPriceTriggeredOrder, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue SpotPriceTriggeredOrder ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/price_orders/{order_id}" localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", url.QueryEscape(parameterToString(orderId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil } /* CancelSpotPriceTriggeredOrder cancel a price-triggered order - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param orderId Retrieve the data of the order with the specified ID @return SpotPriceTriggeredOrder */ func (a *SpotApiService) CancelSpotPriceTriggeredOrder(ctx context.Context, orderId string) (SpotPriceTriggeredOrder, *http.Response, error) { var ( localVarHTTPMethod = http.MethodDelete localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte localVarReturnValue SpotPriceTriggeredOrder ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/spot/price_orders/{order_id}" localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", url.QueryEscape(parameterToString(orderId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) if localVarHTTPContentType != "" { localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } if ctx == nil { ctx = context.Background() } if ctx.Value(ContextGateAPIV4) == nil { // for compatibility, set configuration key and secret to context if ContextGateAPIV4 value is not present ctx = context.WithValue(ctx, ContextGateAPIV4, GateAPIV4{ Key: a.client.cfg.Key, Secret: a.client.cfg.Secret, }) } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHTTPResponse, err := a.client.callAPI(r) if err != nil || localVarHTTPResponse == nil { return localVarReturnValue, localVarHTTPResponse, err } localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status + ", " + string(localVarBody), } var gateErr GateAPIError if e := a.client.decode(&gateErr, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")); e == nil && gateErr.Label != "" { gateErr.APIError = newErr return localVarReturnValue, localVarHTTPResponse, gateErr } return localVarReturnValue, localVarHTTPResponse, newErr } err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr := GenericOpenAPIError{ body: localVarBody, error: err.Error(), } return localVarReturnValue, localVarHTTPResponse, newErr } return localVarReturnValue, localVarHTTPResponse, nil }