ccxt-ir 4.3.46.0.2__py2.py3-none-any.whl → 4.5.0__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. ccxt/__init__.py +39 -35
  2. ccxt/abantether.py +9 -9
  3. ccxt/abstract/alpaca.py +4 -0
  4. ccxt/abstract/apex.py +31 -0
  5. ccxt/abstract/bigone.py +1 -1
  6. ccxt/abstract/binance.py +106 -48
  7. ccxt/abstract/binancecoinm.py +106 -48
  8. ccxt/abstract/binanceus.py +141 -83
  9. ccxt/abstract/binanceusdm.py +106 -48
  10. ccxt/abstract/bingx.py +50 -1
  11. ccxt/abstract/bitbank.py +5 -0
  12. ccxt/abstract/bitfinex.py +136 -65
  13. ccxt/abstract/bitflyer.py +1 -0
  14. ccxt/abstract/bitget.py +67 -0
  15. ccxt/abstract/bitmart.py +19 -1
  16. ccxt/abstract/bitopro.py +1 -0
  17. ccxt/abstract/bitrue.py +68 -68
  18. ccxt/abstract/bitstamp.py +1 -0
  19. ccxt/abstract/blofin.py +30 -0
  20. ccxt/abstract/btcbox.py +2 -0
  21. ccxt/abstract/bybit.py +28 -13
  22. ccxt/abstract/cex.py +28 -29
  23. ccxt/abstract/coinbaseexchange.py +1 -0
  24. ccxt/abstract/coinbaseinternational.py +1 -1
  25. ccxt/abstract/cryptocom.py +16 -0
  26. ccxt/abstract/cryptomus.py +20 -0
  27. ccxt/abstract/defx.py +69 -0
  28. ccxt/abstract/deribit.py +1 -0
  29. ccxt/abstract/derive.py +117 -0
  30. ccxt/abstract/digifinex.py +1 -0
  31. ccxt/abstract/ellipx.py +25 -0
  32. ccxt/abstract/foxbit.py +26 -0
  33. ccxt/abstract/gate.py +19 -0
  34. ccxt/abstract/gateio.py +19 -0
  35. ccxt/abstract/gemini.py +1 -0
  36. ccxt/abstract/hibachi.py +26 -0
  37. ccxt/abstract/hyperliquid.py +1 -1
  38. ccxt/abstract/independentreserve.py +6 -0
  39. ccxt/abstract/kraken.py +1 -0
  40. ccxt/abstract/krakenfutures.py +4 -0
  41. ccxt/abstract/kucoin.py +10 -0
  42. ccxt/abstract/kucoinfutures.py +18 -0
  43. ccxt/abstract/lbank.py +2 -1
  44. ccxt/abstract/luno.py +1 -0
  45. ccxt/abstract/mexc.py +2 -0
  46. ccxt/abstract/modetrade.py +119 -0
  47. ccxt/abstract/myokx.py +349 -0
  48. ccxt/abstract/oceanex.py +5 -0
  49. ccxt/abstract/okx.py +25 -0
  50. ccxt/abstract/okxus.py +349 -0
  51. ccxt/abstract/onetrading.py +0 -12
  52. ccxt/abstract/paradex.py +23 -0
  53. ccxt/abstract/phemex.py +2 -0
  54. ccxt/abstract/poloniex.py +36 -0
  55. ccxt/abstract/tradeogre.py +3 -1
  56. ccxt/abstract/upbit.py +51 -34
  57. ccxt/abstract/whitebit.py +16 -0
  58. ccxt/abstract/woo.py +64 -6
  59. ccxt/abstract/xt.py +10 -5
  60. ccxt/afratether.py +7 -7
  61. ccxt/alpaca.py +828 -51
  62. ccxt/apex.py +1875 -0
  63. ccxt/arzinja.py +7 -7
  64. ccxt/arzplus.py +9 -9
  65. ccxt/ascendex.py +501 -306
  66. ccxt/async_support/__init__.py +39 -35
  67. ccxt/async_support/abantether.py +10 -10
  68. ccxt/async_support/afratether.py +9 -9
  69. ccxt/async_support/alpaca.py +828 -51
  70. ccxt/async_support/apex.py +1875 -0
  71. ccxt/async_support/arzinja.py +10 -10
  72. ccxt/async_support/arzplus.py +12 -12
  73. ccxt/async_support/ascendex.py +502 -306
  74. ccxt/async_support/base/exchange.py +303 -89
  75. ccxt/async_support/base/ws/cache.py +9 -3
  76. ccxt/async_support/base/ws/client.py +173 -38
  77. ccxt/async_support/base/ws/future.py +25 -37
  78. ccxt/async_support/bequant.py +5 -3
  79. ccxt/async_support/bigone.py +279 -144
  80. ccxt/async_support/binance.py +2347 -1158
  81. ccxt/async_support/binancecoinm.py +9 -3
  82. ccxt/async_support/binanceus.py +17 -3
  83. ccxt/async_support/binanceusdm.py +9 -4
  84. ccxt/async_support/bingx.py +2962 -920
  85. ccxt/async_support/bit2c.py +147 -27
  86. ccxt/async_support/bitbank.py +151 -23
  87. ccxt/async_support/bitbns.py +104 -30
  88. ccxt/async_support/bitfinex.py +3291 -1113
  89. ccxt/async_support/bitflyer.py +202 -27
  90. ccxt/async_support/bitget.py +3683 -1538
  91. ccxt/async_support/bithumb.py +195 -38
  92. ccxt/async_support/bitimen.py +12 -12
  93. ccxt/async_support/bitir.py +38 -38
  94. ccxt/async_support/bitmart.py +1288 -350
  95. ccxt/async_support/bitmex.py +260 -75
  96. ccxt/async_support/bitopro.py +262 -62
  97. ccxt/async_support/bitpin.py +17 -16
  98. ccxt/async_support/bitrue.py +459 -290
  99. ccxt/async_support/bitso.py +199 -54
  100. ccxt/async_support/bitstamp.py +230 -96
  101. ccxt/async_support/bitteam.py +167 -25
  102. ccxt/async_support/{huobijp.py → bittrade.py} +158 -30
  103. ccxt/async_support/bitvavo.py +213 -49
  104. ccxt/async_support/blockchaincom.py +160 -46
  105. ccxt/async_support/blofin.py +502 -120
  106. ccxt/async_support/btcalpha.py +169 -31
  107. ccxt/async_support/btcbox.py +292 -23
  108. ccxt/async_support/btcmarkets.py +211 -58
  109. ccxt/async_support/btcturk.py +161 -38
  110. ccxt/async_support/bybit.py +1775 -1030
  111. ccxt/async_support/cex.py +1440 -1303
  112. ccxt/async_support/coinbase.py +724 -212
  113. ccxt/async_support/coinbaseadvanced.py +2 -1
  114. ccxt/async_support/coinbaseexchange.py +388 -89
  115. ccxt/async_support/coinbaseinternational.py +412 -57
  116. ccxt/async_support/coincatch.py +177 -78
  117. ccxt/async_support/coincheck.py +135 -19
  118. ccxt/async_support/coinex.py +606 -232
  119. ccxt/async_support/coinmate.py +189 -63
  120. ccxt/async_support/coinmetro.py +195 -54
  121. ccxt/async_support/coinone.py +158 -51
  122. ccxt/async_support/coinsph.py +336 -61
  123. ccxt/async_support/coinspot.py +151 -52
  124. ccxt/async_support/cryptocom.py +661 -111
  125. ccxt/async_support/cryptomus.py +1137 -0
  126. ccxt/async_support/defx.py +2071 -0
  127. ccxt/async_support/delta.py +299 -99
  128. ccxt/async_support/deribit.py +348 -126
  129. ccxt/async_support/derive.py +2572 -0
  130. ccxt/async_support/digifinex.py +430 -214
  131. ccxt/async_support/ellipx.py +2029 -0
  132. ccxt/async_support/eterex.py +10 -10
  133. ccxt/async_support/excoino.py +31 -31
  134. ccxt/async_support/exir.py +14 -14
  135. ccxt/async_support/exmo.py +344 -131
  136. ccxt/async_support/exnovin.py +10 -10
  137. ccxt/async_support/farhadexchange.py +12 -12
  138. ccxt/async_support/fmfwio.py +2 -1
  139. ccxt/async_support/foxbit.py +1935 -0
  140. ccxt/async_support/gate.py +1351 -529
  141. ccxt/async_support/gateio.py +2 -1
  142. ccxt/async_support/gemini.py +144 -39
  143. ccxt/async_support/hashkey.py +152 -109
  144. ccxt/async_support/hibachi.py +2080 -0
  145. ccxt/async_support/hitbtc.py +395 -167
  146. ccxt/async_support/hitobit.py +12 -12
  147. ccxt/async_support/hollaex.py +307 -119
  148. ccxt/async_support/htx.py +851 -383
  149. ccxt/async_support/huobi.py +2 -1
  150. ccxt/async_support/hyperliquid.py +1848 -536
  151. ccxt/async_support/independentreserve.py +288 -15
  152. ccxt/async_support/indodax.py +190 -33
  153. ccxt/async_support/jibitex.py +12 -12
  154. ccxt/async_support/kraken.py +795 -351
  155. ccxt/async_support/krakenfutures.py +214 -62
  156. ccxt/async_support/kucoin.py +715 -396
  157. ccxt/async_support/kucoinfutures.py +652 -89
  158. ccxt/async_support/latoken.py +217 -113
  159. ccxt/async_support/lbank.py +425 -97
  160. ccxt/async_support/luno.py +382 -35
  161. ccxt/async_support/mercado.py +113 -6
  162. ccxt/async_support/mexc.py +874 -437
  163. ccxt/async_support/modetrade.py +2818 -0
  164. ccxt/async_support/myokx.py +54 -0
  165. ccxt/async_support/ndax.py +221 -64
  166. ccxt/async_support/nobitex.py +31 -37
  167. ccxt/async_support/novadax.py +190 -34
  168. ccxt/async_support/oceanex.py +217 -28
  169. ccxt/async_support/okcoin.py +253 -145
  170. ccxt/async_support/okexchange.py +11 -11
  171. ccxt/async_support/okx.py +1088 -351
  172. ccxt/async_support/okxus.py +54 -0
  173. ccxt/async_support/ompfinex.py +25 -24
  174. ccxt/async_support/onetrading.py +213 -392
  175. ccxt/async_support/oxfun.py +245 -166
  176. ccxt/async_support/p2b.py +151 -29
  177. ccxt/async_support/paradex.py +562 -49
  178. ccxt/async_support/paymium.py +82 -19
  179. ccxt/async_support/phemex.py +713 -172
  180. ccxt/async_support/poloniex.py +1602 -283
  181. ccxt/async_support/probit.py +224 -95
  182. ccxt/async_support/ramzinex.py +30 -27
  183. ccxt/async_support/sarmayex.py +9 -9
  184. ccxt/async_support/sarrafex.py +13 -13
  185. ccxt/async_support/tabdeal.py +14 -13
  186. ccxt/async_support/tetherland.py +9 -9
  187. ccxt/async_support/timex.py +210 -51
  188. ccxt/async_support/tokocrypto.py +167 -47
  189. ccxt/async_support/tradeogre.py +266 -31
  190. ccxt/async_support/twox.py +9 -9
  191. ccxt/async_support/ubitex.py +12 -12
  192. ccxt/async_support/upbit.py +568 -165
  193. ccxt/async_support/vertex.py +160 -32
  194. ccxt/async_support/wallex.py +12 -12
  195. ccxt/async_support/wavesexchange.py +165 -30
  196. ccxt/async_support/whitebit.py +975 -127
  197. ccxt/async_support/woo.py +1918 -1016
  198. ccxt/async_support/woofipro.py +433 -141
  199. ccxt/async_support/xt.py +649 -193
  200. ccxt/async_support/yobit.py +195 -70
  201. ccxt/async_support/zaif.py +91 -15
  202. ccxt/async_support/zonda.py +151 -36
  203. ccxt/base/decimal_to_precision.py +14 -10
  204. ccxt/base/errors.py +49 -18
  205. ccxt/base/exchange.py +1556 -450
  206. ccxt/base/precise.py +10 -0
  207. ccxt/base/types.py +114 -6
  208. ccxt/bequant.py +5 -3
  209. ccxt/bigone.py +279 -144
  210. ccxt/binance.py +2347 -1158
  211. ccxt/binancecoinm.py +9 -3
  212. ccxt/binanceus.py +17 -3
  213. ccxt/binanceusdm.py +9 -4
  214. ccxt/bingx.py +2962 -920
  215. ccxt/bit2c.py +147 -27
  216. ccxt/bitbank.py +151 -23
  217. ccxt/bitbns.py +104 -30
  218. ccxt/bitfinex.py +3290 -1113
  219. ccxt/bitflyer.py +202 -27
  220. ccxt/bitget.py +3683 -1538
  221. ccxt/bithumb.py +194 -38
  222. ccxt/bitimen.py +9 -9
  223. ccxt/bitir.py +35 -35
  224. ccxt/bitmart.py +1288 -350
  225. ccxt/bitmex.py +260 -75
  226. ccxt/bitopro.py +262 -62
  227. ccxt/bitpin.py +15 -14
  228. ccxt/bitrue.py +459 -290
  229. ccxt/bitso.py +199 -54
  230. ccxt/bitstamp.py +230 -96
  231. ccxt/bitteam.py +167 -25
  232. ccxt/{huobijp.py → bittrade.py} +158 -30
  233. ccxt/bitvavo.py +213 -49
  234. ccxt/blockchaincom.py +160 -46
  235. ccxt/blofin.py +502 -120
  236. ccxt/btcalpha.py +169 -31
  237. ccxt/btcbox.py +291 -23
  238. ccxt/btcmarkets.py +211 -58
  239. ccxt/btcturk.py +161 -38
  240. ccxt/bybit.py +1775 -1030
  241. ccxt/cex.py +1439 -1303
  242. ccxt/coinbase.py +724 -212
  243. ccxt/coinbaseadvanced.py +2 -1
  244. ccxt/coinbaseexchange.py +388 -89
  245. ccxt/coinbaseinternational.py +412 -57
  246. ccxt/coincatch.py +177 -78
  247. ccxt/coincheck.py +135 -19
  248. ccxt/coinex.py +606 -232
  249. ccxt/coinmate.py +189 -63
  250. ccxt/coinmetro.py +194 -54
  251. ccxt/coinone.py +158 -51
  252. ccxt/coinsph.py +336 -61
  253. ccxt/coinspot.py +151 -52
  254. ccxt/cryptocom.py +661 -111
  255. ccxt/cryptomus.py +1137 -0
  256. ccxt/defx.py +2070 -0
  257. ccxt/delta.py +299 -99
  258. ccxt/deribit.py +348 -126
  259. ccxt/derive.py +2571 -0
  260. ccxt/digifinex.py +430 -214
  261. ccxt/ellipx.py +2029 -0
  262. ccxt/eterex.py +7 -7
  263. ccxt/excoino.py +29 -29
  264. ccxt/exir.py +11 -11
  265. ccxt/exmo.py +343 -131
  266. ccxt/exnovin.py +8 -8
  267. ccxt/farhadexchange.py +10 -10
  268. ccxt/fmfwio.py +2 -1
  269. ccxt/foxbit.py +1935 -0
  270. ccxt/gate.py +1351 -529
  271. ccxt/gateio.py +2 -1
  272. ccxt/gemini.py +144 -39
  273. ccxt/hashkey.py +152 -109
  274. ccxt/hibachi.py +2079 -0
  275. ccxt/hitbtc.py +395 -167
  276. ccxt/hitobit.py +9 -9
  277. ccxt/hollaex.py +307 -119
  278. ccxt/htx.py +851 -383
  279. ccxt/huobi.py +2 -1
  280. ccxt/hyperliquid.py +1848 -536
  281. ccxt/independentreserve.py +287 -15
  282. ccxt/indodax.py +190 -33
  283. ccxt/jibitex.py +9 -9
  284. ccxt/kraken.py +794 -351
  285. ccxt/krakenfutures.py +214 -62
  286. ccxt/kucoin.py +715 -396
  287. ccxt/kucoinfutures.py +652 -89
  288. ccxt/latoken.py +217 -113
  289. ccxt/lbank.py +425 -97
  290. ccxt/luno.py +382 -35
  291. ccxt/mercado.py +113 -6
  292. ccxt/mexc.py +873 -437
  293. ccxt/modetrade.py +2818 -0
  294. ccxt/myokx.py +54 -0
  295. ccxt/ndax.py +221 -64
  296. ccxt/nobitex.py +29 -35
  297. ccxt/novadax.py +190 -34
  298. ccxt/oceanex.py +217 -28
  299. ccxt/okcoin.py +253 -145
  300. ccxt/okexchange.py +9 -9
  301. ccxt/okx.py +1088 -351
  302. ccxt/okxus.py +54 -0
  303. ccxt/ompfinex.py +22 -21
  304. ccxt/onetrading.py +213 -392
  305. ccxt/oxfun.py +245 -166
  306. ccxt/p2b.py +151 -29
  307. ccxt/paradex.py +562 -49
  308. ccxt/paymium.py +82 -19
  309. ccxt/phemex.py +712 -172
  310. ccxt/poloniex.py +1601 -283
  311. ccxt/pro/__init__.py +76 -17
  312. ccxt/pro/alpaca.py +21 -6
  313. ccxt/pro/apex.py +984 -0
  314. ccxt/pro/ascendex.py +58 -10
  315. ccxt/pro/bequant.py +6 -1
  316. ccxt/pro/binance.py +728 -156
  317. ccxt/pro/binancecoinm.py +6 -2
  318. ccxt/pro/binanceus.py +8 -4
  319. ccxt/pro/binanceusdm.py +7 -2
  320. ccxt/pro/bingx.py +333 -142
  321. ccxt/pro/bitfinex.py +727 -262
  322. ccxt/pro/bitget.py +570 -79
  323. ccxt/pro/bithumb.py +20 -6
  324. ccxt/pro/bitmart.py +216 -87
  325. ccxt/pro/bitmex.py +47 -9
  326. ccxt/pro/bitopro.py +26 -14
  327. ccxt/pro/bitrue.py +22 -22
  328. ccxt/pro/bitstamp.py +54 -21
  329. ccxt/pro/{huobijp.py → bittrade.py} +7 -6
  330. ccxt/pro/bitvavo.py +191 -67
  331. ccxt/pro/blockchaincom.py +21 -8
  332. ccxt/pro/blofin.py +9 -1
  333. ccxt/pro/bybit.py +632 -245
  334. ccxt/pro/cex.py +59 -24
  335. ccxt/pro/coinbase.py +102 -73
  336. ccxt/pro/coinbaseadvanced.py +2 -1
  337. ccxt/pro/coinbaseexchange.py +8 -8
  338. ccxt/pro/coinbaseinternational.py +181 -25
  339. ccxt/pro/coincatch.py +6 -7
  340. ccxt/pro/coincheck.py +11 -6
  341. ccxt/pro/coinex.py +967 -665
  342. ccxt/pro/coinone.py +16 -9
  343. ccxt/pro/cryptocom.py +448 -45
  344. ccxt/pro/defx.py +831 -0
  345. ccxt/pro/deribit.py +150 -14
  346. ccxt/pro/derive.py +704 -0
  347. ccxt/pro/exmo.py +239 -6
  348. ccxt/pro/gate.py +623 -65
  349. ccxt/pro/gateio.py +2 -1
  350. ccxt/pro/gemini.py +27 -11
  351. ccxt/pro/hashkey.py +2 -2
  352. ccxt/pro/hitbtc.py +196 -91
  353. ccxt/pro/hollaex.py +23 -7
  354. ccxt/pro/htx.py +51 -14
  355. ccxt/pro/huobi.py +2 -1
  356. ccxt/pro/hyperliquid.py +591 -27
  357. ccxt/pro/independentreserve.py +9 -6
  358. ccxt/pro/kraken.py +640 -320
  359. ccxt/pro/krakenfutures.py +62 -35
  360. ccxt/pro/kucoin.py +267 -46
  361. ccxt/pro/kucoinfutures.py +165 -21
  362. ccxt/pro/lbank.py +102 -21
  363. ccxt/pro/luno.py +12 -8
  364. ccxt/pro/mexc.py +877 -111
  365. ccxt/pro/modetrade.py +1271 -0
  366. ccxt/pro/myokx.py +38 -0
  367. ccxt/pro/ndax.py +15 -2
  368. ccxt/pro/okcoin.py +23 -4
  369. ccxt/pro/okx.py +573 -98
  370. ccxt/pro/okxus.py +38 -0
  371. ccxt/pro/onetrading.py +30 -13
  372. ccxt/pro/oxfun.py +131 -27
  373. ccxt/pro/p2b.py +88 -22
  374. ccxt/pro/paradex.py +3 -3
  375. ccxt/pro/phemex.py +75 -21
  376. ccxt/pro/poloniex.py +124 -41
  377. ccxt/pro/probit.py +87 -80
  378. ccxt/pro/tradeogre.py +272 -0
  379. ccxt/pro/upbit.py +152 -12
  380. ccxt/pro/vertex.py +8 -3
  381. ccxt/pro/whitebit.py +58 -5
  382. ccxt/pro/woo.py +228 -37
  383. ccxt/pro/woofipro.py +106 -18
  384. ccxt/pro/xt.py +111 -5
  385. ccxt/probit.py +224 -95
  386. ccxt/protobuf/__init__.py +0 -0
  387. ccxt/protobuf/mexc/PrivateAccountV3Api_pb2.py +37 -0
  388. ccxt/protobuf/mexc/PrivateDealsV3Api_pb2.py +37 -0
  389. ccxt/protobuf/mexc/PrivateOrdersV3Api_pb2.py +37 -0
  390. ccxt/protobuf/mexc/PublicAggreBookTickerV3Api_pb2.py +37 -0
  391. ccxt/protobuf/mexc/PublicAggreDealsV3Api_pb2.py +39 -0
  392. ccxt/protobuf/mexc/PublicAggreDepthsV3Api_pb2.py +39 -0
  393. ccxt/protobuf/mexc/PublicBookTickerBatchV3Api_pb2.py +38 -0
  394. ccxt/protobuf/mexc/PublicBookTickerV3Api_pb2.py +37 -0
  395. ccxt/protobuf/mexc/PublicDealsV3Api_pb2.py +39 -0
  396. ccxt/protobuf/mexc/PublicIncreaseDepthsBatchV3Api_pb2.py +38 -0
  397. ccxt/protobuf/mexc/PublicIncreaseDepthsV3Api_pb2.py +39 -0
  398. ccxt/protobuf/mexc/PublicLimitDepthsV3Api_pb2.py +39 -0
  399. ccxt/protobuf/mexc/PublicMiniTickerV3Api_pb2.py +37 -0
  400. ccxt/protobuf/mexc/PublicMiniTickersV3Api_pb2.py +38 -0
  401. ccxt/protobuf/mexc/PublicSpotKlineV3Api_pb2.py +37 -0
  402. ccxt/protobuf/mexc/PushDataV3ApiWrapper_pb2.py +52 -0
  403. ccxt/protobuf/mexc/__init__.py +0 -0
  404. ccxt/ramzinex.py +28 -25
  405. ccxt/sarmayex.py +7 -7
  406. ccxt/sarrafex.py +10 -10
  407. ccxt/static_dependencies/__init__.py +1 -1
  408. ccxt/static_dependencies/lark/py.typed +0 -0
  409. ccxt/static_dependencies/marshmallow/py.typed +0 -0
  410. ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  411. ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  412. ccxt/tabdeal.py +12 -11
  413. ccxt/test/tests_async.py +261 -57
  414. ccxt/test/tests_helpers.py +1 -3
  415. ccxt/test/tests_init.py +4 -3
  416. ccxt/test/tests_sync.py +261 -57
  417. ccxt/tetherland.py +7 -7
  418. ccxt/timex.py +210 -51
  419. ccxt/tokocrypto.py +167 -47
  420. ccxt/tradeogre.py +266 -31
  421. ccxt/twox.py +7 -7
  422. ccxt/ubitex.py +9 -9
  423. ccxt/upbit.py +568 -165
  424. ccxt/vertex.py +160 -32
  425. ccxt/wallex.py +9 -9
  426. ccxt/wavesexchange.py +165 -30
  427. ccxt/whitebit.py +975 -127
  428. ccxt/woo.py +1917 -1016
  429. ccxt/woofipro.py +432 -141
  430. ccxt/xt.py +649 -193
  431. ccxt/yobit.py +194 -70
  432. ccxt/zaif.py +91 -15
  433. ccxt/zonda.py +151 -36
  434. {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info}/METADATA +225 -73
  435. ccxt_ir-4.5.0.dist-info/RECORD +743 -0
  436. {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info}/WHEEL +1 -1
  437. ccxt/abstract/ace.py +0 -15
  438. ccxt/abstract/bitbay.py +0 -53
  439. ccxt/abstract/bitcoincom.py +0 -115
  440. ccxt/abstract/bitfinex2.py +0 -139
  441. ccxt/abstract/bitpanda.py +0 -35
  442. ccxt/abstract/bl3p.py +0 -19
  443. ccxt/abstract/coinlist.py +0 -54
  444. ccxt/abstract/currencycom.py +0 -68
  445. ccxt/abstract/hitbtc3.py +0 -115
  446. ccxt/abstract/idex.py +0 -26
  447. ccxt/abstract/kuna.py +0 -182
  448. ccxt/abstract/lykke.py +0 -29
  449. ccxt/abstract/poloniexfutures.py +0 -48
  450. ccxt/abstract/wazirx.py +0 -30
  451. ccxt/ace.py +0 -1012
  452. ccxt/async_support/ace.py +0 -1012
  453. ccxt/async_support/base/ws/aiohttp_client.py +0 -125
  454. ccxt/async_support/base/ws/fast_client.py +0 -96
  455. ccxt/async_support/bitbay.py +0 -17
  456. ccxt/async_support/bitcoincom.py +0 -17
  457. ccxt/async_support/bitfinex2.py +0 -3552
  458. ccxt/async_support/bitpanda.py +0 -16
  459. ccxt/async_support/bl3p.py +0 -485
  460. ccxt/async_support/coinlist.py +0 -2243
  461. ccxt/async_support/currencycom.py +0 -1950
  462. ccxt/async_support/hitbtc3.py +0 -16
  463. ccxt/async_support/idex.py +0 -1766
  464. ccxt/async_support/kuna.py +0 -1841
  465. ccxt/async_support/lykke.py +0 -1270
  466. ccxt/async_support/poloniexfutures.py +0 -1717
  467. ccxt/async_support/wazirx.py +0 -1224
  468. ccxt/bitbay.py +0 -17
  469. ccxt/bitcoincom.py +0 -17
  470. ccxt/bitfinex2.py +0 -3552
  471. ccxt/bitpanda.py +0 -16
  472. ccxt/bl3p.py +0 -485
  473. ccxt/coinlist.py +0 -2243
  474. ccxt/currencycom.py +0 -1950
  475. ccxt/hitbtc3.py +0 -16
  476. ccxt/idex.py +0 -1766
  477. ccxt/kuna.py +0 -1841
  478. ccxt/lykke.py +0 -1270
  479. ccxt/poloniexfutures.py +0 -1717
  480. ccxt/pro/bitcoincom.py +0 -34
  481. ccxt/pro/bitfinex2.py +0 -1083
  482. ccxt/pro/bitpanda.py +0 -15
  483. ccxt/pro/currencycom.py +0 -536
  484. ccxt/pro/idex.py +0 -672
  485. ccxt/pro/poloniexfutures.py +0 -990
  486. ccxt/pro/wazirx.py +0 -749
  487. ccxt/test/base/__init__.py +0 -29
  488. ccxt/test/base/test_account.py +0 -26
  489. ccxt/test/base/test_balance.py +0 -56
  490. ccxt/test/base/test_borrow_interest.py +0 -35
  491. ccxt/test/base/test_borrow_rate.py +0 -32
  492. ccxt/test/base/test_calculate_fee.py +0 -51
  493. ccxt/test/base/test_crypto.py +0 -127
  494. ccxt/test/base/test_currency.py +0 -76
  495. ccxt/test/base/test_datetime.py +0 -109
  496. ccxt/test/base/test_decimal_to_precision.py +0 -392
  497. ccxt/test/base/test_deep_extend.py +0 -68
  498. ccxt/test/base/test_deposit_withdrawal.py +0 -50
  499. ccxt/test/base/test_exchange_datetime_functions.py +0 -76
  500. ccxt/test/base/test_funding_rate_history.py +0 -29
  501. ccxt/test/base/test_last_price.py +0 -31
  502. ccxt/test/base/test_ledger_entry.py +0 -45
  503. ccxt/test/base/test_ledger_item.py +0 -48
  504. ccxt/test/base/test_leverage_tier.py +0 -33
  505. ccxt/test/base/test_liquidation.py +0 -50
  506. ccxt/test/base/test_margin_mode.py +0 -24
  507. ccxt/test/base/test_margin_modification.py +0 -35
  508. ccxt/test/base/test_market.py +0 -193
  509. ccxt/test/base/test_number.py +0 -411
  510. ccxt/test/base/test_ohlcv.py +0 -33
  511. ccxt/test/base/test_open_interest.py +0 -32
  512. ccxt/test/base/test_order.py +0 -64
  513. ccxt/test/base/test_order_book.py +0 -69
  514. ccxt/test/base/test_position.py +0 -60
  515. ccxt/test/base/test_shared_methods.py +0 -353
  516. ccxt/test/base/test_status.py +0 -24
  517. ccxt/test/base/test_throttle.py +0 -126
  518. ccxt/test/base/test_ticker.py +0 -92
  519. ccxt/test/base/test_trade.py +0 -47
  520. ccxt/test/base/test_trading_fee.py +0 -26
  521. ccxt/test/base/test_transaction.py +0 -39
  522. ccxt/test/test_async.py +0 -1649
  523. ccxt/test/test_sync.py +0 -1648
  524. ccxt/wazirx.py +0 -1224
  525. ccxt_ir-4.3.46.0.2.dist-info/RECORD +0 -772
  526. /ccxt/abstract/{huobijp.py → bittrade.py} +0 -0
  527. {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info/licenses}/LICENSE.txt +0 -0
  528. {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info}/top_level.txt +0 -0
