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/coinsph.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.coinsph import ImplicitAPI
|
|
8
8
|
import hashlib
|
|
9
|
-
from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, 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, TradingFeeInterface, TradingFees, Transaction
|
|
10
10
|
from typing import List
|
|
11
11
|
from ccxt.base.errors import ExchangeError
|
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
|
@@ -14,7 +14,6 @@ from ccxt.base.errors import PermissionDenied
|
|
|
14
14
|
from ccxt.base.errors import ArgumentsRequired
|
|
15
15
|
from ccxt.base.errors import BadRequest
|
|
16
16
|
from ccxt.base.errors import BadSymbol
|
|
17
|
-
from ccxt.base.errors import BadResponse
|
|
18
17
|
from ccxt.base.errors import InsufficientFunds
|
|
19
18
|
from ccxt.base.errors import InvalidAddress
|
|
20
19
|
from ccxt.base.errors import InvalidOrder
|
|
@@ -24,13 +23,14 @@ from ccxt.base.errors import DuplicateOrderId
|
|
|
24
23
|
from ccxt.base.errors import NotSupported
|
|
25
24
|
from ccxt.base.errors import RateLimitExceeded
|
|
26
25
|
from ccxt.base.errors import ExchangeNotAvailable
|
|
26
|
+
from ccxt.base.errors import BadResponse
|
|
27
27
|
from ccxt.base.decimal_to_precision import TICK_SIZE
|
|
28
28
|
from ccxt.base.precise import Precise
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
class coinsph(Exchange, ImplicitAPI):
|
|
32
32
|
|
|
33
|
-
def describe(self):
|
|
33
|
+
def describe(self) -> Any:
|
|
34
34
|
return self.deep_extend(super(coinsph, self).describe(), {
|
|
35
35
|
'id': 'coinsph',
|
|
36
36
|
'name': 'Coins.ph',
|
|
@@ -47,6 +47,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
47
47
|
'future': False,
|
|
48
48
|
'option': False,
|
|
49
49
|
'addMargin': False,
|
|
50
|
+
'borrowCrossMargin': False,
|
|
51
|
+
'borrowIsolatedMargin': False,
|
|
52
|
+
'borrowMargin': False,
|
|
50
53
|
'cancelAllOrders': True,
|
|
51
54
|
'cancelOrder': True,
|
|
52
55
|
'cancelOrders': False,
|
|
@@ -57,6 +60,8 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
57
60
|
'createMarketOrderWithCost': False,
|
|
58
61
|
'createMarketSellOrderWithCost': False,
|
|
59
62
|
'createOrder': True,
|
|
63
|
+
'createOrderWithTakeProfitAndStopLoss': False,
|
|
64
|
+
'createOrderWithTakeProfitAndStopLossWs': False,
|
|
60
65
|
'createPostOnlyOrder': False,
|
|
61
66
|
'createReduceOnlyOrder': False,
|
|
62
67
|
'createStopLimitOrder': True,
|
|
@@ -68,14 +73,17 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
68
73
|
'fetchBalance': True,
|
|
69
74
|
'fetchBidsAsks': False,
|
|
70
75
|
'fetchBorrowInterest': False,
|
|
76
|
+
'fetchBorrowRate': False,
|
|
71
77
|
'fetchBorrowRateHistories': False,
|
|
72
78
|
'fetchBorrowRateHistory': False,
|
|
79
|
+
'fetchBorrowRates': False,
|
|
80
|
+
'fetchBorrowRatesPerSymbol': False,
|
|
73
81
|
'fetchCanceledOrders': False,
|
|
74
82
|
'fetchClosedOrder': False,
|
|
75
83
|
'fetchClosedOrders': True,
|
|
76
84
|
'fetchCrossBorrowRate': False,
|
|
77
85
|
'fetchCrossBorrowRates': False,
|
|
78
|
-
'fetchCurrencies':
|
|
86
|
+
'fetchCurrencies': True,
|
|
79
87
|
'fetchDeposit': None,
|
|
80
88
|
'fetchDepositAddress': True,
|
|
81
89
|
'fetchDepositAddresses': False,
|
|
@@ -84,24 +92,42 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
84
92
|
'fetchDepositWithdrawFee': False,
|
|
85
93
|
'fetchDepositWithdrawFees': False,
|
|
86
94
|
'fetchFundingHistory': False,
|
|
95
|
+
'fetchFundingInterval': False,
|
|
96
|
+
'fetchFundingIntervals': False,
|
|
87
97
|
'fetchFundingRate': False,
|
|
88
98
|
'fetchFundingRateHistory': False,
|
|
89
99
|
'fetchFundingRates': False,
|
|
100
|
+
'fetchGreeks': False,
|
|
90
101
|
'fetchIndexOHLCV': False,
|
|
91
102
|
'fetchIsolatedBorrowRate': False,
|
|
92
103
|
'fetchIsolatedBorrowRates': False,
|
|
104
|
+
'fetchIsolatedPositions': False,
|
|
93
105
|
'fetchL3OrderBook': False,
|
|
94
106
|
'fetchLedger': False,
|
|
95
107
|
'fetchLeverage': False,
|
|
108
|
+
'fetchLeverages': False,
|
|
96
109
|
'fetchLeverageTiers': False,
|
|
110
|
+
'fetchLiquidations': False,
|
|
111
|
+
'fetchLongShortRatio': False,
|
|
112
|
+
'fetchLongShortRatioHistory': False,
|
|
113
|
+
'fetchMarginAdjustmentHistory': False,
|
|
114
|
+
'fetchMarginMode': False,
|
|
115
|
+
'fetchMarginModes': False,
|
|
97
116
|
'fetchMarketLeverageTiers': False,
|
|
98
117
|
'fetchMarkets': True,
|
|
99
118
|
'fetchMarkOHLCV': False,
|
|
119
|
+
'fetchMarkPrices': False,
|
|
120
|
+
'fetchMyLiquidations': False,
|
|
121
|
+
'fetchMySettlementHistory': False,
|
|
100
122
|
'fetchMyTrades': True,
|
|
101
123
|
'fetchOHLCV': True,
|
|
124
|
+
'fetchOpenInterest': False,
|
|
102
125
|
'fetchOpenInterestHistory': False,
|
|
126
|
+
'fetchOpenInterests': False,
|
|
103
127
|
'fetchOpenOrder': None,
|
|
104
128
|
'fetchOpenOrders': True,
|
|
129
|
+
'fetchOption': False,
|
|
130
|
+
'fetchOptionChain': False,
|
|
105
131
|
'fetchOrder': True,
|
|
106
132
|
'fetchOrderBook': True,
|
|
107
133
|
'fetchOrderBooks': False,
|
|
@@ -115,6 +141,7 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
115
141
|
'fetchPositionsHistory': False,
|
|
116
142
|
'fetchPositionsRisk': False,
|
|
117
143
|
'fetchPremiumIndexOHLCV': False,
|
|
144
|
+
'fetchSettlementHistory': False,
|
|
118
145
|
'fetchStatus': True,
|
|
119
146
|
'fetchTicker': True,
|
|
120
147
|
'fetchTickers': True,
|
|
@@ -127,12 +154,14 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
127
154
|
'fetchTransactionFees': False,
|
|
128
155
|
'fetchTransactions': False,
|
|
129
156
|
'fetchTransfers': False,
|
|
157
|
+
'fetchVolatilityHistory': False,
|
|
130
158
|
'fetchWithdrawal': None,
|
|
131
159
|
'fetchWithdrawals': True,
|
|
132
160
|
'fetchWithdrawalWhitelist': False,
|
|
133
161
|
'reduceMargin': False,
|
|
134
162
|
'repayCrossMargin': False,
|
|
135
163
|
'repayIsolatedMargin': False,
|
|
164
|
+
'repayMargin': False,
|
|
136
165
|
'setLeverage': False,
|
|
137
166
|
'setMargin': False,
|
|
138
167
|
'setMarginMode': False,
|
|
@@ -313,6 +342,76 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
313
342
|
'ARB': 'ARBITRUM',
|
|
314
343
|
},
|
|
315
344
|
},
|
|
345
|
+
'features': {
|
|
346
|
+
'spot': {
|
|
347
|
+
'sandbox': False,
|
|
348
|
+
'createOrder': {
|
|
349
|
+
'marginMode': False,
|
|
350
|
+
'triggerPrice': True,
|
|
351
|
+
'triggerPriceType': None,
|
|
352
|
+
'triggerDirection': False,
|
|
353
|
+
'stopLossPrice': False, # todo
|
|
354
|
+
'takeProfitPrice': False, # todo
|
|
355
|
+
'attachedStopLossTakeProfit': None,
|
|
356
|
+
'timeInForce': {
|
|
357
|
+
'IOC': True,
|
|
358
|
+
'FOK': True,
|
|
359
|
+
'PO': False,
|
|
360
|
+
'GTD': False,
|
|
361
|
+
},
|
|
362
|
+
'hedged': False,
|
|
363
|
+
'trailing': False,
|
|
364
|
+
'leverage': False,
|
|
365
|
+
'marketBuyByCost': True,
|
|
366
|
+
'marketBuyRequiresPrice': False,
|
|
367
|
+
'selfTradePrevention': True, # todo implement
|
|
368
|
+
'iceberg': False,
|
|
369
|
+
},
|
|
370
|
+
'createOrders': None,
|
|
371
|
+
'fetchMyTrades': {
|
|
372
|
+
'marginMode': False,
|
|
373
|
+
'limit': 1000,
|
|
374
|
+
'daysBack': 100000,
|
|
375
|
+
'untilDays': 100000, # todo implement
|
|
376
|
+
'symbolRequired': True,
|
|
377
|
+
},
|
|
378
|
+
'fetchOrder': {
|
|
379
|
+
'marginMode': False,
|
|
380
|
+
'trigger': False,
|
|
381
|
+
'trailing': False,
|
|
382
|
+
'symbolRequired': False,
|
|
383
|
+
},
|
|
384
|
+
'fetchOpenOrders': {
|
|
385
|
+
'marginMode': False,
|
|
386
|
+
'limit': None,
|
|
387
|
+
'trigger': False,
|
|
388
|
+
'trailing': False,
|
|
389
|
+
'symbolRequired': False,
|
|
390
|
+
},
|
|
391
|
+
'fetchOrders': None,
|
|
392
|
+
'fetchClosedOrders': {
|
|
393
|
+
'marginMode': False,
|
|
394
|
+
'limit': 1000,
|
|
395
|
+
'daysBack': 100000,
|
|
396
|
+
'daysBackCanceled': 1,
|
|
397
|
+
'untilDays': 100000,
|
|
398
|
+
'trigger': False,
|
|
399
|
+
'trailing': False,
|
|
400
|
+
'symbolRequired': True,
|
|
401
|
+
},
|
|
402
|
+
'fetchOHLCV': {
|
|
403
|
+
'limit': 1000,
|
|
404
|
+
},
|
|
405
|
+
},
|
|
406
|
+
'swap': {
|
|
407
|
+
'linear': None,
|
|
408
|
+
'inverse': None,
|
|
409
|
+
},
|
|
410
|
+
'future': {
|
|
411
|
+
'linear': None,
|
|
412
|
+
'inverse': None,
|
|
413
|
+
},
|
|
414
|
+
},
|
|
316
415
|
# https://coins-docs.github.io/errors/
|
|
317
416
|
'exceptions': {
|
|
318
417
|
'exact': {
|
|
@@ -431,6 +530,128 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
431
530
|
},
|
|
432
531
|
})
|
|
433
532
|
|
|
533
|
+
async def fetch_currencies(self, params={}) -> Currencies:
|
|
534
|
+
"""
|
|
535
|
+
fetches all available currencies on an exchange
|
|
536
|
+
|
|
537
|
+
https://docs.coins.ph/rest-api/#all-coins-information-user_data
|
|
538
|
+
|
|
539
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
540
|
+
:returns dict: an associative dictionary of currencies
|
|
541
|
+
"""
|
|
542
|
+
if not self.check_required_credentials(False):
|
|
543
|
+
return None
|
|
544
|
+
response = await self.privateGetOpenapiWalletV1ConfigGetall(params)
|
|
545
|
+
#
|
|
546
|
+
# [
|
|
547
|
+
# {
|
|
548
|
+
# "coin": "PHP",
|
|
549
|
+
# "name": "PHP",
|
|
550
|
+
# "depositAllEnable": False,
|
|
551
|
+
# "withdrawAllEnable": False,
|
|
552
|
+
# "free": "0",
|
|
553
|
+
# "locked": "0",
|
|
554
|
+
# "transferPrecision": "2",
|
|
555
|
+
# "transferMinQuantity": "0",
|
|
556
|
+
# "networkList": [],
|
|
557
|
+
# "legalMoney": True
|
|
558
|
+
# },
|
|
559
|
+
# {
|
|
560
|
+
# "coin": "USDT",
|
|
561
|
+
# "name": "USDT",
|
|
562
|
+
# "depositAllEnable": True,
|
|
563
|
+
# "withdrawAllEnable": True,
|
|
564
|
+
# "free": "0",
|
|
565
|
+
# "locked": "0",
|
|
566
|
+
# "transferPrecision": "8",
|
|
567
|
+
# "transferMinQuantity": "0",
|
|
568
|
+
# "networkList": [
|
|
569
|
+
# {
|
|
570
|
+
# "addressRegex": "^0x[0-9a-fA-F]{40}$",
|
|
571
|
+
# "memoRegex": " ",
|
|
572
|
+
# "network": "ETH",
|
|
573
|
+
# "name": "Ethereum(ERC20)",
|
|
574
|
+
# "depositEnable": True,
|
|
575
|
+
# "minConfirm": "12",
|
|
576
|
+
# "unLockConfirm": "-1",
|
|
577
|
+
# "withdrawDesc": "",
|
|
578
|
+
# "withdrawEnable": True,
|
|
579
|
+
# "withdrawFee": "6",
|
|
580
|
+
# "withdrawIntegerMultiple": "0.000001",
|
|
581
|
+
# "withdrawMax": "500000",
|
|
582
|
+
# "withdrawMin": "10",
|
|
583
|
+
# "sameAddress": False
|
|
584
|
+
# },
|
|
585
|
+
# {
|
|
586
|
+
# "addressRegex": "^T[0-9a-zA-Z]{33}$",
|
|
587
|
+
# "memoRegex": "",
|
|
588
|
+
# "network": "TRX",
|
|
589
|
+
# "name": "TRON",
|
|
590
|
+
# "depositEnable": True,
|
|
591
|
+
# "minConfirm": "19",
|
|
592
|
+
# "unLockConfirm": "-1",
|
|
593
|
+
# "withdrawDesc": "",
|
|
594
|
+
# "withdrawEnable": True,
|
|
595
|
+
# "withdrawFee": "3",
|
|
596
|
+
# "withdrawIntegerMultiple": "0.000001",
|
|
597
|
+
# "withdrawMax": "1000000",
|
|
598
|
+
# "withdrawMin": "20",
|
|
599
|
+
# "sameAddress": False
|
|
600
|
+
# }
|
|
601
|
+
# ],
|
|
602
|
+
# "legalMoney": False
|
|
603
|
+
# }
|
|
604
|
+
# ]
|
|
605
|
+
#
|
|
606
|
+
result: dict = {}
|
|
607
|
+
for i in range(0, len(response)):
|
|
608
|
+
entry = response[i]
|
|
609
|
+
id = self.safe_string(entry, 'coin')
|
|
610
|
+
code = self.safe_currency_code(id)
|
|
611
|
+
isFiat = self.safe_bool(entry, 'isLegalMoney')
|
|
612
|
+
networkList = self.safe_list(entry, 'networkList', [])
|
|
613
|
+
networks: dict = {}
|
|
614
|
+
for j in range(0, len(networkList)):
|
|
615
|
+
networkItem = networkList[j]
|
|
616
|
+
network = self.safe_string(networkItem, 'network')
|
|
617
|
+
networkCode = self.network_id_to_code(network)
|
|
618
|
+
networks[networkCode] = {
|
|
619
|
+
'info': networkItem,
|
|
620
|
+
'id': network,
|
|
621
|
+
'network': networkCode,
|
|
622
|
+
'active': None,
|
|
623
|
+
'deposit': self.safe_bool(networkItem, 'depositEnable'),
|
|
624
|
+
'withdraw': self.safe_bool(networkItem, 'withdrawEnable'),
|
|
625
|
+
'fee': self.safe_number(networkItem, 'withdrawFee'),
|
|
626
|
+
'precision': self.safe_number(networkItem, 'withdrawIntegerMultiple'),
|
|
627
|
+
'limits': {
|
|
628
|
+
'withdraw': {
|
|
629
|
+
'min': self.safe_number(networkItem, 'withdrawMin'),
|
|
630
|
+
'max': self.safe_number(networkItem, 'withdrawMax'),
|
|
631
|
+
},
|
|
632
|
+
'deposit': {
|
|
633
|
+
'min': None,
|
|
634
|
+
'max': None,
|
|
635
|
+
},
|
|
636
|
+
},
|
|
637
|
+
}
|
|
638
|
+
result[code] = self.safe_currency_structure({
|
|
639
|
+
'id': id,
|
|
640
|
+
'name': self.safe_string(entry, 'name'),
|
|
641
|
+
'code': code,
|
|
642
|
+
'type': 'fiat' if isFiat else 'crypto',
|
|
643
|
+
'precision': self.parse_number(self.parse_precision(self.safe_string(entry, 'transferPrecision'))),
|
|
644
|
+
'info': entry,
|
|
645
|
+
'active': None,
|
|
646
|
+
'deposit': self.safe_bool(entry, 'depositAllEnable'),
|
|
647
|
+
'withdraw': self.safe_bool(entry, 'withdrawAllEnable'),
|
|
648
|
+
'networks': networks,
|
|
649
|
+
'fee': None,
|
|
650
|
+
'fees': None,
|
|
651
|
+
'limits': {},
|
|
652
|
+
})
|
|
653
|
+
return result
|
|
654
|
+
|
|
434
655
|
def calculate_rate_limiter_cost(self, api, method, path, params, config={}):
|
|
435
656
|
if ('noSymbol' in config) and not ('symbol' in params):
|
|
436
657
|
return config['noSymbol']
|
|
@@ -456,7 +677,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
456
677
|
async def fetch_status(self, params={}):
|
|
457
678
|
"""
|
|
458
679
|
the latest known information on the availability of the exchange API
|
|
459
|
-
|
|
680
|
+
|
|
681
|
+
https://coins-docs.github.io/rest-api/#test-connectivity
|
|
682
|
+
|
|
460
683
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
461
684
|
:returns dict: a `status structure <https://docs.ccxt.com/#/?id=exchange-status-structure>`
|
|
462
685
|
"""
|
|
@@ -469,10 +692,12 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
469
692
|
'info': response,
|
|
470
693
|
}
|
|
471
694
|
|
|
472
|
-
async def fetch_time(self, params={}):
|
|
695
|
+
async def fetch_time(self, params={}) -> Int:
|
|
473
696
|
"""
|
|
474
697
|
fetches the current integer timestamp in milliseconds from the exchange server
|
|
475
|
-
|
|
698
|
+
|
|
699
|
+
https://coins-docs.github.io/rest-api/#check-server-time
|
|
700
|
+
|
|
476
701
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
477
702
|
:returns int: the current integer timestamp in milliseconds from the exchange server
|
|
478
703
|
"""
|
|
@@ -485,7 +710,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
485
710
|
async def fetch_markets(self, params={}) -> List[Market]:
|
|
486
711
|
"""
|
|
487
712
|
retrieves data on all markets for coinsph
|
|
488
|
-
|
|
713
|
+
|
|
714
|
+
https://coins-docs.github.io/rest-api/#exchange-information
|
|
715
|
+
|
|
489
716
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
490
717
|
:returns dict[]: an array of objects representing market data
|
|
491
718
|
"""
|
|
@@ -549,7 +776,7 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
549
776
|
# ]
|
|
550
777
|
# }
|
|
551
778
|
#
|
|
552
|
-
markets = self.
|
|
779
|
+
markets = self.safe_list(response, 'symbols', [])
|
|
553
780
|
result = []
|
|
554
781
|
for i in range(0, len(markets)):
|
|
555
782
|
market = markets[i]
|
|
@@ -558,7 +785,7 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
558
785
|
quoteId = self.safe_string(market, 'quoteAsset')
|
|
559
786
|
base = self.safe_currency_code(baseId)
|
|
560
787
|
quote = self.safe_currency_code(quoteId)
|
|
561
|
-
limits = self.index_by(self.
|
|
788
|
+
limits = self.index_by(self.safe_list(market, 'filters', []), 'filterType')
|
|
562
789
|
amountLimits = self.safe_value(limits, 'LOT_SIZE', {})
|
|
563
790
|
priceLimits = self.safe_value(limits, 'PRICE_FILTER', {})
|
|
564
791
|
costLimits = self.safe_value(limits, 'NOTIONAL', {})
|
|
@@ -619,9 +846,11 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
619
846
|
async def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
620
847
|
"""
|
|
621
848
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
849
|
+
|
|
850
|
+
https://coins-docs.github.io/rest-api/#24hr-ticker-price-change-statistics
|
|
851
|
+
https://coins-docs.github.io/rest-api/#symbol-price-ticker
|
|
852
|
+
https://coins-docs.github.io/rest-api/#symbol-order-book-ticker
|
|
853
|
+
|
|
625
854
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
626
855
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
627
856
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -636,7 +865,7 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
636
865
|
ids.append(id)
|
|
637
866
|
request['symbols'] = ids
|
|
638
867
|
defaultMethod = 'publicGetOpenapiQuoteV1Ticker24hr'
|
|
639
|
-
options = self.
|
|
868
|
+
options = self.safe_dict(self.options, 'fetchTickers', {})
|
|
640
869
|
method = self.safe_string(options, 'method', defaultMethod)
|
|
641
870
|
tickers = None
|
|
642
871
|
if method == 'publicGetOpenapiQuoteV1TickerPrice':
|
|
@@ -650,9 +879,11 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
650
879
|
async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
651
880
|
"""
|
|
652
881
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
882
|
+
|
|
883
|
+
https://coins-docs.github.io/rest-api/#24hr-ticker-price-change-statistics
|
|
884
|
+
https://coins-docs.github.io/rest-api/#symbol-price-ticker
|
|
885
|
+
https://coins-docs.github.io/rest-api/#symbol-order-book-ticker
|
|
886
|
+
|
|
656
887
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
657
888
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
658
889
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -663,7 +894,7 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
663
894
|
'symbol': market['id'],
|
|
664
895
|
}
|
|
665
896
|
defaultMethod = 'publicGetOpenapiQuoteV1Ticker24hr'
|
|
666
|
-
options = self.
|
|
897
|
+
options = self.safe_dict(self.options, 'fetchTicker', {})
|
|
667
898
|
method = self.safe_string(options, 'method', defaultMethod)
|
|
668
899
|
ticker = None
|
|
669
900
|
if method == 'publicGetOpenapiQuoteV1TickerPrice':
|
|
@@ -755,7 +986,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
755
986
|
async def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
756
987
|
"""
|
|
757
988
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
758
|
-
|
|
989
|
+
|
|
990
|
+
https://coins-docs.github.io/rest-api/#order-book
|
|
991
|
+
|
|
759
992
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
760
993
|
:param int [limit]: the maximum amount of order book entries to return(default 100, max 200)
|
|
761
994
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -789,33 +1022,44 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
789
1022
|
async def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
790
1023
|
"""
|
|
791
1024
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
792
|
-
|
|
1025
|
+
|
|
1026
|
+
https://coins-docs.github.io/rest-api/#klinecandlestick-data
|
|
1027
|
+
|
|
793
1028
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
794
1029
|
:param str timeframe: the length of time each candle represents
|
|
795
1030
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
796
1031
|
:param int [limit]: the maximum amount of candles to fetch(default 500, max 1000)
|
|
797
1032
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1033
|
+
:param int [params.until]: timestamp in ms of the latest candle to fetch
|
|
798
1034
|
:returns int[][]: A list of candles ordered, open, high, low, close, volume
|
|
799
1035
|
"""
|
|
800
1036
|
await self.load_markets()
|
|
801
1037
|
market = self.market(symbol)
|
|
802
1038
|
interval = self.safe_string(self.timeframes, timeframe)
|
|
1039
|
+
until = self.safe_integer(params, 'until')
|
|
803
1040
|
request: dict = {
|
|
804
1041
|
'symbol': market['id'],
|
|
805
1042
|
'interval': interval,
|
|
806
1043
|
}
|
|
1044
|
+
if limit is None:
|
|
1045
|
+
limit = 1000
|
|
807
1046
|
if since is not None:
|
|
808
1047
|
request['startTime'] = since
|
|
809
|
-
request['limit'] = 1000
|
|
810
1048
|
# since work properly only when it is "younger" than last "limit" candle
|
|
811
|
-
if
|
|
812
|
-
|
|
813
|
-
request['endTime'] = self.sum(since, duration * (limit - 1))
|
|
1049
|
+
if until is not None:
|
|
1050
|
+
request['endTime'] = until
|
|
814
1051
|
else:
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
request['
|
|
1052
|
+
duration = self.parse_timeframe(timeframe) * 1000
|
|
1053
|
+
endTimeByLimit = self.sum(since, duration * (limit - 1))
|
|
1054
|
+
now = self.milliseconds()
|
|
1055
|
+
request['endTime'] = min(endTimeByLimit, now)
|
|
1056
|
+
elif until is not None:
|
|
1057
|
+
request['endTime'] = until
|
|
1058
|
+
# since work properly only when it is "younger" than last "limit" candle
|
|
1059
|
+
duration = self.parse_timeframe(timeframe) * 1000
|
|
1060
|
+
request['startTime'] = until - (duration * (limit - 1))
|
|
1061
|
+
request['limit'] = limit
|
|
1062
|
+
params = self.omit(params, 'until')
|
|
819
1063
|
response = await self.publicGetOpenapiQuoteV1Klines(self.extend(request, params))
|
|
820
1064
|
#
|
|
821
1065
|
# [
|
|
@@ -849,7 +1093,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
849
1093
|
async def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
850
1094
|
"""
|
|
851
1095
|
get the list of most recent trades for a particular symbol
|
|
852
|
-
|
|
1096
|
+
|
|
1097
|
+
https://coins-docs.github.io/rest-api/#recent-trades-list
|
|
1098
|
+
|
|
853
1099
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
854
1100
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
855
1101
|
:param int [limit]: the maximum amount of trades to fetch(default 500, max 1000)
|
|
@@ -886,7 +1132,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
886
1132
|
async def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
887
1133
|
"""
|
|
888
1134
|
fetch all trades made by the user
|
|
889
|
-
|
|
1135
|
+
|
|
1136
|
+
https://coins-docs.github.io/rest-api/#account-trade-list-user_data
|
|
1137
|
+
|
|
890
1138
|
:param str symbol: unified market symbol
|
|
891
1139
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
892
1140
|
:param int [limit]: the maximum number of trades structures to retrieve(default 500, max 1000)
|
|
@@ -912,7 +1160,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
912
1160
|
async def fetch_order_trades(self, id: str, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
913
1161
|
"""
|
|
914
1162
|
fetch all the trades made from a single order
|
|
915
|
-
|
|
1163
|
+
|
|
1164
|
+
https://coins-docs.github.io/rest-api/#account-trade-list-user_data
|
|
1165
|
+
|
|
916
1166
|
:param str id: order id
|
|
917
1167
|
:param str symbol: unified market symbol
|
|
918
1168
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
@@ -982,7 +1232,7 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
982
1232
|
'cost': feeCost,
|
|
983
1233
|
'currency': self.safe_currency_code(feeCurrencyId),
|
|
984
1234
|
}
|
|
985
|
-
isBuyer = self.
|
|
1235
|
+
isBuyer = self.safe_bool_2(trade, 'isBuyer', 'isBuyerMaker', None)
|
|
986
1236
|
side = None
|
|
987
1237
|
if isBuyer is not None:
|
|
988
1238
|
side = 'buy' if (isBuyer is True) else 'sell'
|
|
@@ -1012,7 +1262,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1012
1262
|
async def fetch_balance(self, params={}) -> Balances:
|
|
1013
1263
|
"""
|
|
1014
1264
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
|
1015
|
-
|
|
1265
|
+
|
|
1266
|
+
https://coins-docs.github.io/rest-api/#accept-the-quote
|
|
1267
|
+
|
|
1016
1268
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1017
1269
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
|
1018
1270
|
"""
|
|
@@ -1042,7 +1294,7 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1042
1294
|
return self.parse_balance(response)
|
|
1043
1295
|
|
|
1044
1296
|
def parse_balance(self, response) -> Balances:
|
|
1045
|
-
balances = self.
|
|
1297
|
+
balances = self.safe_list(response, 'balances', [])
|
|
1046
1298
|
result: dict = {
|
|
1047
1299
|
'info': response,
|
|
1048
1300
|
'timestamp': None,
|
|
@@ -1061,12 +1313,14 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1061
1313
|
async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
1062
1314
|
"""
|
|
1063
1315
|
create a trade order
|
|
1064
|
-
|
|
1316
|
+
|
|
1317
|
+
https://coins-docs.github.io/rest-api/#new-order--trade
|
|
1318
|
+
|
|
1065
1319
|
:param str symbol: unified symbol of the market to create an order in
|
|
1066
1320
|
:param str type: 'market', 'limit', 'stop_loss', 'take_profit', 'stop_loss_limit', 'take_profit_limit' or 'limit_maker'
|
|
1067
1321
|
:param str side: 'buy' or 'sell'
|
|
1068
1322
|
:param float amount: how much of currency you want to trade in units of base currency
|
|
1069
|
-
:param float [price]: the price at which the order is to be
|
|
1323
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
1070
1324
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1071
1325
|
:param float [params.cost]: the quote quantity that can be used alternative for the amount for market buy orders
|
|
1072
1326
|
:param bool [params.test]: set to True to test an order, no order will be created but the request will be validated
|
|
@@ -1122,10 +1376,10 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1122
1376
|
quoteAmount = self.cost_to_precision(symbol, amount)
|
|
1123
1377
|
request['quoteOrderQty'] = quoteAmount
|
|
1124
1378
|
if orderType == 'STOP_LOSS' or orderType == 'STOP_LOSS_LIMIT' or orderType == 'TAKE_PROFIT' or orderType == 'TAKE_PROFIT_LIMIT':
|
|
1125
|
-
|
|
1126
|
-
if
|
|
1379
|
+
triggerPrice = self.safe_string_2(params, 'triggerPrice', 'stopPrice')
|
|
1380
|
+
if triggerPrice is None:
|
|
1127
1381
|
raise InvalidOrder(self.id + ' createOrder() requires a triggerPrice or stopPrice param for stop_loss, take_profit, stop_loss_limit, and take_profit_limit orders')
|
|
1128
|
-
request['stopPrice'] = self.price_to_precision(symbol,
|
|
1382
|
+
request['stopPrice'] = self.price_to_precision(symbol, triggerPrice)
|
|
1129
1383
|
request['newOrderRespType'] = newOrderRespType
|
|
1130
1384
|
params = self.omit(params, 'price', 'stopPrice', 'triggerPrice', 'quantity', 'quoteOrderQty')
|
|
1131
1385
|
response = None
|
|
@@ -1165,7 +1419,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1165
1419
|
async def fetch_order(self, id: str, symbol: Str = None, params={}):
|
|
1166
1420
|
"""
|
|
1167
1421
|
fetches information on an order made by the user
|
|
1168
|
-
|
|
1422
|
+
|
|
1423
|
+
https://coins-docs.github.io/rest-api/#query-order-user_data
|
|
1424
|
+
|
|
1169
1425
|
:param int|str id: order id
|
|
1170
1426
|
:param str symbol: not used by coinsph fetchOrder()
|
|
1171
1427
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -1185,7 +1441,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1185
1441
|
async def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
1186
1442
|
"""
|
|
1187
1443
|
fetch all unfilled currently open orders
|
|
1188
|
-
|
|
1444
|
+
|
|
1445
|
+
https://coins-docs.github.io/rest-api/#current-open-orders-user_data
|
|
1446
|
+
|
|
1189
1447
|
:param str symbol: unified market symbol
|
|
1190
1448
|
:param int [since]: the earliest time in ms to fetch open orders for
|
|
1191
1449
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
|
@@ -1204,7 +1462,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1204
1462
|
async def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
1205
1463
|
"""
|
|
1206
1464
|
fetches information on multiple closed orders made by the user
|
|
1207
|
-
|
|
1465
|
+
|
|
1466
|
+
https://coins-docs.github.io/rest-api/#history-orders-user_data
|
|
1467
|
+
|
|
1208
1468
|
:param str symbol: unified market symbol of the market orders were made in
|
|
1209
1469
|
:param int [since]: the earliest time in ms to fetch orders for
|
|
1210
1470
|
:param int [limit]: the maximum number of order structures to retrieve(default 500, max 1000)
|
|
@@ -1230,7 +1490,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1230
1490
|
async def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
1231
1491
|
"""
|
|
1232
1492
|
cancels an open order
|
|
1233
|
-
|
|
1493
|
+
|
|
1494
|
+
https://coins-docs.github.io/rest-api/#cancel-order-trade
|
|
1495
|
+
|
|
1234
1496
|
:param str id: order id
|
|
1235
1497
|
:param str symbol: not used by coinsph cancelOrder()
|
|
1236
1498
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -1250,7 +1512,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1250
1512
|
async def cancel_all_orders(self, symbol: Str = None, params={}):
|
|
1251
1513
|
"""
|
|
1252
1514
|
cancel open orders of market
|
|
1253
|
-
|
|
1515
|
+
|
|
1516
|
+
https://coins-docs.github.io/rest-api/#cancel-all-open-orders-on-a-symbol-trade
|
|
1517
|
+
|
|
1254
1518
|
:param str symbol: unified market symbol
|
|
1255
1519
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1256
1520
|
:returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -1340,9 +1604,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1340
1604
|
market = self.safe_market(marketId, market)
|
|
1341
1605
|
timestamp = self.safe_integer_2(order, 'time', 'transactTime')
|
|
1342
1606
|
trades = self.safe_value(order, 'fills', None)
|
|
1343
|
-
|
|
1344
|
-
if Precise.string_eq(
|
|
1345
|
-
|
|
1607
|
+
triggerPrice = self.safe_string(order, 'stopPrice')
|
|
1608
|
+
if Precise.string_eq(triggerPrice, '0'):
|
|
1609
|
+
triggerPrice = None
|
|
1346
1610
|
return self.safe_order({
|
|
1347
1611
|
'id': id,
|
|
1348
1612
|
'clientOrderId': self.safe_string(order, 'clientOrderId'),
|
|
@@ -1355,8 +1619,7 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1355
1619
|
'timeInForce': self.parse_order_time_in_force(self.safe_string(order, 'timeInForce')),
|
|
1356
1620
|
'side': self.parse_order_side(self.safe_string(order, 'side')),
|
|
1357
1621
|
'price': self.safe_string(order, 'price'),
|
|
1358
|
-
'
|
|
1359
|
-
'triggerPrice': stopPrice,
|
|
1622
|
+
'triggerPrice': triggerPrice,
|
|
1360
1623
|
'average': None,
|
|
1361
1624
|
'amount': self.safe_string(order, 'origQty'),
|
|
1362
1625
|
'cost': self.safe_string(order, 'cummulativeQuoteQty'),
|
|
@@ -1428,7 +1691,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1428
1691
|
async def fetch_trading_fee(self, symbol: str, params={}) -> TradingFeeInterface:
|
|
1429
1692
|
"""
|
|
1430
1693
|
fetch the trading fees for a market
|
|
1431
|
-
|
|
1694
|
+
|
|
1695
|
+
https://coins-docs.github.io/rest-api/#trade-fee-user_data
|
|
1696
|
+
|
|
1432
1697
|
:param str symbol: unified market symbol
|
|
1433
1698
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1434
1699
|
:returns dict: a `fee structure <https://docs.ccxt.com/#/?id=fee-structure>`
|
|
@@ -1448,13 +1713,15 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1448
1713
|
# }
|
|
1449
1714
|
# ]
|
|
1450
1715
|
#
|
|
1451
|
-
tradingFee = self.
|
|
1716
|
+
tradingFee = self.safe_dict(response, 0, {})
|
|
1452
1717
|
return self.parse_trading_fee(tradingFee, market)
|
|
1453
1718
|
|
|
1454
1719
|
async def fetch_trading_fees(self, params={}) -> TradingFees:
|
|
1455
1720
|
"""
|
|
1456
1721
|
fetch the trading fees for multiple markets
|
|
1457
|
-
|
|
1722
|
+
|
|
1723
|
+
https://coins-docs.github.io/rest-api/#trade-fee-user_data
|
|
1724
|
+
|
|
1458
1725
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1459
1726
|
:returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
|
|
1460
1727
|
"""
|
|
@@ -1501,10 +1768,12 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1501
1768
|
'tierBased': None,
|
|
1502
1769
|
}
|
|
1503
1770
|
|
|
1504
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
|
|
1771
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
|
1505
1772
|
"""
|
|
1506
1773
|
make a withdrawal to coins_ph account
|
|
1507
|
-
|
|
1774
|
+
|
|
1775
|
+
https://coins-docs.github.io/rest-api/#withdrawuser_data
|
|
1776
|
+
|
|
1508
1777
|
:param str code: unified currency code
|
|
1509
1778
|
:param float amount: the amount to withdraw
|
|
1510
1779
|
:param str address: not used by coinsph withdraw()
|
|
@@ -1537,7 +1806,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1537
1806
|
async def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
1538
1807
|
"""
|
|
1539
1808
|
fetch all deposits made to an account
|
|
1540
|
-
|
|
1809
|
+
|
|
1810
|
+
https://coins-docs.github.io/rest-api/#deposit-history-user_data
|
|
1811
|
+
|
|
1541
1812
|
:param str code: unified currency code
|
|
1542
1813
|
:param int [since]: the earliest time in ms to fetch deposits for
|
|
1543
1814
|
:param int [limit]: the maximum number of deposits structures to retrieve
|
|
@@ -1589,7 +1860,9 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1589
1860
|
async def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
1590
1861
|
"""
|
|
1591
1862
|
fetch all withdrawals made from an account
|
|
1592
|
-
|
|
1863
|
+
|
|
1864
|
+
https://coins-docs.github.io/rest-api/#withdraw-history-user_data
|
|
1865
|
+
|
|
1593
1866
|
:param str code: unified currency code
|
|
1594
1867
|
:param int [since]: the earliest time in ms to fetch withdrawals for
|
|
1595
1868
|
:param int [limit]: the maximum number of withdrawals structures to retrieve
|
|
@@ -1740,10 +2013,12 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1740
2013
|
}
|
|
1741
2014
|
return self.safe_string(statuses, status, status)
|
|
1742
2015
|
|
|
1743
|
-
async def fetch_deposit_address(self, code: str, params={}):
|
|
2016
|
+
async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
|
|
1744
2017
|
"""
|
|
1745
2018
|
fetch the deposit address for a currency associated with self account
|
|
1746
|
-
|
|
2019
|
+
|
|
2020
|
+
https://coins-docs.github.io/rest-api/#deposit-address-user_data
|
|
2021
|
+
|
|
1747
2022
|
:param str code: unified currency code
|
|
1748
2023
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1749
2024
|
:param str [params.network]: network for fetch deposit address
|
|
@@ -1770,7 +2045,7 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1770
2045
|
#
|
|
1771
2046
|
return self.parse_deposit_address(response, currency)
|
|
1772
2047
|
|
|
1773
|
-
def parse_deposit_address(self, depositAddress, currency: Currency = None):
|
|
2048
|
+
def parse_deposit_address(self, depositAddress, currency: Currency = None) -> DepositAddress:
|
|
1774
2049
|
#
|
|
1775
2050
|
# {
|
|
1776
2051
|
# "coin": "ETH",
|
|
@@ -1781,11 +2056,11 @@ class coinsph(Exchange, ImplicitAPI):
|
|
|
1781
2056
|
currencyId = self.safe_string(depositAddress, 'coin')
|
|
1782
2057
|
parsedCurrency = self.safe_currency_code(currencyId, currency)
|
|
1783
2058
|
return {
|
|
2059
|
+
'info': depositAddress,
|
|
1784
2060
|
'currency': parsedCurrency,
|
|
2061
|
+
'network': None,
|
|
1785
2062
|
'address': self.safe_string(depositAddress, 'address'),
|
|
1786
2063
|
'tag': self.safe_string(depositAddress, 'addressTag'),
|
|
1787
|
-
'network': None,
|
|
1788
|
-
'info': depositAddress,
|
|
1789
2064
|
}
|
|
1790
2065
|
|
|
1791
2066
|
def url_encode_query(self, query={}):
|