ccxt 4.3.11__py2.py3-none-any.whl → 4.3.13__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ccxt/__init__.py +1 -1
- ccxt/abstract/bybit.py +1 -0
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/bigone.py +22 -22
- ccxt/async_support/binance.py +7 -7
- ccxt/async_support/bingx.py +2 -2
- ccxt/async_support/bitget.py +10 -8
- ccxt/async_support/bitmart.py +7 -11
- ccxt/async_support/bitmex.py +2 -2
- ccxt/async_support/bybit.py +76 -65
- ccxt/async_support/coinbase.py +8 -8
- ccxt/async_support/coinbaseinternational.py +2 -2
- ccxt/async_support/coinex.py +501 -445
- ccxt/async_support/coinlist.py +12 -12
- ccxt/async_support/coinmetro.py +2 -2
- ccxt/async_support/cryptocom.py +16 -16
- ccxt/async_support/digifinex.py +3 -3
- ccxt/async_support/gate.py +2 -2
- ccxt/async_support/hitbtc.py +3 -3
- ccxt/async_support/htx.py +6 -9
- ccxt/async_support/indodax.py +2 -2
- ccxt/async_support/kraken.py +3 -1
- ccxt/async_support/kucoin.py +4 -4
- ccxt/async_support/kucoinfutures.py +6 -6
- ccxt/async_support/mexc.py +5 -5
- ccxt/async_support/okx.py +9 -9
- ccxt/async_support/poloniexfutures.py +4 -4
- ccxt/async_support/probit.py +2 -2
- ccxt/async_support/whitebit.py +72 -1
- ccxt/async_support/woo.py +2 -2
- ccxt/base/exchange.py +14 -2
- ccxt/base/types.py +25 -0
- ccxt/bigone.py +22 -22
- ccxt/binance.py +7 -7
- ccxt/bingx.py +2 -2
- ccxt/bitget.py +10 -8
- ccxt/bitmart.py +7 -11
- ccxt/bitmex.py +2 -2
- ccxt/bybit.py +76 -65
- ccxt/coinbase.py +8 -8
- ccxt/coinbaseinternational.py +2 -2
- ccxt/coinex.py +501 -445
- ccxt/coinlist.py +12 -12
- ccxt/coinmetro.py +2 -2
- ccxt/cryptocom.py +16 -16
- ccxt/digifinex.py +3 -3
- ccxt/gate.py +2 -2
- ccxt/hitbtc.py +3 -3
- ccxt/htx.py +6 -9
- ccxt/indodax.py +2 -2
- ccxt/kraken.py +3 -1
- ccxt/kucoin.py +4 -4
- ccxt/kucoinfutures.py +6 -6
- ccxt/mexc.py +5 -5
- ccxt/okx.py +9 -9
- ccxt/poloniexfutures.py +4 -4
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/bitget.py +139 -87
- ccxt/pro/bybit.py +192 -12
- ccxt/pro/coinbase.py +90 -20
- ccxt/pro/mexc.py +21 -1
- ccxt/probit.py +2 -2
- ccxt/test/base/test_datetime.py +6 -0
- ccxt/test/base/test_ledger_entry.py +2 -2
- ccxt/whitebit.py +72 -1
- ccxt/woo.py +2 -2
- {ccxt-4.3.11.dist-info → ccxt-4.3.13.dist-info}/METADATA +4 -4
- {ccxt-4.3.11.dist-info → ccxt-4.3.13.dist-info}/RECORD +71 -73
- ccxt/async_support/flowbtc.py +0 -34
- ccxt/flowbtc.py +0 -34
- {ccxt-4.3.11.dist-info → ccxt-4.3.13.dist-info}/WHEEL +0 -0
- {ccxt-4.3.11.dist-info → ccxt-4.3.13.dist-info}/top_level.txt +0 -0
ccxt/bybit.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.bybit import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Balances, Currencies, Currency, Greeks, Int, Leverage, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderRequest, CancellationRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
|
9
|
+
from ccxt.base.types import Balances, CrossBorrowRate, Currencies, Currency, Greeks, Int, Leverage, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderRequest, CancellationRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
@@ -336,6 +336,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
336
336
|
'v5/account/fee-rate': 10, # 5/s = 1000 / (20 * 10)
|
337
337
|
'v5/account/info': 5,
|
338
338
|
'v5/account/transaction-log': 1,
|
339
|
+
'v5/account/contract-transaction-log': 1,
|
339
340
|
'v5/account/smp-group': 1,
|
340
341
|
'v5/account/mmp-state': 5,
|
341
342
|
# asset
|
@@ -2417,9 +2418,9 @@ class bybit(Exchange, ImplicitAPI):
|
|
2417
2418
|
request['category'] = type
|
2418
2419
|
if since is not None:
|
2419
2420
|
request['startTime'] = since
|
2420
|
-
until = self.
|
2421
|
+
until = self.safe_integer(params, 'until') # unified in milliseconds
|
2421
2422
|
endTime = self.safe_integer(params, 'endTime', until) # exchange-specific in milliseconds
|
2422
|
-
params = self.omit(params, ['endTime', '
|
2423
|
+
params = self.omit(params, ['endTime', 'until'])
|
2423
2424
|
if endTime is not None:
|
2424
2425
|
request['endTime'] = endTime
|
2425
2426
|
else:
|
@@ -3810,40 +3811,8 @@ class bybit(Exchange, ImplicitAPI):
|
|
3810
3811
|
result = self.safe_dict(response, 'result', {})
|
3811
3812
|
return self.parse_order(result, market)
|
3812
3813
|
|
3813
|
-
def
|
3814
|
-
"""
|
3815
|
-
edit a trade order
|
3816
|
-
:see: https://bybit-exchange.github.io/docs/v5/order/amend-order
|
3817
|
-
:see: https://bybit-exchange.github.io/docs/derivatives/unified/replace-order
|
3818
|
-
:see: https://bybit-exchange.github.io/docs/api-explorer/derivatives/trade/contract/replace-order
|
3819
|
-
:param str id: cancel order id
|
3820
|
-
:param str symbol: unified symbol of the market to create an order in
|
3821
|
-
:param str type: 'market' or 'limit'
|
3822
|
-
:param str side: 'buy' or 'sell'
|
3823
|
-
:param float amount: how much of currency you want to trade in units of base currency
|
3824
|
-
:param float price: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
|
3825
|
-
:param dict [params]: extra parameters specific to the exchange API endpoint
|
3826
|
-
:param float [params.triggerPrice]: The price that a trigger order is triggered at
|
3827
|
-
:param float [params.stopLossPrice]: The price that a stop loss order is triggered at
|
3828
|
-
:param float [params.takeProfitPrice]: The price that a take profit order is triggered at
|
3829
|
-
:param dict [params.takeProfit]: *takeProfit object in params* containing the triggerPrice that the attached take profit order will be triggered
|
3830
|
-
:param float [params.takeProfit.triggerPrice]: take profit trigger price
|
3831
|
-
:param dict [params.stopLoss]: *stopLoss object in params* containing the triggerPrice that the attached stop loss order will be triggered
|
3832
|
-
:param float [params.stopLoss.triggerPrice]: stop loss trigger price
|
3833
|
-
:param str [params.triggerBy]: 'IndexPrice', 'MarkPrice' or 'LastPrice', default is 'LastPrice', required if no initial value for triggerPrice
|
3834
|
-
:param str [params.slTriggerBy]: 'IndexPrice', 'MarkPrice' or 'LastPrice', default is 'LastPrice', required if no initial value for stopLoss
|
3835
|
-
:param str [params.tpTriggerby]: 'IndexPrice', 'MarkPrice' or 'LastPrice', default is 'LastPrice', required if no initial value for takeProfit
|
3836
|
-
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
3837
|
-
"""
|
3838
|
-
if symbol is None:
|
3839
|
-
raise ArgumentsRequired(self.id + ' editOrder() requires a symbol argument')
|
3840
|
-
self.load_markets()
|
3814
|
+
def edit_order_request(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
|
3841
3815
|
market = self.market(symbol)
|
3842
|
-
enableUnifiedMargin, enableUnifiedAccount = self.is_unified_enabled()
|
3843
|
-
isUnifiedAccount = (enableUnifiedMargin or enableUnifiedAccount)
|
3844
|
-
isUsdcSettled = market['settle'] == 'USDC'
|
3845
|
-
if isUsdcSettled and not isUnifiedAccount:
|
3846
|
-
return self.edit_usdc_order(id, symbol, type, side, amount, price, params)
|
3847
3816
|
request = {
|
3848
3817
|
'symbol': market['id'],
|
3849
3818
|
'orderId': id,
|
@@ -3904,6 +3873,43 @@ class bybit(Exchange, ImplicitAPI):
|
|
3904
3873
|
if clientOrderId is not None:
|
3905
3874
|
request['orderLinkId'] = clientOrderId
|
3906
3875
|
params = self.omit(params, ['stopPrice', 'stopLossPrice', 'takeProfitPrice', 'triggerPrice', 'clientOrderId', 'stopLoss', 'takeProfit'])
|
3876
|
+
return request
|
3877
|
+
|
3878
|
+
def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
|
3879
|
+
"""
|
3880
|
+
edit a trade order
|
3881
|
+
:see: https://bybit-exchange.github.io/docs/v5/order/amend-order
|
3882
|
+
:see: https://bybit-exchange.github.io/docs/derivatives/unified/replace-order
|
3883
|
+
:see: https://bybit-exchange.github.io/docs/api-explorer/derivatives/trade/contract/replace-order
|
3884
|
+
:param str id: cancel order id
|
3885
|
+
:param str symbol: unified symbol of the market to create an order in
|
3886
|
+
:param str type: 'market' or 'limit'
|
3887
|
+
:param str side: 'buy' or 'sell'
|
3888
|
+
:param float amount: how much of currency you want to trade in units of base currency
|
3889
|
+
:param float price: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
|
3890
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
3891
|
+
:param float [params.triggerPrice]: The price that a trigger order is triggered at
|
3892
|
+
:param float [params.stopLossPrice]: The price that a stop loss order is triggered at
|
3893
|
+
:param float [params.takeProfitPrice]: The price that a take profit order is triggered at
|
3894
|
+
:param dict [params.takeProfit]: *takeProfit object in params* containing the triggerPrice that the attached take profit order will be triggered
|
3895
|
+
:param float [params.takeProfit.triggerPrice]: take profit trigger price
|
3896
|
+
:param dict [params.stopLoss]: *stopLoss object in params* containing the triggerPrice that the attached stop loss order will be triggered
|
3897
|
+
:param float [params.stopLoss.triggerPrice]: stop loss trigger price
|
3898
|
+
:param str [params.triggerBy]: 'IndexPrice', 'MarkPrice' or 'LastPrice', default is 'LastPrice', required if no initial value for triggerPrice
|
3899
|
+
:param str [params.slTriggerBy]: 'IndexPrice', 'MarkPrice' or 'LastPrice', default is 'LastPrice', required if no initial value for stopLoss
|
3900
|
+
:param str [params.tpTriggerby]: 'IndexPrice', 'MarkPrice' or 'LastPrice', default is 'LastPrice', required if no initial value for takeProfit
|
3901
|
+
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
3902
|
+
"""
|
3903
|
+
self.load_markets()
|
3904
|
+
if symbol is None:
|
3905
|
+
raise ArgumentsRequired(self.id + ' editOrder() requires a symbol argument')
|
3906
|
+
market = self.market(symbol)
|
3907
|
+
enableUnifiedMargin, enableUnifiedAccount = self.is_unified_enabled()
|
3908
|
+
isUnifiedAccount = (enableUnifiedMargin or enableUnifiedAccount)
|
3909
|
+
isUsdcSettled = market['settle'] == 'USDC'
|
3910
|
+
if isUsdcSettled and not isUnifiedAccount:
|
3911
|
+
return self.edit_usdc_order(id, symbol, type, side, amount, price, params)
|
3912
|
+
request = self.edit_order_request(id, symbol, type, side, amount, price, params)
|
3907
3913
|
response = self.privatePostV5OrderAmend(self.extend(request, params))
|
3908
3914
|
#
|
3909
3915
|
# {
|
@@ -3959,26 +3965,8 @@ class bybit(Exchange, ImplicitAPI):
|
|
3959
3965
|
result = self.safe_dict(response, 'result', {})
|
3960
3966
|
return self.parse_order(result, market)
|
3961
3967
|
|
3962
|
-
def
|
3963
|
-
"""
|
3964
|
-
cancels an open order
|
3965
|
-
:see: https://bybit-exchange.github.io/docs/v5/order/cancel-order
|
3966
|
-
:param str id: order id
|
3967
|
-
:param str symbol: unified symbol of the market the order was made in
|
3968
|
-
:param dict [params]: extra parameters specific to the exchange API endpoint
|
3969
|
-
:param boolean [params.stop]: *spot only* whether the order is a stop order
|
3970
|
-
:param str [params.orderFilter]: *spot only* 'Order' or 'StopOrder' or 'tpslOrder'
|
3971
|
-
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
3972
|
-
"""
|
3973
|
-
if symbol is None:
|
3974
|
-
raise ArgumentsRequired(self.id + ' cancelOrder() requires a symbol argument')
|
3975
|
-
self.load_markets()
|
3968
|
+
def cancel_order_request(self, id: str, symbol: Str = None, params={}):
|
3976
3969
|
market = self.market(symbol)
|
3977
|
-
enableUnifiedMargin, enableUnifiedAccount = self.is_unified_enabled()
|
3978
|
-
isUnifiedAccount = (enableUnifiedMargin or enableUnifiedAccount)
|
3979
|
-
isUsdcSettled = market['settle'] == 'USDC'
|
3980
|
-
if isUsdcSettled and not isUnifiedAccount:
|
3981
|
-
return self.cancel_usdc_order(id, symbol, params)
|
3982
3970
|
request = {
|
3983
3971
|
'symbol': market['id'],
|
3984
3972
|
# 'orderLinkId': 'string',
|
@@ -3988,7 +3976,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
3988
3976
|
}
|
3989
3977
|
if market['spot']:
|
3990
3978
|
# only works for spot market
|
3991
|
-
isStop = self.
|
3979
|
+
isStop = self.safe_bool_2(params, 'stop', 'trigger', False)
|
3992
3980
|
params = self.omit(params, ['stop', 'trigger'])
|
3993
3981
|
request['orderFilter'] = 'StopOrder' if isStop else 'Order'
|
3994
3982
|
if id is not None: # The user can also use argument params["orderLinkId"]
|
@@ -4001,7 +3989,30 @@ class bybit(Exchange, ImplicitAPI):
|
|
4001
3989
|
request['category'] = 'inverse'
|
4002
3990
|
elif market['option']:
|
4003
3991
|
request['category'] = 'option'
|
4004
|
-
|
3992
|
+
return self.extend(request, params)
|
3993
|
+
|
3994
|
+
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
3995
|
+
"""
|
3996
|
+
cancels an open order
|
3997
|
+
:see: https://bybit-exchange.github.io/docs/v5/order/cancel-order
|
3998
|
+
:param str id: order id
|
3999
|
+
:param str symbol: unified symbol of the market the order was made in
|
4000
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
4001
|
+
:param boolean [params.stop]: *spot only* whether the order is a stop order
|
4002
|
+
:param str [params.orderFilter]: *spot only* 'Order' or 'StopOrder' or 'tpslOrder'
|
4003
|
+
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
4004
|
+
"""
|
4005
|
+
if symbol is None:
|
4006
|
+
raise ArgumentsRequired(self.id + ' cancelOrder() requires a symbol argument')
|
4007
|
+
self.load_markets()
|
4008
|
+
market = self.market(symbol)
|
4009
|
+
enableUnifiedMargin, enableUnifiedAccount = self.is_unified_enabled()
|
4010
|
+
isUnifiedAccount = (enableUnifiedMargin or enableUnifiedAccount)
|
4011
|
+
isUsdcSettled = market['settle'] == 'USDC'
|
4012
|
+
if isUsdcSettled and not isUnifiedAccount:
|
4013
|
+
return self.cancel_usdc_order(id, symbol, params)
|
4014
|
+
requestExtended = self.cancel_order_request(id, symbol, params)
|
4015
|
+
response = self.privatePostV5OrderCancel(requestExtended)
|
4005
4016
|
#
|
4006
4017
|
# {
|
4007
4018
|
# "retCode": 0,
|
@@ -4474,9 +4485,9 @@ class bybit(Exchange, ImplicitAPI):
|
|
4474
4485
|
request['limit'] = limit
|
4475
4486
|
if since is not None:
|
4476
4487
|
request['startTime'] = since
|
4477
|
-
until = self.
|
4488
|
+
until = self.safe_integer(params, 'until') # unified in milliseconds
|
4478
4489
|
endTime = self.safe_integer(params, 'endTime', until) # exchange-specific in milliseconds
|
4479
|
-
params = self.omit(params, ['endTime', '
|
4490
|
+
params = self.omit(params, ['endTime', 'until'])
|
4480
4491
|
if endTime is not None:
|
4481
4492
|
request['endTime'] = endTime
|
4482
4493
|
response = self.privateGetV5OrderHistory(self.extend(request, params))
|
@@ -4632,9 +4643,9 @@ class bybit(Exchange, ImplicitAPI):
|
|
4632
4643
|
request['limit'] = limit
|
4633
4644
|
if since is not None:
|
4634
4645
|
request['startTime'] = since
|
4635
|
-
until = self.
|
4646
|
+
until = self.safe_integer(params, 'until') # unified in milliseconds
|
4636
4647
|
endTime = self.safe_integer(params, 'endTime', until) # exchange-specific in milliseconds
|
4637
|
-
params = self.omit(params, ['endTime', '
|
4648
|
+
params = self.omit(params, ['endTime', 'until'])
|
4638
4649
|
if endTime is not None:
|
4639
4650
|
request['endTime'] = endTime
|
4640
4651
|
response = self.privateGetV5OrderHistory(self.extend(request, params))
|
@@ -5379,7 +5390,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
5379
5390
|
# 'coin': currency['id'],
|
5380
5391
|
# 'currency': currency['id'], # alias
|
5381
5392
|
# 'start_date': self.iso8601(since),
|
5382
|
-
# 'end_date': self.iso8601(
|
5393
|
+
# 'end_date': self.iso8601(until),
|
5383
5394
|
# 'wallet_fund_type': 'Deposit', # Withdraw, RealisedPNL, Commission, Refund, Prize, ExchangeOrderWithdraw, ExchangeOrderDeposit
|
5384
5395
|
# 'page': 1,
|
5385
5396
|
# 'limit': 20, # max 50
|
@@ -6338,8 +6349,8 @@ class bybit(Exchange, ImplicitAPI):
|
|
6338
6349
|
}
|
6339
6350
|
if since is not None:
|
6340
6351
|
request['startTime'] = since
|
6341
|
-
until = self.
|
6342
|
-
params = self.omit(params, ['
|
6352
|
+
until = self.safe_integer(params, 'until') # unified in milliseconds
|
6353
|
+
params = self.omit(params, ['until'])
|
6343
6354
|
if until is not None:
|
6344
6355
|
request['endTime'] = until
|
6345
6356
|
if limit is not None:
|
@@ -6477,7 +6488,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
6477
6488
|
'info': interest,
|
6478
6489
|
}, market)
|
6479
6490
|
|
6480
|
-
def fetch_cross_borrow_rate(self, code: str, params={}):
|
6491
|
+
def fetch_cross_borrow_rate(self, code: str, params={}) -> CrossBorrowRate:
|
6481
6492
|
"""
|
6482
6493
|
fetch the rate of interest to borrow a currency for margin trading
|
6483
6494
|
:see: https://bybit-exchange.github.io/docs/zh-TW/v5/spot-margin-normal/interest-quota
|
ccxt/coinbase.py
CHANGED
@@ -3109,9 +3109,9 @@ class coinbase(Exchange, ImplicitAPI):
|
|
3109
3109
|
request['limit'] = limit
|
3110
3110
|
if since is not None:
|
3111
3111
|
request['start_date'] = self.iso8601(since)
|
3112
|
-
until = self.safe_integer_n(params, ['until'
|
3112
|
+
until = self.safe_integer_n(params, ['until'])
|
3113
3113
|
if until is not None:
|
3114
|
-
params = self.omit(params, ['until'
|
3114
|
+
params = self.omit(params, ['until'])
|
3115
3115
|
request['end_date'] = self.iso8601(until)
|
3116
3116
|
response = self.v3PrivateGetBrokerageOrdersHistoricalBatch(self.extend(request, params))
|
3117
3117
|
#
|
@@ -3179,9 +3179,9 @@ class coinbase(Exchange, ImplicitAPI):
|
|
3179
3179
|
request['limit'] = limit
|
3180
3180
|
if since is not None:
|
3181
3181
|
request['start_date'] = self.iso8601(since)
|
3182
|
-
until = self.safe_integer_n(params, ['until'
|
3182
|
+
until = self.safe_integer_n(params, ['until'])
|
3183
3183
|
if until is not None:
|
3184
|
-
params = self.omit(params, ['until'
|
3184
|
+
params = self.omit(params, ['until'])
|
3185
3185
|
request['end_date'] = self.iso8601(until)
|
3186
3186
|
response = self.v3PrivateGetBrokerageOrdersHistoricalBatch(self.extend(request, params))
|
3187
3187
|
#
|
@@ -3309,8 +3309,8 @@ class coinbase(Exchange, ImplicitAPI):
|
|
3309
3309
|
'product_id': market['id'],
|
3310
3310
|
'granularity': self.safe_string(self.timeframes, timeframe, timeframe),
|
3311
3311
|
}
|
3312
|
-
until = self.safe_integer_n(params, ['until', '
|
3313
|
-
params = self.omit(params, ['until'
|
3312
|
+
until = self.safe_integer_n(params, ['until', 'end'])
|
3313
|
+
params = self.omit(params, ['until'])
|
3314
3314
|
duration = self.parse_timeframe(timeframe)
|
3315
3315
|
requestedDuration = limit * duration
|
3316
3316
|
sinceString = None
|
@@ -3437,9 +3437,9 @@ class coinbase(Exchange, ImplicitAPI):
|
|
3437
3437
|
request['limit'] = limit
|
3438
3438
|
if since is not None:
|
3439
3439
|
request['start_sequence_timestamp'] = self.iso8601(since)
|
3440
|
-
until = self.safe_integer_n(params, ['until'
|
3440
|
+
until = self.safe_integer_n(params, ['until'])
|
3441
3441
|
if until is not None:
|
3442
|
-
params = self.omit(params, ['until'
|
3442
|
+
params = self.omit(params, ['until'])
|
3443
3443
|
request['end_sequence_timestamp'] = self.iso8601(until)
|
3444
3444
|
response = self.v3PrivateGetBrokerageOrdersHistoricalFills(self.extend(request, params))
|
3445
3445
|
#
|
ccxt/coinbaseinternational.py
CHANGED
@@ -1725,9 +1725,9 @@ class coinbaseinternational(Exchange, ImplicitAPI):
|
|
1725
1725
|
request['result_limit'] = limit
|
1726
1726
|
if since is not None:
|
1727
1727
|
request['time_from'] = self.iso8601(since)
|
1728
|
-
until = self.safe_string_n(params, ['until'
|
1728
|
+
until = self.safe_string_n(params, ['until'])
|
1729
1729
|
if until is not None:
|
1730
|
-
params = self.omit(params, ['until'
|
1730
|
+
params = self.omit(params, ['until'])
|
1731
1731
|
request['ref_datetime'] = self.iso8601(until)
|
1732
1732
|
response = self.v1PrivateGetPortfoliosFills(self.extend(request, params))
|
1733
1733
|
#
|