ccxt/vertex.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.vertex import ImplicitAPI
8
- from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFees, Transaction
8
+ from ccxt.base.types import Any, Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFees, Transaction
9
9
  from typing import List
10
10
  from ccxt.base.errors import ExchangeError
11
11
  from ccxt.base.errors import AuthenticationError
@@ -22,7 +22,7 @@ from ccxt.base.precise import Precise
22
22
 
23
23
  class vertex(Exchange, ImplicitAPI):
24
24
 
25
- def describe(self):
25
+ def describe(self) -> Any:
26
26
  return self.deep_extend(super(vertex, self).describe(), {
27
27
  'id': 'vertex',
28
28
  'name': 'Vertex',
@@ -55,6 +55,8 @@ class vertex(Exchange, ImplicitAPI):
55
55
  'createOrder': True,
56
56
  'createOrders': True,
57
57
  'createReduceOnlyOrder': True,
58
+ 'createStopOrder': True,
59
+ 'createTriggerOrder': True,
58
60
  'editOrder': False,
59
61
  'fetchAccounts': False,
60
62
  'fetchBalance': True,
@@ -91,6 +93,7 @@ class vertex(Exchange, ImplicitAPI):
91
93
  'fetchOHLCV': True,
92
94
  'fetchOpenInterest': True,
93
95
  'fetchOpenInterestHistory': False,
96
+ 'fetchOpenInterests': True,
94
97
  'fetchOpenOrders': True,
95
98
  'fetchOrder': True,
96
99
  'fetchOrderBook': True,
@@ -327,6 +330,72 @@ class vertex(Exchange, ImplicitAPI):
327
330
  'timeDifference': 0, # the difference between system clock and exchange server clock
328
331
  'brokerId': 5930043274845996,
329
332
  },
333
+ 'features': {
334
+ 'default': {
335
+ 'sandbox': True,
336
+ 'createOrder': {
337
+ 'marginMode': False,
338
+ 'triggerPrice': True, # todo
339
+ 'triggerDirection': False,
340
+ 'triggerPriceType': None,
341
+ 'stopLossPrice': True, # todo
342
+ 'takeProfitPrice': True, # todo
343
+ 'attachedStopLossTakeProfit': None,
344
+ 'timeInForce': {
345
+ 'IOC': False,
346
+ 'FOK': False,
347
+ 'PO': True,
348
+ 'GTD': True,
349
+ },
350
+ 'hedged': False,
351
+ 'trailing': False,
352
+ 'leverage': False,
353
+ 'marketBuyByCost': True, # todo
354
+ 'marketBuyRequiresPrice': True, # todo fix implementation
355
+ 'selfTradePrevention': False,
356
+ 'iceberg': False,
357
+ },
358
+ 'createOrders': None,
359
+ 'fetchMyTrades': {
360
+ 'marginMode': False,
361
+ 'limit': 500,
362
+ 'daysBack': 100000, # todo
363
+ 'untilDays': None,
364
+ 'symbolRequired': False,
365
+ },
366
+ 'fetchOrder': {
367
+ 'marginMode': False,
368
+ 'trigger': False,
369
+ 'trailing': False,
370
+ 'symbolRequired': True,
371
+ },
372
+ 'fetchOpenOrders': {
373
+ 'marginMode': False,
374
+ 'limit': 500,
375
+ 'trigger': True,
376
+ 'trailing': False,
377
+ 'symbolRequired': False,
378
+ },
379
+ 'fetchOrders': None, # todo, only for trigger
380
+ 'fetchClosedOrders': None, # todo through fetchOrders
381
+ 'fetchOHLCV': {
382
+ 'limit': 1000,
383
+ },
384
+ },
385
+ 'spot': {
386
+ 'extends': 'default',
387
+ },
388
+ 'swap': {
389
+ 'linear': {
390
+ 'extends': 'default',
391
+ },
392
+ 'inverse': None,
393
+ },
394
+ 'future': {
395
+ 'linear': None,
396
+ 'inverse': None,
397
+ },
398
+ },
330
399
  })
