ccxt-ir 4.3.46.0.2__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 +9 -9
- 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 +10 -10
- 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.2.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.2.dist-info → ccxt_ir-4.5.0.dist-info}/WHEEL +1 -1
- 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.2.dist-info/RECORD +0 -772
- /ccxt/abstract/{huobijp.py → bittrade.py} +0 -0
- {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info/licenses}/LICENSE.txt +0 -0
- {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info}/top_level.txt +0 -0
ccxt/async_support/latoken.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.latoken import ImplicitAPI
|
|
8
8
|
import hashlib
|
|
9
|
-
from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry
|
|
9
|
+
from ccxt.base.types import Any, Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry
|
|
10
10
|
from typing import List
|
|
11
11
|
from ccxt.base.errors import ExchangeError
|
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
|
@@ -26,7 +26,7 @@ from ccxt.base.decimal_to_precision import TICK_SIZE
|
|
|
26
26
|
|
|
27
27
|
class latoken(Exchange, ImplicitAPI):
|
|
28
28
|
|
|
29
|
-
def describe(self):
|
|
29
|
+
def describe(self) -> Any:
|
|
30
30
|
return self.deep_extend(super(latoken, self).describe(), {
|
|
31
31
|
'id': 'latoken',
|
|
32
32
|
'name': 'Latoken',
|
|
@@ -40,6 +40,10 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
40
40
|
'swap': False,
|
|
41
41
|
'future': False,
|
|
42
42
|
'option': False,
|
|
43
|
+
'addMargin': False,
|
|
44
|
+
'borrowCrossMargin': False,
|
|
45
|
+
'borrowIsolatedMargin': False,
|
|
46
|
+
'borrowMargin': False,
|
|
43
47
|
'cancelAllOrders': True,
|
|
44
48
|
'cancelOrder': True,
|
|
45
49
|
'closeAllPositions': False,
|
|
@@ -49,9 +53,14 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
49
53
|
'createStopLimitOrder': True,
|
|
50
54
|
'createStopMarketOrder': False,
|
|
51
55
|
'createStopOrder': True,
|
|
56
|
+
'fetchAllGreeks': False,
|
|
52
57
|
'fetchBalance': True,
|
|
58
|
+
'fetchBorrowInterest': False,
|
|
59
|
+
'fetchBorrowRate': False,
|
|
53
60
|
'fetchBorrowRateHistories': False,
|
|
54
61
|
'fetchBorrowRateHistory': False,
|
|
62
|
+
'fetchBorrowRates': False,
|
|
63
|
+
'fetchBorrowRatesPerSymbol': False,
|
|
55
64
|
'fetchCrossBorrowRate': False,
|
|
56
65
|
'fetchCrossBorrowRates': False,
|
|
57
66
|
'fetchCurrencies': True,
|
|
@@ -60,12 +69,40 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
60
69
|
'fetchDepositAddressesByNetwork': False,
|
|
61
70
|
'fetchDepositsWithdrawals': True,
|
|
62
71
|
'fetchDepositWithdrawFees': False,
|
|
72
|
+
'fetchFundingHistory': False,
|
|
73
|
+
'fetchFundingInterval': False,
|
|
74
|
+
'fetchFundingIntervals': False,
|
|
75
|
+
'fetchFundingRate': False,
|
|
76
|
+
'fetchFundingRateHistory': False,
|
|
77
|
+
'fetchFundingRates': False,
|
|
78
|
+
'fetchGreeks': False,
|
|
79
|
+
'fetchIndexOHLCV': False,
|
|
63
80
|
'fetchIsolatedBorrowRate': False,
|
|
64
81
|
'fetchIsolatedBorrowRates': False,
|
|
82
|
+
'fetchIsolatedPositions': False,
|
|
83
|
+
'fetchLeverage': False,
|
|
84
|
+
'fetchLeverages': False,
|
|
85
|
+
'fetchLeverageTiers': False,
|
|
86
|
+
'fetchLiquidations': False,
|
|
87
|
+
'fetchLongShortRatio': False,
|
|
88
|
+
'fetchLongShortRatioHistory': False,
|
|
89
|
+
'fetchMarginAdjustmentHistory': False,
|
|
65
90
|
'fetchMarginMode': False,
|
|
91
|
+
'fetchMarginModes': False,
|
|
92
|
+
'fetchMarketLeverageTiers': False,
|
|
66
93
|
'fetchMarkets': True,
|
|
94
|
+
'fetchMarkOHLCV': False,
|
|
95
|
+
'fetchMarkPrice': False,
|
|
96
|
+
'fetchMarkPrices': False,
|
|
97
|
+
'fetchMyLiquidations': False,
|
|
98
|
+
'fetchMySettlementHistory': False,
|
|
67
99
|
'fetchMyTrades': True,
|
|
100
|
+
'fetchOpenInterest': False,
|
|
101
|
+
'fetchOpenInterestHistory': False,
|
|
102
|
+
'fetchOpenInterests': False,
|
|
68
103
|
'fetchOpenOrders': True,
|
|
104
|
+
'fetchOption': False,
|
|
105
|
+
'fetchOptionChain': False,
|
|
69
106
|
'fetchOrder': True,
|
|
70
107
|
'fetchOrderBook': True,
|
|
71
108
|
'fetchOrders': True,
|
|
@@ -76,6 +113,8 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
76
113
|
'fetchPositionsForSymbol': False,
|
|
77
114
|
'fetchPositionsHistory': False,
|
|
78
115
|
'fetchPositionsRisk': False,
|
|
116
|
+
'fetchPremiumIndexOHLCV': False,
|
|
117
|
+
'fetchSettlementHistory': False,
|
|
79
118
|
'fetchTicker': True,
|
|
80
119
|
'fetchTickers': True,
|
|
81
120
|
'fetchTime': True,
|
|
@@ -85,6 +124,15 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
85
124
|
'fetchTransactions': 'emulated',
|
|
86
125
|
'fetchTransfer': False,
|
|
87
126
|
'fetchTransfers': True,
|
|
127
|
+
'fetchUnderlyingAssets': False,
|
|
128
|
+
'fetchVolatilityHistory': False,
|
|
129
|
+
'reduceMargin': False,
|
|
130
|
+
'repayCrossMargin': False,
|
|
131
|
+
'repayIsolatedMargin': False,
|
|
132
|
+
'setLeverage': False,
|
|
133
|
+
'setMargin': False,
|
|
134
|
+
'setMarginMode': False,
|
|
135
|
+
'setPositionMode': False,
|
|
88
136
|
'transfer': True,
|
|
89
137
|
},
|
|
90
138
|
'urls': {
|
|
@@ -241,16 +289,88 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
241
289
|
'fetchTradingFee': {
|
|
242
290
|
'method': 'fetchPrivateTradingFee', # or 'fetchPublicTradingFee'
|
|
243
291
|
},
|
|
292
|
+
'timeDifference': 0, # the difference between system clock and exchange clock
|
|
293
|
+
'adjustForTimeDifference': True, # controls the adjustment logic upon instantiation
|
|
294
|
+
},
|
|
295
|
+
'features': {
|
|
296
|
+
'spot': {
|
|
297
|
+
'sandbox': False,
|
|
298
|
+
'createOrder': {
|
|
299
|
+
'marginMode': False,
|
|
300
|
+
'triggerPrice': True,
|
|
301
|
+
'triggerPriceType': None,
|
|
302
|
+
'triggerDirection': False,
|
|
303
|
+
'stopLossPrice': False, # todo
|
|
304
|
+
'takeProfitPrice': False, # todo
|
|
305
|
+
'attachedStopLossTakeProfit': None,
|
|
306
|
+
'timeInForce': {
|
|
307
|
+
'IOC': True, # todo: for non-trigger orders
|
|
308
|
+
'FOK': True,
|
|
309
|
+
'PO': False,
|
|
310
|
+
'GTD': False,
|
|
311
|
+
},
|
|
312
|
+
'hedged': False,
|
|
313
|
+
'selfTradePrevention': False,
|
|
314
|
+
'trailing': False,
|
|
315
|
+
'leverage': False,
|
|
316
|
+
'marketBuyByCost': True,
|
|
317
|
+
'marketBuyRequiresPrice': False,
|
|
318
|
+
'iceberg': False,
|
|
319
|
+
},
|
|
320
|
+
'createOrders': None,
|
|
321
|
+
'fetchMyTrades': {
|
|
322
|
+
'marginMode': False,
|
|
323
|
+
'limit': 1000,
|
|
324
|
+
'daysBack': 100000, # todo
|
|
325
|
+
'untilDays': None,
|
|
326
|
+
'symbolRequired': False,
|
|
327
|
+
},
|
|
328
|
+
'fetchOrder': {
|
|
329
|
+
'marginMode': False,
|
|
330
|
+
'trigger': True,
|
|
331
|
+
'trailing': False,
|
|
332
|
+
'symbolRequired': False,
|
|
333
|
+
},
|
|
334
|
+
'fetchOpenOrders': {
|
|
335
|
+
'marginMode': False,
|
|
336
|
+
'limit': None,
|
|
337
|
+
'trigger': False,
|
|
338
|
+
'trailing': False,
|
|
339
|
+
'symbolRequired': True,
|
|
340
|
+
},
|
|
341
|
+
'fetchOrders': None,
|
|
342
|
+
'fetchClosedOrders': {
|
|
343
|
+
'marginMode': False,
|
|
344
|
+
'limit': 1000,
|
|
345
|
+
'daysBack': 100000, # todo
|
|
346
|
+
'daysBackCanceled': 1,
|
|
347
|
+
'untilDays': None,
|
|
348
|
+
'trigger': True,
|
|
349
|
+
'trailing': False,
|
|
350
|
+
'symbolRequired': False,
|
|
351
|
+
},
|
|
352
|
+
'fetchOHLCV': None,
|
|
353
|
+
},
|
|
354
|
+
'swap': {
|
|
355
|
+
'linear': None,
|
|
356
|
+
'inverse': None,
|
|
357
|
+
},
|
|
358
|
+
'future': {
|
|
359
|
+
'linear': None,
|
|
360
|
+
'inverse': None,
|
|
361
|
+
},
|
|
244
362
|
},
|
|
245
363
|
})
|
|
246
364
|
|
|
247
365
|
def nonce(self):
|
|
248
366
|
return self.milliseconds() - self.options['timeDifference']
|
|
249
367
|
|
|
250
|
-
async def fetch_time(self, params={}):
|
|
368
|
+
async def fetch_time(self, params={}) -> Int:
|
|
251
369
|
"""
|
|
252
370
|
fetches the current integer timestamp in milliseconds from the exchange server
|
|
253
|
-
|
|
371
|
+
|
|
372
|
+
https://api.latoken.com/doc/v2/#tag/Time/operation/currentTime
|
|
373
|
+
|
|
254
374
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
255
375
|
:returns int: the current integer timestamp in milliseconds from the exchange server
|
|
256
376
|
"""
|
|
@@ -265,43 +385,12 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
265
385
|
async def fetch_markets(self, params={}) -> List[Market]:
|
|
266
386
|
"""
|
|
267
387
|
retrieves data on all markets for latoken
|
|
268
|
-
|
|
388
|
+
|
|
389
|
+
https://api.latoken.com/doc/v2/#tag/Pair/operation/getActivePairs
|
|
390
|
+
|
|
269
391
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
270
392
|
:returns dict[]: an array of objects representing market data
|
|
271
393
|
"""
|
|
272
|
-
currencies = await self.fetch_currencies_from_cache(params)
|
|
273
|
-
#
|
|
274
|
-
# [
|
|
275
|
-
# {
|
|
276
|
-
# "id":"1a075819-9e0b-48fc-8784-4dab1d186d6d",
|
|
277
|
-
# "status":"CURRENCY_STATUS_ACTIVE",
|
|
278
|
-
# "type":"CURRENCY_TYPE_ALTERNATIVE", # CURRENCY_TYPE_CRYPTO, CURRENCY_TYPE_IEO
|
|
279
|
-
# "name":"MyCryptoBank",
|
|
280
|
-
# "tag":"MCB",
|
|
281
|
-
# "description":"",
|
|
282
|
-
# "logo":"",
|
|
283
|
-
# "decimals":18,
|
|
284
|
-
# "created":1572912000000,
|
|
285
|
-
# "tier":1,
|
|
286
|
-
# "assetClass":"ASSET_CLASS_UNKNOWN",
|
|
287
|
-
# "minTransferAmount":0
|
|
288
|
-
# },
|
|
289
|
-
# {
|
|
290
|
-
# "id":"db02758e-2507-46a5-a805-7bc60355b3eb",
|
|
291
|
-
# "status":"CURRENCY_STATUS_ACTIVE",
|
|
292
|
-
# "type":"CURRENCY_TYPE_FUTURES_CONTRACT",
|
|
293
|
-
# "name":"BTC USDT Futures Contract",
|
|
294
|
-
# "tag":"BTCUSDT",
|
|
295
|
-
# "description":"",
|
|
296
|
-
# "logo":"",
|
|
297
|
-
# "decimals":8,
|
|
298
|
-
# "created":1589459984395,
|
|
299
|
-
# "tier":1,
|
|
300
|
-
# "assetClass":"ASSET_CLASS_UNKNOWN",
|
|
301
|
-
# "minTransferAmount":0
|
|
302
|
-
# },
|
|
303
|
-
# ]
|
|
304
|
-
#
|
|
305
394
|
response = await self.publicGetPair(params)
|
|
306
395
|
#
|
|
307
396
|
# [
|
|
@@ -323,8 +412,9 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
323
412
|
# }
|
|
324
413
|
# ]
|
|
325
414
|
#
|
|
326
|
-
if self.
|
|
415
|
+
if self.safe_bool(self.options, 'adjustForTimeDifference', False):
|
|
327
416
|
await self.load_time_difference()
|
|
417
|
+
currencies = self.safe_dict(self.options, 'cachedCurrencies', {})
|
|
328
418
|
currenciesById = self.index_by(currencies, 'id')
|
|
329
419
|
result = []
|
|
330
420
|
for i in range(0, len(response)):
|
|
@@ -333,11 +423,13 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
333
423
|
# the exchange shows them inverted
|
|
334
424
|
baseId = self.safe_string(market, 'baseCurrency')
|
|
335
425
|
quoteId = self.safe_string(market, 'quoteCurrency')
|
|
336
|
-
baseCurrency = self.
|
|
337
|
-
quoteCurrency = self.
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
426
|
+
baseCurrency = self.safe_dict(currenciesById, baseId)
|
|
427
|
+
quoteCurrency = self.safe_dict(currenciesById, quoteId)
|
|
428
|
+
baseCurrencyInfo = self.safe_dict(baseCurrency, 'info')
|
|
429
|
+
quoteCurrencyInfo = self.safe_dict(quoteCurrency, 'info')
|
|
430
|
+
if baseCurrencyInfo is not None and quoteCurrencyInfo is not None:
|
|
431
|
+
base = self.safe_currency_code(self.safe_string(baseCurrencyInfo, 'tag'))
|
|
432
|
+
quote = self.safe_currency_code(self.safe_string(quoteCurrencyInfo, 'tag'))
|
|
341
433
|
lowercaseQuote = quote.lower()
|
|
342
434
|
capitalizedQuote = self.capitalize(lowercaseQuote)
|
|
343
435
|
status = self.safe_string(market, 'status')
|
|
@@ -392,28 +484,13 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
392
484
|
})
|
|
393
485
|
return result
|
|
394
486
|
|
|
395
|
-
async def fetch_currencies_from_cache(self, params={}):
|
|
396
|
-
# self method is now redundant
|
|
397
|
-
# currencies are now fetched before markets
|
|
398
|
-
options = self.safe_value(self.options, 'fetchCurrencies', {})
|
|
399
|
-
timestamp = self.safe_integer(options, 'timestamp')
|
|
400
|
-
expires = self.safe_integer(options, 'expires', 1000)
|
|
401
|
-
now = self.milliseconds()
|
|
402
|
-
if (timestamp is None) or ((now - timestamp) > expires):
|
|
403
|
-
response = await self.publicGetCurrency(params)
|
|
404
|
-
self.options['fetchCurrencies'] = self.extend(options, {
|
|
405
|
-
'response': response,
|
|
406
|
-
'timestamp': now,
|
|
407
|
-
})
|
|
408
|
-
return self.safe_value(self.options['fetchCurrencies'], 'response')
|
|
409
|
-
|
|
410
487
|
async def fetch_currencies(self, params={}) -> Currencies:
|
|
411
488
|
"""
|
|
412
489
|
fetches all available currencies on an exchange
|
|
413
490
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
414
491
|
:returns dict: an associative dictionary of currencies
|
|
415
492
|
"""
|
|
416
|
-
response = await self.
|
|
493
|
+
response = await self.publicGetCurrency(params)
|
|
417
494
|
#
|
|
418
495
|
# [
|
|
419
496
|
# {
|
|
@@ -452,27 +529,18 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
452
529
|
id = self.safe_string(currency, 'id')
|
|
453
530
|
tag = self.safe_string(currency, 'tag')
|
|
454
531
|
code = self.safe_currency_code(tag)
|
|
455
|
-
fee = self.safe_number(currency, 'fee')
|
|
456
532
|
currencyType = self.safe_string(currency, 'type')
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
type = 'other'
|
|
460
|
-
else:
|
|
461
|
-
# CURRENCY_TYPE_CRYPTO and CURRENCY_TYPE_IEO are all cryptos
|
|
462
|
-
type = 'crypto'
|
|
463
|
-
status = self.safe_string(currency, 'status')
|
|
464
|
-
active = (status == 'CURRENCY_STATUS_ACTIVE')
|
|
465
|
-
name = self.safe_string(currency, 'name')
|
|
466
|
-
result[code] = {
|
|
533
|
+
isCrypto = (currencyType == 'CURRENCY_TYPE_CRYPTO' or currencyType == 'CURRENCY_TYPE_IEO')
|
|
534
|
+
result[code] = self.safe_currency_structure({
|
|
467
535
|
'id': id,
|
|
468
536
|
'code': code,
|
|
469
537
|
'info': currency,
|
|
470
|
-
'name': name,
|
|
471
|
-
'type':
|
|
472
|
-
'active':
|
|
538
|
+
'name': self.safe_string(currency, 'name'),
|
|
539
|
+
'type': 'crypto' if isCrypto else 'other',
|
|
540
|
+
'active': self.safe_string(currency, 'status') == 'CURRENCY_STATUS_ACTIVE',
|
|
473
541
|
'deposit': None,
|
|
474
542
|
'withdraw': None,
|
|
475
|
-
'fee': fee,
|
|
543
|
+
'fee': self.safe_number(currency, 'fee'),
|
|
476
544
|
'precision': self.parse_number(self.parse_precision(self.safe_string(currency, 'decimals'))),
|
|
477
545
|
'limits': {
|
|
478
546
|
'amount': {
|
|
@@ -485,13 +553,15 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
485
553
|
},
|
|
486
554
|
},
|
|
487
555
|
'networks': {},
|
|
488
|
-
}
|
|
556
|
+
})
|
|
489
557
|
return result
|
|
490
558
|
|
|
491
559
|
async def fetch_balance(self, params={}) -> Balances:
|
|
492
560
|
"""
|
|
493
561
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
|
494
|
-
|
|
562
|
+
|
|
563
|
+
https://api.latoken.com/doc/v2/#tag/Account/operation/getBalancesByUser
|
|
564
|
+
|
|
495
565
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
496
566
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
|
497
567
|
"""
|
|
@@ -552,7 +622,9 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
552
622
|
async def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
553
623
|
"""
|
|
554
624
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
555
|
-
|
|
625
|
+
|
|
626
|
+
https://api.latoken.com/doc/v2/#tag/Order-Book/operation/getOrderBook
|
|
627
|
+
|
|
556
628
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
557
629
|
:param int [limit]: the maximum amount of order book entries to return
|
|
558
630
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -635,7 +707,9 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
635
707
|
async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
636
708
|
"""
|
|
637
709
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
638
|
-
|
|
710
|
+
|
|
711
|
+
https://api.latoken.com/doc/v2/#tag/Ticker/operation/getTicker
|
|
712
|
+
|
|
639
713
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
640
714
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
641
715
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -672,7 +746,9 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
672
746
|
async def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
673
747
|
"""
|
|
674
748
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
675
|
-
|
|
749
|
+
|
|
750
|
+
https://api.latoken.com/doc/v2/#tag/Ticker/operation/getAllTickers
|
|
751
|
+
|
|
676
752
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
677
753
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
678
754
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -787,7 +863,9 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
787
863
|
async def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
788
864
|
"""
|
|
789
865
|
get the list of most recent trades for a particular symbol
|
|
790
|
-
|
|
866
|
+
|
|
867
|
+
https://api.latoken.com/doc/v2/#tag/Trade/operation/getTradesByPair
|
|
868
|
+
|
|
791
869
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
792
870
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
793
871
|
:param int [limit]: the maximum amount of trades to fetch
|
|
@@ -817,8 +895,10 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
817
895
|
async def fetch_trading_fee(self, symbol: str, params={}) -> TradingFeeInterface:
|
|
818
896
|
"""
|
|
819
897
|
fetch the trading fees for a market
|
|
820
|
-
|
|
821
|
-
|
|
898
|
+
|
|
899
|
+
https://api.latoken.com/doc/v2/#tag/Trade/operation/getFeeByPair
|
|
900
|
+
https://api.latoken.com/doc/v2/#tag/Trade/operation/getAuthFeeByPair
|
|
901
|
+
|
|
822
902
|
:param str symbol: unified market symbol
|
|
823
903
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
824
904
|
:returns dict: a `fee structure <https://docs.ccxt.com/#/?id=fee-structure>`
|
|
@@ -887,8 +967,10 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
887
967
|
async def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
888
968
|
"""
|
|
889
969
|
fetch all trades made by the user
|
|
890
|
-
|
|
891
|
-
|
|
970
|
+
|
|
971
|
+
https://api.latoken.com/doc/v2/#tag/Trade/operation/getTradesByTrader
|
|
972
|
+
https://api.latoken.com/doc/v2/#tag/Trade/operation/getTradesByAssetAndTrader
|
|
973
|
+
|
|
892
974
|
:param str symbol: unified market symbol
|
|
893
975
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
894
976
|
:param int [limit]: the maximum number of trades structures to retrieve
|
|
@@ -1031,7 +1113,6 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
1031
1113
|
status = 'open'
|
|
1032
1114
|
clientOrderId = self.safe_string(order, 'clientOrderId')
|
|
1033
1115
|
timeInForce = self.parse_time_in_force(self.safe_string(order, 'condition'))
|
|
1034
|
-
triggerPrice = self.safe_string(order, 'stopPrice')
|
|
1035
1116
|
return self.safe_order({
|
|
1036
1117
|
'id': id,
|
|
1037
1118
|
'clientOrderId': clientOrderId,
|
|
@@ -1046,8 +1127,7 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
1046
1127
|
'postOnly': None,
|
|
1047
1128
|
'side': side,
|
|
1048
1129
|
'price': price,
|
|
1049
|
-
'
|
|
1050
|
-
'triggerPrice': triggerPrice,
|
|
1130
|
+
'triggerPrice': self.safe_string(order, 'stopPrice'),
|
|
1051
1131
|
'cost': cost,
|
|
1052
1132
|
'amount': amount,
|
|
1053
1133
|
'filled': filled,
|
|
@@ -1060,8 +1140,10 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
1060
1140
|
async def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
1061
1141
|
"""
|
|
1062
1142
|
fetch all unfilled currently open orders
|
|
1063
|
-
|
|
1064
|
-
|
|
1143
|
+
|
|
1144
|
+
https://api.latoken.com/doc/v2/#tag/Order/operation/getMyActiveOrdersByPair
|
|
1145
|
+
https://api.latoken.com/doc/v2/#tag/StopOrder/operation/getMyActiveStopOrdersByPair # stop
|
|
1146
|
+
|
|
1065
1147
|
:param str symbol: unified market symbol
|
|
1066
1148
|
:param int [since]: the earliest time in ms to fetch open orders for
|
|
1067
1149
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
|
@@ -1112,10 +1194,12 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
1112
1194
|
async def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
1113
1195
|
"""
|
|
1114
1196
|
fetches information on multiple orders made by the user
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1197
|
+
|
|
1198
|
+
https://api.latoken.com/doc/v2/#tag/Order/operation/getMyOrders
|
|
1199
|
+
https://api.latoken.com/doc/v2/#tag/Order/operation/getMyOrdersByPair
|
|
1200
|
+
https://api.latoken.com/doc/v2/#tag/StopOrder/operation/getMyStopOrders # stop
|
|
1201
|
+
https://api.latoken.com/doc/v2/#tag/StopOrder/operation/getMyStopOrdersByPair # stop
|
|
1202
|
+
|
|
1119
1203
|
:param str symbol: unified market symbol of the market orders were made in
|
|
1120
1204
|
:param int [since]: the earliest time in ms to fetch orders for
|
|
1121
1205
|
:param int [limit]: the maximum number of order structures to retrieve
|
|
@@ -1176,8 +1260,11 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
1176
1260
|
async def fetch_order(self, id: str, symbol: Str = None, params={}):
|
|
1177
1261
|
"""
|
|
1178
1262
|
fetches information on an order made by the user
|
|
1179
|
-
|
|
1180
|
-
|
|
1263
|
+
|
|
1264
|
+
https://api.latoken.com/doc/v2/#tag/Order/operation/getOrderById
|
|
1265
|
+
https://api.latoken.com/doc/v2/#tag/StopOrder/operation/getStopOrderById
|
|
1266
|
+
|
|
1267
|
+
:param str id: order id
|
|
1181
1268
|
:param str [symbol]: not used by latoken fetchOrder
|
|
1182
1269
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1183
1270
|
:param boolean [params.trigger]: True if fetching a trigger order
|
|
@@ -1219,17 +1306,19 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
1219
1306
|
async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
1220
1307
|
"""
|
|
1221
1308
|
create a trade order
|
|
1222
|
-
|
|
1223
|
-
|
|
1309
|
+
|
|
1310
|
+
https://api.latoken.com/doc/v2/#tag/Order/operation/placeOrder
|
|
1311
|
+
https://api.latoken.com/doc/v2/#tag/StopOrder/operation/placeStopOrder # stop
|
|
1312
|
+
|
|
1224
1313
|
:param str symbol: unified symbol of the market to create an order in
|
|
1225
1314
|
:param str type: 'market' or 'limit'
|
|
1226
1315
|
:param str side: 'buy' or 'sell'
|
|
1227
1316
|
:param float amount: how much of currency you want to trade in units of base currency
|
|
1228
|
-
:param float [price]: the price at which the order is to be
|
|
1317
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
1229
1318
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1230
1319
|
:param float [params.triggerPrice]: the price at which a trigger order is triggered at
|
|
1231
|
-
|
|
1232
|
-
|
|
1320
|
+
|
|
1321
|
+
EXCHANGE SPECIFIC PARAMETERS
|
|
1233
1322
|
:param str [params.condition]: "GTC", "IOC", or "FOK"
|
|
1234
1323
|
:param str [params.clientOrderId]: [0 .. 50] characters, client's custom order id(free field for your convenience)
|
|
1235
1324
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -1276,8 +1365,10 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
1276
1365
|
async def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
1277
1366
|
"""
|
|
1278
1367
|
cancels an open order
|
|
1279
|
-
|
|
1280
|
-
|
|
1368
|
+
|
|
1369
|
+
https://api.latoken.com/doc/v2/#tag/Order/operation/cancelOrder
|
|
1370
|
+
https://api.latoken.com/doc/v2/#tag/StopOrder/operation/cancelStopOrder # stop
|
|
1371
|
+
|
|
1281
1372
|
:param str id: order id
|
|
1282
1373
|
:param str symbol: not used by latoken cancelOrder()
|
|
1283
1374
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -1309,8 +1400,10 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
1309
1400
|
async def cancel_all_orders(self, symbol: Str = None, params={}):
|
|
1310
1401
|
"""
|
|
1311
1402
|
cancel all open orders in a market
|
|
1312
|
-
|
|
1313
|
-
|
|
1403
|
+
|
|
1404
|
+
https://api.latoken.com/doc/v2/#tag/Order/operation/cancelAllOrders
|
|
1405
|
+
https://api.latoken.com/doc/v2/#tag/Order/operation/cancelAllOrdersByPair
|
|
1406
|
+
|
|
1314
1407
|
:param str symbol: unified market symbol of the market to cancel orders in
|
|
1315
1408
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1316
1409
|
:param boolean [params.trigger]: True if cancelling trigger orders
|
|
@@ -1344,13 +1437,19 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
1344
1437
|
# "status":"SUCCESS"
|
|
1345
1438
|
# }
|
|
1346
1439
|
#
|
|
1347
|
-
return
|
|
1440
|
+
return [
|
|
1441
|
+
self.safe_order({
|
|
1442
|
+
'info': response,
|
|
1443
|
+
}),
|
|
1444
|
+
]
|
|
1348
1445
|
|
|
1349
1446
|
async def fetch_transactions(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1350
1447
|
"""
|
|
1351
|
-
|
|
1448
|
+
@deprecated
|
|
1352
1449
|
use fetchDepositsWithdrawals instead
|
|
1353
|
-
|
|
1450
|
+
|
|
1451
|
+
https://api.latoken.com/doc/v2/#tag/Transaction/operation/getUserTransactions
|
|
1452
|
+
|
|
1354
1453
|
:param str code: unified currency code for the currency of the transactions, default is None
|
|
1355
1454
|
:param int [since]: timestamp in ms of the earliest transaction, default is None
|
|
1356
1455
|
:param int [limit]: max number of transactions to return, default is None
|
|
@@ -1461,6 +1560,7 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
1461
1560
|
statuses: dict = {
|
|
1462
1561
|
'TRANSACTION_STATUS_CONFIRMED': 'ok',
|
|
1463
1562
|
'TRANSACTION_STATUS_EXECUTED': 'ok',
|
|
1563
|
+
'TRANSACTION_STATUS_CHECKING': 'pending',
|
|
1464
1564
|
'TRANSACTION_STATUS_CANCELLED': 'canceled',
|
|
1465
1565
|
}
|
|
1466
1566
|
return self.safe_string(statuses, status, status)
|
|
@@ -1472,10 +1572,12 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
1472
1572
|
}
|
|
1473
1573
|
return self.safe_string(types, type, type)
|
|
1474
1574
|
|
|
1475
|
-
async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) ->
|
|
1575
|
+
async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[TransferEntry]:
|
|
1476
1576
|
"""
|
|
1477
1577
|
fetch a history of internal transfers made on an account
|
|
1478
|
-
|
|
1578
|
+
|
|
1579
|
+
https://api.latoken.com/doc/v2/#tag/Transfer/operation/getUsersTransfers
|
|
1580
|
+
|
|
1479
1581
|
:param str code: unified currency code of the currency transferred
|
|
1480
1582
|
:param int [since]: the earliest time in ms to fetch transfers for
|
|
1481
1583
|
:param int [limit]: the maximum number of transfers structures to retrieve
|
|
@@ -1522,9 +1624,11 @@ class latoken(Exchange, ImplicitAPI):
|
|
|
1522
1624
|
async def transfer(self, code: str, amount: float, fromAccount: str, toAccount: str, params={}) -> TransferEntry:
|
|
1523
1625
|
"""
|
|
1524
1626
|
transfer currency internally between wallets on the same account
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1627
|
+
|
|
1628
|
+
https://api.latoken.com/doc/v2/#tag/Transfer/operation/transferByEmail
|
|
1629
|
+
https://api.latoken.com/doc/v2/#tag/Transfer/operation/transferById
|
|
1630
|
+
https://api.latoken.com/doc/v2/#tag/Transfer/operation/transferByPhone
|
|
1631
|
+
|
|
1528
1632
|
:param str code: unified currency code
|
|
1529
1633
|
:param float amount: amount to transfer
|
|
1530
1634
|
:param str fromAccount: account to transfer from
|