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/btcmarkets.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.btcmarkets import ImplicitAPI
|
|
8
8
|
import hashlib
|
|
9
|
-
from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Transaction
|
|
9
|
+
from ccxt.base.types import Any, Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Transaction
|
|
10
10
|
from typing import List
|
|
11
11
|
from ccxt.base.errors import ExchangeError
|
|
12
12
|
from ccxt.base.errors import ArgumentsRequired
|
|
@@ -14,14 +14,13 @@ from ccxt.base.errors import BadRequest
|
|
|
14
14
|
from ccxt.base.errors import InsufficientFunds
|
|
15
15
|
from ccxt.base.errors import InvalidOrder
|
|
16
16
|
from ccxt.base.errors import OrderNotFound
|
|
17
|
-
from ccxt.base.errors import DDoSProtection
|
|
18
17
|
from ccxt.base.decimal_to_precision import TICK_SIZE
|
|
19
18
|
from ccxt.base.precise import Precise
|
|
20
19
|
|
|
21
20
|
|
|
22
21
|
class btcmarkets(Exchange, ImplicitAPI):
|
|
23
22
|
|
|
24
|
-
def describe(self):
|
|
23
|
+
def describe(self) -> Any:
|
|
25
24
|
return self.deep_extend(super(btcmarkets, self).describe(), {
|
|
26
25
|
'id': 'btcmarkets',
|
|
27
26
|
'name': 'BTC Markets',
|
|
@@ -36,16 +35,27 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
36
35
|
'future': False,
|
|
37
36
|
'option': False,
|
|
38
37
|
'addMargin': False,
|
|
38
|
+
'borrowCrossMargin': False,
|
|
39
|
+
'borrowIsolatedMargin': False,
|
|
40
|
+
'borrowMargin': False,
|
|
39
41
|
'cancelOrder': True,
|
|
40
42
|
'cancelOrders': True,
|
|
41
43
|
'closeAllPositions': False,
|
|
42
44
|
'closePosition': False,
|
|
43
45
|
'createDepositAddress': False,
|
|
44
46
|
'createOrder': True,
|
|
47
|
+
'createOrderWithTakeProfitAndStopLoss': False,
|
|
48
|
+
'createOrderWithTakeProfitAndStopLossWs': False,
|
|
49
|
+
'createPostOnlyOrder': False,
|
|
45
50
|
'createReduceOnlyOrder': False,
|
|
51
|
+
'createTriggerOrder': True,
|
|
46
52
|
'fetchBalance': True,
|
|
53
|
+
'fetchBorrowInterest': False,
|
|
54
|
+
'fetchBorrowRate': False,
|
|
47
55
|
'fetchBorrowRateHistories': False,
|
|
48
56
|
'fetchBorrowRateHistory': False,
|
|
57
|
+
'fetchBorrowRates': False,
|
|
58
|
+
'fetchBorrowRatesPerSymbol': False,
|
|
49
59
|
'fetchClosedOrders': 'emulated',
|
|
50
60
|
'fetchCrossBorrowRate': False,
|
|
51
61
|
'fetchCrossBorrowRates': False,
|
|
@@ -55,20 +65,39 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
55
65
|
'fetchDeposits': True,
|
|
56
66
|
'fetchDepositsWithdrawals': True,
|
|
57
67
|
'fetchFundingHistory': False,
|
|
68
|
+
'fetchFundingInterval': False,
|
|
69
|
+
'fetchFundingIntervals': False,
|
|
58
70
|
'fetchFundingRate': False,
|
|
59
71
|
'fetchFundingRateHistory': False,
|
|
60
72
|
'fetchFundingRates': False,
|
|
73
|
+
'fetchGreeks': False,
|
|
61
74
|
'fetchIndexOHLCV': False,
|
|
62
75
|
'fetchIsolatedBorrowRate': False,
|
|
63
76
|
'fetchIsolatedBorrowRates': False,
|
|
77
|
+
'fetchIsolatedPositions': False,
|
|
64
78
|
'fetchLeverage': False,
|
|
79
|
+
'fetchLeverages': False,
|
|
80
|
+
'fetchLeverageTiers': False,
|
|
81
|
+
'fetchLiquidations': False,
|
|
82
|
+
'fetchLongShortRatio': False,
|
|
83
|
+
'fetchLongShortRatioHistory': False,
|
|
84
|
+
'fetchMarginAdjustmentHistory': False,
|
|
65
85
|
'fetchMarginMode': False,
|
|
86
|
+
'fetchMarginModes': False,
|
|
87
|
+
'fetchMarketLeverageTiers': False,
|
|
66
88
|
'fetchMarkets': True,
|
|
67
89
|
'fetchMarkOHLCV': False,
|
|
90
|
+
'fetchMarkPrices': False,
|
|
91
|
+
'fetchMyLiquidations': False,
|
|
92
|
+
'fetchMySettlementHistory': False,
|
|
68
93
|
'fetchMyTrades': True,
|
|
69
94
|
'fetchOHLCV': True,
|
|
95
|
+
'fetchOpenInterest': False,
|
|
70
96
|
'fetchOpenInterestHistory': False,
|
|
97
|
+
'fetchOpenInterests': False,
|
|
71
98
|
'fetchOpenOrders': True,
|
|
99
|
+
'fetchOption': False,
|
|
100
|
+
'fetchOptionChain': False,
|
|
72
101
|
'fetchOrder': True,
|
|
73
102
|
'fetchOrderBook': True,
|
|
74
103
|
'fetchOrders': True,
|
|
@@ -80,19 +109,25 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
80
109
|
'fetchPositionsHistory': False,
|
|
81
110
|
'fetchPositionsRisk': False,
|
|
82
111
|
'fetchPremiumIndexOHLCV': False,
|
|
112
|
+
'fetchSettlementHistory': False,
|
|
83
113
|
'fetchTicker': True,
|
|
84
114
|
'fetchTime': True,
|
|
85
115
|
'fetchTrades': True,
|
|
86
116
|
'fetchTransactions': 'emulated',
|
|
117
|
+
'fetchVolatilityHistory': False,
|
|
87
118
|
'fetchWithdrawals': True,
|
|
88
119
|
'reduceMargin': False,
|
|
120
|
+
'repayCrossMargin': False,
|
|
121
|
+
'repayIsolatedMargin': False,
|
|
122
|
+
'repayMargin': False,
|
|
89
123
|
'setLeverage': False,
|
|
124
|
+
'setMargin': False,
|
|
90
125
|
'setMarginMode': False,
|
|
91
126
|
'setPositionMode': False,
|
|
92
127
|
'withdraw': True,
|
|
93
128
|
},
|
|
94
129
|
'urls': {
|
|
95
|
-
'logo': 'https://
|
|
130
|
+
'logo': 'https://github.com/user-attachments/assets/8c8d6907-3873-4cc4-ad20-e22fba28247e',
|
|
96
131
|
'api': {
|
|
97
132
|
'public': 'https://api.btcmarkets.net',
|
|
98
133
|
'private': 'https://api.btcmarkets.net',
|
|
@@ -159,18 +194,98 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
159
194
|
'1h': '1h',
|
|
160
195
|
'1d': '1d',
|
|
161
196
|
},
|
|
197
|
+
'features': {
|
|
198
|
+
'spot': {
|
|
199
|
+
'sandbox': False,
|
|
200
|
+
'createOrder': {
|
|
201
|
+
'marginMode': False,
|
|
202
|
+
'triggerPrice': True, # todo: check
|
|
203
|
+
'triggerPriceType': None,
|
|
204
|
+
'triggerDirection': False,
|
|
205
|
+
'stopLossPrice': False,
|
|
206
|
+
'takeProfitPrice': False,
|
|
207
|
+
'attachedStopLossTakeProfit': None,
|
|
208
|
+
'timeInForce': {
|
|
209
|
+
'IOC': True,
|
|
210
|
+
'FOK': True,
|
|
211
|
+
'PO': True,
|
|
212
|
+
'GTD': False,
|
|
213
|
+
},
|
|
214
|
+
'hedged': False,
|
|
215
|
+
'leverage': False,
|
|
216
|
+
'marketBuyRequiresPrice': False,
|
|
217
|
+
'marketBuyByCost': False,
|
|
218
|
+
'selfTradePrevention': True, # todo: check
|
|
219
|
+
'trailing': False,
|
|
220
|
+
'iceberg': False,
|
|
221
|
+
},
|
|
222
|
+
'createOrders': None,
|
|
223
|
+
'fetchMyTrades': {
|
|
224
|
+
'marginMode': False,
|
|
225
|
+
'limit': 100,
|
|
226
|
+
'daysBack': 100000,
|
|
227
|
+
'untilDays': 100000,
|
|
228
|
+
'symbolRequired': True,
|
|
229
|
+
},
|
|
230
|
+
'fetchOrder': {
|
|
231
|
+
'marginMode': False,
|
|
232
|
+
'trigger': False,
|
|
233
|
+
'trailing': False,
|
|
234
|
+
'symbolRequired': False,
|
|
235
|
+
},
|
|
236
|
+
'fetchOpenOrders': {
|
|
237
|
+
'marginMode': False,
|
|
238
|
+
'limit': 100,
|
|
239
|
+
'trigger': False,
|
|
240
|
+
'trailing': False,
|
|
241
|
+
'symbolRequired': False,
|
|
242
|
+
},
|
|
243
|
+
'fetchOrders': {
|
|
244
|
+
'marginMode': False,
|
|
245
|
+
'limit': 100,
|
|
246
|
+
'daysBack': 100000,
|
|
247
|
+
'untilDays': 100000,
|
|
248
|
+
'trigger': False,
|
|
249
|
+
'trailing': False,
|
|
250
|
+
'symbolRequired': False,
|
|
251
|
+
},
|
|
252
|
+
'fetchClosedOrders': {
|
|
253
|
+
'marginMode': False,
|
|
254
|
+
'limit': 100,
|
|
255
|
+
'daysBack': 100000,
|
|
256
|
+
'daysBackCanceled': 1,
|
|
257
|
+
'untilDays': 100000,
|
|
258
|
+
'trigger': False,
|
|
259
|
+
'trailing': False,
|
|
260
|
+
'symbolRequired': False,
|
|
261
|
+
},
|
|
262
|
+
'fetchOHLCV': {
|
|
263
|
+
'limit': 1000,
|
|
264
|
+
},
|
|
265
|
+
},
|
|
266
|
+
'swap': {
|
|
267
|
+
'linear': None,
|
|
268
|
+
'inverse': None,
|
|
269
|
+
},
|
|
270
|
+
'future': {
|
|
271
|
+
'linear': None,
|
|
272
|
+
'inverse': None,
|
|
273
|
+
},
|
|
274
|
+
},
|
|
162
275
|
'precisionMode': TICK_SIZE,
|
|
163
276
|
'exceptions': {
|
|
164
|
-
'
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
277
|
+
'exact': {
|
|
278
|
+
'InsufficientFund': InsufficientFunds,
|
|
279
|
+
'InvalidPrice': InvalidOrder,
|
|
280
|
+
'InvalidAmount': InvalidOrder,
|
|
281
|
+
'MissingArgument': BadRequest,
|
|
282
|
+
'OrderAlreadyCancelled': InvalidOrder,
|
|
283
|
+
'OrderNotFound': OrderNotFound,
|
|
284
|
+
'OrderStatusIsFinal': InvalidOrder,
|
|
285
|
+
'InvalidPaginationParameter': BadRequest,
|
|
286
|
+
},
|
|
287
|
+
'broad': {
|
|
288
|
+
},
|
|
174
289
|
},
|
|
175
290
|
'fees': {
|
|
176
291
|
'percentage': True,
|
|
@@ -204,7 +319,9 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
204
319
|
def fetch_deposits_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
205
320
|
"""
|
|
206
321
|
fetch history of deposits and withdrawals
|
|
207
|
-
|
|
322
|
+
|
|
323
|
+
https://docs.btcmarkets.net/v3/#tag/Fund-Management-APIs/paths/~1v3~1transfers/get
|
|
324
|
+
|
|
208
325
|
:param str [code]: unified currency code for the currency of the deposit/withdrawals, default is None
|
|
209
326
|
:param int [since]: timestamp in ms of the earliest deposit/withdrawal, default is None
|
|
210
327
|
:param int [limit]: max number of deposit/withdrawals to return, default is None
|
|
@@ -216,7 +333,9 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
216
333
|
def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
217
334
|
"""
|
|
218
335
|
fetch all deposits made to an account
|
|
219
|
-
|
|
336
|
+
|
|
337
|
+
https://docs.btcmarkets.net/v3/#tag/Fund-Management-APIs/paths/~1v3~1deposits/get
|
|
338
|
+
|
|
220
339
|
:param str code: unified currency code
|
|
221
340
|
:param int [since]: the earliest time in ms to fetch deposits for
|
|
222
341
|
:param int [limit]: the maximum number of deposits structures to retrieve
|
|
@@ -228,7 +347,9 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
228
347
|
def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
229
348
|
"""
|
|
230
349
|
fetch all withdrawals made from an account
|
|
231
|
-
|
|
350
|
+
|
|
351
|
+
https://docs.btcmarkets.net/v3/#tag/Fund-Management-APIs/paths/~1v3~1withdrawals/get
|
|
352
|
+
|
|
232
353
|
:param str code: unified currency code
|
|
233
354
|
:param int [since]: the earliest time in ms to fetch withdrawals for
|
|
234
355
|
:param int [limit]: the maximum number of withdrawals structures to retrieve
|
|
@@ -305,7 +426,7 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
305
426
|
type = self.parse_transaction_type(self.safe_string_lower(transaction, 'type'))
|
|
306
427
|
if type == 'withdraw':
|
|
307
428
|
type = 'withdrawal'
|
|
308
|
-
cryptoPaymentDetail = self.
|
|
429
|
+
cryptoPaymentDetail = self.safe_dict(transaction, 'paymentDetail', {})
|
|
309
430
|
txid = self.safe_string(cryptoPaymentDetail, 'txId')
|
|
310
431
|
address = self.safe_string(cryptoPaymentDetail, 'address')
|
|
311
432
|
tag = None
|
|
@@ -356,7 +477,9 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
356
477
|
def fetch_markets(self, params={}) -> List[Market]:
|
|
357
478
|
"""
|
|
358
479
|
retrieves data on all markets for btcmarkets
|
|
359
|
-
|
|
480
|
+
|
|
481
|
+
https://docs.btcmarkets.net/v3/#tag/Market-Data-APIs/paths/~1v3~1markets/get
|
|
482
|
+
|
|
360
483
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
361
484
|
:returns dict[]: an array of objects representing market data
|
|
362
485
|
"""
|
|
@@ -367,10 +490,11 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
367
490
|
# "marketId":"COMP-AUD",
|
|
368
491
|
# "baseAssetName":"COMP",
|
|
369
492
|
# "quoteAssetName":"AUD",
|
|
370
|
-
# "minOrderAmount":"0.
|
|
493
|
+
# "minOrderAmount":"0.00006",
|
|
371
494
|
# "maxOrderAmount":"1000000",
|
|
372
495
|
# "amountDecimals":"8",
|
|
373
|
-
# "priceDecimals":"2"
|
|
496
|
+
# "priceDecimals":"2",
|
|
497
|
+
# "status": "Online"
|
|
374
498
|
# }
|
|
375
499
|
# ]
|
|
376
500
|
#
|
|
@@ -383,10 +507,11 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
383
507
|
base = self.safe_currency_code(baseId)
|
|
384
508
|
quote = self.safe_currency_code(quoteId)
|
|
385
509
|
symbol = base + '/' + quote
|
|
386
|
-
fees = self.safe_value(self.
|
|
510
|
+
fees = self.safe_value(self.safe_dict(self.options, 'fees', {}), quote, self.fees)
|
|
387
511
|
pricePrecision = self.parse_number(self.parse_precision(self.safe_string(market, 'priceDecimals')))
|
|
388
512
|
minAmount = self.safe_number(market, 'minOrderAmount')
|
|
389
513
|
maxAmount = self.safe_number(market, 'maxOrderAmount')
|
|
514
|
+
status = self.safe_string(market, 'status')
|
|
390
515
|
minPrice = None
|
|
391
516
|
if quote == 'AUD':
|
|
392
517
|
minPrice = pricePrecision
|
|
@@ -405,7 +530,7 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
405
530
|
'swap': False,
|
|
406
531
|
'future': False,
|
|
407
532
|
'option': False,
|
|
408
|
-
'active':
|
|
533
|
+
'active': (status == 'Online'),
|
|
409
534
|
'contract': False,
|
|
410
535
|
'linear': None,
|
|
411
536
|
'inverse': None,
|
|
@@ -442,10 +567,12 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
442
567
|
'info': market,
|
|
443
568
|
}
|
|
444
569
|
|
|
445
|
-
def fetch_time(self, params={}):
|
|
570
|
+
def fetch_time(self, params={}) -> Int:
|
|
446
571
|
"""
|
|
447
572
|
fetches the current integer timestamp in milliseconds from the exchange server
|
|
448
|
-
|
|
573
|
+
|
|
574
|
+
https://docs.btcmarkets.net/v3/#tag/Misc-APIs/paths/~1v3~1time/get
|
|
575
|
+
|
|
449
576
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
450
577
|
:returns int: the current integer timestamp in milliseconds from the exchange server
|
|
451
578
|
"""
|
|
@@ -472,7 +599,9 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
472
599
|
def fetch_balance(self, params={}) -> Balances:
|
|
473
600
|
"""
|
|
474
601
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
|
475
|
-
|
|
602
|
+
|
|
603
|
+
https://docs.btcmarkets.net/v3/#tag/Account-APIs/paths/~1v3~1accounts~1me~1balances/get
|
|
604
|
+
|
|
476
605
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
477
606
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
|
478
607
|
"""
|
|
@@ -503,7 +632,9 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
503
632
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
504
633
|
"""
|
|
505
634
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
506
|
-
|
|
635
|
+
|
|
636
|
+
https://docs.btcmarkets.net/v3/#tag/Market-Data-APIs/paths/~1v3~1markets~1{marketId}~1candles/get
|
|
637
|
+
|
|
507
638
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
508
639
|
:param str timeframe: the length of time each candle represents
|
|
509
640
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
@@ -539,7 +670,9 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
539
670
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
540
671
|
"""
|
|
541
672
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
542
|
-
|
|
673
|
+
|
|
674
|
+
https://docs.btcmarkets.net/v3/#tag/Market-Data-APIs/paths/~1v3~1markets~1{marketId}~1orderbook/get
|
|
675
|
+
|
|
543
676
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
544
677
|
:param int [limit]: the maximum amount of order book entries to return
|
|
545
678
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -625,7 +758,9 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
625
758
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
626
759
|
"""
|
|
627
760
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
628
|
-
|
|
761
|
+
|
|
762
|
+
https://docs.btcmarkets.net/v3/#tag/Market-Data-APIs/paths/~1v3~1markets~1{marketId}~1ticker/get
|
|
763
|
+
|
|
629
764
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
630
765
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
631
766
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -729,7 +864,9 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
729
864
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
730
865
|
"""
|
|
731
866
|
get the list of most recent trades for a particular symbol
|
|
732
|
-
|
|
867
|
+
|
|
868
|
+
https://docs.btcmarkets.net/v3/#tag/Market-Data-APIs/paths/~1v3~1markets~1{marketId}~1trades/get
|
|
869
|
+
|
|
733
870
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
734
871
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
735
872
|
:param int [limit]: the maximum amount of trades to fetch
|
|
@@ -755,13 +892,16 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
755
892
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
756
893
|
"""
|
|
757
894
|
create a trade order
|
|
758
|
-
|
|
895
|
+
|
|
896
|
+
https://docs.btcmarkets.net/v3/#tag/Order-Placement-APIs/paths/~1v3~1orders/post
|
|
897
|
+
|
|
759
898
|
:param str symbol: unified symbol of the market to create an order in
|
|
760
899
|
:param str type: 'market' or 'limit'
|
|
761
900
|
:param str side: 'buy' or 'sell'
|
|
762
901
|
:param float amount: how much of currency you want to trade in units of base currency
|
|
763
|
-
:param float [price]: the price at which the order is to be
|
|
902
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
764
903
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
904
|
+
:param float [params.triggerPrice]: the price at which a trigger order is triggered at
|
|
765
905
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
766
906
|
"""
|
|
767
907
|
self.load_markets()
|
|
@@ -843,7 +983,9 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
843
983
|
def cancel_orders(self, ids, symbol: Str = None, params={}):
|
|
844
984
|
"""
|
|
845
985
|
cancel multiple orders
|
|
846
|
-
|
|
986
|
+
|
|
987
|
+
https://docs.btcmarkets.net/v3/#tag/Batch-Order-APIs/paths/~1v3~1batchorders~1{ids}/delete
|
|
988
|
+
|
|
847
989
|
:param str[] ids: order ids
|
|
848
990
|
:param str symbol: not used by btcmarkets cancelOrders()
|
|
849
991
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -882,7 +1024,9 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
882
1024
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
883
1025
|
"""
|
|
884
1026
|
cancels an open order
|
|
885
|
-
|
|
1027
|
+
|
|
1028
|
+
https://docs.btcmarkets.net/v3/#operation/cancelOrder
|
|
1029
|
+
|
|
886
1030
|
:param str id: order id
|
|
887
1031
|
:param str symbol: not used by btcmarket cancelOrder()
|
|
888
1032
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -984,8 +1128,7 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
984
1128
|
id = self.safe_string(order, 'orderId')
|
|
985
1129
|
clientOrderId = self.safe_string(order, 'clientOrderId')
|
|
986
1130
|
timeInForce = self.safe_string(order, 'timeInForce')
|
|
987
|
-
|
|
988
|
-
postOnly = self.safe_value(order, 'postOnly')
|
|
1131
|
+
postOnly = self.safe_bool(order, 'postOnly')
|
|
989
1132
|
return self.safe_order({
|
|
990
1133
|
'info': order,
|
|
991
1134
|
'id': id,
|
|
@@ -999,8 +1142,7 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
999
1142
|
'postOnly': postOnly,
|
|
1000
1143
|
'side': side,
|
|
1001
1144
|
'price': price,
|
|
1002
|
-
'
|
|
1003
|
-
'triggerPrice': stopPrice,
|
|
1145
|
+
'triggerPrice': self.safe_number(order, 'triggerPrice'),
|
|
1004
1146
|
'cost': None,
|
|
1005
1147
|
'amount': amount,
|
|
1006
1148
|
'filled': None,
|
|
@@ -1014,7 +1156,10 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
1014
1156
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
|
1015
1157
|
"""
|
|
1016
1158
|
fetches information on an order made by the user
|
|
1017
|
-
|
|
1159
|
+
|
|
1160
|
+
https://docs.btcmarkets.net/v3/#operation/getOrderById
|
|
1161
|
+
|
|
1162
|
+
:param str id: the order id
|
|
1018
1163
|
:param str symbol: not used by btcmarkets fetchOrder
|
|
1019
1164
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1020
1165
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -1029,7 +1174,9 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
1029
1174
|
def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
1030
1175
|
"""
|
|
1031
1176
|
fetches information on multiple orders made by the user
|
|
1032
|
-
|
|
1177
|
+
|
|
1178
|
+
https://docs.btcmarkets.net/v3/#operation/listOrders
|
|
1179
|
+
|
|
1033
1180
|
:param str symbol: unified market symbol of the market orders were made in
|
|
1034
1181
|
:param int [since]: the earliest time in ms to fetch orders for
|
|
1035
1182
|
:param int [limit]: the maximum number of order structures to retrieve
|
|
@@ -1054,7 +1201,9 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
1054
1201
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
1055
1202
|
"""
|
|
1056
1203
|
fetch all unfilled currently open orders
|
|
1057
|
-
|
|
1204
|
+
|
|
1205
|
+
https://docs.btcmarkets.net/v3/#operation/listOrders
|
|
1206
|
+
|
|
1058
1207
|
:param str symbol: unified market symbol
|
|
1059
1208
|
:param int [since]: the earliest time in ms to fetch open orders for
|
|
1060
1209
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
|
@@ -1067,7 +1216,9 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
1067
1216
|
def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
1068
1217
|
"""
|
|
1069
1218
|
fetches information on multiple closed orders made by the user
|
|
1070
|
-
|
|
1219
|
+
|
|
1220
|
+
https://docs.btcmarkets.net/v3/#operation/listOrders
|
|
1221
|
+
|
|
1071
1222
|
:param str symbol: unified market symbol of the market orders were made in
|
|
1072
1223
|
:param int [since]: the earliest time in ms to fetch orders for
|
|
1073
1224
|
:param int [limit]: the maximum number of order structures to retrieve
|
|
@@ -1080,7 +1231,9 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
1080
1231
|
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1081
1232
|
"""
|
|
1082
1233
|
fetch all trades made by the user
|
|
1083
|
-
|
|
1234
|
+
|
|
1235
|
+
https://docs.btcmarkets.net/v3/#operation/getTrades
|
|
1236
|
+
|
|
1084
1237
|
:param str symbol: unified market symbol
|
|
1085
1238
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
1086
1239
|
:param int [limit]: the maximum number of trades structures to retrieve
|
|
@@ -1127,10 +1280,12 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
1127
1280
|
#
|
|
1128
1281
|
return self.parse_trades(response, market, since, limit)
|
|
1129
1282
|
|
|
1130
|
-
def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
|
|
1283
|
+
def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
|
1131
1284
|
"""
|
|
1132
1285
|
make a withdrawal
|
|
1133
|
-
|
|
1286
|
+
|
|
1287
|
+
https://docs.btcmarkets.net/v3/#tag/Fund-Management-APIs/paths/~1v3~1withdrawals/post
|
|
1288
|
+
|
|
1134
1289
|
:param str code: unified currency code
|
|
1135
1290
|
:param float amount: the amount to withdraw
|
|
1136
1291
|
:param str address: the address to withdraw to
|
|
@@ -1204,18 +1359,16 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
|
1204
1359
|
def handle_errors(self, code: int, reason: str, url: str, method: str, headers: dict, body: str, response, requestHeaders, requestBody):
|
|
1205
1360
|
if response is None:
|
|
1206
1361
|
return None # fallback to default error handler
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
if code >= 400:
|
|
1215
|
-
errorCode = self.safe_string(response, 'code')
|
|
1216
|
-
message = self.safe_string(response, 'message')
|
|
1362
|
+
#
|
|
1363
|
+
# {"code":"UnAuthorized","message":"invalid access token"}
|
|
1364
|
+
# {"code":"MarketNotFound","message":"invalid marketId"}
|
|
1365
|
+
#
|
|
1366
|
+
errorCode = self.safe_string(response, 'code')
|
|
1367
|
+
message = self.safe_string(response, 'message')
|
|
1368
|
+
if errorCode is not None:
|
|
1217
1369
|
feedback = self.id + ' ' + body
|
|
1218
|
-
self.throw_exactly_matched_exception(self.exceptions,
|
|
1219
|
-
self.throw_exactly_matched_exception(self.exceptions,
|
|
1220
|
-
|
|
1370
|
+
self.throw_exactly_matched_exception(self.exceptions['exact'], message, feedback)
|
|
1371
|
+
self.throw_exactly_matched_exception(self.exceptions['exact'], errorCode, feedback)
|
|
1372
|
+
self.throw_broadly_matched_exception(self.exceptions['broad'], message, feedback)
|
|
1373
|
+
raise ExchangeError(feedback) # unknown message
|
|
1221
1374
|
return None
|