331
400
 
332
401
  def set_sandbox_mode(self, enabled):
@@ -388,11 +457,10 @@ class vertex(Exchange, ImplicitAPI):
388
457
  tickerId = self.safe_string(data, 'ticker_id')
389
458
  if (tickerId is not None) and (tickerId.find('PERP') > 0):
390
459
  continue
391
- id = self.safe_string(data, 'product_id')
392
460
  name = self.safe_string(data, 'symbol')
393
461
  code = self.safe_currency_code(name)
394
- result[code] = {
395
- 'id': id,
462
+ result[code] = self.safe_currency_structure({
463
+ 'id': self.safe_string(data, 'product_id'),
396
464
  'name': name,
397
465
  'code': code,
398
466
  'precision': None,
@@ -412,7 +480,7 @@ class vertex(Exchange, ImplicitAPI):
412
480
  'max': None,
413
481
  },
414
482
  },
415
- }
483
+ })
416
484
  return result
417
485
 
418
486
  def parse_market(self, market) -> Market:
@@ -553,7 +621,7 @@ class vertex(Exchange, ImplicitAPI):
553
621
  result.append(self.parse_market(rawMarket))
554
622
  return result
555
623
 
556
- def fetch_time(self, params={}):
624
+ def fetch_time(self, params={}) -> Int:
557
625
  """
558
626
  fetches the current integer timestamp in milliseconds from the exchange server
559
627
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -561,7 +629,7 @@ class vertex(Exchange, ImplicitAPI):
561
629
  """
