ccxt-ir 4.3.46.0.2__py2.py3-none-any.whl → 4.5.0__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ccxt/__init__.py +39 -35
- ccxt/abantether.py +9 -9
- ccxt/abstract/alpaca.py +4 -0
- ccxt/abstract/apex.py +31 -0
- ccxt/abstract/bigone.py +1 -1
- ccxt/abstract/binance.py +106 -48
- ccxt/abstract/binancecoinm.py +106 -48
- ccxt/abstract/binanceus.py +141 -83
- ccxt/abstract/binanceusdm.py +106 -48
- ccxt/abstract/bingx.py +50 -1
- ccxt/abstract/bitbank.py +5 -0
- ccxt/abstract/bitfinex.py +136 -65
- ccxt/abstract/bitflyer.py +1 -0
- ccxt/abstract/bitget.py +67 -0
- ccxt/abstract/bitmart.py +19 -1
- ccxt/abstract/bitopro.py +1 -0
- ccxt/abstract/bitrue.py +68 -68
- ccxt/abstract/bitstamp.py +1 -0
- ccxt/abstract/blofin.py +30 -0
- ccxt/abstract/btcbox.py +2 -0
- ccxt/abstract/bybit.py +28 -13
- ccxt/abstract/cex.py +28 -29
- ccxt/abstract/coinbaseexchange.py +1 -0
- ccxt/abstract/coinbaseinternational.py +1 -1
- ccxt/abstract/cryptocom.py +16 -0
- ccxt/abstract/cryptomus.py +20 -0
- ccxt/abstract/defx.py +69 -0
- ccxt/abstract/deribit.py +1 -0
- ccxt/abstract/derive.py +117 -0
- ccxt/abstract/digifinex.py +1 -0
- ccxt/abstract/ellipx.py +25 -0
- ccxt/abstract/foxbit.py +26 -0
- ccxt/abstract/gate.py +19 -0
- ccxt/abstract/gateio.py +19 -0
- ccxt/abstract/gemini.py +1 -0
- ccxt/abstract/hibachi.py +26 -0
- ccxt/abstract/hyperliquid.py +1 -1
- ccxt/abstract/independentreserve.py +6 -0
- ccxt/abstract/kraken.py +1 -0
- ccxt/abstract/krakenfutures.py +4 -0
- ccxt/abstract/kucoin.py +10 -0
- ccxt/abstract/kucoinfutures.py +18 -0
- ccxt/abstract/lbank.py +2 -1
- ccxt/abstract/luno.py +1 -0
- ccxt/abstract/mexc.py +2 -0
- ccxt/abstract/modetrade.py +119 -0
- ccxt/abstract/myokx.py +349 -0
- ccxt/abstract/oceanex.py +5 -0
- ccxt/abstract/okx.py +25 -0
- ccxt/abstract/okxus.py +349 -0
- ccxt/abstract/onetrading.py +0 -12
- ccxt/abstract/paradex.py +23 -0
- ccxt/abstract/phemex.py +2 -0
- ccxt/abstract/poloniex.py +36 -0
- ccxt/abstract/tradeogre.py +3 -1
- ccxt/abstract/upbit.py +51 -34
- ccxt/abstract/whitebit.py +16 -0
- ccxt/abstract/woo.py +64 -6
- ccxt/abstract/xt.py +10 -5
- ccxt/afratether.py +7 -7
- ccxt/alpaca.py +828 -51
- ccxt/apex.py +1875 -0
- ccxt/arzinja.py +7 -7
- ccxt/arzplus.py +9 -9
- ccxt/ascendex.py +501 -306
- ccxt/async_support/__init__.py +39 -35
- ccxt/async_support/abantether.py +10 -10
- ccxt/async_support/afratether.py +9 -9
- ccxt/async_support/alpaca.py +828 -51
- ccxt/async_support/apex.py +1875 -0
- ccxt/async_support/arzinja.py +10 -10
- ccxt/async_support/arzplus.py +12 -12
- ccxt/async_support/ascendex.py +502 -306
- ccxt/async_support/base/exchange.py +303 -89
- ccxt/async_support/base/ws/cache.py +9 -3
- ccxt/async_support/base/ws/client.py +173 -38
- ccxt/async_support/base/ws/future.py +25 -37
- ccxt/async_support/bequant.py +5 -3
- ccxt/async_support/bigone.py +279 -144
- ccxt/async_support/binance.py +2347 -1158
- ccxt/async_support/binancecoinm.py +9 -3
- ccxt/async_support/binanceus.py +17 -3
- ccxt/async_support/binanceusdm.py +9 -4
- ccxt/async_support/bingx.py +2962 -920
- ccxt/async_support/bit2c.py +147 -27
- ccxt/async_support/bitbank.py +151 -23
- ccxt/async_support/bitbns.py +104 -30
- ccxt/async_support/bitfinex.py +3291 -1113
- ccxt/async_support/bitflyer.py +202 -27
- ccxt/async_support/bitget.py +3683 -1538
- ccxt/async_support/bithumb.py +195 -38
- ccxt/async_support/bitimen.py +12 -12
- ccxt/async_support/bitir.py +38 -38
- ccxt/async_support/bitmart.py +1288 -350
- ccxt/async_support/bitmex.py +260 -75
- ccxt/async_support/bitopro.py +262 -62
- ccxt/async_support/bitpin.py +17 -16
- ccxt/async_support/bitrue.py +459 -290
- ccxt/async_support/bitso.py +199 -54
- ccxt/async_support/bitstamp.py +230 -96
- ccxt/async_support/bitteam.py +167 -25
- ccxt/async_support/{huobijp.py → bittrade.py} +158 -30
- ccxt/async_support/bitvavo.py +213 -49
- ccxt/async_support/blockchaincom.py +160 -46
- ccxt/async_support/blofin.py +502 -120
- ccxt/async_support/btcalpha.py +169 -31
- ccxt/async_support/btcbox.py +292 -23
- ccxt/async_support/btcmarkets.py +211 -58
- ccxt/async_support/btcturk.py +161 -38
- ccxt/async_support/bybit.py +1775 -1030
- ccxt/async_support/cex.py +1440 -1303
- ccxt/async_support/coinbase.py +724 -212
- ccxt/async_support/coinbaseadvanced.py +2 -1
- ccxt/async_support/coinbaseexchange.py +388 -89
- ccxt/async_support/coinbaseinternational.py +412 -57
- ccxt/async_support/coincatch.py +177 -78
- ccxt/async_support/coincheck.py +135 -19
- ccxt/async_support/coinex.py +606 -232
- ccxt/async_support/coinmate.py +189 -63
- ccxt/async_support/coinmetro.py +195 -54
- ccxt/async_support/coinone.py +158 -51
- ccxt/async_support/coinsph.py +336 -61
- ccxt/async_support/coinspot.py +151 -52
- ccxt/async_support/cryptocom.py +661 -111
- ccxt/async_support/cryptomus.py +1137 -0
- ccxt/async_support/defx.py +2071 -0
- ccxt/async_support/delta.py +299 -99
- ccxt/async_support/deribit.py +348 -126
- ccxt/async_support/derive.py +2572 -0
- ccxt/async_support/digifinex.py +430 -214
- ccxt/async_support/ellipx.py +2029 -0
- ccxt/async_support/eterex.py +10 -10
- ccxt/async_support/excoino.py +31 -31
- ccxt/async_support/exir.py +14 -14
- ccxt/async_support/exmo.py +344 -131
- ccxt/async_support/exnovin.py +10 -10
- ccxt/async_support/farhadexchange.py +12 -12
- ccxt/async_support/fmfwio.py +2 -1
- ccxt/async_support/foxbit.py +1935 -0
- ccxt/async_support/gate.py +1351 -529
- ccxt/async_support/gateio.py +2 -1
- ccxt/async_support/gemini.py +144 -39
- ccxt/async_support/hashkey.py +152 -109
- ccxt/async_support/hibachi.py +2080 -0
- ccxt/async_support/hitbtc.py +395 -167
- ccxt/async_support/hitobit.py +12 -12
- ccxt/async_support/hollaex.py +307 -119
- ccxt/async_support/htx.py +851 -383
- ccxt/async_support/huobi.py +2 -1
- ccxt/async_support/hyperliquid.py +1848 -536
- ccxt/async_support/independentreserve.py +288 -15
- ccxt/async_support/indodax.py +190 -33
- ccxt/async_support/jibitex.py +12 -12
- ccxt/async_support/kraken.py +795 -351
- ccxt/async_support/krakenfutures.py +214 -62
- ccxt/async_support/kucoin.py +715 -396
- ccxt/async_support/kucoinfutures.py +652 -89
- ccxt/async_support/latoken.py +217 -113
- ccxt/async_support/lbank.py +425 -97
- ccxt/async_support/luno.py +382 -35
- ccxt/async_support/mercado.py +113 -6
- ccxt/async_support/mexc.py +874 -437
- ccxt/async_support/modetrade.py +2818 -0
- ccxt/async_support/myokx.py +54 -0
- ccxt/async_support/ndax.py +221 -64
- ccxt/async_support/nobitex.py +31 -37
- ccxt/async_support/novadax.py +190 -34
- ccxt/async_support/oceanex.py +217 -28
- ccxt/async_support/okcoin.py +253 -145
- ccxt/async_support/okexchange.py +11 -11
- ccxt/async_support/okx.py +1088 -351
- ccxt/async_support/okxus.py +54 -0
- ccxt/async_support/ompfinex.py +25 -24
- ccxt/async_support/onetrading.py +213 -392
- ccxt/async_support/oxfun.py +245 -166
- ccxt/async_support/p2b.py +151 -29
- ccxt/async_support/paradex.py +562 -49
- ccxt/async_support/paymium.py +82 -19
- ccxt/async_support/phemex.py +713 -172
- ccxt/async_support/poloniex.py +1602 -283
- ccxt/async_support/probit.py +224 -95
- ccxt/async_support/ramzinex.py +30 -27
- ccxt/async_support/sarmayex.py +9 -9
- ccxt/async_support/sarrafex.py +13 -13
- ccxt/async_support/tabdeal.py +14 -13
- ccxt/async_support/tetherland.py +9 -9
- ccxt/async_support/timex.py +210 -51
- ccxt/async_support/tokocrypto.py +167 -47
- ccxt/async_support/tradeogre.py +266 -31
- ccxt/async_support/twox.py +9 -9
- ccxt/async_support/ubitex.py +12 -12
- ccxt/async_support/upbit.py +568 -165
- ccxt/async_support/vertex.py +160 -32
- ccxt/async_support/wallex.py +12 -12
- ccxt/async_support/wavesexchange.py +165 -30
- ccxt/async_support/whitebit.py +975 -127
- ccxt/async_support/woo.py +1918 -1016
- ccxt/async_support/woofipro.py +433 -141
- ccxt/async_support/xt.py +649 -193
- ccxt/async_support/yobit.py +195 -70
- ccxt/async_support/zaif.py +91 -15
- ccxt/async_support/zonda.py +151 -36
- ccxt/base/decimal_to_precision.py +14 -10
- ccxt/base/errors.py +49 -18
- ccxt/base/exchange.py +1556 -450
- ccxt/base/precise.py +10 -0
- ccxt/base/types.py +114 -6
- ccxt/bequant.py +5 -3
- ccxt/bigone.py +279 -144
- ccxt/binance.py +2347 -1158
- ccxt/binancecoinm.py +9 -3
- ccxt/binanceus.py +17 -3
- ccxt/binanceusdm.py +9 -4
- ccxt/bingx.py +2962 -920
- ccxt/bit2c.py +147 -27
- ccxt/bitbank.py +151 -23
- ccxt/bitbns.py +104 -30
- ccxt/bitfinex.py +3290 -1113
- ccxt/bitflyer.py +202 -27
- ccxt/bitget.py +3683 -1538
- ccxt/bithumb.py +194 -38
- ccxt/bitimen.py +9 -9
- ccxt/bitir.py +35 -35
- ccxt/bitmart.py +1288 -350
- ccxt/bitmex.py +260 -75
- ccxt/bitopro.py +262 -62
- ccxt/bitpin.py +15 -14
- ccxt/bitrue.py +459 -290
- ccxt/bitso.py +199 -54
- ccxt/bitstamp.py +230 -96
- ccxt/bitteam.py +167 -25
- ccxt/{huobijp.py → bittrade.py} +158 -30
- ccxt/bitvavo.py +213 -49
- ccxt/blockchaincom.py +160 -46
- ccxt/blofin.py +502 -120
- ccxt/btcalpha.py +169 -31
- ccxt/btcbox.py +291 -23
- ccxt/btcmarkets.py +211 -58
- ccxt/btcturk.py +161 -38
- ccxt/bybit.py +1775 -1030
- ccxt/cex.py +1439 -1303
- ccxt/coinbase.py +724 -212
- ccxt/coinbaseadvanced.py +2 -1
- ccxt/coinbaseexchange.py +388 -89
- ccxt/coinbaseinternational.py +412 -57
- ccxt/coincatch.py +177 -78
- ccxt/coincheck.py +135 -19
- ccxt/coinex.py +606 -232
- ccxt/coinmate.py +189 -63
- ccxt/coinmetro.py +194 -54
- ccxt/coinone.py +158 -51
- ccxt/coinsph.py +336 -61
- ccxt/coinspot.py +151 -52
- ccxt/cryptocom.py +661 -111
- ccxt/cryptomus.py +1137 -0
- ccxt/defx.py +2070 -0
- ccxt/delta.py +299 -99
- ccxt/deribit.py +348 -126
- ccxt/derive.py +2571 -0
- ccxt/digifinex.py +430 -214
- ccxt/ellipx.py +2029 -0
- ccxt/eterex.py +7 -7
- ccxt/excoino.py +29 -29
- ccxt/exir.py +11 -11
- ccxt/exmo.py +343 -131
- ccxt/exnovin.py +8 -8
- ccxt/farhadexchange.py +10 -10
- ccxt/fmfwio.py +2 -1
- ccxt/foxbit.py +1935 -0
- ccxt/gate.py +1351 -529
- ccxt/gateio.py +2 -1
- ccxt/gemini.py +144 -39
- ccxt/hashkey.py +152 -109
- ccxt/hibachi.py +2079 -0
- ccxt/hitbtc.py +395 -167
- ccxt/hitobit.py +9 -9
- ccxt/hollaex.py +307 -119
- ccxt/htx.py +851 -383
- ccxt/huobi.py +2 -1
- ccxt/hyperliquid.py +1848 -536
- ccxt/independentreserve.py +287 -15
- ccxt/indodax.py +190 -33
- ccxt/jibitex.py +9 -9
- ccxt/kraken.py +794 -351
- ccxt/krakenfutures.py +214 -62
- ccxt/kucoin.py +715 -396
- ccxt/kucoinfutures.py +652 -89
- ccxt/latoken.py +217 -113
- ccxt/lbank.py +425 -97
- ccxt/luno.py +382 -35
- ccxt/mercado.py +113 -6
- ccxt/mexc.py +873 -437
- ccxt/modetrade.py +2818 -0
- ccxt/myokx.py +54 -0
- ccxt/ndax.py +221 -64
- ccxt/nobitex.py +29 -35
- ccxt/novadax.py +190 -34
- ccxt/oceanex.py +217 -28
- ccxt/okcoin.py +253 -145
- ccxt/okexchange.py +9 -9
- ccxt/okx.py +1088 -351
- ccxt/okxus.py +54 -0
- ccxt/ompfinex.py +22 -21
- ccxt/onetrading.py +213 -392
- ccxt/oxfun.py +245 -166
- ccxt/p2b.py +151 -29
- ccxt/paradex.py +562 -49
- ccxt/paymium.py +82 -19
- ccxt/phemex.py +712 -172
- ccxt/poloniex.py +1601 -283
- ccxt/pro/__init__.py +76 -17
- ccxt/pro/alpaca.py +21 -6
- ccxt/pro/apex.py +984 -0
- ccxt/pro/ascendex.py +58 -10
- ccxt/pro/bequant.py +6 -1
- ccxt/pro/binance.py +728 -156
- ccxt/pro/binancecoinm.py +6 -2
- ccxt/pro/binanceus.py +8 -4
- ccxt/pro/binanceusdm.py +7 -2
- ccxt/pro/bingx.py +333 -142
- ccxt/pro/bitfinex.py +727 -262
- ccxt/pro/bitget.py +570 -79
- ccxt/pro/bithumb.py +20 -6
- ccxt/pro/bitmart.py +216 -87
- ccxt/pro/bitmex.py +47 -9
- ccxt/pro/bitopro.py +26 -14
- ccxt/pro/bitrue.py +22 -22
- ccxt/pro/bitstamp.py +54 -21
- ccxt/pro/{huobijp.py → bittrade.py} +7 -6
- ccxt/pro/bitvavo.py +191 -67
- ccxt/pro/blockchaincom.py +21 -8
- ccxt/pro/blofin.py +9 -1
- ccxt/pro/bybit.py +632 -245
- ccxt/pro/cex.py +59 -24
- ccxt/pro/coinbase.py +102 -73
- ccxt/pro/coinbaseadvanced.py +2 -1
- ccxt/pro/coinbaseexchange.py +8 -8
- ccxt/pro/coinbaseinternational.py +181 -25
- ccxt/pro/coincatch.py +6 -7
- ccxt/pro/coincheck.py +11 -6
- ccxt/pro/coinex.py +967 -665
- ccxt/pro/coinone.py +16 -9
- ccxt/pro/cryptocom.py +448 -45
- ccxt/pro/defx.py +831 -0
- ccxt/pro/deribit.py +150 -14
- ccxt/pro/derive.py +704 -0
- ccxt/pro/exmo.py +239 -6
- ccxt/pro/gate.py +623 -65
- ccxt/pro/gateio.py +2 -1
- ccxt/pro/gemini.py +27 -11
- ccxt/pro/hashkey.py +2 -2
- ccxt/pro/hitbtc.py +196 -91
- ccxt/pro/hollaex.py +23 -7
- ccxt/pro/htx.py +51 -14
- ccxt/pro/huobi.py +2 -1
- ccxt/pro/hyperliquid.py +591 -27
- ccxt/pro/independentreserve.py +9 -6
- ccxt/pro/kraken.py +640 -320
- ccxt/pro/krakenfutures.py +62 -35
- ccxt/pro/kucoin.py +267 -46
- ccxt/pro/kucoinfutures.py +165 -21
- ccxt/pro/lbank.py +102 -21
- ccxt/pro/luno.py +12 -8
- ccxt/pro/mexc.py +877 -111
- ccxt/pro/modetrade.py +1271 -0
- ccxt/pro/myokx.py +38 -0
- ccxt/pro/ndax.py +15 -2
- ccxt/pro/okcoin.py +23 -4
- ccxt/pro/okx.py +573 -98
- ccxt/pro/okxus.py +38 -0
- ccxt/pro/onetrading.py +30 -13
- ccxt/pro/oxfun.py +131 -27
- ccxt/pro/p2b.py +88 -22
- ccxt/pro/paradex.py +3 -3
- ccxt/pro/phemex.py +75 -21
- ccxt/pro/poloniex.py +124 -41
- ccxt/pro/probit.py +87 -80
- ccxt/pro/tradeogre.py +272 -0
- ccxt/pro/upbit.py +152 -12
- ccxt/pro/vertex.py +8 -3
- ccxt/pro/whitebit.py +58 -5
- ccxt/pro/woo.py +228 -37
- ccxt/pro/woofipro.py +106 -18
- ccxt/pro/xt.py +111 -5
- ccxt/probit.py +224 -95
- ccxt/protobuf/__init__.py +0 -0
- ccxt/protobuf/mexc/PrivateAccountV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PrivateDealsV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PrivateOrdersV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicAggreBookTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicAggreDealsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicAggreDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicBookTickerBatchV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicBookTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicDealsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicIncreaseDepthsBatchV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicIncreaseDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicLimitDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicMiniTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicMiniTickersV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicSpotKlineV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PushDataV3ApiWrapper_pb2.py +52 -0
- ccxt/protobuf/mexc/__init__.py +0 -0
- ccxt/ramzinex.py +28 -25
- ccxt/sarmayex.py +7 -7
- ccxt/sarrafex.py +10 -10
- ccxt/static_dependencies/__init__.py +1 -1
- ccxt/static_dependencies/lark/py.typed +0 -0
- ccxt/static_dependencies/marshmallow/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
- ccxt/tabdeal.py +12 -11
- ccxt/test/tests_async.py +261 -57
- ccxt/test/tests_helpers.py +1 -3
- ccxt/test/tests_init.py +4 -3
- ccxt/test/tests_sync.py +261 -57
- ccxt/tetherland.py +7 -7
- ccxt/timex.py +210 -51
- ccxt/tokocrypto.py +167 -47
- ccxt/tradeogre.py +266 -31
- ccxt/twox.py +7 -7
- ccxt/ubitex.py +9 -9
- ccxt/upbit.py +568 -165
- ccxt/vertex.py +160 -32
- ccxt/wallex.py +9 -9
- ccxt/wavesexchange.py +165 -30
- ccxt/whitebit.py +975 -127
- ccxt/woo.py +1917 -1016
- ccxt/woofipro.py +432 -141
- ccxt/xt.py +649 -193
- ccxt/yobit.py +194 -70
- ccxt/zaif.py +91 -15
- ccxt/zonda.py +151 -36
- {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info}/METADATA +225 -73
- ccxt_ir-4.5.0.dist-info/RECORD +743 -0
- {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info}/WHEEL +1 -1
- ccxt/abstract/ace.py +0 -15
- ccxt/abstract/bitbay.py +0 -53
- ccxt/abstract/bitcoincom.py +0 -115
- ccxt/abstract/bitfinex2.py +0 -139
- ccxt/abstract/bitpanda.py +0 -35
- ccxt/abstract/bl3p.py +0 -19
- ccxt/abstract/coinlist.py +0 -54
- ccxt/abstract/currencycom.py +0 -68
- ccxt/abstract/hitbtc3.py +0 -115
- ccxt/abstract/idex.py +0 -26
- ccxt/abstract/kuna.py +0 -182
- ccxt/abstract/lykke.py +0 -29
- ccxt/abstract/poloniexfutures.py +0 -48
- ccxt/abstract/wazirx.py +0 -30
- ccxt/ace.py +0 -1012
- ccxt/async_support/ace.py +0 -1012
- ccxt/async_support/base/ws/aiohttp_client.py +0 -125
- ccxt/async_support/base/ws/fast_client.py +0 -96
- ccxt/async_support/bitbay.py +0 -17
- ccxt/async_support/bitcoincom.py +0 -17
- ccxt/async_support/bitfinex2.py +0 -3552
- ccxt/async_support/bitpanda.py +0 -16
- ccxt/async_support/bl3p.py +0 -485
- ccxt/async_support/coinlist.py +0 -2243
- ccxt/async_support/currencycom.py +0 -1950
- ccxt/async_support/hitbtc3.py +0 -16
- ccxt/async_support/idex.py +0 -1766
- ccxt/async_support/kuna.py +0 -1841
- ccxt/async_support/lykke.py +0 -1270
- ccxt/async_support/poloniexfutures.py +0 -1717
- ccxt/async_support/wazirx.py +0 -1224
- ccxt/bitbay.py +0 -17
- ccxt/bitcoincom.py +0 -17
- ccxt/bitfinex2.py +0 -3552
- ccxt/bitpanda.py +0 -16
- ccxt/bl3p.py +0 -485
- ccxt/coinlist.py +0 -2243
- ccxt/currencycom.py +0 -1950
- ccxt/hitbtc3.py +0 -16
- ccxt/idex.py +0 -1766
- ccxt/kuna.py +0 -1841
- ccxt/lykke.py +0 -1270
- ccxt/poloniexfutures.py +0 -1717
- ccxt/pro/bitcoincom.py +0 -34
- ccxt/pro/bitfinex2.py +0 -1083
- ccxt/pro/bitpanda.py +0 -15
- ccxt/pro/currencycom.py +0 -536
- ccxt/pro/idex.py +0 -672
- ccxt/pro/poloniexfutures.py +0 -990
- ccxt/pro/wazirx.py +0 -749
- ccxt/test/base/__init__.py +0 -29
- ccxt/test/base/test_account.py +0 -26
- ccxt/test/base/test_balance.py +0 -56
- ccxt/test/base/test_borrow_interest.py +0 -35
- ccxt/test/base/test_borrow_rate.py +0 -32
- ccxt/test/base/test_calculate_fee.py +0 -51
- ccxt/test/base/test_crypto.py +0 -127
- ccxt/test/base/test_currency.py +0 -76
- ccxt/test/base/test_datetime.py +0 -109
- ccxt/test/base/test_decimal_to_precision.py +0 -392
- ccxt/test/base/test_deep_extend.py +0 -68
- ccxt/test/base/test_deposit_withdrawal.py +0 -50
- ccxt/test/base/test_exchange_datetime_functions.py +0 -76
- ccxt/test/base/test_funding_rate_history.py +0 -29
- ccxt/test/base/test_last_price.py +0 -31
- ccxt/test/base/test_ledger_entry.py +0 -45
- ccxt/test/base/test_ledger_item.py +0 -48
- ccxt/test/base/test_leverage_tier.py +0 -33
- ccxt/test/base/test_liquidation.py +0 -50
- ccxt/test/base/test_margin_mode.py +0 -24
- ccxt/test/base/test_margin_modification.py +0 -35
- ccxt/test/base/test_market.py +0 -193
- ccxt/test/base/test_number.py +0 -411
- ccxt/test/base/test_ohlcv.py +0 -33
- ccxt/test/base/test_open_interest.py +0 -32
- ccxt/test/base/test_order.py +0 -64
- ccxt/test/base/test_order_book.py +0 -69
- ccxt/test/base/test_position.py +0 -60
- ccxt/test/base/test_shared_methods.py +0 -353
- ccxt/test/base/test_status.py +0 -24
- ccxt/test/base/test_throttle.py +0 -126
- ccxt/test/base/test_ticker.py +0 -92
- ccxt/test/base/test_trade.py +0 -47
- ccxt/test/base/test_trading_fee.py +0 -26
- ccxt/test/base/test_transaction.py +0 -39
- ccxt/test/test_async.py +0 -1649
- ccxt/test/test_sync.py +0 -1648
- ccxt/wazirx.py +0 -1224
- ccxt_ir-4.3.46.0.2.dist-info/RECORD +0 -772
- /ccxt/abstract/{huobijp.py → bittrade.py} +0 -0
- {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info/licenses}/LICENSE.txt +0 -0
- {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info}/top_level.txt +0 -0
ccxt/async_support/bitflyer.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.bitflyer import ImplicitAPI
|
|
8
8
|
import hashlib
|
|
9
|
-
from ccxt.base.types import Balances, Currency, Int, Market,
|
|
9
|
+
from ccxt.base.types import Any, Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Position, Str, Strings, Ticker, FundingRate, Trade, TradingFeeInterface, Transaction, MarketInterface
|
|
10
10
|
from typing import List
|
|
11
11
|
from ccxt.base.errors import ExchangeError
|
|
12
12
|
from ccxt.base.errors import ArgumentsRequired
|
|
@@ -18,7 +18,7 @@ from ccxt.base.precise import Precise
|
|
|
18
18
|
|
|
19
19
|
class bitflyer(Exchange, ImplicitAPI):
|
|
20
20
|
|
|
21
|
-
def describe(self):
|
|
21
|
+
def describe(self) -> Any:
|
|
22
22
|
return self.deep_extend(super(bitflyer, self).describe(), {
|
|
23
23
|
'id': 'bitflyer',
|
|
24
24
|
'name': 'bitFlyer',
|
|
@@ -39,6 +39,9 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
39
39
|
'fetchBalance': True,
|
|
40
40
|
'fetchClosedOrders': 'emulated',
|
|
41
41
|
'fetchDeposits': True,
|
|
42
|
+
'fetchFundingRate': True,
|
|
43
|
+
'fetchFundingRateHistory': False,
|
|
44
|
+
'fetchFundingRates': False,
|
|
42
45
|
'fetchMarginMode': False,
|
|
43
46
|
'fetchMarkets': True,
|
|
44
47
|
'fetchMyTrades': True,
|
|
@@ -59,7 +62,7 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
59
62
|
'withdraw': True,
|
|
60
63
|
},
|
|
61
64
|
'urls': {
|
|
62
|
-
'logo': 'https://
|
|
65
|
+
'logo': 'https://github.com/user-attachments/assets/d0217747-e54d-4533-8416-0d553dca74bb',
|
|
63
66
|
'api': {
|
|
64
67
|
'rest': 'https://api.{hostname}',
|
|
65
68
|
},
|
|
@@ -78,6 +81,7 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
78
81
|
'gethealth',
|
|
79
82
|
'getboardstate',
|
|
80
83
|
'getchats',
|
|
84
|
+
'getfundingrate',
|
|
81
85
|
],
|
|
82
86
|
},
|
|
83
87
|
'private': {
|
|
@@ -119,6 +123,82 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
119
123
|
},
|
|
120
124
|
},
|
|
121
125
|
'precisionMode': TICK_SIZE,
|
|
126
|
+
'features': {
|
|
127
|
+
'spot': {
|
|
128
|
+
'sandbox': False,
|
|
129
|
+
'createOrder': {
|
|
130
|
+
'marginMode': False,
|
|
131
|
+
'triggerPrice': False,
|
|
132
|
+
'triggerPriceType': None,
|
|
133
|
+
'triggerDirection': False,
|
|
134
|
+
'stopLossPrice': False,
|
|
135
|
+
'takeProfitPrice': False,
|
|
136
|
+
'attachedStopLossTakeProfit': None,
|
|
137
|
+
'timeInForce': {
|
|
138
|
+
'IOC': True,
|
|
139
|
+
'FOK': True,
|
|
140
|
+
'PO': True,
|
|
141
|
+
'GTD': True, # todo implement
|
|
142
|
+
},
|
|
143
|
+
'hedged': False,
|
|
144
|
+
'trailing': False, # todo recheck
|
|
145
|
+
'leverage': False,
|
|
146
|
+
'marketBuyRequiresPrice': False,
|
|
147
|
+
'marketBuyByCost': False,
|
|
148
|
+
'selfTradePrevention': False,
|
|
149
|
+
'iceberg': False,
|
|
150
|
+
},
|
|
151
|
+
'createOrders': None,
|
|
152
|
+
'fetchMyTrades': {
|
|
153
|
+
'marginMode': False,
|
|
154
|
+
'limit': 100,
|
|
155
|
+
'daysBack': None,
|
|
156
|
+
'untilDays': None,
|
|
157
|
+
'symbolRequired': True,
|
|
158
|
+
},
|
|
159
|
+
'fetchOrder': {
|
|
160
|
+
'marginMode': False,
|
|
161
|
+
'trigger': False,
|
|
162
|
+
'trailing': False,
|
|
163
|
+
'symbolRequired': True,
|
|
164
|
+
},
|
|
165
|
+
'fetchOpenOrders': {
|
|
166
|
+
'marginMode': False,
|
|
167
|
+
'limit': 100,
|
|
168
|
+
'trigger': False,
|
|
169
|
+
'trailing': False,
|
|
170
|
+
'symbolRequired': True,
|
|
171
|
+
},
|
|
172
|
+
'fetchOrders': {
|
|
173
|
+
'marginMode': False,
|
|
174
|
+
'limit': 100,
|
|
175
|
+
'daysBack': None,
|
|
176
|
+
'untilDays': None,
|
|
177
|
+
'trigger': False,
|
|
178
|
+
'trailing': False,
|
|
179
|
+
'symbolRequired': True,
|
|
180
|
+
},
|
|
181
|
+
'fetchClosedOrders': {
|
|
182
|
+
'marginMode': False,
|
|
183
|
+
'limit': 100,
|
|
184
|
+
'daysBack': None,
|
|
185
|
+
'daysBackCanceled': None,
|
|
186
|
+
'untilDays': None,
|
|
187
|
+
'trigger': False,
|
|
188
|
+
'trailing': False,
|
|
189
|
+
'symbolRequired': True,
|
|
190
|
+
},
|
|
191
|
+
'fetchOHLCV': None,
|
|
192
|
+
},
|
|
193
|
+
'swap': {
|
|
194
|
+
'linear': None,
|
|
195
|
+
'inverse': None,
|
|
196
|
+
},
|
|
197
|
+
'future': {
|
|
198
|
+
'linear': None,
|
|
199
|
+
'inverse': None,
|
|
200
|
+
},
|
|
201
|
+
},
|
|
122
202
|
'exceptions': {
|
|
123
203
|
'exact': {
|
|
124
204
|
'-2': OnMaintenance, # {"status":-2,"error_message":"Under maintenance","data":null}
|
|
@@ -156,7 +236,9 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
156
236
|
async def fetch_markets(self, params={}) -> List[Market]:
|
|
157
237
|
"""
|
|
158
238
|
retrieves data on all markets for bitflyer
|
|
159
|
-
|
|
239
|
+
|
|
240
|
+
https://lightning.bitflyer.com/docs?lang=en#market-list
|
|
241
|
+
|
|
160
242
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
161
243
|
:returns dict[]: an array of objects representing market data
|
|
162
244
|
"""
|
|
@@ -168,6 +250,7 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
168
250
|
# {"product_code": "BCH_BTC", "market_type": "Spot"},
|
|
169
251
|
# # forex swap
|
|
170
252
|
# {"product_code": "FX_BTC_JPY", "market_type": "FX"},
|
|
253
|
+
#
|
|
171
254
|
# # future
|
|
172
255
|
# {
|
|
173
256
|
# "product_code": "BTCJPY11FEB2022",
|
|
@@ -314,7 +397,9 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
314
397
|
async def fetch_balance(self, params={}) -> Balances:
|
|
315
398
|
"""
|
|
316
399
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
|
317
|
-
|
|
400
|
+
|
|
401
|
+
https://lightning.bitflyer.com/docs?lang=en#get-account-asset-balance
|
|
402
|
+
|
|
318
403
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
319
404
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
|
320
405
|
"""
|
|
@@ -344,7 +429,9 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
344
429
|
async def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
345
430
|
"""
|
|
346
431
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
347
|
-
|
|
432
|
+
|
|
433
|
+
https://lightning.bitflyer.com/docs?lang=en#order-book
|
|
434
|
+
|
|
348
435
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
349
436
|
:param int [limit]: the maximum amount of order book entries to return
|
|
350
437
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -388,7 +475,9 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
388
475
|
async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
389
476
|
"""
|
|
390
477
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
391
|
-
|
|
478
|
+
|
|
479
|
+
https://lightning.bitflyer.com/docs?lang=en#ticker
|
|
480
|
+
|
|
392
481
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
393
482
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
394
483
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -463,7 +552,9 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
463
552
|
async def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
464
553
|
"""
|
|
465
554
|
get the list of most recent trades for a particular symbol
|
|
466
|
-
|
|
555
|
+
|
|
556
|
+
https://lightning.bitflyer.com/docs?lang=en#list-executions
|
|
557
|
+
|
|
467
558
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
468
559
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
469
560
|
:param int [limit]: the maximum amount of trades to fetch
|
|
@@ -496,7 +587,9 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
496
587
|
async def fetch_trading_fee(self, symbol: str, params={}) -> TradingFeeInterface:
|
|
497
588
|
"""
|
|
498
589
|
fetch the trading fees for a market
|
|
499
|
-
|
|
590
|
+
|
|
591
|
+
https://lightning.bitflyer.com/docs?lang=en#get-trading-commission
|
|
592
|
+
|
|
500
593
|
:param str symbol: unified market symbol
|
|
501
594
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
502
595
|
:returns dict: a `fee structure <https://docs.ccxt.com/#/?id=fee-structure>`
|
|
@@ -525,12 +618,14 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
525
618
|
async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
526
619
|
"""
|
|
527
620
|
create a trade order
|
|
528
|
-
|
|
621
|
+
|
|
622
|
+
https://lightning.bitflyer.com/docs?lang=en#send-a-new-order
|
|
623
|
+
|
|
529
624
|
:param str symbol: unified symbol of the market to create an order in
|
|
530
625
|
:param str type: 'market' or 'limit'
|
|
531
626
|
:param str side: 'buy' or 'sell'
|
|
532
627
|
:param float amount: how much of currency you want to trade in units of base currency
|
|
533
|
-
:param float [price]: the price at which the order is to be
|
|
628
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
534
629
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
535
630
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
536
631
|
"""
|
|
@@ -553,7 +648,9 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
553
648
|
async def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
554
649
|
"""
|
|
555
650
|
cancels an open order
|
|
556
|
-
|
|
651
|
+
|
|
652
|
+
https://lightning.bitflyer.com/docs?lang=en#cancel-order
|
|
653
|
+
|
|
557
654
|
:param str id: order id
|
|
558
655
|
:param str symbol: unified symbol of the market the order was made in
|
|
559
656
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -566,7 +663,13 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
566
663
|
'product_code': self.market_id(symbol),
|
|
567
664
|
'child_order_acceptance_id': id,
|
|
568
665
|
}
|
|
569
|
-
|
|
666
|
+
response = await self.privatePostCancelchildorder(self.extend(request, params))
|
|
667
|
+
#
|
|
668
|
+
# 200 OK.
|
|
669
|
+
#
|
|
670
|
+
return self.safe_order({
|
|
671
|
+
'info': response,
|
|
672
|
+
})
|
|
570
673
|
|
|
571
674
|
def parse_order_status(self, status: Str):
|
|
572
675
|
statuses: dict = {
|
|
@@ -612,7 +715,6 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
612
715
|
'postOnly': None,
|
|
613
716
|
'side': side,
|
|
614
717
|
'price': price,
|
|
615
|
-
'stopPrice': None,
|
|
616
718
|
'triggerPrice': None,
|
|
617
719
|
'cost': None,
|
|
618
720
|
'amount': amount,
|
|
@@ -626,7 +728,9 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
626
728
|
async def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = 100, params={}) -> List[Order]:
|
|
627
729
|
"""
|
|
628
730
|
fetches information on multiple orders made by the user
|
|
629
|
-
|
|
731
|
+
|
|
732
|
+
https://lightning.bitflyer.com/docs?lang=en#list-orders
|
|
733
|
+
|
|
630
734
|
:param str symbol: unified market symbol of the market orders were made in
|
|
631
735
|
:param int [since]: the earliest time in ms to fetch orders for
|
|
632
736
|
:param int [limit]: the maximum number of order structures to retrieve
|
|
@@ -650,7 +754,9 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
650
754
|
async def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = 100, params={}) -> List[Order]:
|
|
651
755
|
"""
|
|
652
756
|
fetch all unfilled currently open orders
|
|
653
|
-
|
|
757
|
+
|
|
758
|
+
https://lightning.bitflyer.com/docs?lang=en#list-orders
|
|
759
|
+
|
|
654
760
|
:param str symbol: unified market symbol
|
|
655
761
|
:param int [since]: the earliest time in ms to fetch open orders for
|
|
656
762
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
|
@@ -665,7 +771,9 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
665
771
|
async def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = 100, params={}) -> List[Order]:
|
|
666
772
|
"""
|
|
667
773
|
fetches information on multiple closed orders made by the user
|
|
668
|
-
|
|
774
|
+
|
|
775
|
+
https://lightning.bitflyer.com/docs?lang=en#list-orders
|
|
776
|
+
|
|
669
777
|
:param str symbol: unified market symbol of the market orders were made in
|
|
670
778
|
:param int [since]: the earliest time in ms to fetch orders for
|
|
671
779
|
:param int [limit]: the maximum number of order structures to retrieve
|
|
@@ -680,7 +788,10 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
680
788
|
async def fetch_order(self, id: str, symbol: Str = None, params={}):
|
|
681
789
|
"""
|
|
682
790
|
fetches information on an order made by the user
|
|
683
|
-
|
|
791
|
+
|
|
792
|
+
https://lightning.bitflyer.com/docs?lang=en#list-orders
|
|
793
|
+
|
|
794
|
+
:param str id: the order id
|
|
684
795
|
:param str symbol: unified symbol of the market the order was made in
|
|
685
796
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
686
797
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -696,7 +807,9 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
696
807
|
async def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
697
808
|
"""
|
|
698
809
|
fetch all trades made by the user
|
|
699
|
-
|
|
810
|
+
|
|
811
|
+
https://lightning.bitflyer.com/docs?lang=en#list-executions
|
|
812
|
+
|
|
700
813
|
:param str symbol: unified market symbol
|
|
701
814
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
702
815
|
:param int [limit]: the maximum number of trades structures to retrieve
|
|
@@ -729,10 +842,12 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
729
842
|
#
|
|
730
843
|
return self.parse_trades(response, market, since, limit)
|
|
731
844
|
|
|
732
|
-
async def fetch_positions(self, symbols: Strings = None, params={}):
|
|
845
|
+
async def fetch_positions(self, symbols: Strings = None, params={}) -> List[Position]:
|
|
733
846
|
"""
|
|
734
847
|
fetch all open positions
|
|
735
|
-
|
|
848
|
+
|
|
849
|
+
https://lightning.bitflyer.com/docs?lang=en#get-open-interest-summary
|
|
850
|
+
|
|
736
851
|
:param str[] symbols: list of unified market symbols
|
|
737
852
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
738
853
|
:returns dict[]: a list of `position structure <https://docs.ccxt.com/#/?id=position-structure>`
|
|
@@ -764,10 +879,12 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
764
879
|
# todo unify parsePosition/parsePositions
|
|
765
880
|
return response
|
|
766
881
|
|
|
767
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
|
|
882
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
|
768
883
|
"""
|
|
769
884
|
make a withdrawal
|
|
770
|
-
|
|
885
|
+
|
|
886
|
+
https://lightning.bitflyer.com/docs?lang=en#withdrawing-funds
|
|
887
|
+
|
|
771
888
|
:param str code: unified currency code
|
|
772
889
|
:param float amount: the amount to withdraw
|
|
773
890
|
:param str address: the address to withdraw to
|
|
@@ -796,7 +913,9 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
796
913
|
async def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
797
914
|
"""
|
|
798
915
|
fetch all deposits made to an account
|
|
799
|
-
|
|
916
|
+
|
|
917
|
+
https://lightning.bitflyer.com/docs?lang=en#get-crypto-assets-deposit-history
|
|
918
|
+
|
|
800
919
|
:param str code: unified currency code
|
|
801
920
|
:param int [since]: the earliest time in ms to fetch deposits for
|
|
802
921
|
:param int [limit]: the maximum number of deposits structures to retrieve
|
|
@@ -830,7 +949,9 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
830
949
|
async def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
831
950
|
"""
|
|
832
951
|
fetch all withdrawals made from an account
|
|
833
|
-
|
|
952
|
+
|
|
953
|
+
https://lightning.bitflyer.com/docs?lang=en#get-crypto-assets-transaction-history
|
|
954
|
+
|
|
834
955
|
:param str code: unified currency code
|
|
835
956
|
:param int [since]: the earliest time in ms to fetch withdrawals for
|
|
836
957
|
:param int [limit]: the maximum number of withdrawals structures to retrieve
|
|
@@ -956,6 +1077,60 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
956
1077
|
'fee': fee,
|
|
957
1078
|
}
|
|
958
1079
|
|
|
1080
|
+
async def fetch_funding_rate(self, symbol: str, params={}) -> FundingRate:
|
|
1081
|
+
"""
|
|
1082
|
+
fetch the current funding rate
|
|
1083
|
+
|
|
1084
|
+
https://lightning.bitflyer.com/docs#funding-rate
|
|
1085
|
+
|
|
1086
|
+
:param str symbol: unified market symbol
|
|
1087
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1088
|
+
:returns dict: a `funding rate structure <https://docs.ccxt.com/#/?id=funding-rate-structure>`
|
|
1089
|
+
"""
|
|
1090
|
+
await self.load_markets()
|
|
1091
|
+
market = self.market(symbol)
|
|
1092
|
+
request: dict = {
|
|
1093
|
+
'product_code': market['id'],
|
|
1094
|
+
}
|
|
1095
|
+
response = await self.publicGetGetfundingrate(self.extend(request, params))
|
|
1096
|
+
#
|
|
1097
|
+
# {
|
|
1098
|
+
# "current_funding_rate": -0.003750000000
|
|
1099
|
+
# "next_funding_rate_settledate": "2024-04-15T13:00:00"
|
|
1100
|
+
# }
|
|
1101
|
+
#
|
|
1102
|
+
return self.parse_funding_rate(response, market)
|
|
1103
|
+
|
|
1104
|
+
def parse_funding_rate(self, contract, market: Market = None) -> FundingRate:
|
|
1105
|
+
#
|
|
1106
|
+
# {
|
|
1107
|
+
# "current_funding_rate": -0.003750000000
|
|
1108
|
+
# "next_funding_rate_settledate": "2024-04-15T13:00:00"
|
|
1109
|
+
# }
|
|
1110
|
+
#
|
|
1111
|
+
nextFundingDatetime = self.safe_string(contract, 'next_funding_rate_settledate')
|
|
1112
|
+
nextFundingTimestamp = self.parse8601(nextFundingDatetime)
|
|
1113
|
+
return {
|
|
1114
|
+
'info': contract,
|
|
1115
|
+
'symbol': self.safe_string(market, 'symbol'),
|
|
1116
|
+
'markPrice': None,
|
|
1117
|
+
'indexPrice': None,
|
|
1118
|
+
'interestRate': None,
|
|
1119
|
+
'estimatedSettlePrice': None,
|
|
1120
|
+
'timestamp': None,
|
|
1121
|
+
'datetime': None,
|
|
1122
|
+
'fundingRate': None,
|
|
1123
|
+
'fundingTimestamp': None,
|
|
1124
|
+
'fundingDatetime': None,
|
|
1125
|
+
'nextFundingRate': self.safe_number(contract, 'current_funding_rate'),
|
|
1126
|
+
'nextFundingTimestamp': nextFundingTimestamp,
|
|
1127
|
+
'nextFundingDatetime': self.iso8601(nextFundingTimestamp),
|
|
1128
|
+
'previousFundingRate': None,
|
|
1129
|
+
'previousFundingTimestamp': None,
|
|
1130
|
+
'previousFundingDatetime': None,
|
|
1131
|
+
'interval': None,
|
|
1132
|
+
}
|
|
1133
|
+
|
|
959
1134
|
def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
|
|
960
1135
|
request = '/' + self.version + '/'
|
|
961
1136
|
if api == 'private':
|
|
@@ -988,8 +1163,8 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
|
988
1163
|
feedback = self.id + ' ' + body
|
|
989
1164
|
# i.e. {"status":-2,"error_message":"Under maintenance","data":null}
|
|
990
1165
|
errorMessage = self.safe_string(response, 'error_message')
|
|
991
|
-
statusCode = self.
|
|
1166
|
+
statusCode = self.safe_integer(response, 'status')
|
|
992
1167
|
if errorMessage is not None:
|
|
993
1168
|
self.throw_exactly_matched_exception(self.exceptions['exact'], statusCode, feedback)
|
|
994
|
-
|
|
1169
|
+
raise ExchangeError(feedback)
|
|
995
1170
|
return None
|