diff --git a/account.go b/account.go index 012a947..9f9c03a 100644 --- a/account.go +++ b/account.go @@ -21,8 +21,8 @@ func (s *BybitClientRequest) GetTransactionLog(ctx context.Context, opts ...Requ endpoint: endpoint, secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetFeeRates(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -34,8 +34,8 @@ func (s *BybitClientRequest) GetFeeRates(ctx context.Context, opts ...RequestOpt endpoint: "/v5/account/fee-rate", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetAccountWallet(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -47,8 +47,8 @@ func (s *BybitClientRequest) GetAccountWallet(ctx context.Context, opts ...Reque endpoint: "/v5/account/wallet-balance", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetBorrowHistory(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -60,8 +60,8 @@ func (s *BybitClientRequest) GetBorrowHistory(ctx context.Context, opts ...Reque endpoint: "/v5/account/borrow-history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetCoinGreeks(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -73,8 +73,8 @@ func (s *BybitClientRequest) GetCoinGreeks(ctx context.Context, opts ...RequestO endpoint: "/v5/asset/coin-greeks", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetCollateralInfo(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -86,8 +86,8 @@ func (s *BybitClientRequest) GetCollateralInfo(ctx context.Context, opts ...Requ endpoint: "/v5/account/collateral-info", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetAccountInfo(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -96,8 +96,8 @@ func (s *BybitClientRequest) GetAccountInfo(ctx context.Context, opts ...Request endpoint: "/v5/account/info", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetMMPState(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -106,8 +106,8 @@ func (s *BybitClientRequest) GetMMPState(ctx context.Context, opts ...RequestOpt endpoint: "/v5/account/mmp-state", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetTransferableAmount(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -116,8 +116,8 @@ func (s *BybitClientRequest) GetTransferableAmount(ctx context.Context, opts ... endpoint: "/v5/account/withdrawal", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) SetSpotHedgeMode(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -126,8 +126,8 @@ func (s *BybitClientRequest) SetSpotHedgeMode(ctx context.Context, opts ...Reque endpoint: "/v5/account/set-hedging-mode", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) UpgradeToUTA(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -136,8 +136,8 @@ func (s *BybitClientRequest) UpgradeToUTA(ctx context.Context, opts ...RequestOp endpoint: "/v5/account/upgrade-to-uta", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) SetCollateralCoin(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -146,8 +146,8 @@ func (s *BybitClientRequest) SetCollateralCoin(ctx context.Context, opts ...Requ endpoint: "/v5/account/set-collateral-switch", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) BatchSetCollateralCoin(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -156,8 +156,8 @@ func (s *BybitClientRequest) BatchSetCollateralCoin(ctx context.Context, opts .. endpoint: "/v5/account/set-collateral-switch-batch", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) SetMarginMode(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -166,8 +166,8 @@ func (s *BybitClientRequest) SetMarginMode(ctx context.Context, opts ...RequestO endpoint: "/v5/account/set-margin-mode", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) SetMarketMakerProtection(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -176,8 +176,8 @@ func (s *BybitClientRequest) SetMarketMakerProtection(ctx context.Context, opts endpoint: "/v5/account/mmp-modify", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) ResetMarketMakerProtection(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -186,8 +186,8 @@ func (s *BybitClientRequest) ResetMarketMakerProtection(ctx context.Context, opt endpoint: "/v5/account/mmp-reset", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) RepayLiability(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -196,8 +196,8 @@ func (s *BybitClientRequest) RepayLiability(ctx context.Context, opts ...Request endpoint: "/v5/account/quick-repayment", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetDisconnectProtectionInfo(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -206,8 +206,8 @@ func (s *BybitClientRequest) GetDisconnectProtectionInfo(ctx context.Context, op endpoint: "/v5/account/query-dcp-info", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetSelfMarketProtectionGroup(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -216,6 +216,6 @@ func (s *BybitClientRequest) GetSelfMarketProtectionGroup(ctx context.Context, o endpoint: "/v5/account/smp-group", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } diff --git a/asset.go b/asset.go index b2e96bb..25d2e4f 100644 --- a/asset.go +++ b/asset.go @@ -12,8 +12,8 @@ func (s *BybitClientRequest) GetAssetOrderRecord(ctx context.Context, opts ...Re endpoint: "/v5/asset/exchange/order-record", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetAssetInfo(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -22,8 +22,8 @@ func (s *BybitClientRequest) GetAssetInfo(ctx context.Context, opts ...RequestOp endpoint: "/v5/asset/transfer/query-asset-info", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetDeliveryRecord(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -32,8 +32,8 @@ func (s *BybitClientRequest) GetDeliveryRecord(ctx context.Context, opts ...Requ endpoint: "/v5/asset/delivery-record", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetUsdcSettlement(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -42,8 +42,8 @@ func (s *BybitClientRequest) GetUsdcSettlement(ctx context.Context, opts ...Requ endpoint: "/v5/asset/settlement-record", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetAllCoinsBalance(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -52,8 +52,8 @@ func (s *BybitClientRequest) GetAllCoinsBalance(ctx context.Context, opts ...Req endpoint: "/v5/asset/transfer/query-account-coins-balance", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetSingleCoinsBalance(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -65,8 +65,8 @@ func (s *BybitClientRequest) GetSingleCoinsBalance(ctx context.Context, opts ... endpoint: "/v5/asset/transfer/query-account-coin-balance", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetTransferableCoin(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -78,8 +78,8 @@ func (s *BybitClientRequest) GetTransferableCoin(ctx context.Context, opts ...Re endpoint: "/v5/asset/transfer/query-transfer-coin-list", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) CreateInternalTransfer(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -91,8 +91,8 @@ func (s *BybitClientRequest) CreateInternalTransfer(ctx context.Context, opts .. endpoint: "/v5/asset/transfer/inter-transfer", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) CreateUniversalTransfer(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -104,8 +104,8 @@ func (s *BybitClientRequest) CreateUniversalTransfer(ctx context.Context, opts . endpoint: "/v5/asset/transfer/universal-transfer", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) SetDepositAccount(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -117,8 +117,8 @@ func (s *BybitClientRequest) SetDepositAccount(ctx context.Context, opts ...Requ endpoint: "/v5/asset/deposit/deposit-to-account", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) CreateWithdraw(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -130,8 +130,8 @@ func (s *BybitClientRequest) CreateWithdraw(ctx context.Context, opts ...Request endpoint: "/v5/asset/withdraw/create", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) CancelWithdraw(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -143,8 +143,8 @@ func (s *BybitClientRequest) CancelWithdraw(ctx context.Context, opts ...Request endpoint: "/v5/asset/withdraw/cancel", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetInternalTransferRecords(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -156,8 +156,8 @@ func (s *BybitClientRequest) GetInternalTransferRecords(ctx context.Context, opt endpoint: "/v5/asset/transfer/query-inter-transfer-list", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetUniversalTransferRecords(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -166,8 +166,8 @@ func (s *BybitClientRequest) GetUniversalTransferRecords(ctx context.Context, op endpoint: "/v5/asset/transfer/query-universal-transfer-list", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetSubAccUids(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -176,8 +176,8 @@ func (s *BybitClientRequest) GetSubAccUids(ctx context.Context, opts ...RequestO endpoint: "/v5/asset/transfer/query-sub-member-list", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetAllowedDepositCoin(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -186,8 +186,8 @@ func (s *BybitClientRequest) GetAllowedDepositCoin(ctx context.Context, opts ... endpoint: "/v5/asset/deposit/query-allowed-list", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetDepositRecords(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -196,8 +196,8 @@ func (s *BybitClientRequest) GetDepositRecords(ctx context.Context, opts ...Requ endpoint: "/v5/asset/deposit/query-record", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetSubMemberDepositRecords(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -206,8 +206,8 @@ func (s *BybitClientRequest) GetSubMemberDepositRecords(ctx context.Context, opt endpoint: "/v5/asset/deposit/query-sub-member-record", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetInternalDepositRecords(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -216,8 +216,8 @@ func (s *BybitClientRequest) GetInternalDepositRecords(ctx context.Context, opts endpoint: "/v5/asset/deposit/query-internal-record", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetMasterAccDepositAddress(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -226,8 +226,8 @@ func (s *BybitClientRequest) GetMasterAccDepositAddress(ctx context.Context, opt endpoint: "/v5/asset/deposit/query-address", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetSubAccDepositAddress(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -236,8 +236,8 @@ func (s *BybitClientRequest) GetSubAccDepositAddress(ctx context.Context, opts . endpoint: "/v5/asset/deposit/query-sub-member-address", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetCoinInfo(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -246,8 +246,8 @@ func (s *BybitClientRequest) GetCoinInfo(ctx context.Context, opts ...RequestOpt endpoint: "/v5/asset/coin/query-info", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetWithdrawalAmount(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -256,8 +256,8 @@ func (s *BybitClientRequest) GetWithdrawalAmount(ctx context.Context, opts ...Re endpoint: "/v5/asset/withdraw/withdrawable-amount", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetWithdrawalRecords(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -266,8 +266,8 @@ func (s *BybitClientRequest) GetWithdrawalRecords(ctx context.Context, opts ...R endpoint: "/v5/asset/withdraw/query-record", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetExchangeEntityList(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -276,8 +276,8 @@ func (s *BybitClientRequest) GetExchangeEntityList(ctx context.Context, opts ... endpoint: "/v5/asset/withdraw/vasp/list", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetConvertCoinList(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -286,8 +286,8 @@ func (s *BybitClientRequest) GetConvertCoinList(ctx context.Context, opts ...Req endpoint: "/v5/asset/exchange/query-coin-list", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetConvertStatus(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -296,8 +296,8 @@ func (s *BybitClientRequest) GetConvertStatus(ctx context.Context, opts ...Reque endpoint: "/v5/asset/exchange/convert-result-query", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetConvertHistory(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -306,8 +306,8 @@ func (s *BybitClientRequest) GetConvertHistory(ctx context.Context, opts ...Requ endpoint: "/v5/asset/exchange/query-convert-history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) RequestConvertQuote(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -316,8 +316,8 @@ func (s *BybitClientRequest) RequestConvertQuote(ctx context.Context, opts ...Re endpoint: "/v5/asset/exchange/quote-apply", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) ConfirmConvertQuote(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -326,6 +326,6 @@ func (s *BybitClientRequest) ConfirmConvertQuote(ctx context.Context, opts ...Re endpoint: "/v5/asset/exchange/convert-execute", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } diff --git a/broker.go b/broker.go index c4dcb75..0ec3627 100644 --- a/broker.go +++ b/broker.go @@ -15,8 +15,8 @@ func (s *BybitClientRequest) GetBrokerEarning(ctx context.Context, opts ...Reque endpoint: "/v5/broker/earnings-info", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetBrokerAccountInfo(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -28,8 +28,8 @@ func (s *BybitClientRequest) GetBrokerAccountInfo(ctx context.Context, opts ...R endpoint: "/v5/broker/account-info", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetAllSubMembersDepositRecords(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -41,8 +41,8 @@ func (s *BybitClientRequest) GetAllSubMembersDepositRecords(ctx context.Context, endpoint: "/v5/broker/asset/query-sub-member-deposit-record", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Broker Reward @@ -55,8 +55,8 @@ func (s *BybitClientRequest) QueryBrokerVoucherSpec(ctx context.Context, opts .. endpoint: "/v5/broker/award/info", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) DistributeBrokerVoucher(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -68,8 +68,8 @@ func (s *BybitClientRequest) DistributeBrokerVoucher(ctx context.Context, opts . endpoint: "/v5/broker/award/distribute-award", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) QueryDistributedBrokerVoucher(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -81,8 +81,8 @@ func (s *BybitClientRequest) QueryDistributedBrokerVoucher(ctx context.Context, endpoint: "/v5/broker/award/distribution-record", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Broker Reward End diff --git a/bybit_api_client.go b/bybit_api_client.go index 73ec11f..7d60e1a 100644 --- a/bybit_api_client.go +++ b/bybit_api_client.go @@ -7,7 +7,6 @@ import ( "crypto/sha256" "encoding/hex" "fmt" - "github.com/bybit-exchange/bybit.go.api/models" "io" "log" "net/http" @@ -16,6 +15,8 @@ import ( "strconv" "time" + "github.com/bybit-exchange/bybit.go.api/models" + "github.com/bitly/go-simplejson" "github.com/bybit-exchange/bybit.go.api/handlers" jsoniter "github.com/json-iterator/go" @@ -35,15 +36,16 @@ type ServerResponse struct { Result interface{} `json:"result"` RetExtInfo struct{} `json:"retExtInfo"` Time int64 `json:"time"` + Headers http.Header `json:"-"` // Response headers for rate limit tracking } -func SendRequest(ctx context.Context, opts []RequestOption, r *request, s *BybitClientRequest, err error) ([]byte, error) { +func SendRequest(ctx context.Context, opts []RequestOption, r *request, s *BybitClientRequest, err error) ([]byte, http.Header, error) { r.setParams(s.params) - data, err := s.c.callAPI(ctx, r, opts...) - return data, err + data, headers, err := s.c.callAPI(ctx, r, opts...) + return data, headers, err } -func GetServerResponse(err error, data []byte) (*ServerResponse, error) { +func GetServerResponse(err error, data []byte, headers http.Header) (*ServerResponse, error) { if err != nil { return nil, err } @@ -52,10 +54,13 @@ func GetServerResponse(err error, data []byte) (*ServerResponse, error) { if err != nil { return nil, err } + if headers != nil { + resp.Headers = headers + } return resp, nil } -func GetBatchOrderServerResponse(err error, data []byte) (*models.BatchOrderServerResponse, error) { +func GetBatchOrderServerResponse(err error, data []byte, headers http.Header) (*models.BatchOrderServerResponse, error) { if err != nil { return nil, err } @@ -64,6 +69,9 @@ func GetBatchOrderServerResponse(err error, data []byte) (*models.BatchOrderServ if err != nil { return nil, err } + if headers != nil { + resp.Headers = headers + } return resp, nil } @@ -219,14 +227,14 @@ func (c *Client) parseRequest(r *request, opts ...RequestOption) (err error) { return nil } -func (c *Client) callAPI(ctx context.Context, r *request, opts ...RequestOption) (data []byte, err error) { +func (c *Client) callAPI(ctx context.Context, r *request, opts ...RequestOption) (data []byte, headers http.Header, err error) { err = c.parseRequest(r, opts...) if err != nil { - return nil, err + return nil, nil, err } req, err := http.NewRequest(r.method, r.fullURL, r.body) if err != nil { - return []byte{}, err + return []byte{}, nil, err } req = req.WithContext(ctx) req.Header = r.header @@ -237,11 +245,11 @@ func (c *Client) callAPI(ctx context.Context, r *request, opts ...RequestOption) } res, err := f(req) if err != nil { - return []byte{}, err + return []byte{}, nil, err } data, err = io.ReadAll(res.Body) if err != nil { - return []byte{}, err + return []byte{}, nil, err } defer func() { cerr := res.Body.Close() @@ -263,9 +271,9 @@ func (c *Client) callAPI(ctx context.Context, r *request, opts ...RequestOption) if e != nil { c.debug("failed to unmarshal json: %s", e) } - return nil, apiErr + return nil, res.Header, apiErr } - return data, nil + return data, res.Header, nil } // NewPlaceOrderService quick order endpoint diff --git a/crypto_loan.go b/crypto_loan.go index 860cc9c..197fd4f 100644 --- a/crypto_loan.go +++ b/crypto_loan.go @@ -13,8 +13,8 @@ func (s *BybitClientRequest) GetBorrowableCoins(ctx context.Context, opts ...Req endpoint: "/v5/crypto-loan-common/loanable-data", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetCollateralCoins(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -23,8 +23,8 @@ func (s *BybitClientRequest) GetCollateralCoins(ctx context.Context, opts ...Req endpoint: "/v5/crypto-loan-common/collateral-data", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetMaxCollateralAmount(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -33,8 +33,8 @@ func (s *BybitClientRequest) GetMaxCollateralAmount(ctx context.Context, opts .. endpoint: "/v5/crypto-loan-common/max-collateral-amount", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) AdjustCollateralAmount(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -43,8 +43,8 @@ func (s *BybitClientRequest) AdjustCollateralAmount(ctx context.Context, opts .. endpoint: "/v5/crypto-loan-common/adjust-ltv", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetCollateralAdjustHistory(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -53,8 +53,8 @@ func (s *BybitClientRequest) GetCollateralAdjustHistory(ctx context.Context, opt endpoint: "/v5/crypto-loan-common/adjustment-history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetCryptoLoanPosition(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -63,8 +63,8 @@ func (s *BybitClientRequest) GetCryptoLoanPosition(ctx context.Context, opts ... endpoint: "/v5/crypto-loan-common/position", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Flexible loan @@ -75,8 +75,8 @@ func (s *BybitClientRequest) BorrowFlexibleLoan(ctx context.Context, opts ...Req endpoint: "/v5/crypto-loan-flexible/borrow", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) RepayFlexibleLoan(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -85,8 +85,8 @@ func (s *BybitClientRequest) RepayFlexibleLoan(ctx context.Context, opts ...Requ endpoint: "/v5/crypto-loan-flexible/repay", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetFlexibleLoans(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -95,8 +95,8 @@ func (s *BybitClientRequest) GetFlexibleLoans(ctx context.Context, opts ...Reque endpoint: "/v5/crypto-loan-flexible/ongoing-coin", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetFlexibleBorrowHistory(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -105,8 +105,8 @@ func (s *BybitClientRequest) GetFlexibleBorrowHistory(ctx context.Context, opts endpoint: "/v5/crypto-loan-flexible/borrow-history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetFlexibleRepaymentHistory(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -115,8 +115,8 @@ func (s *BybitClientRequest) GetFlexibleRepaymentHistory(ctx context.Context, op endpoint: "/v5/crypto-loan-flexible/repayment-history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Fixed Loan @@ -127,8 +127,8 @@ func (s *BybitClientRequest) GetFixedSupplyingMarket(ctx context.Context, opts . endpoint: "/v5/crypto-loan-fixed/supply-order-quote", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetFixedBorrowingMarket(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -137,8 +137,8 @@ func (s *BybitClientRequest) GetFixedBorrowingMarket(ctx context.Context, opts . endpoint: "/v5/crypto-loan-fixed/borrow-order-quote", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetFixedBorrowHistory(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -147,8 +147,8 @@ func (s *BybitClientRequest) GetFixedBorrowHistory(ctx context.Context, opts ... endpoint: "/v5/crypto-loan-fixed/borrow-order-info", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetFixedSupplyHistory(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -157,8 +157,8 @@ func (s *BybitClientRequest) GetFixedSupplyHistory(ctx context.Context, opts ... endpoint: "/v5/crypto-loan-fixed/supply-order-info", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetFixedBorrowContract(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -167,8 +167,8 @@ func (s *BybitClientRequest) GetFixedBorrowContract(ctx context.Context, opts .. endpoint: "/v5/crypto-loan-fixed/borrow-contract-info", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetFixedSupplyContract(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -177,8 +177,8 @@ func (s *BybitClientRequest) GetFixedSupplyContract(ctx context.Context, opts .. endpoint: "/v5/crypto-loan-fixed/supply-contract-info", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) FixedLoanRepaymentHistory(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -187,8 +187,8 @@ func (s *BybitClientRequest) FixedLoanRepaymentHistory(ctx context.Context, opts endpoint: "/v5/crypto-loan-fixed/repayment-history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) BorrowFixedLoan(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -197,8 +197,8 @@ func (s *BybitClientRequest) BorrowFixedLoan(ctx context.Context, opts ...Reques endpoint: "/v5/crypto-loan-fixed/borrow", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) RepayFixedLoan(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -207,8 +207,8 @@ func (s *BybitClientRequest) RepayFixedLoan(ctx context.Context, opts ...Request endpoint: "/v5/crypto-loan-fixed/fully-repay", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) CancelBorrowFixedLoan(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -217,8 +217,8 @@ func (s *BybitClientRequest) CancelBorrowFixedLoan(ctx context.Context, opts ... endpoint: "/v5/crypto-loan-fixed/borrow-order-cancel", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) CancelSupplyFixedLoan(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -227,8 +227,8 @@ func (s *BybitClientRequest) CancelSupplyFixedLoan(ctx context.Context, opts ... endpoint: "/v5/crypto-loan-fixed/supply-order-cancel", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) SupplyFixedLoan(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -237,6 +237,6 @@ func (s *BybitClientRequest) SupplyFixedLoan(ctx context.Context, opts ...Reques endpoint: "/v5/crypto-loan-fixed/supply", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } diff --git a/ins_loan.go b/ins_loan.go index ca0566c..3a8f09f 100644 --- a/ins_loan.go +++ b/ins_loan.go @@ -15,8 +15,8 @@ func (s *BybitClientRequest) GetInsLoanInfo(ctx context.Context, opts ...Request endpoint: "/v5/ins-loan/product-infos", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetInsMarginCoinInfo(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -28,8 +28,8 @@ func (s *BybitClientRequest) GetInsMarginCoinInfo(ctx context.Context, opts ...R endpoint: "/v5/ins-loan/ensure-tokens-convert", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetInsLoanOrders(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -41,8 +41,8 @@ func (s *BybitClientRequest) GetInsLoanOrders(ctx context.Context, opts ...Reque endpoint: "/v5/ins-loan/loan-order", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetInsRepayOrders(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -54,8 +54,8 @@ func (s *BybitClientRequest) GetInsRepayOrders(ctx context.Context, opts ...Requ endpoint: "/v5/ins-loan/repaid-history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetInsLoanToValue(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -64,8 +64,8 @@ func (s *BybitClientRequest) GetInsLoanToValue(ctx context.Context, opts ...Requ endpoint: "/v5/ins-loan/ltv-convert", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) AssociateInsLoan(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -74,8 +74,8 @@ func (s *BybitClientRequest) AssociateInsLoan(ctx context.Context, opts ...Reque endpoint: "/v5/ins-loan/association-uid", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Crypto Loan @@ -87,8 +87,8 @@ func (s *BybitClientRequest) BorrowCryptoLoan(ctx context.Context, opts ...Reque endpoint: "/v5/crypto-loan/borrow", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: RepayCryptoLoan is deprecated. @@ -98,8 +98,8 @@ func (s *BybitClientRequest) RepayCryptoLoan(ctx context.Context, opts ...Reques endpoint: "/v5/crypto-loan/repay", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: AdjustCryptoLoanToValue is deprecated. @@ -109,8 +109,8 @@ func (s *BybitClientRequest) AdjustCryptoLoanToValue(ctx context.Context, opts . endpoint: "/v5/crypto-loan/adjust-ltv", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetCryptoLoanCollateralInfo is deprecated. @@ -120,8 +120,8 @@ func (s *BybitClientRequest) GetCryptoLoanCollateralInfo(ctx context.Context, op endpoint: "/v5/crypto-loan/collateral-data", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetCryptoLoanBorrowInfo is deprecated. @@ -131,8 +131,8 @@ func (s *BybitClientRequest) GetCryptoLoanBorrowInfo(ctx context.Context, opts . endpoint: "/v5/crypto-loan/loanable-data", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetCryptoLoanBorrowLimit is deprecated. @@ -142,8 +142,8 @@ func (s *BybitClientRequest) GetCryptoLoanBorrowLimit(ctx context.Context, opts endpoint: "/v5/crypto-loan/borrowable-collateralisable-number", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetCryptoLoanUnpaidLoans is deprecated. @@ -153,8 +153,8 @@ func (s *BybitClientRequest) GetCryptoLoanUnpaidLoans(ctx context.Context, opts endpoint: "/v5/crypto-loan/ongoing-orders", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetCryptoLoanRepaymentHistory is deprecated. @@ -164,8 +164,8 @@ func (s *BybitClientRequest) GetCryptoLoanRepaymentHistory(ctx context.Context, endpoint: "/v5/crypto-loan/repayment-history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetCryptoLoanBorrowHistory is deprecated. @@ -175,8 +175,8 @@ func (s *BybitClientRequest) GetCryptoLoanBorrowHistory(ctx context.Context, opt endpoint: "/v5/crypto-loan/borrow-history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetCryptoLoanMaxCollateral is deprecated. @@ -186,8 +186,8 @@ func (s *BybitClientRequest) GetCryptoLoanMaxCollateral(ctx context.Context, opt endpoint: "/v5/crypto-loan/borrow-history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetCryptoLoanAdjustHistory is deprecated. @@ -197,8 +197,8 @@ func (s *BybitClientRequest) GetCryptoLoanAdjustHistory(ctx context.Context, opt endpoint: "/v5/crypto-loan/adjustment-history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetCryptoLoanCompletedHistory is deprecated. @@ -208,8 +208,8 @@ func (s *BybitClientRequest) GetCryptoLoanCompletedHistory(ctx context.Context, endpoint: "/v5/crypto-loan/borrow-history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // C2C Loan End @@ -224,8 +224,8 @@ func (s *BybitClientRequest) GetC2cLendingCoinInfo(ctx context.Context, opts ... endpoint: "/v5/lending/info", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetC2cLendingOrders is deprecated. @@ -238,8 +238,8 @@ func (s *BybitClientRequest) GetC2cLendingOrders(ctx context.Context, opts ...Re endpoint: "/v5/lending/history-order", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetC2cLendingAccountInfo is deprecated. @@ -252,8 +252,8 @@ func (s *BybitClientRequest) GetC2cLendingAccountInfo(ctx context.Context, opts endpoint: "/v5/lending/account", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: C2cDepositFunds is deprecated. @@ -266,8 +266,8 @@ func (s *BybitClientRequest) C2cDepositFunds(ctx context.Context, opts ...Reques endpoint: "/v5/lending/purchase", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: C2cRedeemFunds is deprecated. @@ -280,8 +280,8 @@ func (s *BybitClientRequest) C2cRedeemFunds(ctx context.Context, opts ...Request endpoint: "/v5/lending/redeem", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: C2cCancelRedeemFunds is deprecated. @@ -294,6 +294,6 @@ func (s *BybitClientRequest) C2cCancelRedeemFunds(ctx context.Context, opts ...R endpoint: "/v5/lending/redeem-cancel", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } diff --git a/market_service.go b/market_service.go index 85543c0..a6c8ccb 100644 --- a/market_service.go +++ b/market_service.go @@ -14,8 +14,8 @@ func (s *BybitClientRequest) GetServerTime(ctx context.Context, opts ...RequestO endpoint: "/v5/market/time", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetMarketKline(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -24,8 +24,8 @@ func (s *BybitClientRequest) GetMarketKline(ctx context.Context, opts ...Request endpoint: "/v5/market/kline", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func GetMarketKlineResponse(err error, data []byte, res *models.MarketKlineResponse) (*models.MarketKlineResponse, *models.MarketKlineResponse, error) { @@ -64,8 +64,8 @@ func (s *BybitClientRequest) GetMarkPriceKline(ctx context.Context, opts ...Requ endpoint: "/v5/market/mark-price-kline", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func GetMarkPriceKline(err error, data []byte, res *models.MarketMarkPriceKlineResponse) (*models.MarketMarkPriceKlineResponse, error) { @@ -103,8 +103,8 @@ func (s *BybitClientRequest) GetIndexPriceKline(ctx context.Context, opts ...Req endpoint: "/v5/market/mark-price-kline", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func GetIndexPriceKline(err error, data []byte, res *models.MarketIndexPriceKlineResponse) (*models.MarketIndexPriceKlineResponse, error) { @@ -142,8 +142,8 @@ func (s *BybitClientRequest) GetPremiumIndexPriceKline(ctx context.Context, opts endpoint: "/v5/market/mark-price-kline", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func GetPremiumIndexKline(err error, data []byte, res *models.MarketPremiumIndexPriceKlineResponse) (*models.MarketPremiumIndexPriceKlineResponse, error) { @@ -181,8 +181,8 @@ func (s *BybitClientRequest) GetInstrumentInfo(ctx context.Context, opts ...Requ endpoint: "/v5/market/instruments-info", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetOrderBookInfo(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -191,8 +191,8 @@ func (s *BybitClientRequest) GetOrderBookInfo(ctx context.Context, opts ...Reque endpoint: "/v5/market/orderbook", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetMarketTickers(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -201,8 +201,8 @@ func (s *BybitClientRequest) GetMarketTickers(ctx context.Context, opts ...Reque endpoint: "/v5/market/tickers", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetFundingRateHistory(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -211,8 +211,8 @@ func (s *BybitClientRequest) GetFundingRateHistory(ctx context.Context, opts ... endpoint: "/v5/market/funding/history", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetPublicRecentTrades(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -221,8 +221,8 @@ func (s *BybitClientRequest) GetPublicRecentTrades(ctx context.Context, opts ... endpoint: "/v5/market/recent-trade", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetOpenInterests(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -231,8 +231,8 @@ func (s *BybitClientRequest) GetOpenInterests(ctx context.Context, opts ...Reque endpoint: "/v5/market/open-interest", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetHistoryVolatility(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -241,8 +241,8 @@ func (s *BybitClientRequest) GetHistoryVolatility(ctx context.Context, opts ...R endpoint: "/v5/market/historical-volatility", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetMarketInsurance(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -251,8 +251,8 @@ func (s *BybitClientRequest) GetMarketInsurance(ctx context.Context, opts ...Req endpoint: "/v5/market/insurance", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetMarketRiskLimits(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -261,8 +261,8 @@ func (s *BybitClientRequest) GetMarketRiskLimits(ctx context.Context, opts ...Re endpoint: "/v5/market/risk-limit", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetDeliveryPrice(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -271,8 +271,8 @@ func (s *BybitClientRequest) GetDeliveryPrice(ctx context.Context, opts ...Reque endpoint: "/v5/market/delivery-price", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetLongShortRatio(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -281,8 +281,8 @@ func (s *BybitClientRequest) GetLongShortRatio(ctx context.Context, opts ...Requ endpoint: "/v5/market/account-ratio", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetOrderPriceLimit(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -291,6 +291,6 @@ func (s *BybitClientRequest) GetOrderPriceLimit(ctx context.Context, opts ...Req endpoint: "/v5/market/price-limit", secType: secTypeNone, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } diff --git a/models/orderResponse.go b/models/orderResponse.go index 9c982c8..ad87a34 100644 --- a/models/orderResponse.go +++ b/models/orderResponse.go @@ -1,5 +1,7 @@ package models +import "net/http" + type OrderResult struct { OrderId string `json:"orderId"` OrderLinkId string `json:"orderLinkId"` @@ -88,5 +90,6 @@ type BatchOrderServerResponse struct { Msg string `json:"msg"` } `json:"list"` } `json:"retExtInfo"` - Time int64 `json:"time"` + Time int64 `json:"time"` + Headers http.Header `json:"-"` } diff --git a/order.go b/order.go index 8f7944b..a8889d8 100644 --- a/order.go +++ b/order.go @@ -262,7 +262,7 @@ func (order *Order) Do(ctx context.Context, opts ...RequestOption) (res *ServerR m["slippageToleranceType"] = *order.slippageToleranceType } r.setParams(m) - data, err := order.c.callAPI(ctx, r, opts...) + data, headers, err := order.c.callAPI(ctx, r, opts...) if err != nil { return nil, err } @@ -271,5 +271,8 @@ func (order *Order) Do(ctx context.Context, opts ...RequestOption) (res *ServerR if err != nil { return nil, err } + if headers != nil { + res.Headers = headers + } return res, nil } diff --git a/position.go b/position.go index 18ac5ff..b0f5329 100644 --- a/position.go +++ b/position.go @@ -15,8 +15,8 @@ func (s *BybitClientRequest) GetPositionList(ctx context.Context, opts ...Reques endpoint: "/v5/position/list", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) SetPositionLeverage(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -28,8 +28,8 @@ func (s *BybitClientRequest) SetPositionLeverage(ctx context.Context, opts ...Re endpoint: "/v5/position/set-leverage", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) SwitchPositionMargin(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -41,8 +41,8 @@ func (s *BybitClientRequest) SwitchPositionMargin(ctx context.Context, opts ...R endpoint: "/v5/position/switch-isolated", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: SetPositionTpslMode is deprecated. @@ -56,8 +56,8 @@ func (s *BybitClientRequest) SetPositionTpslMode(ctx context.Context, opts ...Re endpoint: "/v5/position/set-tpsl-mode", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) SwitchPositionMode(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -69,8 +69,8 @@ func (s *BybitClientRequest) SwitchPositionMode(ctx context.Context, opts ...Req endpoint: "/v5/position/switch-mode", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: SetPositionRiskLimit is deprecated. @@ -84,8 +84,8 @@ func (s *BybitClientRequest) SetPositionRiskLimit(ctx context.Context, opts ...R endpoint: "/v5/position/set-risk-limit", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) SetPositionTradingStop(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -97,8 +97,8 @@ func (s *BybitClientRequest) SetPositionTradingStop(ctx context.Context, opts .. endpoint: "/v5/position/trading-stop", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) SetPositionAutoMargin(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -110,8 +110,8 @@ func (s *BybitClientRequest) SetPositionAutoMargin(ctx context.Context, opts ... endpoint: "/v5/position/set-auto-add-margin", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) UpdatePositionMargin(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -123,8 +123,8 @@ func (s *BybitClientRequest) UpdatePositionMargin(ctx context.Context, opts ...R endpoint: "/v5/position/add-margin", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) ConfirmPositionRiskLimit(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -136,8 +136,8 @@ func (s *BybitClientRequest) ConfirmPositionRiskLimit(ctx context.Context, opts endpoint: "/v5/position/confirm-pending-mmr", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) MovePosition(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -149,8 +149,8 @@ func (s *BybitClientRequest) MovePosition(ctx context.Context, opts ...RequestOp endpoint: "/v5/position/move-positions", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetMovePositionHistory(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -162,8 +162,8 @@ func (s *BybitClientRequest) GetMovePositionHistory(ctx context.Context, opts .. endpoint: "/v5/position/move-history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetClosePnl(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -175,8 +175,8 @@ func (s *BybitClientRequest) GetClosePnl(ctx context.Context, opts ...RequestOpt endpoint: "/v5/position/closed-pnl", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetOptionClosedPosition(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -188,6 +188,6 @@ func (s *BybitClientRequest) GetOptionClosedPosition(ctx context.Context, opts . endpoint: "/v5/position/get-closed-positions", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } diff --git a/pre_upgrade.go b/pre_upgrade.go index b1dff51..b6eac17 100644 --- a/pre_upgrade.go +++ b/pre_upgrade.go @@ -15,8 +15,8 @@ func (s *BybitClientRequest) GetPreUpgradeOrderHistory(ctx context.Context, opts endpoint: "/v5/pre-upgrade/order/history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetPreUpgradeTradeHistory(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -28,8 +28,8 @@ func (s *BybitClientRequest) GetPreUpgradeTradeHistory(ctx context.Context, opts endpoint: "/v5/pre-upgrade/execution/list", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetPreUpgradeClosedPnl(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -41,8 +41,8 @@ func (s *BybitClientRequest) GetPreUpgradeClosedPnl(ctx context.Context, opts .. endpoint: "/v5/pre-upgrade/position/closed-pnl", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetPreUpgradeTransactionLog(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -54,8 +54,8 @@ func (s *BybitClientRequest) GetPreUpgradeTransactionLog(ctx context.Context, op endpoint: "/v5/pre-upgrade/account/transaction-log", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetPreUpgradeOptionDeliveryRecord(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -67,8 +67,8 @@ func (s *BybitClientRequest) GetPreUpgradeOptionDeliveryRecord(ctx context.Conte endpoint: "/v5/pre-upgrade/asset/delivery-record", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetPreUpgradeUsdcSettlement(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -80,6 +80,6 @@ func (s *BybitClientRequest) GetPreUpgradeUsdcSettlement(ctx context.Context, op endpoint: "/v5/pre-upgrade/asset/settlement-record", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } diff --git a/saving.go b/saving.go index 2152635..cff1199 100644 --- a/saving.go +++ b/saving.go @@ -15,8 +15,8 @@ func (s *BybitClientRequest) GetEarnProductInfo(ctx context.Context, opts ...Req endpoint: "/v5/earn/product", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) RedeemEarnOrder(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -25,8 +25,8 @@ func (s *BybitClientRequest) RedeemEarnOrder(ctx context.Context, opts ...Reques endpoint: "/v5/earn/place-order", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetEarnRedeemOrder(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -35,8 +35,8 @@ func (s *BybitClientRequest) GetEarnRedeemOrder(ctx context.Context, opts ...Req endpoint: "/v5/earn/order", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetEarnRedeemPosition(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -45,6 +45,6 @@ func (s *BybitClientRequest) GetEarnRedeemPosition(ctx context.Context, opts ... endpoint: "/v5/earn/position", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } diff --git a/spot_leverage.go b/spot_leverage.go index 4653790..9987948 100644 --- a/spot_leverage.go +++ b/spot_leverage.go @@ -16,8 +16,8 @@ func (s *BybitClientRequest) GetLeverageTokenInfo(ctx context.Context, opts ...R endpoint: "/v5/spot-lever-token/info", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetLeverageTokenOrders is deprecated. @@ -30,8 +30,8 @@ func (s *BybitClientRequest) GetLeverageTokenOrders(ctx context.Context, opts .. endpoint: "/v5/spot-lever-token/order-record", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetLeverageTokenMarket is deprecated. @@ -44,8 +44,8 @@ func (s *BybitClientRequest) GetLeverageTokenMarket(ctx context.Context, opts .. endpoint: "/v5/spot-lever-token/reference", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: PurchaseLeverageToken is deprecated. @@ -58,8 +58,8 @@ func (s *BybitClientRequest) PurchaseLeverageToken(ctx context.Context, opts ... endpoint: "/v5/spot-lever-token/purchase", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: RedeemLeverageToken is deprecated. @@ -72,6 +72,6 @@ func (s *BybitClientRequest) RedeemLeverageToken(ctx context.Context, opts ...Re endpoint: "/v5/spot-lever-token/redeem", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } diff --git a/spot_margin.go b/spot_margin.go index 4a6c9c8..c6ff4cc 100644 --- a/spot_margin.go +++ b/spot_margin.go @@ -3,8 +3,9 @@ package bybit_connector import ( "context" "errors" - "github.com/bybit-exchange/bybit.go.api/handlers" "net/http" + + "github.com/bybit-exchange/bybit.go.api/handlers" ) func (s *BybitClientRequest) GetSpotMarginData(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -22,8 +23,8 @@ func (s *BybitClientRequest) GetSpotMarginData(ctx context.Context, opts ...Requ endpoint: endpoint, secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetTieredCollateralData(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -35,8 +36,8 @@ func (s *BybitClientRequest) GetTieredCollateralData(ctx context.Context, opts . endpoint: "/v5/spot-margin-trade/collateral", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetSpotMarginInterests(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -55,8 +56,8 @@ func (s *BybitClientRequest) GetSpotMarginInterests(ctx context.Context, opts .. endpoint: endpoint, secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) SetSpotMarginLeverage(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -72,7 +73,7 @@ func (s *BybitClientRequest) SetSpotMarginLeverage(ctx context.Context, opts ... secType: secTypeSigned, } r.setParams(s.params) - data, err := s.c.callAPI(ctx, r, opts...) + data, headers, err := s.c.callAPI(ctx, r, opts...) if err != nil { return nil, err } @@ -81,6 +82,9 @@ func (s *BybitClientRequest) SetSpotMarginLeverage(ctx context.Context, opts ... if err != nil { return nil, err } + if headers != nil { + res.Headers = headers + } return res, nil } @@ -97,7 +101,7 @@ func (s *BybitClientRequest) GetSpotMarginState(ctx context.Context, opts ...Req secType: secTypeSigned, } r.setParams(s.params) - data, err := s.c.callAPI(ctx, r, opts...) + data, headers, err := s.c.callAPI(ctx, r, opts...) if err != nil { return nil, err } @@ -106,6 +110,9 @@ func (s *BybitClientRequest) GetSpotMarginState(ctx context.Context, opts ...Req if err != nil { return nil, err } + if headers != nil { + res.Headers = headers + } return res, nil } @@ -125,7 +132,7 @@ func (s *BybitClientRequest) ToggleSpotMarginTrade(ctx context.Context, opts ... secType: secTypeSigned, } r.setParams(s.params) - data, err := s.c.callAPI(ctx, r, opts...) + data, headers, err := s.c.callAPI(ctx, r, opts...) if err != nil { return nil, err } @@ -134,6 +141,9 @@ func (s *BybitClientRequest) ToggleSpotMarginTrade(ctx context.Context, opts ... if err != nil { return nil, err } + if headers != nil { + res.Headers = headers + } return res, nil } @@ -150,8 +160,8 @@ func (s *BybitClientRequest) GetSpotMarginCoin(ctx context.Context, opts ...Requ endpoint: "/v5/spot-cross-margin-trade/pledge-token", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetSpotMarginBorrowCoin is deprecated. @@ -167,8 +177,8 @@ func (s *BybitClientRequest) GetSpotMarginBorrowCoin(ctx context.Context, opts . endpoint: "/v5/spot-cross-margin-trade/borrow-token", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetSpotMarginLoanAccountInfo is deprecated. @@ -184,8 +194,8 @@ func (s *BybitClientRequest) GetSpotMarginLoanAccountInfo(ctx context.Context, o endpoint: "/v5/spot-cross-margin-trade/account", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetSpotMarginBorrowOrders is deprecated. @@ -201,8 +211,8 @@ func (s *BybitClientRequest) GetSpotMarginBorrowOrders(ctx context.Context, opts endpoint: "/v5/spot-cross-margin-trade/orders", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: GetSpotMarginRepaymentOrders is deprecated. @@ -218,8 +228,8 @@ func (s *BybitClientRequest) GetSpotMarginRepaymentOrders(ctx context.Context, o endpoint: "/v5/spot-cross-margin-trade/repay-history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: BorrowSpotMarginLoan is deprecated. @@ -235,8 +245,8 @@ func (s *BybitClientRequest) BorrowSpotMarginLoan(ctx context.Context, opts ...R endpoint: "/v5/spot-cross-margin-trade/loan", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } // Deprecated: RepaySpotMarginLoan is deprecated. @@ -252,6 +262,6 @@ func (s *BybitClientRequest) RepaySpotMarginLoan(ctx context.Context, opts ...Re endpoint: "/v5/spot-cross-margin-trade/repay", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } diff --git a/spread_trade.go b/spread_trade.go index 8fd8822..b2fa52e 100644 --- a/spread_trade.go +++ b/spread_trade.go @@ -15,8 +15,8 @@ func (s *BybitClientRequest) PlaceSpreadTradeOrder(ctx context.Context, opts ... endpoint: "/v5/spread/order/create", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) AmendSpreadTradeOrder(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -28,8 +28,8 @@ func (s *BybitClientRequest) AmendSpreadTradeOrder(ctx context.Context, opts ... endpoint: "/v5/spread/order/amend", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) CancelSpreadTradeOrder(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -41,8 +41,8 @@ func (s *BybitClientRequest) CancelSpreadTradeOrder(ctx context.Context, opts .. endpoint: "/v5/spread/order/cancel", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) CancelAllSpreadTradeOrder(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -54,8 +54,8 @@ func (s *BybitClientRequest) CancelAllSpreadTradeOrder(ctx context.Context, opts endpoint: "/v5/spread/order/cancel-all", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetSpreadTradeOrderHistory(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -67,8 +67,8 @@ func (s *BybitClientRequest) GetSpreadTradeOrderHistory(ctx context.Context, opt endpoint: "/v5/spread/order/history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetSpreadTradeHistory(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -80,8 +80,8 @@ func (s *BybitClientRequest) GetSpreadTradeHistory(ctx context.Context, opts ... endpoint: "/v5/spread/execution/list", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetSpreadTradeInstrumentsInfo(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -93,8 +93,8 @@ func (s *BybitClientRequest) GetSpreadTradeInstrumentsInfo(ctx context.Context, endpoint: "/v5/spread/instrument", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetSpreadTradeOrderBook(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -106,8 +106,8 @@ func (s *BybitClientRequest) GetSpreadTradeOrderBook(ctx context.Context, opts . endpoint: "/v5/spread/orderbook", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetSpreadTradeTickers(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -119,8 +119,8 @@ func (s *BybitClientRequest) GetSpreadTradeTickers(ctx context.Context, opts ... endpoint: "/v5/spread/tickers", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetSpreadRecentTrade(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -132,6 +132,6 @@ func (s *BybitClientRequest) GetSpreadRecentTrade(ctx context.Context, opts ...R endpoint: "/v5/spread/recent-trade", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } diff --git a/trade.go b/trade.go index d03d022..bbc3c55 100644 --- a/trade.go +++ b/trade.go @@ -2,9 +2,10 @@ package bybit_connector import ( "context" + "net/http" + "github.com/bybit-exchange/bybit.go.api/handlers" "github.com/bybit-exchange/bybit.go.api/models" - "net/http" ) func (s *BybitClientRequest) PlacePreCheckOrder(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -16,8 +17,8 @@ func (s *BybitClientRequest) PlacePreCheckOrder(ctx context.Context, opts ...Req endpoint: "/v5/order/pre-check", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) PlaceOrder(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -29,8 +30,8 @@ func (s *BybitClientRequest) PlaceOrder(ctx context.Context, opts ...RequestOpti endpoint: "/v5/order/create", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) AmendOrder(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -42,8 +43,8 @@ func (s *BybitClientRequest) AmendOrder(ctx context.Context, opts ...RequestOpti endpoint: "/v5/order/amend", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) CancelOrder(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -55,8 +56,8 @@ func (s *BybitClientRequest) CancelOrder(ctx context.Context, opts ...RequestOpt endpoint: "/v5/order/cancel", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetOpenOrders(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -68,8 +69,8 @@ func (s *BybitClientRequest) GetOpenOrders(ctx context.Context, opts ...RequestO endpoint: "/v5/order/realtime", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetOrderHistory(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -81,8 +82,8 @@ func (s *BybitClientRequest) GetOrderHistory(ctx context.Context, opts ...Reques endpoint: "/v5/order/history", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetSpotBorrowQuota(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -94,8 +95,8 @@ func (s *BybitClientRequest) GetSpotBorrowQuota(ctx context.Context, opts ...Req endpoint: "/v5/order/spot-borrow-check", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) CancelAllOrders(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -107,8 +108,8 @@ func (s *BybitClientRequest) CancelAllOrders(ctx context.Context, opts ...Reques endpoint: "/v5/order/cancel-all", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) SetDisconnectCancelAll(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -120,8 +121,8 @@ func (s *BybitClientRequest) SetDisconnectCancelAll(ctx context.Context, opts .. endpoint: "/v5/order/disconnected-cancel-all", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) PlaceBatchOrder(ctx context.Context, opts ...RequestOption) (res *models.BatchOrderServerResponse, err error) { @@ -133,8 +134,8 @@ func (s *BybitClientRequest) PlaceBatchOrder(ctx context.Context, opts ...Reques endpoint: "/v5/order/create-batch", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetBatchOrderServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetBatchOrderServerResponse(err, data, headers) } func (s *BybitClientRequest) AmendBatchOrder(ctx context.Context, opts ...RequestOption) (res *models.BatchOrderServerResponse, err error) { @@ -146,8 +147,8 @@ func (s *BybitClientRequest) AmendBatchOrder(ctx context.Context, opts ...Reques endpoint: "/v5/order/amend-batch", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetBatchOrderServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetBatchOrderServerResponse(err, data, headers) } func (s *BybitClientRequest) CancelBatchOrder(ctx context.Context, opts ...RequestOption) (res *models.BatchOrderServerResponse, err error) { @@ -159,8 +160,8 @@ func (s *BybitClientRequest) CancelBatchOrder(ctx context.Context, opts ...Reque endpoint: "/v5/order/cancel-batch", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetBatchOrderServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetBatchOrderServerResponse(err, data, headers) } func (s *BybitClientRequest) GetTradeHistory(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -172,8 +173,8 @@ func (s *BybitClientRequest) GetTradeHistory(ctx context.Context, opts ...Reques endpoint: "/v5/execution/list", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) RequestTestFund(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -185,6 +186,6 @@ func (s *BybitClientRequest) RequestTestFund(ctx context.Context, opts ...Reques endpoint: "/v5/account/demo-apply-money", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } diff --git a/user.go b/user.go index 1560385..1cac518 100644 --- a/user.go +++ b/user.go @@ -15,8 +15,8 @@ func (s *BybitClientRequest) CreateSubMember(ctx context.Context, opts ...Reques endpoint: "/v5/user/create-sub-member", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) CreateSubApiKey(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -28,8 +28,8 @@ func (s *BybitClientRequest) CreateSubApiKey(ctx context.Context, opts ...Reques endpoint: "/v5/user/create-sub-api", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) FreezeSubUID(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -41,8 +41,8 @@ func (s *BybitClientRequest) FreezeSubUID(ctx context.Context, opts ...RequestOp endpoint: "/v5/user/frozen-sub-member", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) ModifyMasterAPIKey(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -54,8 +54,8 @@ func (s *BybitClientRequest) ModifyMasterAPIKey(ctx context.Context, opts ...Req endpoint: "/v5/user/update-api", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) ModifySubAPIKey(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -67,8 +67,8 @@ func (s *BybitClientRequest) ModifySubAPIKey(ctx context.Context, opts ...Reques endpoint: "/v5/user/update-sub-api", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) DeleteSubUID(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -80,8 +80,8 @@ func (s *BybitClientRequest) DeleteSubUID(ctx context.Context, opts ...RequestOp endpoint: "/v5/user/del-submember", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) DeleteMasterAPIKey(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -93,8 +93,8 @@ func (s *BybitClientRequest) DeleteMasterAPIKey(ctx context.Context, opts ...Req endpoint: "/v5/user/delete-api", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) DeleteSubAPIKey(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -106,8 +106,8 @@ func (s *BybitClientRequest) DeleteSubAPIKey(ctx context.Context, opts ...Reques endpoint: "/v5/user/delete-sub-api", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetSubUidList(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -119,8 +119,8 @@ func (s *BybitClientRequest) GetSubUidList(ctx context.Context, opts ...RequestO endpoint: "/v5/user/query-sub-members", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetSubUidListUnlimited(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -132,8 +132,8 @@ func (s *BybitClientRequest) GetSubUidListUnlimited(ctx context.Context, opts .. endpoint: "/v5/user/submembers", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetCustodianSubAccounts(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -145,8 +145,8 @@ func (s *BybitClientRequest) GetCustodianSubAccounts(ctx context.Context, opts . endpoint: "/v5/user/escrow_sub_members", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetAPIKeyInfo(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -155,8 +155,8 @@ func (s *BybitClientRequest) GetAPIKeyInfo(ctx context.Context, opts ...RequestO endpoint: "/v5/user/query-api", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetSubUidApiKeysInfo(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -165,8 +165,8 @@ func (s *BybitClientRequest) GetSubUidApiKeysInfo(ctx context.Context, opts ...R endpoint: "/v5/user/sub-apikeys", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetUidWalletType(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -178,8 +178,8 @@ func (s *BybitClientRequest) GetUidWalletType(ctx context.Context, opts ...Reque endpoint: "/v5/user/get-member-type", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetAffiliateUserInfo(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -191,8 +191,8 @@ func (s *BybitClientRequest) GetAffiliateUserInfo(ctx context.Context, opts ...R endpoint: "/v5/user/aff-customer-info", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) } func (s *BybitClientRequest) GetAffiliateUserList(ctx context.Context, opts ...RequestOption) (res *ServerResponse, err error) { @@ -204,6 +204,6 @@ func (s *BybitClientRequest) GetAffiliateUserList(ctx context.Context, opts ...R endpoint: "/v5/user/aff-customer-list", secType: secTypeSigned, } - data, err := SendRequest(ctx, opts, r, s, err) - return GetServerResponse(err, data) + data, headers, err := SendRequest(ctx, opts, r, s, err) + return GetServerResponse(err, data, headers) }