562
630
  response = self.v1GatewayGetTime(params)
563
631
  # 1717481623452
564
- return self.parse_number(response)
632
+ return self.parse_to_int(response)
565
633
 
566
634
  def fetch_status(self, params={}):
567
635
  """
@@ -1327,16 +1395,74 @@ class vertex(Exchange, ImplicitAPI):
1327
1395
  # }
1328
1396
  # }
1329
1397
  #
1330
- value = self.safe_number(interest, 'open_interest_usd')
1398
+ marketId = self.safe_string(interest, 'ticker_id')
1331
1399
  return self.safe_open_interest({
1332
- 'symbol': market['symbol'],
1333
- 'openInterestAmount': None,
1334
- 'openInterestValue': value,
1400
+ 'symbol': self.safe_symbol(marketId, market),
1401
+ 'openInterestAmount': self.safe_number(interest, 'open_interest'),
1402
+ 'openInterestValue': self.safe_number(interest, 'open_interest_usd'),
1335
1403
  'timestamp': None,
1336
1404
  'datetime': None,
1337
1405
  'info': interest,
1338
1406
  }, market)
1339
1407
 
1408
+ def fetch_open_interests(self, symbols: Strings = None, params={}):
1409
+ """
1410
+ Retrieves the open interest for a list of symbols
1411
+
1412
+ https://docs.vertexprotocol.com/developer-resources/api/v2/contracts
1413
+
1414
+ :param str[] [symbols]: a list of unified CCXT market symbols
1415
+ :param dict [params]: exchange specific parameters
1416
+ :returns dict[]: a list of `open interest structures <https://docs.ccxt.com/#/?id=open-interest-structure>`
1417
+ """
1418
+ self.load_markets()
1419
+ symbols = self.market_symbols(symbols)
1420
+ response = self.v2ArchiveGetContracts(params)
1421
+ #
1422
+ # {
1423
+ # "ADA-PERP_USDC": {
1424
+ # "ticker_id": "ADA-PERP_USDC",
1425
+ # "base_currency": "ADA-PERP",
1426
+ # "quote_currency": "USDC",
1427
+ # "last_price": 0.85506,
1428
+ # "base_volume": 1241320.0,
1429
+ # "quote_volume": 1122670.9080057142,
1430
+ # "product_type": "perpetual",
1431
+ # "contract_price": 0.8558601432685385,
1432
+ # "contract_price_currency": "USD",
1433
+ # "open_interest": 104040.0,
1434
+ # "open_interest_usd": 89043.68930565874,
1435
+ # "index_price": 0.8561952606869176,
1436
+ # "mark_price": 0.856293781088936,
1437
+ # "funding_rate": 0.000116153806226841,
1438
+ # "next_funding_rate_timestamp": 1734685200,
1439
+ # "price_change_percent_24h": -12.274325340321374
1440
+ # },
1441
+ # }
1442
+ #
1443
+ parsedSymbols = []
1444
+ results = []
1445
+ markets = list(response.keys())
1446
+ if symbols is None:
1447
+ symbols = []
1448
+ for y in range(0, len(markets)):
1449
+ tickerId = markets[y]
1450
+ parsedTickerId = tickerId.split('-')
1451
+ currentSymbol = parsedTickerId[0] + '/USDC:USDC'
1452
+ if not self.in_array(currentSymbol, symbols):
1453
+ symbols.append(currentSymbol)
1454
+ for i in range(0, len(markets)):
1455
+ marketId = markets[i]
1456
+ marketInner = self.safe_market(marketId)
1457
+ openInterest = self.safe_dict(response, marketId, {})
1458
+ for j in range(0, len(symbols)):
1459
+ market = self.market(symbols[j])
1460
+ tickerId = market['base'] + '_USDC'
1461
+ if marketInner['marketId'] == tickerId:
1462
+ parsedSymbols.append(market['symbol'])
1463
+ results.append(self.parse_open_interest(openInterest, market))
1464
+ return self.filter_by_array(results, 'symbol', parsedSymbols)
1465
+
1340
1466
  def fetch_open_interest(self, symbol: str, params={}):
1341
1467
  """
