From 6f31ddf032994a2f6713ec246e53beb49a59f97f Mon Sep 17 00:00:00 2001 From: Revil Wang Date: Thu, 9 Jul 2020 19:05:33 +0800 Subject: [PATCH] rewrite authentication --- .openapi-generator-ignore | 23 - .openapi-generator/VERSION | 1 - README.md | 240 +- api_delivery.go | 2705 ++++++++--------- api_futures.go | 2637 ++++++++-------- api_margin.go | 1429 +++++---- api_spot.go | 1555 +++++----- api_wallet.go | 542 ++-- api_withdrawal.go | 70 +- client.go | 180 +- configuration.go | 84 +- docs/BatchOrder.md | 31 +- docs/CancelOrder.md | 1 + docs/CancelOrderResult.md | 1 + docs/Contract.md | 1 + docs/CurrencyPair.md | 1 + docs/DeliveryApi.md | 2093 ++++++++----- docs/DeliveryContract.md | 3 +- docs/DeliverySettlement.md | 19 +- docs/DepositAddress.md | 1 + docs/FundingAccount.md | 1 + docs/FundingBookItem.md | 1 + docs/FundingRateRecord.md | 1 + docs/FuturesAccount.md | 1 + docs/FuturesAccountBook.md | 1 + docs/FuturesApi.md | 2096 ++++++++----- docs/FuturesCandlestick.md | 1 + docs/FuturesInitialOrder.md | 5 +- docs/FuturesLiquidate.md | 25 +- docs/FuturesOrder.md | 31 +- docs/FuturesOrderBook.md | 1 + docs/FuturesOrderBookItem.md | 1 + docs/FuturesPriceTrigger.md | 1 + docs/FuturesPriceTriggeredOrder.md | 17 +- docs/FuturesTicker.md | 1 + docs/FuturesTrade.md | 1 + docs/InsuranceRecord.md | 1 + docs/LedgerRecord.md | 9 +- docs/Loan.md | 17 +- docs/LoanPatch.md | 1 + docs/LoanRecord.md | 5 +- docs/MarginAccount.md | 1 + docs/MarginAccountBook.md | 16 + docs/MarginAccountCurrency.md | 1 + docs/MarginApi.md | 1121 ++++--- docs/MarginCurrencyPair.md | 1 + docs/MyFuturesTrade.md | 1 + docs/{GateErrorResponse.md => OpenOrders.md} | 8 +- docs/Order.md | 31 +- docs/OrderBook.md | 1 + docs/Position.md | 35 +- docs/PositionClose.md | 11 +- docs/PositionCloseOrder.md | 1 + docs/RepayRequest.md | 1 + docs/Repayment.md | 1 + docs/SpotAccount.md | 1 + docs/SpotApi.md | 1185 +++++--- docs/SubAccountTransfer.md | 7 +- docs/Ticker.md | 1 + docs/Trade.md | 1 + docs/TradeFee.md | 17 + docs/Transfer.md | 1 + docs/TriggerOrderResponse.md | 1 + docs/WalletApi.md | 406 ++- docs/WithdrawalApi.md | 61 +- git_push.sh | 16 +- go.mod | 5 + go.sum | 17 + model_batch_order.go | 2 +- model_delivery_contract.go | 2 +- model_futures_order.go | 2 +- model_margin_account.go | 6 +- model_margin_account_book.go | 25 + ..._error_response.go => model_open_orders.go | 12 +- model_order.go | 2 +- model_position.go | 4 +- model_trade_fee.go | 27 + response.go | 3 + 78 files changed, 9646 insertions(+), 7223 deletions(-) delete mode 100644 .openapi-generator-ignore delete mode 100644 .openapi-generator/VERSION create mode 100644 docs/MarginAccountBook.md rename docs/{GateErrorResponse.md => OpenOrders.md} (57%) create mode 100644 docs/TradeFee.md create mode 100644 go.mod create mode 100644 go.sum create mode 100644 model_margin_account_book.go rename model_gate_error_response.go => model_open_orders.go (60%) create mode 100644 model_trade_fee.go diff --git a/.openapi-generator-ignore b/.openapi-generator-ignore deleted file mode 100644 index 7484ee5..0000000 --- a/.openapi-generator-ignore +++ /dev/null @@ -1,23 +0,0 @@ -# OpenAPI Generator Ignore -# Generated by openapi-generator https://github.com/openapitools/openapi-generator - -# Use this file to prevent files from being overwritten by the generator. -# The patterns follow closely to .gitignore or .dockerignore. - -# As an example, the C# client generator defines ApiClient.cs. -# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: -#ApiClient.cs - -# You can match any string of characters against a directory, file or extension with a single asterisk (*): -#foo/*/qux -# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux - -# You can recursively match patterns against a directory, file or extension with a double asterisk (**): -#foo/**/qux -# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux - -# You can also negate patterns with an exclamation (!). -# For example, you can ignore all files in a docs folder with the file extension .md: -#docs/*.md -# Then explicitly reverse the ignore rule for a single file: -#!docs/README.md diff --git a/.openapi-generator/VERSION b/.openapi-generator/VERSION deleted file mode 100644 index 2c6109e..0000000 --- a/.openapi-generator/VERSION +++ /dev/null @@ -1 +0,0 @@ -3.3.4 \ No newline at end of file diff --git a/README.md b/README.md index 2155074..42c3665 100644 --- a/README.md +++ b/README.md @@ -2,171 +2,184 @@ APIv4 provides spot, margin and futures trading operations. There are public APIs to retrieve the real-time market statistics, and private APIs which needs authentication to trade on user's behalf. -## Specific note for 4.8.0 +## Overview +This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client. -**BREAKING** change: +- API version: 4.15.2 +- Package version: 4.15.2 +- Build package: org.openapitools.codegen.languages.GoClientCodegen +For more information, please visit [https://www.gate.io/page/contacts](https://www.gate.io/page/contacts) -4.8.0 add new support with different settle currency for futures API(BTC is the only one allowed before), which makes ALL methods in FuturesApi REQUIRE an additional `settle` parameter. +## Versioning -But previous `/futures/xxx` APIs are still preserved for compatibility usage(will be treated as BTC), so if one of the following condition is met: +Trying our best to follow the [semantic versioning](https://semver.org/), while enjoying recent features +provided by programming language and libraries, from 4.15.2, one major versioning difference will be +introduced: -- Changing all your futures method call to include `settle` is not a big issue for you -- You need to use futures settled in non-BTC currency +If extra code rewrite is required when you upgrade the SDK, such as: -then you'd better move to 4.8.0 and changes all your futures method call to pass in `settle` parameter. Otherwise, you can stick to version<=4.7.3, -but will not receive any future API upgrade support +- some outdated programming language version support is dropped +- API method signature has breaking changes. -## Overview -This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client. +**the MAJOR version will be incremented, but the MINOR and PATCH version are still following REST API's +instead of resetting to 0**, so that you can recognize it has some breaking changes, but still getting +the idea of from which REST API version the change is introduced. -- API version: 4.14.0 -- Package version: 4.14.0 -- Build package: org.openapitools.codegen.languages.GoClientCodegen -For more information, please visit [https://www.gate.io/page/contacts](https://www.gate.io/page/contacts) +For example, the previous REST API and SDK version are both 4.14.0. But if we decide to introduce +some breaking changes in SDK along with REST API 4.15.2 upgrade, then the version of next SDK release +will be 5.15.2(the MAJOR version is incremented to denote breaking changes, but the MINOR and PATCH +version are identical to REST API's instead of resetting them to 0) + +If MAJOR version is incremented, make sure you read the release note on +[Releases](https://github.com/gateio/gateapi-go/releases) +page ## Installation Install the following dependencies: -``` -go get golang.org/x/net/context + +```shell go get github.com/antihax/optional ``` -Put the package under the working directory(e.g. $GOPATH location), rename it into `gateapi` and in your own project add the following in import: +Put the package under your project folder and add the following in import: + ```golang -import "gateapi" +import "./gateapi" ``` ## Getting Started Please follow the [installation](#installation) instruction and execute the following Go code: -```golang +```golang package main import ( - "fmt" - "gateapi" + "context" + "fmt" + "gateapi" ) func main() { - client := gateapi.NewAPIClient(gateapi.NewConfiguration()) - // uncomment the next line if your are testing against other hosts - // client.ChangeBasePath("https://some-other-host") - client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") - api := client.DeliveryApi - - settle := "usdt"; // string - Settle currency - - orderId := "12345"; // string - ID returned on order successfully being created - result, _, err := api.CancelDeliveryOrder(nil, settle, orderId) - if err != nil { - fmt.Println(err.Error()) - } else { - fmt.Println(result) - } + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + settle := "usdt" // string - Settle currency + + result, _, err := client.DeliveryApi.ListDeliveryContracts(ctx, settle) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } - ``` + + ## Documentation for API Endpoints All URIs are relative to *https://api.gateio.ws/api/v4* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- -*DeliveryApi* | [**CancelDeliveryOrder**](docs/DeliveryApi.md#canceldeliveryorder) | **Delete** /delivery/{settle}/orders/{order_id} | Cancel a single order -*DeliveryApi* | [**CancelDeliveryOrders**](docs/DeliveryApi.md#canceldeliveryorders) | **Delete** /delivery/{settle}/orders | Cancel all `open` orders matched -*DeliveryApi* | [**CancelPriceTriggeredDeliveryOrder**](docs/DeliveryApi.md#cancelpricetriggereddeliveryorder) | **Delete** /delivery/{settle}/price_orders/{order_id} | Cancel a single order -*DeliveryApi* | [**CancelPriceTriggeredDeliveryOrderList**](docs/DeliveryApi.md#cancelpricetriggereddeliveryorderlist) | **Delete** /delivery/{settle}/price_orders | Cancel all open orders -*DeliveryApi* | [**CreateDeliveryOrder**](docs/DeliveryApi.md#createdeliveryorder) | **Post** /delivery/{settle}/orders | Create a futures order -*DeliveryApi* | [**CreatePriceTriggeredDeliveryOrder**](docs/DeliveryApi.md#createpricetriggereddeliveryorder) | **Post** /delivery/{settle}/price_orders | Create a price-triggered order +*DeliveryApi* | [**ListDeliveryContracts**](docs/DeliveryApi.md#listdeliverycontracts) | **Get** /delivery/{settle}/contracts | List all futures contracts *DeliveryApi* | [**GetDeliveryContract**](docs/DeliveryApi.md#getdeliverycontract) | **Get** /delivery/{settle}/contracts/{contract} | Get a single contract -*DeliveryApi* | [**GetDeliveryOrder**](docs/DeliveryApi.md#getdeliveryorder) | **Get** /delivery/{settle}/orders/{order_id} | Get a single order -*DeliveryApi* | [**GetDeliveryPosition**](docs/DeliveryApi.md#getdeliveryposition) | **Get** /delivery/{settle}/positions/{contract} | Get single position -*DeliveryApi* | [**GetMyDeliveryTrades**](docs/DeliveryApi.md#getmydeliverytrades) | **Get** /delivery/{settle}/my_trades | List personal trading history -*DeliveryApi* | [**GetPriceTriggeredDeliveryOrder**](docs/DeliveryApi.md#getpricetriggereddeliveryorder) | **Get** /delivery/{settle}/price_orders/{order_id} | Get a single order -*DeliveryApi* | [**ListDeliveryAccountBook**](docs/DeliveryApi.md#listdeliveryaccountbook) | **Get** /delivery/{settle}/account_book | Query account book -*DeliveryApi* | [**ListDeliveryAccounts**](docs/DeliveryApi.md#listdeliveryaccounts) | **Get** /delivery/{settle}/accounts | Query futures account +*DeliveryApi* | [**ListDeliveryOrderBook**](docs/DeliveryApi.md#listdeliveryorderbook) | **Get** /delivery/{settle}/order_book | Futures order book +*DeliveryApi* | [**ListDeliveryTrades**](docs/DeliveryApi.md#listdeliverytrades) | **Get** /delivery/{settle}/trades | Futures trading history *DeliveryApi* | [**ListDeliveryCandlesticks**](docs/DeliveryApi.md#listdeliverycandlesticks) | **Get** /delivery/{settle}/candlesticks | Get futures candlesticks -*DeliveryApi* | [**ListDeliveryContracts**](docs/DeliveryApi.md#listdeliverycontracts) | **Get** /delivery/{settle}/contracts | List all futures contracts +*DeliveryApi* | [**ListDeliveryTickers**](docs/DeliveryApi.md#listdeliverytickers) | **Get** /delivery/{settle}/tickers | List futures tickers *DeliveryApi* | [**ListDeliveryInsuranceLedger**](docs/DeliveryApi.md#listdeliveryinsuranceledger) | **Get** /delivery/{settle}/insurance | Futures insurance balance history -*DeliveryApi* | [**ListDeliveryLiquidates**](docs/DeliveryApi.md#listdeliveryliquidates) | **Get** /delivery/{settle}/liquidates | List liquidation history -*DeliveryApi* | [**ListDeliveryOrderBook**](docs/DeliveryApi.md#listdeliveryorderbook) | **Get** /delivery/{settle}/order_book | Futures order book +*DeliveryApi* | [**ListDeliveryAccounts**](docs/DeliveryApi.md#listdeliveryaccounts) | **Get** /delivery/{settle}/accounts | Query futures account +*DeliveryApi* | [**ListDeliveryAccountBook**](docs/DeliveryApi.md#listdeliveryaccountbook) | **Get** /delivery/{settle}/account_book | Query account book +*DeliveryApi* | [**ListDeliveryPositions**](docs/DeliveryApi.md#listdeliverypositions) | **Get** /delivery/{settle}/positions | List all positions of a user +*DeliveryApi* | [**GetDeliveryPosition**](docs/DeliveryApi.md#getdeliveryposition) | **Get** /delivery/{settle}/positions/{contract} | Get single position +*DeliveryApi* | [**UpdateDeliveryPositionMargin**](docs/DeliveryApi.md#updatedeliverypositionmargin) | **Post** /delivery/{settle}/positions/{contract}/margin | Update position margin +*DeliveryApi* | [**UpdateDeliveryPositionLeverage**](docs/DeliveryApi.md#updatedeliverypositionleverage) | **Post** /delivery/{settle}/positions/{contract}/leverage | Update position leverage +*DeliveryApi* | [**UpdateDeliveryPositionRiskLimit**](docs/DeliveryApi.md#updatedeliverypositionrisklimit) | **Post** /delivery/{settle}/positions/{contract}/risk_limit | Update position risk limit *DeliveryApi* | [**ListDeliveryOrders**](docs/DeliveryApi.md#listdeliveryorders) | **Get** /delivery/{settle}/orders | List futures orders +*DeliveryApi* | [**CreateDeliveryOrder**](docs/DeliveryApi.md#createdeliveryorder) | **Post** /delivery/{settle}/orders | Create a futures order +*DeliveryApi* | [**CancelDeliveryOrders**](docs/DeliveryApi.md#canceldeliveryorders) | **Delete** /delivery/{settle}/orders | Cancel all `open` orders matched +*DeliveryApi* | [**GetDeliveryOrder**](docs/DeliveryApi.md#getdeliveryorder) | **Get** /delivery/{settle}/orders/{order_id} | Get a single order +*DeliveryApi* | [**CancelDeliveryOrder**](docs/DeliveryApi.md#canceldeliveryorder) | **Delete** /delivery/{settle}/orders/{order_id} | Cancel a single order +*DeliveryApi* | [**GetMyDeliveryTrades**](docs/DeliveryApi.md#getmydeliverytrades) | **Get** /delivery/{settle}/my_trades | List personal trading history *DeliveryApi* | [**ListDeliveryPositionClose**](docs/DeliveryApi.md#listdeliverypositionclose) | **Get** /delivery/{settle}/position_close | List position close history -*DeliveryApi* | [**ListDeliveryPositions**](docs/DeliveryApi.md#listdeliverypositions) | **Get** /delivery/{settle}/positions | List all positions of a user +*DeliveryApi* | [**ListDeliveryLiquidates**](docs/DeliveryApi.md#listdeliveryliquidates) | **Get** /delivery/{settle}/liquidates | List liquidation history *DeliveryApi* | [**ListDeliverySettlements**](docs/DeliveryApi.md#listdeliverysettlements) | **Get** /delivery/{settle}/settlements | List settlement history -*DeliveryApi* | [**ListDeliveryTickers**](docs/DeliveryApi.md#listdeliverytickers) | **Get** /delivery/{settle}/tickers | List futures tickers -*DeliveryApi* | [**ListDeliveryTrades**](docs/DeliveryApi.md#listdeliverytrades) | **Get** /delivery/{settle}/trades | Futures trading history *DeliveryApi* | [**ListPriceTriggeredDeliveryOrders**](docs/DeliveryApi.md#listpricetriggereddeliveryorders) | **Get** /delivery/{settle}/price_orders | List all auto orders -*DeliveryApi* | [**UpdateDeliveryPositionLeverage**](docs/DeliveryApi.md#updatedeliverypositionleverage) | **Post** /delivery/{settle}/positions/{contract}/leverage | Update position leverage -*DeliveryApi* | [**UpdateDeliveryPositionMargin**](docs/DeliveryApi.md#updatedeliverypositionmargin) | **Post** /delivery/{settle}/positions/{contract}/margin | Update position margin -*DeliveryApi* | [**UpdateDeliveryPositionRiskLimit**](docs/DeliveryApi.md#updatedeliverypositionrisklimit) | **Post** /delivery/{settle}/positions/{contract}/risk_limit | Update position risk limit -*FuturesApi* | [**CancelFuturesOrder**](docs/FuturesApi.md#cancelfuturesorder) | **Delete** /futures/{settle}/orders/{order_id} | Cancel a single order -*FuturesApi* | [**CancelFuturesOrders**](docs/FuturesApi.md#cancelfuturesorders) | **Delete** /futures/{settle}/orders | Cancel all `open` orders matched -*FuturesApi* | [**CancelPriceTriggeredOrder**](docs/FuturesApi.md#cancelpricetriggeredorder) | **Delete** /futures/{settle}/price_orders/{order_id} | Cancel a single order -*FuturesApi* | [**CancelPriceTriggeredOrderList**](docs/FuturesApi.md#cancelpricetriggeredorderlist) | **Delete** /futures/{settle}/price_orders | Cancel all open orders -*FuturesApi* | [**CreateFuturesOrder**](docs/FuturesApi.md#createfuturesorder) | **Post** /futures/{settle}/orders | Create a futures order -*FuturesApi* | [**CreatePriceTriggeredOrder**](docs/FuturesApi.md#createpricetriggeredorder) | **Post** /futures/{settle}/price_orders | Create a price-triggered order +*DeliveryApi* | [**CreatePriceTriggeredDeliveryOrder**](docs/DeliveryApi.md#createpricetriggereddeliveryorder) | **Post** /delivery/{settle}/price_orders | Create a price-triggered order +*DeliveryApi* | [**CancelPriceTriggeredDeliveryOrderList**](docs/DeliveryApi.md#cancelpricetriggereddeliveryorderlist) | **Delete** /delivery/{settle}/price_orders | Cancel all open orders +*DeliveryApi* | [**GetPriceTriggeredDeliveryOrder**](docs/DeliveryApi.md#getpricetriggereddeliveryorder) | **Get** /delivery/{settle}/price_orders/{order_id} | Get a single order +*DeliveryApi* | [**CancelPriceTriggeredDeliveryOrder**](docs/DeliveryApi.md#cancelpricetriggereddeliveryorder) | **Delete** /delivery/{settle}/price_orders/{order_id} | Cancel a single order +*FuturesApi* | [**ListFuturesContracts**](docs/FuturesApi.md#listfuturescontracts) | **Get** /futures/{settle}/contracts | List all futures contracts *FuturesApi* | [**GetFuturesContract**](docs/FuturesApi.md#getfuturescontract) | **Get** /futures/{settle}/contracts/{contract} | Get a single contract -*FuturesApi* | [**GetFuturesOrder**](docs/FuturesApi.md#getfuturesorder) | **Get** /futures/{settle}/orders/{order_id} | Get a single order -*FuturesApi* | [**GetMyTrades**](docs/FuturesApi.md#getmytrades) | **Get** /futures/{settle}/my_trades | List personal trading history -*FuturesApi* | [**GetPosition**](docs/FuturesApi.md#getposition) | **Get** /futures/{settle}/positions/{contract} | Get single position -*FuturesApi* | [**GetPriceTriggeredOrder**](docs/FuturesApi.md#getpricetriggeredorder) | **Get** /futures/{settle}/price_orders/{order_id} | Get a single order -*FuturesApi* | [**ListFuturesAccountBook**](docs/FuturesApi.md#listfuturesaccountbook) | **Get** /futures/{settle}/account_book | Query account book -*FuturesApi* | [**ListFuturesAccounts**](docs/FuturesApi.md#listfuturesaccounts) | **Get** /futures/{settle}/accounts | Query futures account +*FuturesApi* | [**ListFuturesOrderBook**](docs/FuturesApi.md#listfuturesorderbook) | **Get** /futures/{settle}/order_book | Futures order book +*FuturesApi* | [**ListFuturesTrades**](docs/FuturesApi.md#listfuturestrades) | **Get** /futures/{settle}/trades | Futures trading history *FuturesApi* | [**ListFuturesCandlesticks**](docs/FuturesApi.md#listfuturescandlesticks) | **Get** /futures/{settle}/candlesticks | Get futures candlesticks -*FuturesApi* | [**ListFuturesContracts**](docs/FuturesApi.md#listfuturescontracts) | **Get** /futures/{settle}/contracts | List all futures contracts +*FuturesApi* | [**ListFuturesTickers**](docs/FuturesApi.md#listfuturestickers) | **Get** /futures/{settle}/tickers | List futures tickers *FuturesApi* | [**ListFuturesFundingRateHistory**](docs/FuturesApi.md#listfuturesfundingratehistory) | **Get** /futures/{settle}/funding_rate | Funding rate history *FuturesApi* | [**ListFuturesInsuranceLedger**](docs/FuturesApi.md#listfuturesinsuranceledger) | **Get** /futures/{settle}/insurance | Futures insurance balance history -*FuturesApi* | [**ListFuturesOrderBook**](docs/FuturesApi.md#listfuturesorderbook) | **Get** /futures/{settle}/order_book | Futures order book -*FuturesApi* | [**ListFuturesOrders**](docs/FuturesApi.md#listfuturesorders) | **Get** /futures/{settle}/orders | List futures orders -*FuturesApi* | [**ListFuturesTickers**](docs/FuturesApi.md#listfuturestickers) | **Get** /futures/{settle}/tickers | List futures tickers -*FuturesApi* | [**ListFuturesTrades**](docs/FuturesApi.md#listfuturestrades) | **Get** /futures/{settle}/trades | Futures trading history -*FuturesApi* | [**ListLiquidates**](docs/FuturesApi.md#listliquidates) | **Get** /futures/{settle}/liquidates | List liquidation history -*FuturesApi* | [**ListPositionClose**](docs/FuturesApi.md#listpositionclose) | **Get** /futures/{settle}/position_close | List position close history +*FuturesApi* | [**ListFuturesAccounts**](docs/FuturesApi.md#listfuturesaccounts) | **Get** /futures/{settle}/accounts | Query futures account +*FuturesApi* | [**ListFuturesAccountBook**](docs/FuturesApi.md#listfuturesaccountbook) | **Get** /futures/{settle}/account_book | Query account book *FuturesApi* | [**ListPositions**](docs/FuturesApi.md#listpositions) | **Get** /futures/{settle}/positions | List all positions of a user -*FuturesApi* | [**ListPriceTriggeredOrders**](docs/FuturesApi.md#listpricetriggeredorders) | **Get** /futures/{settle}/price_orders | List all auto orders -*FuturesApi* | [**UpdatePositionLeverage**](docs/FuturesApi.md#updatepositionleverage) | **Post** /futures/{settle}/positions/{contract}/leverage | Update position leverage +*FuturesApi* | [**GetPosition**](docs/FuturesApi.md#getposition) | **Get** /futures/{settle}/positions/{contract} | Get single position *FuturesApi* | [**UpdatePositionMargin**](docs/FuturesApi.md#updatepositionmargin) | **Post** /futures/{settle}/positions/{contract}/margin | Update position margin +*FuturesApi* | [**UpdatePositionLeverage**](docs/FuturesApi.md#updatepositionleverage) | **Post** /futures/{settle}/positions/{contract}/leverage | Update position leverage *FuturesApi* | [**UpdatePositionRiskLimit**](docs/FuturesApi.md#updatepositionrisklimit) | **Post** /futures/{settle}/positions/{contract}/risk_limit | Update position risk limit -*MarginApi* | [**CancelLoan**](docs/MarginApi.md#cancelloan) | **Delete** /margin/loans/{loan_id} | Cancel lending loan -*MarginApi* | [**CreateLoan**](docs/MarginApi.md#createloan) | **Post** /margin/loans | Lend or borrow -*MarginApi* | [**GetLoan**](docs/MarginApi.md#getloan) | **Get** /margin/loans/{loan_id} | Retrieve one single loan detail -*MarginApi* | [**GetLoanRecord**](docs/MarginApi.md#getloanrecord) | **Get** /margin/loan_records/{loan_record_id} | Get one single loan record -*MarginApi* | [**ListFundingAccounts**](docs/MarginApi.md#listfundingaccounts) | **Get** /margin/funding_accounts | Funding account list +*FuturesApi* | [**ListFuturesOrders**](docs/FuturesApi.md#listfuturesorders) | **Get** /futures/{settle}/orders | List futures orders +*FuturesApi* | [**CreateFuturesOrder**](docs/FuturesApi.md#createfuturesorder) | **Post** /futures/{settle}/orders | Create a futures order +*FuturesApi* | [**CancelFuturesOrders**](docs/FuturesApi.md#cancelfuturesorders) | **Delete** /futures/{settle}/orders | Cancel all `open` orders matched +*FuturesApi* | [**GetFuturesOrder**](docs/FuturesApi.md#getfuturesorder) | **Get** /futures/{settle}/orders/{order_id} | Get a single order +*FuturesApi* | [**CancelFuturesOrder**](docs/FuturesApi.md#cancelfuturesorder) | **Delete** /futures/{settle}/orders/{order_id} | Cancel a single order +*FuturesApi* | [**GetMyTrades**](docs/FuturesApi.md#getmytrades) | **Get** /futures/{settle}/my_trades | List personal trading history +*FuturesApi* | [**ListPositionClose**](docs/FuturesApi.md#listpositionclose) | **Get** /futures/{settle}/position_close | List position close history +*FuturesApi* | [**ListLiquidates**](docs/FuturesApi.md#listliquidates) | **Get** /futures/{settle}/liquidates | List liquidation history +*FuturesApi* | [**ListPriceTriggeredOrders**](docs/FuturesApi.md#listpricetriggeredorders) | **Get** /futures/{settle}/price_orders | List all auto orders +*FuturesApi* | [**CreatePriceTriggeredOrder**](docs/FuturesApi.md#createpricetriggeredorder) | **Post** /futures/{settle}/price_orders | Create a price-triggered order +*FuturesApi* | [**CancelPriceTriggeredOrderList**](docs/FuturesApi.md#cancelpricetriggeredorderlist) | **Delete** /futures/{settle}/price_orders | Cancel all open orders +*FuturesApi* | [**GetPriceTriggeredOrder**](docs/FuturesApi.md#getpricetriggeredorder) | **Get** /futures/{settle}/price_orders/{order_id} | Get a single order +*FuturesApi* | [**CancelPriceTriggeredOrder**](docs/FuturesApi.md#cancelpricetriggeredorder) | **Delete** /futures/{settle}/price_orders/{order_id} | Cancel a single order +*MarginApi* | [**ListMarginCurrencyPairs**](docs/MarginApi.md#listmargincurrencypairs) | **Get** /margin/currency_pairs | List all supported currency pairs supported in margin trading *MarginApi* | [**ListFundingBook**](docs/MarginApi.md#listfundingbook) | **Get** /margin/funding_book | Order book of lending loans -*MarginApi* | [**ListLoanRecords**](docs/MarginApi.md#listloanrecords) | **Get** /margin/loan_records | List repayment records of specified loan -*MarginApi* | [**ListLoanRepayments**](docs/MarginApi.md#listloanrepayments) | **Get** /margin/loans/{loan_id}/repayment | List loan repayment records -*MarginApi* | [**ListLoans**](docs/MarginApi.md#listloans) | **Get** /margin/loans | List all loans *MarginApi* | [**ListMarginAccounts**](docs/MarginApi.md#listmarginaccounts) | **Get** /margin/accounts | Margin account list -*MarginApi* | [**ListMarginCurrencyPairs**](docs/MarginApi.md#listmargincurrencypairs) | **Get** /margin/currency_pairs | List all supported currency pairs supported in margin trading +*MarginApi* | [**ListMarginAccountBook**](docs/MarginApi.md#listmarginaccountbook) | **Get** /margin/account_book | List margin account balance change history +*MarginApi* | [**ListFundingAccounts**](docs/MarginApi.md#listfundingaccounts) | **Get** /margin/funding_accounts | Funding account list +*MarginApi* | [**ListLoans**](docs/MarginApi.md#listloans) | **Get** /margin/loans | List all loans +*MarginApi* | [**CreateLoan**](docs/MarginApi.md#createloan) | **Post** /margin/loans | Lend or borrow *MarginApi* | [**MergeLoans**](docs/MarginApi.md#mergeloans) | **Post** /margin/merged_loans | Merge multiple lending loans -*MarginApi* | [**RepayLoan**](docs/MarginApi.md#repayloan) | **Post** /margin/loans/{loan_id}/repayment | Repay a loan +*MarginApi* | [**GetLoan**](docs/MarginApi.md#getloan) | **Get** /margin/loans/{loan_id} | Retrieve one single loan detail +*MarginApi* | [**CancelLoan**](docs/MarginApi.md#cancelloan) | **Delete** /margin/loans/{loan_id} | Cancel lending loan *MarginApi* | [**UpdateLoan**](docs/MarginApi.md#updateloan) | **Patch** /margin/loans/{loan_id} | Modify a loan +*MarginApi* | [**ListLoanRepayments**](docs/MarginApi.md#listloanrepayments) | **Get** /margin/loans/{loan_id}/repayment | List loan repayment records +*MarginApi* | [**RepayLoan**](docs/MarginApi.md#repayloan) | **Post** /margin/loans/{loan_id}/repayment | Repay a loan +*MarginApi* | [**ListLoanRecords**](docs/MarginApi.md#listloanrecords) | **Get** /margin/loan_records | List repayment records of specified loan +*MarginApi* | [**GetLoanRecord**](docs/MarginApi.md#getloanrecord) | **Get** /margin/loan_records/{loan_record_id} | Get one single loan record *MarginApi* | [**UpdateLoanRecord**](docs/MarginApi.md#updateloanrecord) | **Patch** /margin/loan_records/{loan_record_id} | Modify a loan record -*SpotApi* | [**CancelBatchOrders**](docs/SpotApi.md#cancelbatchorders) | **Post** /spot/cancel_batch_orders | Cancel a batch of orders with an ID list -*SpotApi* | [**CancelOrder**](docs/SpotApi.md#cancelorder) | **Delete** /spot/orders/{order_id} | Cancel a single order -*SpotApi* | [**CancelOrders**](docs/SpotApi.md#cancelorders) | **Delete** /spot/orders | Cancel all `open` orders in specified currency pair +*SpotApi* | [**ListCurrencyPairs**](docs/SpotApi.md#listcurrencypairs) | **Get** /spot/currency_pairs | List all currency pairs supported +*SpotApi* | [**GetCurrencyPair**](docs/SpotApi.md#getcurrencypair) | **Get** /spot/currency_pairs/{currency_pair} | Get detail of one single order +*SpotApi* | [**ListTickers**](docs/SpotApi.md#listtickers) | **Get** /spot/tickers | Retrieve ticker information +*SpotApi* | [**ListOrderBook**](docs/SpotApi.md#listorderbook) | **Get** /spot/order_book | Retrieve order book +*SpotApi* | [**ListTrades**](docs/SpotApi.md#listtrades) | **Get** /spot/trades | Retrieve market trades +*SpotApi* | [**ListCandlesticks**](docs/SpotApi.md#listcandlesticks) | **Get** /spot/candlesticks | Market candlesticks +*SpotApi* | [**GetFee**](docs/SpotApi.md#getfee) | **Get** /spot/fee | Query user trading fee rates +*SpotApi* | [**ListSpotAccounts**](docs/SpotApi.md#listspotaccounts) | **Get** /spot/accounts | List spot accounts *SpotApi* | [**CreateBatchOrders**](docs/SpotApi.md#createbatchorders) | **Post** /spot/batch_orders | Create a batch of orders +*SpotApi* | [**ListAllOpenOrders**](docs/SpotApi.md#listallopenorders) | **Get** /spot/open_orders | List all open orders +*SpotApi* | [**ListOrders**](docs/SpotApi.md#listorders) | **Get** /spot/orders | List orders *SpotApi* | [**CreateOrder**](docs/SpotApi.md#createorder) | **Post** /spot/orders | Create an order -*SpotApi* | [**GetCurrencyPair**](docs/SpotApi.md#getcurrencypair) | **Get** /spot/currency_pairs/{currency_pair} | Get detail of one single order +*SpotApi* | [**CancelOrders**](docs/SpotApi.md#cancelorders) | **Delete** /spot/orders | Cancel all `open` orders in specified currency pair +*SpotApi* | [**CancelBatchOrders**](docs/SpotApi.md#cancelbatchorders) | **Post** /spot/cancel_batch_orders | Cancel a batch of orders with an ID list *SpotApi* | [**GetOrder**](docs/SpotApi.md#getorder) | **Get** /spot/orders/{order_id} | Get a single order -*SpotApi* | [**ListCandlesticks**](docs/SpotApi.md#listcandlesticks) | **Get** /spot/candlesticks | Market candlesticks -*SpotApi* | [**ListCurrencyPairs**](docs/SpotApi.md#listcurrencypairs) | **Get** /spot/currency_pairs | List all currency pairs supported +*SpotApi* | [**CancelOrder**](docs/SpotApi.md#cancelorder) | **Delete** /spot/orders/{order_id} | Cancel a single order *SpotApi* | [**ListMyTrades**](docs/SpotApi.md#listmytrades) | **Get** /spot/my_trades | List personal trading history -*SpotApi* | [**ListOrderBook**](docs/SpotApi.md#listorderbook) | **Get** /spot/order_book | Retrieve order book -*SpotApi* | [**ListOrders**](docs/SpotApi.md#listorders) | **Get** /spot/orders | List orders -*SpotApi* | [**ListSpotAccounts**](docs/SpotApi.md#listspotaccounts) | **Get** /spot/accounts | List spot accounts -*SpotApi* | [**ListTickers**](docs/SpotApi.md#listtickers) | **Get** /spot/tickers | Retrieve ticker information -*SpotApi* | [**ListTrades**](docs/SpotApi.md#listtrades) | **Get** /spot/trades | Retrieve market trades *WalletApi* | [**GetDepositAddress**](docs/WalletApi.md#getdepositaddress) | **Get** /wallet/deposit_address | Generate currency deposit address +*WalletApi* | [**ListWithdrawals**](docs/WalletApi.md#listwithdrawals) | **Get** /wallet/withdrawals | Retrieve withdrawal records *WalletApi* | [**ListDeposits**](docs/WalletApi.md#listdeposits) | **Get** /wallet/deposits | Retrieve deposit records +*WalletApi* | [**Transfer**](docs/WalletApi.md#transfer) | **Post** /wallet/transfers | Transfer between trading accounts *WalletApi* | [**ListSubAccountTransfers**](docs/WalletApi.md#listsubaccounttransfers) | **Get** /wallet/sub_account_transfers | Transfer records between main and sub accounts -*WalletApi* | [**ListWithdrawals**](docs/WalletApi.md#listwithdrawals) | **Get** /wallet/withdrawals | Retrieve withdrawal records -*WalletApi* | [**Transfer**](docs/WalletApi.md#transfer) | **Post** /wallet/transfers | Transfer between accounts *WalletApi* | [**TransferWithSubAccount**](docs/WalletApi.md#transferwithsubaccount) | **Post** /wallet/sub_account_transfers | Transfer between main and sub accounts *WithdrawalApi* | [**Withdraw**](docs/WithdrawalApi.md#withdraw) | **Post** /withdrawals | Withdraw @@ -196,16 +209,17 @@ Class | Method | HTTP request | Description - [FuturesPriceTriggeredOrder](docs/FuturesPriceTriggeredOrder.md) - [FuturesTicker](docs/FuturesTicker.md) - [FuturesTrade](docs/FuturesTrade.md) - - [GateErrorResponse](docs/GateErrorResponse.md) - [InsuranceRecord](docs/InsuranceRecord.md) - [LedgerRecord](docs/LedgerRecord.md) - [Loan](docs/Loan.md) - [LoanPatch](docs/LoanPatch.md) - [LoanRecord](docs/LoanRecord.md) - [MarginAccount](docs/MarginAccount.md) + - [MarginAccountBook](docs/MarginAccountBook.md) - [MarginAccountCurrency](docs/MarginAccountCurrency.md) - [MarginCurrencyPair](docs/MarginCurrencyPair.md) - [MyFuturesTrade](docs/MyFuturesTrade.md) + - [OpenOrders](docs/OpenOrders.md) - [Order](docs/Order.md) - [OrderBook](docs/OrderBook.md) - [Position](docs/Position.md) @@ -217,10 +231,30 @@ Class | Method | HTTP request | Description - [SubAccountTransfer](docs/SubAccountTransfer.md) - [Ticker](docs/Ticker.md) - [Trade](docs/Trade.md) + - [TradeFee](docs/TradeFee.md) - [Transfer](docs/Transfer.md) - [TriggerOrderResponse](docs/TriggerOrderResponse.md) +## Documentation For Authorization + + + +## apiv4 + +- **Type**: Gate APIv4 + +Example + +```golang +ctx := context.WithValue(context.Background(), gateapi.ContextAPIKey, gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", +}) +r, err := client.Service.Operation(ctx, args) +``` + + ## Author support@mail.gate.io diff --git a/api_delivery.go b/api_delivery.go index 5152c20..514a99c 100644 --- a/api_delivery.go +++ b/api_delivery.go @@ -11,12 +11,11 @@ package gateapi import ( "context" + "github.com/antihax/optional" "io/ioutil" "net/http" "net/url" "strings" - "fmt" - "github.com/antihax/optional" ) // Linger please @@ -24,1912 +23,1852 @@ var ( _ context.Context ) +// DeliveryApiService DeliveryApi service type DeliveryApiService service /* -DeliveryApiService Cancel a single order +ListDeliveryContracts List all futures contracts * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param orderId ID returned on order successfully being created -@return FuturesOrder +@return []DeliveryContract */ -func (a *DeliveryApiService) CancelDeliveryOrder(ctx context.Context, settle string, orderId string) (FuturesOrder, *http.Response, error) { +func (a *DeliveryApiService) ListDeliveryContracts(ctx context.Context, settle string) ([]DeliveryContract, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue FuturesOrder + localVarReturnValue []DeliveryContract ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/orders/{order_id}" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", fmt.Sprintf("%v", orderId), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/contracts" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v FuturesOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -DeliveryApiService Cancel all `open` orders matched -Zero-fill order cannot be retrieved 60 seconds after cancellation +GetDeliveryContract Get a single contract * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency * @param contract Futures contract - * @param optional nil or *CancelDeliveryOrdersOpts - Optional Parameters: - * @param "Side" (optional.String) - All bids or asks. Both included in not specified -@return []FuturesOrder +@return DeliveryContract */ - -type CancelDeliveryOrdersOpts struct { - Side optional.String -} - -func (a *DeliveryApiService) CancelDeliveryOrders(ctx context.Context, settle string, contract string, localVarOptionals *CancelDeliveryOrdersOpts) ([]FuturesOrder, *http.Response, error) { +func (a *DeliveryApiService) GetDeliveryContract(ctx context.Context, settle string, contract string) (DeliveryContract, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesOrder + localVarReturnValue DeliveryContract ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/orders" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/contracts/{contract}" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", url.QueryEscape(parameterToString(contract, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("contract", parameterToString(contract, "")) - if localVarOptionals != nil && localVarOptionals.Side.IsSet() { - localVarQueryParams.Add("side", parameterToString(localVarOptionals.Side.Value(), "")) - } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListDeliveryOrderBookOpts Optional parameters for the method 'ListDeliveryOrderBook' +type ListDeliveryOrderBookOpts struct { + Interval optional.String + Limit optional.Int32 } /* -DeliveryApiService Cancel a single order +ListDeliveryOrderBook Futures order book +Bids will be sorted by price from high to low, while asks sorted reversely * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param orderId ID returned on order successfully being created -@return FuturesPriceTriggeredOrder + * @param contract Futures contract + * @param optional nil or *ListDeliveryOrderBookOpts - 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 +@return FuturesOrderBook */ -func (a *DeliveryApiService) CancelPriceTriggeredDeliveryOrder(ctx context.Context, settle string, orderId string) (FuturesPriceTriggeredOrder, *http.Response, error) { +func (a *DeliveryApiService) ListDeliveryOrderBook(ctx context.Context, settle string, contract string, localVarOptionals *ListDeliveryOrderBookOpts) (FuturesOrderBook, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue FuturesPriceTriggeredOrder + localVarReturnValue FuturesOrderBook ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/price_orders/{order_id}" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", fmt.Sprintf("%v", orderId), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/order_book" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + localVarQueryParams.Add("contract", parameterToString(contract, "")) + 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(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v FuturesPriceTriggeredOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListDeliveryTradesOpts Optional parameters for the method 'ListDeliveryTrades' +type ListDeliveryTradesOpts struct { + Limit optional.Int32 + LastId optional.String + From optional.Float32 + To optional.Float32 } /* -DeliveryApiService Cancel all open orders +ListDeliveryTrades Futures trading history * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency * @param contract Futures contract -@return []FuturesPriceTriggeredOrder + * @param optional nil or *ListDeliveryTradesOpts - Optional Parameters: + * @param "Limit" (optional.Int32) - Maximum number of records returned in one list + * @param "LastId" (optional.String) - Specify list staring point using the id of last record in previous list-query results This parameter is deprecated. Use `from` and `to` instead to limit time range + * @param "From" (optional.Float32) - Specify starting time in Unix seconds. If not specified, `to` and `limit` will be used to limit response items. If items between `from` and `to` are more than `limit`, only `limit` number will be returned. + * @param "To" (optional.Float32) - Specify end time in Unix seconds, default to current time +@return []FuturesTrade */ -func (a *DeliveryApiService) CancelPriceTriggeredDeliveryOrderList(ctx context.Context, settle string, contract string) ([]FuturesPriceTriggeredOrder, *http.Response, error) { +func (a *DeliveryApiService) ListDeliveryTrades(ctx context.Context, settle string, contract string, localVarOptionals *ListDeliveryTradesOpts) ([]FuturesTrade, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesPriceTriggeredOrder + localVarReturnValue []FuturesTrade ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/price_orders" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/trades" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} localVarQueryParams.Add("contract", parameterToString(contract, "")) + 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.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{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesPriceTriggeredOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListDeliveryCandlesticksOpts Optional parameters for the method 'ListDeliveryCandlesticks' +type ListDeliveryCandlesticksOpts struct { + From optional.Float32 + To optional.Float32 + Limit optional.Int32 + Interval optional.String } /* -DeliveryApiService Create a futures order -Zero-fill order cannot be retrieved 60 seconds after cancellation +ListDeliveryCandlesticks Get futures candlesticks +Return specified contract candlesticks. If prefix `contract` with `mark_`, the contract's mark price candlesticks are returned; if prefix with `index_`, index price candlesticks will be returned. Maximum of 2000 points are returned in one 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 settle Settle currency - * @param futuresOrder -@return FuturesOrder + * @param contract Futures contract + * @param optional nil or *ListDeliveryCandlesticksOpts - Optional Parameters: + * @param "From" (optional.Float32) - Start time of candlesticks, formatted in Unix timestamp in seconds. Default to`to - 100 * interval` if not specified + * @param "To" (optional.Float32) - End time of candlesticks, formatted in Unix timestamp in seconds. Default to current time + * @param "Limit" (optional.Int32) - Maximum recent data points returned. `limit` is conflicted with `from` and `to`. If either `from` or `to` is specified, request will be rejected. + * @param "Interval" (optional.String) - Interval time between data points +@return []FuturesCandlestick */ -func (a *DeliveryApiService) CreateDeliveryOrder(ctx context.Context, settle string, futuresOrder FuturesOrder) (FuturesOrder, *http.Response, error) { +func (a *DeliveryApiService) ListDeliveryCandlesticks(ctx context.Context, settle string, contract string, localVarOptionals *ListDeliveryCandlesticksOpts) ([]FuturesCandlestick, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue FuturesOrder + localVarReturnValue []FuturesCandlestick ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/orders" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/candlesticks" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + localVarQueryParams.Add("contract", parameterToString(contract, "")) + 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.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Interval.IsSet() { + localVarQueryParams.Add("interval", parameterToString(localVarOptionals.Interval.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{"application/json"} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - // body params - localVarPostBody = &futuresOrder - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 201 { - var v FuturesOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListDeliveryTickersOpts Optional parameters for the method 'ListDeliveryTickers' +type ListDeliveryTickersOpts struct { + Contract optional.String } /* -DeliveryApiService Create a price-triggered order +ListDeliveryTickers List futures tickers * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param futuresPriceTriggeredOrder -@return TriggerOrderResponse + * @param optional nil or *ListDeliveryTickersOpts - Optional Parameters: + * @param "Contract" (optional.String) - Futures contract +@return []FuturesTicker */ -func (a *DeliveryApiService) CreatePriceTriggeredDeliveryOrder(ctx context.Context, settle string, futuresPriceTriggeredOrder FuturesPriceTriggeredOrder) (TriggerOrderResponse, *http.Response, error) { +func (a *DeliveryApiService) ListDeliveryTickers(ctx context.Context, settle string, localVarOptionals *ListDeliveryTickersOpts) ([]FuturesTicker, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue TriggerOrderResponse + localVarReturnValue []FuturesTicker ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/price_orders" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/tickers" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + if localVarOptionals != nil && localVarOptionals.Contract.IsSet() { + localVarQueryParams.Add("contract", parameterToString(localVarOptionals.Contract.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{"application/json"} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - // body params - localVarPostBody = &futuresPriceTriggeredOrder - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 201 { - var v TriggerOrderResponse - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListDeliveryInsuranceLedgerOpts Optional parameters for the method 'ListDeliveryInsuranceLedger' +type ListDeliveryInsuranceLedgerOpts struct { + Limit optional.Int32 } /* -DeliveryApiService Get a single contract +ListDeliveryInsuranceLedger Futures insurance balance history * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param contract Futures contract -@return DeliveryContract + * @param optional nil or *ListDeliveryInsuranceLedgerOpts - Optional Parameters: + * @param "Limit" (optional.Int32) - Maximum number of records returned in one list +@return []InsuranceRecord */ -func (a *DeliveryApiService) GetDeliveryContract(ctx context.Context, settle string, contract string) (DeliveryContract, *http.Response, error) { +func (a *DeliveryApiService) ListDeliveryInsuranceLedger(ctx context.Context, settle string, localVarOptionals *ListDeliveryInsuranceLedgerOpts) ([]InsuranceRecord, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue DeliveryContract + localVarReturnValue []InsuranceRecord ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/contracts/{contract}" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", fmt.Sprintf("%v", contract), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/insurance" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v DeliveryContract - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -DeliveryApiService Get a single order -Zero-fill order cannot be retrieved 60 seconds after cancellation +ListDeliveryAccounts Query futures account * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param orderId ID returned on order successfully being created -@return FuturesOrder +@return FuturesAccount */ -func (a *DeliveryApiService) GetDeliveryOrder(ctx context.Context, settle string, orderId string) (FuturesOrder, *http.Response, error) { +func (a *DeliveryApiService) ListDeliveryAccounts(ctx context.Context, settle string) (FuturesAccount, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue FuturesOrder + localVarReturnValue FuturesAccount ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/orders/{order_id}" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", fmt.Sprintf("%v", orderId), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/accounts" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v FuturesOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListDeliveryAccountBookOpts Optional parameters for the method 'ListDeliveryAccountBook' +type ListDeliveryAccountBookOpts struct { + Limit optional.Int32 + From optional.Int64 + To optional.Int64 + Type_ optional.String } /* -DeliveryApiService Get single position +ListDeliveryAccountBook Query account book * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param contract Futures contract -@return Position + * @param optional nil or *ListDeliveryAccountBookOpts - Optional Parameters: + * @param "Limit" (optional.Int32) - Maximum number of records returned in one list + * @param "From" (optional.Int64) - Start timestamp + * @param "To" (optional.Int64) - End timestamp + * @param "Type_" (optional.String) - Changing Type: - dnw: Deposit & Withdraw - pnl: Profit & Loss by reducing position - fee: Trading fee - refr: Referrer rebate - fund: Funding - point_dnw: POINT Deposit & Withdraw - point_fee: POINT Trading fee - point_refr: POINT Referrer rebate +@return []FuturesAccountBook */ -func (a *DeliveryApiService) GetDeliveryPosition(ctx context.Context, settle string, contract string) (Position, *http.Response, error) { +func (a *DeliveryApiService) ListDeliveryAccountBook(ctx context.Context, settle string, localVarOptionals *ListDeliveryAccountBookOpts) ([]FuturesAccountBook, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Position + localVarReturnValue []FuturesAccountBook ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/positions/{contract}" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", fmt.Sprintf("%v", contract), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/account_book" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + 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.Type_.IsSet() { + localVarQueryParams.Add("type", parameterToString(localVarOptionals.Type_.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v Position - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -DeliveryApiService List personal trading history +ListDeliveryPositions List all positions of a user * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param optional nil or *GetMyDeliveryTradesOpts - Optional Parameters: - * @param "Contract" (optional.String) - Futures contract - * @param "Order" (optional.Int32) - Futures order ID, return related data only if specified - * @param "Limit" (optional.Int32) - Maximum number of records returned in one list - * @param "Offset" (optional.Int32) - List offset, starting from 0 - * @param "LastId" (optional.String) - Specify list staring point using the `id` of last record in previous list-query results - * @param "CountTotal" (optional.Int32) - Whether to return total number matched. Default to 0(no return) -@return []MyFuturesTrade +@return []Position */ - -type GetMyDeliveryTradesOpts struct { - Contract optional.String - Order optional.Int32 - Limit optional.Int32 - Offset optional.Int32 - LastId optional.String - CountTotal optional.Int32 -} - -func (a *DeliveryApiService) GetMyDeliveryTrades(ctx context.Context, settle string, localVarOptionals *GetMyDeliveryTradesOpts) ([]MyFuturesTrade, *http.Response, error) { +func (a *DeliveryApiService) ListDeliveryPositions(ctx context.Context, settle string) ([]Position, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []MyFuturesTrade + localVarReturnValue []Position ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/my_trades" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/positions" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Contract.IsSet() { - localVarQueryParams.Add("contract", parameterToString(localVarOptionals.Contract.Value(), "")) + // to determine the Content-Type header + localVarHTTPContentTypes := []string{} + + // set Content-Type header + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } - if localVarOptionals != nil && localVarOptionals.Order.IsSet() { - localVarQueryParams.Add("order", parameterToString(localVarOptionals.Order.Value(), "")) + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + if ctx == nil { + ctx = context.Background() } - if localVarOptionals != nil && localVarOptionals.Offset.IsSet() { - localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), "")) + 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, + }) } - if localVarOptionals != nil && localVarOptionals.LastId.IsSet() { - localVarQueryParams.Add("last_id", parameterToString(localVarOptionals.LastId.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.CountTotal.IsSet() { - localVarQueryParams.Add("count_total", parameterToString(localVarOptionals.CountTotal.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 - } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []MyFuturesTrade - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -DeliveryApiService Get a single order +GetDeliveryPosition Get single position * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param orderId ID returned on order successfully being created -@return FuturesPriceTriggeredOrder + * @param contract Futures contract +@return Position */ -func (a *DeliveryApiService) GetPriceTriggeredDeliveryOrder(ctx context.Context, settle string, orderId string) (FuturesPriceTriggeredOrder, *http.Response, error) { +func (a *DeliveryApiService) GetDeliveryPosition(ctx context.Context, settle string, contract string) (Position, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue FuturesPriceTriggeredOrder + localVarReturnValue Position ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/price_orders/{order_id}" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", fmt.Sprintf("%v", orderId), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/positions/{contract}" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", url.QueryEscape(parameterToString(contract, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + 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, 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v FuturesPriceTriggeredOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -DeliveryApiService Query account book +UpdateDeliveryPositionMargin Update position margin * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param optional nil or *ListDeliveryAccountBookOpts - Optional Parameters: - * @param "Limit" (optional.Int32) - Maximum number of records returned in one list - * @param "From" (optional.Int32) - Start timestamp - * @param "To" (optional.Int32) - End timestamp - * @param "Type_" (optional.String) - Changing Type: - dnw: Deposit & Withdraw - pnl: Profit & Loss by reducing position - fee: Trading fee - refr: Referrer rebate - fund: Funding - point_dnw: POINT Deposit & Withdraw - point_fee: POINT Trading fee - point_refr: POINT Referrer rebate -@return []FuturesAccountBook + * @param contract Futures contract + * @param change Margin change. Use positive number to increase margin, negative number otherwise. +@return Position */ - -type ListDeliveryAccountBookOpts struct { - Limit optional.Int32 - From optional.Int32 - To optional.Int32 - Type_ optional.String -} - -func (a *DeliveryApiService) ListDeliveryAccountBook(ctx context.Context, settle string, localVarOptionals *ListDeliveryAccountBookOpts) ([]FuturesAccountBook, *http.Response, error) { +func (a *DeliveryApiService) UpdateDeliveryPositionMargin(ctx context.Context, settle string, contract string, change string) (Position, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesAccountBook + localVarReturnValue Position ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/account_book" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/positions/{contract}/margin" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", url.QueryEscape(parameterToString(contract, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - 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.Type_.IsSet() { - localVarQueryParams.Add("type", parameterToString(localVarOptionals.Type_.Value(), "")) - } + localVarQueryParams.Add("change", parameterToString(change, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + 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, 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesAccountBook - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -DeliveryApiService Query futures account +UpdateDeliveryPositionLeverage Update position leverage * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency -@return FuturesAccount + * @param contract Futures contract + * @param leverage New position leverage +@return Position */ -func (a *DeliveryApiService) ListDeliveryAccounts(ctx context.Context, settle string) (FuturesAccount, *http.Response, error) { +func (a *DeliveryApiService) UpdateDeliveryPositionLeverage(ctx context.Context, settle string, contract string, leverage string) (Position, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue FuturesAccount + localVarReturnValue Position ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/accounts" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/positions/{contract}/leverage" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", url.QueryEscape(parameterToString(contract, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + localVarQueryParams.Add("leverage", parameterToString(leverage, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v FuturesAccount - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -DeliveryApiService Get futures candlesticks -Return specified contract candlesticks. If prefix `contract` with `mark_`, the contract's mark price candlesticks are returned; if prefix with `index_`, index price candlesticks will be returned. Maximum of 2000 points are returned in one query. Be sure not to exceed the limit when specifying `from`, `to` and `interval` +UpdateDeliveryPositionRiskLimit Update position risk limit * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency * @param contract Futures contract - * @param optional nil or *ListDeliveryCandlesticksOpts - Optional Parameters: - * @param "From" (optional.Float32) - Start time of candlesticks, formatted in Unix timestamp in seconds. Default to`to - 100 * interval` if not specified - * @param "To" (optional.Float32) - End time of candlesticks, formatted in Unix timestamp in seconds. Default to current time - * @param "Limit" (optional.Int32) - Maximum recent data points returned. `limit` is conflicted with `from` and `to`. If either `from` or `to` is specified, request will be rejected. - * @param "Interval" (optional.String) - Interval time between data points -@return []FuturesCandlestick + * @param riskLimit New position risk limit +@return Position */ - -type ListDeliveryCandlesticksOpts struct { - From optional.Float32 - To optional.Float32 - Limit optional.Int32 - Interval optional.String -} - -func (a *DeliveryApiService) ListDeliveryCandlesticks(ctx context.Context, settle string, contract string, localVarOptionals *ListDeliveryCandlesticksOpts) ([]FuturesCandlestick, *http.Response, error) { +func (a *DeliveryApiService) UpdateDeliveryPositionRiskLimit(ctx context.Context, settle string, contract string, riskLimit string) (Position, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesCandlestick + localVarReturnValue Position ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/candlesticks" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/positions/{contract}/risk_limit" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", url.QueryEscape(parameterToString(contract, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("contract", parameterToString(contract, "")) - 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.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Interval.IsSet() { - localVarQueryParams.Add("interval", parameterToString(localVarOptionals.Interval.Value(), "")) - } + localVarQueryParams.Add("risk_limit", parameterToString(riskLimit, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + 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, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesCandlestick - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListDeliveryOrdersOpts Optional parameters for the method 'ListDeliveryOrders' +type ListDeliveryOrdersOpts struct { + Contract optional.String + Limit optional.Int32 + Offset optional.Int32 + LastId optional.String + CountTotal optional.Int32 } /* -DeliveryApiService List all futures contracts +ListDeliveryOrders List futures orders +Zero-fill order cannot be retrieved 60 seconds after cancellation * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency -@return []DeliveryContract + * @param status List orders based on status + * @param optional nil or *ListDeliveryOrdersOpts - Optional Parameters: + * @param "Contract" (optional.String) - Futures contract + * @param "Limit" (optional.Int32) - Maximum number of records returned in one list + * @param "Offset" (optional.Int32) - List offset, starting from 0 + * @param "LastId" (optional.String) - Specify list staring point using the `id` of last record in previous list-query results + * @param "CountTotal" (optional.Int32) - Whether to return total number matched. Default to 0(no return) +@return []FuturesOrder */ -func (a *DeliveryApiService) ListDeliveryContracts(ctx context.Context, settle string) ([]DeliveryContract, *http.Response, error) { +func (a *DeliveryApiService) ListDeliveryOrders(ctx context.Context, settle string, status string, localVarOptionals *ListDeliveryOrdersOpts) ([]FuturesOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []DeliveryContract + localVarReturnValue []FuturesOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/contracts" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/orders" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + if localVarOptionals != nil && localVarOptionals.Contract.IsSet() { + localVarQueryParams.Add("contract", parameterToString(localVarOptionals.Contract.Value(), "")) + } + localVarQueryParams.Add("status", parameterToString(status, "")) + 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(), "")) + } + if localVarOptionals != nil && localVarOptionals.LastId.IsSet() { + localVarQueryParams.Add("last_id", parameterToString(localVarOptionals.LastId.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.CountTotal.IsSet() { + localVarQueryParams.Add("count_total", parameterToString(localVarOptionals.CountTotal.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []DeliveryContract - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -DeliveryApiService Futures insurance balance history +CreateDeliveryOrder Create a futures order +Zero-fill order cannot be retrieved 60 seconds after cancellation * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param optional nil or *ListDeliveryInsuranceLedgerOpts - Optional Parameters: - * @param "Limit" (optional.Int32) - Maximum number of records returned in one list -@return []InsuranceRecord + * @param futuresOrder +@return FuturesOrder */ - -type ListDeliveryInsuranceLedgerOpts struct { - Limit optional.Int32 -} - -func (a *DeliveryApiService) ListDeliveryInsuranceLedger(ctx context.Context, settle string, localVarOptionals *ListDeliveryInsuranceLedgerOpts) ([]InsuranceRecord, *http.Response, error) { +func (a *DeliveryApiService) CreateDeliveryOrder(ctx context.Context, settle string, futuresOrder FuturesOrder) (FuturesOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []InsuranceRecord + localVarReturnValue FuturesOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/insurance" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/orders" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, false) + // body params + localVarPostBody = &futuresOrder + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []InsuranceRecord - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// CancelDeliveryOrdersOpts Optional parameters for the method 'CancelDeliveryOrders' +type CancelDeliveryOrdersOpts struct { + Side optional.String } /* -DeliveryApiService List liquidation history +CancelDeliveryOrders Cancel all `open` orders matched +Zero-fill order cannot be retrieved 60 seconds after cancellation * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param optional nil or *ListDeliveryLiquidatesOpts - Optional Parameters: - * @param "Contract" (optional.String) - Futures contract - * @param "Limit" (optional.Int32) - Maximum number of records returned in one list - * @param "At" (optional.Int32) - Specify a liquidation timestamp -@return []FuturesLiquidate + * @param contract Futures contract + * @param optional nil or *CancelDeliveryOrdersOpts - Optional Parameters: + * @param "Side" (optional.String) - All bids or asks. Both included in not specified +@return []FuturesOrder */ - -type ListDeliveryLiquidatesOpts struct { - Contract optional.String - Limit optional.Int32 - At optional.Int32 -} - -func (a *DeliveryApiService) ListDeliveryLiquidates(ctx context.Context, settle string, localVarOptionals *ListDeliveryLiquidatesOpts) ([]FuturesLiquidate, *http.Response, error) { +func (a *DeliveryApiService) CancelDeliveryOrders(ctx context.Context, settle string, contract string, localVarOptionals *CancelDeliveryOrdersOpts) ([]FuturesOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodDelete localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesLiquidate + localVarReturnValue []FuturesOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/liquidates" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/orders" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Contract.IsSet() { - localVarQueryParams.Add("contract", parameterToString(localVarOptionals.Contract.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.At.IsSet() { - localVarQueryParams.Add("at", parameterToString(localVarOptionals.At.Value(), "")) + localVarQueryParams.Add("contract", parameterToString(contract, "")) + if localVarOptionals != nil && localVarOptionals.Side.IsSet() { + localVarQueryParams.Add("side", parameterToString(localVarOptionals.Side.Value(), "")) } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesLiquidate - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -DeliveryApiService Futures order book -Bids will be sorted by price from high to low, while asks sorted reversely +GetDeliveryOrder Get a single order +Zero-fill order cannot be retrieved 60 seconds after cancellation * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param contract Futures contract - * @param optional nil or *ListDeliveryOrderBookOpts - 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 -@return FuturesOrderBook + * @param orderId ID returned on order successfully being created +@return FuturesOrder */ - -type ListDeliveryOrderBookOpts struct { - Interval optional.String - Limit optional.Int32 -} - -func (a *DeliveryApiService) ListDeliveryOrderBook(ctx context.Context, settle string, contract string, localVarOptionals *ListDeliveryOrderBookOpts) (FuturesOrderBook, *http.Response, error) { +func (a *DeliveryApiService) GetDeliveryOrder(ctx context.Context, settle string, orderId string) (FuturesOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue FuturesOrderBook + localVarReturnValue FuturesOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/order_book" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/orders/{order_id}" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", url.QueryEscape(parameterToString(orderId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("contract", parameterToString(contract, "")) - 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(), "")) - } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + 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, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v FuturesOrderBook - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -DeliveryApiService List futures orders -Zero-fill order cannot be retrieved 60 seconds after cancellation +CancelDeliveryOrder Cancel a single order * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param status List orders based on status - * @param optional nil or *ListDeliveryOrdersOpts - Optional Parameters: - * @param "Contract" (optional.String) - Futures contract - * @param "Limit" (optional.Int32) - Maximum number of records returned in one list - * @param "Offset" (optional.Int32) - List offset, starting from 0 - * @param "LastId" (optional.String) - Specify list staring point using the `id` of last record in previous list-query results - * @param "CountTotal" (optional.Int32) - Whether to return total number matched. Default to 0(no return) -@return []FuturesOrder + * @param orderId ID returned on order successfully being created +@return FuturesOrder */ - -type ListDeliveryOrdersOpts struct { - Contract optional.String - Limit optional.Int32 - Offset optional.Int32 - LastId optional.String - CountTotal optional.Int32 -} - -func (a *DeliveryApiService) ListDeliveryOrders(ctx context.Context, settle string, status string, localVarOptionals *ListDeliveryOrdersOpts) ([]FuturesOrder, *http.Response, error) { +func (a *DeliveryApiService) CancelDeliveryOrder(ctx context.Context, settle string, orderId string) (FuturesOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodDelete localVarPostBody interface{} localVarFormFileName string localVarFileName string - localVarFileBytes []byte - localVarReturnValue []FuturesOrder - ) - - // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/orders" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - - localVarHeaderParams := make(map[string]string) - localVarQueryParams := url.Values{} - localVarFormParams := url.Values{} - - if localVarOptionals != nil && localVarOptionals.Contract.IsSet() { - localVarQueryParams.Add("contract", parameterToString(localVarOptionals.Contract.Value(), "")) - } - localVarQueryParams.Add("status", parameterToString(status, "")) - 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(), "")) - } - if localVarOptionals != nil && localVarOptionals.LastId.IsSet() { - localVarQueryParams.Add("last_id", parameterToString(localVarOptionals.LastId.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.CountTotal.IsSet() { - localVarQueryParams.Add("count_total", parameterToString(localVarOptionals.CountTotal.Value(), "")) - } + localVarFileBytes []byte + localVarReturnValue FuturesOrder + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/orders/{order_id}" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + 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{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// GetMyDeliveryTradesOpts Optional parameters for the method 'GetMyDeliveryTrades' +type GetMyDeliveryTradesOpts struct { + Contract optional.String + Order optional.Int32 + Limit optional.Int32 + Offset optional.Int32 + LastId optional.String + CountTotal optional.Int32 } /* -DeliveryApiService List position close history +GetMyDeliveryTrades List personal trading history * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param optional nil or *ListDeliveryPositionCloseOpts - Optional Parameters: + * @param optional nil or *GetMyDeliveryTradesOpts - Optional Parameters: * @param "Contract" (optional.String) - Futures contract + * @param "Order" (optional.Int32) - Futures order ID, return related data only if specified * @param "Limit" (optional.Int32) - Maximum number of records returned in one list -@return []PositionClose + * @param "Offset" (optional.Int32) - List offset, starting from 0 + * @param "LastId" (optional.String) - Specify list staring point using the `id` of last record in previous list-query results + * @param "CountTotal" (optional.Int32) - Whether to return total number matched. Default to 0(no return) +@return []MyFuturesTrade */ - -type ListDeliveryPositionCloseOpts struct { - Contract optional.String - Limit optional.Int32 -} - -func (a *DeliveryApiService) ListDeliveryPositionClose(ctx context.Context, settle string, localVarOptionals *ListDeliveryPositionCloseOpts) ([]PositionClose, *http.Response, error) { +func (a *DeliveryApiService) GetMyDeliveryTrades(ctx context.Context, settle string, localVarOptionals *GetMyDeliveryTradesOpts) ([]MyFuturesTrade, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []PositionClose + localVarReturnValue []MyFuturesTrade ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/position_close" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/my_trades" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -1938,191 +1877,216 @@ func (a *DeliveryApiService) ListDeliveryPositionClose(ctx context.Context, sett if localVarOptionals != nil && localVarOptionals.Contract.IsSet() { localVarQueryParams.Add("contract", parameterToString(localVarOptionals.Contract.Value(), "")) } + if localVarOptionals != nil && localVarOptionals.Order.IsSet() { + localVarQueryParams.Add("order", parameterToString(localVarOptionals.Order.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(), "")) + } + if localVarOptionals != nil && localVarOptionals.LastId.IsSet() { + localVarQueryParams.Add("last_id", parameterToString(localVarOptionals.LastId.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.CountTotal.IsSet() { + localVarQueryParams.Add("count_total", parameterToString(localVarOptionals.CountTotal.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []PositionClose - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListDeliveryPositionCloseOpts Optional parameters for the method 'ListDeliveryPositionClose' +type ListDeliveryPositionCloseOpts struct { + Contract optional.String + Limit optional.Int32 } /* -DeliveryApiService List all positions of a user +ListDeliveryPositionClose List position close history * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency -@return []Position + * @param optional nil or *ListDeliveryPositionCloseOpts - Optional Parameters: + * @param "Contract" (optional.String) - Futures contract + * @param "Limit" (optional.Int32) - Maximum number of records returned in one list +@return []PositionClose */ -func (a *DeliveryApiService) ListDeliveryPositions(ctx context.Context, settle string) ([]Position, *http.Response, error) { +func (a *DeliveryApiService) ListDeliveryPositionClose(ctx context.Context, settle string, localVarOptionals *ListDeliveryPositionCloseOpts) ([]PositionClose, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []Position + localVarReturnValue []PositionClose ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/positions" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/position_close" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + if localVarOptionals != nil && localVarOptionals.Contract.IsSet() { + localVarQueryParams.Add("contract", parameterToString(localVarOptionals.Contract.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []Position - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListDeliveryLiquidatesOpts Optional parameters for the method 'ListDeliveryLiquidates' +type ListDeliveryLiquidatesOpts struct { + Contract optional.String + Limit optional.Int32 + At optional.Int32 } /* -DeliveryApiService List settlement history +ListDeliveryLiquidates List liquidation history * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param optional nil or *ListDeliverySettlementsOpts - Optional Parameters: + * @param optional nil or *ListDeliveryLiquidatesOpts - Optional Parameters: * @param "Contract" (optional.String) - Futures contract * @param "Limit" (optional.Int32) - Maximum number of records returned in one list - * @param "At" (optional.Int32) - Specify a settlement timestamp -@return []DeliverySettlement + * @param "At" (optional.Int32) - Specify a liquidation timestamp +@return []FuturesLiquidate */ - -type ListDeliverySettlementsOpts struct { - Contract optional.String - Limit optional.Int32 - At optional.Int32 -} - -func (a *DeliveryApiService) ListDeliverySettlements(ctx context.Context, settle string, localVarOptionals *ListDeliverySettlementsOpts) ([]DeliverySettlement, *http.Response, error) { +func (a *DeliveryApiService) ListDeliveryLiquidates(ctx context.Context, settle string, localVarOptionals *ListDeliveryLiquidatesOpts) ([]FuturesLiquidate, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []DeliverySettlement + localVarReturnValue []FuturesLiquidate ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/settlements" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/liquidates" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -2138,95 +2102,98 @@ func (a *DeliveryApiService) ListDeliverySettlements(ctx context.Context, settle localVarQueryParams.Add("at", parameterToString(localVarOptionals.At.Value(), "")) } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []DeliverySettlement - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListDeliverySettlementsOpts Optional parameters for the method 'ListDeliverySettlements' +type ListDeliverySettlementsOpts struct { + Contract optional.String + Limit optional.Int32 + At optional.Int32 } /* -DeliveryApiService List futures tickers +ListDeliverySettlements List settlement history * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param optional nil or *ListDeliveryTickersOpts - Optional Parameters: + * @param optional nil or *ListDeliverySettlementsOpts - Optional Parameters: * @param "Contract" (optional.String) - Futures contract -@return []FuturesTicker + * @param "Limit" (optional.Int32) - Maximum number of records returned in one list + * @param "At" (optional.Int32) - Specify a settlement timestamp +@return []DeliverySettlement */ - -type ListDeliveryTickersOpts struct { - Contract optional.String -} - -func (a *DeliveryApiService) ListDeliveryTickers(ctx context.Context, settle string, localVarOptionals *ListDeliveryTickersOpts) ([]FuturesTicker, *http.Response, error) { +func (a *DeliveryApiService) ListDeliverySettlements(ctx context.Context, settle string, localVarOptionals *ListDeliverySettlementsOpts) ([]DeliverySettlement, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesTicker + localVarReturnValue []DeliverySettlement ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/tickers" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/settlements" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -2235,567 +2202,539 @@ func (a *DeliveryApiService) ListDeliveryTickers(ctx context.Context, settle str if localVarOptionals != nil && localVarOptionals.Contract.IsSet() { localVarQueryParams.Add("contract", parameterToString(localVarOptionals.Contract.Value(), "")) } + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.At.IsSet() { + localVarQueryParams.Add("at", parameterToString(localVarOptionals.At.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + 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, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesTicker - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListPriceTriggeredDeliveryOrdersOpts Optional parameters for the method 'ListPriceTriggeredDeliveryOrders' +type ListPriceTriggeredDeliveryOrdersOpts struct { + Contract optional.String + Limit optional.Int32 + Offset optional.Int32 } /* -DeliveryApiService Futures trading history +ListPriceTriggeredDeliveryOrders List all auto orders * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param contract Futures contract - * @param optional nil or *ListDeliveryTradesOpts - Optional Parameters: + * @param status List orders based on status + * @param optional nil or *ListPriceTriggeredDeliveryOrdersOpts - Optional Parameters: + * @param "Contract" (optional.String) - Futures contract, return related data only if specified * @param "Limit" (optional.Int32) - Maximum number of records returned in one list - * @param "LastId" (optional.String) - Specify list staring point using the id of last record in previous list-query results This parameter is deprecated. Use `from` and `to` instead to limit time range - * @param "From" (optional.Float32) - Specify starting time in Unix seconds. If not specified, `to` and `limit` will be used to limit response items. If items between `from` and `to` are more than `limit`, only `limit` number will be returned. - * @param "To" (optional.Float32) - Specify end time in Unix seconds, default to current time -@return []FuturesTrade + * @param "Offset" (optional.Int32) - List offset, starting from 0 +@return []FuturesPriceTriggeredOrder */ - -type ListDeliveryTradesOpts struct { - Limit optional.Int32 - LastId optional.String - From optional.Float32 - To optional.Float32 -} - -func (a *DeliveryApiService) ListDeliveryTrades(ctx context.Context, settle string, contract string, localVarOptionals *ListDeliveryTradesOpts) ([]FuturesTrade, *http.Response, error) { +func (a *DeliveryApiService) ListPriceTriggeredDeliveryOrders(ctx context.Context, settle string, status string, localVarOptionals *ListPriceTriggeredDeliveryOrdersOpts) ([]FuturesPriceTriggeredOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesTrade + localVarReturnValue []FuturesPriceTriggeredOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/trades" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/price_orders" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("contract", parameterToString(contract, "")) + localVarQueryParams.Add("status", parameterToString(status, "")) + if localVarOptionals != nil && localVarOptionals.Contract.IsSet() { + localVarQueryParams.Add("contract", parameterToString(localVarOptionals.Contract.Value(), "")) + } 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.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.Offset.IsSet() { + localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), "")) } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + 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, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesTrade - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -DeliveryApiService List all auto orders +CreatePriceTriggeredDeliveryOrder Create a price-triggered order * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param status List orders based on status - * @param optional nil or *ListPriceTriggeredDeliveryOrdersOpts - Optional Parameters: - * @param "Contract" (optional.String) - Futures contract, return related data only if specified - * @param "Limit" (optional.Int32) - Maximum number of records returned in one list - * @param "Offset" (optional.Int32) - List offset, starting from 0 -@return []FuturesPriceTriggeredOrder + * @param futuresPriceTriggeredOrder +@return TriggerOrderResponse */ - -type ListPriceTriggeredDeliveryOrdersOpts struct { - Contract optional.String - Limit optional.Int32 - Offset optional.Int32 -} - -func (a *DeliveryApiService) ListPriceTriggeredDeliveryOrders(ctx context.Context, settle string, status string, localVarOptionals *ListPriceTriggeredDeliveryOrdersOpts) ([]FuturesPriceTriggeredOrder, *http.Response, error) { +func (a *DeliveryApiService) CreatePriceTriggeredDeliveryOrder(ctx context.Context, settle string, futuresPriceTriggeredOrder FuturesPriceTriggeredOrder) (TriggerOrderResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesPriceTriggeredOrder + localVarReturnValue TriggerOrderResponse ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/price_orders" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("status", parameterToString(status, "")) - if localVarOptionals != nil && localVarOptionals.Contract.IsSet() { - localVarQueryParams.Add("contract", parameterToString(localVarOptionals.Contract.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{} + localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + // body params + localVarPostBody = &futuresPriceTriggeredOrder + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesPriceTriggeredOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -DeliveryApiService Update position leverage +CancelPriceTriggeredDeliveryOrderList Cancel all open orders * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency * @param contract Futures contract - * @param leverage New position leverage -@return Position +@return []FuturesPriceTriggeredOrder */ -func (a *DeliveryApiService) UpdateDeliveryPositionLeverage(ctx context.Context, settle string, contract string, leverage string) (Position, *http.Response, error) { +func (a *DeliveryApiService) CancelPriceTriggeredDeliveryOrderList(ctx context.Context, settle string, contract string) ([]FuturesPriceTriggeredOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodDelete localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Position + localVarReturnValue []FuturesPriceTriggeredOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/positions/{contract}/leverage" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", fmt.Sprintf("%v", contract), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/price_orders" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("leverage", parameterToString(leverage, "")) + localVarQueryParams.Add("contract", parameterToString(contract, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v Position - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -DeliveryApiService Update position margin +GetPriceTriggeredDeliveryOrder Get a single order * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param contract Futures contract - * @param change Margin change. Use positive number to increase margin, negative number otherwise. -@return Position + * @param orderId ID returned on order successfully being created +@return FuturesPriceTriggeredOrder */ -func (a *DeliveryApiService) UpdateDeliveryPositionMargin(ctx context.Context, settle string, contract string, change string) (Position, *http.Response, error) { +func (a *DeliveryApiService) GetPriceTriggeredDeliveryOrder(ctx context.Context, settle string, orderId string) (FuturesPriceTriggeredOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Position + localVarReturnValue FuturesPriceTriggeredOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/positions/{contract}/margin" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", fmt.Sprintf("%v", contract), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/price_orders/{order_id}" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", url.QueryEscape(parameterToString(orderId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("change", parameterToString(change, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v Position - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -DeliveryApiService Update position risk limit +CancelPriceTriggeredDeliveryOrder Cancel a single order * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param contract Futures contract - * @param riskLimit New position risk limit -@return Position + * @param orderId ID returned on order successfully being created +@return FuturesPriceTriggeredOrder */ -func (a *DeliveryApiService) UpdateDeliveryPositionRiskLimit(ctx context.Context, settle string, contract string, riskLimit string) (Position, *http.Response, error) { +func (a *DeliveryApiService) CancelPriceTriggeredDeliveryOrder(ctx context.Context, settle string, orderId string) (FuturesPriceTriggeredOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodDelete localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Position + localVarReturnValue FuturesPriceTriggeredOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/positions/{contract}/risk_limit" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", fmt.Sprintf("%v", contract), -1) + localVarPath := a.client.cfg.BasePath + "/delivery/{settle}/price_orders/{order_id}" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", url.QueryEscape(parameterToString(orderId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("risk_limit", parameterToString(riskLimit, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v Position - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } diff --git a/api_futures.go b/api_futures.go index 4ea402c..7a835f0 100644 --- a/api_futures.go +++ b/api_futures.go @@ -11,12 +11,11 @@ package gateapi import ( "context" + "github.com/antihax/optional" "io/ioutil" "net/http" "net/url" "strings" - "fmt" - "github.com/antihax/optional" ) // Linger please @@ -24,2116 +23,2056 @@ var ( _ context.Context ) +// FuturesApiService FuturesApi service type FuturesApiService service /* -FuturesApiService Cancel a single order +ListFuturesContracts List all futures contracts * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param orderId ID returned on order successfully being created -@return FuturesOrder +@return []Contract */ -func (a *FuturesApiService) CancelFuturesOrder(ctx context.Context, settle string, orderId string) (FuturesOrder, *http.Response, error) { +func (a *FuturesApiService) ListFuturesContracts(ctx context.Context, settle string) ([]Contract, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue FuturesOrder + localVarReturnValue []Contract ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/orders/{order_id}" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", fmt.Sprintf("%v", orderId), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/contracts" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v FuturesOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -FuturesApiService Cancel all `open` orders matched -Zero-fill order cannot be retrieved 60 seconds after cancellation +GetFuturesContract Get a single contract * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency * @param contract Futures contract - * @param optional nil or *CancelFuturesOrdersOpts - Optional Parameters: - * @param "Side" (optional.String) - All bids or asks. Both included in not specified -@return []FuturesOrder +@return Contract */ - -type CancelFuturesOrdersOpts struct { - Side optional.String -} - -func (a *FuturesApiService) CancelFuturesOrders(ctx context.Context, settle string, contract string, localVarOptionals *CancelFuturesOrdersOpts) ([]FuturesOrder, *http.Response, error) { +func (a *FuturesApiService) GetFuturesContract(ctx context.Context, settle string, contract string) (Contract, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesOrder + localVarReturnValue Contract ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/orders" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/contracts/{contract}" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", url.QueryEscape(parameterToString(contract, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("contract", parameterToString(contract, "")) - if localVarOptionals != nil && localVarOptionals.Side.IsSet() { - localVarQueryParams.Add("side", parameterToString(localVarOptionals.Side.Value(), "")) - } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListFuturesOrderBookOpts Optional parameters for the method 'ListFuturesOrderBook' +type ListFuturesOrderBookOpts struct { + Interval optional.String + Limit optional.Int32 } /* -FuturesApiService Cancel a single order +ListFuturesOrderBook Futures order book +Bids will be sorted by price from high to low, while asks sorted reversely * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param orderId ID returned on order successfully being created -@return FuturesPriceTriggeredOrder + * @param contract Futures contract + * @param optional nil or *ListFuturesOrderBookOpts - 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 +@return FuturesOrderBook */ -func (a *FuturesApiService) CancelPriceTriggeredOrder(ctx context.Context, settle string, orderId string) (FuturesPriceTriggeredOrder, *http.Response, error) { +func (a *FuturesApiService) ListFuturesOrderBook(ctx context.Context, settle string, contract string, localVarOptionals *ListFuturesOrderBookOpts) (FuturesOrderBook, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue FuturesPriceTriggeredOrder + localVarReturnValue FuturesOrderBook ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/price_orders/{order_id}" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", fmt.Sprintf("%v", orderId), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/order_book" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + localVarQueryParams.Add("contract", parameterToString(contract, "")) + 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(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v FuturesPriceTriggeredOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListFuturesTradesOpts Optional parameters for the method 'ListFuturesTrades' +type ListFuturesTradesOpts struct { + Limit optional.Int32 + LastId optional.String + From optional.Int64 + To optional.Int64 } /* -FuturesApiService Cancel all open orders +ListFuturesTrades Futures trading history * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency * @param contract Futures contract -@return []FuturesPriceTriggeredOrder + * @param optional nil or *ListFuturesTradesOpts - Optional Parameters: + * @param "Limit" (optional.Int32) - Maximum number of records returned in one list + * @param "LastId" (optional.String) - Specify list staring point using the id of last record in previous list-query results This parameter is deprecated. Use `from` and `to` instead to limit time range + * @param "From" (optional.Int64) - Specify starting time in Unix seconds. If not specified, `to` and `limit` will be used to limit response items. If items between `from` and `to` are more than `limit`, only `limit` number will be returned. + * @param "To" (optional.Int64) - Specify end time in Unix seconds, default to current time +@return []FuturesTrade */ -func (a *FuturesApiService) CancelPriceTriggeredOrderList(ctx context.Context, settle string, contract string) ([]FuturesPriceTriggeredOrder, *http.Response, error) { +func (a *FuturesApiService) ListFuturesTrades(ctx context.Context, settle string, contract string, localVarOptionals *ListFuturesTradesOpts) ([]FuturesTrade, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesPriceTriggeredOrder + localVarReturnValue []FuturesTrade ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/price_orders" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/trades" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} localVarQueryParams.Add("contract", parameterToString(contract, "")) + 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.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{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesPriceTriggeredOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListFuturesCandlesticksOpts Optional parameters for the method 'ListFuturesCandlesticks' +type ListFuturesCandlesticksOpts struct { + From optional.Int64 + To optional.Int64 + Limit optional.Int32 + Interval optional.String } /* -FuturesApiService Create a futures order -Zero-fill order cannot be retrieved 60 seconds after cancellation +ListFuturesCandlesticks Get futures candlesticks +Return specified contract candlesticks. If prefix `contract` with `mark_`, the contract's mark price candlesticks are returned; if prefix with `index_`, index price candlesticks will be returned. Maximum of 2000 points are returned in one 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 settle Settle currency - * @param futuresOrder -@return FuturesOrder + * @param contract Futures contract + * @param optional nil or *ListFuturesCandlesticksOpts - Optional Parameters: + * @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) - End time of candlesticks, formatted in Unix timestamp in seconds. Default to current time + * @param "Limit" (optional.Int32) - Maximum recent data points returned. `limit` is conflicted with `from` and `to`. If either `from` or `to` is specified, request will be rejected. + * @param "Interval" (optional.String) - Interval time between data points +@return []FuturesCandlestick */ -func (a *FuturesApiService) CreateFuturesOrder(ctx context.Context, settle string, futuresOrder FuturesOrder) (FuturesOrder, *http.Response, error) { +func (a *FuturesApiService) ListFuturesCandlesticks(ctx context.Context, settle string, contract string, localVarOptionals *ListFuturesCandlesticksOpts) ([]FuturesCandlestick, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue FuturesOrder + localVarReturnValue []FuturesCandlestick ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/orders" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/candlesticks" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + localVarQueryParams.Add("contract", parameterToString(contract, "")) + 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.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Interval.IsSet() { + localVarQueryParams.Add("interval", parameterToString(localVarOptionals.Interval.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{"application/json"} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - // body params - localVarPostBody = &futuresOrder - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 201 { - var v FuturesOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListFuturesTickersOpts Optional parameters for the method 'ListFuturesTickers' +type ListFuturesTickersOpts struct { + Contract optional.String } /* -FuturesApiService Create a price-triggered order +ListFuturesTickers List futures tickers * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param futuresPriceTriggeredOrder -@return TriggerOrderResponse + * @param optional nil or *ListFuturesTickersOpts - Optional Parameters: + * @param "Contract" (optional.String) - Futures contract, return related data only if specified +@return []FuturesTicker */ -func (a *FuturesApiService) CreatePriceTriggeredOrder(ctx context.Context, settle string, futuresPriceTriggeredOrder FuturesPriceTriggeredOrder) (TriggerOrderResponse, *http.Response, error) { +func (a *FuturesApiService) ListFuturesTickers(ctx context.Context, settle string, localVarOptionals *ListFuturesTickersOpts) ([]FuturesTicker, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue TriggerOrderResponse + localVarReturnValue []FuturesTicker ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/price_orders" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/tickers" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + if localVarOptionals != nil && localVarOptionals.Contract.IsSet() { + localVarQueryParams.Add("contract", parameterToString(localVarOptionals.Contract.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{"application/json"} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - // body params - localVarPostBody = &futuresPriceTriggeredOrder - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 201 { - var v TriggerOrderResponse - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListFuturesFundingRateHistoryOpts Optional parameters for the method 'ListFuturesFundingRateHistory' +type ListFuturesFundingRateHistoryOpts struct { + Limit optional.Int32 } /* -FuturesApiService Get a single contract +ListFuturesFundingRateHistory Funding rate history * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency * @param contract Futures contract -@return Contract + * @param optional nil or *ListFuturesFundingRateHistoryOpts - Optional Parameters: + * @param "Limit" (optional.Int32) - Maximum number of records returned in one list +@return []FundingRateRecord */ -func (a *FuturesApiService) GetFuturesContract(ctx context.Context, settle string, contract string) (Contract, *http.Response, error) { +func (a *FuturesApiService) ListFuturesFundingRateHistory(ctx context.Context, settle string, contract string, localVarOptionals *ListFuturesFundingRateHistoryOpts) ([]FundingRateRecord, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Contract + localVarReturnValue []FundingRateRecord ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/contracts/{contract}" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", fmt.Sprintf("%v", contract), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/funding_rate" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + localVarQueryParams.Add("contract", parameterToString(contract, "")) + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v Contract - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListFuturesInsuranceLedgerOpts Optional parameters for the method 'ListFuturesInsuranceLedger' +type ListFuturesInsuranceLedgerOpts struct { + Limit optional.Int32 } /* -FuturesApiService Get a single order -Zero-fill order cannot be retrieved 60 seconds after cancellation +ListFuturesInsuranceLedger Futures insurance balance history * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param orderId ID returned on order successfully being created -@return FuturesOrder + * @param optional nil or *ListFuturesInsuranceLedgerOpts - Optional Parameters: + * @param "Limit" (optional.Int32) - Maximum number of records returned in one list +@return []InsuranceRecord */ -func (a *FuturesApiService) GetFuturesOrder(ctx context.Context, settle string, orderId string) (FuturesOrder, *http.Response, error) { +func (a *FuturesApiService) ListFuturesInsuranceLedger(ctx context.Context, settle string, localVarOptionals *ListFuturesInsuranceLedgerOpts) ([]InsuranceRecord, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue FuturesOrder + localVarReturnValue []InsuranceRecord ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/orders/{order_id}" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", fmt.Sprintf("%v", orderId), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/insurance" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v FuturesOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -FuturesApiService List personal trading history +ListFuturesAccounts Query futures account * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param optional nil or *GetMyTradesOpts - Optional Parameters: - * @param "Contract" (optional.String) - Futures contract, return related data only if specified - * @param "Order" (optional.Int32) - Futures order ID, return related data only if specified - * @param "Limit" (optional.Int32) - Maximum number of records returned in one list - * @param "Offset" (optional.Int32) - List offset, starting from 0 - * @param "LastId" (optional.String) - Specify list staring point using the `id` of last record in previous list-query results - * @param "CountTotal" (optional.Int32) - Whether to return total number matched. Default to 0(no return) -@return []MyFuturesTrade +@return FuturesAccount */ - -type GetMyTradesOpts struct { - Contract optional.String - Order optional.Int32 - Limit optional.Int32 - Offset optional.Int32 - LastId optional.String - CountTotal optional.Int32 -} - -func (a *FuturesApiService) GetMyTrades(ctx context.Context, settle string, localVarOptionals *GetMyTradesOpts) ([]MyFuturesTrade, *http.Response, error) { +func (a *FuturesApiService) ListFuturesAccounts(ctx context.Context, settle string) (FuturesAccount, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []MyFuturesTrade + localVarReturnValue FuturesAccount ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/my_trades" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/accounts" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Contract.IsSet() { - localVarQueryParams.Add("contract", parameterToString(localVarOptionals.Contract.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Order.IsSet() { - localVarQueryParams.Add("order", parameterToString(localVarOptionals.Order.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(), "")) - } - if localVarOptionals != nil && localVarOptionals.LastId.IsSet() { - localVarQueryParams.Add("last_id", parameterToString(localVarOptionals.LastId.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.CountTotal.IsSet() { - localVarQueryParams.Add("count_total", parameterToString(localVarOptionals.CountTotal.Value(), "")) - } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []MyFuturesTrade - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListFuturesAccountBookOpts Optional parameters for the method 'ListFuturesAccountBook' +type ListFuturesAccountBookOpts struct { + Limit optional.Int32 + From optional.Int64 + To optional.Int64 + Type_ optional.String } /* -FuturesApiService Get single position +ListFuturesAccountBook Query account book * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param contract Futures contract -@return Position + * @param optional nil or *ListFuturesAccountBookOpts - Optional Parameters: + * @param "Limit" (optional.Int32) - Maximum number of records returned in one list + * @param "From" (optional.Int64) - Start timestamp + * @param "To" (optional.Int64) - End timestamp + * @param "Type_" (optional.String) - Changing Type: - dnw: Deposit & Withdraw - pnl: Profit & Loss by reducing position - fee: Trading fee - refr: Referrer rebate - fund: Funding - point_dnw: POINT Deposit & Withdraw - point_fee: POINT Trading fee - point_refr: POINT Referrer rebate +@return []FuturesAccountBook */ -func (a *FuturesApiService) GetPosition(ctx context.Context, settle string, contract string) (Position, *http.Response, error) { +func (a *FuturesApiService) ListFuturesAccountBook(ctx context.Context, settle string, localVarOptionals *ListFuturesAccountBookOpts) ([]FuturesAccountBook, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Position + localVarReturnValue []FuturesAccountBook ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/positions/{contract}" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", fmt.Sprintf("%v", contract), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/account_book" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + 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.Type_.IsSet() { + localVarQueryParams.Add("type", parameterToString(localVarOptionals.Type_.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v Position - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -FuturesApiService Get a single order +ListPositions List all positions of a user * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param orderId ID returned on order successfully being created -@return FuturesPriceTriggeredOrder +@return []Position */ -func (a *FuturesApiService) GetPriceTriggeredOrder(ctx context.Context, settle string, orderId string) (FuturesPriceTriggeredOrder, *http.Response, error) { +func (a *FuturesApiService) ListPositions(ctx context.Context, settle string) ([]Position, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue FuturesPriceTriggeredOrder + localVarReturnValue []Position ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/price_orders/{order_id}" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", fmt.Sprintf("%v", orderId), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/positions" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v FuturesPriceTriggeredOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -FuturesApiService Query account book +GetPosition Get single position * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param optional nil or *ListFuturesAccountBookOpts - Optional Parameters: - * @param "Limit" (optional.Int32) - Maximum number of records returned in one list - * @param "From" (optional.Int32) - Start timestamp - * @param "To" (optional.Int32) - End timestamp - * @param "Type_" (optional.String) - Changing Type: - dnw: Deposit & Withdraw - pnl: Profit & Loss by reducing position - fee: Trading fee - refr: Referrer rebate - fund: Funding - point_dnw: POINT Deposit & Withdraw - point_fee: POINT Trading fee - point_refr: POINT Referrer rebate -@return []FuturesAccountBook + * @param contract Futures contract +@return Position */ - -type ListFuturesAccountBookOpts struct { - Limit optional.Int32 - From optional.Int32 - To optional.Int32 - Type_ optional.String -} - -func (a *FuturesApiService) ListFuturesAccountBook(ctx context.Context, settle string, localVarOptionals *ListFuturesAccountBookOpts) ([]FuturesAccountBook, *http.Response, error) { +func (a *FuturesApiService) GetPosition(ctx context.Context, settle string, contract string) (Position, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesAccountBook + localVarReturnValue Position ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/account_book" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/positions/{contract}" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", url.QueryEscape(parameterToString(contract, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - 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.Type_.IsSet() { - localVarQueryParams.Add("type", parameterToString(localVarOptionals.Type_.Value(), "")) - } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesAccountBook - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -FuturesApiService Query futures account +UpdatePositionMargin Update position margin * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency -@return FuturesAccount + * @param contract Futures contract + * @param change Margin change. Use positive number to increase margin, negative number otherwise. +@return Position */ -func (a *FuturesApiService) ListFuturesAccounts(ctx context.Context, settle string) (FuturesAccount, *http.Response, error) { +func (a *FuturesApiService) UpdatePositionMargin(ctx context.Context, settle string, contract string, change string) (Position, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue FuturesAccount + localVarReturnValue Position ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/accounts" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/positions/{contract}/margin" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", url.QueryEscape(parameterToString(contract, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + localVarQueryParams.Add("change", parameterToString(change, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v FuturesAccount - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -FuturesApiService Get futures candlesticks -Return specified contract candlesticks. If prefix `contract` with `mark_`, the contract's mark price candlesticks are returned; if prefix with `index_`, index price candlesticks will be returned. Maximum of 2000 points are returned in one query. Be sure not to exceed the limit when specifying `from`, `to` and `interval` +UpdatePositionLeverage Update position leverage * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency * @param contract Futures contract - * @param optional nil or *ListFuturesCandlesticksOpts - Optional Parameters: - * @param "From" (optional.Float32) - Start time of candlesticks, formatted in Unix timestamp in seconds. Default to`to - 100 * interval` if not specified - * @param "To" (optional.Float32) - End time of candlesticks, formatted in Unix timestamp in seconds. Default to current time - * @param "Limit" (optional.Int32) - Maximum recent data points returned. `limit` is conflicted with `from` and `to`. If either `from` or `to` is specified, request will be rejected. - * @param "Interval" (optional.String) - Interval time between data points -@return []FuturesCandlestick + * @param leverage New position leverage +@return Position */ - -type ListFuturesCandlesticksOpts struct { - From optional.Float32 - To optional.Float32 - Limit optional.Int32 - Interval optional.String -} - -func (a *FuturesApiService) ListFuturesCandlesticks(ctx context.Context, settle string, contract string, localVarOptionals *ListFuturesCandlesticksOpts) ([]FuturesCandlestick, *http.Response, error) { +func (a *FuturesApiService) UpdatePositionLeverage(ctx context.Context, settle string, contract string, leverage string) (Position, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesCandlestick + localVarReturnValue Position ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/candlesticks" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/positions/{contract}/leverage" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", url.QueryEscape(parameterToString(contract, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("contract", parameterToString(contract, "")) - 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.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.Interval.IsSet() { - localVarQueryParams.Add("interval", parameterToString(localVarOptionals.Interval.Value(), "")) - } + localVarQueryParams.Add("leverage", parameterToString(leverage, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesCandlestick - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -FuturesApiService List all futures contracts +UpdatePositionRiskLimit Update position risk limit * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency -@return []Contract + * @param contract Futures contract + * @param riskLimit New position risk limit +@return Position */ -func (a *FuturesApiService) ListFuturesContracts(ctx context.Context, settle string) ([]Contract, *http.Response, error) { +func (a *FuturesApiService) UpdatePositionRiskLimit(ctx context.Context, settle string, contract string, riskLimit string) (Position, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []Contract + localVarReturnValue Position ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/contracts" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/positions/{contract}/risk_limit" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", url.QueryEscape(parameterToString(contract, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + localVarQueryParams.Add("risk_limit", parameterToString(riskLimit, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []Contract - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListFuturesOrdersOpts Optional parameters for the method 'ListFuturesOrders' +type ListFuturesOrdersOpts struct { + Limit optional.Int32 + Offset optional.Int32 + LastId optional.String + CountTotal optional.Int32 } /* -FuturesApiService Funding rate history +ListFuturesOrders List futures orders +Zero-fill order cannot be retrieved 60 seconds after cancellation * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency * @param contract Futures contract - * @param optional nil or *ListFuturesFundingRateHistoryOpts - Optional Parameters: + * @param status List orders based on status + * @param optional nil or *ListFuturesOrdersOpts - Optional Parameters: * @param "Limit" (optional.Int32) - Maximum number of records returned in one list -@return []FundingRateRecord + * @param "Offset" (optional.Int32) - List offset, starting from 0 + * @param "LastId" (optional.String) - Specify list staring point using the `id` of last record in previous list-query results + * @param "CountTotal" (optional.Int32) - Whether to return total number matched. Default to 0(no return) +@return []FuturesOrder */ - -type ListFuturesFundingRateHistoryOpts struct { - Limit optional.Int32 -} - -func (a *FuturesApiService) ListFuturesFundingRateHistory(ctx context.Context, settle string, contract string, localVarOptionals *ListFuturesFundingRateHistoryOpts) ([]FundingRateRecord, *http.Response, error) { +func (a *FuturesApiService) ListFuturesOrders(ctx context.Context, settle string, contract string, status string, localVarOptionals *ListFuturesOrdersOpts) ([]FuturesOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FundingRateRecord + localVarReturnValue []FuturesOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/funding_rate" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/orders" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} localVarQueryParams.Add("contract", parameterToString(contract, "")) + localVarQueryParams.Add("status", parameterToString(status, "")) 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(), "")) + } + if localVarOptionals != nil && localVarOptionals.LastId.IsSet() { + localVarQueryParams.Add("last_id", parameterToString(localVarOptionals.LastId.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.CountTotal.IsSet() { + localVarQueryParams.Add("count_total", parameterToString(localVarOptionals.CountTotal.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []FundingRateRecord - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -FuturesApiService Futures insurance balance history +CreateFuturesOrder Create a futures order +Zero-fill order cannot be retrieved 60 seconds after cancellation * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param optional nil or *ListFuturesInsuranceLedgerOpts - Optional Parameters: - * @param "Limit" (optional.Int32) - Maximum number of records returned in one list -@return []InsuranceRecord + * @param futuresOrder +@return FuturesOrder */ - -type ListFuturesInsuranceLedgerOpts struct { - Limit optional.Int32 -} - -func (a *FuturesApiService) ListFuturesInsuranceLedger(ctx context.Context, settle string, localVarOptionals *ListFuturesInsuranceLedgerOpts) ([]InsuranceRecord, *http.Response, error) { +func (a *FuturesApiService) CreateFuturesOrder(ctx context.Context, settle string, futuresOrder FuturesOrder) (FuturesOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []InsuranceRecord + localVarReturnValue FuturesOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/insurance" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/orders" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { - localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) - } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + // body params + localVarPostBody = &futuresOrder + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []InsuranceRecord - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// CancelFuturesOrdersOpts Optional parameters for the method 'CancelFuturesOrders' +type CancelFuturesOrdersOpts struct { + Side optional.String } /* -FuturesApiService Futures order book -Bids will be sorted by price from high to low, while asks sorted reversely +CancelFuturesOrders Cancel all `open` orders matched +Zero-fill order cannot be retrieved 60 seconds after cancellation * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency * @param contract Futures contract - * @param optional nil or *ListFuturesOrderBookOpts - 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 -@return FuturesOrderBook + * @param optional nil or *CancelFuturesOrdersOpts - Optional Parameters: + * @param "Side" (optional.String) - All bids or asks. Both included in not specified +@return []FuturesOrder */ - -type ListFuturesOrderBookOpts struct { - Interval optional.String - Limit optional.Int32 -} - -func (a *FuturesApiService) ListFuturesOrderBook(ctx context.Context, settle string, contract string, localVarOptionals *ListFuturesOrderBookOpts) (FuturesOrderBook, *http.Response, error) { +func (a *FuturesApiService) CancelFuturesOrders(ctx context.Context, settle string, contract string, localVarOptionals *CancelFuturesOrdersOpts) ([]FuturesOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodDelete localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue FuturesOrderBook + localVarReturnValue []FuturesOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/order_book" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/orders" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} localVarQueryParams.Add("contract", parameterToString(contract, "")) - 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.Side.IsSet() { + localVarQueryParams.Add("side", parameterToString(localVarOptionals.Side.Value(), "")) } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v FuturesOrderBook - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -FuturesApiService List futures orders +GetFuturesOrder Get a single order Zero-fill order cannot be retrieved 60 seconds after cancellation * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param contract Futures contract - * @param status List orders based on status - * @param optional nil or *ListFuturesOrdersOpts - Optional Parameters: - * @param "Limit" (optional.Int32) - Maximum number of records returned in one list - * @param "Offset" (optional.Int32) - List offset, starting from 0 - * @param "LastId" (optional.String) - Specify list staring point using the `id` of last record in previous list-query results - * @param "CountTotal" (optional.Int32) - Whether to return total number matched. Default to 0(no return) -@return []FuturesOrder + * @param orderId ID returned on order successfully being created +@return FuturesOrder */ - -type ListFuturesOrdersOpts struct { - Limit optional.Int32 - Offset optional.Int32 - LastId optional.String - CountTotal optional.Int32 -} - -func (a *FuturesApiService) ListFuturesOrders(ctx context.Context, settle string, contract string, status string, localVarOptionals *ListFuturesOrdersOpts) ([]FuturesOrder, *http.Response, error) { +func (a *FuturesApiService) GetFuturesOrder(ctx context.Context, settle string, orderId string) (FuturesOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesOrder + localVarReturnValue FuturesOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/orders" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/orders/{order_id}" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", url.QueryEscape(parameterToString(orderId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("contract", parameterToString(contract, "")) - localVarQueryParams.Add("status", parameterToString(status, "")) - 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(), "")) - } - if localVarOptionals != nil && localVarOptionals.LastId.IsSet() { - localVarQueryParams.Add("last_id", parameterToString(localVarOptionals.LastId.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.CountTotal.IsSet() { - localVarQueryParams.Add("count_total", parameterToString(localVarOptionals.CountTotal.Value(), "")) - } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -FuturesApiService List futures tickers +CancelFuturesOrder Cancel a single order * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param optional nil or *ListFuturesTickersOpts - Optional Parameters: - * @param "Contract" (optional.String) - Futures contract, return related data only if specified -@return []FuturesTicker + * @param orderId ID returned on order successfully being created +@return FuturesOrder */ - -type ListFuturesTickersOpts struct { - Contract optional.String -} - -func (a *FuturesApiService) ListFuturesTickers(ctx context.Context, settle string, localVarOptionals *ListFuturesTickersOpts) ([]FuturesTicker, *http.Response, error) { +func (a *FuturesApiService) CancelFuturesOrder(ctx context.Context, settle string, orderId string) (FuturesOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodDelete localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesTicker + localVarReturnValue FuturesOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/tickers" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/orders/{order_id}" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + 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.Contract.IsSet() { - localVarQueryParams.Add("contract", parameterToString(localVarOptionals.Contract.Value(), "")) - } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesTicker - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// GetMyTradesOpts Optional parameters for the method 'GetMyTrades' +type GetMyTradesOpts struct { + Contract optional.String + Order optional.Int32 + Limit optional.Int32 + Offset optional.Int32 + LastId optional.String + CountTotal optional.Int32 } /* -FuturesApiService Futures trading history +GetMyTrades List personal trading history * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param contract Futures contract - * @param optional nil or *ListFuturesTradesOpts - Optional Parameters: + * @param optional nil or *GetMyTradesOpts - Optional Parameters: + * @param "Contract" (optional.String) - Futures contract, return related data only if specified + * @param "Order" (optional.Int32) - Futures order ID, return related data only if specified * @param "Limit" (optional.Int32) - Maximum number of records returned in one list - * @param "LastId" (optional.String) - Specify list staring point using the id of last record in previous list-query results This parameter is deprecated. Use `from` and `to` instead to limit time range - * @param "From" (optional.Float32) - Specify starting time in Unix seconds. If not specified, `to` and `limit` will be used to limit response items. If items between `from` and `to` are more than `limit`, only `limit` number will be returned. - * @param "To" (optional.Float32) - Specify end time in Unix seconds, default to current time -@return []FuturesTrade + * @param "Offset" (optional.Int32) - List offset, starting from 0 + * @param "LastId" (optional.String) - Specify list staring point using the `id` of last record in previous list-query results + * @param "CountTotal" (optional.Int32) - Whether to return total number matched. Default to 0(no return) +@return []MyFuturesTrade */ - -type ListFuturesTradesOpts struct { - Limit optional.Int32 - LastId optional.String - From optional.Float32 - To optional.Float32 -} - -func (a *FuturesApiService) ListFuturesTrades(ctx context.Context, settle string, contract string, localVarOptionals *ListFuturesTradesOpts) ([]FuturesTrade, *http.Response, error) { +func (a *FuturesApiService) GetMyTrades(ctx context.Context, settle string, localVarOptionals *GetMyTradesOpts) ([]MyFuturesTrade, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesTrade + localVarReturnValue []MyFuturesTrade ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/trades" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/my_trades" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("contract", parameterToString(contract, "")) + if localVarOptionals != nil && localVarOptionals.Contract.IsSet() { + localVarQueryParams.Add("contract", parameterToString(localVarOptionals.Contract.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.Order.IsSet() { + localVarQueryParams.Add("order", parameterToString(localVarOptionals.Order.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(), "")) + } if localVarOptionals != nil && localVarOptionals.LastId.IsSet() { localVarQueryParams.Add("last_id", parameterToString(localVarOptionals.LastId.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.CountTotal.IsSet() { + localVarQueryParams.Add("count_total", parameterToString(localVarOptionals.CountTotal.Value(), "")) } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + 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, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesTrade - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListPositionCloseOpts Optional parameters for the method 'ListPositionClose' +type ListPositionCloseOpts struct { + Contract optional.String + Limit optional.Int32 } /* -FuturesApiService List liquidation history +ListPositionClose List position close history * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param optional nil or *ListLiquidatesOpts - Optional Parameters: + * @param optional nil or *ListPositionCloseOpts - Optional Parameters: * @param "Contract" (optional.String) - Futures contract, return related data only if specified * @param "Limit" (optional.Int32) - Maximum number of records returned in one list - * @param "At" (optional.Int32) - Specify a liquidation timestamp -@return []FuturesLiquidate +@return []PositionClose */ - -type ListLiquidatesOpts struct { - Contract optional.String - Limit optional.Int32 - At optional.Int32 -} - -func (a *FuturesApiService) ListLiquidates(ctx context.Context, settle string, localVarOptionals *ListLiquidatesOpts) ([]FuturesLiquidate, *http.Response, error) { +func (a *FuturesApiService) ListPositionClose(ctx context.Context, settle string, localVarOptionals *ListPositionCloseOpts) ([]PositionClose, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesLiquidate + localVarReturnValue []PositionClose ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/liquidates" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/position_close" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -2145,101 +2084,99 @@ func (a *FuturesApiService) ListLiquidates(ctx context.Context, settle string, l if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) } - if localVarOptionals != nil && localVarOptionals.At.IsSet() { - localVarQueryParams.Add("at", parameterToString(localVarOptionals.At.Value(), "")) - } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesLiquidate - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListLiquidatesOpts Optional parameters for the method 'ListLiquidates' +type ListLiquidatesOpts struct { + Contract optional.String + Limit optional.Int32 + At optional.Int32 } /* -FuturesApiService List position close history +ListLiquidates List liquidation history * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param optional nil or *ListPositionCloseOpts - Optional Parameters: + * @param optional nil or *ListLiquidatesOpts - Optional Parameters: * @param "Contract" (optional.String) - Futures contract, return related data only if specified * @param "Limit" (optional.Int32) - Maximum number of records returned in one list -@return []PositionClose + * @param "At" (optional.Int32) - Specify a liquidation timestamp +@return []FuturesLiquidate */ - -type ListPositionCloseOpts struct { - Contract optional.String - Limit optional.Int32 -} - -func (a *FuturesApiService) ListPositionClose(ctx context.Context, settle string, localVarOptionals *ListPositionCloseOpts) ([]PositionClose, *http.Response, error) { +func (a *FuturesApiService) ListLiquidates(ctx context.Context, settle string, localVarOptionals *ListLiquidatesOpts) ([]FuturesLiquidate, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []PositionClose + localVarReturnValue []FuturesLiquidate ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/position_close" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/liquidates" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} @@ -2251,540 +2188,536 @@ func (a *FuturesApiService) ListPositionClose(ctx context.Context, settle string if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) } + if localVarOptionals != nil && localVarOptionals.At.IsSet() { + localVarQueryParams.Add("at", parameterToString(localVarOptionals.At.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []PositionClose - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListPriceTriggeredOrdersOpts Optional parameters for the method 'ListPriceTriggeredOrders' +type ListPriceTriggeredOrdersOpts struct { + Contract optional.String + Limit optional.Int32 + Offset optional.Int32 } /* -FuturesApiService List all positions of a user +ListPriceTriggeredOrders List all auto orders * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency -@return []Position + * @param status List orders based on status + * @param optional nil or *ListPriceTriggeredOrdersOpts - Optional Parameters: + * @param "Contract" (optional.String) - Futures contract, return related data only if specified + * @param "Limit" (optional.Int32) - Maximum number of records returned in one list + * @param "Offset" (optional.Int32) - List offset, starting from 0 +@return []FuturesPriceTriggeredOrder */ -func (a *FuturesApiService) ListPositions(ctx context.Context, settle string) ([]Position, *http.Response, error) { +func (a *FuturesApiService) ListPriceTriggeredOrders(ctx context.Context, settle string, status string, localVarOptionals *ListPriceTriggeredOrdersOpts) ([]FuturesPriceTriggeredOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []Position + localVarReturnValue []FuturesPriceTriggeredOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/positions" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/price_orders" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + localVarQueryParams.Add("status", parameterToString(status, "")) + if localVarOptionals != nil && localVarOptionals.Contract.IsSet() { + localVarQueryParams.Add("contract", parameterToString(localVarOptionals.Contract.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{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + 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, 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []Position - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -FuturesApiService List all auto orders +CreatePriceTriggeredOrder Create a price-triggered order * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param status List orders based on status - * @param optional nil or *ListPriceTriggeredOrdersOpts - Optional Parameters: - * @param "Contract" (optional.String) - Futures contract, return related data only if specified - * @param "Limit" (optional.Int32) - Maximum number of records returned in one list - * @param "Offset" (optional.Int32) - List offset, starting from 0 -@return []FuturesPriceTriggeredOrder + * @param futuresPriceTriggeredOrder +@return TriggerOrderResponse */ - -type ListPriceTriggeredOrdersOpts struct { - Contract optional.String - Limit optional.Int32 - Offset optional.Int32 -} - -func (a *FuturesApiService) ListPriceTriggeredOrders(ctx context.Context, settle string, status string, localVarOptionals *ListPriceTriggeredOrdersOpts) ([]FuturesPriceTriggeredOrder, *http.Response, error) { +func (a *FuturesApiService) CreatePriceTriggeredOrder(ctx context.Context, settle string, futuresPriceTriggeredOrder FuturesPriceTriggeredOrder) (TriggerOrderResponse, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FuturesPriceTriggeredOrder + localVarReturnValue TriggerOrderResponse ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/futures/{settle}/price_orders" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("status", parameterToString(status, "")) - if localVarOptionals != nil && localVarOptionals.Contract.IsSet() { - localVarQueryParams.Add("contract", parameterToString(localVarOptionals.Contract.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{} + localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + // body params + localVarPostBody = &futuresPriceTriggeredOrder + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []FuturesPriceTriggeredOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -FuturesApiService Update position leverage +CancelPriceTriggeredOrderList Cancel all open orders * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency * @param contract Futures contract - * @param leverage New position leverage -@return Position +@return []FuturesPriceTriggeredOrder */ -func (a *FuturesApiService) UpdatePositionLeverage(ctx context.Context, settle string, contract string, leverage string) (Position, *http.Response, error) { +func (a *FuturesApiService) CancelPriceTriggeredOrderList(ctx context.Context, settle string, contract string) ([]FuturesPriceTriggeredOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodDelete localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Position + localVarReturnValue []FuturesPriceTriggeredOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/positions/{contract}/leverage" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", fmt.Sprintf("%v", contract), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/price_orders" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("leverage", parameterToString(leverage, "")) + localVarQueryParams.Add("contract", parameterToString(contract, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v Position - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -FuturesApiService Update position margin +GetPriceTriggeredOrder Get a single order * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param contract Futures contract - * @param change Margin change. Use positive number to increase margin, negative number otherwise. -@return Position + * @param orderId ID returned on order successfully being created +@return FuturesPriceTriggeredOrder */ -func (a *FuturesApiService) UpdatePositionMargin(ctx context.Context, settle string, contract string, change string) (Position, *http.Response, error) { +func (a *FuturesApiService) GetPriceTriggeredOrder(ctx context.Context, settle string, orderId string) (FuturesPriceTriggeredOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Position + localVarReturnValue FuturesPriceTriggeredOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/positions/{contract}/margin" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", fmt.Sprintf("%v", contract), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/price_orders/{order_id}" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", url.QueryEscape(parameterToString(orderId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("change", parameterToString(change, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v Position - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -FuturesApiService Update position risk limit +CancelPriceTriggeredOrder Cancel a single order * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param settle Settle currency - * @param contract Futures contract - * @param riskLimit New position risk limit -@return Position + * @param orderId ID returned on order successfully being created +@return FuturesPriceTriggeredOrder */ -func (a *FuturesApiService) UpdatePositionRiskLimit(ctx context.Context, settle string, contract string, riskLimit string) (Position, *http.Response, error) { +func (a *FuturesApiService) CancelPriceTriggeredOrder(ctx context.Context, settle string, orderId string) (FuturesPriceTriggeredOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodDelete localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Position + localVarReturnValue FuturesPriceTriggeredOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/futures/{settle}/positions/{contract}/risk_limit" - localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", fmt.Sprintf("%v", settle), -1) - localVarPath = strings.Replace(localVarPath, "{"+"contract"+"}", fmt.Sprintf("%v", contract), -1) + localVarPath := a.client.cfg.BasePath + "/futures/{settle}/price_orders/{order_id}" + localVarPath = strings.Replace(localVarPath, "{"+"settle"+"}", url.QueryEscape(parameterToString(settle, "")), -1) + + localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", url.QueryEscape(parameterToString(orderId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("risk_limit", parameterToString(riskLimit, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v Position - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } diff --git a/api_margin.go b/api_margin.go index 2e319fd..46d7250 100644 --- a/api_margin.go +++ b/api_margin.go @@ -11,12 +11,11 @@ package gateapi import ( "context" + "github.com/antihax/optional" "io/ioutil" "net/http" "net/url" "strings" - "fmt" - "github.com/antihax/optional" ) // Linger please @@ -24,383 +23,396 @@ var ( _ context.Context ) +// MarginApiService MarginApi service type MarginApiService service /* -MarginApiService Cancel lending loan -Only lending loans can be cancelled +ListMarginCurrencyPairs List all supported currency pairs supported in margin trading * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param loanId Loan ID - * @param currency Retrieved specified currency related data -@return Loan +@return []MarginCurrencyPair */ -func (a *MarginApiService) CancelLoan(ctx context.Context, loanId string, currency string) (Loan, *http.Response, error) { +func (a *MarginApiService) ListMarginCurrencyPairs(ctx context.Context) ([]MarginCurrencyPair, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Loan + localVarReturnValue []MarginCurrencyPair ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/margin/loans/{loan_id}" - localVarPath = strings.Replace(localVarPath, "{"+"loan_id"+"}", fmt.Sprintf("%v", loanId), -1) - + localVarPath := a.client.cfg.BasePath + "/margin/currency_pairs" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("currency", parameterToString(currency, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v Loan - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -MarginApiService Lend or borrow +ListFundingBook Order book of lending loans * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param loan -@return Loan + * @param currency Retrieved specified currency related data +@return []FundingBookItem */ -func (a *MarginApiService) CreateLoan(ctx context.Context, loan Loan) (Loan, *http.Response, error) { +func (a *MarginApiService) ListFundingBook(ctx context.Context, currency string) ([]FundingBookItem, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Loan + localVarReturnValue []FundingBookItem ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/margin/loans" - + localVarPath := a.client.cfg.BasePath + "/margin/funding_book" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + localVarQueryParams.Add("currency", parameterToString(currency, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{"application/json"} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - // body params - localVarPostBody = &loan - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 201 { - var v Loan - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListMarginAccountsOpts Optional parameters for the method 'ListMarginAccounts' +type ListMarginAccountsOpts struct { + CurrencyPair optional.String } /* -MarginApiService Retrieve one single loan detail +ListMarginAccounts Margin account list * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param loanId Loan ID - * @param side Lend or borrow -@return Loan + * @param optional nil or *ListMarginAccountsOpts - Optional Parameters: + * @param "CurrencyPair" (optional.String) - Currency pair +@return []MarginAccount */ -func (a *MarginApiService) GetLoan(ctx context.Context, loanId string, side string) (Loan, *http.Response, error) { +func (a *MarginApiService) ListMarginAccounts(ctx context.Context, localVarOptionals *ListMarginAccountsOpts) ([]MarginAccount, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Loan + localVarReturnValue []MarginAccount ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/margin/loans/{loan_id}" - localVarPath = strings.Replace(localVarPath, "{"+"loan_id"+"}", fmt.Sprintf("%v", loanId), -1) - + localVarPath := a.client.cfg.BasePath + "/margin/accounts" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("side", parameterToString(side, "")) + if localVarOptionals != nil && localVarOptionals.CurrencyPair.IsSet() { + localVarQueryParams.Add("currency_pair", parameterToString(localVarOptionals.CurrencyPair.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v Loan - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListMarginAccountBookOpts Optional parameters for the method 'ListMarginAccountBook' +type ListMarginAccountBookOpts struct { + Currency optional.String + CurrencyPair optional.String + From optional.Int64 + To optional.Int64 + Page optional.Int32 + Limit optional.Int32 } /* -MarginApiService Get one single loan record +ListMarginAccountBook List margin account balance change history +Only transferring from or to margin account are provided for now. Time range allows 30 days at most * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param loanRecordId Loan record ID - * @param loanId Loan ID -@return LoanRecord + * @param optional nil or *ListMarginAccountBookOpts - Optional Parameters: + * @param "Currency" (optional.String) - List records related to specified currency only. If specified, `currency_pair` is also required. + * @param "CurrencyPair" (optional.String) - List records related to specified currency pair. Used in combination with `currency`. Ignored if `currency` is not provided + * @param "From" (optional.Int64) - Time range beginning, default to 7 days before current time + * @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 returned in one list +@return []MarginAccountBook */ -func (a *MarginApiService) GetLoanRecord(ctx context.Context, loanRecordId string, loanId string) (LoanRecord, *http.Response, error) { +func (a *MarginApiService) ListMarginAccountBook(ctx context.Context, localVarOptionals *ListMarginAccountBookOpts) ([]MarginAccountBook, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue LoanRecord + localVarReturnValue []MarginAccountBook ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/margin/loan_records/{loan_record_id}" - localVarPath = strings.Replace(localVarPath, "{"+"loan_record_id"+"}", fmt.Sprintf("%v", loanRecordId), -1) - + localVarPath := a.client.cfg.BasePath + "/margin/account_book" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("loan_id", parameterToString(loanId, "")) + if localVarOptionals != nil && localVarOptionals.Currency.IsSet() { + localVarQueryParams.Add("currency", parameterToString(localVarOptionals.Currency.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.CurrencyPair.IsSet() { + localVarQueryParams.Add("currency_pair", parameterToString(localVarOptionals.CurrencyPair.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(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v LoanRecord - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListFundingAccountsOpts Optional parameters for the method 'ListFundingAccounts' +type ListFundingAccountsOpts struct { + Currency optional.String } /* -MarginApiService Funding account list +ListFundingAccounts Funding account list * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param optional nil or *ListFundingAccountsOpts - Optional Parameters: * @param "Currency" (optional.String) - Retrieved specified currency related data @return []FundingAccount */ - -type ListFundingAccountsOpts struct { - Currency optional.String -} - func (a *MarginApiService) ListFundingAccounts(ctx context.Context, localVarOptionals *ListFundingAccountsOpts) ([]FundingAccount, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string @@ -410,7 +422,6 @@ func (a *MarginApiService) ListFundingAccounts(ctx context.Context, localVarOpti // create path and map variables localVarPath := a.client.cfg.BasePath + "/margin/funding_accounts" - localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} @@ -419,752 +430,725 @@ func (a *MarginApiService) ListFundingAccounts(ctx context.Context, localVarOpti localVarQueryParams.Add("currency", parameterToString(localVarOptionals.Currency.Value(), "")) } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + 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, 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []FundingAccount - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListLoansOpts Optional parameters for the method 'ListLoans' +type ListLoansOpts struct { + Currency optional.String + CurrencyPair optional.String + SortBy optional.String + ReverseSort optional.Bool + Page optional.Int32 + Limit optional.Int32 } /* -MarginApiService Order book of lending loans +ListLoans List all loans * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param currency Retrieved specified currency related data -@return []FundingBookItem + * @param status Loan status + * @param side Lend or borrow + * @param optional nil or *ListLoansOpts - Optional Parameters: + * @param "Currency" (optional.String) - Retrieved specified currency related data + * @param "CurrencyPair" (optional.String) - Currency pair + * @param "SortBy" (optional.String) - Specify which field is used to sort. `create_time` or `rate` is supported. Default to `create_time` + * @param "ReverseSort" (optional.Bool) - Whether to sort in descending order. Default to `true` + * @param "Page" (optional.Int32) - Page number + * @param "Limit" (optional.Int32) - Maximum number of records returned in one list +@return []Loan */ -func (a *MarginApiService) ListFundingBook(ctx context.Context, currency string) ([]FundingBookItem, *http.Response, error) { +func (a *MarginApiService) ListLoans(ctx context.Context, status string, side string, localVarOptionals *ListLoansOpts) ([]Loan, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []FundingBookItem + localVarReturnValue []Loan ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/margin/funding_book" - + localVarPath := a.client.cfg.BasePath + "/margin/loans" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("currency", parameterToString(currency, "")) + localVarQueryParams.Add("status", parameterToString(status, "")) + localVarQueryParams.Add("side", parameterToString(side, "")) + if localVarOptionals != nil && localVarOptionals.Currency.IsSet() { + localVarQueryParams.Add("currency", parameterToString(localVarOptionals.Currency.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.CurrencyPair.IsSet() { + localVarQueryParams.Add("currency_pair", parameterToString(localVarOptionals.CurrencyPair.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.SortBy.IsSet() { + localVarQueryParams.Add("sort_by", parameterToString(localVarOptionals.SortBy.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.ReverseSort.IsSet() { + localVarQueryParams.Add("reverse_sort", parameterToString(localVarOptionals.ReverseSort.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(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []FundingBookItem - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -MarginApiService List repayment records of specified loan +CreateLoan Lend or borrow * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param loanId Loan ID - * @param optional nil or *ListLoanRecordsOpts - Optional Parameters: - * @param "Status" (optional.String) - Loan record status - * @param "Page" (optional.Int32) - Page number - * @param "Limit" (optional.Int32) - Maximum number of records returned in one list -@return []LoanRecord + * @param loan +@return Loan */ - -type ListLoanRecordsOpts struct { - Status optional.String - Page optional.Int32 - Limit optional.Int32 -} - -func (a *MarginApiService) ListLoanRecords(ctx context.Context, loanId string, localVarOptionals *ListLoanRecordsOpts) ([]LoanRecord, *http.Response, error) { +func (a *MarginApiService) CreateLoan(ctx context.Context, loan Loan) (Loan, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []LoanRecord + localVarReturnValue Loan ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/margin/loan_records" - + localVarPath := a.client.cfg.BasePath + "/margin/loans" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("loan_id", parameterToString(loanId, "")) - if localVarOptionals != nil && localVarOptionals.Status.IsSet() { - localVarQueryParams.Add("status", parameterToString(localVarOptionals.Status.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(), "")) - } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + // body params + localVarPostBody = &loan + 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, 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []LoanRecord - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -MarginApiService List loan repayment records +MergeLoans Merge multiple lending loans * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param loanId Loan ID -@return []Repayment + * @param currency Retrieved specified currency related data + * @param ids Lending loan ID list separated by `,`. Maximum of 20 IDs are allowed in one request +@return Loan */ -func (a *MarginApiService) ListLoanRepayments(ctx context.Context, loanId string) ([]Repayment, *http.Response, error) { +func (a *MarginApiService) MergeLoans(ctx context.Context, currency string, ids string) (Loan, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []Repayment + localVarReturnValue Loan ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/margin/loans/{loan_id}/repayment" - localVarPath = strings.Replace(localVarPath, "{"+"loan_id"+"}", fmt.Sprintf("%v", loanId), -1) - + localVarPath := a.client.cfg.BasePath + "/margin/merged_loans" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + localVarQueryParams.Add("currency", parameterToString(currency, "")) + localVarQueryParams.Add("ids", parameterToString(ids, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []Repayment - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -MarginApiService List all loans +GetLoan Retrieve one single loan detail * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param status Loan status + * @param loanId Loan ID * @param side Lend or borrow - * @param optional nil or *ListLoansOpts - Optional Parameters: - * @param "Currency" (optional.String) - Retrieved specified currency related data - * @param "CurrencyPair" (optional.String) - Currency pair - * @param "SortBy" (optional.String) - Specify which field is used to sort. `create_time` or `rate` is supported. Default to `create_time` - * @param "ReverseSort" (optional.Bool) - Whether to sort in descending order. Default to `true` - * @param "Page" (optional.Int32) - Page number - * @param "Limit" (optional.Int32) - Maximum number of records returned in one list -@return []Loan +@return Loan */ - -type ListLoansOpts struct { - Currency optional.String - CurrencyPair optional.String - SortBy optional.String - ReverseSort optional.Bool - Page optional.Int32 - Limit optional.Int32 -} - -func (a *MarginApiService) ListLoans(ctx context.Context, status string, side string, localVarOptionals *ListLoansOpts) ([]Loan, *http.Response, error) { +func (a *MarginApiService) GetLoan(ctx context.Context, loanId string, side string) (Loan, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []Loan + localVarReturnValue Loan ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/margin/loans" + localVarPath := a.client.cfg.BasePath + "/margin/loans/{loan_id}" + localVarPath = strings.Replace(localVarPath, "{"+"loan_id"+"}", url.QueryEscape(parameterToString(loanId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("status", parameterToString(status, "")) localVarQueryParams.Add("side", parameterToString(side, "")) - if localVarOptionals != nil && localVarOptionals.Currency.IsSet() { - localVarQueryParams.Add("currency", parameterToString(localVarOptionals.Currency.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.CurrencyPair.IsSet() { - localVarQueryParams.Add("currency_pair", parameterToString(localVarOptionals.CurrencyPair.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.SortBy.IsSet() { - localVarQueryParams.Add("sort_by", parameterToString(localVarOptionals.SortBy.Value(), "")) - } - if localVarOptionals != nil && localVarOptionals.ReverseSort.IsSet() { - localVarQueryParams.Add("reverse_sort", parameterToString(localVarOptionals.ReverseSort.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(), "")) - } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []Loan - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -MarginApiService Margin account list +CancelLoan Cancel lending loan +Only lending loans can be cancelled * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param optional nil or *ListMarginAccountsOpts - Optional Parameters: - * @param "CurrencyPair" (optional.String) - Currency pair -@return []MarginAccount + * @param loanId Loan ID + * @param currency Retrieved specified currency related data +@return Loan */ - -type ListMarginAccountsOpts struct { - CurrencyPair optional.String -} - -func (a *MarginApiService) ListMarginAccounts(ctx context.Context, localVarOptionals *ListMarginAccountsOpts) ([]MarginAccount, *http.Response, error) { +func (a *MarginApiService) CancelLoan(ctx context.Context, loanId string, currency string) (Loan, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodDelete localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []MarginAccount + localVarReturnValue Loan ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/margin/accounts" + localVarPath := a.client.cfg.BasePath + "/margin/loans/{loan_id}" + localVarPath = strings.Replace(localVarPath, "{"+"loan_id"+"}", url.QueryEscape(parameterToString(loanId, "")), -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(), "")) - } + localVarQueryParams.Add("currency", parameterToString(currency, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []MarginAccount - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -MarginApiService List all supported currency pairs supported in margin trading +UpdateLoan Modify a loan +Only `auto_renew` modification is supported currently * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). -@return []MarginCurrencyPair + * @param loanId Loan ID + * @param loanPatch +@return Loan */ -func (a *MarginApiService) ListMarginCurrencyPairs(ctx context.Context) ([]MarginCurrencyPair, *http.Response, error) { +func (a *MarginApiService) UpdateLoan(ctx context.Context, loanId string, loanPatch LoanPatch) (Loan, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodPatch localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []MarginCurrencyPair + localVarReturnValue Loan ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/margin/currency_pairs" + localVarPath := a.client.cfg.BasePath + "/margin/loans/{loan_id}" + localVarPath = strings.Replace(localVarPath, "{"+"loan_id"+"}", url.QueryEscape(parameterToString(loanId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + // body params + localVarPostBody = &loanPatch + 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, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []MarginCurrencyPair - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -MarginApiService Merge multiple lending loans +ListLoanRepayments List loan repayment records * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param currency Retrieved specified currency related data - * @param ids Lending loan ID list separated by `,`. Maximum of 20 IDs are allowed in one request -@return Loan + * @param loanId Loan ID +@return []Repayment */ -func (a *MarginApiService) MergeLoans(ctx context.Context, currency string, ids string) (Loan, *http.Response, error) { +func (a *MarginApiService) ListLoanRepayments(ctx context.Context, loanId string) ([]Repayment, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Loan + localVarReturnValue []Repayment ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/margin/merged_loans" + localVarPath := a.client.cfg.BasePath + "/margin/loans/{loan_id}/repayment" + localVarPath = strings.Replace(localVarPath, "{"+"loan_id"+"}", url.QueryEscape(parameterToString(loanId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("currency", parameterToString(currency, "")) - localVarQueryParams.Add("ids", parameterToString(ids, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + 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, 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 201 { - var v Loan - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -MarginApiService Repay a loan +RepayLoan Repay a loan * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param loanId Loan ID * @param repayRequest @@ -1172,7 +1156,7 @@ MarginApiService Repay a loan */ func (a *MarginApiService) RepayLoan(ctx context.Context, loanId string, repayRequest RepayRequest) (Loan, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string @@ -1182,172 +1166,274 @@ func (a *MarginApiService) RepayLoan(ctx context.Context, loanId string, repayRe // create path and map variables localVarPath := a.client.cfg.BasePath + "/margin/loans/{loan_id}/repayment" - localVarPath = strings.Replace(localVarPath, "{"+"loan_id"+"}", fmt.Sprintf("%v", loanId), -1) + localVarPath = strings.Replace(localVarPath, "{"+"loan_id"+"}", url.QueryEscape(parameterToString(loanId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header - localVarHttpContentTypes := []string{"application/json"} + localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } // body params localVarPostBody = &repayRequest - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v Loan - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + 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 +} + +// ListLoanRecordsOpts Optional parameters for the method 'ListLoanRecords' +type ListLoanRecordsOpts struct { + Status optional.String + Page optional.Int32 + Limit optional.Int32 +} + +/* +ListLoanRecords List repayment records of specified loan + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param loanId Loan ID + * @param optional nil or *ListLoanRecordsOpts - Optional Parameters: + * @param "Status" (optional.String) - Loan record status + * @param "Page" (optional.Int32) - Page number + * @param "Limit" (optional.Int32) - Maximum number of records returned in one list +@return []LoanRecord +*/ +func (a *MarginApiService) ListLoanRecords(ctx context.Context, loanId string, localVarOptionals *ListLoanRecordsOpts) ([]LoanRecord, *http.Response, error) { + var ( + localVarHTTPMethod = http.MethodGet + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue []LoanRecord + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/margin/loan_records" + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + localVarQueryParams.Add("loan_id", parameterToString(loanId, "")) + if localVarOptionals != nil && localVarOptionals.Status.IsSet() { + localVarQueryParams.Add("status", parameterToString(localVarOptionals.Status.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(), "")) + } + // 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, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -MarginApiService Modify a loan -Only `auto_renew` modification is supported currently +GetLoanRecord Get one single loan record * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param loanRecordId Loan record ID * @param loanId Loan ID - * @param loanPatch -@return Loan +@return LoanRecord */ -func (a *MarginApiService) UpdateLoan(ctx context.Context, loanId string, loanPatch LoanPatch) (Loan, *http.Response, error) { +func (a *MarginApiService) GetLoanRecord(ctx context.Context, loanRecordId string, loanId string) (LoanRecord, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Patch") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Loan + localVarReturnValue LoanRecord ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/margin/loans/{loan_id}" - localVarPath = strings.Replace(localVarPath, "{"+"loan_id"+"}", fmt.Sprintf("%v", loanId), -1) + localVarPath := a.client.cfg.BasePath + "/margin/loan_records/{loan_record_id}" + localVarPath = strings.Replace(localVarPath, "{"+"loan_record_id"+"}", url.QueryEscape(parameterToString(loanRecordId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + localVarQueryParams.Add("loan_id", parameterToString(loanId, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{"application/json"} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - // body params - localVarPostBody = &loanPatch - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v Loan - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -MarginApiService Modify a loan record +UpdateLoanRecord Modify a loan record Only `auto_renew` modification is supported currently * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param loanRecordId Loan record ID @@ -1356,7 +1442,7 @@ Only `auto_renew` modification is supported currently */ func (a *MarginApiService) UpdateLoanRecord(ctx context.Context, loanRecordId string, loanPatch LoanPatch) (LoanRecord, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Patch") + localVarHTTPMethod = http.MethodPatch localVarPostBody interface{} localVarFormFileName string localVarFileName string @@ -1366,74 +1452,73 @@ func (a *MarginApiService) UpdateLoanRecord(ctx context.Context, loanRecordId st // create path and map variables localVarPath := a.client.cfg.BasePath + "/margin/loan_records/{loan_record_id}" - localVarPath = strings.Replace(localVarPath, "{"+"loan_record_id"+"}", fmt.Sprintf("%v", loanRecordId), -1) + localVarPath = strings.Replace(localVarPath, "{"+"loan_record_id"+"}", url.QueryEscape(parameterToString(loanRecordId, "")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header - localVarHttpContentTypes := []string{"application/json"} + localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } // body params localVarPostBody = &loanPatch - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v LoanRecord - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } diff --git a/api_spot.go b/api_spot.go index d75ffa3..445aa27 100644 --- a/api_spot.go +++ b/api_spot.go @@ -11,12 +11,11 @@ package gateapi import ( "context" + "github.com/antihax/optional" "io/ioutil" "net/http" "net/url" "strings" - "fmt" - "github.com/antihax/optional" ) // Linger please @@ -24,1079 +23,1138 @@ var ( _ context.Context ) +// SpotApiService SpotApi service type SpotApiService service /* -SpotApiService Cancel a batch of orders with an ID list -Multiple currency pairs can be specified, but maximum 20 orders are allowed per request +ListCurrencyPairs List all currency pairs supported * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param cancelOrder -@return []CancelOrderResult +@return []CurrencyPair */ -func (a *SpotApiService) CancelBatchOrders(ctx context.Context, cancelOrder []CancelOrder) ([]CancelOrderResult, *http.Response, error) { +func (a *SpotApiService) ListCurrencyPairs(ctx context.Context) ([]CurrencyPair, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []CancelOrderResult + localVarReturnValue []CurrencyPair ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/spot/cancel_batch_orders" - + 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{"application/json"} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - // body params - localVarPostBody = &cancelOrder - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []CancelOrderResult - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -SpotApiService Cancel a single order +GetCurrencyPair Get detail of one single order * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param orderId ID returned on order successfully being created * @param currencyPair Currency pair -@return Order +@return CurrencyPair */ -func (a *SpotApiService) CancelOrder(ctx context.Context, orderId string, currencyPair string) (Order, *http.Response, error) { +func (a *SpotApiService) GetCurrencyPair(ctx context.Context, currencyPair string) (CurrencyPair, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Order + localVarReturnValue CurrencyPair ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/spot/orders/{order_id}" - localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", fmt.Sprintf("%v", orderId), -1) + 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{} - localVarQueryParams.Add("currency_pair", parameterToString(currencyPair, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v Order - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListTickersOpts Optional parameters for the method 'ListTickers' +type ListTickersOpts struct { + CurrencyPair optional.String } /* -SpotApiService Cancel all `open` orders in specified currency pair +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 currencyPair Currency pair - * @param optional nil or *CancelOrdersOpts - Optional Parameters: - * @param "Side" (optional.String) - All bids or asks. Both included in not specified - * @param "Account" (optional.String) - Specify account type. Default to all account types being included -@return []Order + * @param optional nil or *ListTickersOpts - Optional Parameters: + * @param "CurrencyPair" (optional.String) - Currency pair +@return []Ticker */ - -type CancelOrdersOpts struct { - Side optional.String - Account optional.String -} - -func (a *SpotApiService) CancelOrders(ctx context.Context, currencyPair string, localVarOptionals *CancelOrdersOpts) ([]Order, *http.Response, error) { +func (a *SpotApiService) ListTickers(ctx context.Context, localVarOptionals *ListTickersOpts) ([]Ticker, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Delete") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []Order + localVarReturnValue []Ticker ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/spot/orders" - + localVarPath := a.client.cfg.BasePath + "/spot/tickers" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("currency_pair", parameterToString(currencyPair, "")) - 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.CurrencyPair.IsSet() { + localVarQueryParams.Add("currency_pair", parameterToString(localVarOptionals.CurrencyPair.Value(), "")) } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []Order - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListOrderBookOpts Optional parameters for the method 'ListOrderBook' +type ListOrderBookOpts struct { + Interval optional.String + Limit optional.Int32 } /* -SpotApiService Create a batch of orders -Batch orders requirements: 1. custom order field `text` is required 2. At most 4 currency pairs, maximum 5 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 +ListOrderBook Retrieve order book +Order book will be sorted by price from high to low on bids; reversed on asks * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param order -@return []BatchOrder + * @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 +@return OrderBook */ -func (a *SpotApiService) CreateBatchOrders(ctx context.Context, order []Order) ([]BatchOrder, *http.Response, error) { +func (a *SpotApiService) ListOrderBook(ctx context.Context, currencyPair string, localVarOptionals *ListOrderBookOpts) (OrderBook, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []BatchOrder + localVarReturnValue OrderBook ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/spot/batch_orders" - + 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(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{"application/json"} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - // body params - localVarPostBody = &order - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []BatchOrder - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListTradesOpts Optional parameters for the method 'ListTrades' +type ListTradesOpts struct { + Limit optional.Int32 + LastId optional.String } /* -SpotApiService Create an order +ListTrades Retrieve market trades * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param order -@return Order + * @param currencyPair Currency pair + * @param optional nil or *ListTradesOpts - Optional Parameters: + * @param "Limit" (optional.Int32) - Maximum number of records returned in one list + * @param "LastId" (optional.String) - Specify list staring point using the `id` of last record in previous list-query results +@return []Trade */ -func (a *SpotApiService) CreateOrder(ctx context.Context, order Order) (Order, *http.Response, error) { +func (a *SpotApiService) ListTrades(ctx context.Context, currencyPair string, localVarOptionals *ListTradesOpts) ([]Trade, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Order + localVarReturnValue []Trade ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/spot/orders" - + 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(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{"application/json"} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - // body params - localVarPostBody = &order - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 201 { - var v Order - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + 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 } /* -SpotApiService Get detail of one single order +ListCandlesticks Market candlesticks +Maximum of 1000 points are returned in one 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 -@return CurrencyPair + * @param optional nil or *ListCandlesticksOpts - Optional Parameters: + * @param "Limit" (optional.Int32) - Maximum recent data points returned. `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) - End time of candlesticks, formatted in Unix timestamp in seconds. Default to current time + * @param "Interval" (optional.String) - Interval time between data points +@return [][]string */ -func (a *SpotApiService) GetCurrencyPair(ctx context.Context, currencyPair string) (CurrencyPair, *http.Response, error) { +func (a *SpotApiService) ListCandlesticks(ctx context.Context, currencyPair string, localVarOptionals *ListCandlesticksOpts) ([][]string, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue CurrencyPair + localVarReturnValue [][]string ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/spot/currency_pairs/{currency_pair}" - localVarPath = strings.Replace(localVarPath, "{"+"currency_pair"+"}", fmt.Sprintf("%v", currencyPair), -1) - + 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{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v CurrencyPair - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// GetFeeOpts Optional parameters for the method 'GetFee' +type GetFeeOpts struct { + CurrencyPair optional.String } /* -SpotApiService Get a single order +GetFee Query user trading fee rates * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param orderId ID returned on order successfully being created - * @param currencyPair Currency pair -@return Order + * @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 TradeFee */ -func (a *SpotApiService) GetOrder(ctx context.Context, orderId string, currencyPair string) (Order, *http.Response, error) { +func (a *SpotApiService) GetFee(ctx context.Context, localVarOptionals *GetFeeOpts) (TradeFee, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue Order + localVarReturnValue TradeFee ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/spot/orders/{order_id}" - localVarPath = strings.Replace(localVarPath, "{"+"order_id"+"}", fmt.Sprintf("%v", orderId), -1) - + localVarPath := a.client.cfg.BasePath + "/spot/fee" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("currency_pair", parameterToString(currencyPair, "")) + if localVarOptionals != nil && localVarOptionals.CurrencyPair.IsSet() { + localVarQueryParams.Add("currency_pair", parameterToString(localVarOptionals.CurrencyPair.Value(), "")) + } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v Order - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListSpotAccountsOpts Optional parameters for the method 'ListSpotAccounts' +type ListSpotAccountsOpts struct { + Currency optional.String } /* -SpotApiService Market candlesticks -Maximum of 1000 points are returned in one query. Be sure not to exceed the limit when specifying `from`, `to` and `interval` +ListSpotAccounts List spot accounts * @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 returned. `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) - End time of candlesticks, formatted in Unix timestamp in seconds. Default to current time - * @param "Interval" (optional.String) - Interval time between data points -@return [][]string + * @param optional nil or *ListSpotAccountsOpts - Optional Parameters: + * @param "Currency" (optional.String) - Retrieved specified currency related data +@return []SpotAccount */ - -type ListCandlesticksOpts struct { - Limit optional.Int32 - From optional.Int64 - To optional.Int64 - Interval optional.String -} - -func (a *SpotApiService) ListCandlesticks(ctx context.Context, currencyPair string, localVarOptionals *ListCandlesticksOpts) ([][]string, *http.Response, error) { +func (a *SpotApiService) ListSpotAccounts(ctx context.Context, localVarOptionals *ListSpotAccountsOpts) ([]SpotAccount, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue [][]string + localVarReturnValue []SpotAccount ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/spot/candlesticks" - + localVarPath := a.client.cfg.BasePath + "/spot/accounts" 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(), "")) + if localVarOptionals != nil && localVarOptionals.Currency.IsSet() { + localVarQueryParams.Add("currency", parameterToString(localVarOptionals.Currency.Value(), "")) } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v [][]string - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -SpotApiService List all currency pairs supported +CreateBatchOrders Create a batch of orders +Batch orders requirements: 1. custom order field `text` is required 2. At most 4 currency pairs, maximum 5 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(). -@return []CurrencyPair + * @param order +@return []BatchOrder */ -func (a *SpotApiService) ListCurrencyPairs(ctx context.Context) ([]CurrencyPair, *http.Response, error) { +func (a *SpotApiService) CreateBatchOrders(ctx context.Context, order []Order) ([]BatchOrder, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []CurrencyPair + localVarReturnValue []BatchOrder ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/spot/currency_pairs" - + 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{} + localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + // body params + localVarPostBody = &order + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []CurrencyPair - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListAllOpenOrdersOpts Optional parameters for the method 'ListAllOpenOrders' +type ListAllOpenOrdersOpts struct { + Page optional.Int32 + Limit optional.Int32 } /* -SpotApiService List personal trading history +ListAllOpenOrders List all open orders +List open orders in all currency pairs. Note that pagination parameters affect record number in each currency pair's open order list. No pagination is applied to the number of currency pairs returned. All currency pairs with open orders will be returned * @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 *ListMyTradesOpts - Optional Parameters: - * @param "Limit" (optional.Int32) - Maximum number of records returned in one list + * @param optional nil or *ListAllOpenOrdersOpts - Optional Parameters: * @param "Page" (optional.Int32) - Page number - * @param "OrderId" (optional.String) - List all trades of specified order -@return []Trade + * @param "Limit" (optional.Int32) - Maximum number of records returned in one page in each currency pair +@return []OpenOrders */ - -type ListMyTradesOpts struct { - Limit optional.Int32 - Page optional.Int32 - OrderId optional.String -} - -func (a *SpotApiService) ListMyTrades(ctx context.Context, currencyPair string, localVarOptionals *ListMyTradesOpts) ([]Trade, *http.Response, error) { +func (a *SpotApiService) ListAllOpenOrders(ctx context.Context, localVarOptionals *ListAllOpenOrdersOpts) ([]OpenOrders, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []Trade + localVarReturnValue []OpenOrders ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/spot/my_trades" - + localVarPath := a.client.cfg.BasePath + "/spot/open_orders" 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.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.Limit.IsSet() { + localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []Trade - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListOrdersOpts Optional parameters for the method 'ListOrders' +type ListOrdersOpts struct { + Page optional.Int32 + Limit optional.Int32 } /* -SpotApiService Retrieve order book -Order book will be sorted by price from high to low on bids; reversed on asks +ListOrders List orders * @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 -@return OrderBook + * @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 returned. If `status` is `open`, maximum of `limit` is 100 +@return []Order */ - -type ListOrderBookOpts struct { - Interval optional.String - Limit optional.Int32 -} - -func (a *SpotApiService) ListOrderBook(ctx context.Context, currencyPair string, localVarOptionals *ListOrderBookOpts) (OrderBook, *http.Response, error) { +func (a *SpotApiService) ListOrders(ctx context.Context, currencyPair string, status string, localVarOptionals *ListOrdersOpts) ([]Order, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue OrderBook + localVarReturnValue []Order ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/spot/order_book" - + localVarPath := a.client.cfg.BasePath + "/spot/orders" 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(), "")) + 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(), "")) } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + 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, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v OrderBook - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -SpotApiService List orders +CreateOrder Create an order * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param currencyPair Currency pair - * @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 returned in one list -@return []Order + * @param order +@return Order */ +func (a *SpotApiService) CreateOrder(ctx context.Context, order Order) (Order, *http.Response, error) { + var ( + localVarHTTPMethod = http.MethodPost + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue Order + ) -type ListOrdersOpts struct { - Page optional.Int32 - Limit optional.Int32 + // 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 + } + // 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, + } + 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 } -func (a *SpotApiService) ListOrders(ctx context.Context, currencyPair string, status string, localVarOptionals *ListOrdersOpts) ([]Order, *http.Response, error) { +// CancelOrdersOpts Optional parameters for the method 'CancelOrders' +type CancelOrdersOpts struct { + Side optional.String + Account optional.String +} + +/* +CancelOrders Cancel all `open` orders in specified currency pair + * @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 *CancelOrdersOpts - Optional Parameters: + * @param "Side" (optional.String) - All bids or asks. Both included in not specified + * @param "Account" (optional.String) - Specify account type. Default to all account types being included +@return []Order +*/ +func (a *SpotApiService) CancelOrders(ctx context.Context, currencyPair string, localVarOptionals *CancelOrdersOpts) ([]Order, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodDelete localVarPostBody interface{} localVarFormFileName string localVarFileName string @@ -1106,294 +1164,366 @@ func (a *SpotApiService) ListOrders(ctx context.Context, currencyPair string, st // 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.Side.IsSet() { + localVarQueryParams.Add("side", parameterToString(localVarOptionals.Side.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{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + 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, 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []Order - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -SpotApiService List spot accounts +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 optional nil or *ListSpotAccountsOpts - Optional Parameters: - * @param "Currency" (optional.String) - Retrieved specified currency related data -@return []SpotAccount + * @param cancelOrder +@return []CancelOrderResult */ +func (a *SpotApiService) CancelBatchOrders(ctx context.Context, cancelOrder []CancelOrder) ([]CancelOrderResult, *http.Response, error) { + var ( + localVarHTTPMethod = http.MethodPost + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue []CancelOrderResult + ) -type ListSpotAccountsOpts struct { - Currency optional.String + // 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 + } + // body params + localVarPostBody = &cancelOrder + 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, + } + 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 } -func (a *SpotApiService) ListSpotAccounts(ctx context.Context, localVarOptionals *ListSpotAccountsOpts) ([]SpotAccount, *http.Response, error) { +/* +GetOrder Get a single order + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @param orderId ID returned on order successfully being created + * @param currencyPair Currency pair +@return Order +*/ +func (a *SpotApiService) GetOrder(ctx context.Context, orderId string, currencyPair string) (Order, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []SpotAccount + localVarReturnValue Order ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/spot/accounts" + 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.Currency.IsSet() { - localVarQueryParams.Add("currency", parameterToString(localVarOptionals.Currency.Value(), "")) - } + localVarQueryParams.Add("currency_pair", parameterToString(currencyPair, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + if ctx == nil { + ctx = context.Background() } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []SpotAccount - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -SpotApiService Retrieve ticker information -Return only related data if `currency_pair` is specified; otherwise return all of them +CancelOrder Cancel a single order * @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 -@return []Ticker + * @param orderId ID returned on order successfully being created + * @param currencyPair Currency pair +@return Order */ - -type ListTickersOpts struct { - CurrencyPair optional.String -} - -func (a *SpotApiService) ListTickers(ctx context.Context, localVarOptionals *ListTickersOpts) ([]Ticker, *http.Response, error) { +func (a *SpotApiService) CancelOrder(ctx context.Context, orderId string, currencyPair string) (Order, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodDelete localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []Ticker + localVarReturnValue Order ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/spot/tickers" + 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(), "")) - } + localVarQueryParams.Add("currency_pair", parameterToString(currencyPair, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + 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, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []Ticker - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListMyTradesOpts Optional parameters for the method 'ListMyTrades' +type ListMyTradesOpts struct { + Limit optional.Int32 + Page optional.Int32 + OrderId optional.String } /* -SpotApiService Retrieve market trades +ListMyTrades List personal trading history * @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 optional nil or *ListMyTradesOpts - Optional Parameters: * @param "Limit" (optional.Int32) - Maximum number of records returned in one list - * @param "LastId" (optional.String) - Specify list staring point using the `id` of last record in previous list-query results + * @param "Page" (optional.Int32) - Page number + * @param "OrderId" (optional.String) - List all trades of specified order @return []Trade */ - -type ListTradesOpts struct { - Limit optional.Int32 - LastId optional.String -} - -func (a *SpotApiService) ListTrades(ctx context.Context, currencyPair string, localVarOptionals *ListTradesOpts) ([]Trade, *http.Response, error) { +func (a *SpotApiService) ListMyTrades(ctx context.Context, currencyPair string, localVarOptionals *ListMyTradesOpts) ([]Trade, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string @@ -1402,8 +1532,7 @@ func (a *SpotApiService) ListTrades(ctx context.Context, currencyPair string, lo ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/spot/trades" - + localVarPath := a.client.cfg.BasePath + "/spot/my_trades" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} @@ -1412,69 +1541,71 @@ func (a *SpotApiService) ListTrades(ctx context.Context, currencyPair string, lo 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.Page.IsSet() { + localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page.Value(), "")) + } + if localVarOptionals != nil && localVarOptionals.OrderId.IsSet() { + localVarQueryParams.Add("order_id", parameterToString(localVarOptionals.OrderId.Value(), "")) } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, false) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []Trade - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } diff --git a/api_wallet.go b/api_wallet.go index 2cc09c8..0ffddd5 100644 --- a/api_wallet.go +++ b/api_wallet.go @@ -11,11 +11,10 @@ package gateapi import ( "context" + "github.com/antihax/optional" "io/ioutil" "net/http" "net/url" - "strings" - "github.com/antihax/optional" ) // Linger please @@ -23,17 +22,18 @@ var ( _ context.Context ) +// WalletApiService WalletApi service type WalletApiService service /* -WalletApiService Generate currency deposit address +GetDepositAddress Generate currency deposit address * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param currency Currency name @return DepositAddress */ func (a *WalletApiService) GetDepositAddress(ctx context.Context, currency string) (DepositAddress, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string @@ -43,81 +43,88 @@ func (a *WalletApiService) GetDepositAddress(ctx context.Context, currency strin // create path and map variables localVarPath := a.client.cfg.BasePath + "/wallet/deposit_address" - localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} localVarQueryParams.Add("currency", parameterToString(currency, "")) // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + 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, 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v DepositAddress - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListWithdrawalsOpts Optional parameters for the method 'ListWithdrawals' +type ListWithdrawalsOpts struct { + Currency optional.String + From optional.Int64 + To optional.Int64 + Limit optional.Int32 + Offset optional.Int32 } /* -WalletApiService Retrieve deposit records +ListWithdrawals Retrieve withdrawal records Record time range cannot exceed 30 days * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param optional nil or *ListDepositsOpts - Optional Parameters: + * @param optional nil or *ListWithdrawalsOpts - Optional Parameters: * @param "Currency" (optional.String) - Filter by currency. Return all currency records if not specified * @param "From" (optional.Int64) - Time range beginning, default to 7 days before current time * @param "To" (optional.Int64) - Time range ending, default to current time @@ -125,18 +132,9 @@ Record time range cannot exceed 30 days * @param "Offset" (optional.Int32) - List offset, starting from 0 @return []LedgerRecord */ - -type ListDepositsOpts struct { - Currency optional.String - From optional.Int64 - To optional.Int64 - Limit optional.Int32 - Offset optional.Int32 -} - -func (a *WalletApiService) ListDeposits(ctx context.Context, localVarOptionals *ListDepositsOpts) ([]LedgerRecord, *http.Response, error) { +func (a *WalletApiService) ListWithdrawals(ctx context.Context, localVarOptionals *ListWithdrawalsOpts) ([]LedgerRecord, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string @@ -145,8 +143,7 @@ func (a *WalletApiService) ListDeposits(ctx context.Context, localVarOptionals * ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/wallet/deposits" - + localVarPath := a.client.cfg.BasePath + "/wallet/withdrawals" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} @@ -167,109 +164,107 @@ func (a *WalletApiService) ListDeposits(ctx context.Context, localVarOptionals * localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), "")) } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + 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, 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - if localVarHttpResponse.StatusCode == 200 { - var v []LedgerRecord - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil +} + +// ListDepositsOpts Optional parameters for the method 'ListDeposits' +type ListDepositsOpts struct { + Currency optional.String + From optional.Int64 + To optional.Int64 + Limit optional.Int32 + Offset optional.Int32 } /* -WalletApiService Transfer records between main and sub accounts -Record time range cannot exceed 30 days > Note: only records after 2020-04-10 can be retrieved +ListDeposits Retrieve deposit records +Record time range cannot exceed 30 days * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param optional nil or *ListSubAccountTransfersOpts - Optional Parameters: - * @param "SubUid" (optional.String) - Sub account user ID. Return records related to all sub accounts if not specified + * @param optional nil or *ListDepositsOpts - Optional Parameters: + * @param "Currency" (optional.String) - Filter by currency. Return all currency records if not specified * @param "From" (optional.Int64) - Time range beginning, default to 7 days before current time * @param "To" (optional.Int64) - Time range ending, default to current time * @param "Limit" (optional.Int32) - Maximum number of records returned in one list * @param "Offset" (optional.Int32) - List offset, starting from 0 -@return []SubAccountTransfer +@return []LedgerRecord */ - -type ListSubAccountTransfersOpts struct { - SubUid optional.String - From optional.Int64 - To optional.Int64 - Limit optional.Int32 - Offset optional.Int32 -} - -func (a *WalletApiService) ListSubAccountTransfers(ctx context.Context, localVarOptionals *ListSubAccountTransfersOpts) ([]SubAccountTransfer, *http.Response, error) { +func (a *WalletApiService) ListDeposits(ctx context.Context, localVarOptionals *ListDepositsOpts) ([]LedgerRecord, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []SubAccountTransfer + localVarReturnValue []LedgerRecord ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/wallet/sub_account_transfers" - + localVarPath := a.client.cfg.BasePath + "/wallet/deposits" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if localVarOptionals != nil && localVarOptionals.SubUid.IsSet() { - localVarQueryParams.Add("sub_uid", parameterToString(localVarOptionals.SubUid.Value(), "")) + 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(), "")) @@ -284,263 +279,268 @@ func (a *WalletApiService) ListSubAccountTransfers(ctx context.Context, localVar localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), "")) } // to determine the Content-Type header - localVarHttpContentTypes := []string{} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []SubAccountTransfer - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } /* -WalletApiService Retrieve withdrawal records -Record time range cannot exceed 30 days +Transfer Transfer between trading accounts +Transfer between different accounts. Currently support transfers between the following: 1. spot - margin 2. spot - futures(perpetual) 3. spot - delivery * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param optional nil or *ListWithdrawalsOpts - Optional Parameters: - * @param "Currency" (optional.String) - Filter by currency. Return all currency records if not specified - * @param "From" (optional.Int64) - Time range beginning, default to 7 days before current time - * @param "To" (optional.Int64) - Time range ending, default to current time - * @param "Limit" (optional.Int32) - Maximum number of records returned in one list - * @param "Offset" (optional.Int32) - List offset, starting from 0 -@return []LedgerRecord + * @param transfer */ - -type ListWithdrawalsOpts struct { - Currency optional.String - From optional.Int64 - To optional.Int64 - Limit optional.Int32 - Offset optional.Int32 -} - -func (a *WalletApiService) ListWithdrawals(ctx context.Context, localVarOptionals *ListWithdrawalsOpts) ([]LedgerRecord, *http.Response, error) { +func (a *WalletApiService) Transfer(ctx context.Context, transfer Transfer) (*http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Get") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue []LedgerRecord ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/wallet/withdrawals" - + localVarPath := a.client.cfg.BasePath + "/wallet/transfers" 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.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{} + localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + // body params + localVarPostBody = &transfer + 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 + return nil, err } - localVarHttpResponse, err := a.client.callAPI(r) - if err != nil || localVarHttpResponse == nil { - return localVarReturnValue, localVarHttpResponse, err + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 200 { - var v []LedgerRecord - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return 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 localVarHTTPResponse, nil +} - return localVarReturnValue, localVarHttpResponse, nil +// ListSubAccountTransfersOpts Optional parameters for the method 'ListSubAccountTransfers' +type ListSubAccountTransfersOpts struct { + SubUid optional.String + From optional.Int64 + To optional.Int64 + Limit optional.Int32 + Offset optional.Int32 } /* -WalletApiService Transfer between accounts -Transfer between different accounts. Currently support transfers between the following: 1. spot - margin 2. spot - futures(perpetual) 2. spot - delivery +ListSubAccountTransfers Transfer records between main and sub accounts +Record time range cannot exceed 30 days > Note: only records after 2020-04-10 can be retrieved * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @param transfer + * @param optional nil or *ListSubAccountTransfersOpts - Optional Parameters: + * @param "SubUid" (optional.String) - Sub account user ID. Return records related to all sub accounts if not specified + * @param "From" (optional.Int64) - Time range beginning, default to 7 days before current time + * @param "To" (optional.Int64) - Time range ending, default to current time + * @param "Limit" (optional.Int32) - Maximum number of records returned in one list + * @param "Offset" (optional.Int32) - List offset, starting from 0 +@return []SubAccountTransfer */ -func (a *WalletApiService) Transfer(ctx context.Context, transfer Transfer) (*http.Response, error) { +func (a *WalletApiService) ListSubAccountTransfers(ctx context.Context, localVarOptionals *ListSubAccountTransfersOpts) ([]SubAccountTransfer, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte + localVarReturnValue []SubAccountTransfer ) // create path and map variables - localVarPath := a.client.cfg.BasePath + "/wallet/transfers" - + localVarPath := a.client.cfg.BasePath + "/wallet/sub_account_transfers" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} + if localVarOptionals != nil && localVarOptionals.SubUid.IsSet() { + localVarQueryParams.Add("sub_uid", parameterToString(localVarOptionals.SubUid.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.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{"application/json"} + localVarHTTPContentTypes := []string{} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - // body params - localVarPostBody = &transfer - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 nil, err + return localVarReturnValue, nil, err } - localVarHttpResponse, err := a.client.callAPI(r) - if err != nil || localVarHttpResponse == nil { - return localVarHttpResponse, 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() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - return localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - return localVarHttpResponse, nil + 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 } /* -WalletApiService Transfer between main and sub accounts +TransferWithSubAccount Transfer between main and sub accounts * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param subAccountTransfer */ func (a *WalletApiService) TransferWithSubAccount(ctx context.Context, subAccountTransfer SubAccountTransfer) (*http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string @@ -549,54 +549,62 @@ func (a *WalletApiService) TransferWithSubAccount(ctx context.Context, subAccoun // create path and map variables localVarPath := a.client.cfg.BasePath + "/wallet/sub_account_transfers" - localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header - localVarHttpContentTypes := []string{"application/json"} + localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{} + localVarHTTPHeaderAccepts := []string{} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } // body params localVarPostBody = &subAccountTransfer - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 nil, err } - localVarHttpResponse, err := a.client.callAPI(r) - if err != nil || localVarHttpResponse == nil { - return localVarHttpResponse, err + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarHttpResponse, err + return localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, + error: localVarHTTPResponse.Status, } - return localVarHttpResponse, newErr + return localVarHTTPResponse, newErr } - return localVarHttpResponse, nil + return localVarHTTPResponse, nil } diff --git a/api_withdrawal.go b/api_withdrawal.go index 163cf31..bf65617 100644 --- a/api_withdrawal.go +++ b/api_withdrawal.go @@ -14,7 +14,6 @@ import ( "io/ioutil" "net/http" "net/url" - "strings" ) // Linger please @@ -22,17 +21,18 @@ var ( _ context.Context ) +// WithdrawalApiService WithdrawalApi service type WithdrawalApiService service /* -WithdrawalApiService Withdraw +Withdraw Withdraw * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param ledgerRecord @return LedgerRecord */ func (a *WithdrawalApiService) Withdraw(ctx context.Context, ledgerRecord LedgerRecord) (LedgerRecord, *http.Response, error) { var ( - localVarHttpMethod = strings.ToUpper("Post") + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string @@ -42,73 +42,71 @@ func (a *WithdrawalApiService) Withdraw(ctx context.Context, ledgerRecord Ledger // create path and map variables localVarPath := a.client.cfg.BasePath + "/withdrawals" - localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header - localVarHttpContentTypes := []string{"application/json"} + localVarHTTPContentTypes := []string{"application/json"} // set Content-Type header - localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) - if localVarHttpContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHttpContentType + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType } // to determine the Accept header - localVarHttpHeaderAccepts := []string{"application/json"} + localVarHTTPHeaderAccepts := []string{"application/json"} // set Accept header - localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) - if localVarHttpHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } // body params localVarPostBody = &ledgerRecord - r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, - localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes, true) + 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 + localVarHTTPResponse, err := a.client.callAPI(r) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err } - localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) - localVarHttpResponse.Body.Close() + localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) + localVarHTTPResponse.Body.Close() if err != nil { - return localVarReturnValue, localVarHttpResponse, err + return localVarReturnValue, localVarHTTPResponse, err } - if localVarHttpResponse.StatusCode >= 300 { + if localVarHTTPResponse.StatusCode >= 300 { newErr := GenericOpenAPIError{ body: localVarBody, - error: localVarHttpResponse.Status, - } - if localVarHttpResponse.StatusCode == 202 { - var v LedgerRecord - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr + error: localVarHTTPResponse.Status, } - return localVarReturnValue, localVarHttpResponse, newErr + return localVarReturnValue, localVarHTTPResponse, newErr } - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + 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, newErr } - return localVarReturnValue, localVarHttpResponse, nil + return localVarReturnValue, localVarHTTPResponse, nil } diff --git a/client.go b/client.go index c82fce7..d2e08e1 100644 --- a/client.go +++ b/client.go @@ -20,8 +20,11 @@ import ( "errors" "fmt" "io" + "io/ioutil" + "log" "mime/multipart" "net/http" + "net/http/httputil" "net/url" "os" "path/filepath" @@ -34,8 +37,8 @@ import ( ) var ( - jsonCheck = regexp.MustCompile("(?i:[application|text]/json)") - xmlCheck = regexp.MustCompile("(?i:[application|text]/xml)") + jsonCheck = regexp.MustCompile(`(?i:(?:application|text)/(?:vnd\.[^;]+\+)?json)`) + xmlCheck = regexp.MustCompile(`(?i:(?:application|text)/xml)`) ) // APIClient manages communication with the Gate API v4 API @@ -113,7 +116,7 @@ func selectHeaderAccept(accepts []string) string { return strings.Join(accepts, ",") } -// contains is a case insenstive match, finding needle in a haystack +// contains is a case insensitive match, finding needle in a haystack func contains(haystack []string, needle string) bool { for _, a := range haystack { if strings.ToLower(a) == strings.ToLower(needle) { @@ -161,21 +164,58 @@ func parameterToString(obj interface{}, collectionFormat string) string { return fmt.Sprintf("%v", obj) } +// helper for converting interface{} parameters to json strings +func parameterToJson(obj interface{}) (string, error) { + jsonBuf, err := json.Marshal(obj) + if err != nil { + return "", err + } + return string(jsonBuf), err +} + // callAPI do the request. func (c *APIClient) callAPI(request *http.Request) (*http.Response, error) { - return c.cfg.HTTPClient.Do(request) + if c.cfg.Debug { + dump, err := httputil.DumpRequestOut(request, true) + if err != nil { + return nil, err + } + log.Printf("\n%s\n", string(dump)) + } + + resp, err := c.cfg.HTTPClient.Do(request) + if err != nil { + return resp, err + } + + if c.cfg.Debug { + dump, err := httputil.DumpResponse(resp, true) + if err != nil { + return resp, err + } + log.Printf("\n%s\n", string(dump)) + } + + return resp, err } -// Change base path to allow switching to mocks +// ChangeBasePath changes base path to allow switching to mocks func (c *APIClient) ChangeBasePath(path string) { c.cfg.BasePath = path } +// Deprecated: in favour of ContextGateAPIV4. Reserved for compatibility func (c *APIClient) SetKeySecret(key string, secret string) { c.cfg.Key = key c.cfg.Secret = secret } +// Allow modification of underlying config for alternate implementations and testing +// Caution: modifying the configuration while live can cause data races and potentially unwanted behavior +func (c *APIClient) GetConfig() *Configuration { + return c.cfg +} + // prepareRequest build the request func (c *APIClient) prepareRequest( ctx context.Context, @@ -186,8 +226,7 @@ func (c *APIClient) prepareRequest( formParams url.Values, formFileName string, fileName string, - fileBytes []byte, - authRequired bool) (localVarRequest *http.Request, err error) { + fileBytes []byte) (localVarRequest *http.Request, err error) { var body *bytes.Buffer @@ -227,7 +266,7 @@ func (c *APIClient) prepareRequest( } if len(fileBytes) > 0 && fileName != "" { w.Boundary() - //_, fileNm := filepath.Split(fileName) + // _, fileNm := filepath.Split(fileName) part, err := w.CreateFormFile(formFileName, filepath.Base(fileName)) if err != nil { return nil, err @@ -236,10 +275,11 @@ func (c *APIClient) prepareRequest( if err != nil { return nil, err } - // Set the Boundary in the Content-Type - headerParams["Content-Type"] = w.FormDataContentType() } + // Set the Boundary in the Content-Type + headerParams["Content-Type"] = w.FormDataContentType() + // Set Content-Length headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len()) w.Close() @@ -261,6 +301,16 @@ func (c *APIClient) prepareRequest( return nil, err } + // Override request host, if applicable + if c.cfg.Host != "" { + requestUrl.Host = c.cfg.Host + } + + // Override request scheme, if applicable + if c.cfg.Scheme != "" { + requestUrl.Scheme = c.cfg.Scheme + } + // Adding Query Param query := requestUrl.Query() for k, v := range queryParams { @@ -272,28 +322,6 @@ func (c *APIClient) prepareRequest( // Encode the parameters. requestUrl.RawQuery = query.Encode() - // generate signature if needed - if authRequired { - h := sha512.New() - if body != nil { - h.Write(body.Bytes()) - } - hashedPayload := hex.EncodeToString(h.Sum(nil)) - - t := strconv.FormatInt(time.Now().Unix(), 10) - rawQuery, err := url.QueryUnescape(requestUrl.RawQuery) - if err != nil { - return nil, err - } - msg := fmt.Sprintf("%s\n%s\n%s\n%s\n%s", method, requestUrl.Path, rawQuery, hashedPayload, t) - mac := hmac.New(sha512.New, []byte(c.cfg.Secret)) - mac.Write([]byte(msg)) - sign := hex.EncodeToString(mac.Sum(nil)) - headerParams["KEY"] = c.cfg.Key - headerParams["SIGN"] = sign - headerParams["Timestamp"] = t - } - // Generate a new request if body != nil { localVarRequest, err = http.NewRequest(method, requestUrl.String(), body) @@ -313,17 +341,52 @@ func (c *APIClient) prepareRequest( localVarRequest.Header = headers } - // Override request host, if applicable - if c.cfg.Host != "" { - localVarRequest.Host = c.cfg.Host - } - // Add the user agent to the request. localVarRequest.Header.Add("User-Agent", c.cfg.UserAgent) if ctx != nil { // add context to the request localVarRequest = localVarRequest.WithContext(ctx) + + public := false + if val, ok := ctx.Value(ContextPublic).(bool); ok { + public = val + } + if !public { + // Walk through any authentication. + + // Basic HTTP Authentication + if auth, ok := ctx.Value(ContextBasicAuth).(BasicAuth); ok { + localVarRequest.SetBasicAuth(auth.UserName, auth.Password) + } + + // AccessToken Authentication + if auth, ok := ctx.Value(ContextAccessToken).(string); ok { + localVarRequest.Header.Add("Authorization", "Bearer "+auth) + } + + // GateAPIV4 Authentication + if auth, ok := ctx.Value(ContextGateAPIV4).(GateAPIV4); ok { + h := sha512.New() + if body != nil { + h.Write(body.Bytes()) + } + hashedPayload := hex.EncodeToString(h.Sum(nil)) + + t := strconv.FormatInt(time.Now().Unix(), 10) + rawQuery, err := url.QueryUnescape(requestUrl.RawQuery) + if err != nil { + return nil, err + } + msg := fmt.Sprintf("%s\n%s\n%s\n%s\n%s", method, requestUrl.Path, rawQuery, hashedPayload, t) + mac := hmac.New(sha512.New, []byte(auth.Secret)) + mac.Write([]byte(msg)) + sign := hex.EncodeToString(mac.Sum(nil)) + localVarRequest.Header.Add("KEY", auth.Key) + localVarRequest.Header.Add("SIGN", sign) + localVarRequest.Header.Add("Timestamp", t) + } + } } for header, value := range c.cfg.DefaultHeader { @@ -334,17 +397,38 @@ func (c *APIClient) prepareRequest( } func (c *APIClient) decode(v interface{}, b []byte, contentType string) (err error) { - if strings.Contains(contentType, "application/xml") { - if err = xml.Unmarshal(b, v); err != nil { - return err - } - return nil - } else if strings.Contains(contentType, "application/json") { - if err = json.Unmarshal(b, v); err != nil { - return err - } - return nil + if len(b) == 0 { + return nil + } + if s, ok := v.(*string); ok { + *s = string(b) + return nil + } + if f, ok := v.(**os.File); ok { + *f, err = ioutil.TempFile("", "HttpClientFile") + if err != nil { + return } + _, err = (*f).Write(b) + _, err = (*f).Seek(0, io.SeekStart) + return + } + if contentType == "" { + // give precedence to json type + contentType = "application/json" + } + if xmlCheck.MatchString(contentType) { + if err = xml.Unmarshal(b, v); err != nil { + return err + } + return nil + } + if jsonCheck.MatchString(contentType) { + if err = json.Unmarshal(b, v); err != nil { + return err + } + return nil + } return errors.New("undefined response type") } @@ -387,7 +471,7 @@ func setBody(body interface{}, contentType string) (bodyBuf *bytes.Buffer, err e } else if jsonCheck.MatchString(contentType) { err = json.NewEncoder(bodyBuf).Encode(body) } else if xmlCheck.MatchString(contentType) { - xml.NewEncoder(bodyBuf).Encode(body) + err = xml.NewEncoder(bodyBuf).Encode(body) } if err != nil { diff --git a/configuration.go b/configuration.go index 5520fd7..33c9216 100644 --- a/configuration.go +++ b/configuration.go @@ -10,7 +10,9 @@ package gateapi import ( + "fmt" "net/http" + "strings" ) // contextKeys are used to identify the type of value in the context. @@ -24,17 +26,17 @@ func (c contextKey) String() string { } var ( - // ContextOAuth2 takes an oauth2.TokenSource as authentication for the request. - // ContextOAuth2 = contextKey("token") + // ContextPublic takes a boolean value indicating if the request is public + ContextPublic = contextKey("public") // ContextBasicAuth takes BasicAuth as authentication for the request. ContextBasicAuth = contextKey("basic") // ContextAccessToken takes a string oauth2 access token as authentication for the request. - // ContextAccessToken = contextKey("accesstoken") + ContextAccessToken = contextKey("accesstoken") - // ContextAPIKey takes an APIKey as authentication for the request - ContextAPIKey = contextKey("apikey") + // ContextGateAPIV4 takes a Gate APIv4 key pair as authentication for the request + ContextGateAPIV4 = contextKey("apiv4") ) // BasicAuth provides basic http authentication to a request passed via context using ContextBasicAuth @@ -49,28 +51,90 @@ type APIKey struct { Prefix string } +// GateAPIV4 provides Gate APIv4 based authentication to a request passed via context using ContextGateAPIV4 +type GateAPIV4 struct { + Key string + Secret string +} + +// ServerVariable stores the information about a server variable +type ServerVariable struct { + Description string + DefaultValue string + EnumValues []string +} + +// ServerConfiguration stores the information about a server +type ServerConfiguration struct { + Url string + Description string + Variables map[string]ServerVariable +} + +// Configuration stores the configuration of the API client type Configuration struct { BasePath string `json:"basePath,omitempty"` Host string `json:"host,omitempty"` Scheme string `json:"scheme,omitempty"` DefaultHeader map[string]string `json:"defaultHeader,omitempty"` UserAgent string `json:"userAgent,omitempty"` - Key string - Secret string + Key string `json:"key,omitempty"` + Secret string `json:"secret,omitempty"` + Debug bool `json:"debug,omitempty"` + Servers []ServerConfiguration HTTPClient *http.Client } +// NewConfiguration returns a new Configuration object func NewConfiguration() *Configuration { cfg := &Configuration{ BasePath: "https://api.gateio.ws/api/v4", DefaultHeader: make(map[string]string), - UserAgent: "OpenAPI-Generator/4.14.0/go", - Key: "", - Secret: "", + UserAgent: "OpenAPI-Generator/4.15.2/go", + Debug: false, + Servers: []ServerConfiguration{ + { + Url: "https://api.gateio.ws/api/v4", + Description: "Real Trading", + }, + { + Url: "https://fx-api-testnet.gateio.ws/api/v4", + Description: "TestNet Trading", + }, + }, } return cfg } +// AddDefaultHeader adds a new HTTP header to the default header in the request func (c *Configuration) AddDefaultHeader(key string, value string) { c.DefaultHeader[key] = value } + +// ServerUrl returns URL based on server settings +func (c *Configuration) ServerUrl(index int, variables map[string]string) (string, error) { + if index < 0 || len(c.Servers) <= index { + return "", fmt.Errorf("Index %v out of range %v", index, len(c.Servers)-1) + } + server := c.Servers[index] + url := server.Url + + // go through variables and replace placeholders + for name, variable := range server.Variables { + if value, ok := variables[name]; ok { + found := bool(len(variable.EnumValues) == 0) + for _, enumValue := range variable.EnumValues { + if value == enumValue { + found = true + } + } + if !found { + return "", fmt.Errorf("The variable %s in the server URL has invalid value %v. Must be %v", name, value, variable.EnumValues) + } + url = strings.Replace(url, "{"+name+"}", value, -1) + } else { + url = strings.Replace(url, "{"+name+"}", variable.DefaultValue, -1) + } + } + return url, nil +} diff --git a/docs/BatchOrder.md b/docs/BatchOrder.md index 3e29e9f..01eb00a 100644 --- a/docs/BatchOrder.md +++ b/docs/BatchOrder.md @@ -1,16 +1,17 @@ # BatchOrder ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**Text** | **string** | User defined information. If not empty, must follow the rules below: 1. prefixed with `t-` 2. no longer than 16 bytes without `t-` prefix 3. can only include 0-9, A-Z, a-z, underscore(_), hyphen(-) or dot(.) | [optional] +**Text** | **string** | User defined information. If not empty, must follow the rules below: 1. prefixed with `t-` 2. no longer than 28 bytes without `t-` prefix 3. can only include 0-9, A-Z, a-z, underscore(_), hyphen(-) or dot(.) | [optional] **Succeeded** | **bool** | Whether order succeeds | [optional] **Label** | **string** | Error label, empty string if order succeeds | [optional] **Message** | **string** | Detailed error message, empty string if order succeeds | [optional] -**Id** | **string** | Order ID | [optional] -**CreateTime** | **string** | Order creation time | [optional] -**UpdateTime** | **string** | Order last modification time | [optional] -**Status** | **string** | Order status - `open`: to be filled - `closed`: filled - `cancelled`: cancelled | [optional] +**Id** | **string** | Order ID | [optional] [readonly] +**CreateTime** | **string** | Order creation time | [optional] [readonly] +**UpdateTime** | **string** | Order last modification time | [optional] [readonly] +**Status** | **string** | Order status - `open`: to be filled - `closed`: filled - `cancelled`: cancelled | [optional] [readonly] **CurrencyPair** | **string** | Currency pair | [optional] **Type** | **string** | Order type. limit - limit order | [optional] [default to TYPE_LIMIT] **Account** | **string** | Account type. spot - use spot account; margin - use margin account | [optional] [default to ACCOUNT_SPOT] @@ -19,16 +20,16 @@ Name | Type | Description | Notes **Price** | **string** | Order price | [optional] **TimeInForce** | **string** | Time in force - gtc: GoodTillCancelled - ioc: ImmediateOrCancelled, taker only - poc: PendingOrCancelled, makes a post-only order that always enjoys a maker fee | [optional] [default to TIME_IN_FORCE_GTC] **AutoBorrow** | **bool** | Used in margin trading(i.e. `account` is `margin`) to allow automatic loan of insufficient part if balance is not enough. | [optional] -**Left** | **string** | Amount left to fill | [optional] -**FillPrice** | **string** | Total filled in quote currency. Deprecated in favor of `filled_total` | [optional] -**FilledTotal** | **string** | Total filled in quote currency | [optional] -**Fee** | **string** | Fee deducted | [optional] -**FeeCurrency** | **string** | Fee currency unit | [optional] -**PointFee** | **string** | Point used to deduct fee | [optional] -**GtFee** | **string** | GT used to deduct fee | [optional] -**GtDiscount** | **bool** | Whether GT fee discount is used | [optional] -**RebatedFee** | **string** | Rebated fee | [optional] -**RebatedFeeCurrency** | **string** | Rebated fee currency unit | [optional] +**Left** | **string** | Amount left to fill | [optional] [readonly] +**FillPrice** | **string** | Total filled in quote currency. Deprecated in favor of `filled_total` | [optional] [readonly] +**FilledTotal** | **string** | Total filled in quote currency | [optional] [readonly] +**Fee** | **string** | Fee deducted | [optional] [readonly] +**FeeCurrency** | **string** | Fee currency unit | [optional] [readonly] +**PointFee** | **string** | Point used to deduct fee | [optional] [readonly] +**GtFee** | **string** | GT used to deduct fee | [optional] [readonly] +**GtDiscount** | **bool** | Whether GT fee discount is used | [optional] [readonly] +**RebatedFee** | **string** | Rebated fee | [optional] [readonly] +**RebatedFeeCurrency** | **string** | Rebated fee currency unit | [optional] [readonly] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/CancelOrder.md b/docs/CancelOrder.md index fa35958..26cf8f7 100644 --- a/docs/CancelOrder.md +++ b/docs/CancelOrder.md @@ -1,6 +1,7 @@ # CancelOrder ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **CurrencyPair** | **string** | Order currency pair | diff --git a/docs/CancelOrderResult.md b/docs/CancelOrderResult.md index b110b04..8671842 100644 --- a/docs/CancelOrderResult.md +++ b/docs/CancelOrderResult.md @@ -1,6 +1,7 @@ # CancelOrderResult ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **CurrencyPair** | **string** | Order currency pair | [optional] diff --git a/docs/Contract.md b/docs/Contract.md index 2f24439..0b950ef 100644 --- a/docs/Contract.md +++ b/docs/Contract.md @@ -1,6 +1,7 @@ # Contract ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Name** | **string** | Futures contract | [optional] diff --git a/docs/CurrencyPair.md b/docs/CurrencyPair.md index 51173e8..25a293b 100644 --- a/docs/CurrencyPair.md +++ b/docs/CurrencyPair.md @@ -1,6 +1,7 @@ # CurrencyPair ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Id** | **string** | Currency pair | [optional] diff --git a/docs/DeliveryApi.md b/docs/DeliveryApi.md index 7cbfd8c..39c3426 100644 --- a/docs/DeliveryApi.md +++ b/docs/DeliveryApi.md @@ -1,963 +1,1379 @@ -# \DeliveryApi +# DeliveryApi All URIs are relative to *https://api.gateio.ws/api/v4* Method | HTTP request | Description ------------- | ------------- | ------------- -[**CancelDeliveryOrder**](DeliveryApi.md#CancelDeliveryOrder) | **Delete** /delivery/{settle}/orders/{order_id} | Cancel a single order -[**CancelDeliveryOrders**](DeliveryApi.md#CancelDeliveryOrders) | **Delete** /delivery/{settle}/orders | Cancel all `open` orders matched -[**CancelPriceTriggeredDeliveryOrder**](DeliveryApi.md#CancelPriceTriggeredDeliveryOrder) | **Delete** /delivery/{settle}/price_orders/{order_id} | Cancel a single order -[**CancelPriceTriggeredDeliveryOrderList**](DeliveryApi.md#CancelPriceTriggeredDeliveryOrderList) | **Delete** /delivery/{settle}/price_orders | Cancel all open orders -[**CreateDeliveryOrder**](DeliveryApi.md#CreateDeliveryOrder) | **Post** /delivery/{settle}/orders | Create a futures order -[**CreatePriceTriggeredDeliveryOrder**](DeliveryApi.md#CreatePriceTriggeredDeliveryOrder) | **Post** /delivery/{settle}/price_orders | Create a price-triggered order +[**ListDeliveryContracts**](DeliveryApi.md#ListDeliveryContracts) | **Get** /delivery/{settle}/contracts | List all futures contracts [**GetDeliveryContract**](DeliveryApi.md#GetDeliveryContract) | **Get** /delivery/{settle}/contracts/{contract} | Get a single contract -[**GetDeliveryOrder**](DeliveryApi.md#GetDeliveryOrder) | **Get** /delivery/{settle}/orders/{order_id} | Get a single order -[**GetDeliveryPosition**](DeliveryApi.md#GetDeliveryPosition) | **Get** /delivery/{settle}/positions/{contract} | Get single position -[**GetMyDeliveryTrades**](DeliveryApi.md#GetMyDeliveryTrades) | **Get** /delivery/{settle}/my_trades | List personal trading history -[**GetPriceTriggeredDeliveryOrder**](DeliveryApi.md#GetPriceTriggeredDeliveryOrder) | **Get** /delivery/{settle}/price_orders/{order_id} | Get a single order -[**ListDeliveryAccountBook**](DeliveryApi.md#ListDeliveryAccountBook) | **Get** /delivery/{settle}/account_book | Query account book -[**ListDeliveryAccounts**](DeliveryApi.md#ListDeliveryAccounts) | **Get** /delivery/{settle}/accounts | Query futures account +[**ListDeliveryOrderBook**](DeliveryApi.md#ListDeliveryOrderBook) | **Get** /delivery/{settle}/order_book | Futures order book +[**ListDeliveryTrades**](DeliveryApi.md#ListDeliveryTrades) | **Get** /delivery/{settle}/trades | Futures trading history [**ListDeliveryCandlesticks**](DeliveryApi.md#ListDeliveryCandlesticks) | **Get** /delivery/{settle}/candlesticks | Get futures candlesticks -[**ListDeliveryContracts**](DeliveryApi.md#ListDeliveryContracts) | **Get** /delivery/{settle}/contracts | List all futures contracts +[**ListDeliveryTickers**](DeliveryApi.md#ListDeliveryTickers) | **Get** /delivery/{settle}/tickers | List futures tickers [**ListDeliveryInsuranceLedger**](DeliveryApi.md#ListDeliveryInsuranceLedger) | **Get** /delivery/{settle}/insurance | Futures insurance balance history -[**ListDeliveryLiquidates**](DeliveryApi.md#ListDeliveryLiquidates) | **Get** /delivery/{settle}/liquidates | List liquidation history -[**ListDeliveryOrderBook**](DeliveryApi.md#ListDeliveryOrderBook) | **Get** /delivery/{settle}/order_book | Futures order book +[**ListDeliveryAccounts**](DeliveryApi.md#ListDeliveryAccounts) | **Get** /delivery/{settle}/accounts | Query futures account +[**ListDeliveryAccountBook**](DeliveryApi.md#ListDeliveryAccountBook) | **Get** /delivery/{settle}/account_book | Query account book +[**ListDeliveryPositions**](DeliveryApi.md#ListDeliveryPositions) | **Get** /delivery/{settle}/positions | List all positions of a user +[**GetDeliveryPosition**](DeliveryApi.md#GetDeliveryPosition) | **Get** /delivery/{settle}/positions/{contract} | Get single position +[**UpdateDeliveryPositionMargin**](DeliveryApi.md#UpdateDeliveryPositionMargin) | **Post** /delivery/{settle}/positions/{contract}/margin | Update position margin +[**UpdateDeliveryPositionLeverage**](DeliveryApi.md#UpdateDeliveryPositionLeverage) | **Post** /delivery/{settle}/positions/{contract}/leverage | Update position leverage +[**UpdateDeliveryPositionRiskLimit**](DeliveryApi.md#UpdateDeliveryPositionRiskLimit) | **Post** /delivery/{settle}/positions/{contract}/risk_limit | Update position risk limit [**ListDeliveryOrders**](DeliveryApi.md#ListDeliveryOrders) | **Get** /delivery/{settle}/orders | List futures orders +[**CreateDeliveryOrder**](DeliveryApi.md#CreateDeliveryOrder) | **Post** /delivery/{settle}/orders | Create a futures order +[**CancelDeliveryOrders**](DeliveryApi.md#CancelDeliveryOrders) | **Delete** /delivery/{settle}/orders | Cancel all `open` orders matched +[**GetDeliveryOrder**](DeliveryApi.md#GetDeliveryOrder) | **Get** /delivery/{settle}/orders/{order_id} | Get a single order +[**CancelDeliveryOrder**](DeliveryApi.md#CancelDeliveryOrder) | **Delete** /delivery/{settle}/orders/{order_id} | Cancel a single order +[**GetMyDeliveryTrades**](DeliveryApi.md#GetMyDeliveryTrades) | **Get** /delivery/{settle}/my_trades | List personal trading history [**ListDeliveryPositionClose**](DeliveryApi.md#ListDeliveryPositionClose) | **Get** /delivery/{settle}/position_close | List position close history -[**ListDeliveryPositions**](DeliveryApi.md#ListDeliveryPositions) | **Get** /delivery/{settle}/positions | List all positions of a user +[**ListDeliveryLiquidates**](DeliveryApi.md#ListDeliveryLiquidates) | **Get** /delivery/{settle}/liquidates | List liquidation history [**ListDeliverySettlements**](DeliveryApi.md#ListDeliverySettlements) | **Get** /delivery/{settle}/settlements | List settlement history -[**ListDeliveryTickers**](DeliveryApi.md#ListDeliveryTickers) | **Get** /delivery/{settle}/tickers | List futures tickers -[**ListDeliveryTrades**](DeliveryApi.md#ListDeliveryTrades) | **Get** /delivery/{settle}/trades | Futures trading history [**ListPriceTriggeredDeliveryOrders**](DeliveryApi.md#ListPriceTriggeredDeliveryOrders) | **Get** /delivery/{settle}/price_orders | List all auto orders -[**UpdateDeliveryPositionLeverage**](DeliveryApi.md#UpdateDeliveryPositionLeverage) | **Post** /delivery/{settle}/positions/{contract}/leverage | Update position leverage -[**UpdateDeliveryPositionMargin**](DeliveryApi.md#UpdateDeliveryPositionMargin) | **Post** /delivery/{settle}/positions/{contract}/margin | Update position margin -[**UpdateDeliveryPositionRiskLimit**](DeliveryApi.md#UpdateDeliveryPositionRiskLimit) | **Post** /delivery/{settle}/positions/{contract}/risk_limit | Update position risk limit +[**CreatePriceTriggeredDeliveryOrder**](DeliveryApi.md#CreatePriceTriggeredDeliveryOrder) | **Post** /delivery/{settle}/price_orders | Create a price-triggered order +[**CancelPriceTriggeredDeliveryOrderList**](DeliveryApi.md#CancelPriceTriggeredDeliveryOrderList) | **Delete** /delivery/{settle}/price_orders | Cancel all open orders +[**GetPriceTriggeredDeliveryOrder**](DeliveryApi.md#GetPriceTriggeredDeliveryOrder) | **Get** /delivery/{settle}/price_orders/{order_id} | Get a single order +[**CancelPriceTriggeredDeliveryOrder**](DeliveryApi.md#CancelPriceTriggeredDeliveryOrder) | **Delete** /delivery/{settle}/price_orders/{order_id} | Cancel a single order -# **CancelDeliveryOrder** -> FuturesOrder CancelDeliveryOrder(ctx, settle, orderId) -Cancel a single order +## ListDeliveryContracts + +> []DeliveryContract ListDeliveryContracts(ctx, settle) + +List all futures contracts ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **orderId** | **string**| ID returned on order successfully being created | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -orderId := "12345"; // string - ID returned on order successfully being created - -result, _, err := api.CancelDeliveryOrder(nil, settle, orderId) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + settle := "usdt" // string - Settle currency + + result, _, err := client.DeliveryApi.ListDeliveryContracts(ctx, settle) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**FuturesOrder**](FuturesOrder.md) +[**[]DeliveryContract**](DeliveryContract.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **CancelDeliveryOrders** -> []FuturesOrder CancelDeliveryOrders(ctx, settle, contract, optional) -Cancel all `open` orders matched +## GetDeliveryContract -Zero-fill order cannot be retrieved 60 seconds after cancellation +> DeliveryContract GetDeliveryContract(ctx, settle, contract) + +Get a single contract ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **contract** | **string**| Futures contract | - **optional** | ***CancelDeliveryOrdersOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**contract** | **string**| Futures contract | + +### Example + +```golang +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + settle := "usdt" // string - Settle currency + contract := "BTC_USDT_20200814" // string - Futures contract + + result, _, err := client.DeliveryApi.GetDeliveryContract(ctx, settle, contract) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } +} +``` + + +### Return type + +[**DeliveryContract**](DeliveryContract.md) + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) + +## ListDeliveryOrderBook + +> FuturesOrderBook ListDeliveryOrderBook(ctx, settle, contract, optional) + +Futures order book + +Bids will be sorted by price from high to low, while asks sorted reversely + +### Required Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**contract** | **string**| Futures contract | + **optional** | ***ListDeliveryOrderBookOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a CancelDeliveryOrdersOpts struct + +Optional parameters are passed through a pointer to a ListDeliveryOrderBookOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **side** | **optional.String**| All bids or asks. Both included in not specified | + **interval** | **optional.String**| Order depth. 0 means no aggregation is applied. default to 0 | [default to 0] + **limit** | **optional.Int32**| Maximum number of order depth data in asks or bids | [default to 10] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -contract := "BTC_USDT_WEEKLY_20200703"; // string - Futures contract - -result, _, err := api.CancelDeliveryOrders(nil, settle, contract, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + settle := "usdt" // string - Settle currency + contract := "BTC_USDT_20200814" // string - Futures contract + + result, _, err := client.DeliveryApi.ListDeliveryOrderBook(ctx, settle, contract, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FuturesOrder**](FuturesOrder.md) +[**FuturesOrderBook**](FuturesOrderBook.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **CancelPriceTriggeredDeliveryOrder** -> FuturesPriceTriggeredOrder CancelPriceTriggeredDeliveryOrder(ctx, settle, orderId) -Cancel a single order +## ListDeliveryTrades + +> []FuturesTrade ListDeliveryTrades(ctx, settle, contract, optional) + +Futures trading history ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **orderId** | **string**| ID returned on order successfully being created | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**contract** | **string**| Futures contract | + **optional** | ***ListDeliveryTradesOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListDeliveryTradesOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + + **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] + **lastId** | **optional.String**| Specify list staring point using the id of last record in previous list-query results This parameter is deprecated. Use `from` and `to` instead to limit time range | + **from** | **optional.Float32**| Specify starting time in Unix seconds. If not specified, `to` and `limit` will be used to limit response items. If items between `from` and `to` are more than `limit`, only `limit` number will be returned. | + **to** | **optional.Float32**| Specify end time in Unix seconds, default to current time | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -orderId := "orderId_example"; // string - ID returned on order successfully being created - -result, _, err := api.CancelPriceTriggeredDeliveryOrder(nil, settle, orderId) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + settle := "usdt" // string - Settle currency + contract := "BTC_USDT_20200814" // string - Futures contract + + result, _, err := client.DeliveryApi.ListDeliveryTrades(ctx, settle, contract, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md) +[**[]FuturesTrade**](FuturesTrade.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **CancelPriceTriggeredDeliveryOrderList** -> []FuturesPriceTriggeredOrder CancelPriceTriggeredDeliveryOrderList(ctx, settle, contract) -Cancel all open orders +## ListDeliveryCandlesticks + +> []FuturesCandlestick ListDeliveryCandlesticks(ctx, settle, contract, optional) + +Get futures candlesticks + +Return specified contract candlesticks. If prefix `contract` with `mark_`, the contract's mark price candlesticks are returned; if prefix with `index_`, index price candlesticks will be returned. Maximum of 2000 points are returned in one query. Be sure not to exceed the limit when specifying `from`, `to` and `interval` ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **contract** | **string**| Futures contract | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**contract** | **string**| Futures contract | + **optional** | ***ListDeliveryCandlesticksOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListDeliveryCandlesticksOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + + **from** | **optional.Float32**| Start time of candlesticks, formatted in Unix timestamp in seconds. Default to`to - 100 * interval` if not specified | + **to** | **optional.Float32**| End time of candlesticks, formatted in Unix timestamp in seconds. Default to current time | + **limit** | **optional.Int32**| Maximum recent data points returned. `limit` is conflicted with `from` and `to`. If either `from` or `to` is specified, request will be rejected. | [default to 100] + **interval** | **optional.String**| Interval time between data points | [default to 5m] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -contract := "BTC_USD"; // string - Futures contract - -result, _, err := api.CancelPriceTriggeredDeliveryOrderList(nil, settle, contract) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + settle := "usdt" // string - Settle currency + contract := "BTC_USDT_20200814" // string - Futures contract + + result, _, err := client.DeliveryApi.ListDeliveryCandlesticks(ctx, settle, contract, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md) +[**[]FuturesCandlestick**](FuturesCandlestick.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **CreateDeliveryOrder** -> FuturesOrder CreateDeliveryOrder(ctx, settle, futuresOrder) -Create a futures order +## ListDeliveryTickers -Zero-fill order cannot be retrieved 60 seconds after cancellation +> []FuturesTicker ListDeliveryTickers(ctx, settle, optional) + +List futures tickers ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **futuresOrder** | [**FuturesOrder**](FuturesOrder.md)| | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | + **optional** | ***ListDeliveryTickersOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListDeliveryTickersOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + **contract** | **optional.String**| Futures contract | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -futuresOrder := new (gateapi.FuturesOrder); // FuturesOrder - - -result, _, err := api.CreateDeliveryOrder(nil, settle, futuresOrder) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + settle := "usdt" // string - Settle currency + + result, _, err := client.DeliveryApi.ListDeliveryTickers(ctx, settle, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**FuturesOrder**](FuturesOrder.md) +[**[]FuturesTicker**](FuturesTicker.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **CreatePriceTriggeredDeliveryOrder** -> TriggerOrderResponse CreatePriceTriggeredDeliveryOrder(ctx, settle, futuresPriceTriggeredOrder) -Create a price-triggered order +## ListDeliveryInsuranceLedger + +> []InsuranceRecord ListDeliveryInsuranceLedger(ctx, settle, optional) + +Futures insurance balance history ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **futuresPriceTriggeredOrder** | [**FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md)| | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | + **optional** | ***ListDeliveryInsuranceLedgerOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListDeliveryInsuranceLedgerOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -futuresPriceTriggeredOrder := new (gateapi.FuturesPriceTriggeredOrder); // FuturesPriceTriggeredOrder - - -result, _, err := api.CreatePriceTriggeredDeliveryOrder(nil, settle, futuresPriceTriggeredOrder) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + settle := "usdt" // string - Settle currency + + result, _, err := client.DeliveryApi.ListDeliveryInsuranceLedger(ctx, settle, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**TriggerOrderResponse**](TriggerOrderResponse.md) +[**[]InsuranceRecord**](InsuranceRecord.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **GetDeliveryContract** -> DeliveryContract GetDeliveryContract(ctx, settle, contract) -Get a single contract +## ListDeliveryAccounts + +> FuturesAccount ListDeliveryAccounts(ctx, settle) + +Query futures account ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **contract** | **string**| Futures contract | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -contract := "BTC_USDT_WEEKLY_20200703"; // string - Futures contract - -result, _, err := api.GetDeliveryContract(nil, settle, contract) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + + result, _, err := client.DeliveryApi.ListDeliveryAccounts(ctx, settle) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**DeliveryContract**](DeliveryContract.md) +[**FuturesAccount**](FuturesAccount.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **GetDeliveryOrder** -> FuturesOrder GetDeliveryOrder(ctx, settle, orderId) -Get a single order +## ListDeliveryAccountBook -Zero-fill order cannot be retrieved 60 seconds after cancellation +> []FuturesAccountBook ListDeliveryAccountBook(ctx, settle, optional) + +Query account book ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **orderId** | **string**| ID returned on order successfully being created | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | + **optional** | ***ListDeliveryAccountBookOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListDeliveryAccountBookOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] + **from** | **optional.Int64**| Start timestamp | + **to** | **optional.Int64**| End timestamp | + **type_** | **optional.String**| Changing Type: - dnw: Deposit & Withdraw - pnl: Profit & Loss by reducing position - fee: Trading fee - refr: Referrer rebate - fund: Funding - point_dnw: POINT Deposit & Withdraw - point_fee: POINT Trading fee - point_refr: POINT Referrer rebate | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -orderId := "12345"; // string - ID returned on order successfully being created - -result, _, err := api.GetDeliveryOrder(nil, settle, orderId) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + + result, _, err := client.DeliveryApi.ListDeliveryAccountBook(ctx, settle, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**FuturesOrder**](FuturesOrder.md) +[**[]FuturesAccountBook**](FuturesAccountBook.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **GetDeliveryPosition** -> Position GetDeliveryPosition(ctx, settle, contract) -Get single position +## ListDeliveryPositions + +> []Position ListDeliveryPositions(ctx, settle) + +List all positions of a user ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **contract** | **string**| Futures contract | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -contract := "BTC_USDT_WEEKLY_20200703"; // string - Futures contract - -result, _, err := api.GetDeliveryPosition(nil, settle, contract) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + + result, _, err := client.DeliveryApi.ListDeliveryPositions(ctx, settle) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Position**](Position.md) +[**[]Position**](Position.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **GetMyDeliveryTrades** -> []MyFuturesTrade GetMyDeliveryTrades(ctx, settle, optional) -List personal trading history +## GetDeliveryPosition -### Required Parameters +> Position GetDeliveryPosition(ctx, settle, contract) -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **optional** | ***GetMyDeliveryTradesOpts** | optional parameters | nil if no parameters +Get single position -### Optional Parameters -Optional parameters are passed through a pointer to a GetMyDeliveryTradesOpts struct +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - **contract** | **optional.String**| Futures contract | - **order** | **optional.Int32**| Futures order ID, return related data only if specified | - **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] - **offset** | **optional.Int32**| List offset, starting from 0 | [default to 0] - **lastId** | **optional.String**| Specify list staring point using the `id` of last record in previous list-query results | - **countTotal** | **optional.Int32**| Whether to return total number matched. Default to 0(no return) | [default to 0] +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**contract** | **string**| Futures contract | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency - -result, _, err := api.GetMyDeliveryTrades(nil, settle, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + contract := "BTC_USDT_20200814" // string - Futures contract + + result, _, err := client.DeliveryApi.GetDeliveryPosition(ctx, settle, contract) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]MyFuturesTrade**](MyFuturesTrade.md) +[**Position**](Position.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **GetPriceTriggeredDeliveryOrder** -> FuturesPriceTriggeredOrder GetPriceTriggeredDeliveryOrder(ctx, settle, orderId) -Get a single order +## UpdateDeliveryPositionMargin + +> Position UpdateDeliveryPositionMargin(ctx, settle, contract, change) + +Update position margin ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **orderId** | **string**| ID returned on order successfully being created | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**contract** | **string**| Futures contract | +**change** | **string**| Margin change. Use positive number to increase margin, negative number otherwise. | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -orderId := "orderId_example"; // string - ID returned on order successfully being created - -result, _, err := api.GetPriceTriggeredDeliveryOrder(nil, settle, orderId) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + contract := "BTC_USDT_20200814" // string - Futures contract + change := "0.01" // string - Margin change. Use positive number to increase margin, negative number otherwise. + + result, _, err := client.DeliveryApi.UpdateDeliveryPositionMargin(ctx, settle, contract, change) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md) +[**Position**](Position.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListDeliveryAccountBook** -> []FuturesAccountBook ListDeliveryAccountBook(ctx, settle, optional) -Query account book +## UpdateDeliveryPositionLeverage -### Required Parameters +> Position UpdateDeliveryPositionLeverage(ctx, settle, contract, leverage) -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **optional** | ***ListDeliveryAccountBookOpts** | optional parameters | nil if no parameters +Update position leverage -### Optional Parameters -Optional parameters are passed through a pointer to a ListDeliveryAccountBookOpts struct +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] - **from** | **optional.Int32**| Start timestamp | - **to** | **optional.Int32**| End timestamp | - **type_** | **optional.String**| Changing Type: - dnw: Deposit & Withdraw - pnl: Profit & Loss by reducing position - fee: Trading fee - refr: Referrer rebate - fund: Funding - point_dnw: POINT Deposit & Withdraw - point_fee: POINT Trading fee - point_refr: POINT Referrer rebate | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**contract** | **string**| Futures contract | +**leverage** | **string**| New position leverage | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency - -result, _, err := api.ListDeliveryAccountBook(nil, settle, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + contract := "BTC_USDT_20200814" // string - Futures contract + leverage := "10" // string - New position leverage + + result, _, err := client.DeliveryApi.UpdateDeliveryPositionLeverage(ctx, settle, contract, leverage) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FuturesAccountBook**](FuturesAccountBook.md) +[**Position**](Position.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListDeliveryAccounts** -> FuturesAccount ListDeliveryAccounts(ctx, settle) -Query futures account +## UpdateDeliveryPositionRiskLimit + +> Position UpdateDeliveryPositionRiskLimit(ctx, settle, contract, riskLimit) + +Update position risk limit ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**contract** | **string**| Futures contract | +**riskLimit** | **string**| New position risk limit | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency - -result, _, err := api.ListDeliveryAccounts(nil, settle) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + contract := "BTC_USDT_20200814" // string - Futures contract + riskLimit := "10" // string - New position risk limit + + result, _, err := client.DeliveryApi.UpdateDeliveryPositionRiskLimit(ctx, settle, contract, riskLimit) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**FuturesAccount**](FuturesAccount.md) +[**Position**](Position.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListDeliveryCandlesticks** -> []FuturesCandlestick ListDeliveryCandlesticks(ctx, settle, contract, optional) -Get futures candlesticks +## ListDeliveryOrders -Return specified contract candlesticks. If prefix `contract` with `mark_`, the contract's mark price candlesticks are returned; if prefix with `index_`, index price candlesticks will be returned. Maximum of 2000 points are returned in one query. Be sure not to exceed the limit when specifying `from`, `to` and `interval` +> []FuturesOrder ListDeliveryOrders(ctx, settle, status, optional) + +List futures orders + +Zero-fill order cannot be retrieved 60 seconds after cancellation ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **contract** | **string**| Futures contract | - **optional** | ***ListDeliveryCandlesticksOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**status** | **string**| List orders based on status | + **optional** | ***ListDeliveryOrdersOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a ListDeliveryCandlesticksOpts struct + +Optional parameters are passed through a pointer to a ListDeliveryOrdersOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **from** | **optional.Float32**| Start time of candlesticks, formatted in Unix timestamp in seconds. Default to`to - 100 * interval` if not specified | - **to** | **optional.Float32**| End time of candlesticks, formatted in Unix timestamp in seconds. Default to current time | - **limit** | **optional.Int32**| Maximum recent data points returned. `limit` is conflicted with `from` and `to`. If either `from` or `to` is specified, request will be rejected. | [default to 100] - **interval** | **optional.String**| Interval time between data points | [default to 5m] + **contract** | **optional.String**| Futures contract | + **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] + **offset** | **optional.Int32**| List offset, starting from 0 | [default to 0] + **lastId** | **optional.String**| Specify list staring point using the `id` of last record in previous list-query results | + **countTotal** | **optional.Int32**| Whether to return total number matched. Default to 0(no return) | [default to 0] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -contract := "BTC_USDT_WEEKLY_20200703"; // string - Futures contract - -result, _, err := api.ListDeliveryCandlesticks(nil, settle, contract, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + status := "open" // string - List orders based on status + + result, _, err := client.DeliveryApi.ListDeliveryOrders(ctx, settle, status, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FuturesCandlestick**](FuturesCandlestick.md) +[**[]FuturesOrder**](FuturesOrder.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListDeliveryContracts** -> []DeliveryContract ListDeliveryContracts(ctx, settle) -List all futures contracts +## CreateDeliveryOrder + +> FuturesOrder CreateDeliveryOrder(ctx, settle, futuresOrder) + +Create a futures order + +Zero-fill order cannot be retrieved 60 seconds after cancellation ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**futuresOrder** | [**FuturesOrder**](FuturesOrder.md)| | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency - -result, _, err := api.ListDeliveryContracts(nil, settle) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + futuresOrder := gateapi.FuturesOrder{} // FuturesOrder - + + result, _, err := client.DeliveryApi.CreateDeliveryOrder(ctx, settle, futuresOrder) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]DeliveryContract**](DeliveryContract.md) +[**FuturesOrder**](FuturesOrder.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: application/json +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListDeliveryInsuranceLedger** -> []InsuranceRecord ListDeliveryInsuranceLedger(ctx, settle, optional) -Futures insurance balance history +## CancelDeliveryOrders + +> []FuturesOrder CancelDeliveryOrders(ctx, settle, contract, optional) + +Cancel all `open` orders matched + +Zero-fill order cannot be retrieved 60 seconds after cancellation ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **optional** | ***ListDeliveryInsuranceLedgerOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**contract** | **string**| Futures contract | + **optional** | ***CancelDeliveryOrdersOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a ListDeliveryInsuranceLedgerOpts struct + +Optional parameters are passed through a pointer to a CancelDeliveryOrdersOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] + + **side** | **optional.String**| All bids or asks. Both included in not specified | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency - -result, _, err := api.ListDeliveryInsuranceLedger(nil, settle, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + contract := "BTC_USDT_20200814" // string - Futures contract + + result, _, err := client.DeliveryApi.CancelDeliveryOrders(ctx, settle, contract, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]InsuranceRecord**](InsuranceRecord.md) +[**[]FuturesOrder**](FuturesOrder.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListDeliveryLiquidates** -> []FuturesLiquidate ListDeliveryLiquidates(ctx, settle, optional) -List liquidation history +## GetDeliveryOrder -### Required Parameters +> FuturesOrder GetDeliveryOrder(ctx, settle, orderId) -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **optional** | ***ListDeliveryLiquidatesOpts** | optional parameters | nil if no parameters +Get a single order -### Optional Parameters -Optional parameters are passed through a pointer to a ListDeliveryLiquidatesOpts struct +Zero-fill order cannot be retrieved 60 seconds after cancellation + +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - **contract** | **optional.String**| Futures contract | - **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] - **at** | **optional.Int32**| Specify a liquidation timestamp | [default to 0] +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**orderId** | **string**| ID returned on order successfully being created | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency - -result, _, err := api.ListDeliveryLiquidates(nil, settle, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + orderId := "12345" // string - ID returned on order successfully being created + + result, _, err := client.DeliveryApi.GetDeliveryOrder(ctx, settle, orderId) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FuturesLiquidate**](FuturesLiquidate.md) +[**FuturesOrder**](FuturesOrder.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **ListDeliveryOrderBook** -> FuturesOrderBook ListDeliveryOrderBook(ctx, settle, contract, optional) -Futures order book +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -Bids will be sorted by price from high to low, while asks sorted reversely +## CancelDeliveryOrder -### Required Parameters +> FuturesOrder CancelDeliveryOrder(ctx, settle, orderId) -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **contract** | **string**| Futures contract | - **optional** | ***ListDeliveryOrderBookOpts** | optional parameters | nil if no parameters +Cancel a single order -### Optional Parameters -Optional parameters are passed through a pointer to a ListDeliveryOrderBookOpts struct +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - - **interval** | **optional.String**| Order depth. 0 means no aggregation is applied. default to 0 | [default to 0] - **limit** | **optional.Int32**| Maximum number of order depth data in asks or bids | [default to 10] +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**orderId** | **string**| ID returned on order successfully being created | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -contract := "BTC_USDT_WEEKLY_20200703"; // string - Futures contract - -result, _, err := api.ListDeliveryOrderBook(nil, settle, contract, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + orderId := "12345" // string - ID returned on order successfully being created + + result, _, err := client.DeliveryApi.CancelDeliveryOrder(ctx, settle, orderId) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**FuturesOrderBook**](FuturesOrderBook.md) +[**FuturesOrder**](FuturesOrder.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListDeliveryOrders** -> []FuturesOrder ListDeliveryOrders(ctx, settle, status, optional) -List futures orders +## GetMyDeliveryTrades -Zero-fill order cannot be retrieved 60 seconds after cancellation +> []MyFuturesTrade GetMyDeliveryTrades(ctx, settle, optional) + +List personal trading history ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **status** | **string**| List orders based on status | - **optional** | ***ListDeliveryOrdersOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | + **optional** | ***GetMyDeliveryTradesOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a ListDeliveryOrdersOpts struct + +Optional parameters are passed through a pointer to a GetMyDeliveryTradesOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **contract** | **optional.String**| Futures contract | + **order** | **optional.Int32**| Futures order ID, return related data only if specified | **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] **offset** | **optional.Int32**| List offset, starting from 0 | [default to 0] **lastId** | **optional.String**| Specify list staring point using the `id` of last record in previous list-query results | @@ -966,50 +1382,70 @@ Name | Type | Description | Notes ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -status := "open"; // string - List orders based on status - -result, _, err := api.ListDeliveryOrders(nil, settle, status, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + + result, _, err := client.DeliveryApi.GetMyDeliveryTrades(ctx, settle, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FuturesOrder**](FuturesOrder.md) +[**[]MyFuturesTrade**](MyFuturesTrade.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +## ListDeliveryPositionClose -# **ListDeliveryPositionClose** > []PositionClose ListDeliveryPositionClose(ctx, settle, optional) + List position close history ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | **optional** | ***ListDeliveryPositionCloseOpts** | optional parameters | nil if no parameters ### Optional Parameters + Optional parameters are passed through a pointer to a ListDeliveryPositionCloseOpts struct Name | Type | Description | Notes @@ -1021,444 +1457,545 @@ Name | Type | Description | Notes ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency - -result, _, err := api.ListDeliveryPositionClose(nil, settle, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + + result, _, err := client.DeliveryApi.ListDeliveryPositionClose(ctx, settle, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type [**[]PositionClose**](PositionClose.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **ListDeliveryPositions** -> []Position ListDeliveryPositions(ctx, settle) -List all positions of a user - -### Required Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - -### Example - -```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency - -result, _, err := api.ListDeliveryPositions(nil, settle) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) -} -``` - -### Return type - -[**[]Position**](Position.md) - -### Authorization - -Authentication with API key and secret is required +- **Content-Type**: Not defined +- **Accept**: application/json -### HTTP request headers +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) - - **Content-Type**: Not defined - - **Accept**: application/json +## ListDeliveryLiquidates -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +> []FuturesLiquidate ListDeliveryLiquidates(ctx, settle, optional) -# **ListDeliverySettlements** -> []DeliverySettlement ListDeliverySettlements(ctx, settle, optional) -List settlement history +List liquidation history ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **optional** | ***ListDeliverySettlementsOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | + **optional** | ***ListDeliveryLiquidatesOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a ListDeliverySettlementsOpts struct + +Optional parameters are passed through a pointer to a ListDeliveryLiquidatesOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **contract** | **optional.String**| Futures contract | **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] - **at** | **optional.Int32**| Specify a settlement timestamp | [default to 0] + **at** | **optional.Int32**| Specify a liquidation timestamp | [default to 0] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency - -result, _, err := api.ListDeliverySettlements(nil, settle, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + + result, _, err := client.DeliveryApi.ListDeliveryLiquidates(ctx, settle, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]DeliverySettlement**](DeliverySettlement.md) +[**[]FuturesLiquidate**](FuturesLiquidate.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListDeliveryTickers** -> []FuturesTicker ListDeliveryTickers(ctx, settle, optional) -List futures tickers +## ListDeliverySettlements + +> []DeliverySettlement ListDeliverySettlements(ctx, settle, optional) + +List settlement history ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **optional** | ***ListDeliveryTickersOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | + **optional** | ***ListDeliverySettlementsOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a ListDeliveryTickersOpts struct + +Optional parameters are passed through a pointer to a ListDeliverySettlementsOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **contract** | **optional.String**| Futures contract | + **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] + **at** | **optional.Int32**| Specify a settlement timestamp | [default to 0] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency - -result, _, err := api.ListDeliveryTickers(nil, settle, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + + result, _, err := client.DeliveryApi.ListDeliverySettlements(ctx, settle, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FuturesTicker**](FuturesTicker.md) +[**[]DeliverySettlement**](DeliverySettlement.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListDeliveryTrades** -> []FuturesTrade ListDeliveryTrades(ctx, settle, contract, optional) -Futures trading history +## ListPriceTriggeredDeliveryOrders + +> []FuturesPriceTriggeredOrder ListPriceTriggeredDeliveryOrders(ctx, settle, status, optional) + +List all auto orders ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **contract** | **string**| Futures contract | - **optional** | ***ListDeliveryTradesOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**status** | **string**| List orders based on status | + **optional** | ***ListPriceTriggeredDeliveryOrdersOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a ListDeliveryTradesOpts struct + +Optional parameters are passed through a pointer to a ListPriceTriggeredDeliveryOrdersOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + **contract** | **optional.String**| Futures contract, return related data only if specified | **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] - **lastId** | **optional.String**| Specify list staring point using the id of last record in previous list-query results This parameter is deprecated. Use `from` and `to` instead to limit time range | - **from** | **optional.Float32**| Specify starting time in Unix seconds. If not specified, `to` and `limit` will be used to limit response items. If items between `from` and `to` are more than `limit`, only `limit` number will be returned. | - **to** | **optional.Float32**| Specify end time in Unix seconds, default to current time | + **offset** | **optional.Int32**| List offset, starting from 0 | [default to 0] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -contract := "BTC_USDT_WEEKLY_20200703"; // string - Futures contract - -result, _, err := api.ListDeliveryTrades(nil, settle, contract, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + status := "status_example" // string - List orders based on status + + result, _, err := client.DeliveryApi.ListPriceTriggeredDeliveryOrders(ctx, settle, status, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FuturesTrade**](FuturesTrade.md) +[**[]FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListPriceTriggeredDeliveryOrders** -> []FuturesPriceTriggeredOrder ListPriceTriggeredDeliveryOrders(ctx, settle, status, optional) -List all auto orders +## CreatePriceTriggeredDeliveryOrder -### Required Parameters +> TriggerOrderResponse CreatePriceTriggeredDeliveryOrder(ctx, settle, futuresPriceTriggeredOrder) -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **status** | **string**| List orders based on status | - **optional** | ***ListPriceTriggeredDeliveryOrdersOpts** | optional parameters | nil if no parameters +Create a price-triggered order -### Optional Parameters -Optional parameters are passed through a pointer to a ListPriceTriggeredDeliveryOrdersOpts struct +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - - **contract** | **optional.String**| Futures contract, return related data only if specified | - **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] - **offset** | **optional.Int32**| List offset, starting from 0 | [default to 0] +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**futuresPriceTriggeredOrder** | [**FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md)| | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -status := "status_example"; // string - List orders based on status - -result, _, err := api.ListPriceTriggeredDeliveryOrders(nil, settle, status, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + futuresPriceTriggeredOrder := gateapi.FuturesPriceTriggeredOrder{} // FuturesPriceTriggeredOrder - + + result, _, err := client.DeliveryApi.CreatePriceTriggeredDeliveryOrder(ctx, settle, futuresPriceTriggeredOrder) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md) +[**TriggerOrderResponse**](TriggerOrderResponse.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: application/json +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **UpdateDeliveryPositionLeverage** -> Position UpdateDeliveryPositionLeverage(ctx, settle, contract, leverage) -Update position leverage +## CancelPriceTriggeredDeliveryOrderList + +> []FuturesPriceTriggeredOrder CancelPriceTriggeredDeliveryOrderList(ctx, settle, contract) + +Cancel all open orders ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **contract** | **string**| Futures contract | - **leverage** | **string**| New position leverage | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**contract** | **string**| Futures contract | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -contract := "BTC_USDT_WEEKLY_20200703"; // string - Futures contract -leverage := "10"; // string - New position leverage - -result, _, err := api.UpdateDeliveryPositionLeverage(nil, settle, contract, leverage) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + contract := "BTC_USD" // string - Futures contract + + result, _, err := client.DeliveryApi.CancelPriceTriggeredDeliveryOrderList(ctx, settle, contract) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Position**](Position.md) +[**[]FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **UpdateDeliveryPositionMargin** -> Position UpdateDeliveryPositionMargin(ctx, settle, contract, change) -Update position margin +## GetPriceTriggeredDeliveryOrder + +> FuturesPriceTriggeredOrder GetPriceTriggeredDeliveryOrder(ctx, settle, orderId) + +Get a single order ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **contract** | **string**| Futures contract | - **change** | **string**| Margin change. Use positive number to increase margin, negative number otherwise. | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**orderId** | **string**| ID returned on order successfully being created | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -contract := "BTC_USDT_WEEKLY_20200703"; // string - Futures contract -change := "0.01"; // string - Margin change. Use positive number to increase margin, negative number otherwise. - -result, _, err := api.UpdateDeliveryPositionMargin(nil, settle, contract, change) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + orderId := "orderId_example" // string - ID returned on order successfully being created + + result, _, err := client.DeliveryApi.GetPriceTriggeredDeliveryOrder(ctx, settle, orderId) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Position**](Position.md) +[**FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **UpdateDeliveryPositionRiskLimit** -> Position UpdateDeliveryPositionRiskLimit(ctx, settle, contract, riskLimit) -Update position risk limit +## CancelPriceTriggeredDeliveryOrder + +> FuturesPriceTriggeredOrder CancelPriceTriggeredDeliveryOrder(ctx, settle, orderId) + +Cancel a single order ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | - **contract** | **string**| Futures contract | - **riskLimit** | **string**| New position risk limit | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | +**orderId** | **string**| ID returned on order successfully being created | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.DeliveryApi -settle := "usdt"; // string - Settle currency -contract := "BTC_USDT_WEEKLY_20200703"; // string - Futures contract -riskLimit := "10"; // string - New position risk limit - -result, _, err := api.UpdateDeliveryPositionRiskLimit(nil, settle, contract, riskLimit) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := "usdt" // string - Settle currency + orderId := "orderId_example" // string - ID returned on order successfully being created + + result, _, err := client.DeliveryApi.CancelPriceTriggeredDeliveryOrder(ctx, settle, orderId) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Position**](Position.md) +[**FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +- **Content-Type**: Not defined +- **Accept**: application/json +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) diff --git a/docs/DeliveryContract.md b/docs/DeliveryContract.md index fba59c6..5488ed2 100644 --- a/docs/DeliveryContract.md +++ b/docs/DeliveryContract.md @@ -1,10 +1,11 @@ # DeliveryContract ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Name** | **string** | Futures contract | [optional] -**Underling** | **string** | Underlying | [optional] +**Underlying** | **string** | Underlying | [optional] **Cycle** | **string** | Cycle type, e.g. WEEKLY, QUARTERLY | [optional] **Type** | **string** | Futures contract type | [optional] **QuantoMultiplier** | **string** | Multiplier used in converting from invoicing to settlement currency in quanto futures | [optional] diff --git a/docs/DeliverySettlement.md b/docs/DeliverySettlement.md index 0057c6f..df335d7 100644 --- a/docs/DeliverySettlement.md +++ b/docs/DeliverySettlement.md @@ -1,17 +1,18 @@ # DeliverySettlement ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**Time** | **int64** | Liquidation time | [optional] -**Contract** | **string** | Futures contract | [optional] -**Leverage** | **string** | Position leverage | [optional] -**Size** | **int64** | Position size | [optional] -**Margin** | **string** | Position margin | [optional] -**EntryPrice** | **string** | Average entry price | [optional] -**SettlePrice** | **string** | Settled price | [optional] -**Profit** | **string** | Profit | [optional] -**Fee** | **string** | Fee deducted | [optional] +**Time** | **int64** | Liquidation time | [optional] [readonly] +**Contract** | **string** | Futures contract | [optional] [readonly] +**Leverage** | **string** | Position leverage | [optional] [readonly] +**Size** | **int64** | Position size | [optional] [readonly] +**Margin** | **string** | Position margin | [optional] [readonly] +**EntryPrice** | **string** | Average entry price | [optional] [readonly] +**SettlePrice** | **string** | Settled price | [optional] [readonly] +**Profit** | **string** | Profit | [optional] [readonly] +**Fee** | **string** | Fee deducted | [optional] [readonly] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/DepositAddress.md b/docs/DepositAddress.md index 7d0706c..418fedc 100644 --- a/docs/DepositAddress.md +++ b/docs/DepositAddress.md @@ -1,6 +1,7 @@ # DepositAddress ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Currency** | **string** | Currency detail | diff --git a/docs/FundingAccount.md b/docs/FundingAccount.md index b277f43..d8a3a04 100644 --- a/docs/FundingAccount.md +++ b/docs/FundingAccount.md @@ -1,6 +1,7 @@ # FundingAccount ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Currency** | **string** | Currency name | [optional] diff --git a/docs/FundingBookItem.md b/docs/FundingBookItem.md index c35ca60..e5f956b 100644 --- a/docs/FundingBookItem.md +++ b/docs/FundingBookItem.md @@ -1,6 +1,7 @@ # FundingBookItem ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Rate** | **string** | Loan rate | [optional] diff --git a/docs/FundingRateRecord.md b/docs/FundingRateRecord.md index 2fc892d..ed43994 100644 --- a/docs/FundingRateRecord.md +++ b/docs/FundingRateRecord.md @@ -1,6 +1,7 @@ # FundingRateRecord ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **T** | **int64** | Unix timestamp in seconds | [optional] diff --git a/docs/FuturesAccount.md b/docs/FuturesAccount.md index 3c19ed9..31af6d8 100644 --- a/docs/FuturesAccount.md +++ b/docs/FuturesAccount.md @@ -1,6 +1,7 @@ # FuturesAccount ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Total** | **string** | Total assets, total = position_margin + order_margin + available | [optional] diff --git a/docs/FuturesAccountBook.md b/docs/FuturesAccountBook.md index bc89057..2d5b411 100644 --- a/docs/FuturesAccountBook.md +++ b/docs/FuturesAccountBook.md @@ -1,6 +1,7 @@ # FuturesAccountBook ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Time** | **float32** | Change time | [optional] diff --git a/docs/FuturesApi.md b/docs/FuturesApi.md index 499cd7e..54c1aec 100644 --- a/docs/FuturesApi.md +++ b/docs/FuturesApi.md @@ -1,362 +1,435 @@ -# \FuturesApi +# FuturesApi All URIs are relative to *https://api.gateio.ws/api/v4* Method | HTTP request | Description ------------- | ------------- | ------------- -[**CancelFuturesOrder**](FuturesApi.md#CancelFuturesOrder) | **Delete** /futures/{settle}/orders/{order_id} | Cancel a single order -[**CancelFuturesOrders**](FuturesApi.md#CancelFuturesOrders) | **Delete** /futures/{settle}/orders | Cancel all `open` orders matched -[**CancelPriceTriggeredOrder**](FuturesApi.md#CancelPriceTriggeredOrder) | **Delete** /futures/{settle}/price_orders/{order_id} | Cancel a single order -[**CancelPriceTriggeredOrderList**](FuturesApi.md#CancelPriceTriggeredOrderList) | **Delete** /futures/{settle}/price_orders | Cancel all open orders -[**CreateFuturesOrder**](FuturesApi.md#CreateFuturesOrder) | **Post** /futures/{settle}/orders | Create a futures order -[**CreatePriceTriggeredOrder**](FuturesApi.md#CreatePriceTriggeredOrder) | **Post** /futures/{settle}/price_orders | Create a price-triggered order +[**ListFuturesContracts**](FuturesApi.md#ListFuturesContracts) | **Get** /futures/{settle}/contracts | List all futures contracts [**GetFuturesContract**](FuturesApi.md#GetFuturesContract) | **Get** /futures/{settle}/contracts/{contract} | Get a single contract -[**GetFuturesOrder**](FuturesApi.md#GetFuturesOrder) | **Get** /futures/{settle}/orders/{order_id} | Get a single order -[**GetMyTrades**](FuturesApi.md#GetMyTrades) | **Get** /futures/{settle}/my_trades | List personal trading history -[**GetPosition**](FuturesApi.md#GetPosition) | **Get** /futures/{settle}/positions/{contract} | Get single position -[**GetPriceTriggeredOrder**](FuturesApi.md#GetPriceTriggeredOrder) | **Get** /futures/{settle}/price_orders/{order_id} | Get a single order -[**ListFuturesAccountBook**](FuturesApi.md#ListFuturesAccountBook) | **Get** /futures/{settle}/account_book | Query account book -[**ListFuturesAccounts**](FuturesApi.md#ListFuturesAccounts) | **Get** /futures/{settle}/accounts | Query futures account +[**ListFuturesOrderBook**](FuturesApi.md#ListFuturesOrderBook) | **Get** /futures/{settle}/order_book | Futures order book +[**ListFuturesTrades**](FuturesApi.md#ListFuturesTrades) | **Get** /futures/{settle}/trades | Futures trading history [**ListFuturesCandlesticks**](FuturesApi.md#ListFuturesCandlesticks) | **Get** /futures/{settle}/candlesticks | Get futures candlesticks -[**ListFuturesContracts**](FuturesApi.md#ListFuturesContracts) | **Get** /futures/{settle}/contracts | List all futures contracts +[**ListFuturesTickers**](FuturesApi.md#ListFuturesTickers) | **Get** /futures/{settle}/tickers | List futures tickers [**ListFuturesFundingRateHistory**](FuturesApi.md#ListFuturesFundingRateHistory) | **Get** /futures/{settle}/funding_rate | Funding rate history [**ListFuturesInsuranceLedger**](FuturesApi.md#ListFuturesInsuranceLedger) | **Get** /futures/{settle}/insurance | Futures insurance balance history -[**ListFuturesOrderBook**](FuturesApi.md#ListFuturesOrderBook) | **Get** /futures/{settle}/order_book | Futures order book -[**ListFuturesOrders**](FuturesApi.md#ListFuturesOrders) | **Get** /futures/{settle}/orders | List futures orders -[**ListFuturesTickers**](FuturesApi.md#ListFuturesTickers) | **Get** /futures/{settle}/tickers | List futures tickers -[**ListFuturesTrades**](FuturesApi.md#ListFuturesTrades) | **Get** /futures/{settle}/trades | Futures trading history -[**ListLiquidates**](FuturesApi.md#ListLiquidates) | **Get** /futures/{settle}/liquidates | List liquidation history -[**ListPositionClose**](FuturesApi.md#ListPositionClose) | **Get** /futures/{settle}/position_close | List position close history +[**ListFuturesAccounts**](FuturesApi.md#ListFuturesAccounts) | **Get** /futures/{settle}/accounts | Query futures account +[**ListFuturesAccountBook**](FuturesApi.md#ListFuturesAccountBook) | **Get** /futures/{settle}/account_book | Query account book [**ListPositions**](FuturesApi.md#ListPositions) | **Get** /futures/{settle}/positions | List all positions of a user -[**ListPriceTriggeredOrders**](FuturesApi.md#ListPriceTriggeredOrders) | **Get** /futures/{settle}/price_orders | List all auto orders -[**UpdatePositionLeverage**](FuturesApi.md#UpdatePositionLeverage) | **Post** /futures/{settle}/positions/{contract}/leverage | Update position leverage +[**GetPosition**](FuturesApi.md#GetPosition) | **Get** /futures/{settle}/positions/{contract} | Get single position [**UpdatePositionMargin**](FuturesApi.md#UpdatePositionMargin) | **Post** /futures/{settle}/positions/{contract}/margin | Update position margin +[**UpdatePositionLeverage**](FuturesApi.md#UpdatePositionLeverage) | **Post** /futures/{settle}/positions/{contract}/leverage | Update position leverage [**UpdatePositionRiskLimit**](FuturesApi.md#UpdatePositionRiskLimit) | **Post** /futures/{settle}/positions/{contract}/risk_limit | Update position risk limit +[**ListFuturesOrders**](FuturesApi.md#ListFuturesOrders) | **Get** /futures/{settle}/orders | List futures orders +[**CreateFuturesOrder**](FuturesApi.md#CreateFuturesOrder) | **Post** /futures/{settle}/orders | Create a futures order +[**CancelFuturesOrders**](FuturesApi.md#CancelFuturesOrders) | **Delete** /futures/{settle}/orders | Cancel all `open` orders matched +[**GetFuturesOrder**](FuturesApi.md#GetFuturesOrder) | **Get** /futures/{settle}/orders/{order_id} | Get a single order +[**CancelFuturesOrder**](FuturesApi.md#CancelFuturesOrder) | **Delete** /futures/{settle}/orders/{order_id} | Cancel a single order +[**GetMyTrades**](FuturesApi.md#GetMyTrades) | **Get** /futures/{settle}/my_trades | List personal trading history +[**ListPositionClose**](FuturesApi.md#ListPositionClose) | **Get** /futures/{settle}/position_close | List position close history +[**ListLiquidates**](FuturesApi.md#ListLiquidates) | **Get** /futures/{settle}/liquidates | List liquidation history +[**ListPriceTriggeredOrders**](FuturesApi.md#ListPriceTriggeredOrders) | **Get** /futures/{settle}/price_orders | List all auto orders +[**CreatePriceTriggeredOrder**](FuturesApi.md#CreatePriceTriggeredOrder) | **Post** /futures/{settle}/price_orders | Create a price-triggered order +[**CancelPriceTriggeredOrderList**](FuturesApi.md#CancelPriceTriggeredOrderList) | **Delete** /futures/{settle}/price_orders | Cancel all open orders +[**GetPriceTriggeredOrder**](FuturesApi.md#GetPriceTriggeredOrder) | **Get** /futures/{settle}/price_orders/{order_id} | Get a single order +[**CancelPriceTriggeredOrder**](FuturesApi.md#CancelPriceTriggeredOrder) | **Delete** /futures/{settle}/price_orders/{order_id} | Cancel a single order -# **CancelFuturesOrder** -> FuturesOrder CancelFuturesOrder(ctx, settle, orderId) -Cancel a single order +## ListFuturesContracts + +> []Contract ListFuturesContracts(ctx, settle) + +List all futures contracts ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **orderId** | **string**| ID returned on order successfully being created | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -orderId := "12345"; // string - ID returned on order successfully being created - -result, _, err := api.CancelFuturesOrder(nil, settle, orderId) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + settle := btc // string - Settle currency + + result, _, err := client.FuturesApi.ListFuturesContracts(ctx, settle) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**FuturesOrder**](FuturesOrder.md) +[**[]Contract**](Contract.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +- **Content-Type**: Not defined +- **Accept**: application/json -# **CancelFuturesOrders** -> []FuturesOrder CancelFuturesOrders(ctx, settle, contract, optional) -Cancel all `open` orders matched +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -Zero-fill order cannot be retrieved 60 seconds after cancellation +## GetFuturesContract -### Required Parameters +> Contract GetFuturesContract(ctx, settle, contract) -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **contract** | **string**| Futures contract | - **optional** | ***CancelFuturesOrdersOpts** | optional parameters | nil if no parameters +Get a single contract -### Optional Parameters -Optional parameters are passed through a pointer to a CancelFuturesOrdersOpts struct +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - - **side** | **optional.String**| All bids or asks. Both included in not specified | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**contract** | **string**| Futures contract | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -contract := "BTC_USD"; // string - Futures contract - -result, _, err := api.CancelFuturesOrders(nil, settle, contract, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + settle := btc // string - Settle currency + contract := "BTC_USD" // string - Futures contract + + result, _, err := client.FuturesApi.GetFuturesContract(ctx, settle, contract) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FuturesOrder**](FuturesOrder.md) +[**Contract**](Contract.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **CancelPriceTriggeredOrder** -> FuturesPriceTriggeredOrder CancelPriceTriggeredOrder(ctx, settle, orderId) -Cancel a single order - -### Required Parameters +## ListFuturesOrderBook -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **orderId** | **string**| ID returned on order successfully being created | - -### Example - -```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -orderId := "orderId_example"; // string - ID returned on order successfully being created - -result, _, err := api.CancelPriceTriggeredOrder(nil, settle, orderId) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) -} -``` - -### Return type - -[**FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md) - -### Authorization +> FuturesOrderBook ListFuturesOrderBook(ctx, settle, contract, optional) -Authentication with API key and secret is required +Futures order book -### HTTP request headers +Bids will be sorted by price from high to low, while asks sorted reversely - - **Content-Type**: Not defined - - **Accept**: application/json +### Required Parameters -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**contract** | **string**| Futures contract | + **optional** | ***ListFuturesOrderBookOpts** | optional parameters | nil if no parameters -# **CancelPriceTriggeredOrderList** -> []FuturesPriceTriggeredOrder CancelPriceTriggeredOrderList(ctx, settle, contract) -Cancel all open orders +### Optional Parameters -### Required Parameters +Optional parameters are passed through a pointer to a ListFuturesOrderBookOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **contract** | **string**| Futures contract | + + + **interval** | **optional.String**| Order depth. 0 means no aggregation is applied. default to 0 | [default to 0] + **limit** | **optional.Int32**| Maximum number of order depth data in asks or bids | [default to 10] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -contract := "BTC_USD"; // string - Futures contract - -result, _, err := api.CancelPriceTriggeredOrderList(nil, settle, contract) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + settle := btc // string - Settle currency + contract := "BTC_USD" // string - Futures contract + + result, _, err := client.FuturesApi.ListFuturesOrderBook(ctx, settle, contract, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md) +[**FuturesOrderBook**](FuturesOrderBook.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **CreateFuturesOrder** -> FuturesOrder CreateFuturesOrder(ctx, settle, futuresOrder) -Create a futures order +## ListFuturesTrades -Zero-fill order cannot be retrieved 60 seconds after cancellation +> []FuturesTrade ListFuturesTrades(ctx, settle, contract, optional) + +Futures trading history ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **futuresOrder** | [**FuturesOrder**](FuturesOrder.md)| | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**contract** | **string**| Futures contract | + **optional** | ***ListFuturesTradesOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListFuturesTradesOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + + **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] + **lastId** | **optional.String**| Specify list staring point using the id of last record in previous list-query results This parameter is deprecated. Use `from` and `to` instead to limit time range | + **from** | **optional.Int64**| Specify starting time in Unix seconds. If not specified, `to` and `limit` will be used to limit response items. If items between `from` and `to` are more than `limit`, only `limit` number will be returned. | + **to** | **optional.Int64**| Specify end time in Unix seconds, default to current time | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -futuresOrder := new (gateapi.FuturesOrder); // FuturesOrder - - -result, _, err := api.CreateFuturesOrder(nil, settle, futuresOrder) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + settle := btc // string - Settle currency + contract := "BTC_USD" // string - Futures contract + + result, _, err := client.FuturesApi.ListFuturesTrades(ctx, settle, contract, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**FuturesOrder**](FuturesOrder.md) +[**[]FuturesTrade**](FuturesTrade.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **CreatePriceTriggeredOrder** -> TriggerOrderResponse CreatePriceTriggeredOrder(ctx, settle, futuresPriceTriggeredOrder) -Create a price-triggered order +## ListFuturesCandlesticks + +> []FuturesCandlestick ListFuturesCandlesticks(ctx, settle, contract, optional) + +Get futures candlesticks + +Return specified contract candlesticks. If prefix `contract` with `mark_`, the contract's mark price candlesticks are returned; if prefix with `index_`, index price candlesticks will be returned. Maximum of 2000 points are returned in one query. Be sure not to exceed the limit when specifying `from`, `to` and `interval` ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **futuresPriceTriggeredOrder** | [**FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md)| | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**contract** | **string**| Futures contract | + **optional** | ***ListFuturesCandlesticksOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListFuturesCandlesticksOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + + **from** | **optional.Int64**| Start time of candlesticks, formatted in Unix timestamp in seconds. Default to`to - 100 * interval` if not specified | + **to** | **optional.Int64**| End time of candlesticks, formatted in Unix timestamp in seconds. Default to current time | + **limit** | **optional.Int32**| Maximum recent data points returned. `limit` is conflicted with `from` and `to`. If either `from` or `to` is specified, request will be rejected. | [default to 100] + **interval** | **optional.String**| Interval time between data points | [default to 5m] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -futuresPriceTriggeredOrder := new (gateapi.FuturesPriceTriggeredOrder); // FuturesPriceTriggeredOrder - - -result, _, err := api.CreatePriceTriggeredOrder(nil, settle, futuresPriceTriggeredOrder) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + settle := btc // string - Settle currency + contract := "BTC_USD" // string - Futures contract + + result, _, err := client.FuturesApi.ListFuturesCandlesticks(ctx, settle, contract, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**TriggerOrderResponse**](TriggerOrderResponse.md) +[**[]FuturesCandlestick**](FuturesCandlestick.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **GetFuturesContract** -> Contract GetFuturesContract(ctx, settle, contract) -Get a single contract +## ListFuturesTickers + +> []FuturesTicker ListFuturesTickers(ctx, settle, optional) + +List futures tickers ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **contract** | **string**| Futures contract | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] + **optional** | ***ListFuturesTickersOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListFuturesTickersOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + **contract** | **optional.String**| Futures contract, return related data only if specified | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -contract := "BTC_USD"; // string - Futures contract - -result, _, err := api.GetFuturesContract(nil, settle, contract) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + settle := btc // string - Settle currency + + result, _, err := client.FuturesApi.ListFuturesTickers(ctx, settle, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Contract**](Contract.md) +[**[]FuturesTicker**](FuturesTicker.md) ### Authorization @@ -364,580 +437,785 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **GetFuturesOrder** -> FuturesOrder GetFuturesOrder(ctx, settle, orderId) -Get a single order +## ListFuturesFundingRateHistory -Zero-fill order cannot be retrieved 60 seconds after cancellation +> []FundingRateRecord ListFuturesFundingRateHistory(ctx, settle, contract, optional) + +Funding rate history ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **orderId** | **string**| ID returned on order successfully being created | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**contract** | **string**| Futures contract | + **optional** | ***ListFuturesFundingRateHistoryOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListFuturesFundingRateHistoryOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + + **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -orderId := "12345"; // string - ID returned on order successfully being created - -result, _, err := api.GetFuturesOrder(nil, settle, orderId) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + settle := btc // string - Settle currency + contract := "BTC_USD" // string - Futures contract + + result, _, err := client.FuturesApi.ListFuturesFundingRateHistory(ctx, settle, contract, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**FuturesOrder**](FuturesOrder.md) +[**[]FundingRateRecord**](FundingRateRecord.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **GetMyTrades** -> []MyFuturesTrade GetMyTrades(ctx, settle, optional) -List personal trading history +## ListFuturesInsuranceLedger + +> []InsuranceRecord ListFuturesInsuranceLedger(ctx, settle, optional) + +Futures insurance balance history ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **optional** | ***GetMyTradesOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] + **optional** | ***ListFuturesInsuranceLedgerOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a GetMyTradesOpts struct + +Optional parameters are passed through a pointer to a ListFuturesInsuranceLedgerOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **contract** | **optional.String**| Futures contract, return related data only if specified | - **order** | **optional.Int32**| Futures order ID, return related data only if specified | **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] - **offset** | **optional.Int32**| List offset, starting from 0 | [default to 0] - **lastId** | **optional.String**| Specify list staring point using the `id` of last record in previous list-query results | - **countTotal** | **optional.Int32**| Whether to return total number matched. Default to 0(no return) | [default to 0] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency - -result, _, err := api.GetMyTrades(nil, settle, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + settle := btc // string - Settle currency + + result, _, err := client.FuturesApi.ListFuturesInsuranceLedger(ctx, settle, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]MyFuturesTrade**](MyFuturesTrade.md) +[**[]InsuranceRecord**](InsuranceRecord.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **GetPosition** -> Position GetPosition(ctx, settle, contract) -Get single position +## ListFuturesAccounts + +> FuturesAccount ListFuturesAccounts(ctx, settle) + +Query futures account ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **contract** | **string**| Futures contract | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -contract := "BTC_USD"; // string - Futures contract - -result, _, err := api.GetPosition(nil, settle, contract) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + + result, _, err := client.FuturesApi.ListFuturesAccounts(ctx, settle) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Position**](Position.md) +[**FuturesAccount**](FuturesAccount.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **GetPriceTriggeredOrder** -> FuturesPriceTriggeredOrder GetPriceTriggeredOrder(ctx, settle, orderId) -Get a single order +## ListFuturesAccountBook + +> []FuturesAccountBook ListFuturesAccountBook(ctx, settle, optional) + +Query account book ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **orderId** | **string**| ID returned on order successfully being created | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] + **optional** | ***ListFuturesAccountBookOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListFuturesAccountBookOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] + **from** | **optional.Int64**| Start timestamp | + **to** | **optional.Int64**| End timestamp | + **type_** | **optional.String**| Changing Type: - dnw: Deposit & Withdraw - pnl: Profit & Loss by reducing position - fee: Trading fee - refr: Referrer rebate - fund: Funding - point_dnw: POINT Deposit & Withdraw - point_fee: POINT Trading fee - point_refr: POINT Referrer rebate | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -orderId := "orderId_example"; // string - ID returned on order successfully being created - -result, _, err := api.GetPriceTriggeredOrder(nil, settle, orderId) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + + result, _, err := client.FuturesApi.ListFuturesAccountBook(ctx, settle, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md) +[**[]FuturesAccountBook**](FuturesAccountBook.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListFuturesAccountBook** -> []FuturesAccountBook ListFuturesAccountBook(ctx, settle, optional) -Query account book +## ListPositions -### Required Parameters +> []Position ListPositions(ctx, settle) -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **optional** | ***ListFuturesAccountBookOpts** | optional parameters | nil if no parameters +List all positions of a user -### Optional Parameters -Optional parameters are passed through a pointer to a ListFuturesAccountBookOpts struct +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] - **from** | **optional.Int32**| Start timestamp | - **to** | **optional.Int32**| End timestamp | - **type_** | **optional.String**| Changing Type: - dnw: Deposit & Withdraw - pnl: Profit & Loss by reducing position - fee: Trading fee - refr: Referrer rebate - fund: Funding - point_dnw: POINT Deposit & Withdraw - point_fee: POINT Trading fee - point_refr: POINT Referrer rebate | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency - -result, _, err := api.ListFuturesAccountBook(nil, settle, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + + result, _, err := client.FuturesApi.ListPositions(ctx, settle) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FuturesAccountBook**](FuturesAccountBook.md) +[**[]Position**](Position.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +## GetPosition + +> Position GetPosition(ctx, settle, contract) -# **ListFuturesAccounts** -> FuturesAccount ListFuturesAccounts(ctx, settle) -Query futures account +Get single position ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**contract** | **string**| Futures contract | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency - -result, _, err := api.ListFuturesAccounts(nil, settle) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + contract := "BTC_USD" // string - Futures contract + + result, _, err := client.FuturesApi.GetPosition(ctx, settle, contract) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**FuturesAccount**](FuturesAccount.md) +[**Position**](Position.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **ListFuturesCandlesticks** -> []FuturesCandlestick ListFuturesCandlesticks(ctx, settle, contract, optional) -Get futures candlesticks +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -Return specified contract candlesticks. If prefix `contract` with `mark_`, the contract's mark price candlesticks are returned; if prefix with `index_`, index price candlesticks will be returned. Maximum of 2000 points are returned in one query. Be sure not to exceed the limit when specifying `from`, `to` and `interval` +## UpdatePositionMargin -### Required Parameters +> Position UpdatePositionMargin(ctx, settle, contract, change) -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **contract** | **string**| Futures contract | - **optional** | ***ListFuturesCandlesticksOpts** | optional parameters | nil if no parameters +Update position margin -### Optional Parameters -Optional parameters are passed through a pointer to a ListFuturesCandlesticksOpts struct +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - - **from** | **optional.Float32**| Start time of candlesticks, formatted in Unix timestamp in seconds. Default to`to - 100 * interval` if not specified | - **to** | **optional.Float32**| End time of candlesticks, formatted in Unix timestamp in seconds. Default to current time | - **limit** | **optional.Int32**| Maximum recent data points returned. `limit` is conflicted with `from` and `to`. If either `from` or `to` is specified, request will be rejected. | [default to 100] - **interval** | **optional.String**| Interval time between data points | [default to 5m] +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**contract** | **string**| Futures contract | +**change** | **string**| Margin change. Use positive number to increase margin, negative number otherwise. | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -contract := "BTC_USD"; // string - Futures contract - -result, _, err := api.ListFuturesCandlesticks(nil, settle, contract, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + contract := "BTC_USD" // string - Futures contract + change := "0.01" // string - Margin change. Use positive number to increase margin, negative number otherwise. + + result, _, err := client.FuturesApi.UpdatePositionMargin(ctx, settle, contract, change) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FuturesCandlestick**](FuturesCandlestick.md) +[**Position**](Position.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListFuturesContracts** -> []Contract ListFuturesContracts(ctx, settle) -List all futures contracts +## UpdatePositionLeverage + +> Position UpdatePositionLeverage(ctx, settle, contract, leverage) + +Update position leverage ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**contract** | **string**| Futures contract | +**leverage** | **string**| New position leverage | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.FuturesApi -settle := "btc"; // string - Settle currency - -result, _, err := api.ListFuturesContracts(nil, settle) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + contract := "BTC_USD" // string - Futures contract + leverage := "10" // string - New position leverage + + result, _, err := client.FuturesApi.UpdatePositionLeverage(ctx, settle, contract, leverage) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]Contract**](Contract.md) +[**Position**](Position.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListFuturesFundingRateHistory** -> []FundingRateRecord ListFuturesFundingRateHistory(ctx, settle, contract, optional) -Funding rate history +## UpdatePositionRiskLimit -### Required Parameters +> Position UpdatePositionRiskLimit(ctx, settle, contract, riskLimit) -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **contract** | **string**| Futures contract | - **optional** | ***ListFuturesFundingRateHistoryOpts** | optional parameters | nil if no parameters +Update position risk limit -### Optional Parameters -Optional parameters are passed through a pointer to a ListFuturesFundingRateHistoryOpts struct +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - - **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**contract** | **string**| Futures contract | +**riskLimit** | **string**| New position risk limit | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -contract := "BTC_USD"; // string - Futures contract - -result, _, err := api.ListFuturesFundingRateHistory(nil, settle, contract, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + contract := "BTC_USD" // string - Futures contract + riskLimit := "10" // string - New position risk limit + + result, _, err := client.FuturesApi.UpdatePositionRiskLimit(ctx, settle, contract, riskLimit) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FundingRateRecord**](FundingRateRecord.md) +[**Position**](Position.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListFuturesInsuranceLedger** -> []InsuranceRecord ListFuturesInsuranceLedger(ctx, settle, optional) -Futures insurance balance history +## ListFuturesOrders + +> []FuturesOrder ListFuturesOrders(ctx, settle, contract, status, optional) + +List futures orders + +Zero-fill order cannot be retrieved 60 seconds after cancellation ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **optional** | ***ListFuturesInsuranceLedgerOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**contract** | **string**| Futures contract | +**status** | **string**| List orders based on status | + **optional** | ***ListFuturesOrdersOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a ListFuturesInsuranceLedgerOpts struct + +Optional parameters are passed through a pointer to a ListFuturesOrdersOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- + + **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] + **offset** | **optional.Int32**| List offset, starting from 0 | [default to 0] + **lastId** | **optional.String**| Specify list staring point using the `id` of last record in previous list-query results | + **countTotal** | **optional.Int32**| Whether to return total number matched. Default to 0(no return) | [default to 0] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.FuturesApi -settle := "btc"; // string - Settle currency - -result, _, err := api.ListFuturesInsuranceLedger(nil, settle, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + contract := "BTC_USD" // string - Futures contract + status := "open" // string - List orders based on status + + result, _, err := client.FuturesApi.ListFuturesOrders(ctx, settle, contract, status, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]InsuranceRecord**](InsuranceRecord.md) +[**[]FuturesOrder**](FuturesOrder.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListFuturesOrderBook** -> FuturesOrderBook ListFuturesOrderBook(ctx, settle, contract, optional) -Futures order book +## CreateFuturesOrder -Bids will be sorted by price from high to low, while asks sorted reversely +> FuturesOrder CreateFuturesOrder(ctx, settle, futuresOrder) -### Required Parameters +Create a futures order -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **contract** | **string**| Futures contract | - **optional** | ***ListFuturesOrderBookOpts** | optional parameters | nil if no parameters +Zero-fill order cannot be retrieved 60 seconds after cancellation -### Optional Parameters -Optional parameters are passed through a pointer to a ListFuturesOrderBookOpts struct +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - - **interval** | **optional.String**| Order depth. 0 means no aggregation is applied. default to 0 | [default to 0] - **limit** | **optional.Int32**| Maximum number of order depth data in asks or bids | [default to 10] +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**futuresOrder** | [**FuturesOrder**](FuturesOrder.md)| | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -contract := "BTC_USD"; // string - Futures contract - -result, _, err := api.ListFuturesOrderBook(nil, settle, contract, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + futuresOrder := gateapi.FuturesOrder{} // FuturesOrder - + + result, _, err := client.FuturesApi.CreateFuturesOrder(ctx, settle, futuresOrder) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**FuturesOrderBook**](FuturesOrderBook.md) +[**FuturesOrder**](FuturesOrder.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: application/json +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListFuturesOrders** -> []FuturesOrder ListFuturesOrders(ctx, settle, contract, status, optional) -List futures orders +## CancelFuturesOrders + +> []FuturesOrder CancelFuturesOrders(ctx, settle, contract, optional) + +Cancel all `open` orders matched Zero-fill order cannot be retrieved 60 seconds after cancellation @@ -945,238 +1223,302 @@ Zero-fill order cannot be retrieved 60 seconds after cancellation Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **contract** | **string**| Futures contract | - **status** | **string**| List orders based on status | - **optional** | ***ListFuturesOrdersOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**contract** | **string**| Futures contract | + **optional** | ***CancelFuturesOrdersOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a ListFuturesOrdersOpts struct + +Optional parameters are passed through a pointer to a CancelFuturesOrdersOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] - **offset** | **optional.Int32**| List offset, starting from 0 | [default to 0] - **lastId** | **optional.String**| Specify list staring point using the `id` of last record in previous list-query results | - **countTotal** | **optional.Int32**| Whether to return total number matched. Default to 0(no return) | [default to 0] + **side** | **optional.String**| All bids or asks. Both included in not specified | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -contract := "BTC_USD"; // string - Futures contract -status := "open"; // string - List orders based on status - -result, _, err := api.ListFuturesOrders(nil, settle, contract, status, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + contract := "BTC_USD" // string - Futures contract + + result, _, err := client.FuturesApi.CancelFuturesOrders(ctx, settle, contract, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type [**[]FuturesOrder**](FuturesOrder.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListFuturesTickers** -> []FuturesTicker ListFuturesTickers(ctx, settle, optional) -List futures tickers +## GetFuturesOrder -### Required Parameters +> FuturesOrder GetFuturesOrder(ctx, settle, orderId) -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **optional** | ***ListFuturesTickersOpts** | optional parameters | nil if no parameters +Get a single order -### Optional Parameters -Optional parameters are passed through a pointer to a ListFuturesTickersOpts struct +Zero-fill order cannot be retrieved 60 seconds after cancellation + +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - **contract** | **optional.String**| Futures contract, return related data only if specified | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**orderId** | **string**| ID returned on order successfully being created | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.FuturesApi -settle := "btc"; // string - Settle currency - -result, _, err := api.ListFuturesTickers(nil, settle, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + orderId := "12345" // string - ID returned on order successfully being created + + result, _, err := client.FuturesApi.GetFuturesOrder(ctx, settle, orderId) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FuturesTicker**](FuturesTicker.md) +[**FuturesOrder**](FuturesOrder.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListFuturesTrades** -> []FuturesTrade ListFuturesTrades(ctx, settle, contract, optional) -Futures trading history +## CancelFuturesOrder -### Required Parameters +> FuturesOrder CancelFuturesOrder(ctx, settle, orderId) -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **contract** | **string**| Futures contract | - **optional** | ***ListFuturesTradesOpts** | optional parameters | nil if no parameters +Cancel a single order -### Optional Parameters -Optional parameters are passed through a pointer to a ListFuturesTradesOpts struct +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - - **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] - **lastId** | **optional.String**| Specify list staring point using the id of last record in previous list-query results This parameter is deprecated. Use `from` and `to` instead to limit time range | - **from** | **optional.Float32**| Specify starting time in Unix seconds. If not specified, `to` and `limit` will be used to limit response items. If items between `from` and `to` are more than `limit`, only `limit` number will be returned. | - **to** | **optional.Float32**| Specify end time in Unix seconds, default to current time | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**orderId** | **string**| ID returned on order successfully being created | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -contract := "BTC_USD"; // string - Futures contract - -result, _, err := api.ListFuturesTrades(nil, settle, contract, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + orderId := "12345" // string - ID returned on order successfully being created + + result, _, err := client.FuturesApi.CancelFuturesOrder(ctx, settle, orderId) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FuturesTrade**](FuturesTrade.md) +[**FuturesOrder**](FuturesOrder.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListLiquidates** -> []FuturesLiquidate ListLiquidates(ctx, settle, optional) -List liquidation history +## GetMyTrades + +> []MyFuturesTrade GetMyTrades(ctx, settle, optional) + +List personal trading history ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **optional** | ***ListLiquidatesOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] + **optional** | ***GetMyTradesOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a ListLiquidatesOpts struct + +Optional parameters are passed through a pointer to a GetMyTradesOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **contract** | **optional.String**| Futures contract, return related data only if specified | + **order** | **optional.Int32**| Futures order ID, return related data only if specified | **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] - **at** | **optional.Int32**| Specify a liquidation timestamp | [default to 0] + **offset** | **optional.Int32**| List offset, starting from 0 | [default to 0] + **lastId** | **optional.String**| Specify list staring point using the `id` of last record in previous list-query results | + **countTotal** | **optional.Int32**| Whether to return total number matched. Default to 0(no return) | [default to 0] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency - -result, _, err := api.ListLiquidates(nil, settle, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + + result, _, err := client.FuturesApi.GetMyTrades(ctx, settle, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FuturesLiquidate**](FuturesLiquidate.md) +[**[]MyFuturesTrade**](MyFuturesTrade.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +## ListPositionClose -# **ListPositionClose** > []PositionClose ListPositionClose(ctx, settle, optional) + List position close history ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] **optional** | ***ListPositionCloseOpts** | optional parameters | nil if no parameters ### Optional Parameters + Optional parameters are passed through a pointer to a ListPositionCloseOpts struct Name | Type | Description | Notes @@ -1188,94 +1530,147 @@ Name | Type | Description | Notes ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency - -result, _, err := api.ListPositionClose(nil, settle, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + + result, _, err := client.FuturesApi.ListPositionClose(ctx, settle, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type [**[]PositionClose**](PositionClose.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListPositions** -> []Position ListPositions(ctx, settle) -List all positions of a user +## ListLiquidates + +> []FuturesLiquidate ListLiquidates(ctx, settle, optional) + +List liquidation history ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] + **optional** | ***ListLiquidatesOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListLiquidatesOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + **contract** | **optional.String**| Futures contract, return related data only if specified | + **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] + **at** | **optional.Int32**| Specify a liquidation timestamp | [default to 0] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency - -result, _, err := api.ListPositions(nil, settle) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + + result, _, err := client.FuturesApi.ListLiquidates(ctx, settle, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]Position**](Position.md) +[**[]FuturesLiquidate**](FuturesLiquidate.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) + +## ListPriceTriggeredOrders -# **ListPriceTriggeredOrders** > []FuturesPriceTriggeredOrder ListPriceTriggeredOrders(ctx, settle, status, optional) + List all auto orders ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **status** | **string**| List orders based on status | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**status** | **string**| List orders based on status | **optional** | ***ListPriceTriggeredOrdersOpts** | optional parameters | nil if no parameters ### Optional Parameters + Optional parameters are passed through a pointer to a ListPriceTriggeredOrdersOpts struct Name | Type | Description | Notes @@ -1289,178 +1684,315 @@ Name | Type | Description | Notes ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -status := "status_example"; // string - List orders based on status - -result, _, err := api.ListPriceTriggeredOrders(nil, settle, status, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + status := "status_example" // string - List orders based on status + + result, _, err := client.FuturesApi.ListPriceTriggeredOrders(ctx, settle, status, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type [**[]FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **UpdatePositionLeverage** -> Position UpdatePositionLeverage(ctx, settle, contract, leverage) -Update position leverage +## CreatePriceTriggeredOrder + +> TriggerOrderResponse CreatePriceTriggeredOrder(ctx, settle, futuresPriceTriggeredOrder) + +Create a price-triggered order ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **contract** | **string**| Futures contract | - **leverage** | **string**| New position leverage | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**futuresPriceTriggeredOrder** | [**FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md)| | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -contract := "BTC_USD"; // string - Futures contract -leverage := "10"; // string - New position leverage - -result, _, err := api.UpdatePositionLeverage(nil, settle, contract, leverage) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + futuresPriceTriggeredOrder := gateapi.FuturesPriceTriggeredOrder{} // FuturesPriceTriggeredOrder - + + result, _, err := client.FuturesApi.CreatePriceTriggeredOrder(ctx, settle, futuresPriceTriggeredOrder) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Position**](Position.md) +[**TriggerOrderResponse**](TriggerOrderResponse.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: application/json +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **UpdatePositionMargin** -> Position UpdatePositionMargin(ctx, settle, contract, change) -Update position margin +## CancelPriceTriggeredOrderList + +> []FuturesPriceTriggeredOrder CancelPriceTriggeredOrderList(ctx, settle, contract) + +Cancel all open orders ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **contract** | **string**| Futures contract | - **change** | **string**| Margin change. Use positive number to increase margin, negative number otherwise. | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**contract** | **string**| Futures contract | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -contract := "BTC_USD"; // string - Futures contract -change := "0.01"; // string - Margin change. Use positive number to increase margin, negative number otherwise. - -result, _, err := api.UpdatePositionMargin(nil, settle, contract, change) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + contract := "BTC_USD" // string - Futures contract + + result, _, err := client.FuturesApi.CancelPriceTriggeredOrderList(ctx, settle, contract) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Position**](Position.md) +[**[]FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **UpdatePositionRiskLimit** -> Position UpdatePositionRiskLimit(ctx, settle, contract, riskLimit) -Update position risk limit +## GetPriceTriggeredOrder + +> FuturesPriceTriggeredOrder GetPriceTriggeredOrder(ctx, settle, orderId) + +Get a single order ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **settle** | **string**| Settle currency | [default to btc] - **contract** | **string**| Futures contract | - **riskLimit** | **string**| New position risk limit | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**orderId** | **string**| ID returned on order successfully being created | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.FuturesApi -settle := "btc"; // string - Settle currency -contract := "BTC_USD"; // string - Futures contract -riskLimit := "10"; // string - New position risk limit - -result, _, err := api.UpdatePositionRiskLimit(nil, settle, contract, riskLimit) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + orderId := "orderId_example" // string - ID returned on order successfully being created + + result, _, err := client.FuturesApi.GetPriceTriggeredOrder(ctx, settle, orderId) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Position**](Position.md) +[**FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) + +## CancelPriceTriggeredOrder + +> FuturesPriceTriggeredOrder CancelPriceTriggeredOrder(ctx, settle, orderId) + +Cancel a single order + +### Required Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**settle** | **string**| Settle currency | [default to btc] +**orderId** | **string**| ID returned on order successfully being created | + +### Example + +```golang +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + settle := btc // string - Settle currency + orderId := "orderId_example" // string - ID returned on order successfully being created + + result, _, err := client.FuturesApi.CancelPriceTriggeredOrder(ctx, settle, orderId) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } +} +``` + + +### Return type + +[**FuturesPriceTriggeredOrder**](FuturesPriceTriggeredOrder.md) + +### Authorization + +[apiv4](../README.md#apiv4) + +### HTTP request headers -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +- **Content-Type**: Not defined +- **Accept**: application/json +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) diff --git a/docs/FuturesCandlestick.md b/docs/FuturesCandlestick.md index 9f46a88..f51134b 100644 --- a/docs/FuturesCandlestick.md +++ b/docs/FuturesCandlestick.md @@ -1,6 +1,7 @@ # FuturesCandlestick ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **T** | **float32** | Unix timestamp in seconds | [optional] diff --git a/docs/FuturesInitialOrder.md b/docs/FuturesInitialOrder.md index 83d42fa..43e8ed4 100644 --- a/docs/FuturesInitialOrder.md +++ b/docs/FuturesInitialOrder.md @@ -1,6 +1,7 @@ # FuturesInitialOrder ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Contract** | **string** | Futures contract | @@ -10,8 +11,8 @@ Name | Type | Description | Notes **Tif** | **string** | Time in force. If using market price, only `ioc` is supported. - gtc: GoodTillCancelled - ioc: ImmediateOrCancelled | [optional] [default to TIF_GTC] **Text** | **string** | How the order is created. Possible values are: web, api and app | [optional] **ReduceOnly** | **bool** | Set to true to create an reduce-only order | [optional] [default to false] -**IsReduceOnly** | **bool** | Is the order reduce-only | [optional] -**IsClose** | **bool** | Is the order to close position | [optional] +**IsReduceOnly** | **bool** | Is the order reduce-only | [optional] [readonly] +**IsClose** | **bool** | Is the order to close position | [optional] [readonly] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/FuturesLiquidate.md b/docs/FuturesLiquidate.md index 77f1257..c1df9d4 100644 --- a/docs/FuturesLiquidate.md +++ b/docs/FuturesLiquidate.md @@ -1,20 +1,21 @@ # FuturesLiquidate ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**Time** | **int64** | Liquidation time | [optional] -**Contract** | **string** | Futures contract | [optional] -**Leverage** | **string** | Position leverage | [optional] -**Size** | **int64** | Position size | [optional] -**Margin** | **string** | Position margin | [optional] -**EntryPrice** | **string** | Average entry price | [optional] -**LiqPrice** | **string** | Liquidation price | [optional] -**MarkPrice** | **string** | Mark price | [optional] -**OrderId** | **int64** | Liquidation order ID | [optional] -**OrderPrice** | **string** | Liquidation order price | [optional] -**FillPrice** | **string** | Liquidation order average taker price | [optional] -**Left** | **int64** | Liquidation order maker size | [optional] +**Time** | **int64** | Liquidation time | [optional] [readonly] +**Contract** | **string** | Futures contract | [optional] [readonly] +**Leverage** | **string** | Position leverage | [optional] [readonly] +**Size** | **int64** | Position size | [optional] [readonly] +**Margin** | **string** | Position margin | [optional] [readonly] +**EntryPrice** | **string** | Average entry price | [optional] [readonly] +**LiqPrice** | **string** | Liquidation price | [optional] [readonly] +**MarkPrice** | **string** | Mark price | [optional] [readonly] +**OrderId** | **int64** | Liquidation order ID | [optional] [readonly] +**OrderPrice** | **string** | Liquidation order price | [optional] [readonly] +**FillPrice** | **string** | Liquidation order average taker price | [optional] [readonly] +**Left** | **int64** | Liquidation order maker size | [optional] [readonly] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/FuturesOrder.md b/docs/FuturesOrder.md index 25b0ba6..f167dad 100644 --- a/docs/FuturesOrder.md +++ b/docs/FuturesOrder.md @@ -1,30 +1,31 @@ # FuturesOrder ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**Id** | **int64** | Futures order ID | [optional] -**User** | **int32** | User ID | [optional] -**CreateTime** | **float32** | Order creation time | [optional] -**FinishTime** | **float32** | Order finished time. Not returned if order is open | [optional] -**FinishAs** | **string** | How the order is finished. - filled: all filled - cancelled: manually cancelled - liquidated: cancelled because of liquidation - ioc: time in force is `IOC`, finish immediately - auto_deleveraged: finished by ADL - reduce_only: cancelled because of increasing position while `reduce-only` set | [optional] -**Status** | **string** | Order status - `open`: waiting to be traded - `finished`: finished | [optional] +**Id** | **int64** | Futures order ID | [optional] [readonly] +**User** | **int32** | User ID | [optional] [readonly] +**CreateTime** | **float32** | Order creation time | [optional] [readonly] +**FinishTime** | **float32** | Order finished time. Not returned if order is open | [optional] [readonly] +**FinishAs** | **string** | How the order is finished. - filled: all filled - cancelled: manually cancelled - liquidated: cancelled because of liquidation - ioc: time in force is `IOC`, finish immediately - auto_deleveraged: finished by ADL - reduce_only: cancelled because of increasing position while `reduce-only` set | [optional] [readonly] +**Status** | **string** | Order status - `open`: waiting to be traded - `finished`: finished | [optional] [readonly] **Contract** | **string** | Futures contract | **Size** | **int64** | Order size. Specify positive number to make a bid, and negative number to ask | [optional] **Iceberg** | **int64** | Display size for iceberg order. 0 for non-iceberg. Note that you would pay the taker fee for the hidden size | [optional] **Price** | **string** | Order price. 0 for market order with `tif` set as `ioc` | [optional] **Close** | **bool** | Set as `true` to close the position, with `size` set to 0 | [optional] [default to false] -**IsClose** | **bool** | Is the order to close position | [optional] +**IsClose** | **bool** | Is the order to close position | [optional] [readonly] **ReduceOnly** | **bool** | Set as `true` to be reduce-only order | [optional] [default to false] -**IsReduceOnly** | **bool** | Is the order reduce-only | [optional] -**IsLiq** | **bool** | Is the order for liquidation | [optional] +**IsReduceOnly** | **bool** | Is the order reduce-only | [optional] [readonly] +**IsLiq** | **bool** | Is the order for liquidation | [optional] [readonly] **Tif** | **string** | Time in force - gtc: GoodTillCancelled - ioc: ImmediateOrCancelled, taker only - poc: PendingOrCancelled, reduce-only | [optional] [default to TIF_GTC] -**Left** | **int64** | Size left to be traded | [optional] -**FillPrice** | **string** | Fill price of the order | [optional] -**Text** | **string** | User defined information. If not empty, must follow the rules below: 1. prefixed with `t-` 2. no longer than 16 bytes without `t-` prefix 3. can only include 0-9, A-Z, a-z, underscore(_), hyphen(-) or dot(.) Besides user defined information, reserved contents are listed below, denoting how the order is created: - web: from web - api: from API - app: from mobile phones - auto_deleveraging: from ADL - liquidation: from liquidation - insurance: from insurance | [optional] -**Tkfr** | **string** | Taker fee | [optional] -**Mkfr** | **string** | Maker fee | [optional] -**Refu** | **int32** | Reference user ID | [optional] +**Left** | **int64** | Size left to be traded | [optional] [readonly] +**FillPrice** | **string** | Fill price of the order | [optional] [readonly] +**Text** | **string** | User defined information. If not empty, must follow the rules below: 1. prefixed with `t-` 2. no longer than 28 bytes without `t-` prefix 3. can only include 0-9, A-Z, a-z, underscore(_), hyphen(-) or dot(.) Besides user defined information, reserved contents are listed below, denoting how the order is created: - web: from web - api: from API - app: from mobile phones - auto_deleveraging: from ADL - liquidation: from liquidation - insurance: from insurance | [optional] +**Tkfr** | **string** | Taker fee | [optional] [readonly] +**Mkfr** | **string** | Maker fee | [optional] [readonly] +**Refu** | **int32** | Reference user ID | [optional] [readonly] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/FuturesOrderBook.md b/docs/FuturesOrderBook.md index 2923e6b..49ca8ac 100644 --- a/docs/FuturesOrderBook.md +++ b/docs/FuturesOrderBook.md @@ -1,6 +1,7 @@ # FuturesOrderBook ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Asks** | [**[]FuturesOrderBookItem**](futures_order_book_item.md) | Asks order depth | diff --git a/docs/FuturesOrderBookItem.md b/docs/FuturesOrderBookItem.md index 33889a4..854f815 100644 --- a/docs/FuturesOrderBookItem.md +++ b/docs/FuturesOrderBookItem.md @@ -1,6 +1,7 @@ # FuturesOrderBookItem ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **P** | **string** | Price | [optional] diff --git a/docs/FuturesPriceTrigger.md b/docs/FuturesPriceTrigger.md index 498bd0b..c68b2cd 100644 --- a/docs/FuturesPriceTrigger.md +++ b/docs/FuturesPriceTrigger.md @@ -1,6 +1,7 @@ # FuturesPriceTrigger ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **StrategyType** | **int32** | How the order will be triggered - `0`: by price, which means order will be triggered on price condition satisfied - `1`: by price gap, which means order will be triggered on gap of recent two prices of specified `price_type` satisfied. Only `0` is supported currently | [optional] diff --git a/docs/FuturesPriceTriggeredOrder.md b/docs/FuturesPriceTriggeredOrder.md index 0b9f94a..1bf9d27 100644 --- a/docs/FuturesPriceTriggeredOrder.md +++ b/docs/FuturesPriceTriggeredOrder.md @@ -1,18 +1,19 @@ # FuturesPriceTriggeredOrder ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Initial** | [**FuturesInitialOrder**](FuturesInitialOrder.md) | | **Trigger** | [**FuturesPriceTrigger**](FuturesPriceTrigger.md) | | -**Id** | **int64** | Auto order ID | [optional] -**User** | **int32** | User ID | [optional] -**CreateTime** | **float32** | Creation time | [optional] -**FinishTime** | **float32** | Finished time | [optional] -**TradeId** | **int64** | ID of the newly created order on condition triggered | [optional] -**Status** | **string** | Order status. | [optional] -**FinishAs** | **string** | How order is finished | [optional] -**Reason** | **string** | Extra messages of how order is finished | [optional] +**Id** | **int64** | Auto order ID | [optional] [readonly] +**User** | **int32** | User ID | [optional] [readonly] +**CreateTime** | **float32** | Creation time | [optional] [readonly] +**FinishTime** | **float32** | Finished time | [optional] [readonly] +**TradeId** | **int64** | ID of the newly created order on condition triggered | [optional] [readonly] +**Status** | **string** | Order status. | [optional] [readonly] +**FinishAs** | **string** | How order is finished | [optional] [readonly] +**Reason** | **string** | Extra messages of how order is finished | [optional] [readonly] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/FuturesTicker.md b/docs/FuturesTicker.md index 9206d57..e9f896f 100644 --- a/docs/FuturesTicker.md +++ b/docs/FuturesTicker.md @@ -1,6 +1,7 @@ # FuturesTicker ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Contract** | **string** | Futures contract | [optional] diff --git a/docs/FuturesTrade.md b/docs/FuturesTrade.md index dd6ce5c..44ff87e 100644 --- a/docs/FuturesTrade.md +++ b/docs/FuturesTrade.md @@ -1,6 +1,7 @@ # FuturesTrade ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Id** | **int64** | Trade ID | [optional] diff --git a/docs/InsuranceRecord.md b/docs/InsuranceRecord.md index 2b3e34b..4e51a9e 100644 --- a/docs/InsuranceRecord.md +++ b/docs/InsuranceRecord.md @@ -1,6 +1,7 @@ # InsuranceRecord ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **T** | **int64** | Unix timestamp in seconds | [optional] diff --git a/docs/LedgerRecord.md b/docs/LedgerRecord.md index b84fe3d..0a25e02 100644 --- a/docs/LedgerRecord.md +++ b/docs/LedgerRecord.md @@ -1,16 +1,17 @@ # LedgerRecord ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**Id** | **string** | Record ID | [optional] -**Txid** | **string** | Hash record of the withdrawal | [optional] -**Timestamp** | **string** | Record time | [optional] +**Id** | **string** | Record ID | [optional] [readonly] +**Txid** | **string** | Hash record of the withdrawal | [optional] [readonly] +**Timestamp** | **string** | Record time | [optional] [readonly] **Amount** | **string** | Trade amount | **Currency** | **string** | Record currency | **Address** | **string** | Withdrawal address. Required for withdrawals | [optional] **Memo** | **string** | Extra withdrawal memo | [optional] -**Status** | **string** | Record status. - DONE: done - CANCEL: cancelled - REQUEST: requesting - MANUAL: waiting for manual approval - BCODE: GateCode operation | [optional] +**Status** | **string** | Record status. - DONE: done - CANCEL: cancelled - REQUEST: requesting - MANUAL: waiting for manual approval - BCODE: GateCode operation | [optional] [readonly] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/Loan.md b/docs/Loan.md index 1bb3df4..509f702 100644 --- a/docs/Loan.md +++ b/docs/Loan.md @@ -1,12 +1,13 @@ # Loan ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**Id** | **string** | Loan ID | [optional] -**CreateTime** | **string** | Creation time | [optional] -**ExpireTime** | **string** | Repay time of the loan. No value will be returned for lending loan | [optional] -**Status** | **string** | Loan status open - not fully loaned loaned - all loaned out for lending loan; loaned in for borrowing side finished - loan is finished, either being all repaid or cancelled by the lender auto_repaid - automatically repaid by the system | [optional] +**Id** | **string** | Loan ID | [optional] [readonly] +**CreateTime** | **string** | Creation time | [optional] [readonly] +**ExpireTime** | **string** | Repay time of the loan. No value will be returned for lending loan | [optional] [readonly] +**Status** | **string** | Loan status open - not fully loaned loaned - all loaned out for lending loan; loaned in for borrowing side finished - loan is finished, either being all repaid or cancelled by the lender auto_repaid - automatically repaid by the system | [optional] [readonly] **Side** | **string** | Loan side | **Currency** | **string** | Loan currency | **Rate** | **string** | Loan rate. Only rates in [0.0002, 0.002] are supported. Not required in lending. Market rate calculated from recent rates will be used if not set | [optional] @@ -14,10 +15,10 @@ Name | Type | Description | Notes **Days** | **int32** | Loan days | **AutoRenew** | **bool** | Auto renew the loan on expiration | [optional] [default to false] **CurrencyPair** | **string** | Currency pair. Required for borrowing side | [optional] -**Left** | **string** | Amount not lending out | [optional] -**Repaid** | **string** | Repaid amount | [optional] -**PaidInterest** | **string** | Repaid interest | [optional] -**UnpaidInterest** | **string** | Interest not repaid | [optional] +**Left** | **string** | Amount not lending out | [optional] [readonly] +**Repaid** | **string** | Repaid amount | [optional] [readonly] +**PaidInterest** | **string** | Repaid interest | [optional] [readonly] +**UnpaidInterest** | **string** | Interest not repaid | [optional] [readonly] **FeeRate** | **string** | Loan fee rate | [optional] **OrigId** | **string** | Original loan ID if the loan is auto-renewed. Equal to `id` if not | [optional] diff --git a/docs/LoanPatch.md b/docs/LoanPatch.md index 2085ad9..6fb080c 100644 --- a/docs/LoanPatch.md +++ b/docs/LoanPatch.md @@ -1,6 +1,7 @@ # LoanPatch ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Currency** | **string** | Loan currency | diff --git a/docs/LoanRecord.md b/docs/LoanRecord.md index d9f53b0..797756a 100644 --- a/docs/LoanRecord.md +++ b/docs/LoanRecord.md @@ -1,6 +1,7 @@ # LoanRecord ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Id** | **string** | Loan record ID | [optional] @@ -15,8 +16,8 @@ Name | Type | Description | Notes **Days** | **int32** | Loan days | [optional] **AutoRenew** | **bool** | Whether the record will auto renew on expiration | [optional] [default to false] **Repaid** | **string** | Repaid amount | [optional] -**PaidInterest** | **string** | Repaid interest | [optional] -**UnpaidInterest** | **string** | Interest not repaid | [optional] +**PaidInterest** | **string** | Repaid interest | [optional] [readonly] +**UnpaidInterest** | **string** | Interest not repaid | [optional] [readonly] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/MarginAccount.md b/docs/MarginAccount.md index 8e6ea20..b7327bc 100644 --- a/docs/MarginAccount.md +++ b/docs/MarginAccount.md @@ -1,6 +1,7 @@ # MarginAccount ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **CurrencyPair** | **string** | Currency pair | [optional] diff --git a/docs/MarginAccountBook.md b/docs/MarginAccountBook.md new file mode 100644 index 0000000..27655c4 --- /dev/null +++ b/docs/MarginAccountBook.md @@ -0,0 +1,16 @@ +# MarginAccountBook + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Id** | **string** | Balance change record ID | [optional] +**Time** | **string** | Balance changed timestamp | [optional] +**Currency** | **string** | Currency changed | [optional] +**CurrencyPair** | **string** | Account currency pair | [optional] +**Change** | **string** | Amount changed. Positive value means transferring in, while negative out | [optional] +**Balance** | **string** | Balance after change | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/MarginAccountCurrency.md b/docs/MarginAccountCurrency.md index 9949920..4fdae11 100644 --- a/docs/MarginAccountCurrency.md +++ b/docs/MarginAccountCurrency.md @@ -1,6 +1,7 @@ # MarginAccountCurrency ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Currency** | **string** | Currency name | [optional] diff --git a/docs/MarginApi.md b/docs/MarginApi.md index d02a757..eb8f8ae 100644 --- a/docs/MarginApi.md +++ b/docs/MarginApi.md @@ -1,222 +1,302 @@ -# \MarginApi +# MarginApi All URIs are relative to *https://api.gateio.ws/api/v4* Method | HTTP request | Description ------------- | ------------- | ------------- -[**CancelLoan**](MarginApi.md#CancelLoan) | **Delete** /margin/loans/{loan_id} | Cancel lending loan -[**CreateLoan**](MarginApi.md#CreateLoan) | **Post** /margin/loans | Lend or borrow -[**GetLoan**](MarginApi.md#GetLoan) | **Get** /margin/loans/{loan_id} | Retrieve one single loan detail -[**GetLoanRecord**](MarginApi.md#GetLoanRecord) | **Get** /margin/loan_records/{loan_record_id} | Get one single loan record -[**ListFundingAccounts**](MarginApi.md#ListFundingAccounts) | **Get** /margin/funding_accounts | Funding account list +[**ListMarginCurrencyPairs**](MarginApi.md#ListMarginCurrencyPairs) | **Get** /margin/currency_pairs | List all supported currency pairs supported in margin trading [**ListFundingBook**](MarginApi.md#ListFundingBook) | **Get** /margin/funding_book | Order book of lending loans -[**ListLoanRecords**](MarginApi.md#ListLoanRecords) | **Get** /margin/loan_records | List repayment records of specified loan -[**ListLoanRepayments**](MarginApi.md#ListLoanRepayments) | **Get** /margin/loans/{loan_id}/repayment | List loan repayment records -[**ListLoans**](MarginApi.md#ListLoans) | **Get** /margin/loans | List all loans [**ListMarginAccounts**](MarginApi.md#ListMarginAccounts) | **Get** /margin/accounts | Margin account list -[**ListMarginCurrencyPairs**](MarginApi.md#ListMarginCurrencyPairs) | **Get** /margin/currency_pairs | List all supported currency pairs supported in margin trading +[**ListMarginAccountBook**](MarginApi.md#ListMarginAccountBook) | **Get** /margin/account_book | List margin account balance change history +[**ListFundingAccounts**](MarginApi.md#ListFundingAccounts) | **Get** /margin/funding_accounts | Funding account list +[**ListLoans**](MarginApi.md#ListLoans) | **Get** /margin/loans | List all loans +[**CreateLoan**](MarginApi.md#CreateLoan) | **Post** /margin/loans | Lend or borrow [**MergeLoans**](MarginApi.md#MergeLoans) | **Post** /margin/merged_loans | Merge multiple lending loans -[**RepayLoan**](MarginApi.md#RepayLoan) | **Post** /margin/loans/{loan_id}/repayment | Repay a loan +[**GetLoan**](MarginApi.md#GetLoan) | **Get** /margin/loans/{loan_id} | Retrieve one single loan detail +[**CancelLoan**](MarginApi.md#CancelLoan) | **Delete** /margin/loans/{loan_id} | Cancel lending loan [**UpdateLoan**](MarginApi.md#UpdateLoan) | **Patch** /margin/loans/{loan_id} | Modify a loan +[**ListLoanRepayments**](MarginApi.md#ListLoanRepayments) | **Get** /margin/loans/{loan_id}/repayment | List loan repayment records +[**RepayLoan**](MarginApi.md#RepayLoan) | **Post** /margin/loans/{loan_id}/repayment | Repay a loan +[**ListLoanRecords**](MarginApi.md#ListLoanRecords) | **Get** /margin/loan_records | List repayment records of specified loan +[**GetLoanRecord**](MarginApi.md#GetLoanRecord) | **Get** /margin/loan_records/{loan_record_id} | Get one single loan record [**UpdateLoanRecord**](MarginApi.md#UpdateLoanRecord) | **Patch** /margin/loan_records/{loan_record_id} | Modify a loan record -# **CancelLoan** -> Loan CancelLoan(ctx, loanId, currency) -Cancel lending loan +## ListMarginCurrencyPairs -Only lending loans can be cancelled +> []MarginCurrencyPair ListMarginCurrencyPairs(ctx, ) + +List all supported currency pairs supported in margin trading ### Required Parameters -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **loanId** | **string**| Loan ID | - **currency** | **string**| Retrieved specified currency related data | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.MarginApi -loanId := "12345"; // string - Loan ID -currency := "BTC"; // string - Retrieved specified currency related data - -result, _, err := api.CancelLoan(nil, loanId, currency) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + + result, _, err := client.MarginApi.ListMarginCurrencyPairs(ctx) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Loan**](Loan.md) +[**[]MarginCurrencyPair**](MarginCurrencyPair.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **CreateLoan** -> Loan CreateLoan(ctx, loan) -Lend or borrow +## ListFundingBook + +> []FundingBookItem ListFundingBook(ctx, currency) + +Order book of lending loans ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **loan** | [**Loan**](Loan.md)| | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**currency** | **string**| Retrieved specified currency related data | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.MarginApi -loan := new (gateapi.Loan); // Loan - - -result, _, err := api.CreateLoan(nil, loan) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + currency := "BTC" // string - Retrieved specified currency related data + + result, _, err := client.MarginApi.ListFundingBook(ctx, currency) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Loan**](Loan.md) +[**[]FundingBookItem**](FundingBookItem.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **GetLoan** -> Loan GetLoan(ctx, loanId, side) -Retrieve one single loan detail +## ListMarginAccounts + +> []MarginAccount ListMarginAccounts(ctx, optional) + +Margin account list ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **loanId** | **string**| Loan ID | - **side** | **string**| Lend or borrow | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. + **optional** | ***ListMarginAccountsOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListMarginAccountsOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **currencyPair** | **optional.String**| Currency pair | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.MarginApi -loanId := "12345"; // string - Loan ID -side := "lend"; // string - Lend or borrow - -result, _, err := api.GetLoan(nil, loanId, side) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + + result, _, err := client.MarginApi.ListMarginAccounts(ctx, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Loan**](Loan.md) +[**[]MarginAccount**](MarginAccount.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **GetLoanRecord** -> LoanRecord GetLoanRecord(ctx, loanRecordId, loanId) -Get one single loan record +## ListMarginAccountBook + +> []MarginAccountBook ListMarginAccountBook(ctx, optional) + +List margin account balance change history + +Only transferring from or to margin account are provided for now. Time range allows 30 days at most ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **loanRecordId** | **string**| Loan record ID | - **loanId** | **string**| Loan ID | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. + **optional** | ***ListMarginAccountBookOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListMarginAccountBookOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **currency** | **optional.String**| List records related to specified currency only. If specified, `currency_pair` is also required. | + **currencyPair** | **optional.String**| List records related to specified currency pair. Used in combination with `currency`. Ignored if `currency` is not provided | + **from** | **optional.Int64**| Time range beginning, default to 7 days before current time | + **to** | **optional.Int64**| Time range ending, default to current time | + **page** | **optional.Int32**| Page number | [default to 1] + **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.MarginApi -loanRecordId := "12345"; // string - Loan record ID -loanId := "12345"; // string - Loan ID - -result, _, err := api.GetLoanRecord(nil, loanRecordId, loanId) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + + result, _, err := client.MarginApi.ListMarginAccountBook(ctx, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**LoanRecord**](LoanRecord.md) +[**[]MarginAccountBook**](MarginAccountBook.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) + +## ListFundingAccounts -# **ListFundingAccounts** > []FundingAccount ListFundingAccounts(ctx, optional) + Funding account list ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. **optional** | ***ListFundingAccountsOpts** | optional parameters | nil if no parameters ### Optional Parameters + Optional parameters are passed through a pointer to a ListFundingAccountsOpts struct Name | Type | Description | Notes @@ -226,467 +306,743 @@ Name | Type | Description | Notes ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.MarginApi - -result, _, err := api.ListFundingAccounts(nil, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + + result, _, err := client.MarginApi.ListFundingAccounts(ctx, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type [**[]FundingAccount**](FundingAccount.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListFundingBook** -> []FundingBookItem ListFundingBook(ctx, currency) -Order book of lending loans +## ListLoans + +> []Loan ListLoans(ctx, status, side, optional) + +List all loans ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **currency** | **string**| Retrieved specified currency related data | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**status** | **string**| Loan status | +**side** | **string**| Lend or borrow | + **optional** | ***ListLoansOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListLoansOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + + **currency** | **optional.String**| Retrieved specified currency related data | + **currencyPair** | **optional.String**| Currency pair | + **sortBy** | **optional.String**| Specify which field is used to sort. `create_time` or `rate` is supported. Default to `create_time` | + **reverseSort** | **optional.Bool**| Whether to sort in descending order. Default to `true` | + **page** | **optional.Int32**| Page number | [default to 1] + **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.MarginApi -currency := "BTC"; // string - Retrieved specified currency related data - -result, _, err := api.ListFundingBook(nil, currency) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + status := "open" // string - Loan status + side := "lend" // string - Lend or borrow + + result, _, err := client.MarginApi.ListLoans(ctx, status, side, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]FundingBookItem**](FundingBookItem.md) +[**[]Loan**](Loan.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListLoanRecords** -> []LoanRecord ListLoanRecords(ctx, loanId, optional) -List repayment records of specified loan +## CreateLoan -### Required Parameters +> Loan CreateLoan(ctx, loan) -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **loanId** | **string**| Loan ID | - **optional** | ***ListLoanRecordsOpts** | optional parameters | nil if no parameters +Lend or borrow -### Optional Parameters -Optional parameters are passed through a pointer to a ListLoanRecordsOpts struct +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - **status** | **optional.String**| Loan record status | - **page** | **optional.Int32**| Page number | [default to 1] - **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**loan** | [**Loan**](Loan.md)| | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.MarginApi -loanId := "12345"; // string - Loan ID - -result, _, err := api.ListLoanRecords(nil, loanId, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + loan := gateapi.Loan{} // Loan - + + result, _, err := client.MarginApi.CreateLoan(ctx, loan) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]LoanRecord**](LoanRecord.md) +[**Loan**](Loan.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: application/json +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListLoanRepayments** -> []Repayment ListLoanRepayments(ctx, loanId) -List loan repayment records +## MergeLoans + +> Loan MergeLoans(ctx, currency, ids) + +Merge multiple lending loans ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **loanId** | **string**| Loan ID | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**currency** | **string**| Retrieved specified currency related data | +**ids** | **string**| Lending loan ID list separated by `,`. Maximum of 20 IDs are allowed in one request | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.MarginApi -loanId := "12345"; // string - Loan ID - -result, _, err := api.ListLoanRepayments(nil, loanId) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + currency := "BTC" // string - Retrieved specified currency related data + ids := "123,234,345" // string - Lending loan ID list separated by `,`. Maximum of 20 IDs are allowed in one request + + result, _, err := client.MarginApi.MergeLoans(ctx, currency, ids) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]Repayment**](Repayment.md) +[**Loan**](Loan.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListLoans** -> []Loan ListLoans(ctx, status, side, optional) -List all loans +## GetLoan -### Required Parameters +> Loan GetLoan(ctx, loanId, side) -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **status** | **string**| Loan status | - **side** | **string**| Lend or borrow | - **optional** | ***ListLoansOpts** | optional parameters | nil if no parameters +Retrieve one single loan detail -### Optional Parameters -Optional parameters are passed through a pointer to a ListLoansOpts struct +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - - **currency** | **optional.String**| Retrieved specified currency related data | - **currencyPair** | **optional.String**| Currency pair | - **sortBy** | **optional.String**| Specify which field is used to sort. `create_time` or `rate` is supported. Default to `create_time` | - **reverseSort** | **optional.Bool**| Whether to sort in descending order. Default to `true` | - **page** | **optional.Int32**| Page number | [default to 1] - **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**loanId** | **string**| Loan ID | +**side** | **string**| Lend or borrow | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.MarginApi -status := "open"; // string - Loan status -side := "lend"; // string - Lend or borrow - -result, _, err := api.ListLoans(nil, status, side, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + loanId := "12345" // string - Loan ID + side := "lend" // string - Lend or borrow + + result, _, err := client.MarginApi.GetLoan(ctx, loanId, side) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]Loan**](Loan.md) +[**Loan**](Loan.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListMarginAccounts** -> []MarginAccount ListMarginAccounts(ctx, optional) -Margin account list +## CancelLoan + +> Loan CancelLoan(ctx, loanId, currency) + +Cancel lending loan + +Only lending loans can be cancelled ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **optional** | ***ListMarginAccountsOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**loanId** | **string**| Loan ID | +**currency** | **string**| Retrieved specified currency related data | -### Optional Parameters -Optional parameters are passed through a pointer to a ListMarginAccountsOpts struct +### Example + +```golang +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + loanId := "12345" // string - Loan ID + currency := "BTC" // string - Retrieved specified currency related data + + result, _, err := client.MarginApi.CancelLoan(ctx, loanId, currency) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } +} +``` + + +### Return type + +[**Loan**](Loan.md) + +### Authorization + +[apiv4](../README.md#apiv4) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) + +## UpdateLoan + +> Loan UpdateLoan(ctx, loanId, loanPatch) + +Modify a loan + +Only `auto_renew` modification is supported currently + +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **currencyPair** | **optional.String**| Currency pair | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**loanId** | **string**| Loan ID | +**loanPatch** | [**LoanPatch**](LoanPatch.md)| | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.MarginApi - -result, _, err := api.ListMarginAccounts(nil, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + loanId := "12345" // string - Loan ID + loanPatch := gateapi.LoanPatch{} // LoanPatch - + + result, _, err := client.MarginApi.UpdateLoan(ctx, loanId, loanPatch) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]MarginAccount**](MarginAccount.md) +[**Loan**](Loan.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: application/json +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListMarginCurrencyPairs** -> []MarginCurrencyPair ListMarginCurrencyPairs(ctx, ) -List all supported currency pairs supported in margin trading +## ListLoanRepayments + +> []Repayment ListLoanRepayments(ctx, loanId) + +List loan repayment records ### Required Parameters -This endpoint does not need any parameter. + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**loanId** | **string**| Loan ID | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.MarginApi -result, _, err := api.ListMarginCurrencyPairs(nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + loanId := "12345" // string - Loan ID + + result, _, err := client.MarginApi.ListLoanRepayments(ctx, loanId) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]MarginCurrencyPair**](MarginCurrencyPair.md) +[**[]Repayment**](Repayment.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **MergeLoans** -> Loan MergeLoans(ctx, currency, ids) -Merge multiple lending loans +## RepayLoan + +> Loan RepayLoan(ctx, loanId, repayRequest) + +Repay a loan ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **currency** | **string**| Retrieved specified currency related data | - **ids** | **string**| Lending loan ID list separated by `,`. Maximum of 20 IDs are allowed in one request | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**loanId** | **string**| Loan ID | +**repayRequest** | [**RepayRequest**](RepayRequest.md)| | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.MarginApi -currency := "BTC"; // string - Retrieved specified currency related data -ids := "123,234,345"; // string - Lending loan ID list separated by `,`. Maximum of 20 IDs are allowed in one request - -result, _, err := api.MergeLoans(nil, currency, ids) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + loanId := "12345" // string - Loan ID + repayRequest := gateapi.RepayRequest{} // RepayRequest - + + result, _, err := client.MarginApi.RepayLoan(ctx, loanId, repayRequest) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type [**Loan**](Loan.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: application/json +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **RepayLoan** -> Loan RepayLoan(ctx, loanId, repayRequest) -Repay a loan +## ListLoanRecords + +> []LoanRecord ListLoanRecords(ctx, loanId, optional) + +List repayment records of specified loan ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **loanId** | **string**| Loan ID | - **repayRequest** | [**RepayRequest**](RepayRequest.md)| | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**loanId** | **string**| Loan ID | + **optional** | ***ListLoanRecordsOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListLoanRecordsOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + **status** | **optional.String**| Loan record status | + **page** | **optional.Int32**| Page number | [default to 1] + **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.MarginApi -loanId := "12345"; // string - Loan ID -repayRequest := new (gateapi.RepayRequest); // RepayRequest - - -result, _, err := api.RepayLoan(nil, loanId, repayRequest) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + loanId := "12345" // string - Loan ID + + result, _, err := client.MarginApi.ListLoanRecords(ctx, loanId, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Loan**](Loan.md) +[**[]LoanRecord**](LoanRecord.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **UpdateLoan** -> Loan UpdateLoan(ctx, loanId, loanPatch) -Modify a loan +## GetLoanRecord -Only `auto_renew` modification is supported currently +> LoanRecord GetLoanRecord(ctx, loanRecordId, loanId) + +Get one single loan record ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **loanId** | **string**| Loan ID | - **loanPatch** | [**LoanPatch**](LoanPatch.md)| | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**loanRecordId** | **string**| Loan record ID | +**loanId** | **string**| Loan ID | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.MarginApi -loanId := "12345"; // string - Loan ID -loanPatch := new (gateapi.LoanPatch); // LoanPatch - - -result, _, err := api.UpdateLoan(nil, loanId, loanPatch) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + loanRecordId := "12345" // string - Loan record ID + loanId := "12345" // string - Loan ID + + result, _, err := client.MarginApi.GetLoanRecord(ctx, loanRecordId, loanId) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Loan**](Loan.md) +[**LoanRecord**](LoanRecord.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +## UpdateLoanRecord -# **UpdateLoanRecord** > LoanRecord UpdateLoanRecord(ctx, loanRecordId, loanPatch) + Modify a loan record Only `auto_renew` modification is supported currently @@ -695,41 +1051,58 @@ Only `auto_renew` modification is supported currently Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **loanRecordId** | **string**| Loan record ID | - **loanPatch** | [**LoanPatch**](LoanPatch.md)| | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**loanRecordId** | **string**| Loan record ID | +**loanPatch** | [**LoanPatch**](LoanPatch.md)| | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.MarginApi -loanRecordId := "12345"; // string - Loan record ID -loanPatch := new (gateapi.LoanPatch); // LoanPatch - - -result, _, err := api.UpdateLoanRecord(nil, loanRecordId, loanPatch) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + loanRecordId := "12345" // string - Loan record ID + loanPatch := gateapi.LoanPatch{} // LoanPatch - + + result, _, err := client.MarginApi.UpdateLoanRecord(ctx, loanRecordId, loanPatch) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type [**LoanRecord**](LoanRecord.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +- **Content-Type**: application/json +- **Accept**: application/json +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) diff --git a/docs/MarginCurrencyPair.md b/docs/MarginCurrencyPair.md index 0018c58..92a3989 100644 --- a/docs/MarginCurrencyPair.md +++ b/docs/MarginCurrencyPair.md @@ -1,6 +1,7 @@ # MarginCurrencyPair ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Id** | **string** | Currency pair | [optional] diff --git a/docs/MyFuturesTrade.md b/docs/MyFuturesTrade.md index e675c7f..30c3d89 100644 --- a/docs/MyFuturesTrade.md +++ b/docs/MyFuturesTrade.md @@ -1,6 +1,7 @@ # MyFuturesTrade ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Id** | **int64** | Trade ID | [optional] diff --git a/docs/GateErrorResponse.md b/docs/OpenOrders.md similarity index 57% rename from docs/GateErrorResponse.md rename to docs/OpenOrders.md index b02ec61..1ae366c 100644 --- a/docs/GateErrorResponse.md +++ b/docs/OpenOrders.md @@ -1,10 +1,12 @@ -# GateErrorResponse +# OpenOrders ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**Label** | **string** | Error label | [optional] -**Message** | **string** | Detailed error message | [optional] +**CurrencyPair** | **string** | Currency pair | [optional] +**Total** | **int32** | Total open orders in this currency pair | [optional] +**Orders** | [**[]Order**](Order.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/Order.md b/docs/Order.md index 71dc101..132b623 100644 --- a/docs/Order.md +++ b/docs/Order.md @@ -1,13 +1,14 @@ # Order ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**Id** | **string** | Order ID | [optional] -**Text** | **string** | User defined information. If not empty, must follow the rules below: 1. prefixed with `t-` 2. no longer than 16 bytes without `t-` prefix 3. can only include 0-9, A-Z, a-z, underscore(_), hyphen(-) or dot(.) | [optional] -**CreateTime** | **string** | Order creation time | [optional] -**UpdateTime** | **string** | Order last modification time | [optional] -**Status** | **string** | Order status - `open`: to be filled - `closed`: filled - `cancelled`: cancelled | [optional] +**Id** | **string** | Order ID | [optional] [readonly] +**Text** | **string** | User defined information. If not empty, must follow the rules below: 1. prefixed with `t-` 2. no longer than 28 bytes without `t-` prefix 3. can only include 0-9, A-Z, a-z, underscore(_), hyphen(-) or dot(.) | [optional] +**CreateTime** | **string** | Order creation time | [optional] [readonly] +**UpdateTime** | **string** | Order last modification time | [optional] [readonly] +**Status** | **string** | Order status - `open`: to be filled - `closed`: filled - `cancelled`: cancelled | [optional] [readonly] **CurrencyPair** | **string** | Currency pair | **Type** | **string** | Order type. limit - limit order | [optional] [default to TYPE_LIMIT] **Account** | **string** | Account type. spot - use spot account; margin - use margin account | [optional] [default to ACCOUNT_SPOT] @@ -16,16 +17,16 @@ Name | Type | Description | Notes **Price** | **string** | Order price | **TimeInForce** | **string** | Time in force - gtc: GoodTillCancelled - ioc: ImmediateOrCancelled, taker only - poc: PendingOrCancelled, makes a post-only order that always enjoys a maker fee | [optional] [default to TIME_IN_FORCE_GTC] **AutoBorrow** | **bool** | Used in margin trading(i.e. `account` is `margin`) to allow automatic loan of insufficient part if balance is not enough. | [optional] -**Left** | **string** | Amount left to fill | [optional] -**FillPrice** | **string** | Total filled in quote currency. Deprecated in favor of `filled_total` | [optional] -**FilledTotal** | **string** | Total filled in quote currency | [optional] -**Fee** | **string** | Fee deducted | [optional] -**FeeCurrency** | **string** | Fee currency unit | [optional] -**PointFee** | **string** | Point used to deduct fee | [optional] -**GtFee** | **string** | GT used to deduct fee | [optional] -**GtDiscount** | **bool** | Whether GT fee discount is used | [optional] -**RebatedFee** | **string** | Rebated fee | [optional] -**RebatedFeeCurrency** | **string** | Rebated fee currency unit | [optional] +**Left** | **string** | Amount left to fill | [optional] [readonly] +**FillPrice** | **string** | Total filled in quote currency. Deprecated in favor of `filled_total` | [optional] [readonly] +**FilledTotal** | **string** | Total filled in quote currency | [optional] [readonly] +**Fee** | **string** | Fee deducted | [optional] [readonly] +**FeeCurrency** | **string** | Fee currency unit | [optional] [readonly] +**PointFee** | **string** | Point used to deduct fee | [optional] [readonly] +**GtFee** | **string** | GT used to deduct fee | [optional] [readonly] +**GtDiscount** | **bool** | Whether GT fee discount is used | [optional] [readonly] +**RebatedFee** | **string** | Rebated fee | [optional] [readonly] +**RebatedFeeCurrency** | **string** | Rebated fee currency unit | [optional] [readonly] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/OrderBook.md b/docs/OrderBook.md index 6003694..1cabe22 100644 --- a/docs/OrderBook.md +++ b/docs/OrderBook.md @@ -1,6 +1,7 @@ # OrderBook ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Asks** | [**[][]string**](array.md) | Asks order depth | diff --git a/docs/Position.md b/docs/Position.md index 361c865..bfc5c4e 100644 --- a/docs/Position.md +++ b/docs/Position.md @@ -1,28 +1,29 @@ # Position ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**User** | **int64** | User ID | [optional] -**Contract** | **string** | Futures contract | [optional] -**Size** | **int64** | Position size | [optional] +**User** | **int64** | User ID | [optional] [readonly] +**Contract** | **string** | Futures contract | [optional] [readonly] +**Size** | **int64** | Position size | [optional] [readonly] **Leverage** | **string** | Position leverage. 0 means cross margin; positive number means isolated margin | [optional] **RiskLimit** | **string** | Position risk limit | [optional] -**LeverageMax** | **string** | Maximum leverage under current risk limit | [optional] -**MaintenanceRate** | **string** | Maintenance rate under current risk limit | [optional] -**Value** | **string** | Position value calculated in settlement currency | [optional] +**LeverageMax** | **string** | Maximum leverage under current risk limit | [optional] [readonly] +**MaintenanceRate** | **string** | Maintenance rate under current risk limit | [optional] [readonly] +**Value** | **string** | Position value calculated in settlement currency | [optional] [readonly] **Margin** | **string** | Position margin | [optional] -**EntryPrice** | **string** | Entry price | [optional] -**LiqPrice** | **string** | Liquidation price | [optional] -**MarkPrice** | **string** | Current mark price | [optional] -**UnrealisedPnl** | **string** | Unrealized PNL | [optional] -**RealisedPnl** | **string** | Realized PNL | [optional] -**HistoryPnl** | **string** | History realized PNL | [optional] -**LastClosePnl** | **string** | PNL of last position close | [optional] -**RealisedPoint** | **string** | Realized POINT PNL | [optional] -**HistoryPoint** | **string** | History realized POINT PNL | [optional] -**AdlRanking** | **int32** | ADL ranking, range from 1 to 5 | [optional] -**PendingOrders** | **int32** | Current open orders | [optional] +**EntryPrice** | **string** | Entry price | [optional] [readonly] +**LiqPrice** | **string** | Liquidation price | [optional] [readonly] +**MarkPrice** | **string** | Current mark price | [optional] [readonly] +**UnrealisedPnl** | **string** | Unrealized PNL | [optional] [readonly] +**RealisedPnl** | **string** | Realized PNL | [optional] [readonly] +**HistoryPnl** | **string** | History realized PNL | [optional] [readonly] +**LastClosePnl** | **string** | PNL of last position close | [optional] [readonly] +**RealisedPoint** | **string** | Realized POINT PNL | [optional] [readonly] +**HistoryPoint** | **string** | History realized POINT PNL | [optional] [readonly] +**AdlRanking** | **int32** | ADL ranking, range from 1 to 5 | [optional] [readonly] +**PendingOrders** | **int32** | Current open orders | [optional] [readonly] **CloseOrder** | [**PositionCloseOrder**](Position_close_order.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/PositionClose.md b/docs/PositionClose.md index 7d53163..22d1e00 100644 --- a/docs/PositionClose.md +++ b/docs/PositionClose.md @@ -1,13 +1,14 @@ # PositionClose ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**Time** | **float32** | Position close time | [optional] -**Contract** | **string** | Futures contract | [optional] -**Side** | **string** | Position side, long or short | [optional] -**Pnl** | **string** | PNL | [optional] -**Text** | **string** | Text of close order | [optional] +**Time** | **float32** | Position close time | [optional] [readonly] +**Contract** | **string** | Futures contract | [optional] [readonly] +**Side** | **string** | Position side, long or short | [optional] [readonly] +**Pnl** | **string** | PNL | [optional] [readonly] +**Text** | **string** | Text of close order | [optional] [readonly] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/PositionCloseOrder.md b/docs/PositionCloseOrder.md index 7f10f16..e73963a 100644 --- a/docs/PositionCloseOrder.md +++ b/docs/PositionCloseOrder.md @@ -1,6 +1,7 @@ # PositionCloseOrder ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Id** | **int64** | Close order ID | [optional] diff --git a/docs/RepayRequest.md b/docs/RepayRequest.md index b5c81d2..6f84ecb 100644 --- a/docs/RepayRequest.md +++ b/docs/RepayRequest.md @@ -1,6 +1,7 @@ # RepayRequest ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **CurrencyPair** | **string** | Currency pair | diff --git a/docs/Repayment.md b/docs/Repayment.md index 4785d85..ee2a7b3 100644 --- a/docs/Repayment.md +++ b/docs/Repayment.md @@ -1,6 +1,7 @@ # Repayment ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Id** | **string** | Loan record ID | [optional] diff --git a/docs/SpotAccount.md b/docs/SpotAccount.md index 2658faf..4a201f1 100644 --- a/docs/SpotAccount.md +++ b/docs/SpotAccount.md @@ -1,6 +1,7 @@ # SpotAccount ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Currency** | **string** | Currency detail | [optional] diff --git a/docs/SpotApi.md b/docs/SpotApi.md index eeb3ccd..523c62c 100644 --- a/docs/SpotApi.md +++ b/docs/SpotApi.md @@ -1,293 +1,405 @@ -# \SpotApi +# SpotApi All URIs are relative to *https://api.gateio.ws/api/v4* Method | HTTP request | Description ------------- | ------------- | ------------- -[**CancelBatchOrders**](SpotApi.md#CancelBatchOrders) | **Post** /spot/cancel_batch_orders | Cancel a batch of orders with an ID list -[**CancelOrder**](SpotApi.md#CancelOrder) | **Delete** /spot/orders/{order_id} | Cancel a single order -[**CancelOrders**](SpotApi.md#CancelOrders) | **Delete** /spot/orders | Cancel all `open` orders in specified currency pair +[**ListCurrencyPairs**](SpotApi.md#ListCurrencyPairs) | **Get** /spot/currency_pairs | List all currency pairs supported +[**GetCurrencyPair**](SpotApi.md#GetCurrencyPair) | **Get** /spot/currency_pairs/{currency_pair} | Get detail of one single order +[**ListTickers**](SpotApi.md#ListTickers) | **Get** /spot/tickers | Retrieve ticker information +[**ListOrderBook**](SpotApi.md#ListOrderBook) | **Get** /spot/order_book | Retrieve order book +[**ListTrades**](SpotApi.md#ListTrades) | **Get** /spot/trades | Retrieve market trades +[**ListCandlesticks**](SpotApi.md#ListCandlesticks) | **Get** /spot/candlesticks | Market candlesticks +[**GetFee**](SpotApi.md#GetFee) | **Get** /spot/fee | Query user trading fee rates +[**ListSpotAccounts**](SpotApi.md#ListSpotAccounts) | **Get** /spot/accounts | List spot accounts [**CreateBatchOrders**](SpotApi.md#CreateBatchOrders) | **Post** /spot/batch_orders | Create a batch of orders +[**ListAllOpenOrders**](SpotApi.md#ListAllOpenOrders) | **Get** /spot/open_orders | List all open orders +[**ListOrders**](SpotApi.md#ListOrders) | **Get** /spot/orders | List orders [**CreateOrder**](SpotApi.md#CreateOrder) | **Post** /spot/orders | Create an order -[**GetCurrencyPair**](SpotApi.md#GetCurrencyPair) | **Get** /spot/currency_pairs/{currency_pair} | Get detail of one single order +[**CancelOrders**](SpotApi.md#CancelOrders) | **Delete** /spot/orders | Cancel all `open` orders in specified currency pair +[**CancelBatchOrders**](SpotApi.md#CancelBatchOrders) | **Post** /spot/cancel_batch_orders | Cancel a batch of orders with an ID list [**GetOrder**](SpotApi.md#GetOrder) | **Get** /spot/orders/{order_id} | Get a single order -[**ListCandlesticks**](SpotApi.md#ListCandlesticks) | **Get** /spot/candlesticks | Market candlesticks -[**ListCurrencyPairs**](SpotApi.md#ListCurrencyPairs) | **Get** /spot/currency_pairs | List all currency pairs supported +[**CancelOrder**](SpotApi.md#CancelOrder) | **Delete** /spot/orders/{order_id} | Cancel a single order [**ListMyTrades**](SpotApi.md#ListMyTrades) | **Get** /spot/my_trades | List personal trading history -[**ListOrderBook**](SpotApi.md#ListOrderBook) | **Get** /spot/order_book | Retrieve order book -[**ListOrders**](SpotApi.md#ListOrders) | **Get** /spot/orders | List orders -[**ListSpotAccounts**](SpotApi.md#ListSpotAccounts) | **Get** /spot/accounts | List spot accounts -[**ListTickers**](SpotApi.md#ListTickers) | **Get** /spot/tickers | Retrieve ticker information -[**ListTrades**](SpotApi.md#ListTrades) | **Get** /spot/trades | Retrieve market trades -# **CancelBatchOrders** -> []CancelOrderResult CancelBatchOrders(ctx, cancelOrder) -Cancel a batch of orders with an ID list +## ListCurrencyPairs -Multiple currency pairs can be specified, but maximum 20 orders are allowed per request +> []CurrencyPair ListCurrencyPairs(ctx, ) + +List all currency pairs supported ### Required Parameters -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **cancelOrder** | [**[]CancelOrder**](CancelOrder.md)| | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.SpotApi -cancelOrder := make([]gateapi.CancelOrder, 0); // []CancelOrder - - -result, _, err := api.CancelBatchOrders(nil, cancelOrder) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + + result, _, err := client.SpotApi.ListCurrencyPairs(ctx) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]CancelOrderResult**](CancelOrderResult.md) +[**[]CurrencyPair**](CurrencyPair.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **CancelOrder** -> Order CancelOrder(ctx, orderId, currencyPair) -Cancel a single order +## GetCurrencyPair + +> CurrencyPair GetCurrencyPair(ctx, currencyPair) + +Get detail of one single order ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **orderId** | **string**| ID returned on order successfully being created | - **currencyPair** | **string**| Currency pair | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**currencyPair** | **string**| Currency pair | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.SpotApi -orderId := "12345"; // string - ID returned on order successfully being created -currencyPair := "BTC_USDT"; // string - Currency pair - -result, _, err := api.CancelOrder(nil, orderId, currencyPair) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + currencyPair := "ETH_BTC" // string - Currency pair + + result, _, err := client.SpotApi.GetCurrencyPair(ctx, currencyPair) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Order**](Order.md) +[**CurrencyPair**](CurrencyPair.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **CancelOrders** -> []Order CancelOrders(ctx, currencyPair, optional) -Cancel all `open` orders in specified currency pair +## ListTickers + +> []Ticker ListTickers(ctx, optional) + +Retrieve ticker information + +Return only related data if `currency_pair` is specified; otherwise return all of them ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **currencyPair** | **string**| Currency pair | - **optional** | ***CancelOrdersOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. + **optional** | ***ListTickersOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a CancelOrdersOpts struct + +Optional parameters are passed through a pointer to a ListTickersOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - **side** | **optional.String**| All bids or asks. Both included in not specified | - **account** | **optional.String**| Specify account type. Default to all account types being included | + **currencyPair** | **optional.String**| Currency pair | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.SpotApi -currencyPair := "BTC_USDT"; // string - Currency pair - -result, _, err := api.CancelOrders(nil, currencyPair, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + + result, _, err := client.SpotApi.ListTickers(ctx, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]Order**](Order.md) +[**[]Ticker**](Ticker.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **CreateBatchOrders** -> []BatchOrder CreateBatchOrders(ctx, order) -Create a batch of orders +## ListOrderBook -Batch orders requirements: 1. custom order field `text` is required 2. At most 4 currency pairs, maximum 5 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 +> OrderBook ListOrderBook(ctx, currencyPair, optional) + +Retrieve order book + +Order book will be sorted by price from high to low on bids; reversed on asks ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **order** | [**[]Order**](Order.md)| | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**currencyPair** | **string**| Currency pair | + **optional** | ***ListOrderBookOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListOrderBookOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + **interval** | **optional.String**| Order depth. 0 means no aggregation is applied. default to 0 | [default to 0] + **limit** | **optional.Int32**| Maximum number of order depth data in asks or bids | [default to 10] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.SpotApi -order := make([]gateapi.Order, 0); // []Order - - -result, _, err := api.CreateBatchOrders(nil, order) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + currencyPair := "BTC_USDT" // string - Currency pair + + result, _, err := client.SpotApi.ListOrderBook(ctx, currencyPair, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]BatchOrder**](BatchOrder.md) +[**OrderBook**](OrderBook.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **CreateOrder** -> Order CreateOrder(ctx, order) -Create an order +## ListTrades + +> []Trade ListTrades(ctx, currencyPair, optional) + +Retrieve market trades ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **order** | [**Order**](Order.md)| | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**currencyPair** | **string**| Currency pair | + **optional** | ***ListTradesOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListTradesOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] + **lastId** | **optional.String**| Specify list staring point using the `id` of last record in previous list-query results | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.SpotApi -order := new (gateapi.Order); // Order - - -result, _, err := api.CreateOrder(nil, order) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + currencyPair := "BTC_USDT" // string - Currency pair + + result, _, err := client.SpotApi.ListTrades(ctx, currencyPair, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Order**](Order.md) +[**[]Trade**](Trade.md) ### Authorization -Authentication with API key and secret is required +No authorization required ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **GetCurrencyPair** -> CurrencyPair GetCurrencyPair(ctx, currencyPair) -Get detail of one single order +## ListCandlesticks + +> [][]string ListCandlesticks(ctx, currencyPair, optional) + +Market candlesticks + +Maximum of 1000 points are returned in one query. Be sure not to exceed the limit when specifying `from`, `to` and `interval` ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **currencyPair** | **string**| Currency pair | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**currencyPair** | **string**| Currency pair | + **optional** | ***ListCandlesticksOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListCandlesticksOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + **limit** | **optional.Int32**| Maximum recent data points returned. `limit` is conflicted with `from` and `to`. If either `from` or `to` is specified, request will be rejected. | [default to 100] + **from** | **optional.Int64**| Start time of candlesticks, formatted in Unix timestamp in seconds. Default to`to - 100 * interval` if not specified | + **to** | **optional.Int64**| End time of candlesticks, formatted in Unix timestamp in seconds. Default to current time | + **interval** | **optional.String**| Interval time between data points | [default to 30m] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.SpotApi -currencyPair := "ETH_BTC"; // string - Currency pair - -result, _, err := api.GetCurrencyPair(nil, currencyPair) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.Background() + currencyPair := "BTC_USDT" // string - Currency pair + + result, _, err := client.SpotApi.ListCandlesticks(ctx, currencyPair, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**CurrencyPair**](CurrencyPair.md) +[**[][]string**](array.md) ### Authorization @@ -295,469 +407,782 @@ No authorization required ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **GetOrder** -> Order GetOrder(ctx, orderId, currencyPair) -Get a single order +## GetFee + +> TradeFee GetFee(ctx, optional) + +Query user trading fee rates ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **orderId** | **string**| ID returned on order successfully being created | - **currencyPair** | **string**| Currency pair | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. + **optional** | ***GetFeeOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a GetFeeOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **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 | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.SpotApi -orderId := "12345"; // string - ID returned on order successfully being created -currencyPair := "BTC_USDT"; // string - Currency pair - -result, _, err := api.GetOrder(nil, orderId, currencyPair) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + + result, _, err := client.SpotApi.GetFee(ctx, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**Order**](Order.md) +[**TradeFee**](TradeFee.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListCandlesticks** -> [][]string ListCandlesticks(ctx, currencyPair, optional) -Market candlesticks +## ListSpotAccounts -Maximum of 1000 points are returned in one query. Be sure not to exceed the limit when specifying `from`, `to` and `interval` +> []SpotAccount ListSpotAccounts(ctx, optional) + +List spot accounts ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **currencyPair** | **string**| Currency pair | - **optional** | ***ListCandlesticksOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. + **optional** | ***ListSpotAccountsOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a ListCandlesticksOpts struct + +Optional parameters are passed through a pointer to a ListSpotAccountsOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - **limit** | **optional.Int32**| Maximum recent data points returned. `limit` is conflicted with `from` and `to`. If either `from` or `to` is specified, request will be rejected. | [default to 100] - **from** | **optional.Int64**| Start time of candlesticks, formatted in Unix timestamp in seconds. Default to`to - 100 * interval` if not specified | - **to** | **optional.Int64**| End time of candlesticks, formatted in Unix timestamp in seconds. Default to current time | - **interval** | **optional.String**| Interval time between data points | [default to 30m] + **currency** | **optional.String**| Retrieved specified currency related data | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.SpotApi -currencyPair := "BTC_USDT"; // string - Currency pair - -result, _, err := api.ListCandlesticks(nil, currencyPair, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + + result, _, err := client.SpotApi.ListSpotAccounts(ctx, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[][]string**](array.md) +[**[]SpotAccount**](SpotAccount.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListCurrencyPairs** -> []CurrencyPair ListCurrencyPairs(ctx, ) -List all currency pairs supported +## CreateBatchOrders + +> []BatchOrder CreateBatchOrders(ctx, order) + +Create a batch of orders + +Batch orders requirements: 1. custom order field `text` is required 2. At most 4 currency pairs, maximum 5 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 ### Required Parameters -This endpoint does not need any parameter. + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**order** | [**[]Order**](Order.md)| | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.SpotApi -result, _, err := api.ListCurrencyPairs(nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + order := []gateapi.Order{gateapi.Order{}} // []Order - + + result, _, err := client.SpotApi.CreateBatchOrders(ctx, order) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]CurrencyPair**](CurrencyPair.md) +[**[]BatchOrder**](BatchOrder.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: application/json +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListMyTrades** -> []Trade ListMyTrades(ctx, currencyPair, optional) -List personal trading history +## ListAllOpenOrders + +> []OpenOrders ListAllOpenOrders(ctx, optional) + +List all open orders + +List open orders in all currency pairs. Note that pagination parameters affect record number in each currency pair's open order list. No pagination is applied to the number of currency pairs returned. All currency pairs with open orders will be returned ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **currencyPair** | **string**| Currency pair | - **optional** | ***ListMyTradesOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. + **optional** | ***ListAllOpenOrdersOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a ListMyTradesOpts struct + +Optional parameters are passed through a pointer to a ListAllOpenOrdersOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - - **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] **page** | **optional.Int32**| Page number | [default to 1] - **orderId** | **optional.String**| List all trades of specified order | + **limit** | **optional.Int32**| Maximum number of records returned in one page in each currency pair | [default to 100] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.SpotApi -currencyPair := "BTC_USDT"; // string - Currency pair - -result, _, err := api.ListMyTrades(nil, currencyPair, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + + result, _, err := client.SpotApi.ListAllOpenOrders(ctx, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]Trade**](Trade.md) +[**[]OpenOrders**](OpenOrders.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListOrderBook** -> OrderBook ListOrderBook(ctx, currencyPair, optional) -Retrieve order book +## ListOrders -Order book will be sorted by price from high to low on bids; reversed on asks +> []Order ListOrders(ctx, currencyPair, status, optional) + +List orders ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **currencyPair** | **string**| Currency pair | - **optional** | ***ListOrderBookOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**currencyPair** | **string**| Currency pair | +**status** | **string**| List orders based on status `open` - order is waiting to be filled `finished` - order has been filled or cancelled | + **optional** | ***ListOrdersOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a ListOrderBookOpts struct + +Optional parameters are passed through a pointer to a ListOrdersOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **interval** | **optional.String**| Order depth. 0 means no aggregation is applied. default to 0 | [default to 0] - **limit** | **optional.Int32**| Maximum number of order depth data in asks or bids | [default to 10] + + **page** | **optional.Int32**| Page number | [default to 1] + **limit** | **optional.Int32**| Maximum number of records returned. If `status` is `open`, maximum of `limit` is 100 | [default to 100] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.SpotApi -currencyPair := "BTC_USDT"; // string - Currency pair - -result, _, err := api.ListOrderBook(nil, currencyPair, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + currencyPair := "BTC_USDT" // string - Currency pair + status := "open" // string - List orders based on status `open` - order is waiting to be filled `finished` - order has been filled or cancelled + + result, _, err := client.SpotApi.ListOrders(ctx, currencyPair, status, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**OrderBook**](OrderBook.md) +[**[]Order**](Order.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListOrders** -> []Order ListOrders(ctx, currencyPair, status, optional) -List orders +## CreateOrder + +> Order CreateOrder(ctx, order) + +Create an order ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **currencyPair** | **string**| Currency pair | - **status** | **string**| List orders based on status `open` - order is waiting to be filled `finished` - order has been filled or cancelled | - **optional** | ***ListOrdersOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**order** | [**Order**](Order.md)| | + +### Example + +```golang +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + order := gateapi.Order{} // Order - + + result, _, err := client.SpotApi.CreateOrder(ctx, order) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } +} +``` -### Optional Parameters -Optional parameters are passed through a pointer to a ListOrdersOpts struct + +### Return type + +[**Order**](Order.md) + +### Authorization + +[apiv4](../README.md#apiv4) + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) + +## CancelOrders + +> []Order CancelOrders(ctx, currencyPair, optional) + +Cancel all `open` orders in specified currency pair + +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**currencyPair** | **string**| Currency pair | + **optional** | ***CancelOrdersOpts** | optional parameters | nil if no parameters +### Optional Parameters - **page** | **optional.Int32**| Page number | [default to 1] - **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] +Optional parameters are passed through a pointer to a CancelOrdersOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + + **side** | **optional.String**| All bids or asks. Both included in not specified | + **account** | **optional.String**| Specify account type. Default to all account types being included | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.SpotApi -currencyPair := "BTC_USDT"; // string - Currency pair -status := "open"; // string - List orders based on status `open` - order is waiting to be filled `finished` - order has been filled or cancelled - -result, _, err := api.ListOrders(nil, currencyPair, status, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + currencyPair := "BTC_USDT" // string - Currency pair + + result, _, err := client.SpotApi.CancelOrders(ctx, currencyPair, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type [**[]Order**](Order.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListSpotAccounts** -> []SpotAccount ListSpotAccounts(ctx, optional) -List spot accounts +## CancelBatchOrders -### Required Parameters +> []CancelOrderResult CancelBatchOrders(ctx, cancelOrder) -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **optional** | ***ListSpotAccountsOpts** | optional parameters | nil if no parameters +Cancel a batch of orders with an ID list -### Optional Parameters -Optional parameters are passed through a pointer to a ListSpotAccountsOpts struct +Multiple currency pairs can be specified, but maximum 20 orders are allowed per request + +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **currency** | **optional.String**| Retrieved specified currency related data | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**cancelOrder** | [**[]CancelOrder**](CancelOrder.md)| | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.SpotApi - -result, _, err := api.ListSpotAccounts(nil, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + cancelOrder := []gateapi.CancelOrder{gateapi.CancelOrder{}} // []CancelOrder - + + result, _, err := client.SpotApi.CancelBatchOrders(ctx, cancelOrder) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]SpotAccount**](SpotAccount.md) +[**[]CancelOrderResult**](CancelOrderResult.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: application/json +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListTickers** -> []Ticker ListTickers(ctx, optional) -Retrieve ticker information +## GetOrder -Return only related data if `currency_pair` is specified; otherwise return all of them +> Order GetOrder(ctx, orderId, currencyPair) + +Get a single order ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **optional** | ***ListTickersOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**orderId** | **string**| ID returned on order successfully being created | +**currencyPair** | **string**| Currency pair | -### Optional Parameters -Optional parameters are passed through a pointer to a ListTickersOpts struct +### Example + +```golang +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + orderId := "12345" // string - ID returned on order successfully being created + currencyPair := "BTC_USDT" // string - Currency pair + + result, _, err := client.SpotApi.GetOrder(ctx, orderId, currencyPair) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } +} +``` + + +### Return type + +[**Order**](Order.md) + +### Authorization + +[apiv4](../README.md#apiv4) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) + +## CancelOrder + +> Order CancelOrder(ctx, orderId, currencyPair) + +Cancel a single order + +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **currencyPair** | **optional.String**| Currency pair | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**orderId** | **string**| ID returned on order successfully being created | +**currencyPair** | **string**| Currency pair | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.SpotApi - -result, _, err := api.ListTickers(nil, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + orderId := "12345" // string - ID returned on order successfully being created + currencyPair := "BTC_USDT" // string - Currency pair + + result, _, err := client.SpotApi.CancelOrder(ctx, orderId, currencyPair) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]Ticker**](Ticker.md) +[**Order**](Order.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListTrades** -> []Trade ListTrades(ctx, currencyPair, optional) -Retrieve market trades +## ListMyTrades + +> []Trade ListMyTrades(ctx, currencyPair, optional) + +List personal trading history ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **currencyPair** | **string**| Currency pair | - **optional** | ***ListTradesOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**currencyPair** | **string**| Currency pair | + **optional** | ***ListMyTradesOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a ListTradesOpts struct + +Optional parameters are passed through a pointer to a ListMyTradesOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] - **lastId** | **optional.String**| Specify list staring point using the `id` of last record in previous list-query results | + **page** | **optional.Int32**| Page number | [default to 1] + **orderId** | **optional.String**| List all trades of specified order | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -api := client.SpotApi -currencyPair := "BTC_USDT"; // string - Currency pair - -result, _, err := api.ListTrades(nil, currencyPair, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + currencyPair := "BTC_USDT" // string - Currency pair + + result, _, err := client.SpotApi.ListMyTrades(ctx, currencyPair, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type [**[]Trade**](Trade.md) ### Authorization -No authorization required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +- **Content-Type**: Not defined +- **Accept**: application/json +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) diff --git a/docs/SubAccountTransfer.md b/docs/SubAccountTransfer.md index 62c66f1..f6168d4 100644 --- a/docs/SubAccountTransfer.md +++ b/docs/SubAccountTransfer.md @@ -1,15 +1,16 @@ # SubAccountTransfer ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Currency** | **string** | Transfer currency name | **SubAccount** | **string** | Sub account user ID | **Direction** | **string** | Transfer direction. to - transfer into sub account; from - transfer out from sub account | **Amount** | **string** | Transfer amount | -**Uid** | **string** | Main account user ID | [optional] -**Timest** | **string** | Transfer timestamp | [optional] -**Source** | **string** | Where the operation is initiated from | [optional] +**Uid** | **string** | Main account user ID | [optional] [readonly] +**Timest** | **string** | Transfer timestamp | [optional] [readonly] +**Source** | **string** | Where the operation is initiated from | [optional] [readonly] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/Ticker.md b/docs/Ticker.md index 44fb449..197a1aa 100644 --- a/docs/Ticker.md +++ b/docs/Ticker.md @@ -1,6 +1,7 @@ # Ticker ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **CurrencyPair** | **string** | Currency pair | [optional] diff --git a/docs/Trade.md b/docs/Trade.md index 8197a07..779829e 100644 --- a/docs/Trade.md +++ b/docs/Trade.md @@ -1,6 +1,7 @@ # Trade ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Id** | **string** | Trade ID | [optional] diff --git a/docs/TradeFee.md b/docs/TradeFee.md new file mode 100644 index 0000000..8f28d12 --- /dev/null +++ b/docs/TradeFee.md @@ -0,0 +1,17 @@ +# TradeFee + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**UserId** | **int64** | User ID | [optional] +**TakerFee** | **string** | taker fee rate | [optional] +**MakerFee** | **string** | maker fee rate | [optional] +**GtDiscount** | **bool** | Is GT deduction is enabled | [optional] +**GtTakerFee** | **string** | Taker fee rate if using GT deduction. It will be 0 if GT deduction is disabled | [optional] +**GtMakerFee** | **string** | Maker fee rate if using GT deduction. It will be 0 if GT deduction is disabled | [optional] +**LoanFee** | **string** | Loan fee rate of margin lending | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Transfer.md b/docs/Transfer.md index 2b41352..9a5d1b9 100644 --- a/docs/Transfer.md +++ b/docs/Transfer.md @@ -1,6 +1,7 @@ # Transfer ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Currency** | **string** | Transfer currency. For futures account, `currency` can be set to `POINT` or settle currency | diff --git a/docs/TriggerOrderResponse.md b/docs/TriggerOrderResponse.md index 83ae7d9..55a620e 100644 --- a/docs/TriggerOrderResponse.md +++ b/docs/TriggerOrderResponse.md @@ -1,6 +1,7 @@ # TriggerOrderResponse ## Properties + Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Id** | **int64** | Auto order ID | [optional] diff --git a/docs/WalletApi.md b/docs/WalletApi.md index 9b2a4b8..8c83bb3 100644 --- a/docs/WalletApi.md +++ b/docs/WalletApi.md @@ -1,64 +1,86 @@ -# \WalletApi +# WalletApi All URIs are relative to *https://api.gateio.ws/api/v4* Method | HTTP request | Description ------------- | ------------- | ------------- [**GetDepositAddress**](WalletApi.md#GetDepositAddress) | **Get** /wallet/deposit_address | Generate currency deposit address +[**ListWithdrawals**](WalletApi.md#ListWithdrawals) | **Get** /wallet/withdrawals | Retrieve withdrawal records [**ListDeposits**](WalletApi.md#ListDeposits) | **Get** /wallet/deposits | Retrieve deposit records +[**Transfer**](WalletApi.md#Transfer) | **Post** /wallet/transfers | Transfer between trading accounts [**ListSubAccountTransfers**](WalletApi.md#ListSubAccountTransfers) | **Get** /wallet/sub_account_transfers | Transfer records between main and sub accounts -[**ListWithdrawals**](WalletApi.md#ListWithdrawals) | **Get** /wallet/withdrawals | Retrieve withdrawal records -[**Transfer**](WalletApi.md#Transfer) | **Post** /wallet/transfers | Transfer between accounts [**TransferWithSubAccount**](WalletApi.md#TransferWithSubAccount) | **Post** /wallet/sub_account_transfers | Transfer between main and sub accounts -# **GetDepositAddress** +## GetDepositAddress + > DepositAddress GetDepositAddress(ctx, currency) + Generate currency deposit address ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **currency** | **string**| Currency name | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**currency** | **string**| Currency name | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.WalletApi -currency := "currency_example"; // string - Currency name - -result, _, err := api.GetDepositAddress(nil, currency) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + currency := "currency_example" // string - Currency name + + result, _, err := client.WalletApi.GetDepositAddress(ctx, currency) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type [**DepositAddress**](DepositAddress.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListDeposits** -> []LedgerRecord ListDeposits(ctx, optional) -Retrieve deposit records +## ListWithdrawals + +> []LedgerRecord ListWithdrawals(ctx, optional) + +Retrieve withdrawal records Record time range cannot exceed 30 days @@ -66,11 +88,12 @@ Record time range cannot exceed 30 days Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **optional** | ***ListDepositsOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. + **optional** | ***ListWithdrawalsOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a ListDepositsOpts struct + +Optional parameters are passed through a pointer to a ListWithdrawalsOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- @@ -83,54 +106,75 @@ Name | Type | Description | Notes ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.WalletApi - -result, _, err := api.ListDeposits(nil, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + + result, _, err := client.WalletApi.ListWithdrawals(ctx, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type [**[]LedgerRecord**](LedgerRecord.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListSubAccountTransfers** -> []SubAccountTransfer ListSubAccountTransfers(ctx, optional) -Transfer records between main and sub accounts +## ListDeposits -Record time range cannot exceed 30 days > Note: only records after 2020-04-10 can be retrieved +> []LedgerRecord ListDeposits(ctx, optional) + +Retrieve deposit records + +Record time range cannot exceed 30 days ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **optional** | ***ListSubAccountTransfersOpts** | optional parameters | nil if no parameters +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. + **optional** | ***ListDepositsOpts** | optional parameters | nil if no parameters ### Optional Parameters -Optional parameters are passed through a pointer to a ListSubAccountTransfersOpts struct + +Optional parameters are passed through a pointer to a ListDepositsOpts struct Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **subUid** | **optional.String**| Sub account user ID. Return records related to all sub accounts if not specified | + **currency** | **optional.String**| Filter by currency. Return all currency records if not specified | **from** | **optional.Int64**| Time range beginning, default to 7 days before current time | **to** | **optional.Int64**| Time range ending, default to current time | **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] @@ -139,178 +183,256 @@ Name | Type | Description | Notes ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.WalletApi - -result, _, err := api.ListSubAccountTransfers(nil, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + + result, _, err := client.WalletApi.ListDeposits(ctx, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]SubAccountTransfer**](SubAccountTransfer.md) +[**[]LedgerRecord**](LedgerRecord.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: Not defined +- **Accept**: application/json -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **ListWithdrawals** -> []LedgerRecord ListWithdrawals(ctx, optional) -Retrieve withdrawal records +## Transfer -Record time range cannot exceed 30 days +> Transfer(ctx, transfer) -### Required Parameters +Transfer between trading accounts -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **optional** | ***ListWithdrawalsOpts** | optional parameters | nil if no parameters +Transfer between different accounts. Currently support transfers between the following: 1. spot - margin 2. spot - futures(perpetual) 3. spot - delivery -### Optional Parameters -Optional parameters are passed through a pointer to a ListWithdrawalsOpts struct +### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **currency** | **optional.String**| Filter by currency. Return all currency records if not specified | - **from** | **optional.Int64**| Time range beginning, default to 7 days before current time | - **to** | **optional.Int64**| Time range ending, default to current time | - **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] - **offset** | **optional.Int32**| List offset, starting from 0 | [default to 0] +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**transfer** | [**Transfer**](Transfer.md)| | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.WalletApi - -result, _, err := api.ListWithdrawals(nil, nil) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + transfer := gateapi.Transfer{} // Transfer - + + result, _, err := client.WalletApi.Transfer(ctx, transfer) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type -[**[]LedgerRecord**](LedgerRecord.md) + (empty response body) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: Not defined - - **Accept**: application/json +- **Content-Type**: application/json +- **Accept**: Not defined -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -# **Transfer** -> Transfer(ctx, transfer) -Transfer between accounts +## ListSubAccountTransfers -Transfer between different accounts. Currently support transfers between the following: 1. spot - margin 2. spot - futures(perpetual) 2. spot - delivery +> []SubAccountTransfer ListSubAccountTransfers(ctx, optional) + +Transfer records between main and sub accounts + +Record time range cannot exceed 30 days > Note: only records after 2020-04-10 can be retrieved ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **transfer** | [**Transfer**](Transfer.md)| | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. + **optional** | ***ListSubAccountTransfersOpts** | optional parameters | nil if no parameters + +### Optional Parameters + +Optional parameters are passed through a pointer to a ListSubAccountTransfersOpts struct + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **subUid** | **optional.String**| Sub account user ID. Return records related to all sub accounts if not specified | + **from** | **optional.Int64**| Time range beginning, default to 7 days before current time | + **to** | **optional.Int64**| Time range ending, default to current time | + **limit** | **optional.Int32**| Maximum number of records returned in one list | [default to 100] + **offset** | **optional.Int32**| List offset, starting from 0 | [default to 0] ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.WalletApi -transfer := new (gateapi.Transfer); // Transfer - - -result, _, err := api.Transfer(nil, transfer) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + + result, _, err := client.WalletApi.ListSubAccountTransfers(ctx, nil) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type - (empty response body) +[**[]SubAccountTransfer**](SubAccountTransfer.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: Not defined +- **Content-Type**: Not defined +- **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +## TransferWithSubAccount -# **TransferWithSubAccount** > TransferWithSubAccount(ctx, subAccountTransfer) + Transfer between main and sub accounts ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **subAccountTransfer** | [**SubAccountTransfer**](SubAccountTransfer.md)| | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**subAccountTransfer** | [**SubAccountTransfer**](SubAccountTransfer.md)| | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.WalletApi -subAccountTransfer := new (gateapi.SubAccountTransfer); // SubAccountTransfer - - -result, _, err := api.TransferWithSubAccount(nil, subAccountTransfer) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + subAccountTransfer := gateapi.SubAccountTransfer{} // SubAccountTransfer - + + result, _, err := client.WalletApi.TransferWithSubAccount(ctx, subAccountTransfer) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type (empty response body) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: Not defined - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +- **Content-Type**: application/json +- **Accept**: Not defined +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) diff --git a/docs/WithdrawalApi.md b/docs/WithdrawalApi.md index 5db3f35..9435377 100644 --- a/docs/WithdrawalApi.md +++ b/docs/WithdrawalApi.md @@ -1,4 +1,4 @@ -# \WithdrawalApi +# WithdrawalApi All URIs are relative to *https://api.gateio.ws/api/v4* @@ -7,47 +7,66 @@ Method | HTTP request | Description [**Withdraw**](WithdrawalApi.md#Withdraw) | **Post** /withdrawals | Withdraw -# **Withdraw** +## Withdraw + > LedgerRecord Withdraw(ctx, ledgerRecord) + Withdraw ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **ledgerRecord** | [**LedgerRecord**](LedgerRecord.md)| | +**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. +**ledgerRecord** | [**LedgerRecord**](LedgerRecord.md)| | ### Example ```golang -client := gateapi.NewAPIClient(gateapi.NewConfiguration()) -// uncomment the next line if your are testing against other hosts -// client.ChangeBasePath("https://some-other-host") -client.SetKeySecret("YOUR API KEY", "YOUR API SECRET") -api := client.WithdrawalApi -ledgerRecord := new (gateapi.LedgerRecord); // LedgerRecord - - -result, _, err := api.Withdraw(nil, ledgerRecord) -if err != nil { - fmt.Println(err.Error()) -} else { - fmt.Println(result) +package main + +import ( + "context" + "fmt" + "gateapi" +) + +func main() { + client := gateapi.NewAPIClient(gateapi.NewConfiguration()) + // uncomment the next line if your are testing against other hosts + // client.ChangeBasePath("https://some-other-host") + ctx := context.WithValue(context.Background(), + gateapi.ContextGateAPIV4, + gateapi.GateAPIV4{ + Key: "YOUR_API_KEY", + Secret: "YOUR_API_SECRET", + } + ) + ledgerRecord := gateapi.LedgerRecord{} // LedgerRecord - + + result, _, err := client.WithdrawalApi.Withdraw(ctx, ledgerRecord) + if err != nil { + fmt.Println(err.Error()) + } else { + fmt.Println(result) + } } ``` + ### Return type [**LedgerRecord**](LedgerRecord.md) ### Authorization -Authentication with API key and secret is required +[apiv4](../README.md#apiv4) ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +- **Content-Type**: application/json +- **Accept**: application/json +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) +[[Back to Model list]](../README.md#documentation-for-models) +[[Back to README]](../README.md) diff --git a/git_push.sh b/git_push.sh index 8036b8c..ceb9d8b 100644 --- a/git_push.sh +++ b/git_push.sh @@ -1,11 +1,17 @@ #!/bin/sh # ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ # -# Usage example: /bin/sh ./git_push.sh wing328 openapi-pestore-perl "minor update" +# Usage example: /bin/sh ./git_push.sh wing328 openapi-pestore-perl "minor update" "gitlab.com" git_user_id=$1 git_repo_id=$2 release_note=$3 +git_host=$4 + +if [ "$git_host" = "" ]; then + git_host="github.com" + echo "[INFO] No command line input provided. Set \$git_host to $git_host" +fi if [ "$git_user_id" = "" ]; then git_user_id="gateio" @@ -28,7 +34,7 @@ git init # Adds the files in the local repository and stages them for commit. git add . -# Commits the tracked changes and prepares them to be pushed to a remote repository. +# Commits the tracked changes and prepares them to be pushed to a remote repository. git commit -m "$release_note" # Sets the new remote @@ -37,9 +43,9 @@ if [ "$git_remote" = "" ]; then # git remote not defined if [ "$GIT_TOKEN" = "" ]; then echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment." - git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git + git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git else - git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git + git remote add origin https://${git_user_id}:${GIT_TOKEN}@${git_host}/${git_user_id}/${git_repo_id}.git fi fi @@ -47,6 +53,6 @@ fi git pull origin master # Pushes (Forces) the changes in the local repository up to the remote repository -echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git" +echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git" git push origin master 2>&1 | grep -v 'To https' diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..30e185b --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module github.com/gateio/gateapi + +require ( + github.com/antihax/optional v1.0.0 +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..ee69520 --- /dev/null +++ b/go.sum @@ -0,0 +1,17 @@ +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/aws/aws-sdk-go v1.26.3 h1:szQdfJcUBAhQT0zZEx4sxoDuWb7iScoucxCiVxDmaBk= +github.com/aws/aws-sdk-go v1.26.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e h1:bRhVy7zSSasaqNksaRZiA5EEI+Ei4I1nO5Jh72wfHlg= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= diff --git a/model_batch_order.go b/model_batch_order.go index 51fdbe5..2be7649 100644 --- a/model_batch_order.go +++ b/model_batch_order.go @@ -11,7 +11,7 @@ package gateapi // Batch order details type BatchOrder struct { - // User defined information. If not empty, must follow the rules below: 1. prefixed with `t-` 2. no longer than 16 bytes without `t-` prefix 3. can only include 0-9, A-Z, a-z, underscore(_), hyphen(-) or dot(.) + // User defined information. If not empty, must follow the rules below: 1. prefixed with `t-` 2. no longer than 28 bytes without `t-` prefix 3. can only include 0-9, A-Z, a-z, underscore(_), hyphen(-) or dot(.) Text string `json:"text,omitempty"` // Whether order succeeds Succeeded bool `json:"succeeded,omitempty"` diff --git a/model_delivery_contract.go b/model_delivery_contract.go index 930f04d..6a87cac 100644 --- a/model_delivery_contract.go +++ b/model_delivery_contract.go @@ -14,7 +14,7 @@ type DeliveryContract struct { // Futures contract Name string `json:"name,omitempty"` // Underlying - Underling string `json:"underling,omitempty"` + Underlying string `json:"underlying,omitempty"` // Cycle type, e.g. WEEKLY, QUARTERLY Cycle string `json:"cycle,omitempty"` // Futures contract type diff --git a/model_futures_order.go b/model_futures_order.go index ba4c3b4..0e6fd1d 100644 --- a/model_futures_order.go +++ b/model_futures_order.go @@ -47,7 +47,7 @@ type FuturesOrder struct { Left int64 `json:"left,omitempty"` // Fill price of the order FillPrice string `json:"fill_price,omitempty"` - // User defined information. If not empty, must follow the rules below: 1. prefixed with `t-` 2. no longer than 16 bytes without `t-` prefix 3. can only include 0-9, A-Z, a-z, underscore(_), hyphen(-) or dot(.) Besides user defined information, reserved contents are listed below, denoting how the order is created: - web: from web - api: from API - app: from mobile phones - auto_deleveraging: from ADL - liquidation: from liquidation - insurance: from insurance + // User defined information. If not empty, must follow the rules below: 1. prefixed with `t-` 2. no longer than 28 bytes without `t-` prefix 3. can only include 0-9, A-Z, a-z, underscore(_), hyphen(-) or dot(.) Besides user defined information, reserved contents are listed below, denoting how the order is created: - web: from web - api: from API - app: from mobile phones - auto_deleveraging: from ADL - liquidation: from liquidation - insurance: from insurance Text string `json:"text,omitempty"` // Taker fee Tkfr string `json:"tkfr,omitempty"` diff --git a/model_margin_account.go b/model_margin_account.go index 95525b2..059fe67 100644 --- a/model_margin_account.go +++ b/model_margin_account.go @@ -12,7 +12,7 @@ package gateapi // Margin account detail. `base` refers to base currency, while `quotes to quote currency type MarginAccount struct { // Currency pair - CurrencyPair string `json:"currency_pair,omitempty"` - Base MarginAccountCurrency `json:"base,omitempty"` - Quote MarginAccountCurrency `json:"quote,omitempty"` + CurrencyPair string `json:"currency_pair,omitempty"` + Base MarginAccountCurrency `json:"base,omitempty"` + Quote MarginAccountCurrency `json:"quote,omitempty"` } diff --git a/model_margin_account_book.go b/model_margin_account_book.go new file mode 100644 index 0000000..0340792 --- /dev/null +++ b/model_margin_account_book.go @@ -0,0 +1,25 @@ +/* + * Gate API v4 + * + * APIv4 provides spot, margin and futures trading operations. There are public APIs to retrieve the real-time market statistics, and private APIs which needs authentication to trade on user's behalf. + * + * Contact: support@mail.gate.io + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package gateapi + +type MarginAccountBook struct { + // Balance change record ID + Id string `json:"id,omitempty"` + // Balance changed timestamp + Time string `json:"time,omitempty"` + // Currency changed + Currency string `json:"currency,omitempty"` + // Account currency pair + CurrencyPair string `json:"currency_pair,omitempty"` + // Amount changed. Positive value means transferring in, while negative out + Change string `json:"change,omitempty"` + // Balance after change + Balance string `json:"balance,omitempty"` +} diff --git a/model_gate_error_response.go b/model_open_orders.go similarity index 60% rename from model_gate_error_response.go rename to model_open_orders.go index d07ff34..8080dd3 100644 --- a/model_gate_error_response.go +++ b/model_open_orders.go @@ -9,10 +9,10 @@ package gateapi -// error response body format when status code is non-2xx -type GateErrorResponse struct { - // Error label - Label string `json:"label,omitempty"` - // Detailed error message - Message string `json:"message,omitempty"` +type OpenOrders struct { + // Currency pair + CurrencyPair string `json:"currency_pair,omitempty"` + // Total open orders in this currency pair + Total int32 `json:"total,omitempty"` + Orders []Order `json:"orders,omitempty"` } diff --git a/model_order.go b/model_order.go index e20a8b4..337d66c 100644 --- a/model_order.go +++ b/model_order.go @@ -13,7 +13,7 @@ package gateapi type Order struct { // Order ID Id string `json:"id,omitempty"` - // User defined information. If not empty, must follow the rules below: 1. prefixed with `t-` 2. no longer than 16 bytes without `t-` prefix 3. can only include 0-9, A-Z, a-z, underscore(_), hyphen(-) or dot(.) + // User defined information. If not empty, must follow the rules below: 1. prefixed with `t-` 2. no longer than 28 bytes without `t-` prefix 3. can only include 0-9, A-Z, a-z, underscore(_), hyphen(-) or dot(.) Text string `json:"text,omitempty"` // Order creation time CreateTime string `json:"create_time,omitempty"` diff --git a/model_position.go b/model_position.go index 73180dc..08c9625 100644 --- a/model_position.go +++ b/model_position.go @@ -50,6 +50,6 @@ type Position struct { // ADL ranking, range from 1 to 5 AdlRanking int32 `json:"adl_ranking,omitempty"` // Current open orders - PendingOrders int32 `json:"pending_orders,omitempty"` - CloseOrder PositionCloseOrder `json:"close_order,omitempty"` + PendingOrders int32 `json:"pending_orders,omitempty"` + CloseOrder PositionCloseOrder `json:"close_order,omitempty"` } diff --git a/model_trade_fee.go b/model_trade_fee.go new file mode 100644 index 0000000..277bd2a --- /dev/null +++ b/model_trade_fee.go @@ -0,0 +1,27 @@ +/* + * Gate API v4 + * + * APIv4 provides spot, margin and futures trading operations. There are public APIs to retrieve the real-time market statistics, and private APIs which needs authentication to trade on user's behalf. + * + * Contact: support@mail.gate.io + * Generated by: OpenAPI Generator (https://openapi-generator.tech) + */ + +package gateapi + +type TradeFee struct { + // User ID + UserId int64 `json:"user_id,omitempty"` + // taker fee rate + TakerFee string `json:"taker_fee,omitempty"` + // maker fee rate + MakerFee string `json:"maker_fee,omitempty"` + // Is GT deduction is enabled + GtDiscount bool `json:"gt_discount,omitempty"` + // Taker fee rate if using GT deduction. It will be 0 if GT deduction is disabled + GtTakerFee string `json:"gt_taker_fee,omitempty"` + // Maker fee rate if using GT deduction. It will be 0 if GT deduction is disabled + GtMakerFee string `json:"gt_maker_fee,omitempty"` + // Loan fee rate of margin lending + LoanFee string `json:"loan_fee,omitempty"` +} diff --git a/response.go b/response.go index e05b27c..85a7ef0 100644 --- a/response.go +++ b/response.go @@ -13,6 +13,7 @@ import ( "net/http" ) +// APIResponse stores the API response returned by the server. type APIResponse struct { *http.Response `json:"-"` Message string `json:"message,omitempty"` @@ -30,12 +31,14 @@ type APIResponse struct { Payload []byte `json:"-"` } +// NewAPIResponse returns a new APIResponse object. func NewAPIResponse(r *http.Response) *APIResponse { response := &APIResponse{Response: r} return response } +// NewAPIResponseWithError returns a new APIResponse object with the provided error message. func NewAPIResponseWithError(errorMessage string) *APIResponse { response := &APIResponse{Message: errorMessage}