ccxt-ir 4.3.46.0.3__py2.py3-none-any.whl → 4.5.1__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ccxt/__init__.py +39 -35
- ccxt/abantether.py +8 -8
- ccxt/abstract/alpaca.py +4 -0
- ccxt/abstract/apex.py +31 -0
- ccxt/abstract/bigone.py +1 -1
- ccxt/abstract/binance.py +106 -48
- ccxt/abstract/binancecoinm.py +106 -48
- ccxt/abstract/binanceus.py +141 -83
- ccxt/abstract/binanceusdm.py +106 -48
- ccxt/abstract/bingx.py +50 -1
- ccxt/abstract/bitbank.py +5 -0
- ccxt/abstract/bitfinex.py +136 -65
- ccxt/abstract/bitflyer.py +1 -0
- ccxt/abstract/bitget.py +67 -0
- ccxt/abstract/bitmart.py +19 -1
- ccxt/abstract/bitopro.py +1 -0
- ccxt/abstract/bitrue.py +68 -68
- ccxt/abstract/bitstamp.py +1 -0
- ccxt/abstract/blofin.py +30 -0
- ccxt/abstract/btcbox.py +2 -0
- ccxt/abstract/bybit.py +28 -13
- ccxt/abstract/cex.py +28 -29
- ccxt/abstract/coinbaseexchange.py +1 -0
- ccxt/abstract/coinbaseinternational.py +1 -1
- ccxt/abstract/cryptocom.py +16 -0
- ccxt/abstract/cryptomus.py +20 -0
- ccxt/abstract/defx.py +69 -0
- ccxt/abstract/deribit.py +1 -0
- ccxt/abstract/derive.py +117 -0
- ccxt/abstract/digifinex.py +1 -0
- ccxt/abstract/ellipx.py +25 -0
- ccxt/abstract/foxbit.py +26 -0
- ccxt/abstract/gate.py +19 -0
- ccxt/abstract/gateio.py +19 -0
- ccxt/abstract/gemini.py +1 -0
- ccxt/abstract/hibachi.py +26 -0
- ccxt/abstract/hyperliquid.py +1 -1
- ccxt/abstract/independentreserve.py +6 -0
- ccxt/abstract/kraken.py +1 -0
- ccxt/abstract/krakenfutures.py +4 -0
- ccxt/abstract/kucoin.py +10 -0
- ccxt/abstract/kucoinfutures.py +18 -0
- ccxt/abstract/lbank.py +2 -1
- ccxt/abstract/luno.py +1 -0
- ccxt/abstract/mexc.py +2 -0
- ccxt/abstract/modetrade.py +119 -0
- ccxt/abstract/myokx.py +349 -0
- ccxt/abstract/oceanex.py +5 -0
- ccxt/abstract/okx.py +25 -0
- ccxt/abstract/okxus.py +349 -0
- ccxt/abstract/onetrading.py +0 -12
- ccxt/abstract/paradex.py +23 -0
- ccxt/abstract/phemex.py +2 -0
- ccxt/abstract/poloniex.py +36 -0
- ccxt/abstract/tradeogre.py +3 -1
- ccxt/abstract/upbit.py +51 -34
- ccxt/abstract/whitebit.py +16 -0
- ccxt/abstract/woo.py +64 -6
- ccxt/abstract/xt.py +10 -5
- ccxt/afratether.py +8 -8
- ccxt/alpaca.py +828 -51
- ccxt/apex.py +1875 -0
- ccxt/arzinja.py +7 -7
- ccxt/arzplus.py +9 -9
- ccxt/ascendex.py +501 -306
- ccxt/async_support/__init__.py +39 -35
- ccxt/async_support/abantether.py +8 -8
- ccxt/async_support/afratether.py +10 -10
- ccxt/async_support/alpaca.py +828 -51
- ccxt/async_support/apex.py +1875 -0
- ccxt/async_support/arzinja.py +10 -10
- ccxt/async_support/arzplus.py +12 -12
- ccxt/async_support/ascendex.py +502 -306
- ccxt/async_support/base/exchange.py +303 -89
- ccxt/async_support/base/ws/cache.py +9 -3
- ccxt/async_support/base/ws/client.py +173 -38
- ccxt/async_support/base/ws/future.py +25 -37
- ccxt/async_support/bequant.py +5 -3
- ccxt/async_support/bigone.py +279 -144
- ccxt/async_support/binance.py +2347 -1158
- ccxt/async_support/binancecoinm.py +9 -3
- ccxt/async_support/binanceus.py +17 -3
- ccxt/async_support/binanceusdm.py +9 -4
- ccxt/async_support/bingx.py +2962 -920
- ccxt/async_support/bit2c.py +147 -27
- ccxt/async_support/bitbank.py +151 -23
- ccxt/async_support/bitbns.py +104 -30
- ccxt/async_support/bitfinex.py +3291 -1113
- ccxt/async_support/bitflyer.py +202 -27
- ccxt/async_support/bitget.py +3683 -1538
- ccxt/async_support/bithumb.py +195 -38
- ccxt/async_support/bitimen.py +12 -12
- ccxt/async_support/bitir.py +38 -38
- ccxt/async_support/bitmart.py +1288 -350
- ccxt/async_support/bitmex.py +260 -75
- ccxt/async_support/bitopro.py +262 -62
- ccxt/async_support/bitpin.py +17 -16
- ccxt/async_support/bitrue.py +459 -290
- ccxt/async_support/bitso.py +199 -54
- ccxt/async_support/bitstamp.py +230 -96
- ccxt/async_support/bitteam.py +167 -25
- ccxt/async_support/{huobijp.py → bittrade.py} +158 -30
- ccxt/async_support/bitvavo.py +213 -49
- ccxt/async_support/blockchaincom.py +160 -46
- ccxt/async_support/blofin.py +502 -120
- ccxt/async_support/btcalpha.py +169 -31
- ccxt/async_support/btcbox.py +292 -23
- ccxt/async_support/btcmarkets.py +211 -58
- ccxt/async_support/btcturk.py +161 -38
- ccxt/async_support/bybit.py +1775 -1030
- ccxt/async_support/cex.py +1440 -1303
- ccxt/async_support/coinbase.py +724 -212
- ccxt/async_support/coinbaseadvanced.py +2 -1
- ccxt/async_support/coinbaseexchange.py +388 -89
- ccxt/async_support/coinbaseinternational.py +412 -57
- ccxt/async_support/coincatch.py +177 -78
- ccxt/async_support/coincheck.py +135 -19
- ccxt/async_support/coinex.py +606 -232
- ccxt/async_support/coinmate.py +189 -63
- ccxt/async_support/coinmetro.py +195 -54
- ccxt/async_support/coinone.py +158 -51
- ccxt/async_support/coinsph.py +336 -61
- ccxt/async_support/coinspot.py +151 -52
- ccxt/async_support/cryptocom.py +661 -111
- ccxt/async_support/cryptomus.py +1137 -0
- ccxt/async_support/defx.py +2071 -0
- ccxt/async_support/delta.py +299 -99
- ccxt/async_support/deribit.py +348 -126
- ccxt/async_support/derive.py +2572 -0
- ccxt/async_support/digifinex.py +430 -214
- ccxt/async_support/ellipx.py +2029 -0
- ccxt/async_support/eterex.py +10 -10
- ccxt/async_support/excoino.py +31 -31
- ccxt/async_support/exir.py +14 -14
- ccxt/async_support/exmo.py +344 -131
- ccxt/async_support/exnovin.py +10 -10
- ccxt/async_support/farhadexchange.py +12 -12
- ccxt/async_support/fmfwio.py +2 -1
- ccxt/async_support/foxbit.py +1935 -0
- ccxt/async_support/gate.py +1351 -529
- ccxt/async_support/gateio.py +2 -1
- ccxt/async_support/gemini.py +144 -39
- ccxt/async_support/hashkey.py +152 -109
- ccxt/async_support/hibachi.py +2080 -0
- ccxt/async_support/hitbtc.py +395 -167
- ccxt/async_support/hitobit.py +12 -12
- ccxt/async_support/hollaex.py +307 -119
- ccxt/async_support/htx.py +851 -383
- ccxt/async_support/huobi.py +2 -1
- ccxt/async_support/hyperliquid.py +1848 -536
- ccxt/async_support/independentreserve.py +288 -15
- ccxt/async_support/indodax.py +190 -33
- ccxt/async_support/jibitex.py +12 -12
- ccxt/async_support/kraken.py +795 -351
- ccxt/async_support/krakenfutures.py +214 -62
- ccxt/async_support/kucoin.py +715 -396
- ccxt/async_support/kucoinfutures.py +652 -89
- ccxt/async_support/latoken.py +217 -113
- ccxt/async_support/lbank.py +425 -97
- ccxt/async_support/luno.py +382 -35
- ccxt/async_support/mercado.py +113 -6
- ccxt/async_support/mexc.py +874 -437
- ccxt/async_support/modetrade.py +2818 -0
- ccxt/async_support/myokx.py +54 -0
- ccxt/async_support/ndax.py +221 -64
- ccxt/async_support/nobitex.py +32 -38
- ccxt/async_support/novadax.py +190 -34
- ccxt/async_support/oceanex.py +217 -28
- ccxt/async_support/okcoin.py +253 -145
- ccxt/async_support/okexchange.py +11 -11
- ccxt/async_support/okx.py +1088 -351
- ccxt/async_support/okxus.py +54 -0
- ccxt/async_support/ompfinex.py +32 -27
- ccxt/async_support/onetrading.py +213 -392
- ccxt/async_support/oxfun.py +245 -166
- ccxt/async_support/p2b.py +151 -29
- ccxt/async_support/paradex.py +562 -49
- ccxt/async_support/paymium.py +82 -19
- ccxt/async_support/phemex.py +713 -172
- ccxt/async_support/poloniex.py +1602 -283
- ccxt/async_support/probit.py +224 -95
- ccxt/async_support/ramzinex.py +34 -30
- ccxt/async_support/sarmayex.py +9 -9
- ccxt/async_support/sarrafex.py +13 -13
- ccxt/async_support/tabdeal.py +15 -14
- ccxt/async_support/tetherland.py +9 -9
- ccxt/async_support/timex.py +210 -51
- ccxt/async_support/tokocrypto.py +167 -47
- ccxt/async_support/tradeogre.py +266 -31
- ccxt/async_support/twox.py +9 -9
- ccxt/async_support/ubitex.py +12 -12
- ccxt/async_support/upbit.py +568 -165
- ccxt/async_support/vertex.py +160 -32
- ccxt/async_support/wallex.py +12 -12
- ccxt/async_support/wavesexchange.py +165 -30
- ccxt/async_support/whitebit.py +975 -127
- ccxt/async_support/woo.py +1918 -1016
- ccxt/async_support/woofipro.py +433 -141
- ccxt/async_support/xt.py +649 -193
- ccxt/async_support/yobit.py +195 -70
- ccxt/async_support/zaif.py +91 -15
- ccxt/async_support/zonda.py +151 -36
- ccxt/base/decimal_to_precision.py +14 -10
- ccxt/base/errors.py +49 -18
- ccxt/base/exchange.py +1556 -450
- ccxt/base/precise.py +10 -0
- ccxt/base/types.py +114 -6
- ccxt/bequant.py +5 -3
- ccxt/bigone.py +279 -144
- ccxt/binance.py +2347 -1158
- ccxt/binancecoinm.py +9 -3
- ccxt/binanceus.py +17 -3
- ccxt/binanceusdm.py +9 -4
- ccxt/bingx.py +2962 -920
- ccxt/bit2c.py +147 -27
- ccxt/bitbank.py +151 -23
- ccxt/bitbns.py +104 -30
- ccxt/bitfinex.py +3290 -1113
- ccxt/bitflyer.py +202 -27
- ccxt/bitget.py +3683 -1538
- ccxt/bithumb.py +194 -38
- ccxt/bitimen.py +9 -9
- ccxt/bitir.py +35 -35
- ccxt/bitmart.py +1288 -350
- ccxt/bitmex.py +260 -75
- ccxt/bitopro.py +262 -62
- ccxt/bitpin.py +15 -14
- ccxt/bitrue.py +459 -290
- ccxt/bitso.py +199 -54
- ccxt/bitstamp.py +230 -96
- ccxt/bitteam.py +167 -25
- ccxt/{huobijp.py → bittrade.py} +158 -30
- ccxt/bitvavo.py +213 -49
- ccxt/blockchaincom.py +160 -46
- ccxt/blofin.py +502 -120
- ccxt/btcalpha.py +169 -31
- ccxt/btcbox.py +291 -23
- ccxt/btcmarkets.py +211 -58
- ccxt/btcturk.py +161 -38
- ccxt/bybit.py +1775 -1030
- ccxt/cex.py +1439 -1303
- ccxt/coinbase.py +724 -212
- ccxt/coinbaseadvanced.py +2 -1
- ccxt/coinbaseexchange.py +388 -89
- ccxt/coinbaseinternational.py +412 -57
- ccxt/coincatch.py +177 -78
- ccxt/coincheck.py +135 -19
- ccxt/coinex.py +606 -232
- ccxt/coinmate.py +189 -63
- ccxt/coinmetro.py +194 -54
- ccxt/coinone.py +158 -51
- ccxt/coinsph.py +336 -61
- ccxt/coinspot.py +151 -52
- ccxt/cryptocom.py +661 -111
- ccxt/cryptomus.py +1137 -0
- ccxt/defx.py +2070 -0
- ccxt/delta.py +299 -99
- ccxt/deribit.py +348 -126
- ccxt/derive.py +2571 -0
- ccxt/digifinex.py +430 -214
- ccxt/ellipx.py +2029 -0
- ccxt/eterex.py +7 -7
- ccxt/excoino.py +29 -29
- ccxt/exir.py +11 -11
- ccxt/exmo.py +343 -131
- ccxt/exnovin.py +8 -8
- ccxt/farhadexchange.py +10 -10
- ccxt/fmfwio.py +2 -1
- ccxt/foxbit.py +1935 -0
- ccxt/gate.py +1351 -529
- ccxt/gateio.py +2 -1
- ccxt/gemini.py +144 -39
- ccxt/hashkey.py +152 -109
- ccxt/hibachi.py +2079 -0
- ccxt/hitbtc.py +395 -167
- ccxt/hitobit.py +9 -9
- ccxt/hollaex.py +307 -119
- ccxt/htx.py +851 -383
- ccxt/huobi.py +2 -1
- ccxt/hyperliquid.py +1848 -536
- ccxt/independentreserve.py +287 -15
- ccxt/indodax.py +190 -33
- ccxt/jibitex.py +9 -9
- ccxt/kraken.py +794 -351
- ccxt/krakenfutures.py +214 -62
- ccxt/kucoin.py +715 -396
- ccxt/kucoinfutures.py +652 -89
- ccxt/latoken.py +217 -113
- ccxt/lbank.py +425 -97
- ccxt/luno.py +382 -35
- ccxt/mercado.py +113 -6
- ccxt/mexc.py +873 -437
- ccxt/modetrade.py +2818 -0
- ccxt/myokx.py +54 -0
- ccxt/ndax.py +221 -64
- ccxt/nobitex.py +30 -36
- ccxt/novadax.py +190 -34
- ccxt/oceanex.py +217 -28
- ccxt/okcoin.py +253 -145
- ccxt/okexchange.py +9 -9
- ccxt/okx.py +1088 -351
- ccxt/okxus.py +54 -0
- ccxt/ompfinex.py +29 -24
- ccxt/onetrading.py +213 -392
- ccxt/oxfun.py +245 -166
- ccxt/p2b.py +151 -29
- ccxt/paradex.py +562 -49
- ccxt/paymium.py +82 -19
- ccxt/phemex.py +712 -172
- ccxt/poloniex.py +1601 -283
- ccxt/pro/__init__.py +76 -17
- ccxt/pro/alpaca.py +21 -6
- ccxt/pro/apex.py +984 -0
- ccxt/pro/ascendex.py +58 -10
- ccxt/pro/bequant.py +6 -1
- ccxt/pro/binance.py +728 -156
- ccxt/pro/binancecoinm.py +6 -2
- ccxt/pro/binanceus.py +8 -4
- ccxt/pro/binanceusdm.py +7 -2
- ccxt/pro/bingx.py +333 -142
- ccxt/pro/bitfinex.py +727 -262
- ccxt/pro/bitget.py +570 -79
- ccxt/pro/bithumb.py +20 -6
- ccxt/pro/bitmart.py +216 -87
- ccxt/pro/bitmex.py +47 -9
- ccxt/pro/bitopro.py +26 -14
- ccxt/pro/bitrue.py +22 -22
- ccxt/pro/bitstamp.py +54 -21
- ccxt/pro/{huobijp.py → bittrade.py} +7 -6
- ccxt/pro/bitvavo.py +191 -67
- ccxt/pro/blockchaincom.py +21 -8
- ccxt/pro/blofin.py +9 -1
- ccxt/pro/bybit.py +632 -245
- ccxt/pro/cex.py +59 -24
- ccxt/pro/coinbase.py +102 -73
- ccxt/pro/coinbaseadvanced.py +2 -1
- ccxt/pro/coinbaseexchange.py +8 -8
- ccxt/pro/coinbaseinternational.py +181 -25
- ccxt/pro/coincatch.py +6 -7
- ccxt/pro/coincheck.py +11 -6
- ccxt/pro/coinex.py +967 -665
- ccxt/pro/coinone.py +16 -9
- ccxt/pro/cryptocom.py +448 -45
- ccxt/pro/defx.py +831 -0
- ccxt/pro/deribit.py +150 -14
- ccxt/pro/derive.py +704 -0
- ccxt/pro/exmo.py +239 -6
- ccxt/pro/gate.py +623 -65
- ccxt/pro/gateio.py +2 -1
- ccxt/pro/gemini.py +27 -11
- ccxt/pro/hashkey.py +2 -2
- ccxt/pro/hitbtc.py +196 -91
- ccxt/pro/hollaex.py +23 -7
- ccxt/pro/htx.py +51 -14
- ccxt/pro/huobi.py +2 -1
- ccxt/pro/hyperliquid.py +591 -27
- ccxt/pro/independentreserve.py +9 -6
- ccxt/pro/kraken.py +640 -320
- ccxt/pro/krakenfutures.py +62 -35
- ccxt/pro/kucoin.py +267 -46
- ccxt/pro/kucoinfutures.py +165 -21
- ccxt/pro/lbank.py +102 -21
- ccxt/pro/luno.py +12 -8
- ccxt/pro/mexc.py +877 -111
- ccxt/pro/modetrade.py +1271 -0
- ccxt/pro/myokx.py +38 -0
- ccxt/pro/ndax.py +15 -2
- ccxt/pro/okcoin.py +23 -4
- ccxt/pro/okx.py +573 -98
- ccxt/pro/okxus.py +38 -0
- ccxt/pro/onetrading.py +30 -13
- ccxt/pro/oxfun.py +131 -27
- ccxt/pro/p2b.py +88 -22
- ccxt/pro/paradex.py +3 -3
- ccxt/pro/phemex.py +75 -21
- ccxt/pro/poloniex.py +124 -41
- ccxt/pro/probit.py +87 -80
- ccxt/pro/tradeogre.py +272 -0
- ccxt/pro/upbit.py +152 -12
- ccxt/pro/vertex.py +8 -3
- ccxt/pro/whitebit.py +58 -5
- ccxt/pro/woo.py +228 -37
- ccxt/pro/woofipro.py +106 -18
- ccxt/pro/xt.py +111 -5
- ccxt/probit.py +224 -95
- ccxt/protobuf/__init__.py +0 -0
- ccxt/protobuf/mexc/PrivateAccountV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PrivateDealsV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PrivateOrdersV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicAggreBookTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicAggreDealsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicAggreDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicBookTickerBatchV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicBookTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicDealsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicIncreaseDepthsBatchV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicIncreaseDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicLimitDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicMiniTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicMiniTickersV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicSpotKlineV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PushDataV3ApiWrapper_pb2.py +52 -0
- ccxt/protobuf/mexc/__init__.py +0 -0
- ccxt/ramzinex.py +32 -28
- ccxt/sarmayex.py +7 -7
- ccxt/sarrafex.py +10 -10
- ccxt/static_dependencies/__init__.py +1 -1
- ccxt/static_dependencies/lark/py.typed +0 -0
- ccxt/static_dependencies/marshmallow/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
- ccxt/tabdeal.py +13 -12
- ccxt/test/tests_async.py +261 -57
- ccxt/test/tests_helpers.py +1 -3
- ccxt/test/tests_init.py +4 -3
- ccxt/test/tests_sync.py +261 -57
- ccxt/tetherland.py +7 -7
- ccxt/timex.py +210 -51
- ccxt/tokocrypto.py +167 -47
- ccxt/tradeogre.py +266 -31
- ccxt/twox.py +7 -7
- ccxt/ubitex.py +9 -9
- ccxt/upbit.py +568 -165
- ccxt/vertex.py +160 -32
- ccxt/wallex.py +9 -9
- ccxt/wavesexchange.py +165 -30
- ccxt/whitebit.py +975 -127
- ccxt/woo.py +1917 -1016
- ccxt/woofipro.py +432 -141
- ccxt/xt.py +649 -193
- ccxt/yobit.py +194 -70
- ccxt/zaif.py +91 -15
- ccxt/zonda.py +151 -36
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.1.dist-info}/METADATA +225 -73
- ccxt_ir-4.5.1.dist-info/RECORD +743 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.1.dist-info}/WHEEL +1 -1
- ccxt/__test__.py +0 -7
- ccxt/abstract/ace.py +0 -15
- ccxt/abstract/bitbay.py +0 -53
- ccxt/abstract/bitcoincom.py +0 -115
- ccxt/abstract/bitfinex2.py +0 -139
- ccxt/abstract/bitpanda.py +0 -35
- ccxt/abstract/bl3p.py +0 -19
- ccxt/abstract/coinlist.py +0 -54
- ccxt/abstract/currencycom.py +0 -68
- ccxt/abstract/hitbtc3.py +0 -115
- ccxt/abstract/idex.py +0 -26
- ccxt/abstract/kuna.py +0 -182
- ccxt/abstract/lykke.py +0 -29
- ccxt/abstract/poloniexfutures.py +0 -48
- ccxt/abstract/wazirx.py +0 -30
- ccxt/ace.py +0 -1012
- ccxt/async_support/ace.py +0 -1012
- ccxt/async_support/base/ws/aiohttp_client.py +0 -125
- ccxt/async_support/base/ws/fast_client.py +0 -96
- ccxt/async_support/bitbay.py +0 -17
- ccxt/async_support/bitcoincom.py +0 -17
- ccxt/async_support/bitfinex2.py +0 -3552
- ccxt/async_support/bitpanda.py +0 -16
- ccxt/async_support/bl3p.py +0 -485
- ccxt/async_support/coinlist.py +0 -2243
- ccxt/async_support/currencycom.py +0 -1950
- ccxt/async_support/hitbtc3.py +0 -16
- ccxt/async_support/idex.py +0 -1766
- ccxt/async_support/kuna.py +0 -1841
- ccxt/async_support/lykke.py +0 -1270
- ccxt/async_support/poloniexfutures.py +0 -1717
- ccxt/async_support/wazirx.py +0 -1224
- ccxt/bitbay.py +0 -17
- ccxt/bitcoincom.py +0 -17
- ccxt/bitfinex2.py +0 -3552
- ccxt/bitpanda.py +0 -16
- ccxt/bl3p.py +0 -485
- ccxt/coinlist.py +0 -2243
- ccxt/currencycom.py +0 -1950
- ccxt/hitbtc3.py +0 -16
- ccxt/idex.py +0 -1766
- ccxt/kuna.py +0 -1841
- ccxt/lykke.py +0 -1270
- ccxt/poloniexfutures.py +0 -1717
- ccxt/pro/bitcoincom.py +0 -34
- ccxt/pro/bitfinex2.py +0 -1083
- ccxt/pro/bitpanda.py +0 -15
- ccxt/pro/currencycom.py +0 -536
- ccxt/pro/idex.py +0 -672
- ccxt/pro/poloniexfutures.py +0 -990
- ccxt/pro/wazirx.py +0 -749
- ccxt/test/base/__init__.py +0 -29
- ccxt/test/base/test_account.py +0 -26
- ccxt/test/base/test_balance.py +0 -56
- ccxt/test/base/test_borrow_interest.py +0 -35
- ccxt/test/base/test_borrow_rate.py +0 -32
- ccxt/test/base/test_calculate_fee.py +0 -51
- ccxt/test/base/test_crypto.py +0 -127
- ccxt/test/base/test_currency.py +0 -76
- ccxt/test/base/test_datetime.py +0 -109
- ccxt/test/base/test_decimal_to_precision.py +0 -392
- ccxt/test/base/test_deep_extend.py +0 -68
- ccxt/test/base/test_deposit_withdrawal.py +0 -50
- ccxt/test/base/test_exchange_datetime_functions.py +0 -76
- ccxt/test/base/test_funding_rate_history.py +0 -29
- ccxt/test/base/test_last_price.py +0 -31
- ccxt/test/base/test_ledger_entry.py +0 -45
- ccxt/test/base/test_ledger_item.py +0 -48
- ccxt/test/base/test_leverage_tier.py +0 -33
- ccxt/test/base/test_liquidation.py +0 -50
- ccxt/test/base/test_margin_mode.py +0 -24
- ccxt/test/base/test_margin_modification.py +0 -35
- ccxt/test/base/test_market.py +0 -193
- ccxt/test/base/test_number.py +0 -411
- ccxt/test/base/test_ohlcv.py +0 -33
- ccxt/test/base/test_open_interest.py +0 -32
- ccxt/test/base/test_order.py +0 -64
- ccxt/test/base/test_order_book.py +0 -69
- ccxt/test/base/test_position.py +0 -60
- ccxt/test/base/test_shared_methods.py +0 -353
- ccxt/test/base/test_status.py +0 -24
- ccxt/test/base/test_throttle.py +0 -126
- ccxt/test/base/test_ticker.py +0 -92
- ccxt/test/base/test_trade.py +0 -47
- ccxt/test/base/test_trading_fee.py +0 -26
- ccxt/test/base/test_transaction.py +0 -39
- ccxt/test/test_async.py +0 -1649
- ccxt/test/test_sync.py +0 -1648
- ccxt/wazirx.py +0 -1224
- ccxt_ir-4.3.46.0.3.dist-info/RECORD +0 -773
- /ccxt/abstract/{huobijp.py → bittrade.py} +0 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.1.dist-info/licenses}/LICENSE.txt +0 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.1.dist-info}/top_level.txt +0 -0
ccxt/async_support/bitvavo.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.bitvavo import ImplicitAPI
|
|
8
8
|
import hashlib
|
|
9
|
-
from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
|
|
9
|
+
from ccxt.base.types import Any, Balances, Currencies, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
|
|
10
10
|
from typing import List
|
|
11
11
|
from ccxt.base.errors import ExchangeError
|
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
|
@@ -31,7 +31,7 @@ from ccxt.base.precise import Precise
|
|
|
31
31
|
|
|
32
32
|
class bitvavo(Exchange, ImplicitAPI):
|
|
33
33
|
|
|
34
|
-
def describe(self):
|
|
34
|
+
def describe(self) -> Any:
|
|
35
35
|
return self.deep_extend(super(bitvavo, self).describe(), {
|
|
36
36
|
'id': 'bitvavo',
|
|
37
37
|
'name': 'Bitvavo',
|
|
@@ -48,42 +48,72 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
48
48
|
'future': False,
|
|
49
49
|
'option': False,
|
|
50
50
|
'addMargin': False,
|
|
51
|
+
'borrowCrossMargin': False,
|
|
52
|
+
'borrowIsolatedMargin': False,
|
|
53
|
+
'borrowMargin': False,
|
|
51
54
|
'cancelAllOrders': True,
|
|
52
55
|
'cancelOrder': True,
|
|
53
56
|
'closeAllPositions': False,
|
|
54
57
|
'closePosition': False,
|
|
55
58
|
'createOrder': True,
|
|
59
|
+
'createOrderWithTakeProfitAndStopLoss': False,
|
|
60
|
+
'createOrderWithTakeProfitAndStopLossWs': False,
|
|
61
|
+
'createPostOnlyOrder': False,
|
|
56
62
|
'createReduceOnlyOrder': False,
|
|
57
63
|
'createStopLimitOrder': True,
|
|
58
64
|
'createStopMarketOrder': True,
|
|
59
65
|
'createStopOrder': True,
|
|
60
66
|
'editOrder': True,
|
|
61
67
|
'fetchBalance': True,
|
|
68
|
+
'fetchBorrowInterest': False,
|
|
69
|
+
'fetchBorrowRate': False,
|
|
62
70
|
'fetchBorrowRateHistories': False,
|
|
63
71
|
'fetchBorrowRateHistory': False,
|
|
72
|
+
'fetchBorrowRates': False,
|
|
73
|
+
'fetchBorrowRatesPerSymbol': False,
|
|
64
74
|
'fetchCrossBorrowRate': False,
|
|
65
75
|
'fetchCrossBorrowRates': False,
|
|
66
76
|
'fetchCurrencies': True,
|
|
67
77
|
'fetchDepositAddress': True,
|
|
78
|
+
'fetchDepositAddresses': False,
|
|
79
|
+
'fetchDepositAddressesByNetwork': False,
|
|
68
80
|
'fetchDeposits': True,
|
|
69
81
|
'fetchDepositWithdrawFee': 'emulated',
|
|
70
82
|
'fetchDepositWithdrawFees': True,
|
|
71
83
|
'fetchFundingHistory': False,
|
|
84
|
+
'fetchFundingInterval': False,
|
|
85
|
+
'fetchFundingIntervals': False,
|
|
72
86
|
'fetchFundingRate': False,
|
|
73
87
|
'fetchFundingRateHistory': False,
|
|
74
88
|
'fetchFundingRates': False,
|
|
89
|
+
'fetchGreeks': False,
|
|
75
90
|
'fetchIndexOHLCV': False,
|
|
76
91
|
'fetchIsolatedBorrowRate': False,
|
|
77
92
|
'fetchIsolatedBorrowRates': False,
|
|
93
|
+
'fetchIsolatedPositions': False,
|
|
78
94
|
'fetchLeverage': False,
|
|
95
|
+
'fetchLeverages': False,
|
|
79
96
|
'fetchLeverageTiers': False,
|
|
97
|
+
'fetchLiquidations': False,
|
|
98
|
+
'fetchLongShortRatio': False,
|
|
99
|
+
'fetchLongShortRatioHistory': False,
|
|
100
|
+
'fetchMarginAdjustmentHistory': False,
|
|
80
101
|
'fetchMarginMode': False,
|
|
102
|
+
'fetchMarginModes': False,
|
|
103
|
+
'fetchMarketLeverageTiers': False,
|
|
81
104
|
'fetchMarkets': True,
|
|
82
105
|
'fetchMarkOHLCV': False,
|
|
106
|
+
'fetchMarkPrices': False,
|
|
107
|
+
'fetchMyLiquidations': False,
|
|
108
|
+
'fetchMySettlementHistory': False,
|
|
83
109
|
'fetchMyTrades': True,
|
|
84
110
|
'fetchOHLCV': True,
|
|
111
|
+
'fetchOpenInterest': False,
|
|
85
112
|
'fetchOpenInterestHistory': False,
|
|
113
|
+
'fetchOpenInterests': False,
|
|
86
114
|
'fetchOpenOrders': True,
|
|
115
|
+
'fetchOption': False,
|
|
116
|
+
'fetchOptionChain': False,
|
|
87
117
|
'fetchOrder': True,
|
|
88
118
|
'fetchOrderBook': True,
|
|
89
119
|
'fetchOrders': True,
|
|
@@ -95,6 +125,7 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
95
125
|
'fetchPositionsHistory': False,
|
|
96
126
|
'fetchPositionsRisk': False,
|
|
97
127
|
'fetchPremiumIndexOHLCV': False,
|
|
128
|
+
'fetchSettlementHistory': False,
|
|
98
129
|
'fetchTicker': True,
|
|
99
130
|
'fetchTickers': True,
|
|
100
131
|
'fetchTime': True,
|
|
@@ -103,9 +134,14 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
103
134
|
'fetchTradingFees': True,
|
|
104
135
|
'fetchTransfer': False,
|
|
105
136
|
'fetchTransfers': False,
|
|
137
|
+
'fetchVolatilityHistory': False,
|
|
106
138
|
'fetchWithdrawals': True,
|
|
107
139
|
'reduceMargin': False,
|
|
140
|
+
'repayCrossMargin': False,
|
|
141
|
+
'repayIsolatedMargin': False,
|
|
142
|
+
'repayMargin': False,
|
|
108
143
|
'setLeverage': False,
|
|
144
|
+
'setMargin': False,
|
|
109
145
|
'setMarginMode': False,
|
|
110
146
|
'setPositionMode': False,
|
|
111
147
|
'transfer': False,
|
|
@@ -125,7 +161,7 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
125
161
|
'1d': '1d',
|
|
126
162
|
},
|
|
127
163
|
'urls': {
|
|
128
|
-
'logo': 'https://
|
|
164
|
+
'logo': 'https://github.com/user-attachments/assets/d213155c-8c71-4701-9bd5-45351febc2a8',
|
|
129
165
|
'api': {
|
|
130
166
|
'public': 'https://api.bitvavo.com',
|
|
131
167
|
'private': 'https://api.bitvavo.com',
|
|
@@ -210,6 +246,75 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
210
246
|
'apiKey': True,
|
|
211
247
|
'secret': True,
|
|
212
248
|
},
|
|
249
|
+
'features': {
|
|
250
|
+
'spot': {
|
|
251
|
+
'sandbox': False,
|
|
252
|
+
'createOrder': {
|
|
253
|
+
'marginMode': False,
|
|
254
|
+
'triggerPrice': True,
|
|
255
|
+
'triggerPriceType': None,
|
|
256
|
+
'triggerDirection': None,
|
|
257
|
+
'stopLossPrice': True,
|
|
258
|
+
'takeProfitPrice': True,
|
|
259
|
+
'attachedStopLossTakeProfit': None,
|
|
260
|
+
'timeInForce': {
|
|
261
|
+
'IOC': True,
|
|
262
|
+
'FOK': True,
|
|
263
|
+
'PO': True,
|
|
264
|
+
'GTD': False,
|
|
265
|
+
},
|
|
266
|
+
'hedged': False,
|
|
267
|
+
'trailing': False,
|
|
268
|
+
'leverage': False,
|
|
269
|
+
'marketBuyRequiresPrice': False,
|
|
270
|
+
'marketBuyByCost': True,
|
|
271
|
+
'selfTradePrevention': True, # todo implement
|
|
272
|
+
'iceberg': False,
|
|
273
|
+
},
|
|
274
|
+
'createOrders': None,
|
|
275
|
+
'fetchMyTrades': {
|
|
276
|
+
'marginMode': False,
|
|
277
|
+
'limit': 1000,
|
|
278
|
+
'daysBack': 100000,
|
|
279
|
+
'untilDays': 100000,
|
|
280
|
+
'symbolRequired': True,
|
|
281
|
+
},
|
|
282
|
+
'fetchOrder': {
|
|
283
|
+
'marginMode': False,
|
|
284
|
+
'trigger': False,
|
|
285
|
+
'trailing': False,
|
|
286
|
+
'symbolRequired': True,
|
|
287
|
+
},
|
|
288
|
+
'fetchOpenOrders': {
|
|
289
|
+
'marginMode': False,
|
|
290
|
+
'limit': None,
|
|
291
|
+
'trigger': False,
|
|
292
|
+
'trailing': False,
|
|
293
|
+
'symbolRequired': True,
|
|
294
|
+
},
|
|
295
|
+
'fetchOrders': {
|
|
296
|
+
'marginMode': True,
|
|
297
|
+
'limit': 1000,
|
|
298
|
+
'daysBack': 100000,
|
|
299
|
+
'untilDays': 100000,
|
|
300
|
+
'trigger': False,
|
|
301
|
+
'trailing': False,
|
|
302
|
+
'symbolRequired': True,
|
|
303
|
+
},
|
|
304
|
+
'fetchClosedOrders': None,
|
|
305
|
+
'fetchOHLCV': {
|
|
306
|
+
'limit': 1440,
|
|
307
|
+
},
|
|
308
|
+
},
|
|
309
|
+
'swap': {
|
|
310
|
+
'linear': None,
|
|
311
|
+
'inverse': None,
|
|
312
|
+
},
|
|
313
|
+
'future': {
|
|
314
|
+
'linear': None,
|
|
315
|
+
'inverse': None,
|
|
316
|
+
},
|
|
317
|
+
},
|
|
213
318
|
'exceptions': {
|
|
214
319
|
'exact': {
|
|
215
320
|
'101': ExchangeError, # Unknown error. Operation may or may not have succeeded.
|
|
@@ -284,11 +389,14 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
284
389
|
},
|
|
285
390
|
},
|
|
286
391
|
'options': {
|
|
392
|
+
'currencyToPrecisionRoundingMode': TRUNCATE,
|
|
287
393
|
'BITVAVO-ACCESS-WINDOW': 10000, # default 10 sec
|
|
288
394
|
'networks': {
|
|
289
395
|
'ERC20': 'ETH',
|
|
290
396
|
'TRC20': 'TRX',
|
|
291
397
|
},
|
|
398
|
+
'operatorId': None, # self will be required soon for order-related endpoints
|
|
399
|
+
'fiatCurrencies': ['EUR'], # only fiat atm
|
|
292
400
|
},
|
|
293
401
|
'precisionMode': SIGNIFICANT_DIGITS,
|
|
294
402
|
'commonCurrencies': {
|
|
@@ -296,9 +404,6 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
296
404
|
},
|
|
297
405
|
})
|
|
298
406
|
|
|
299
|
-
def currency_to_precision(self, code, fee, networkCode=None):
|
|
300
|
-
return self.decimal_to_precision(fee, 0, self.currencies[code]['precision'], DECIMAL_PLACES)
|
|
301
|
-
|
|
302
407
|
def amount_to_precision(self, symbol, amount):
|
|
303
408
|
# https://docs.bitfinex.com/docs/introduction#amount-precision
|
|
304
409
|
# The amount field allows up to 8 decimals.
|
|
@@ -313,7 +418,7 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
313
418
|
# Prices submit with a precision larger than 5 will be cut by the API.
|
|
314
419
|
return self.decimal_to_precision(price, TRUNCATE, 8, DECIMAL_PLACES)
|
|
315
420
|
|
|
316
|
-
async def fetch_time(self, params={}):
|
|
421
|
+
async def fetch_time(self, params={}) -> Int:
|
|
317
422
|
"""
|
|
318
423
|
fetches the current integer timestamp in milliseconds from the exchange server
|
|
319
424
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -327,7 +432,9 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
327
432
|
|
|
328
433
|
async def fetch_markets(self, params={}) -> List[Market]:
|
|
329
434
|
"""
|
|
330
|
-
|
|
435
|
+
|
|
436
|
+
https://docs.bitvavo.com/#tag/General/paths/~1markets/get
|
|
437
|
+
|
|
331
438
|
retrieves data on all markets for bitvavo
|
|
332
439
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
333
440
|
:returns dict[]: an array of objects representing market data
|
|
@@ -419,7 +526,9 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
419
526
|
|
|
420
527
|
async def fetch_currencies(self, params={}) -> Currencies:
|
|
421
528
|
"""
|
|
422
|
-
|
|
529
|
+
|
|
530
|
+
https://docs.bitvavo.com/#tag/General/paths/~1assets/get
|
|
531
|
+
|
|
423
532
|
fetches all available currencies on an exchange
|
|
424
533
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
425
534
|
:returns dict: an associative dictionary of currencies
|
|
@@ -458,9 +567,9 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
458
567
|
# },
|
|
459
568
|
# ]
|
|
460
569
|
#
|
|
461
|
-
return self.
|
|
570
|
+
return self.parse_currencies_custom(response)
|
|
462
571
|
|
|
463
|
-
def
|
|
572
|
+
def parse_currencies_custom(self, currencies):
|
|
464
573
|
#
|
|
465
574
|
# [
|
|
466
575
|
# {
|
|
@@ -494,24 +603,24 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
494
603
|
# },
|
|
495
604
|
# ]
|
|
496
605
|
#
|
|
606
|
+
fiatCurrencies = self.safe_list(self.options, 'fiatCurrencies', [])
|
|
497
607
|
result: dict = {}
|
|
498
608
|
for i in range(0, len(currencies)):
|
|
499
609
|
currency = currencies[i]
|
|
500
610
|
id = self.safe_string(currency, 'symbol')
|
|
501
611
|
code = self.safe_currency_code(id)
|
|
612
|
+
isFiat = self.in_array(code, fiatCurrencies)
|
|
502
613
|
networks: dict = {}
|
|
503
|
-
networksArray = self.
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
deposit = (self.safe_value(currency, 'depositStatus') == 'OK')
|
|
507
|
-
withdrawal = (self.safe_value(currency, 'withdrawalStatus') == 'OK')
|
|
614
|
+
networksArray = self.safe_list(currency, 'networks', [])
|
|
615
|
+
deposit = self.safe_string(currency, 'depositStatus') == 'OK'
|
|
616
|
+
withdrawal = self.safe_string(currency, 'withdrawalStatus') == 'OK'
|
|
508
617
|
active = deposit and withdrawal
|
|
509
618
|
withdrawFee = self.safe_number(currency, 'withdrawalFee')
|
|
510
619
|
precision = self.safe_integer(currency, 'decimals', 8)
|
|
511
620
|
minWithdraw = self.safe_number(currency, 'withdrawalMinAmount')
|
|
512
|
-
# absolutely all of them have 1 network atm
|
|
513
|
-
|
|
514
|
-
networkId = networksArray[
|
|
621
|
+
# btw, absolutely all of them have 1 network atm
|
|
622
|
+
for j in range(0, len(networksArray)):
|
|
623
|
+
networkId = networksArray[j]
|
|
515
624
|
networkCode = self.network_id_to_code(networkId)
|
|
516
625
|
networks[networkCode] = {
|
|
517
626
|
'info': currency,
|
|
@@ -529,7 +638,7 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
529
638
|
},
|
|
530
639
|
},
|
|
531
640
|
}
|
|
532
|
-
result[code] = {
|
|
641
|
+
result[code] = self.safe_currency_structure({
|
|
533
642
|
'info': currency,
|
|
534
643
|
'id': id,
|
|
535
644
|
'code': code,
|
|
@@ -540,6 +649,7 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
540
649
|
'networks': networks,
|
|
541
650
|
'fee': withdrawFee,
|
|
542
651
|
'precision': precision,
|
|
652
|
+
'type': 'fiat' if isFiat else 'crypto',
|
|
543
653
|
'limits': {
|
|
544
654
|
'amount': {
|
|
545
655
|
'min': None,
|
|
@@ -554,14 +664,16 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
554
664
|
'max': None,
|
|
555
665
|
},
|
|
556
666
|
},
|
|
557
|
-
}
|
|
667
|
+
})
|
|
558
668
|
# set currencies here to avoid calling publicGetAssets twice
|
|
559
|
-
self.currencies = self.deep_extend(self.currencies, result)
|
|
669
|
+
self.currencies = self.map_to_safe_map(self.deep_extend(self.currencies, result))
|
|
560
670
|
return result
|
|
561
671
|
|
|
562
672
|
async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
563
673
|
"""
|
|
564
|
-
|
|
674
|
+
|
|
675
|
+
https://docs.bitvavo.com/#tag/Market-Data/paths/~1ticker~124h/get
|
|
676
|
+
|
|
565
677
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
566
678
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
567
679
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -671,7 +783,9 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
671
783
|
|
|
672
784
|
async def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
673
785
|
"""
|
|
674
|
-
|
|
786
|
+
|
|
787
|
+
https://docs.bitvavo.com/#tag/Market-Data/paths/~1{market}~1trades/get
|
|
788
|
+
|
|
675
789
|
get the list of most recent trades for a particular symbol
|
|
676
790
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
677
791
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
@@ -810,7 +924,9 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
810
924
|
|
|
811
925
|
async def fetch_trading_fees(self, params={}) -> TradingFees:
|
|
812
926
|
"""
|
|
813
|
-
|
|
927
|
+
|
|
928
|
+
https://docs.bitvavo.com/#tag/Account/paths/~1account/get
|
|
929
|
+
|
|
814
930
|
fetch the trading fees for multiple markets
|
|
815
931
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
816
932
|
:returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
|
|
@@ -856,7 +972,9 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
856
972
|
|
|
857
973
|
async def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
858
974
|
"""
|
|
859
|
-
|
|
975
|
+
|
|
976
|
+
https://docs.bitvavo.com/#tag/Market-Data/paths/~1{market}~1book/get
|
|
977
|
+
|
|
860
978
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
861
979
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
862
980
|
:param int [limit]: the maximum amount of order book entries to return
|
|
@@ -936,7 +1054,9 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
936
1054
|
|
|
937
1055
|
async def fetch_ohlcv(self, symbol: Str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
938
1056
|
"""
|
|
939
|
-
|
|
1057
|
+
|
|
1058
|
+
https://docs.bitvavo.com/#tag/Market-Data/paths/~1{market}~1candles/get
|
|
1059
|
+
|
|
940
1060
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
941
1061
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
942
1062
|
:param str timeframe: the length of time each candle represents
|
|
@@ -982,7 +1102,9 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
982
1102
|
|
|
983
1103
|
async def fetch_balance(self, params={}) -> Balances:
|
|
984
1104
|
"""
|
|
985
|
-
|
|
1105
|
+
|
|
1106
|
+
https://docs.bitvavo.com/#tag/Account/paths/~1balance/get
|
|
1107
|
+
|
|
986
1108
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
|
987
1109
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
988
1110
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
|
@@ -1000,7 +1122,7 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
1000
1122
|
#
|
|
1001
1123
|
return self.parse_balance(response)
|
|
1002
1124
|
|
|
1003
|
-
async def fetch_deposit_address(self, code: str, params={}):
|
|
1125
|
+
async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
|
|
1004
1126
|
"""
|
|
1005
1127
|
fetch the deposit address for a currency associated with self account
|
|
1006
1128
|
:param str code: unified currency code
|
|
@@ -1023,11 +1145,11 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
1023
1145
|
tag = self.safe_string(response, 'paymentId')
|
|
1024
1146
|
self.check_address(address)
|
|
1025
1147
|
return {
|
|
1148
|
+
'info': response,
|
|
1026
1149
|
'currency': code,
|
|
1150
|
+
'network': None,
|
|
1027
1151
|
'address': address,
|
|
1028
1152
|
'tag': tag,
|
|
1029
|
-
'network': None,
|
|
1030
|
-
'info': response,
|
|
1031
1153
|
}
|
|
1032
1154
|
|
|
1033
1155
|
def create_order_request(self, symbol: Str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
@@ -1081,20 +1203,28 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
1081
1203
|
request['timeInForce'] = timeInForce
|
|
1082
1204
|
if postOnly:
|
|
1083
1205
|
request['postOnly'] = True
|
|
1206
|
+
operatorId = None
|
|
1207
|
+
operatorId, params = self.handle_option_and_params(params, 'createOrder', 'operatorId')
|
|
1208
|
+
if operatorId is not None:
|
|
1209
|
+
request['operatorId'] = self.parse_to_int(operatorId)
|
|
1210
|
+
else:
|
|
1211
|
+
raise ArgumentsRequired(self.id + ' createOrder() requires an operatorId in params or options, eg: exchange.options[\'operatorId\'] = 1234567890')
|
|
1084
1212
|
return self.extend(request, params)
|
|
1085
1213
|
|
|
1086
1214
|
async def create_order(self, symbol: Str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
1087
1215
|
"""
|
|
1088
1216
|
create a trade order
|
|
1089
|
-
|
|
1217
|
+
|
|
1218
|
+
https://docs.bitvavo.com/#tag/Trading-endpoints/paths/~1order/post
|
|
1219
|
+
|
|
1090
1220
|
:param str symbol: unified symbol of the market to create an order in
|
|
1091
1221
|
:param str type: 'market' or 'limit'
|
|
1092
1222
|
:param str side: 'buy' or 'sell'
|
|
1093
1223
|
:param float amount: how much of currency you want to trade in units of base currency
|
|
1094
|
-
:param float price: the price at which the order is to be
|
|
1224
|
+
:param float price: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
1095
1225
|
:param dict [params]: extra parameters specific to the bitvavo api endpoint
|
|
1096
1226
|
:param str [params.timeInForce]: "GTC", "IOC", or "PO"
|
|
1097
|
-
:param float [params.stopPrice]:
|
|
1227
|
+
:param float [params.stopPrice]: Alias for triggerPrice
|
|
1098
1228
|
:param float [params.triggerPrice]: The price at which a trigger order is triggered at
|
|
1099
1229
|
:param bool [params.postOnly]: If True, the order will only be posted to the order book and not executed immediately
|
|
1100
1230
|
:param float [params.stopLossPrice]: The price at which a stop loss order is triggered at
|
|
@@ -1172,19 +1302,27 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
1172
1302
|
clientOrderId = self.safe_string(params, 'clientOrderId')
|
|
1173
1303
|
if clientOrderId is None:
|
|
1174
1304
|
request['orderId'] = id
|
|
1305
|
+
operatorId = None
|
|
1306
|
+
operatorId, params = self.handle_option_and_params(params, 'editOrder', 'operatorId')
|
|
1307
|
+
if operatorId is not None:
|
|
1308
|
+
request['operatorId'] = self.parse_to_int(operatorId)
|
|
1309
|
+
else:
|
|
1310
|
+
raise ArgumentsRequired(self.id + ' editOrder() requires an operatorId in params or options, eg: exchange.options[\'operatorId\'] = 1234567890')
|
|
1175
1311
|
request['market'] = market['id']
|
|
1176
1312
|
return request
|
|
1177
1313
|
|
|
1178
1314
|
async def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
|
|
1179
1315
|
"""
|
|
1180
1316
|
edit a trade order
|
|
1181
|
-
|
|
1317
|
+
|
|
1318
|
+
https://docs.bitvavo.com/#tag/Orders/paths/~1order/put
|
|
1319
|
+
|
|
1182
1320
|
:param str id: cancel order id
|
|
1183
1321
|
:param str symbol: unified symbol of the market to create an order in
|
|
1184
1322
|
:param str type: 'market' or 'limit'
|
|
1185
1323
|
:param str side: 'buy' or 'sell'
|
|
1186
1324
|
:param float [amount]: how much of currency you want to trade in units of base currency
|
|
1187
|
-
:param float [price]: the price at which the order is to be
|
|
1325
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
1188
1326
|
:param dict [params]: extra parameters specific to the bitvavo api endpoint
|
|
1189
1327
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
1190
1328
|
"""
|
|
@@ -1204,13 +1342,23 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
1204
1342
|
clientOrderId = self.safe_string(params, 'clientOrderId')
|
|
1205
1343
|
if clientOrderId is None:
|
|
1206
1344
|
request['orderId'] = id
|
|
1345
|
+
operatorId = None
|
|
1346
|
+
operatorId, params = self.handle_option_and_params(params, 'cancelOrder', 'operatorId')
|
|
1347
|
+
if operatorId is not None:
|
|
1348
|
+
request['operatorId'] = self.parse_to_int(operatorId)
|
|
1349
|
+
else:
|
|
1350
|
+
raise ArgumentsRequired(self.id + ' cancelOrder() requires an operatorId in params or options, eg: exchange.options[\'operatorId\'] = 1234567890')
|
|
1207
1351
|
return self.extend(request, params)
|
|
1208
1352
|
|
|
1209
1353
|
async def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
1210
1354
|
"""
|
|
1211
|
-
|
|
1355
|
+
|
|
1356
|
+
https://docs.bitvavo.com/#tag/Orders/paths/~1order/delete
|
|
1357
|
+
|
|
1212
1358
|
cancels an open order
|
|
1213
|
-
|
|
1359
|
+
|
|
1360
|
+
https://docs.bitvavo.com/#tag/Trading-endpoints/paths/~1order/delete
|
|
1361
|
+
|
|
1214
1362
|
:param str id: order id
|
|
1215
1363
|
:param str symbol: unified symbol of the market the order was made in
|
|
1216
1364
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -1229,7 +1377,9 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
1229
1377
|
|
|
1230
1378
|
async def cancel_all_orders(self, symbol: Str = None, params={}):
|
|
1231
1379
|
"""
|
|
1232
|
-
|
|
1380
|
+
|
|
1381
|
+
https://docs.bitvavo.com/#tag/Orders/paths/~1orders/delete
|
|
1382
|
+
|
|
1233
1383
|
cancel all open orders
|
|
1234
1384
|
:param str symbol: unified market symbol, only orders in the market of self symbol are cancelled when symbol is not None
|
|
1235
1385
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -1254,7 +1404,10 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
1254
1404
|
async def fetch_order(self, id: str, symbol: Str = None, params={}):
|
|
1255
1405
|
"""
|
|
1256
1406
|
fetches information on an order made by the user
|
|
1257
|
-
|
|
1407
|
+
|
|
1408
|
+
https://docs.bitvavo.com/#tag/Trading-endpoints/paths/~1order/get
|
|
1409
|
+
|
|
1410
|
+
:param str id: the order id
|
|
1258
1411
|
:param str symbol: unified symbol of the market the order was made in
|
|
1259
1412
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1260
1413
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -1325,7 +1478,9 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
1325
1478
|
|
|
1326
1479
|
async def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
1327
1480
|
"""
|
|
1328
|
-
|
|
1481
|
+
|
|
1482
|
+
https://docs.bitvavo.com/#tag/Trading-endpoints/paths/~1orders/get
|
|
1483
|
+
|
|
1329
1484
|
fetches information on multiple orders made by the user
|
|
1330
1485
|
:param str symbol: unified market symbol of the market orders were made in
|
|
1331
1486
|
:param int [since]: the earliest time in ms to fetch orders for
|
|
@@ -1385,6 +1540,9 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
1385
1540
|
|
|
1386
1541
|
async def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
1387
1542
|
"""
|
|
1543
|
+
|
|
1544
|
+
https://docs.bitvavo.com/#tag/Trading-endpoints/paths/~1ordersOpen/get
|
|
1545
|
+
|
|
1388
1546
|
fetch all unfilled currently open orders
|
|
1389
1547
|
:param str symbol: unified market symbol
|
|
1390
1548
|
:param int [since]: the earliest time in ms to fetch open orders for
|
|
@@ -1533,7 +1691,6 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
1533
1691
|
timeInForce = self.safe_string(order, 'timeInForce')
|
|
1534
1692
|
postOnly = self.safe_value(order, 'postOnly')
|
|
1535
1693
|
# https://github.com/ccxt/ccxt/issues/8489
|
|
1536
|
-
stopPrice = self.safe_number(order, 'triggerPrice')
|
|
1537
1694
|
return self.safe_order({
|
|
1538
1695
|
'info': order,
|
|
1539
1696
|
'id': id,
|
|
@@ -1547,8 +1704,7 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
1547
1704
|
'postOnly': postOnly,
|
|
1548
1705
|
'side': side,
|
|
1549
1706
|
'price': price,
|
|
1550
|
-
'
|
|
1551
|
-
'triggerPrice': stopPrice,
|
|
1707
|
+
'triggerPrice': self.safe_number(order, 'triggerPrice'),
|
|
1552
1708
|
'amount': amount,
|
|
1553
1709
|
'cost': cost,
|
|
1554
1710
|
'average': None,
|
|
@@ -1578,7 +1734,9 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
1578
1734
|
|
|
1579
1735
|
async def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
1580
1736
|
"""
|
|
1581
|
-
|
|
1737
|
+
|
|
1738
|
+
https://docs.bitvavo.com/#tag/Trading-endpoints/paths/~1trades/get
|
|
1739
|
+
|
|
1582
1740
|
fetch all trades made by the user
|
|
1583
1741
|
:param str symbol: unified market symbol
|
|
1584
1742
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
@@ -1630,7 +1788,7 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
1630
1788
|
request['paymentId'] = tag
|
|
1631
1789
|
return self.extend(request, params)
|
|
1632
1790
|
|
|
1633
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
|
|
1791
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
|
1634
1792
|
"""
|
|
1635
1793
|
make a withdrawal
|
|
1636
1794
|
:param str code: unified currency code
|
|
@@ -1674,7 +1832,9 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
1674
1832
|
|
|
1675
1833
|
async def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
1676
1834
|
"""
|
|
1677
|
-
|
|
1835
|
+
|
|
1836
|
+
https://docs.bitvavo.com/#tag/Account/paths/~1withdrawalHistory/get
|
|
1837
|
+
|
|
1678
1838
|
fetch all withdrawals made from an account
|
|
1679
1839
|
:param str code: unified currency code
|
|
1680
1840
|
:param int [since]: the earliest time in ms to fetch withdrawals for
|
|
@@ -1723,7 +1883,9 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
1723
1883
|
|
|
1724
1884
|
async def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
1725
1885
|
"""
|
|
1726
|
-
|
|
1886
|
+
|
|
1887
|
+
https://docs.bitvavo.com/#tag/Account/paths/~1depositHistory/get
|
|
1888
|
+
|
|
1727
1889
|
fetch all deposits made to an account
|
|
1728
1890
|
:param str code: unified currency code
|
|
1729
1891
|
:param int [since]: the earliest time in ms to fetch deposits for
|
|
@@ -1888,7 +2050,9 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
|
1888
2050
|
async def fetch_deposit_withdraw_fees(self, codes: Strings = None, params={}):
|
|
1889
2051
|
"""
|
|
1890
2052
|
fetch deposit and withdraw fees
|
|
1891
|
-
|
|
2053
|
+
|
|
2054
|
+
https://docs.bitvavo.com/#tag/General/paths/~1assets/get
|
|
2055
|
+
|
|
1892
2056
|
:param str[]|None codes: list of unified currency codes
|
|
1893
2057
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1894
2058
|
:returns dict: a list of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>`
|