1342
1468
  Retrieves the open interest of a derivative trading pair
@@ -1396,7 +1522,7 @@ class vertex(Exchange, ImplicitAPI):
1396
1522
  marketId = base + '/' + quote
1397
1523
  if base.find('PERP') > 0:
1398
1524
  marketId = marketId.replace('-PERP', '') + ':USDC'
1399
- market = self.market(marketId)
1525
+ market = self.safe_market(marketId, market)
1400
1526
  last = self.safe_string(ticker, 'last_price')
1401
1527
  return self.safe_ticker({
1402
1528
  'symbol': market['symbol'],
@@ -1962,7 +2088,7 @@ class vertex(Exchange, ImplicitAPI):
1962
2088
  :param int [since]: the earliest time in ms to fetch open orders for
1963
2089
  :param int [limit]: the maximum number of open orders structures to retrieve
1964
2090
  :param dict [params]: extra parameters specific to the exchange API endpoint
1965
- :param boolean [params.stop]: whether the order is a stop/algo order
2091
+ :param boolean [params.trigger]: whether the order is a trigger/algo order
1966
2092
  :param str [params.user]: user address, will default to self.walletAddress if not provided
1967
2093
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1968
2094
  """
@@ -1972,13 +2098,13 @@ class vertex(Exchange, ImplicitAPI):
1972
2098
  userAddress, params = self.handle_public_address('fetchOpenOrders', params)
1973
2099
  request = {}
1974
2100
  market: Market = None
1975
- stop = self.safe_bool_2(params, 'stop', 'trigger')
2101
+ trigger = self.safe_bool_2(params, 'stop', 'trigger')
1976
2102
  params = self.omit(params, ['stop', 'trigger'])
1977
2103
  if symbol is not None:
1978
2104
  market = self.market(symbol)
1979
2105
  request['product_id'] = self.parse_to_numeric(market['id'])
1980
2106
  response = None
1981
- if stop:
2107
+ if trigger:
1982
2108
  contracts = self.query_contracts()
1983
2109
  chainId = self.safe_string(contracts, 'chain_id')
1984
2110
  verifyingContractAddress = self.safe_string(contracts, 'endpoint_addr')
@@ -2043,7 +2169,7 @@ class vertex(Exchange, ImplicitAPI):
2043
2169
  # "product_id": 1,
2044
2170
  # "orders": [
2045
2171
  # {
2046
- # "product_id": 1,
2172
+ # "product_id": 2,
2047
2173
  # "sender": "0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43000000000000000000000000",
2048
2174
  # "price_x18": "1000000000000000000",
2049
2175
  # "amount": "1000000000000000000",
@@ -2052,7 +2178,7 @@ class vertex(Exchange, ImplicitAPI):
2052
2178
  # "order_type": "default",
2053
2179
  # "unfilled_amount": "1000000000000000000",
2054
2180
  # "digest": "0x0000000000000000000000000000000000000000000000000000000000000000",
2055
- # "placed_at": 1682437739,
2181
+ # "placed_at": 1682437737,
2056
2182
  # "order_type": "ioc"
2057
2183
  # }
2058
2184
  # ]
@@ -2074,14 +2200,14 @@ class vertex(Exchange, ImplicitAPI):
2074
2200
  :param int [since]: the earliest time in ms to fetch open orders for
2075
2201
  :param int [limit]: the maximum number of open orders structures to retrieve
2076
2202
  :param dict [params]: extra parameters specific to the exchange API endpoint
2077
- :param boolean [params.stop]: whether the order is a stop/algo order
2203
+ :param boolean [params.trigger]: whether the order is a trigger/algo order
2078
2204
  :param str [params.user]: user address, will default to self.walletAddress if not provided
2079
2205
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
2080
2206
  """
2081
2207
  self.check_required_credentials()
2082
- stop = self.safe_bool_2(params, 'stop', 'trigger')
2208
+ trigger = self.safe_bool_2(params, 'stop', 'trigger')
2083
2209
  params = self.omit(params, ['stop', 'trigger'])
2084
- if not stop:
2210
+ if not trigger:
2085
2211
  raise NotSupported(self.id + ' fetchOrders only support trigger orders')
2086
2212
  userAddress = None
2087
2213
  userAddress, params = self.handle_public_address('fetchOrders', params)
@@ -2156,7 +2282,7 @@ class vertex(Exchange, ImplicitAPI):
2156
2282
  cancel all open orders in a market
2157
2283
  :param str symbol: unified market symbol
2158
2284
  :param dict [params]: extra parameters specific to the exchange API endpoint
2159
- :param boolean [params.stop]: whether the order is a stop/algo order
2285
+ :param boolean [params.trigger]: whether the order is a trigger/algo order
2160
2286
  :returns dict: an list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
2161
2287
  """
2162
2288
  self.check_required_credentials()
@@ -2187,10 +2313,10 @@ class vertex(Exchange, ImplicitAPI):
2187
2313
  'signature': self.build_cancel_all_orders_sig(cancels, chainId, verifyingContractAddress),
2188
2314
  },
2189
2315
  }
2190
- stop = self.safe_bool_2(params, 'stop', 'trigger')
2316
+ trigger = self.safe_bool_2(params, 'stop', 'trigger')
2191
2317
  params = self.omit(params, ['stop', 'trigger'])
2192
2318
  response = None
2193
- if stop:
2319
+ if trigger:
2194
2320
  response = self.v1TriggerPostExecute(self.extend(request, params))
2195
2321
  #
2196
2322
  # {
@@ -2225,7 +2351,7 @@ class vertex(Exchange, ImplicitAPI):
2225
2351
  # "request_type": "execute_cancel_product_orders"
2226
2352
  # }
2227
2353
  #
2228
- return response
2354
+ return [self.safe_order({'info': response})]
2229
2355
 
2230
2356
  def cancel_order(self, id: str, symbol: Str = None, params={}):
2231
2357
  """
@@ -2239,7 +2365,8 @@ class vertex(Exchange, ImplicitAPI):
2239
2365
  :param dict [params]: extra parameters specific to the exchange API endpoint
2240
2366
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
2241
2367
  """
2242
- return self.cancel_orders([id], symbol, params)
2368
+ order = self.cancel_orders([id], symbol, params)
2369
+ return self.safe_order({'info': order})
2243
2370
 
2244
2371
  def cancel_orders(self, ids: List[str], symbol: Str = None, params={}):
2245
2372
  """
@@ -2270,24 +2397,25 @@ class vertex(Exchange, ImplicitAPI):
2270
2397
  'digests': ids,
2271
2398
  'nonce': nonce,
2272
2399
  }
2400
+ productIds = cancels['productIds']
2273
2401
  marketIdNum = self.parse_to_numeric(marketId)
2274
2402
  for i in range(0, len(ids)):
2275
- cancels['productIds'].append(marketIdNum)
2403
+ productIds.append(marketIdNum)
2276
2404
  request = {
2277
2405
  'cancel_orders': {
2278
2406
  'tx': {
2279
2407
  'sender': cancels['sender'],
2280
- 'productIds': cancels['productIds'],
2408
+ 'productIds': productIds,
2281
2409
  'digests': cancels['digests'],
2282
2410
  'nonce': self.number_to_string(cancels['nonce']),
2283
2411
  },
2284
2412
  'signature': self.build_cancel_orders_sig(cancels, chainId, verifyingContractAddress),
2285
2413
  },
2286
2414
  }
2287
- stop = self.safe_bool_2(params, 'stop', 'trigger')
2415
+ trigger = self.safe_bool_2(params, 'stop', 'trigger')
2288
2416
  params = self.omit(params, ['stop', 'trigger'])
2289
2417
  response = None
2290
- if stop:
2418
+ if trigger:
2291
2419
  response = self.v1TriggerPostExecute(self.extend(request, params))
2292
2420
  #
2293
2421
  # {
@@ -2731,7 +2859,7 @@ class vertex(Exchange, ImplicitAPI):
2731
2859
  'takeProfitPrice': None,
2732
2860
  })
