ccxt-ir 4.3.46.0.3__py2.py3-none-any.whl → 4.5.0__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 +39 -35
- ccxt/abantether.py +8 -8
- ccxt/abstract/alpaca.py +4 -0
- ccxt/abstract/apex.py +31 -0
- ccxt/abstract/bigone.py +1 -1
- ccxt/abstract/binance.py +106 -48
- ccxt/abstract/binancecoinm.py +106 -48
- ccxt/abstract/binanceus.py +141 -83
- ccxt/abstract/binanceusdm.py +106 -48
- ccxt/abstract/bingx.py +50 -1
- ccxt/abstract/bitbank.py +5 -0
- ccxt/abstract/bitfinex.py +136 -65
- ccxt/abstract/bitflyer.py +1 -0
- ccxt/abstract/bitget.py +67 -0
- ccxt/abstract/bitmart.py +19 -1
- ccxt/abstract/bitopro.py +1 -0
- ccxt/abstract/bitrue.py +68 -68
- ccxt/abstract/bitstamp.py +1 -0
- ccxt/abstract/blofin.py +30 -0
- ccxt/abstract/btcbox.py +2 -0
- ccxt/abstract/bybit.py +28 -13
- ccxt/abstract/cex.py +28 -29
- ccxt/abstract/coinbaseexchange.py +1 -0
- ccxt/abstract/coinbaseinternational.py +1 -1
- ccxt/abstract/cryptocom.py +16 -0
- ccxt/abstract/cryptomus.py +20 -0
- ccxt/abstract/defx.py +69 -0
- ccxt/abstract/deribit.py +1 -0
- ccxt/abstract/derive.py +117 -0
- ccxt/abstract/digifinex.py +1 -0
- ccxt/abstract/ellipx.py +25 -0
- ccxt/abstract/foxbit.py +26 -0
- ccxt/abstract/gate.py +19 -0
- ccxt/abstract/gateio.py +19 -0
- ccxt/abstract/gemini.py +1 -0
- ccxt/abstract/hibachi.py +26 -0
- ccxt/abstract/hyperliquid.py +1 -1
- ccxt/abstract/independentreserve.py +6 -0
- ccxt/abstract/kraken.py +1 -0
- ccxt/abstract/krakenfutures.py +4 -0
- ccxt/abstract/kucoin.py +10 -0
- ccxt/abstract/kucoinfutures.py +18 -0
- ccxt/abstract/lbank.py +2 -1
- ccxt/abstract/luno.py +1 -0
- ccxt/abstract/mexc.py +2 -0
- ccxt/abstract/modetrade.py +119 -0
- ccxt/abstract/myokx.py +349 -0
- ccxt/abstract/oceanex.py +5 -0
- ccxt/abstract/okx.py +25 -0
- ccxt/abstract/okxus.py +349 -0
- ccxt/abstract/onetrading.py +0 -12
- ccxt/abstract/paradex.py +23 -0
- ccxt/abstract/phemex.py +2 -0
- ccxt/abstract/poloniex.py +36 -0
- ccxt/abstract/tradeogre.py +3 -1
- ccxt/abstract/upbit.py +51 -34
- ccxt/abstract/whitebit.py +16 -0
- ccxt/abstract/woo.py +64 -6
- ccxt/abstract/xt.py +10 -5
- ccxt/afratether.py +7 -7
- ccxt/alpaca.py +828 -51
- ccxt/apex.py +1875 -0
- ccxt/arzinja.py +7 -7
- ccxt/arzplus.py +9 -9
- ccxt/ascendex.py +501 -306
- ccxt/async_support/__init__.py +39 -35
- ccxt/async_support/abantether.py +8 -8
- ccxt/async_support/afratether.py +9 -9
- ccxt/async_support/alpaca.py +828 -51
- ccxt/async_support/apex.py +1875 -0
- ccxt/async_support/arzinja.py +10 -10
- ccxt/async_support/arzplus.py +12 -12
- ccxt/async_support/ascendex.py +502 -306
- ccxt/async_support/base/exchange.py +303 -89
- ccxt/async_support/base/ws/cache.py +9 -3
- ccxt/async_support/base/ws/client.py +173 -38
- ccxt/async_support/base/ws/future.py +25 -37
- ccxt/async_support/bequant.py +5 -3
- ccxt/async_support/bigone.py +279 -144
- ccxt/async_support/binance.py +2347 -1158
- ccxt/async_support/binancecoinm.py +9 -3
- ccxt/async_support/binanceus.py +17 -3
- ccxt/async_support/binanceusdm.py +9 -4
- ccxt/async_support/bingx.py +2962 -920
- ccxt/async_support/bit2c.py +147 -27
- ccxt/async_support/bitbank.py +151 -23
- ccxt/async_support/bitbns.py +104 -30
- ccxt/async_support/bitfinex.py +3291 -1113
- ccxt/async_support/bitflyer.py +202 -27
- ccxt/async_support/bitget.py +3683 -1538
- ccxt/async_support/bithumb.py +195 -38
- ccxt/async_support/bitimen.py +12 -12
- ccxt/async_support/bitir.py +38 -38
- ccxt/async_support/bitmart.py +1288 -350
- ccxt/async_support/bitmex.py +260 -75
- ccxt/async_support/bitopro.py +262 -62
- ccxt/async_support/bitpin.py +17 -16
- ccxt/async_support/bitrue.py +459 -290
- ccxt/async_support/bitso.py +199 -54
- ccxt/async_support/bitstamp.py +230 -96
- ccxt/async_support/bitteam.py +167 -25
- ccxt/async_support/{huobijp.py → bittrade.py} +158 -30
- ccxt/async_support/bitvavo.py +213 -49
- ccxt/async_support/blockchaincom.py +160 -46
- ccxt/async_support/blofin.py +502 -120
- ccxt/async_support/btcalpha.py +169 -31
- ccxt/async_support/btcbox.py +292 -23
- ccxt/async_support/btcmarkets.py +211 -58
- ccxt/async_support/btcturk.py +161 -38
- ccxt/async_support/bybit.py +1775 -1030
- ccxt/async_support/cex.py +1440 -1303
- ccxt/async_support/coinbase.py +724 -212
- ccxt/async_support/coinbaseadvanced.py +2 -1
- ccxt/async_support/coinbaseexchange.py +388 -89
- ccxt/async_support/coinbaseinternational.py +412 -57
- ccxt/async_support/coincatch.py +177 -78
- ccxt/async_support/coincheck.py +135 -19
- ccxt/async_support/coinex.py +606 -232
- ccxt/async_support/coinmate.py +189 -63
- ccxt/async_support/coinmetro.py +195 -54
- ccxt/async_support/coinone.py +158 -51
- ccxt/async_support/coinsph.py +336 -61
- ccxt/async_support/coinspot.py +151 -52
- ccxt/async_support/cryptocom.py +661 -111
- ccxt/async_support/cryptomus.py +1137 -0
- ccxt/async_support/defx.py +2071 -0
- ccxt/async_support/delta.py +299 -99
- ccxt/async_support/deribit.py +348 -126
- ccxt/async_support/derive.py +2572 -0
- ccxt/async_support/digifinex.py +430 -214
- ccxt/async_support/ellipx.py +2029 -0
- ccxt/async_support/eterex.py +10 -10
- ccxt/async_support/excoino.py +31 -31
- ccxt/async_support/exir.py +14 -14
- ccxt/async_support/exmo.py +344 -131
- ccxt/async_support/exnovin.py +10 -10
- ccxt/async_support/farhadexchange.py +12 -12
- ccxt/async_support/fmfwio.py +2 -1
- ccxt/async_support/foxbit.py +1935 -0
- ccxt/async_support/gate.py +1351 -529
- ccxt/async_support/gateio.py +2 -1
- ccxt/async_support/gemini.py +144 -39
- ccxt/async_support/hashkey.py +152 -109
- ccxt/async_support/hibachi.py +2080 -0
- ccxt/async_support/hitbtc.py +395 -167
- ccxt/async_support/hitobit.py +12 -12
- ccxt/async_support/hollaex.py +307 -119
- ccxt/async_support/htx.py +851 -383
- ccxt/async_support/huobi.py +2 -1
- ccxt/async_support/hyperliquid.py +1848 -536
- ccxt/async_support/independentreserve.py +288 -15
- ccxt/async_support/indodax.py +190 -33
- ccxt/async_support/jibitex.py +12 -12
- ccxt/async_support/kraken.py +795 -351
- ccxt/async_support/krakenfutures.py +214 -62
- ccxt/async_support/kucoin.py +715 -396
- ccxt/async_support/kucoinfutures.py +652 -89
- ccxt/async_support/latoken.py +217 -113
- ccxt/async_support/lbank.py +425 -97
- ccxt/async_support/luno.py +382 -35
- ccxt/async_support/mercado.py +113 -6
- ccxt/async_support/mexc.py +874 -437
- ccxt/async_support/modetrade.py +2818 -0
- ccxt/async_support/myokx.py +54 -0
- ccxt/async_support/ndax.py +221 -64
- ccxt/async_support/nobitex.py +31 -37
- ccxt/async_support/novadax.py +190 -34
- ccxt/async_support/oceanex.py +217 -28
- ccxt/async_support/okcoin.py +253 -145
- ccxt/async_support/okexchange.py +11 -11
- ccxt/async_support/okx.py +1088 -351
- ccxt/async_support/okxus.py +54 -0
- ccxt/async_support/ompfinex.py +25 -24
- ccxt/async_support/onetrading.py +213 -392
- ccxt/async_support/oxfun.py +245 -166
- ccxt/async_support/p2b.py +151 -29
- ccxt/async_support/paradex.py +562 -49
- ccxt/async_support/paymium.py +82 -19
- ccxt/async_support/phemex.py +713 -172
- ccxt/async_support/poloniex.py +1602 -283
- ccxt/async_support/probit.py +224 -95
- ccxt/async_support/ramzinex.py +30 -27
- ccxt/async_support/sarmayex.py +9 -9
- ccxt/async_support/sarrafex.py +13 -13
- ccxt/async_support/tabdeal.py +14 -13
- ccxt/async_support/tetherland.py +9 -9
- ccxt/async_support/timex.py +210 -51
- ccxt/async_support/tokocrypto.py +167 -47
- ccxt/async_support/tradeogre.py +266 -31
- ccxt/async_support/twox.py +9 -9
- ccxt/async_support/ubitex.py +12 -12
- ccxt/async_support/upbit.py +568 -165
- ccxt/async_support/vertex.py +160 -32
- ccxt/async_support/wallex.py +12 -12
- ccxt/async_support/wavesexchange.py +165 -30
- ccxt/async_support/whitebit.py +975 -127
- ccxt/async_support/woo.py +1918 -1016
- ccxt/async_support/woofipro.py +433 -141
- ccxt/async_support/xt.py +649 -193
- ccxt/async_support/yobit.py +195 -70
- ccxt/async_support/zaif.py +91 -15
- ccxt/async_support/zonda.py +151 -36
- ccxt/base/decimal_to_precision.py +14 -10
- ccxt/base/errors.py +49 -18
- ccxt/base/exchange.py +1556 -450
- ccxt/base/precise.py +10 -0
- ccxt/base/types.py +114 -6
- ccxt/bequant.py +5 -3
- ccxt/bigone.py +279 -144
- ccxt/binance.py +2347 -1158
- ccxt/binancecoinm.py +9 -3
- ccxt/binanceus.py +17 -3
- ccxt/binanceusdm.py +9 -4
- ccxt/bingx.py +2962 -920
- ccxt/bit2c.py +147 -27
- ccxt/bitbank.py +151 -23
- ccxt/bitbns.py +104 -30
- ccxt/bitfinex.py +3290 -1113
- ccxt/bitflyer.py +202 -27
- ccxt/bitget.py +3683 -1538
- ccxt/bithumb.py +194 -38
- ccxt/bitimen.py +9 -9
- ccxt/bitir.py +35 -35
- ccxt/bitmart.py +1288 -350
- ccxt/bitmex.py +260 -75
- ccxt/bitopro.py +262 -62
- ccxt/bitpin.py +15 -14
- ccxt/bitrue.py +459 -290
- ccxt/bitso.py +199 -54
- ccxt/bitstamp.py +230 -96
- ccxt/bitteam.py +167 -25
- ccxt/{huobijp.py → bittrade.py} +158 -30
- ccxt/bitvavo.py +213 -49
- ccxt/blockchaincom.py +160 -46
- ccxt/blofin.py +502 -120
- ccxt/btcalpha.py +169 -31
- ccxt/btcbox.py +291 -23
- ccxt/btcmarkets.py +211 -58
- ccxt/btcturk.py +161 -38
- ccxt/bybit.py +1775 -1030
- ccxt/cex.py +1439 -1303
- ccxt/coinbase.py +724 -212
- ccxt/coinbaseadvanced.py +2 -1
- ccxt/coinbaseexchange.py +388 -89
- ccxt/coinbaseinternational.py +412 -57
- ccxt/coincatch.py +177 -78
- ccxt/coincheck.py +135 -19
- ccxt/coinex.py +606 -232
- ccxt/coinmate.py +189 -63
- ccxt/coinmetro.py +194 -54
- ccxt/coinone.py +158 -51
- ccxt/coinsph.py +336 -61
- ccxt/coinspot.py +151 -52
- ccxt/cryptocom.py +661 -111
- ccxt/cryptomus.py +1137 -0
- ccxt/defx.py +2070 -0
- ccxt/delta.py +299 -99
- ccxt/deribit.py +348 -126
- ccxt/derive.py +2571 -0
- ccxt/digifinex.py +430 -214
- ccxt/ellipx.py +2029 -0
- ccxt/eterex.py +7 -7
- ccxt/excoino.py +29 -29
- ccxt/exir.py +11 -11
- ccxt/exmo.py +343 -131
- ccxt/exnovin.py +8 -8
- ccxt/farhadexchange.py +10 -10
- ccxt/fmfwio.py +2 -1
- ccxt/foxbit.py +1935 -0
- ccxt/gate.py +1351 -529
- ccxt/gateio.py +2 -1
- ccxt/gemini.py +144 -39
- ccxt/hashkey.py +152 -109
- ccxt/hibachi.py +2079 -0
- ccxt/hitbtc.py +395 -167
- ccxt/hitobit.py +9 -9
- ccxt/hollaex.py +307 -119
- ccxt/htx.py +851 -383
- ccxt/huobi.py +2 -1
- ccxt/hyperliquid.py +1848 -536
- ccxt/independentreserve.py +287 -15
- ccxt/indodax.py +190 -33
- ccxt/jibitex.py +9 -9
- ccxt/kraken.py +794 -351
- ccxt/krakenfutures.py +214 -62
- ccxt/kucoin.py +715 -396
- ccxt/kucoinfutures.py +652 -89
- ccxt/latoken.py +217 -113
- ccxt/lbank.py +425 -97
- ccxt/luno.py +382 -35
- ccxt/mercado.py +113 -6
- ccxt/mexc.py +873 -437
- ccxt/modetrade.py +2818 -0
- ccxt/myokx.py +54 -0
- ccxt/ndax.py +221 -64
- ccxt/nobitex.py +29 -35
- ccxt/novadax.py +190 -34
- ccxt/oceanex.py +217 -28
- ccxt/okcoin.py +253 -145
- ccxt/okexchange.py +9 -9
- ccxt/okx.py +1088 -351
- ccxt/okxus.py +54 -0
- ccxt/ompfinex.py +22 -21
- ccxt/onetrading.py +213 -392
- ccxt/oxfun.py +245 -166
- ccxt/p2b.py +151 -29
- ccxt/paradex.py +562 -49
- ccxt/paymium.py +82 -19
- ccxt/phemex.py +712 -172
- ccxt/poloniex.py +1601 -283
- ccxt/pro/__init__.py +76 -17
- ccxt/pro/alpaca.py +21 -6
- ccxt/pro/apex.py +984 -0
- ccxt/pro/ascendex.py +58 -10
- ccxt/pro/bequant.py +6 -1
- ccxt/pro/binance.py +728 -156
- ccxt/pro/binancecoinm.py +6 -2
- ccxt/pro/binanceus.py +8 -4
- ccxt/pro/binanceusdm.py +7 -2
- ccxt/pro/bingx.py +333 -142
- ccxt/pro/bitfinex.py +727 -262
- ccxt/pro/bitget.py +570 -79
- ccxt/pro/bithumb.py +20 -6
- ccxt/pro/bitmart.py +216 -87
- ccxt/pro/bitmex.py +47 -9
- ccxt/pro/bitopro.py +26 -14
- ccxt/pro/bitrue.py +22 -22
- ccxt/pro/bitstamp.py +54 -21
- ccxt/pro/{huobijp.py → bittrade.py} +7 -6
- ccxt/pro/bitvavo.py +191 -67
- ccxt/pro/blockchaincom.py +21 -8
- ccxt/pro/blofin.py +9 -1
- ccxt/pro/bybit.py +632 -245
- ccxt/pro/cex.py +59 -24
- ccxt/pro/coinbase.py +102 -73
- ccxt/pro/coinbaseadvanced.py +2 -1
- ccxt/pro/coinbaseexchange.py +8 -8
- ccxt/pro/coinbaseinternational.py +181 -25
- ccxt/pro/coincatch.py +6 -7
- ccxt/pro/coincheck.py +11 -6
- ccxt/pro/coinex.py +967 -665
- ccxt/pro/coinone.py +16 -9
- ccxt/pro/cryptocom.py +448 -45
- ccxt/pro/defx.py +831 -0
- ccxt/pro/deribit.py +150 -14
- ccxt/pro/derive.py +704 -0
- ccxt/pro/exmo.py +239 -6
- ccxt/pro/gate.py +623 -65
- ccxt/pro/gateio.py +2 -1
- ccxt/pro/gemini.py +27 -11
- ccxt/pro/hashkey.py +2 -2
- ccxt/pro/hitbtc.py +196 -91
- ccxt/pro/hollaex.py +23 -7
- ccxt/pro/htx.py +51 -14
- ccxt/pro/huobi.py +2 -1
- ccxt/pro/hyperliquid.py +591 -27
- ccxt/pro/independentreserve.py +9 -6
- ccxt/pro/kraken.py +640 -320
- ccxt/pro/krakenfutures.py +62 -35
- ccxt/pro/kucoin.py +267 -46
- ccxt/pro/kucoinfutures.py +165 -21
- ccxt/pro/lbank.py +102 -21
- ccxt/pro/luno.py +12 -8
- ccxt/pro/mexc.py +877 -111
- ccxt/pro/modetrade.py +1271 -0
- ccxt/pro/myokx.py +38 -0
- ccxt/pro/ndax.py +15 -2
- ccxt/pro/okcoin.py +23 -4
- ccxt/pro/okx.py +573 -98
- ccxt/pro/okxus.py +38 -0
- ccxt/pro/onetrading.py +30 -13
- ccxt/pro/oxfun.py +131 -27
- ccxt/pro/p2b.py +88 -22
- ccxt/pro/paradex.py +3 -3
- ccxt/pro/phemex.py +75 -21
- ccxt/pro/poloniex.py +124 -41
- ccxt/pro/probit.py +87 -80
- ccxt/pro/tradeogre.py +272 -0
- ccxt/pro/upbit.py +152 -12
- ccxt/pro/vertex.py +8 -3
- ccxt/pro/whitebit.py +58 -5
- ccxt/pro/woo.py +228 -37
- ccxt/pro/woofipro.py +106 -18
- ccxt/pro/xt.py +111 -5
- ccxt/probit.py +224 -95
- ccxt/protobuf/__init__.py +0 -0
- ccxt/protobuf/mexc/PrivateAccountV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PrivateDealsV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PrivateOrdersV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicAggreBookTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicAggreDealsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicAggreDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicBookTickerBatchV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicBookTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicDealsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicIncreaseDepthsBatchV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicIncreaseDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicLimitDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicMiniTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicMiniTickersV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicSpotKlineV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PushDataV3ApiWrapper_pb2.py +52 -0
- ccxt/protobuf/mexc/__init__.py +0 -0
- ccxt/ramzinex.py +28 -25
- ccxt/sarmayex.py +7 -7
- ccxt/sarrafex.py +10 -10
- ccxt/static_dependencies/__init__.py +1 -1
- ccxt/static_dependencies/lark/py.typed +0 -0
- ccxt/static_dependencies/marshmallow/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
- ccxt/tabdeal.py +12 -11
- ccxt/test/tests_async.py +261 -57
- ccxt/test/tests_helpers.py +1 -3
- ccxt/test/tests_init.py +4 -3
- ccxt/test/tests_sync.py +261 -57
- ccxt/tetherland.py +7 -7
- ccxt/timex.py +210 -51
- ccxt/tokocrypto.py +167 -47
- ccxt/tradeogre.py +266 -31
- ccxt/twox.py +7 -7
- ccxt/ubitex.py +9 -9
- ccxt/upbit.py +568 -165
- ccxt/vertex.py +160 -32
- ccxt/wallex.py +9 -9
- ccxt/wavesexchange.py +165 -30
- ccxt/whitebit.py +975 -127
- ccxt/woo.py +1917 -1016
- ccxt/woofipro.py +432 -141
- ccxt/xt.py +649 -193
- ccxt/yobit.py +194 -70
- ccxt/zaif.py +91 -15
- ccxt/zonda.py +151 -36
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.0.dist-info}/METADATA +225 -73
- ccxt_ir-4.5.0.dist-info/RECORD +743 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.0.dist-info}/WHEEL +1 -1
- ccxt/__test__.py +0 -7
- ccxt/abstract/ace.py +0 -15
- ccxt/abstract/bitbay.py +0 -53
- ccxt/abstract/bitcoincom.py +0 -115
- ccxt/abstract/bitfinex2.py +0 -139
- ccxt/abstract/bitpanda.py +0 -35
- ccxt/abstract/bl3p.py +0 -19
- ccxt/abstract/coinlist.py +0 -54
- ccxt/abstract/currencycom.py +0 -68
- ccxt/abstract/hitbtc3.py +0 -115
- ccxt/abstract/idex.py +0 -26
- ccxt/abstract/kuna.py +0 -182
- ccxt/abstract/lykke.py +0 -29
- ccxt/abstract/poloniexfutures.py +0 -48
- ccxt/abstract/wazirx.py +0 -30
- ccxt/ace.py +0 -1012
- ccxt/async_support/ace.py +0 -1012
- ccxt/async_support/base/ws/aiohttp_client.py +0 -125
- ccxt/async_support/base/ws/fast_client.py +0 -96
- ccxt/async_support/bitbay.py +0 -17
- ccxt/async_support/bitcoincom.py +0 -17
- ccxt/async_support/bitfinex2.py +0 -3552
- ccxt/async_support/bitpanda.py +0 -16
- ccxt/async_support/bl3p.py +0 -485
- ccxt/async_support/coinlist.py +0 -2243
- ccxt/async_support/currencycom.py +0 -1950
- ccxt/async_support/hitbtc3.py +0 -16
- ccxt/async_support/idex.py +0 -1766
- ccxt/async_support/kuna.py +0 -1841
- ccxt/async_support/lykke.py +0 -1270
- ccxt/async_support/poloniexfutures.py +0 -1717
- ccxt/async_support/wazirx.py +0 -1224
- ccxt/bitbay.py +0 -17
- ccxt/bitcoincom.py +0 -17
- ccxt/bitfinex2.py +0 -3552
- ccxt/bitpanda.py +0 -16
- ccxt/bl3p.py +0 -485
- ccxt/coinlist.py +0 -2243
- ccxt/currencycom.py +0 -1950
- ccxt/hitbtc3.py +0 -16
- ccxt/idex.py +0 -1766
- ccxt/kuna.py +0 -1841
- ccxt/lykke.py +0 -1270
- ccxt/poloniexfutures.py +0 -1717
- ccxt/pro/bitcoincom.py +0 -34
- ccxt/pro/bitfinex2.py +0 -1083
- ccxt/pro/bitpanda.py +0 -15
- ccxt/pro/currencycom.py +0 -536
- ccxt/pro/idex.py +0 -672
- ccxt/pro/poloniexfutures.py +0 -990
- ccxt/pro/wazirx.py +0 -749
- ccxt/test/base/__init__.py +0 -29
- ccxt/test/base/test_account.py +0 -26
- ccxt/test/base/test_balance.py +0 -56
- ccxt/test/base/test_borrow_interest.py +0 -35
- ccxt/test/base/test_borrow_rate.py +0 -32
- ccxt/test/base/test_calculate_fee.py +0 -51
- ccxt/test/base/test_crypto.py +0 -127
- ccxt/test/base/test_currency.py +0 -76
- ccxt/test/base/test_datetime.py +0 -109
- ccxt/test/base/test_decimal_to_precision.py +0 -392
- ccxt/test/base/test_deep_extend.py +0 -68
- ccxt/test/base/test_deposit_withdrawal.py +0 -50
- ccxt/test/base/test_exchange_datetime_functions.py +0 -76
- ccxt/test/base/test_funding_rate_history.py +0 -29
- ccxt/test/base/test_last_price.py +0 -31
- ccxt/test/base/test_ledger_entry.py +0 -45
- ccxt/test/base/test_ledger_item.py +0 -48
- ccxt/test/base/test_leverage_tier.py +0 -33
- ccxt/test/base/test_liquidation.py +0 -50
- ccxt/test/base/test_margin_mode.py +0 -24
- ccxt/test/base/test_margin_modification.py +0 -35
- ccxt/test/base/test_market.py +0 -193
- ccxt/test/base/test_number.py +0 -411
- ccxt/test/base/test_ohlcv.py +0 -33
- ccxt/test/base/test_open_interest.py +0 -32
- ccxt/test/base/test_order.py +0 -64
- ccxt/test/base/test_order_book.py +0 -69
- ccxt/test/base/test_position.py +0 -60
- ccxt/test/base/test_shared_methods.py +0 -353
- ccxt/test/base/test_status.py +0 -24
- ccxt/test/base/test_throttle.py +0 -126
- ccxt/test/base/test_ticker.py +0 -92
- ccxt/test/base/test_trade.py +0 -47
- ccxt/test/base/test_trading_fee.py +0 -26
- ccxt/test/base/test_transaction.py +0 -39
- ccxt/test/test_async.py +0 -1649
- ccxt/test/test_sync.py +0 -1648
- ccxt/wazirx.py +0 -1224
- ccxt_ir-4.3.46.0.3.dist-info/RECORD +0 -773
- /ccxt/abstract/{huobijp.py → bittrade.py} +0 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.0.dist-info/licenses}/LICENSE.txt +0 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.0.dist-info}/top_level.txt +0 -0
ccxt/tetherland.py
CHANGED
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.tetherland import ImplicitAPI
|
|
8
|
-
from ccxt.base.types import Market, Strings, Ticker, Tickers
|
|
8
|
+
from ccxt.base.types import Any, Market, Strings, Ticker, Tickers
|
|
9
9
|
from typing import List
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class tetherland(Exchange, ImplicitAPI):
|
|
13
13
|
|
|
14
|
-
def describe(self):
|
|
14
|
+
def describe(self) -> Any:
|
|
15
15
|
return self.deep_extend(super(tetherland, self).describe(), {
|
|
16
16
|
'id': 'tetherland',
|
|
17
17
|
'name': 'TetherLand',
|
|
18
|
-
'
|
|
18
|
+
'countries': ['IR'],
|
|
19
19
|
'rateLimit': 1000,
|
|
20
20
|
'version': '1',
|
|
21
21
|
'certified': False,
|
|
@@ -111,10 +111,10 @@ class tetherland(Exchange, ImplicitAPI):
|
|
|
111
111
|
},
|
|
112
112
|
})
|
|
113
113
|
|
|
114
|
-
def fetch_markets(self,
|
|
114
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
|
115
115
|
"""
|
|
116
116
|
retrieves data on all markets for tetherland
|
|
117
|
-
|
|
117
|
+
https://docs.tetherland.com/docs/tetherland/71ca11f41704f-user-api
|
|
118
118
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
119
119
|
:returns dict[]: an array of objects representing market data
|
|
120
120
|
"""
|
|
@@ -234,7 +234,7 @@ class tetherland(Exchange, ImplicitAPI):
|
|
|
234
234
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
235
235
|
"""
|
|
236
236
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
237
|
-
|
|
237
|
+
https://docs.tetherland.com/docs/tetherland/71ca11f41704f-user-api
|
|
238
238
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
239
239
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
240
240
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -260,7 +260,7 @@ class tetherland(Exchange, ImplicitAPI):
|
|
|
260
260
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
261
261
|
"""
|
|
262
262
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
263
|
-
|
|
263
|
+
https://docs.tetherland.com/docs/tetherland/71ca11f41704f-user-api
|
|
264
264
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
265
265
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
266
266
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
ccxt/timex.py
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.timex import ImplicitAPI
|
|
8
|
-
from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction
|
|
8
|
+
from ccxt.base.types import Any, Balances, Currencies, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction
|
|
9
9
|
from typing import List
|
|
10
10
|
from ccxt.base.errors import ExchangeError
|
|
11
11
|
from ccxt.base.errors import AuthenticationError
|
|
@@ -24,7 +24,7 @@ from ccxt.base.precise import Precise
|
|
|
24
24
|
|
|
25
25
|
class timex(Exchange, ImplicitAPI):
|
|
26
26
|
|
|
27
|
-
def describe(self):
|
|
27
|
+
def describe(self) -> Any:
|
|
28
28
|
return self.deep_extend(super(timex, self).describe(), {
|
|
29
29
|
'id': 'timex',
|
|
30
30
|
'name': 'TimeX',
|
|
@@ -39,17 +39,27 @@ class timex(Exchange, ImplicitAPI):
|
|
|
39
39
|
'future': False,
|
|
40
40
|
'option': False,
|
|
41
41
|
'addMargin': False,
|
|
42
|
+
'borrowCrossMargin': False,
|
|
43
|
+
'borrowIsolatedMargin': False,
|
|
44
|
+
'borrowMargin': False,
|
|
42
45
|
'cancelOrder': True,
|
|
43
46
|
'cancelOrders': True,
|
|
47
|
+
'closeAllPositions': False,
|
|
48
|
+
'closePosition': False,
|
|
44
49
|
'createOrder': True,
|
|
45
50
|
'createReduceOnlyOrder': False,
|
|
46
51
|
'createStopLimitOrder': False,
|
|
47
52
|
'createStopMarketOrder': False,
|
|
48
53
|
'createStopOrder': False,
|
|
49
54
|
'editOrder': True,
|
|
55
|
+
'fetchAllGreeks': False,
|
|
50
56
|
'fetchBalance': True,
|
|
57
|
+
'fetchBorrowInterest': False,
|
|
58
|
+
'fetchBorrowRate': False,
|
|
51
59
|
'fetchBorrowRateHistories': False,
|
|
52
60
|
'fetchBorrowRateHistory': False,
|
|
61
|
+
'fetchBorrowRates': False,
|
|
62
|
+
'fetchBorrowRatesPerSymbol': False,
|
|
53
63
|
'fetchClosedOrders': True,
|
|
54
64
|
'fetchCrossBorrowRate': False,
|
|
55
65
|
'fetchCrossBorrowRates': False,
|
|
@@ -60,21 +70,40 @@ class timex(Exchange, ImplicitAPI):
|
|
|
60
70
|
'fetchDepositAddressesByNetwork': False,
|
|
61
71
|
'fetchDeposits': True,
|
|
62
72
|
'fetchFundingHistory': False,
|
|
73
|
+
'fetchFundingInterval': False,
|
|
74
|
+
'fetchFundingIntervals': False,
|
|
63
75
|
'fetchFundingRate': False,
|
|
64
76
|
'fetchFundingRateHistory': False,
|
|
65
77
|
'fetchFundingRates': False,
|
|
78
|
+
'fetchGreeks': False,
|
|
66
79
|
'fetchIndexOHLCV': False,
|
|
67
80
|
'fetchIsolatedBorrowRate': False,
|
|
68
81
|
'fetchIsolatedBorrowRates': False,
|
|
82
|
+
'fetchIsolatedPositions': False,
|
|
69
83
|
'fetchLeverage': False,
|
|
84
|
+
'fetchLeverages': False,
|
|
70
85
|
'fetchLeverageTiers': False,
|
|
86
|
+
'fetchLiquidations': False,
|
|
87
|
+
'fetchLongShortRatio': False,
|
|
88
|
+
'fetchLongShortRatioHistory': False,
|
|
89
|
+
'fetchMarginAdjustmentHistory': False,
|
|
71
90
|
'fetchMarginMode': False,
|
|
91
|
+
'fetchMarginModes': False,
|
|
92
|
+
'fetchMarketLeverageTiers': False,
|
|
72
93
|
'fetchMarkets': True,
|
|
73
94
|
'fetchMarkOHLCV': False,
|
|
95
|
+
'fetchMarkPrice': False,
|
|
96
|
+
'fetchMarkPrices': False,
|
|
97
|
+
'fetchMyLiquidations': False,
|
|
98
|
+
'fetchMySettlementHistory': False,
|
|
74
99
|
'fetchMyTrades': True,
|
|
75
100
|
'fetchOHLCV': True,
|
|
101
|
+
'fetchOpenInterest': False,
|
|
76
102
|
'fetchOpenInterestHistory': False,
|
|
103
|
+
'fetchOpenInterests': False,
|
|
77
104
|
'fetchOpenOrders': True,
|
|
105
|
+
'fetchOption': False,
|
|
106
|
+
'fetchOptionChain': False,
|
|
78
107
|
'fetchOrder': True,
|
|
79
108
|
'fetchOrderBook': True,
|
|
80
109
|
'fetchPosition': False,
|
|
@@ -85,15 +114,21 @@ class timex(Exchange, ImplicitAPI):
|
|
|
85
114
|
'fetchPositionsHistory': False,
|
|
86
115
|
'fetchPositionsRisk': False,
|
|
87
116
|
'fetchPremiumIndexOHLCV': False,
|
|
117
|
+
'fetchSettlementHistory': False,
|
|
88
118
|
'fetchTicker': True,
|
|
89
119
|
'fetchTickers': True,
|
|
90
120
|
'fetchTime': True,
|
|
91
121
|
'fetchTrades': True,
|
|
92
122
|
'fetchTradingFee': True, # maker fee only
|
|
123
|
+
'fetchUnderlyingAssets': False,
|
|
124
|
+
'fetchVolatilityHistory': False,
|
|
93
125
|
'fetchWithdrawal': False,
|
|
94
126
|
'fetchWithdrawals': True,
|
|
95
127
|
'reduceMargin': False,
|
|
128
|
+
'repayCrossMargin': False,
|
|
129
|
+
'repayIsolatedMargin': False,
|
|
96
130
|
'setLeverage': False,
|
|
131
|
+
'setMargin': False,
|
|
97
132
|
'setMarginMode': False,
|
|
98
133
|
'setPositionMode': False,
|
|
99
134
|
},
|
|
@@ -281,9 +316,80 @@ class timex(Exchange, ImplicitAPI):
|
|
|
281
316
|
'defaultSort': 'timestamp,asc',
|
|
282
317
|
'defaultSortOrders': 'createdAt,asc',
|
|
283
318
|
},
|
|
319
|
+
'features': {
|
|
320
|
+
'spot': {
|
|
321
|
+
'sandbox': False,
|
|
322
|
+
'createOrder': {
|
|
323
|
+
'marginMode': False,
|
|
324
|
+
'triggerPrice': False,
|
|
325
|
+
'triggerDirection': False,
|
|
326
|
+
'triggerPriceType': None,
|
|
327
|
+
'stopLossPrice': False,
|
|
328
|
+
'takeProfitPrice': False,
|
|
329
|
+
'attachedStopLossTakeProfit': None,
|
|
330
|
+
# todo
|
|
331
|
+
'timeInForce': {
|
|
332
|
+
'IOC': True,
|
|
333
|
+
'FOK': True,
|
|
334
|
+
'PO': False,
|
|
335
|
+
'GTD': True,
|
|
336
|
+
},
|
|
337
|
+
'hedged': False,
|
|
338
|
+
'trailing': False,
|
|
339
|
+
'leverage': False,
|
|
340
|
+
'marketBuyByCost': False,
|
|
341
|
+
'marketBuyRequiresPrice': False,
|
|
342
|
+
'selfTradePrevention': False,
|
|
343
|
+
'iceberg': False,
|
|
344
|
+
},
|
|
345
|
+
'createOrders': None,
|
|
346
|
+
'fetchMyTrades': {
|
|
347
|
+
'marginMode': False,
|
|
348
|
+
'limit': 100, # todo
|
|
349
|
+
'daysBack': 100000, # todo
|
|
350
|
+
'untilDays': 100000, # todo
|
|
351
|
+
'symbolRequired': False,
|
|
352
|
+
},
|
|
353
|
+
'fetchOrder': {
|
|
354
|
+
'marginMode': False,
|
|
355
|
+
'trigger': False,
|
|
356
|
+
'trailing': False,
|
|
357
|
+
'symbolRequired': False,
|
|
358
|
+
},
|
|
359
|
+
'fetchOpenOrders': {
|
|
360
|
+
'marginMode': False,
|
|
361
|
+
'limit': 100, # todo
|
|
362
|
+
'trigger': False,
|
|
363
|
+
'trailing': False,
|
|
364
|
+
'symbolRequired': False,
|
|
365
|
+
},
|
|
366
|
+
'fetchOrders': None, # todo
|
|
367
|
+
'fetchClosedOrders': {
|
|
368
|
+
'marginMode': False,
|
|
369
|
+
'limit': 100, # todo
|
|
370
|
+
'daysBack': 100000, # todo
|
|
371
|
+
'daysBackCanceled': 1, # todo
|
|
372
|
+
'untilDays': 100000, # todo
|
|
373
|
+
'trigger': False,
|
|
374
|
+
'trailing': False,
|
|
375
|
+
'symbolRequired': False,
|
|
376
|
+
},
|
|
377
|
+
'fetchOHLCV': {
|
|
378
|
+
'limit': None,
|
|
379
|
+
},
|
|
380
|
+
},
|
|
381
|
+
'swap': {
|
|
382
|
+
'linear': None,
|
|
383
|
+
'inverse': None,
|
|
384
|
+
},
|
|
385
|
+
'future': {
|
|
386
|
+
'linear': None,
|
|
387
|
+
'inverse': None,
|
|
388
|
+
},
|
|
389
|
+
},
|
|
284
390
|
})
|
|
285
391
|
|
|
286
|
-
def fetch_time(self, params={}):
|
|
392
|
+
def fetch_time(self, params={}) -> Int:
|
|
287
393
|
"""
|
|
288
394
|
fetches the current integer timestamp in milliseconds from the exchange server
|
|
289
395
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -298,7 +404,9 @@ class timex(Exchange, ImplicitAPI):
|
|
|
298
404
|
def fetch_markets(self, params={}) -> List[Market]:
|
|
299
405
|
"""
|
|
300
406
|
retrieves data on all markets for timex
|
|
301
|
-
|
|
407
|
+
|
|
408
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Public/listMarkets
|
|
409
|
+
|
|
302
410
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
303
411
|
:returns dict[]: an array of objects representing market data
|
|
304
412
|
"""
|
|
@@ -329,7 +437,9 @@ class timex(Exchange, ImplicitAPI):
|
|
|
329
437
|
def fetch_currencies(self, params={}) -> Currencies:
|
|
330
438
|
"""
|
|
331
439
|
fetches all available currencies on an exchange
|
|
332
|
-
|
|
440
|
+
|
|
441
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Public/listCurrencies
|
|
442
|
+
|
|
333
443
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
334
444
|
:returns dict: an associative dictionary of currencies
|
|
335
445
|
"""
|
|
@@ -359,16 +469,14 @@ class timex(Exchange, ImplicitAPI):
|
|
|
359
469
|
# },
|
|
360
470
|
# ]
|
|
361
471
|
#
|
|
362
|
-
|
|
363
|
-
for i in range(0, len(response)):
|
|
364
|
-
currency = response[i]
|
|
365
|
-
result.append(self.parse_currency(currency))
|
|
366
|
-
return self.index_by(result, 'code')
|
|
472
|
+
return self.parse_currencies(response)
|
|
367
473
|
|
|
368
474
|
def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
369
475
|
"""
|
|
370
476
|
fetch all deposits made to an account
|
|
371
|
-
|
|
477
|
+
|
|
478
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Manager/getDeposits
|
|
479
|
+
|
|
372
480
|
:param str code: unified currency code
|
|
373
481
|
:param int [since]: the earliest time in ms to fetch deposits for
|
|
374
482
|
:param int [limit]: the maximum number of deposits structures to retrieve
|
|
@@ -401,7 +509,9 @@ class timex(Exchange, ImplicitAPI):
|
|
|
401
509
|
def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
402
510
|
"""
|
|
403
511
|
fetch all withdrawals made to an account
|
|
404
|
-
|
|
512
|
+
|
|
513
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Manager/getWithdraws
|
|
514
|
+
|
|
405
515
|
:param str code: unified currency code
|
|
406
516
|
:param int [since]: the earliest time in ms to fetch withdrawals for
|
|
407
517
|
:param int [limit]: the maximum number of transaction structures to retrieve
|
|
@@ -481,7 +591,9 @@ class timex(Exchange, ImplicitAPI):
|
|
|
481
591
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
482
592
|
"""
|
|
483
593
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
484
|
-
|
|
594
|
+
|
|
595
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Public/listTickers
|
|
596
|
+
|
|
485
597
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
486
598
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
487
599
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -514,7 +626,9 @@ class timex(Exchange, ImplicitAPI):
|
|
|
514
626
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
515
627
|
"""
|
|
516
628
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
517
|
-
|
|
629
|
+
|
|
630
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Public/listTickers
|
|
631
|
+
|
|
518
632
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
519
633
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
520
634
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -550,7 +664,9 @@ class timex(Exchange, ImplicitAPI):
|
|
|
550
664
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
551
665
|
"""
|
|
552
666
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
553
|
-
|
|
667
|
+
|
|
668
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Public/orderbookV2
|
|
669
|
+
|
|
554
670
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
555
671
|
:param int [limit]: the maximum amount of order book entries to return
|
|
556
672
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -594,7 +710,9 @@ class timex(Exchange, ImplicitAPI):
|
|
|
594
710
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
595
711
|
"""
|
|
596
712
|
get the list of most recent trades for a particular symbol
|
|
597
|
-
|
|
713
|
+
|
|
714
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Public/listTrades
|
|
715
|
+
|
|
598
716
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
599
717
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
600
718
|
:param int [limit]: the maximum amount of trades to fetch
|
|
@@ -638,12 +756,15 @@ class timex(Exchange, ImplicitAPI):
|
|
|
638
756
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
639
757
|
"""
|
|
640
758
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
641
|
-
|
|
759
|
+
|
|
760
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Public/listCandles
|
|
761
|
+
|
|
642
762
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
643
763
|
:param str timeframe: the length of time each candle represents
|
|
644
764
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
645
765
|
:param int [limit]: the maximum amount of candles to fetch
|
|
646
766
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
767
|
+
:param int [params.until]: timestamp in ms of the latest candle to fetch
|
|
647
768
|
:returns int[][]: A list of candles ordered, open, high, low, close, volume
|
|
648
769
|
"""
|
|
649
770
|
self.load_markets()
|
|
@@ -654,15 +775,24 @@ class timex(Exchange, ImplicitAPI):
|
|
|
654
775
|
}
|
|
655
776
|
# if since and limit are not specified
|
|
656
777
|
duration = self.parse_timeframe(timeframe)
|
|
778
|
+
until = self.safe_integer(params, 'until')
|
|
657
779
|
if limit is None:
|
|
658
780
|
limit = 1000 # exchange provides tens of thousands of data, but we set generous default value
|
|
659
781
|
if since is not None:
|
|
660
782
|
request['from'] = self.iso8601(since)
|
|
661
|
-
|
|
783
|
+
if until is None:
|
|
784
|
+
request['till'] = self.iso8601(self.sum(since, self.sum(limit, 1) * duration * 1000))
|
|
785
|
+
else:
|
|
786
|
+
request['till'] = self.iso8601(until)
|
|
787
|
+
elif until is not None:
|
|
788
|
+
request['till'] = self.iso8601(until)
|
|
789
|
+
fromTimestamp = until - self.sum(limit, 1) * duration * 1000
|
|
790
|
+
request['from'] = self.iso8601(fromTimestamp)
|
|
662
791
|
else:
|
|
663
792
|
now = self.milliseconds()
|
|
664
793
|
request['till'] = self.iso8601(now)
|
|
665
|
-
request['from'] = self.iso8601(now - limit * duration * 1000 - 1)
|
|
794
|
+
request['from'] = self.iso8601(now - self.sum(limit, 1) * duration * 1000 - 1)
|
|
795
|
+
params = self.omit(params, 'until')
|
|
666
796
|
response = self.publicGetCandles(self.extend(request, params))
|
|
667
797
|
#
|
|
668
798
|
# [
|
|
@@ -698,7 +828,9 @@ class timex(Exchange, ImplicitAPI):
|
|
|
698
828
|
def fetch_balance(self, params={}) -> Balances:
|
|
699
829
|
"""
|
|
700
830
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
|
701
|
-
|
|
831
|
+
|
|
832
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Trading/getBalances
|
|
833
|
+
|
|
702
834
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
703
835
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
|
704
836
|
"""
|
|
@@ -718,12 +850,14 @@ class timex(Exchange, ImplicitAPI):
|
|
|
718
850
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
719
851
|
"""
|
|
720
852
|
create a trade order
|
|
721
|
-
|
|
853
|
+
|
|
854
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Trading/createOrder
|
|
855
|
+
|
|
722
856
|
:param str symbol: unified symbol of the market to create an order in
|
|
723
857
|
:param str type: 'market' or 'limit'
|
|
724
858
|
:param str side: 'buy' or 'sell'
|
|
725
859
|
:param float amount: how much of currency you want to trade in units of base currency
|
|
726
|
-
:param float [price]: the price at which the order is to be
|
|
860
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
727
861
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
728
862
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
729
863
|
"""
|
|
@@ -836,19 +970,24 @@ class timex(Exchange, ImplicitAPI):
|
|
|
836
970
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
837
971
|
"""
|
|
838
972
|
cancels an open order
|
|
839
|
-
|
|
973
|
+
|
|
974
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Trading/deleteOrders
|
|
975
|
+
|
|
840
976
|
:param str id: order id
|
|
841
977
|
:param str symbol: not used by timex cancelOrder()
|
|
842
978
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
843
979
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
844
980
|
"""
|
|
845
981
|
self.load_markets()
|
|
846
|
-
|
|
982
|
+
orders = self.cancel_orders([id], symbol, params)
|
|
983
|
+
return self.safe_dict(orders, 0)
|
|
847
984
|
|
|
848
985
|
def cancel_orders(self, ids, symbol: Str = None, params={}):
|
|
849
986
|
"""
|
|
850
987
|
cancel multiple orders
|
|
851
|
-
|
|
988
|
+
|
|
989
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Trading/deleteOrders
|
|
990
|
+
|
|
852
991
|
:param str[] ids: order ids
|
|
853
992
|
:param str symbol: unified market symbol, default is None
|
|
854
993
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -883,12 +1022,28 @@ class timex(Exchange, ImplicitAPI):
|
|
|
883
1022
|
# ],
|
|
884
1023
|
# "unchangedOrders": ["string"],
|
|
885
1024
|
# }
|
|
886
|
-
|
|
1025
|
+
#
|
|
1026
|
+
changedOrders = self.safe_list(response, 'changedOrders', [])
|
|
1027
|
+
unchangedOrders = self.safe_list(response, 'unchangedOrders', [])
|
|
1028
|
+
orders = []
|
|
1029
|
+
for i in range(0, len(changedOrders)):
|
|
1030
|
+
newOrder = self.safe_dict(changedOrders[i], 'newOrder')
|
|
1031
|
+
orders.append(self.parse_order(newOrder))
|
|
1032
|
+
for i in range(0, len(unchangedOrders)):
|
|
1033
|
+
orders.append(self.safe_order({
|
|
1034
|
+
'info': unchangedOrders[i],
|
|
1035
|
+
'id': unchangedOrders[i],
|
|
1036
|
+
'status': 'unchanged',
|
|
1037
|
+
}))
|
|
1038
|
+
return orders
|
|
887
1039
|
|
|
888
1040
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
|
889
1041
|
"""
|
|
890
1042
|
fetches information on an order made by the user
|
|
891
|
-
|
|
1043
|
+
|
|
1044
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/History/getOrderDetails
|
|
1045
|
+
|
|
1046
|
+
:param str id: order id
|
|
892
1047
|
:param str symbol: not used by timex fetchOrder
|
|
893
1048
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
894
1049
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -938,7 +1093,9 @@ class timex(Exchange, ImplicitAPI):
|
|
|
938
1093
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
939
1094
|
"""
|
|
940
1095
|
fetch all unfilled currently open orders
|
|
941
|
-
|
|
1096
|
+
|
|
1097
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Trading/getOpenOrders
|
|
1098
|
+
|
|
942
1099
|
:param str symbol: unified market symbol
|
|
943
1100
|
:param int [since]: the earliest time in ms to fetch open orders for
|
|
944
1101
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
|
@@ -989,7 +1146,9 @@ class timex(Exchange, ImplicitAPI):
|
|
|
989
1146
|
def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
990
1147
|
"""
|
|
991
1148
|
fetches information on multiple closed orders made by the user
|
|
992
|
-
|
|
1149
|
+
|
|
1150
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/History/getOrders
|
|
1151
|
+
|
|
993
1152
|
:param str symbol: unified market symbol of the market orders were made in
|
|
994
1153
|
:param int [since]: the earliest time in ms to fetch orders for
|
|
995
1154
|
:param int [limit]: the maximum number of order structures to retrieve
|
|
@@ -1044,7 +1203,9 @@ class timex(Exchange, ImplicitAPI):
|
|
|
1044
1203
|
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1045
1204
|
"""
|
|
1046
1205
|
fetch all trades made by the user
|
|
1047
|
-
|
|
1206
|
+
|
|
1207
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/History/getTrades_1
|
|
1208
|
+
|
|
1048
1209
|
:param str symbol: unified market symbol
|
|
1049
1210
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
1050
1211
|
:param int [limit]: the maximum number of trades structures to retrieve
|
|
@@ -1120,7 +1281,9 @@ class timex(Exchange, ImplicitAPI):
|
|
|
1120
1281
|
def fetch_trading_fee(self, symbol: str, params={}) -> TradingFeeInterface:
|
|
1121
1282
|
"""
|
|
1122
1283
|
fetch the trading fees for a market
|
|
1123
|
-
|
|
1284
|
+
|
|
1285
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Trading/getFees
|
|
1286
|
+
|
|
1124
1287
|
:param str symbol: unified market symbol
|
|
1125
1288
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1126
1289
|
:returns dict: a `fee structure <https://docs.ccxt.com/#/?id=fee-structure>`
|
|
@@ -1225,7 +1388,7 @@ class timex(Exchange, ImplicitAPI):
|
|
|
1225
1388
|
'info': market,
|
|
1226
1389
|
}
|
|
1227
1390
|
|
|
1228
|
-
def parse_currency(self, currency: dict):
|
|
1391
|
+
def parse_currency(self, currency: dict) -> Currency:
|
|
1229
1392
|
#
|
|
1230
1393
|
# {
|
|
1231
1394
|
# "symbol": "BTC",
|
|
@@ -1265,11 +1428,6 @@ class timex(Exchange, ImplicitAPI):
|
|
|
1265
1428
|
#
|
|
1266
1429
|
id = self.safe_string(currency, 'symbol')
|
|
1267
1430
|
code = self.safe_currency_code(id)
|
|
1268
|
-
name = self.safe_string(currency, 'name')
|
|
1269
|
-
depositEnabled = self.safe_value(currency, 'depositEnabled')
|
|
1270
|
-
withdrawEnabled = self.safe_value(currency, 'withdrawalEnabled')
|
|
1271
|
-
isActive = self.safe_value(currency, 'active')
|
|
1272
|
-
active = depositEnabled and withdrawEnabled and isActive
|
|
1273
1431
|
# fee = self.safe_number(currency, 'withdrawalFee')
|
|
1274
1432
|
feeString = self.safe_string(currency, 'withdrawalFee')
|
|
1275
1433
|
tradeDecimals = self.safe_integer(currency, 'tradeDecimals')
|
|
@@ -1286,23 +1444,23 @@ class timex(Exchange, ImplicitAPI):
|
|
|
1286
1444
|
for i in range(0, -dotIndex):
|
|
1287
1445
|
fraction += '0'
|
|
1288
1446
|
fee = self.parse_number(fraction + feeString)
|
|
1289
|
-
return {
|
|
1447
|
+
return self.safe_currency_structure({
|
|
1290
1448
|
'id': code,
|
|
1291
1449
|
'code': code,
|
|
1292
1450
|
'info': currency,
|
|
1293
1451
|
'type': None,
|
|
1294
|
-
'name': name,
|
|
1295
|
-
'active': active,
|
|
1296
|
-
'deposit': depositEnabled,
|
|
1297
|
-
'withdraw':
|
|
1452
|
+
'name': self.safe_string(currency, 'name'),
|
|
1453
|
+
'active': self.safe_bool(currency, 'active'),
|
|
1454
|
+
'deposit': self.safe_bool(currency, 'depositEnabled'),
|
|
1455
|
+
'withdraw': self.safe_bool(currency, 'withdrawalEnabled'),
|
|
1298
1456
|
'fee': fee,
|
|
1299
1457
|
'precision': self.parse_number(self.parse_precision(self.safe_string(currency, 'decimals'))),
|
|
1300
1458
|
'limits': {
|
|
1301
|
-
'withdraw': {'min':
|
|
1459
|
+
'withdraw': {'min': None, 'max': None},
|
|
1302
1460
|
'amount': {'min': None, 'max': None},
|
|
1303
1461
|
},
|
|
1304
1462
|
'networks': {},
|
|
1305
|
-
}
|
|
1463
|
+
})
|
|
1306
1464
|
|
|
1307
1465
|
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
|
1308
1466
|
#
|
|
@@ -1398,7 +1556,7 @@ class timex(Exchange, ImplicitAPI):
|
|
|
1398
1556
|
'cost': feeCost,
|
|
1399
1557
|
'currency': feeCurrency,
|
|
1400
1558
|
}
|
|
1401
|
-
return {
|
|
1559
|
+
return self.safe_trade({
|
|
1402
1560
|
'info': trade,
|
|
1403
1561
|
'id': id,
|
|
1404
1562
|
'timestamp': timestamp,
|
|
@@ -1412,7 +1570,7 @@ class timex(Exchange, ImplicitAPI):
|
|
|
1412
1570
|
'cost': cost,
|
|
1413
1571
|
'takerOrMaker': takerOrMaker,
|
|
1414
1572
|
'fee': fee,
|
|
1415
|
-
}
|
|
1573
|
+
})
|
|
1416
1574
|
|
|
1417
1575
|
def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
|
|
1418
1576
|
#
|
|
@@ -1488,7 +1646,6 @@ class timex(Exchange, ImplicitAPI):
|
|
|
1488
1646
|
'postOnly': None,
|
|
1489
1647
|
'side': side,
|
|
1490
1648
|
'price': price,
|
|
1491
|
-
'stopPrice': None,
|
|
1492
1649
|
'triggerPrice': None,
|
|
1493
1650
|
'amount': amount,
|
|
1494
1651
|
'cost': None,
|
|
@@ -1500,10 +1657,12 @@ class timex(Exchange, ImplicitAPI):
|
|
|
1500
1657
|
'trades': rawTrades,
|
|
1501
1658
|
}, market)
|
|
1502
1659
|
|
|
1503
|
-
def fetch_deposit_address(self, code: str, params={}):
|
|
1660
|
+
def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
|
|
1504
1661
|
"""
|
|
1505
1662
|
fetch the deposit address for a currency associated with self account, does not accept params["network"]
|
|
1506
|
-
|
|
1663
|
+
|
|
1664
|
+
https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Currency/selectCurrencyBySymbol
|
|
1665
|
+
|
|
1507
1666
|
:param str code: unified currency code
|
|
1508
1667
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1509
1668
|
:returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
|
|
@@ -1534,7 +1693,7 @@ class timex(Exchange, ImplicitAPI):
|
|
|
1534
1693
|
data = self.safe_dict(response, 'currency', {})
|
|
1535
1694
|
return self.parse_deposit_address(data, currency)
|
|
1536
1695
|
|
|
1537
|
-
def parse_deposit_address(self, depositAddress, currency: Currency = None):
|
|
1696
|
+
def parse_deposit_address(self, depositAddress, currency: Currency = None) -> DepositAddress:
|
|
1538
1697
|
#
|
|
1539
1698
|
# {
|
|
1540
1699
|
# symbol: 'BTC',
|
|
@@ -1553,9 +1712,9 @@ class timex(Exchange, ImplicitAPI):
|
|
|
1553
1712
|
return {
|
|
1554
1713
|
'info': depositAddress,
|
|
1555
1714
|
'currency': self.safe_currency_code(currencyId, currency),
|
|
1715
|
+
'network': None,
|
|
1556
1716
|
'address': self.safe_string(depositAddress, 'address'),
|
|
1557
1717
|
'tag': None,
|
|
1558
|
-
'network': None,
|
|
1559
1718
|
}
|
|
1560
1719
|
|
|
1561
1720
|
def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
|