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/oxfun.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.oxfun import ImplicitAPI
|
|
8
8
|
import hashlib
|
|
9
|
-
from ccxt.base.types import Account, Balances, Bool, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
|
|
9
|
+
from ccxt.base.types import Account, Any, Balances, Bool, Currencies, Currency, DepositAddress, Int, LeverageTier, LeverageTiers, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, Transaction, TransferEntry
|
|
10
10
|
from typing import List
|
|
11
11
|
from ccxt.base.errors import ExchangeError
|
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
|
@@ -24,12 +24,11 @@ from ccxt.base.errors import NetworkError
|
|
|
24
24
|
from ccxt.base.errors import RateLimitExceeded
|
|
25
25
|
from ccxt.base.errors import RequestTimeout
|
|
26
26
|
from ccxt.base.decimal_to_precision import TICK_SIZE
|
|
27
|
-
from ccxt.base.precise import Precise
|
|
28
27
|
|
|
29
28
|
|
|
30
29
|
class oxfun(Exchange, ImplicitAPI):
|
|
31
30
|
|
|
32
|
-
def describe(self):
|
|
31
|
+
def describe(self) -> Any:
|
|
33
32
|
return self.deep_extend(super(oxfun, self).describe(), {
|
|
34
33
|
'id': 'oxfun',
|
|
35
34
|
'name': 'OXFUN',
|
|
@@ -76,14 +75,14 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
76
75
|
'fetchCrossBorrowRates': False,
|
|
77
76
|
'fetchCurrencies': True,
|
|
78
77
|
'fetchDeposit': False,
|
|
79
|
-
'fetchDepositAddress':
|
|
78
|
+
'fetchDepositAddress': True,
|
|
80
79
|
'fetchDepositAddresses': False,
|
|
81
80
|
'fetchDepositAddressesByNetwork': False,
|
|
82
81
|
'fetchDeposits': True,
|
|
83
82
|
'fetchDepositWithdrawFee': False,
|
|
84
83
|
'fetchDepositWithdrawFees': False,
|
|
85
84
|
'fetchFundingHistory': True,
|
|
86
|
-
'fetchFundingRate':
|
|
85
|
+
'fetchFundingRate': True,
|
|
87
86
|
'fetchFundingRateHistory': True,
|
|
88
87
|
'fetchFundingRates': True,
|
|
89
88
|
'fetchIndexOHLCV': False,
|
|
@@ -93,7 +92,7 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
93
92
|
'fetchLedger': False,
|
|
94
93
|
'fetchLeverage': False,
|
|
95
94
|
'fetchLeverageTiers': True,
|
|
96
|
-
'fetchMarketLeverageTiers':
|
|
95
|
+
'fetchMarketLeverageTiers': 'emulated',
|
|
97
96
|
'fetchMarkets': True,
|
|
98
97
|
'fetchMarkOHLCV': False,
|
|
99
98
|
'fetchMyTrades': True,
|
|
@@ -132,6 +131,7 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
132
131
|
'reduceMargin': False,
|
|
133
132
|
'repayCrossMargin': False,
|
|
134
133
|
'repayIsolatedMargin': False,
|
|
134
|
+
'sandbox': True,
|
|
135
135
|
'setLeverage': False,
|
|
136
136
|
'setMargin': False,
|
|
137
137
|
'setMarginMode': False,
|
|
@@ -258,6 +258,74 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
258
258
|
'Optimism': 'OPTIMISM',
|
|
259
259
|
},
|
|
260
260
|
},
|
|
261
|
+
'features': {
|
|
262
|
+
'default': {
|
|
263
|
+
'sandbox': True,
|
|
264
|
+
'createOrder': {
|
|
265
|
+
'marginMode': False,
|
|
266
|
+
'triggerPrice': True,
|
|
267
|
+
'triggerDirection': False,
|
|
268
|
+
'triggerPriceType': None,
|
|
269
|
+
'stopLossPrice': False, # todo
|
|
270
|
+
'takeProfitPrice': False, # todo
|
|
271
|
+
'attachedStopLossTakeProfit': None,
|
|
272
|
+
'timeInForce': {
|
|
273
|
+
'IOC': True,
|
|
274
|
+
'FOK': True,
|
|
275
|
+
'PO': True,
|
|
276
|
+
'GTD': False,
|
|
277
|
+
},
|
|
278
|
+
'hedged': False,
|
|
279
|
+
'trailing': False,
|
|
280
|
+
'leverage': False,
|
|
281
|
+
'marketBuyByCost': True,
|
|
282
|
+
'marketBuyRequiresPrice': False,
|
|
283
|
+
'selfTradePrevention': True, # todo
|
|
284
|
+
'iceberg': True, # todo
|
|
285
|
+
},
|
|
286
|
+
'createOrders': {
|
|
287
|
+
'max': 10, # todo
|
|
288
|
+
},
|
|
289
|
+
'fetchMyTrades': {
|
|
290
|
+
'marginMode': False,
|
|
291
|
+
'limit': 500,
|
|
292
|
+
'daysBack': 100000, # todo
|
|
293
|
+
'untilDays': 7,
|
|
294
|
+
'symbolRequired': False,
|
|
295
|
+
},
|
|
296
|
+
'fetchOrder': {
|
|
297
|
+
'marginMode': False,
|
|
298
|
+
'trigger': False,
|
|
299
|
+
'trailing': False,
|
|
300
|
+
'symbolRequired': False,
|
|
301
|
+
},
|
|
302
|
+
'fetchOpenOrders': {
|
|
303
|
+
'marginMode': False,
|
|
304
|
+
'limit': None,
|
|
305
|
+
'trigger': False,
|
|
306
|
+
'trailing': False,
|
|
307
|
+
'symbolRequired': False,
|
|
308
|
+
},
|
|
309
|
+
'fetchOrders': None,
|
|
310
|
+
'fetchClosedOrders': None, # todo?
|
|
311
|
+
'fetchOHLCV': {
|
|
312
|
+
'limit': 500,
|
|
313
|
+
},
|
|
314
|
+
},
|
|
315
|
+
'spot': {
|
|
316
|
+
'extends': 'default',
|
|
317
|
+
},
|
|
318
|
+
'swap': {
|
|
319
|
+
'linear': {
|
|
320
|
+
'extends': 'default',
|
|
321
|
+
},
|
|
322
|
+
'inverse': None,
|
|
323
|
+
},
|
|
324
|
+
'future': {
|
|
325
|
+
'linear': None,
|
|
326
|
+
'inverse': None,
|
|
327
|
+
},
|
|
328
|
+
},
|
|
261
329
|
'exceptions': {
|
|
262
330
|
'exact': {
|
|
263
331
|
'-0010': OperationFailed, # {"event":null,"success":false,"message":"Validation failed","code":"0010","data":null} - failed transfer
|
|
@@ -331,7 +399,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
331
399
|
def fetch_markets(self, params={}) -> List[Market]:
|
|
332
400
|
"""
|
|
333
401
|
retrieves data on all markets for bitmex
|
|
334
|
-
|
|
402
|
+
|
|
403
|
+
https://docs.ox.fun/?json#get-v3-markets
|
|
404
|
+
|
|
335
405
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
336
406
|
:returns dict[]: an array of objects representing market data
|
|
337
407
|
"""
|
|
@@ -504,7 +574,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
504
574
|
def fetch_currencies(self, params={}) -> Currencies:
|
|
505
575
|
"""
|
|
506
576
|
fetches all available currencies on an exchange
|
|
507
|
-
|
|
577
|
+
|
|
578
|
+
https://docs.ox.fun/?json#get-v3-assets
|
|
579
|
+
|
|
508
580
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
509
581
|
:returns dict: an associative dictionary of currencies
|
|
510
582
|
"""
|
|
@@ -539,66 +611,7 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
539
611
|
# "minDeposit": "0.00010",
|
|
540
612
|
# "minWithdrawal": "0.00010"
|
|
541
613
|
# },
|
|
542
|
-
#
|
|
543
|
-
# "network": "Arbitrum",
|
|
544
|
-
# "tokenId": "0xba0Dda8762C24dA9487f5FA026a9B64b695A07Ea",
|
|
545
|
-
# "transactionPrecision": "18",
|
|
546
|
-
# "isWithdrawalFeeChargedToUser": True,
|
|
547
|
-
# "canDeposit": True,
|
|
548
|
-
# "canWithdraw": True,
|
|
549
|
-
# "minDeposit": "0.00010",
|
|
550
|
-
# "minWithdrawal": "0.00010"
|
|
551
|
-
# },
|
|
552
|
-
# {
|
|
553
|
-
# "network": "Ethereum",
|
|
554
|
-
# "tokenId": "0xba0Dda8762C24dA9487f5FA026a9B64b695A07Ea",
|
|
555
|
-
# "transactionPrecision": "18",
|
|
556
|
-
# "isWithdrawalFeeChargedToUser": True,
|
|
557
|
-
# "canDeposit": True,
|
|
558
|
-
# "canWithdraw": True,
|
|
559
|
-
# "minDeposit": "0.00010",
|
|
560
|
-
# "minWithdrawal": "0.00010"
|
|
561
|
-
# },
|
|
562
|
-
# {
|
|
563
|
-
# "network": "Arbitrum",
|
|
564
|
-
# "tokenId": "0x78a0A62Fba6Fb21A83FE8a3433d44C73a4017A6f",
|
|
565
|
-
# "transactionPrecision": "18",
|
|
566
|
-
# "isWithdrawalFeeChargedToUser": True,
|
|
567
|
-
# "canDeposit": True,
|
|
568
|
-
# "canWithdraw": False,
|
|
569
|
-
# "minDeposit": "0.00010",
|
|
570
|
-
# "minWithdrawal": "0.00010"
|
|
571
|
-
# },
|
|
572
|
-
# {
|
|
573
|
-
# "network": "Avalanche",
|
|
574
|
-
# "tokenId": "0x78a0A62Fba6Fb21A83FE8a3433d44C73a4017A6f",
|
|
575
|
-
# "transactionPrecision": "18",
|
|
576
|
-
# "isWithdrawalFeeChargedToUser": True,
|
|
577
|
-
# "canDeposit": True,
|
|
578
|
-
# "canWithdraw": False,
|
|
579
|
-
# "minDeposit": "0.00010",
|
|
580
|
-
# "minWithdrawal": "0.00010"
|
|
581
|
-
# },
|
|
582
|
-
# {
|
|
583
|
-
# "network": "Solana",
|
|
584
|
-
# "tokenId": "DV3845GEAVXfwpyVGGgWbqBVCtzHdCXNCGfcdboSEuZz",
|
|
585
|
-
# "transactionPrecision": "8",
|
|
586
|
-
# "isWithdrawalFeeChargedToUser": True,
|
|
587
|
-
# "canDeposit": True,
|
|
588
|
-
# "canWithdraw": True,
|
|
589
|
-
# "minDeposit": "0.00010",
|
|
590
|
-
# "minWithdrawal": "0.00010"
|
|
591
|
-
# },
|
|
592
|
-
# {
|
|
593
|
-
# "network": "Ethereum",
|
|
594
|
-
# "tokenId": "0x78a0A62Fba6Fb21A83FE8a3433d44C73a4017A6f",
|
|
595
|
-
# "transactionPrecision": "18",
|
|
596
|
-
# "isWithdrawalFeeChargedToUser": True,
|
|
597
|
-
# "canDeposit": True,
|
|
598
|
-
# "canWithdraw": False,
|
|
599
|
-
# "minDeposit": "0.00010",
|
|
600
|
-
# "minWithdrawal": "0.00010"
|
|
601
|
-
# }
|
|
614
|
+
# ...
|
|
602
615
|
# ]
|
|
603
616
|
# },
|
|
604
617
|
# {
|
|
@@ -648,80 +661,72 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
648
661
|
parts = fullId.split('.')
|
|
649
662
|
id = parts[0]
|
|
650
663
|
code = self.safe_currency_code(id)
|
|
651
|
-
|
|
664
|
+
if not (code in result):
|
|
665
|
+
result[code] = {
|
|
666
|
+
'id': id,
|
|
667
|
+
'code': code,
|
|
668
|
+
'precision': None,
|
|
669
|
+
'type': None,
|
|
670
|
+
'name': None,
|
|
671
|
+
'active': None,
|
|
672
|
+
'deposit': None,
|
|
673
|
+
'withdraw': None,
|
|
674
|
+
'fee': None,
|
|
675
|
+
'limits': {
|
|
676
|
+
'withdraw': {
|
|
677
|
+
'min': None,
|
|
678
|
+
'max': None,
|
|
679
|
+
},
|
|
680
|
+
'deposit': {
|
|
681
|
+
'min': None,
|
|
682
|
+
'max': None,
|
|
683
|
+
},
|
|
684
|
+
},
|
|
685
|
+
'networks': {},
|
|
686
|
+
'info': [],
|
|
687
|
+
}
|
|
652
688
|
chains = self.safe_list(currency, 'networkList', [])
|
|
653
|
-
currencyMaxPrecision: Str = None
|
|
654
|
-
currencyDepositEnabled: Bool = None
|
|
655
|
-
currencyWithdrawEnabled: Bool = None
|
|
656
689
|
for j in range(0, len(chains)):
|
|
657
690
|
chain = chains[j]
|
|
658
691
|
networkId = self.safe_string(chain, 'network')
|
|
659
692
|
networkCode = self.network_id_to_code(networkId)
|
|
660
|
-
|
|
661
|
-
withdraw = self.safe_bool(chain, 'canWithdraw')
|
|
662
|
-
active = (deposit and withdraw)
|
|
663
|
-
minDeposit = self.safe_string(chain, 'minDeposit')
|
|
664
|
-
minWithdrawal = self.safe_string(chain, 'minWithdrawal')
|
|
665
|
-
precision = self.parse_precision(self.safe_string(chain, 'transactionPrecision'))
|
|
666
|
-
networks[networkCode] = {
|
|
693
|
+
result[code]['networks'][networkCode] = {
|
|
667
694
|
'id': networkId,
|
|
668
695
|
'network': networkCode,
|
|
669
696
|
'margin': None,
|
|
670
|
-
'deposit':
|
|
671
|
-
'withdraw':
|
|
672
|
-
'active':
|
|
697
|
+
'deposit': self.safe_bool(chain, 'canDeposit'),
|
|
698
|
+
'withdraw': self.safe_bool(chain, 'canWithdraw'),
|
|
699
|
+
'active': None,
|
|
673
700
|
'fee': None,
|
|
674
|
-
'precision': self.parse_number(
|
|
701
|
+
'precision': self.parse_number(self.parse_precision(self.safe_string(chain, 'transactionPrecision'))),
|
|
675
702
|
'limits': {
|
|
676
703
|
'deposit': {
|
|
677
|
-
'min': minDeposit,
|
|
704
|
+
'min': self.safe_number(chain, 'minDeposit'),
|
|
678
705
|
'max': None,
|
|
679
706
|
},
|
|
680
707
|
'withdraw': {
|
|
681
|
-
'min': minWithdrawal,
|
|
708
|
+
'min': self.safe_number(chain, 'minWithdrawal'),
|
|
682
709
|
'max': None,
|
|
683
710
|
},
|
|
684
711
|
},
|
|
685
712
|
'info': chain,
|
|
686
713
|
}
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
networks = self.extend(result[code]['networks'], networks)
|
|
696
|
-
result[code] = {
|
|
697
|
-
'id': id,
|
|
698
|
-
'code': code,
|
|
699
|
-
'name': None,
|
|
700
|
-
'type': None,
|
|
701
|
-
'active': None,
|
|
702
|
-
'deposit': currencyDepositEnabled,
|
|
703
|
-
'withdraw': currencyWithdrawEnabled,
|
|
704
|
-
'fee': None,
|
|
705
|
-
'precision': self.parse_number(currencyMaxPrecision),
|
|
706
|
-
'limits': {
|
|
707
|
-
'amount': {
|
|
708
|
-
'min': None,
|
|
709
|
-
'max': None,
|
|
710
|
-
},
|
|
711
|
-
'withdraw': {
|
|
712
|
-
'min': None,
|
|
713
|
-
'max': None,
|
|
714
|
-
},
|
|
715
|
-
},
|
|
716
|
-
'networks': networks,
|
|
717
|
-
'info': currency,
|
|
718
|
-
}
|
|
714
|
+
infos = self.safe_list(result[code], 'info', [])
|
|
715
|
+
infos.append(currency)
|
|
716
|
+
result[code]['info'] = infos
|
|
717
|
+
# only after all entries are formed in currencies, restructure each entry
|
|
718
|
+
allKeys = list(result.keys())
|
|
719
|
+
for i in range(0, len(allKeys)):
|
|
720
|
+
code = allKeys[i]
|
|
721
|
+
result[code] = self.safe_currency_structure(result[code]) # self is needed after adding network entry
|
|
719
722
|
return result
|
|
720
723
|
|
|
721
724
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
722
725
|
"""
|
|
723
726
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
724
|
-
|
|
727
|
+
|
|
728
|
+
https://docs.ox.fun/?json#get-v3-tickers
|
|
729
|
+
|
|
725
730
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
726
731
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
727
732
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -782,7 +787,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
782
787
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
783
788
|
"""
|
|
784
789
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
785
|
-
|
|
790
|
+
|
|
791
|
+
https://docs.ox.fun/?json#get-v3-tickers
|
|
792
|
+
|
|
786
793
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
787
794
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
788
795
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -858,13 +865,16 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
858
865
|
'average': None,
|
|
859
866
|
'baseVolume': self.safe_string(ticker, 'currencyVolume24h'),
|
|
860
867
|
'quoteVolume': None, # the exchange returns cost in OX
|
|
868
|
+
'markPrice': self.safe_string(ticker, 'markPrice'),
|
|
861
869
|
'info': ticker,
|
|
862
870
|
}, market)
|
|
863
871
|
|
|
864
872
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
865
873
|
"""
|
|
866
874
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
867
|
-
|
|
875
|
+
|
|
876
|
+
https://docs.ox.fun/?json#get-v3-candles
|
|
877
|
+
|
|
868
878
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
869
879
|
:param str timeframe: the length of time each candle represents
|
|
870
880
|
:param int [since]: timestamp in ms of the earliest candle to fetch(default 24 hours ago)
|
|
@@ -945,7 +955,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
945
955
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
946
956
|
"""
|
|
947
957
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
948
|
-
|
|
958
|
+
|
|
959
|
+
https://docs.ox.fun/?json#get-v3-depth
|
|
960
|
+
|
|
949
961
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
950
962
|
:param int [limit]: the maximum amount of order book entries to return(default 5, max 100)
|
|
951
963
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -987,10 +999,12 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
987
999
|
timestamp = self.safe_integer(data, 'lastUpdatedAt')
|
|
988
1000
|
return self.parse_order_book(data, market['symbol'], timestamp)
|
|
989
1001
|
|
|
990
|
-
def fetch_funding_rates(self, symbols: Strings = None, params={}):
|
|
1002
|
+
def fetch_funding_rates(self, symbols: Strings = None, params={}) -> FundingRates:
|
|
991
1003
|
"""
|
|
992
|
-
|
|
993
|
-
|
|
1004
|
+
fetch the current funding rates for multiple markets
|
|
1005
|
+
|
|
1006
|
+
https://docs.ox.fun/?json#get-v3-funding-estimates
|
|
1007
|
+
|
|
994
1008
|
:param str[] symbols: unified market symbols
|
|
995
1009
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
996
1010
|
:returns Order[]: an array of `funding rate structures <https://docs.ccxt.com/#/?id=funding-rate-structure>`
|
|
@@ -1017,17 +1031,35 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
1017
1031
|
# }
|
|
1018
1032
|
#
|
|
1019
1033
|
data = self.safe_list(response, 'data', [])
|
|
1020
|
-
|
|
1021
|
-
|
|
1034
|
+
return self.parse_funding_rates(data, symbols)
|
|
1035
|
+
|
|
1036
|
+
def fetch_funding_rate(self, symbol: str, params={}) -> FundingRate:
|
|
1037
|
+
"""
|
|
1038
|
+
fetch the current funding rates for a symbol
|
|
1039
|
+
|
|
1040
|
+
https://docs.ox.fun/?json#get-v3-funding-estimates
|
|
1041
|
+
|
|
1042
|
+
:param str symbol: unified market symbols
|
|
1043
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1044
|
+
:returns Order[]: an array of `funding rate structures <https://docs.ccxt.com/#/?id=funding-rate-structure>`
|
|
1045
|
+
"""
|
|
1046
|
+
self.load_markets()
|
|
1047
|
+
request: dict = {
|
|
1048
|
+
'marketCode': self.market_id(symbol),
|
|
1049
|
+
}
|
|
1050
|
+
response = self.publicGetV3FundingEstimates(self.extend(request, params))
|
|
1051
|
+
#
|
|
1052
|
+
data = self.safe_list(response, 'data', [])
|
|
1053
|
+
first = self.safe_dict(data, 0, {})
|
|
1054
|
+
return self.parse_funding_rate(first, self.market(symbol))
|
|
1022
1055
|
|
|
1023
|
-
def parse_funding_rate(self, fundingRate, market: Market = None):
|
|
1056
|
+
def parse_funding_rate(self, fundingRate, market: Market = None) -> FundingRate:
|
|
1024
1057
|
#
|
|
1025
1058
|
# {
|
|
1026
1059
|
# "marketCode": "OX-USD-SWAP-LIN",
|
|
1027
1060
|
# "fundingAt": "1715515200000",
|
|
1028
1061
|
# "estFundingRate": "0.000200000"
|
|
1029
|
-
# }
|
|
1030
|
-
#
|
|
1062
|
+
# }
|
|
1031
1063
|
#
|
|
1032
1064
|
symbol = self.safe_string(fundingRate, 'marketCode')
|
|
1033
1065
|
market = self.market(symbol)
|
|
@@ -1050,12 +1082,15 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
1050
1082
|
'previousFundingRate': None,
|
|
1051
1083
|
'previousFundingTimestamp': None,
|
|
1052
1084
|
'previousFundingDatetime': None,
|
|
1085
|
+
'interval': None,
|
|
1053
1086
|
}
|
|
1054
1087
|
|
|
1055
1088
|
def fetch_funding_rate_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1056
1089
|
"""
|
|
1057
1090
|
Fetches the history of funding rates
|
|
1058
|
-
|
|
1091
|
+
|
|
1092
|
+
https://docs.ox.fun/?json#get-v3-funding-rates
|
|
1093
|
+
|
|
1059
1094
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
1060
1095
|
:param int [since]: timestamp in ms of the earliest trade to fetch(default 24 hours ago)
|
|
1061
1096
|
:param int [limit]: the maximum amount of trades to fetch(default 200, max 500)
|
|
@@ -1130,7 +1165,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
1130
1165
|
def fetch_funding_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1131
1166
|
"""
|
|
1132
1167
|
fetches the history of funding payments
|
|
1133
|
-
|
|
1168
|
+
|
|
1169
|
+
https://docs.ox.fun/?json#get-v3-funding
|
|
1170
|
+
|
|
1134
1171
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
1135
1172
|
:param int [since]: timestamp in ms of the earliest trade to fetch(default 24 hours ago)
|
|
1136
1173
|
:param int [limit]: the maximum amount of trades to fetch(default 200, max 500)
|
|
@@ -1211,10 +1248,12 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
1211
1248
|
'rate': rate,
|
|
1212
1249
|
}
|
|
1213
1250
|
|
|
1214
|
-
def fetch_leverage_tiers(self, symbols: Strings = None, params={}):
|
|
1251
|
+
def fetch_leverage_tiers(self, symbols: Strings = None, params={}) -> LeverageTiers:
|
|
1215
1252
|
"""
|
|
1216
1253
|
retrieve information on the maximum leverage, and maintenance margin for trades of varying trade sizes, if a market has a leverage tier of 0, then the leverage tiers cannot be obtained for self market
|
|
1217
|
-
|
|
1254
|
+
|
|
1255
|
+
https://docs.ox.fun/?json#get-v3-leverage-tiers
|
|
1256
|
+
|
|
1218
1257
|
:param str[] [symbols]: list of unified market symbols
|
|
1219
1258
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1220
1259
|
:returns dict: a dictionary of `leverage tiers structures <https://docs.ccxt.com/#/?id=leverage-tiers-structure>`, indexed by market symbols
|
|
@@ -1265,7 +1304,7 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
1265
1304
|
data = self.safe_list(response, 'data', [])
|
|
1266
1305
|
return self.parse_leverage_tiers(data, symbols, 'marketCode')
|
|
1267
1306
|
|
|
1268
|
-
def parse_market_leverage_tiers(self, info, market: Market = None):
|
|
1307
|
+
def parse_market_leverage_tiers(self, info, market: Market = None) -> List[LeverageTier]:
|
|
1269
1308
|
#
|
|
1270
1309
|
# {
|
|
1271
1310
|
# marketCode: 'SOL-USD-SWAP-LIN',
|
|
@@ -1290,6 +1329,7 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
1290
1329
|
tier = listOfTiers[j]
|
|
1291
1330
|
tiers.append({
|
|
1292
1331
|
'tier': self.safe_number(tier, 'tier'),
|
|
1332
|
+
'symbol': self.safe_symbol(marketId, market),
|
|
1293
1333
|
'currency': market['settle'],
|
|
1294
1334
|
'minNotional': self.safe_number(tier, 'positionFloor'),
|
|
1295
1335
|
'maxNotional': self.safe_number(tier, 'positionCap'),
|
|
@@ -1302,7 +1342,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
1302
1342
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
1303
1343
|
"""
|
|
1304
1344
|
get the list of most recent trades for a particular symbol
|
|
1305
|
-
|
|
1345
|
+
|
|
1346
|
+
https://docs.ox.fun/?json#get-v3-exchange-trades
|
|
1347
|
+
|
|
1306
1348
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
1307
1349
|
:param int [since]: timestamp in ms of the earliest trade to fetch(default 24 hours ago)
|
|
1308
1350
|
:param int [limit]: the maximum amount of trades to fetch(default 200, max 500)
|
|
@@ -1348,7 +1390,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
1348
1390
|
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1349
1391
|
"""
|
|
1350
1392
|
fetch all trades made by the user
|
|
1351
|
-
|
|
1393
|
+
|
|
1394
|
+
https://docs.ox.fun/?json#get-v3-trades
|
|
1395
|
+
|
|
1352
1396
|
:param str symbol: unified market symbol
|
|
1353
1397
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
1354
1398
|
:param int [limit]: the maximum amount of trades to fetch(default 200, max 500)
|
|
@@ -1457,7 +1501,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
1457
1501
|
def fetch_balance(self, params={}) -> Balances:
|
|
1458
1502
|
"""
|
|
1459
1503
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
|
1460
|
-
|
|
1504
|
+
|
|
1505
|
+
https://docs.ox.fun/?json#get-v3-balances
|
|
1506
|
+
|
|
1461
1507
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1462
1508
|
:param str [params.asset]: currency id, if empty the exchange returns info about all currencies
|
|
1463
1509
|
:param str [params.subAcc]: Name of sub account. If no subAcc is given, then the response contains only the account linked to the API-Key.
|
|
@@ -1548,7 +1594,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
1548
1594
|
def fetch_accounts(self, params={}) -> List[Account]:
|
|
1549
1595
|
"""
|
|
1550
1596
|
fetch subaccounts associated with a profile
|
|
1551
|
-
|
|
1597
|
+
|
|
1598
|
+
https://docs.ox.fun/?json#get-v3-account-names
|
|
1599
|
+
|
|
1552
1600
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1553
1601
|
:returns dict: a dictionary of `account structures <https://docs.ccxt.com/#/?id=account-structure>` indexed by the account type
|
|
1554
1602
|
"""
|
|
@@ -1587,7 +1635,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
1587
1635
|
def transfer(self, code: str, amount: float, fromAccount: str, toAccount: str, params={}) -> TransferEntry:
|
|
1588
1636
|
"""
|
|
1589
1637
|
transfer currency internally between wallets on the same account
|
|
1590
|
-
|
|
1638
|
+
|
|
1639
|
+
https://docs.ox.fun/?json#post-v3-transfer
|
|
1640
|
+
|
|
1591
1641
|
:param str code: unified currency code
|
|
1592
1642
|
:param float amount: amount to transfer
|
|
1593
1643
|
:param str fromAccount: account id to transfer from
|
|
@@ -1628,7 +1678,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
1628
1678
|
def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1629
1679
|
"""
|
|
1630
1680
|
fetch a history of internal transfers made on an account
|
|
1631
|
-
|
|
1681
|
+
|
|
1682
|
+
https://docs.ox.fun/?json#get-v3-transfer
|
|
1683
|
+
|
|
1632
1684
|
:param str code: unified currency code of the currency transferred
|
|
1633
1685
|
:param int [since]: the earliest time in ms to fetch transfers for(default 24 hours ago)
|
|
1634
1686
|
:param int [limit]: the maximum number of transfer structures to retrieve(default 50, max 200)
|
|
@@ -1708,10 +1760,12 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
1708
1760
|
}
|
|
1709
1761
|
return self.safe_string(statuses, status, status)
|
|
1710
1762
|
|
|
1711
|
-
def fetch_deposit_address(self, code: str, params={}):
|
|
1763
|
+
def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
|
|
1712
1764
|
"""
|
|
1713
1765
|
fetch the deposit address for a currency associated with self account
|
|
1714
|
-
|
|
1766
|
+
|
|
1767
|
+
https://docs.ox.fun/?json#get-v3-deposit-addresses
|
|
1768
|
+
|
|
1715
1769
|
:param str code: unified currency code
|
|
1716
1770
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1717
1771
|
:param str [params.network]: network for fetch deposit address
|
|
@@ -1735,24 +1789,26 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
1735
1789
|
data = self.safe_dict(response, 'data', {})
|
|
1736
1790
|
return self.parse_deposit_address(data, currency)
|
|
1737
1791
|
|
|
1738
|
-
def parse_deposit_address(self, depositAddress, currency: Currency = None):
|
|
1792
|
+
def parse_deposit_address(self, depositAddress, currency: Currency = None) -> DepositAddress:
|
|
1739
1793
|
#
|
|
1740
1794
|
# {"address":"0x998dEc76151FB723963Bd8AFD517687b38D33dE8"}
|
|
1741
1795
|
#
|
|
1742
1796
|
address = self.safe_string(depositAddress, 'address')
|
|
1743
1797
|
self.check_address(address)
|
|
1744
1798
|
return {
|
|
1799
|
+
'info': depositAddress,
|
|
1745
1800
|
'currency': currency['code'],
|
|
1801
|
+
'network': None,
|
|
1746
1802
|
'address': address,
|
|
1747
1803
|
'tag': None,
|
|
1748
|
-
'network': None,
|
|
1749
|
-
'info': depositAddress,
|
|
1750
1804
|
}
|
|
1751
1805
|
|
|
1752
1806
|
def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
1753
1807
|
"""
|
|
1754
1808
|
fetch all deposits made to an account
|
|
1755
|
-
|
|
1809
|
+
|
|
1810
|
+
https://docs.ox.fun/?json#get-v3-deposit
|
|
1811
|
+
|
|
1756
1812
|
:param str code: unified currency code of the currency transferred
|
|
1757
1813
|
:param int [since]: the earliest time in ms to fetch transfers for(default 24 hours ago)
|
|
1758
1814
|
:param int [limit]: the maximum number of transfer structures to retrieve(default 50, max 200)
|
|
@@ -1800,7 +1856,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
1800
1856
|
def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
1801
1857
|
"""
|
|
1802
1858
|
fetch all withdrawals made from an account
|
|
1803
|
-
|
|
1859
|
+
|
|
1860
|
+
https://docs.ox.fun/?json#get-v3-withdrawal
|
|
1861
|
+
|
|
1804
1862
|
:param str code: unified currency code of the currency transferred
|
|
1805
1863
|
:param int [since]: the earliest time in ms to fetch transfers for(default 24 hours ago)
|
|
1806
1864
|
:param int [limit]: the maximum number of transfer structures to retrieve(default 50, max 200)
|
|
@@ -1965,19 +2023,21 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
1965
2023
|
}
|
|
1966
2024
|
return self.safe_string(statuses, status, status)
|
|
1967
2025
|
|
|
1968
|
-
def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
|
|
2026
|
+
def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
|
1969
2027
|
"""
|
|
1970
2028
|
make a withdrawal
|
|
1971
|
-
|
|
2029
|
+
|
|
2030
|
+
https://docs.ox.fun/?json#post-v3-withdrawal
|
|
2031
|
+
|
|
1972
2032
|
:param str code: unified currency code
|
|
1973
2033
|
:param float amount: the amount to withdraw
|
|
1974
2034
|
:param str address: the address to withdraw to
|
|
1975
2035
|
:param str tag:
|
|
2036
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1976
2037
|
:param str [params.network]: network for withdraw
|
|
1977
2038
|
:param bool [params.externalFee]: if False, then the fee is taken from the quantity, also with the burn fee for asset SOLO
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
* EXCHANGE SPECIFIC PARAMETERS
|
|
2039
|
+
|
|
2040
|
+
EXCHANGE SPECIFIC PARAMETERS
|
|
1981
2041
|
:param str [params.tfaType]: GOOGLE, or AUTHY_SECRET, or YUBIKEY, for 2FA
|
|
1982
2042
|
:param str [params.code]: 2FA code
|
|
1983
2043
|
:returns dict: a `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
|
|
@@ -2019,10 +2079,12 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
2019
2079
|
data['type'] = 'withdrawal'
|
|
2020
2080
|
return self.parse_transaction(data, currency)
|
|
2021
2081
|
|
|
2022
|
-
def fetch_positions(self, symbols: Strings = None, params={}):
|
|
2082
|
+
def fetch_positions(self, symbols: Strings = None, params={}) -> List[Position]:
|
|
2023
2083
|
"""
|
|
2024
2084
|
fetch all open positions
|
|
2025
|
-
|
|
2085
|
+
|
|
2086
|
+
https://docs.ox.fun/?json#get-v3-positions
|
|
2087
|
+
|
|
2026
2088
|
:param str[]|None symbols: list of unified market symbols
|
|
2027
2089
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2028
2090
|
:param boolean [params.subAcc]:
|
|
@@ -2135,12 +2197,14 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
2135
2197
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}) -> Order:
|
|
2136
2198
|
"""
|
|
2137
2199
|
create a trade order
|
|
2138
|
-
|
|
2200
|
+
|
|
2201
|
+
https://docs.ox.fun/?json#post-v3-orders-place
|
|
2202
|
+
|
|
2139
2203
|
:param str symbol: unified symbol of the market to create an order in
|
|
2140
2204
|
:param str type: 'market', 'limit', 'STOP_LIMIT' or 'STOP_MARKET'
|
|
2141
2205
|
:param str side: 'buy' or 'sell'
|
|
2142
2206
|
:param float amount: how much of currency you want to trade in units of base currency
|
|
2143
|
-
:param float [price]: the price at which the order is to be
|
|
2207
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
2144
2208
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2145
2209
|
:param int [params.clientOrderId]: a unique id for the order
|
|
2146
2210
|
:param int [params.timestamp]: in milliseconds. If an order reaches the matching engine and the current timestamp exceeds timestamp + recvWindow, then the order will be rejected.
|
|
@@ -2291,7 +2355,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
2291
2355
|
def create_orders(self, orders: List[OrderRequest], params={}) -> List[Order]:
|
|
2292
2356
|
"""
|
|
2293
2357
|
create a list of trade orders
|
|
2294
|
-
|
|
2358
|
+
|
|
2359
|
+
https://docs.ox.fun/?json#post-v3-orders-place
|
|
2360
|
+
|
|
2295
2361
|
:param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
|
|
2296
2362
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2297
2363
|
:param int [params.timestamp]: *for all orders* in milliseconds. If orders reach the matching engine and the current timestamp exceeds timestamp + recvWindow, then all orders will be rejected.
|
|
@@ -2326,7 +2392,7 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
2326
2392
|
:param str type: 'market', 'limit', 'STOP_LIMIT' or 'STOP_MARKET'
|
|
2327
2393
|
:param str side: 'buy' or 'sell'
|
|
2328
2394
|
:param float amount: how much of currency you want to trade in units of base currency
|
|
2329
|
-
:param float [price]: the price at which the order is to be
|
|
2395
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
2330
2396
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2331
2397
|
:param int [params.clientOrderId]: a unique id for the order
|
|
2332
2398
|
:param float [params.cost]: the quote quantity that can be used alternative for the amount for market buy orders
|
|
@@ -2374,7 +2440,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
2374
2440
|
def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}):
|
|
2375
2441
|
"""
|
|
2376
2442
|
create a market buy order by providing the symbol and cost
|
|
2377
|
-
|
|
2443
|
+
|
|
2444
|
+
https://open.big.one/docs/spot_orders.html#create-order
|
|
2445
|
+
|
|
2378
2446
|
:param str symbol: unified symbol of the market to create an order in
|
|
2379
2447
|
:param float cost: how much you want to trade in units of the quote currency
|
|
2380
2448
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -2391,7 +2459,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
2391
2459
|
|
|
2392
2460
|
def fetch_order(self, id: str, symbol: Str = None, params={}) -> Order:
|
|
2393
2461
|
"""
|
|
2394
|
-
|
|
2462
|
+
|
|
2463
|
+
https://docs.ox.fun/?json#get-v3-orders-status
|
|
2464
|
+
|
|
2395
2465
|
fetches information on an order made by the user
|
|
2396
2466
|
:param str id: a unique id for the order
|
|
2397
2467
|
:param str [symbol]: not used by oxfun fetchOrder
|
|
@@ -2433,7 +2503,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
2433
2503
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
2434
2504
|
"""
|
|
2435
2505
|
fetch all unfilled currently open orders
|
|
2436
|
-
|
|
2506
|
+
|
|
2507
|
+
https://docs.ox.fun/?json#get-v3-orders-working
|
|
2508
|
+
|
|
2437
2509
|
:param str symbol: unified market symbol
|
|
2438
2510
|
:param int [since]: the earliest time in ms to fetch open orders for
|
|
2439
2511
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
|
@@ -2454,7 +2526,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
2454
2526
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
2455
2527
|
"""
|
|
2456
2528
|
cancels an open order
|
|
2457
|
-
|
|
2529
|
+
|
|
2530
|
+
https://docs.ox.fun/?json#delete-v3-orders-cancel
|
|
2531
|
+
|
|
2458
2532
|
:param str id: order id
|
|
2459
2533
|
:param str symbol: unified symbol of the market the order was made in
|
|
2460
2534
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -2488,7 +2562,9 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
2488
2562
|
def cancel_all_orders(self, symbol: Str = None, params={}):
|
|
2489
2563
|
"""
|
|
2490
2564
|
cancel all open orders
|
|
2491
|
-
|
|
2565
|
+
|
|
2566
|
+
https://docs.ox.fun/?json#delete-v3-orders-cancel-all
|
|
2567
|
+
|
|
2492
2568
|
:param str symbol: unified market symbol, only orders in the market of self symbol are cancelled when symbol is not None
|
|
2493
2569
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2494
2570
|
:returns dict: response from exchange
|
|
@@ -2508,12 +2584,15 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
2508
2584
|
# "data": {"notice": "No working orders found"}
|
|
2509
2585
|
# }
|
|
2510
2586
|
#
|
|
2511
|
-
|
|
2587
|
+
response = self.privateDeleteV3OrdersCancelAll(self.extend(request, params))
|
|
2588
|
+
return [self.safe_order({'info': response})]
|
|
2512
2589
|
|
|
2513
2590
|
def cancel_orders(self, ids: List[str], symbol: Str = None, params={}):
|
|
2514
2591
|
"""
|
|
2515
2592
|
cancel multiple orders
|
|
2516
|
-
|
|
2593
|
+
|
|
2594
|
+
https://docs.ox.fun/?json#delete-v3-orders-cancel
|
|
2595
|
+
|
|
2517
2596
|
:param str[] ids: order ids
|
|
2518
2597
|
:param str [symbol]: unified market symbol
|
|
2519
2598
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -2756,7 +2835,7 @@ class oxfun(Exchange, ImplicitAPI):
|
|
|
2756
2835
|
'AccessKey': self.apiKey,
|
|
2757
2836
|
'Timestamp': datetime,
|
|
2758
2837
|
'Signature': signature,
|
|
2759
|
-
'Nonce': nonce,
|
|
2838
|
+
'Nonce': str(nonce),
|
|
2760
2839
|
}
|
|
2761
2840
|
return {'url': url, 'method': method, 'body': body, 'headers': headers}
|
|
2762
2841
|
|