2733
2861
 
2734
- def fetch_positions(self, symbols: Strings = None, params={}):
2862
+ def fetch_positions(self, symbols: Strings = None, params={}) -> List[Position]:
2735
2863
  """
2736
2864
  fetch all open positions
2737
2865
 
@@ -2779,7 +2907,7 @@ class vertex(Exchange, ImplicitAPI):
2779
2907
  #
2780
2908
  return self.safe_dict(response, 'data', {})
2781
2909
 
2782
- def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
2910
+ def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
2783
2911
  """
2784
2912
  make a withdrawal
2785
2913
 
ccxt/wallex.py CHANGED
@@ -5,17 +5,17 @@
5
5
 
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.wallex import ImplicitAPI
8
- from ccxt.base.types import Int, Market, OrderBook, Strings, Ticker, Tickers
8
+ from ccxt.base.types import Any, Int, Market, OrderBook, Strings, Ticker, Tickers
9
9
  from typing import List
10
10
 
11
11
 
12
12
  class wallex(Exchange, ImplicitAPI):
13
13
 
14
- def describe(self):
14
+ def describe(self) -> Any:
15
15
  return self.deep_extend(super(wallex, self).describe(), {
16
16
  'id': 'wallex',
17
17
  'name': 'Wallex',
18
- 'country': ['IR'],
18
+ 'countries': ['IR'],
19
19
  'rateLimit': 1000,
20
20
  'version': '1',
21
21
  'certified': False,
@@ -125,10 +125,10 @@ class wallex(Exchange, ImplicitAPI):
125
125
  },
126
126
  })
