ccxt-ir 4.3.46.0.3__py2.py3-none-any.whl → 4.5.1__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 +8 -8
- 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 +10 -10
- 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 +32 -38
- 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 +32 -27
- 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 +34 -30
- ccxt/async_support/sarmayex.py +9 -9
- ccxt/async_support/sarrafex.py +13 -13
- ccxt/async_support/tabdeal.py +15 -14
- 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 +30 -36
- 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 +29 -24
- 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 +32 -28
- 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 +13 -12
- 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.1.dist-info}/METADATA +225 -73
- ccxt_ir-4.5.1.dist-info/RECORD +743 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.1.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.1.dist-info/licenses}/LICENSE.txt +0 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.1.dist-info}/top_level.txt +0 -0
ccxt/async_support/btcbox.py
CHANGED
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.btcbox import ImplicitAPI
|
|
8
|
+
import asyncio
|
|
8
9
|
import hashlib
|
|
9
10
|
import json
|
|
10
|
-
from ccxt.base.types import Balances, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade
|
|
11
|
+
from ccxt.base.types import Any, Balances, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
|
|
11
12
|
from typing import List
|
|
12
13
|
from ccxt.base.errors import ExchangeError
|
|
13
14
|
from ccxt.base.errors import AuthenticationError
|
|
@@ -23,7 +24,7 @@ from ccxt.base.precise import Precise
|
|
|
23
24
|
|
|
24
25
|
class btcbox(Exchange, ImplicitAPI):
|
|
25
26
|
|
|
26
|
-
def describe(self):
|
|
27
|
+
def describe(self) -> Any:
|
|
27
28
|
return self.deep_extend(super(btcbox, self).describe(), {
|
|
28
29
|
'id': 'btcbox',
|
|
29
30
|
'name': 'BtcBox',
|
|
@@ -39,28 +40,57 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
39
40
|
'future': False,
|
|
40
41
|
'option': False,
|
|
41
42
|
'addMargin': False,
|
|
43
|
+
'borrowCrossMargin': False,
|
|
44
|
+
'borrowIsolatedMargin': False,
|
|
45
|
+
'borrowMargin': False,
|
|
42
46
|
'cancelOrder': True,
|
|
43
47
|
'closeAllPositions': False,
|
|
44
48
|
'closePosition': False,
|
|
45
49
|
'createOrder': True,
|
|
50
|
+
'createOrderWithTakeProfitAndStopLoss': False,
|
|
51
|
+
'createOrderWithTakeProfitAndStopLossWs': False,
|
|
52
|
+
'createPostOnlyOrder': False,
|
|
46
53
|
'createReduceOnlyOrder': False,
|
|
47
54
|
'fetchBalance': True,
|
|
55
|
+
'fetchBorrowInterest': False,
|
|
56
|
+
'fetchBorrowRate': False,
|
|
48
57
|
'fetchBorrowRateHistories': False,
|
|
49
58
|
'fetchBorrowRateHistory': False,
|
|
59
|
+
'fetchBorrowRates': False,
|
|
60
|
+
'fetchBorrowRatesPerSymbol': False,
|
|
50
61
|
'fetchCrossBorrowRate': False,
|
|
51
62
|
'fetchCrossBorrowRates': False,
|
|
52
63
|
'fetchFundingHistory': False,
|
|
64
|
+
'fetchFundingInterval': False,
|
|
65
|
+
'fetchFundingIntervals': False,
|
|
53
66
|
'fetchFundingRate': False,
|
|
54
67
|
'fetchFundingRateHistory': False,
|
|
55
68
|
'fetchFundingRates': False,
|
|
69
|
+
'fetchGreeks': False,
|
|
56
70
|
'fetchIndexOHLCV': False,
|
|
57
71
|
'fetchIsolatedBorrowRate': False,
|
|
58
72
|
'fetchIsolatedBorrowRates': False,
|
|
73
|
+
'fetchIsolatedPositions': False,
|
|
59
74
|
'fetchLeverage': False,
|
|
75
|
+
'fetchLeverages': False,
|
|
76
|
+
'fetchLeverageTiers': False,
|
|
77
|
+
'fetchLiquidations': False,
|
|
78
|
+
'fetchLongShortRatio': False,
|
|
79
|
+
'fetchLongShortRatioHistory': False,
|
|
80
|
+
'fetchMarginAdjustmentHistory': False,
|
|
60
81
|
'fetchMarginMode': False,
|
|
82
|
+
'fetchMarginModes': False,
|
|
83
|
+
'fetchMarketLeverageTiers': False,
|
|
61
84
|
'fetchMarkOHLCV': False,
|
|
85
|
+
'fetchMarkPrices': False,
|
|
86
|
+
'fetchMyLiquidations': False,
|
|
87
|
+
'fetchMySettlementHistory': False,
|
|
88
|
+
'fetchOpenInterest': False,
|
|
62
89
|
'fetchOpenInterestHistory': False,
|
|
90
|
+
'fetchOpenInterests': False,
|
|
63
91
|
'fetchOpenOrders': True,
|
|
92
|
+
'fetchOption': False,
|
|
93
|
+
'fetchOptionChain': False,
|
|
64
94
|
'fetchOrder': True,
|
|
65
95
|
'fetchOrderBook': True,
|
|
66
96
|
'fetchOrders': True,
|
|
@@ -72,15 +102,21 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
72
102
|
'fetchPositionsHistory': False,
|
|
73
103
|
'fetchPositionsRisk': False,
|
|
74
104
|
'fetchPremiumIndexOHLCV': False,
|
|
105
|
+
'fetchSettlementHistory': False,
|
|
75
106
|
'fetchTicker': True,
|
|
76
|
-
'fetchTickers':
|
|
107
|
+
'fetchTickers': True,
|
|
77
108
|
'fetchTrades': True,
|
|
78
109
|
'fetchTransfer': False,
|
|
79
110
|
'fetchTransfers': False,
|
|
111
|
+
'fetchVolatilityHistory': False,
|
|
80
112
|
'fetchWithdrawal': False,
|
|
81
113
|
'fetchWithdrawals': False,
|
|
82
114
|
'reduceMargin': False,
|
|
115
|
+
'repayCrossMargin': False,
|
|
116
|
+
'repayIsolatedMargin': False,
|
|
117
|
+
'repayMargin': False,
|
|
83
118
|
'setLeverage': False,
|
|
119
|
+
'setMargin': False,
|
|
84
120
|
'setMarginMode': False,
|
|
85
121
|
'setPositionMode': False,
|
|
86
122
|
'transfer': False,
|
|
@@ -88,7 +124,7 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
88
124
|
'ws': False,
|
|
89
125
|
},
|
|
90
126
|
'urls': {
|
|
91
|
-
'logo': 'https://
|
|
127
|
+
'logo': 'https://github.com/user-attachments/assets/1e2cb499-8d0f-4f8f-9464-3c015cfbc76b',
|
|
92
128
|
'api': {
|
|
93
129
|
'rest': 'https://www.btcbox.co.jp/api',
|
|
94
130
|
},
|
|
@@ -102,6 +138,7 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
102
138
|
'depth',
|
|
103
139
|
'orders',
|
|
104
140
|
'ticker',
|
|
141
|
+
'tickers',
|
|
105
142
|
],
|
|
106
143
|
},
|
|
107
144
|
'private': {
|
|
@@ -114,12 +151,79 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
114
151
|
'wallet',
|
|
115
152
|
],
|
|
116
153
|
},
|
|
154
|
+
'webApi': {
|
|
155
|
+
'get': [
|
|
156
|
+
'ajax/coin/coinInfo',
|
|
157
|
+
],
|
|
158
|
+
},
|
|
117
159
|
},
|
|
118
|
-
'
|
|
119
|
-
'
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
160
|
+
'options': {
|
|
161
|
+
'fetchMarkets': {
|
|
162
|
+
'webApiEnable': True, # fetches from WEB
|
|
163
|
+
'webApiRetries': 3,
|
|
164
|
+
},
|
|
165
|
+
'amountPrecision': '0.0001', # exchange has only few pairs and all of them
|
|
166
|
+
},
|
|
167
|
+
'features': {
|
|
168
|
+
'spot': {
|
|
169
|
+
'sandbox': False,
|
|
170
|
+
'createOrder': {
|
|
171
|
+
'marginMode': False,
|
|
172
|
+
'triggerPrice': False,
|
|
173
|
+
'triggerPriceType': None,
|
|
174
|
+
'triggerDirection': False,
|
|
175
|
+
'stopLossPrice': False,
|
|
176
|
+
'takeProfitPrice': False,
|
|
177
|
+
'attachedStopLossTakeProfit': None,
|
|
178
|
+
'timeInForce': {
|
|
179
|
+
'IOC': False,
|
|
180
|
+
'FOK': False,
|
|
181
|
+
'PO': False,
|
|
182
|
+
'GTD': False,
|
|
183
|
+
},
|
|
184
|
+
'hedged': False,
|
|
185
|
+
'leverage': False,
|
|
186
|
+
'marketBuyRequiresPrice': False,
|
|
187
|
+
'marketBuyByCost': False,
|
|
188
|
+
'selfTradePrevention': False,
|
|
189
|
+
'trailing': False,
|
|
190
|
+
'iceberg': False,
|
|
191
|
+
},
|
|
192
|
+
'createOrders': None,
|
|
193
|
+
'fetchMyTrades': None,
|
|
194
|
+
'fetchOrder': {
|
|
195
|
+
'marginMode': False,
|
|
196
|
+
'trigger': False,
|
|
197
|
+
'trailing': False,
|
|
198
|
+
'symbolRequired': True,
|
|
199
|
+
},
|
|
200
|
+
'fetchOpenOrders': {
|
|
201
|
+
'marginMode': False,
|
|
202
|
+
'limit': 100,
|
|
203
|
+
'trigger': False,
|
|
204
|
+
'trailing': False,
|
|
205
|
+
'symbolRequired': True,
|
|
206
|
+
},
|
|
207
|
+
'fetchOrders': {
|
|
208
|
+
'marginMode': False,
|
|
209
|
+
'limit': 100,
|
|
210
|
+
'daysBack': None,
|
|
211
|
+
'untilDays': None,
|
|
212
|
+
'trigger': False,
|
|
213
|
+
'trailing': False,
|
|
214
|
+
'symbolRequired': True,
|
|
215
|
+
},
|
|
216
|
+
'fetchClosedOrders': None,
|
|
217
|
+
'fetchOHLCV': None,
|
|
218
|
+
},
|
|
219
|
+
'swap': {
|
|
220
|
+
'linear': None,
|
|
221
|
+
'inverse': None,
|
|
222
|
+
},
|
|
223
|
+
'future': {
|
|
224
|
+
'linear': None,
|
|
225
|
+
'inverse': None,
|
|
226
|
+
},
|
|
123
227
|
},
|
|
124
228
|
'precisionMode': TICK_SIZE,
|
|
125
229
|
'exceptions': {
|
|
@@ -136,6 +240,142 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
136
240
|
},
|
|
137
241
|
})
|
|
138
242
|
|
|
243
|
+
async def fetch_markets(self, params={}) -> List[Market]:
|
|
244
|
+
"""
|
|
245
|
+
retrieves data on all markets for ace
|
|
246
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
247
|
+
:returns dict[]: an array of objects representing market data
|
|
248
|
+
"""
|
|
249
|
+
promise1 = self.publicGetTickers()
|
|
250
|
+
promise2 = self.fetch_web_endpoint('fetchMarkets', 'webApiGetAjaxCoinCoinInfo', True)
|
|
251
|
+
response1, response2 = await asyncio.gather(*[promise1, promise2])
|
|
252
|
+
#
|
|
253
|
+
result2Data = self.safe_dict(response2, 'data', {})
|
|
254
|
+
marketIds = list(response1.keys())
|
|
255
|
+
markets = []
|
|
256
|
+
for i in range(0, len(marketIds)):
|
|
257
|
+
marketId = marketIds[i]
|
|
258
|
+
symbolParts = marketId.split('_')
|
|
259
|
+
baseCurr = self.safe_string(symbolParts, 0)
|
|
260
|
+
quote = self.safe_string(symbolParts, 1)
|
|
261
|
+
quoteId = quote.lower()
|
|
262
|
+
id = baseCurr.lower()
|
|
263
|
+
res = response1[marketId]
|
|
264
|
+
symbol = baseCurr + '/' + quote
|
|
265
|
+
fee = self.parse_number('0.0005') if (id == 'BTC') else self.parse_number('0.0010')
|
|
266
|
+
details = self.safe_dict(result2Data, id, {})
|
|
267
|
+
tradeDetails = self.safe_dict(details, 'trade', {})
|
|
268
|
+
markets.append(self.safe_market_structure({
|
|
269
|
+
'id': id,
|
|
270
|
+
'uppercaseId': None,
|
|
271
|
+
'symbol': symbol,
|
|
272
|
+
'base': baseCurr,
|
|
273
|
+
'baseId': id,
|
|
274
|
+
'quote': quote,
|
|
275
|
+
'quoteId': quoteId,
|
|
276
|
+
'settle': None,
|
|
277
|
+
'settleId': None,
|
|
278
|
+
'type': 'spot',
|
|
279
|
+
'spot': True,
|
|
280
|
+
'margin': False,
|
|
281
|
+
'swap': False,
|
|
282
|
+
'future': False,
|
|
283
|
+
'option': False,
|
|
284
|
+
'taker': fee,
|
|
285
|
+
'maker': fee,
|
|
286
|
+
'contract': False,
|
|
287
|
+
'linear': None,
|
|
288
|
+
'inverse': None,
|
|
289
|
+
'contractSize': None,
|
|
290
|
+
'expiry': None,
|
|
291
|
+
'expiryDatetime': None,
|
|
292
|
+
'strike': None,
|
|
293
|
+
'optionType': None,
|
|
294
|
+
'limits': {
|
|
295
|
+
'amount': {
|
|
296
|
+
'min': None,
|
|
297
|
+
'max': None,
|
|
298
|
+
},
|
|
299
|
+
'price': {
|
|
300
|
+
'min': None,
|
|
301
|
+
'max': None,
|
|
302
|
+
},
|
|
303
|
+
'cost': {
|
|
304
|
+
'min': None,
|
|
305
|
+
'max': None,
|
|
306
|
+
},
|
|
307
|
+
'leverage': {
|
|
308
|
+
'min': None,
|
|
309
|
+
'max': None,
|
|
310
|
+
},
|
|
311
|
+
},
|
|
312
|
+
'precision': {
|
|
313
|
+
'price': self.parse_number(self.parse_precision(self.safe_string(tradeDetails, 'pricedecimal'))),
|
|
314
|
+
'amount': None,
|
|
315
|
+
},
|
|
316
|
+
'active': self.safe_string(tradeDetails, 'enable') == '1',
|
|
317
|
+
'created': None,
|
|
318
|
+
'info': res,
|
|
319
|
+
}))
|
|
320
|
+
return markets
|
|
321
|
+
|
|
322
|
+
def parse_market(self, market: dict) -> Market:
|
|
323
|
+
baseId = self.safe_string(market, 'base')
|
|
324
|
+
base = self.safe_currency_code(baseId)
|
|
325
|
+
quoteId = self.safe_string(market, 'quote')
|
|
326
|
+
quote = self.safe_currency_code(quoteId)
|
|
327
|
+
symbol = base + '/' + quote
|
|
328
|
+
return {
|
|
329
|
+
'id': self.safe_string(market, 'symbol'),
|
|
330
|
+
'uppercaseId': None,
|
|
331
|
+
'symbol': symbol,
|
|
332
|
+
'base': base,
|
|
333
|
+
'baseId': baseId,
|
|
334
|
+
'quote': quote,
|
|
335
|
+
'quoteId': quoteId,
|
|
336
|
+
'settle': None,
|
|
337
|
+
'settleId': None,
|
|
338
|
+
'type': 'spot',
|
|
339
|
+
'spot': True,
|
|
340
|
+
'margin': False,
|
|
341
|
+
'swap': False,
|
|
342
|
+
'future': False,
|
|
343
|
+
'option': False,
|
|
344
|
+
'contract': False,
|
|
345
|
+
'linear': None,
|
|
346
|
+
'inverse': None,
|
|
347
|
+
'contractSize': None,
|
|
348
|
+
'expiry': None,
|
|
349
|
+
'expiryDatetime': None,
|
|
350
|
+
'strike': None,
|
|
351
|
+
'optionType': None,
|
|
352
|
+
'limits': {
|
|
353
|
+
'amount': {
|
|
354
|
+
'min': self.safe_number(market, 'minLimitBaseAmount'),
|
|
355
|
+
'max': self.safe_number(market, 'maxLimitBaseAmount'),
|
|
356
|
+
},
|
|
357
|
+
'price': {
|
|
358
|
+
'min': None,
|
|
359
|
+
'max': None,
|
|
360
|
+
},
|
|
361
|
+
'cost': {
|
|
362
|
+
'min': None,
|
|
363
|
+
'max': None,
|
|
364
|
+
},
|
|
365
|
+
'leverage': {
|
|
366
|
+
'min': None,
|
|
367
|
+
'max': None,
|
|
368
|
+
},
|
|
369
|
+
},
|
|
370
|
+
'precision': {
|
|
371
|
+
'price': self.parse_number(self.parse_precision(self.safe_string(market, 'quotePrecision'))),
|
|
372
|
+
'amount': self.parse_number(self.parse_precision(self.safe_string(market, 'basePrecision'))),
|
|
373
|
+
},
|
|
374
|
+
'active': None,
|
|
375
|
+
'created': None,
|
|
376
|
+
'info': market,
|
|
377
|
+
}
|
|
378
|
+
|
|
139
379
|
def parse_balance(self, response) -> Balances:
|
|
140
380
|
result: dict = {'info': response}
|
|
141
381
|
codes = list(self.currencies.keys())
|
|
@@ -155,7 +395,9 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
155
395
|
async def fetch_balance(self, params={}) -> Balances:
|
|
156
396
|
"""
|
|
157
397
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
|
158
|
-
|
|
398
|
+
|
|
399
|
+
https://blog.btcbox.jp/en/archives/8762#toc13
|
|
400
|
+
|
|
159
401
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
160
402
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
|
161
403
|
"""
|
|
@@ -166,7 +408,9 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
166
408
|
async def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
167
409
|
"""
|
|
168
410
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
169
|
-
|
|
411
|
+
|
|
412
|
+
https://blog.btcbox.jp/en/archives/8762#toc6
|
|
413
|
+
|
|
170
414
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
171
415
|
:param int [limit]: the maximum amount of order book entries to return
|
|
172
416
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -210,7 +454,9 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
210
454
|
async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
211
455
|
"""
|
|
212
456
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
213
|
-
|
|
457
|
+
|
|
458
|
+
https://blog.btcbox.jp/en/archives/8762#toc5
|
|
459
|
+
|
|
214
460
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
215
461
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
216
462
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -224,6 +470,17 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
224
470
|
response = await self.publicGetTicker(self.extend(request, params))
|
|
225
471
|
return self.parse_ticker(response, market)
|
|
226
472
|
|
|
473
|
+
async def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
474
|
+
"""
|
|
475
|
+
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
476
|
+
:param str[] [symbols]: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
477
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
478
|
+
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
479
|
+
"""
|
|
480
|
+
await self.load_markets()
|
|
481
|
+
response = await self.publicGetTickers(params)
|
|
482
|
+
return self.parse_tickers(response, symbols)
|
|
483
|
+
|
|
227
484
|
def parse_trade(self, trade: dict, market: Market = None) -> Trade:
|
|
228
485
|
#
|
|
229
486
|
# fetchTrades(public)
|
|
@@ -262,7 +519,9 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
262
519
|
async def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
263
520
|
"""
|
|
264
521
|
get the list of most recent trades for a particular symbol
|
|
265
|
-
|
|
522
|
+
|
|
523
|
+
https://blog.btcbox.jp/en/archives/8762#toc7
|
|
524
|
+
|
|
266
525
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
267
526
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
268
527
|
:param int [limit]: the maximum amount of trades to fetch
|
|
@@ -292,12 +551,14 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
292
551
|
async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
293
552
|
"""
|
|
294
553
|
create a trade order
|
|
295
|
-
|
|
554
|
+
|
|
555
|
+
https://blog.btcbox.jp/en/archives/8762#toc18
|
|
556
|
+
|
|
296
557
|
:param str symbol: unified symbol of the market to create an order in
|
|
297
558
|
:param str type: 'market' or 'limit'
|
|
298
559
|
:param str side: 'buy' or 'sell'
|
|
299
560
|
:param float amount: how much of currency you want to trade in units of base currency
|
|
300
|
-
:param float [price]: the price at which the order is to be
|
|
561
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
301
562
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
302
563
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
303
564
|
"""
|
|
@@ -321,7 +582,9 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
321
582
|
async def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
322
583
|
"""
|
|
323
584
|
cancels an open order
|
|
324
|
-
|
|
585
|
+
|
|
586
|
+
https://blog.btcbox.jp/en/archives/8762#toc17
|
|
587
|
+
|
|
325
588
|
:param str id: order id
|
|
326
589
|
:param str symbol: unified symbol of the market the order was made in
|
|
327
590
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -399,7 +662,6 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
399
662
|
'status': status,
|
|
400
663
|
'symbol': market['symbol'],
|
|
401
664
|
'price': price,
|
|
402
|
-
'stopPrice': None,
|
|
403
665
|
'triggerPrice': None,
|
|
404
666
|
'cost': None,
|
|
405
667
|
'trades': trades,
|
|
@@ -411,7 +673,10 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
411
673
|
async def fetch_order(self, id: str, symbol: Str = None, params={}):
|
|
412
674
|
"""
|
|
413
675
|
fetches information on an order made by the user
|
|
414
|
-
|
|
676
|
+
|
|
677
|
+
https://blog.btcbox.jp/en/archives/8762#toc16
|
|
678
|
+
|
|
679
|
+
:param str id: the order id
|
|
415
680
|
:param str symbol: unified symbol of the market the order was made in
|
|
416
681
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
417
682
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -443,8 +708,6 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
443
708
|
async def fetch_orders_by_type(self, type, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
444
709
|
await self.load_markets()
|
|
445
710
|
# a special case for btcbox – default symbol is BTC/JPY
|
|
446
|
-
if symbol is None:
|
|
447
|
-
symbol = 'BTC/JPY'
|
|
448
711
|
market = self.market(symbol)
|
|
449
712
|
request: dict = {
|
|
450
713
|
'type': type, # 'open' or 'all'
|
|
@@ -474,7 +737,9 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
474
737
|
async def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
475
738
|
"""
|
|
476
739
|
fetches information on multiple orders made by the user
|
|
477
|
-
|
|
740
|
+
|
|
741
|
+
https://blog.btcbox.jp/en/archives/8762#toc15
|
|
742
|
+
|
|
478
743
|
:param str symbol: unified market symbol of the market orders were made in
|
|
479
744
|
:param int [since]: the earliest time in ms to fetch orders for
|
|
480
745
|
:param int [limit]: the maximum number of order structures to retrieve
|
|
@@ -486,7 +751,9 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
486
751
|
async def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
487
752
|
"""
|
|
488
753
|
fetch all unfilled currently open orders
|
|
489
|
-
|
|
754
|
+
|
|
755
|
+
https://blog.btcbox.jp/en/archives/8762#toc15
|
|
756
|
+
|
|
490
757
|
:param str symbol: unified market symbol
|
|
491
758
|
:param int [since]: the earliest time in ms to fetch open orders for
|
|
492
759
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
|
@@ -503,6 +770,8 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
503
770
|
if api == 'public':
|
|
504
771
|
if params:
|
|
505
772
|
url += '?' + self.urlencode(params)
|
|
773
|
+
elif api == 'webApi':
|
|
774
|
+
url = self.urls['www'] + '/' + path
|
|
506
775
|
else:
|
|
507
776
|
self.check_required_credentials()
|
|
508
777
|
nonce = str(self.nonce())
|
|
@@ -511,7 +780,7 @@ class btcbox(Exchange, ImplicitAPI):
|
|
|
511
780
|
'nonce': nonce,
|
|
512
781
|
}, params)
|
|
513
782
|
request = self.urlencode(query)
|
|
514
|
-
secret = self.hash(self.encode(self.secret), '
|
|
783
|
+
secret = self.hash(self.encode(self.secret), 'md5')
|
|
515
784
|
query['signature'] = self.hmac(self.encode(request), self.encode(secret), hashlib.sha256)
|
|
516
785
|
body = self.urlencode(query)
|
|
517
786
|
headers = {
|