127
127
 
128
- def fetch_markets(self, symbols: Strings = None, params={}) -> List[Market]:
128
+ def fetch_markets(self, params={}) -> List[Market]:
129
129
  """
130
130
  retrieves data on all markets for wallex
131
- :see: https://api-docs.wallex.ir/#be8d9c51a2
131
+ https://api-docs.wallex.ir/#be8d9c51a2
132
132
  :param dict [params]: extra parameters specific to the exchange API endpoint
133
133
  :returns dict[]: an array of objects representing market data
134
134
  """
@@ -251,7 +251,7 @@ class wallex(Exchange, ImplicitAPI):
251
251
  def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
252
252
  """
253
253
  fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
254
- :see: https://api-docs.wallex.ir/#be8d9c51a2
254
+ https://api-docs.wallex.ir/#be8d9c51a2
255
255
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
256
256
  :param dict [params]: extra parameters specific to the exchange API endpoint
257
257
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -274,7 +274,7 @@ class wallex(Exchange, ImplicitAPI):
274
274
  def fetch_ticker(self, symbol: str, params={}) -> Ticker:
275
275
  """
276
276
  fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
277
- :see: https://api-docs.wallex.ir/#be8d9c51a2
277
+ https://api-docs.wallex.ir/#be8d9c51a2
278
278
  :param str symbol: unified symbol of the market to fetch the ticker for
279
279
  :param dict [params]: extra parameters specific to the exchange API endpoint
280
280
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -372,7 +372,7 @@ class wallex(Exchange, ImplicitAPI):
372
372
  def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
373
373
  """
374
374
  fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
375
- :see: https://api-docs.wallex.ir/#be8d9c51a2
375
+ https://api-docs.wallex.ir/#be8d9c51a2
376
376
  :param str symbol: unified symbol of the market to fetch OHLCV data for
377
377
  :param str timeframe: the length of time each candle represents
378
378
  :param int [since]: timestamp in ms of the earliest candle to fetch
@@ -418,7 +418,7 @@ class wallex(Exchange, ImplicitAPI):
418
418
  def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
419
419
  """
420
420
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data for multiple markets
421
- :see: https://api-docs.wallex.ir/#be8d9c51a2
421
+ https://api-docs.wallex.ir/#be8d9c51a2
422
422
  :param str[]|None symbols: list of unified market symbols, all symbols fetched if None, default is None
423
423
  :param int [limit]: max number of entries per orderbook to return, default is None
424
424
  :param dict [params]: extra parameters specific to the exchange API endpoint