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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (529) hide show
  1. ccxt/__init__.py +39 -35
  2. ccxt/abantether.py +8 -8
  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 +8 -8
  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.3.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.3.dist-info → ccxt_ir-4.5.0.dist-info}/WHEEL +1 -1
  437. ccxt/__test__.py +0 -7
  438. ccxt/abstract/ace.py +0 -15
  439. ccxt/abstract/bitbay.py +0 -53
  440. ccxt/abstract/bitcoincom.py +0 -115
  441. ccxt/abstract/bitfinex2.py +0 -139
  442. ccxt/abstract/bitpanda.py +0 -35
  443. ccxt/abstract/bl3p.py +0 -19
  444. ccxt/abstract/coinlist.py +0 -54
  445. ccxt/abstract/currencycom.py +0 -68
  446. ccxt/abstract/hitbtc3.py +0 -115
  447. ccxt/abstract/idex.py +0 -26
  448. ccxt/abstract/kuna.py +0 -182
  449. ccxt/abstract/lykke.py +0 -29
  450. ccxt/abstract/poloniexfutures.py +0 -48
  451. ccxt/abstract/wazirx.py +0 -30
  452. ccxt/ace.py +0 -1012
  453. ccxt/async_support/ace.py +0 -1012
  454. ccxt/async_support/base/ws/aiohttp_client.py +0 -125
  455. ccxt/async_support/base/ws/fast_client.py +0 -96
  456. ccxt/async_support/bitbay.py +0 -17
  457. ccxt/async_support/bitcoincom.py +0 -17
  458. ccxt/async_support/bitfinex2.py +0 -3552
  459. ccxt/async_support/bitpanda.py +0 -16
  460. ccxt/async_support/bl3p.py +0 -485
  461. ccxt/async_support/coinlist.py +0 -2243
  462. ccxt/async_support/currencycom.py +0 -1950
  463. ccxt/async_support/hitbtc3.py +0 -16
  464. ccxt/async_support/idex.py +0 -1766
  465. ccxt/async_support/kuna.py +0 -1841
  466. ccxt/async_support/lykke.py +0 -1270
  467. ccxt/async_support/poloniexfutures.py +0 -1717
  468. ccxt/async_support/wazirx.py +0 -1224
  469. ccxt/bitbay.py +0 -17
  470. ccxt/bitcoincom.py +0 -17
  471. ccxt/bitfinex2.py +0 -3552
  472. ccxt/bitpanda.py +0 -16
  473. ccxt/bl3p.py +0 -485
  474. ccxt/coinlist.py +0 -2243
  475. ccxt/currencycom.py +0 -1950
  476. ccxt/hitbtc3.py +0 -16
  477. ccxt/idex.py +0 -1766
  478. ccxt/kuna.py +0 -1841
  479. ccxt/lykke.py +0 -1270
  480. ccxt/poloniexfutures.py +0 -1717
  481. ccxt/pro/bitcoincom.py +0 -34
  482. ccxt/pro/bitfinex2.py +0 -1083
  483. ccxt/pro/bitpanda.py +0 -15
  484. ccxt/pro/currencycom.py +0 -536
  485. ccxt/pro/idex.py +0 -672
  486. ccxt/pro/poloniexfutures.py +0 -990
  487. ccxt/pro/wazirx.py +0 -749
  488. ccxt/test/base/__init__.py +0 -29
  489. ccxt/test/base/test_account.py +0 -26
  490. ccxt/test/base/test_balance.py +0 -56
  491. ccxt/test/base/test_borrow_interest.py +0 -35
  492. ccxt/test/base/test_borrow_rate.py +0 -32
  493. ccxt/test/base/test_calculate_fee.py +0 -51
  494. ccxt/test/base/test_crypto.py +0 -127
  495. ccxt/test/base/test_currency.py +0 -76
  496. ccxt/test/base/test_datetime.py +0 -109
  497. ccxt/test/base/test_decimal_to_precision.py +0 -392
  498. ccxt/test/base/test_deep_extend.py +0 -68
  499. ccxt/test/base/test_deposit_withdrawal.py +0 -50
  500. ccxt/test/base/test_exchange_datetime_functions.py +0 -76
  501. ccxt/test/base/test_funding_rate_history.py +0 -29
  502. ccxt/test/base/test_last_price.py +0 -31
  503. ccxt/test/base/test_ledger_entry.py +0 -45
  504. ccxt/test/base/test_ledger_item.py +0 -48
  505. ccxt/test/base/test_leverage_tier.py +0 -33
  506. ccxt/test/base/test_liquidation.py +0 -50
  507. ccxt/test/base/test_margin_mode.py +0 -24
  508. ccxt/test/base/test_margin_modification.py +0 -35
  509. ccxt/test/base/test_market.py +0 -193
  510. ccxt/test/base/test_number.py +0 -411
  511. ccxt/test/base/test_ohlcv.py +0 -33
  512. ccxt/test/base/test_open_interest.py +0 -32
  513. ccxt/test/base/test_order.py +0 -64
  514. ccxt/test/base/test_order_book.py +0 -69
  515. ccxt/test/base/test_position.py +0 -60
  516. ccxt/test/base/test_shared_methods.py +0 -353
  517. ccxt/test/base/test_status.py +0 -24
  518. ccxt/test/base/test_throttle.py +0 -126
  519. ccxt/test/base/test_ticker.py +0 -92
  520. ccxt/test/base/test_trade.py +0 -47
  521. ccxt/test/base/test_trading_fee.py +0 -26
  522. ccxt/test/base/test_transaction.py +0 -39
  523. ccxt/test/test_async.py +0 -1649
  524. ccxt/test/test_sync.py +0 -1648
  525. ccxt/wazirx.py +0 -1224
  526. ccxt_ir-4.3.46.0.3.dist-info/RECORD +0 -773
  527. /ccxt/abstract/{huobijp.py → bittrade.py} +0 -0
  528. {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.0.dist-info/licenses}/LICENSE.txt +0 -0
  529. {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.0.dist-info}/top_level.txt +0 -0
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.latoken import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry, TransferEntries
9
+ from ccxt.base.types import Any, Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
@@ -26,7 +26,7 @@ from ccxt.base.decimal_to_precision import TICK_SIZE
26
26
 
27
27
  class latoken(Exchange, ImplicitAPI):
28
28
 
29
- def describe(self):
29
+ def describe(self) -> Any:
30
30
  return self.deep_extend(super(latoken, self).describe(), {
31
31
  'id': 'latoken',
32
32
  'name': 'Latoken',
@@ -40,6 +40,10 @@ class latoken(Exchange, ImplicitAPI):
40
40
  'swap': False,
41
41
  'future': False,
42
42
  'option': False,
43
+ 'addMargin': False,
44
+ 'borrowCrossMargin': False,
45
+ 'borrowIsolatedMargin': False,
46
+ 'borrowMargin': False,
43
47
  'cancelAllOrders': True,
44
48
  'cancelOrder': True,
45
49
  'closeAllPositions': False,
@@ -49,9 +53,14 @@ class latoken(Exchange, ImplicitAPI):
49
53
  'createStopLimitOrder': True,
50
54
  'createStopMarketOrder': False,
51
55
  'createStopOrder': True,
56
+ 'fetchAllGreeks': False,
52
57
  'fetchBalance': True,
58
+ 'fetchBorrowInterest': False,
59
+ 'fetchBorrowRate': False,
53
60
  'fetchBorrowRateHistories': False,
54
61
  'fetchBorrowRateHistory': False,
62
+ 'fetchBorrowRates': False,
63
+ 'fetchBorrowRatesPerSymbol': False,
55
64
  'fetchCrossBorrowRate': False,
56
65
  'fetchCrossBorrowRates': False,
57
66
  'fetchCurrencies': True,
@@ -60,12 +69,40 @@ class latoken(Exchange, ImplicitAPI):
60
69
  'fetchDepositAddressesByNetwork': False,
61
70
  'fetchDepositsWithdrawals': True,
62
71
  'fetchDepositWithdrawFees': False,
72
+ 'fetchFundingHistory': False,
73
+ 'fetchFundingInterval': False,
74
+ 'fetchFundingIntervals': False,
75
+ 'fetchFundingRate': False,
76
+ 'fetchFundingRateHistory': False,
77
+ 'fetchFundingRates': False,
78
+ 'fetchGreeks': False,
79
+ 'fetchIndexOHLCV': False,
63
80
  'fetchIsolatedBorrowRate': False,
64
81
  'fetchIsolatedBorrowRates': False,
82
+ 'fetchIsolatedPositions': False,
83
+ 'fetchLeverage': False,
84
+ 'fetchLeverages': False,
85
+ 'fetchLeverageTiers': False,
86
+ 'fetchLiquidations': False,
87
+ 'fetchLongShortRatio': False,
88
+ 'fetchLongShortRatioHistory': False,
89
+ 'fetchMarginAdjustmentHistory': False,
65
90
  'fetchMarginMode': False,
91
+ 'fetchMarginModes': False,
92
+ 'fetchMarketLeverageTiers': False,
66
93
  'fetchMarkets': True,
94
+ 'fetchMarkOHLCV': False,
95
+ 'fetchMarkPrice': False,
96
+ 'fetchMarkPrices': False,
97
+ 'fetchMyLiquidations': False,
98
+ 'fetchMySettlementHistory': False,
67
99
  'fetchMyTrades': True,
100
+ 'fetchOpenInterest': False,
101
+ 'fetchOpenInterestHistory': False,
102
+ 'fetchOpenInterests': False,
68
103
  'fetchOpenOrders': True,
104
+ 'fetchOption': False,
105
+ 'fetchOptionChain': False,
69
106
  'fetchOrder': True,
70
107
  'fetchOrderBook': True,
71
108
  'fetchOrders': True,
@@ -76,6 +113,8 @@ class latoken(Exchange, ImplicitAPI):
76
113
  'fetchPositionsForSymbol': False,
77
114
  'fetchPositionsHistory': False,
78
115
  'fetchPositionsRisk': False,
116
+ 'fetchPremiumIndexOHLCV': False,
117
+ 'fetchSettlementHistory': False,
79
118
  'fetchTicker': True,
80
119
  'fetchTickers': True,
81
120
  'fetchTime': True,
@@ -85,6 +124,15 @@ class latoken(Exchange, ImplicitAPI):
85
124
  'fetchTransactions': 'emulated',
86
125
  'fetchTransfer': False,
87
126
  'fetchTransfers': True,
127
+ 'fetchUnderlyingAssets': False,
128
+ 'fetchVolatilityHistory': False,
129
+ 'reduceMargin': False,
130
+ 'repayCrossMargin': False,
131
+ 'repayIsolatedMargin': False,
132
+ 'setLeverage': False,
133
+ 'setMargin': False,
134
+ 'setMarginMode': False,
135
+ 'setPositionMode': False,
88
136
  'transfer': True,
89
137
  },
90
138
  'urls': {
@@ -241,16 +289,88 @@ class latoken(Exchange, ImplicitAPI):
241
289
  'fetchTradingFee': {
242
290
  'method': 'fetchPrivateTradingFee', # or 'fetchPublicTradingFee'
243
291
  },
292
+ 'timeDifference': 0, # the difference between system clock and exchange clock
293
+ 'adjustForTimeDifference': True, # controls the adjustment logic upon instantiation
294
+ },
295
+ 'features': {
296
+ 'spot': {
297
+ 'sandbox': False,
298
+ 'createOrder': {
299
+ 'marginMode': False,
300
+ 'triggerPrice': True,
301
+ 'triggerPriceType': None,
302
+ 'triggerDirection': False,
303
+ 'stopLossPrice': False, # todo
304
+ 'takeProfitPrice': False, # todo
305
+ 'attachedStopLossTakeProfit': None,
306
+ 'timeInForce': {
307
+ 'IOC': True, # todo: for non-trigger orders
308
+ 'FOK': True,
309
+ 'PO': False,
310
+ 'GTD': False,
311
+ },
312
+ 'hedged': False,
313
+ 'selfTradePrevention': False,
314
+ 'trailing': False,
315
+ 'leverage': False,
316
+ 'marketBuyByCost': True,
317
+ 'marketBuyRequiresPrice': False,
318
+ 'iceberg': False,
319
+ },
320
+ 'createOrders': None,
321
+ 'fetchMyTrades': {
322
+ 'marginMode': False,
323
+ 'limit': 1000,
324
+ 'daysBack': 100000, # todo
325
+ 'untilDays': None,
326
+ 'symbolRequired': False,
327
+ },
328
+ 'fetchOrder': {
329
+ 'marginMode': False,
330
+ 'trigger': True,
331
+ 'trailing': False,
332
+ 'symbolRequired': False,
333
+ },
334
+ 'fetchOpenOrders': {
335
+ 'marginMode': False,
336
+ 'limit': None,
337
+ 'trigger': False,
338
+ 'trailing': False,
339
+ 'symbolRequired': True,
340
+ },
341
+ 'fetchOrders': None,
342
+ 'fetchClosedOrders': {
343
+ 'marginMode': False,
344
+ 'limit': 1000,
345
+ 'daysBack': 100000, # todo
346
+ 'daysBackCanceled': 1,
347
+ 'untilDays': None,
348
+ 'trigger': True,
349
+ 'trailing': False,
350
+ 'symbolRequired': False,
351
+ },
352
+ 'fetchOHLCV': None,
353
+ },
354
+ 'swap': {
355
+ 'linear': None,
356
+ 'inverse': None,
357
+ },
358
+ 'future': {
359
+ 'linear': None,
360
+ 'inverse': None,
361
+ },
244
362
  },
245
363
  })
246
364
 
247
365
  def nonce(self):
248
366
  return self.milliseconds() - self.options['timeDifference']
249
367
 
250
- async def fetch_time(self, params={}):
368
+ async def fetch_time(self, params={}) -> Int:
251
369
  """
252
370
  fetches the current integer timestamp in milliseconds from the exchange server
253
- :see: https://api.latoken.com/doc/v2/#tag/Time/operation/currentTime
371
+
372
+ https://api.latoken.com/doc/v2/#tag/Time/operation/currentTime
373
+
254
374
  :param dict [params]: extra parameters specific to the exchange API endpoint
255
375
  :returns int: the current integer timestamp in milliseconds from the exchange server
256
376
  """
@@ -265,43 +385,12 @@ class latoken(Exchange, ImplicitAPI):
265
385
  async def fetch_markets(self, params={}) -> List[Market]:
266
386
  """
267
387
  retrieves data on all markets for latoken
268
- :see: https://api.latoken.com/doc/v2/#tag/Pair/operation/getActivePairs
388
+
389
+ https://api.latoken.com/doc/v2/#tag/Pair/operation/getActivePairs
390
+
269
391
  :param dict [params]: extra parameters specific to the exchange API endpoint
270
392
  :returns dict[]: an array of objects representing market data
271
393
  """
272
- currencies = await self.fetch_currencies_from_cache(params)
273
- #
274
- # [
275
- # {
276
- # "id":"1a075819-9e0b-48fc-8784-4dab1d186d6d",
277
- # "status":"CURRENCY_STATUS_ACTIVE",
278
- # "type":"CURRENCY_TYPE_ALTERNATIVE", # CURRENCY_TYPE_CRYPTO, CURRENCY_TYPE_IEO
279
- # "name":"MyCryptoBank",
280
- # "tag":"MCB",
281
- # "description":"",
282
- # "logo":"",
283
- # "decimals":18,
284
- # "created":1572912000000,
285
- # "tier":1,
286
- # "assetClass":"ASSET_CLASS_UNKNOWN",
287
- # "minTransferAmount":0
288
- # },
289
- # {
290
- # "id":"db02758e-2507-46a5-a805-7bc60355b3eb",
291
- # "status":"CURRENCY_STATUS_ACTIVE",
292
- # "type":"CURRENCY_TYPE_FUTURES_CONTRACT",
293
- # "name":"BTC USDT Futures Contract",
294
- # "tag":"BTCUSDT",
295
- # "description":"",
296
- # "logo":"",
297
- # "decimals":8,
298
- # "created":1589459984395,
299
- # "tier":1,
300
- # "assetClass":"ASSET_CLASS_UNKNOWN",
301
- # "minTransferAmount":0
302
- # },
303
- # ]
304
- #
305
394
  response = await self.publicGetPair(params)
306
395
  #
307
396
  # [
@@ -323,8 +412,9 @@ class latoken(Exchange, ImplicitAPI):
323
412
  # }
324
413
  # ]
325
414
  #
326
- if self.safe_value(self.options, 'adjustForTimeDifference', True):
415
+ if self.safe_bool(self.options, 'adjustForTimeDifference', False):
327
416
  await self.load_time_difference()
417
+ currencies = self.safe_dict(self.options, 'cachedCurrencies', {})
328
418
  currenciesById = self.index_by(currencies, 'id')
329
419
  result = []
330
420
  for i in range(0, len(response)):
@@ -333,11 +423,13 @@ class latoken(Exchange, ImplicitAPI):
333
423
  # the exchange shows them inverted
334
424
  baseId = self.safe_string(market, 'baseCurrency')
335
425
  quoteId = self.safe_string(market, 'quoteCurrency')
336
- baseCurrency = self.safe_value(currenciesById, baseId)
337
- quoteCurrency = self.safe_value(currenciesById, quoteId)
338
- if baseCurrency is not None and quoteCurrency is not None:
339
- base = self.safe_currency_code(self.safe_string(baseCurrency, 'tag'))
340
- quote = self.safe_currency_code(self.safe_string(quoteCurrency, 'tag'))
426
+ baseCurrency = self.safe_dict(currenciesById, baseId)
427
+ quoteCurrency = self.safe_dict(currenciesById, quoteId)
428
+ baseCurrencyInfo = self.safe_dict(baseCurrency, 'info')
429
+ quoteCurrencyInfo = self.safe_dict(quoteCurrency, 'info')
430
+ if baseCurrencyInfo is not None and quoteCurrencyInfo is not None:
431
+ base = self.safe_currency_code(self.safe_string(baseCurrencyInfo, 'tag'))
432
+ quote = self.safe_currency_code(self.safe_string(quoteCurrencyInfo, 'tag'))
341
433
  lowercaseQuote = quote.lower()
342
434
  capitalizedQuote = self.capitalize(lowercaseQuote)
343
435
  status = self.safe_string(market, 'status')
@@ -392,28 +484,13 @@ class latoken(Exchange, ImplicitAPI):
392
484
  })
393
485
  return result
394
486
 
395
- async def fetch_currencies_from_cache(self, params={}):
396
- # self method is now redundant
397
- # currencies are now fetched before markets
398
- options = self.safe_value(self.options, 'fetchCurrencies', {})
399
- timestamp = self.safe_integer(options, 'timestamp')
400
- expires = self.safe_integer(options, 'expires', 1000)
401
- now = self.milliseconds()
402
- if (timestamp is None) or ((now - timestamp) > expires):
403
- response = await self.publicGetCurrency(params)
404
- self.options['fetchCurrencies'] = self.extend(options, {
405
- 'response': response,
406
- 'timestamp': now,
407
- })
408
- return self.safe_value(self.options['fetchCurrencies'], 'response')
409
-
410
487
  async def fetch_currencies(self, params={}) -> Currencies:
411
488
  """
412
489
  fetches all available currencies on an exchange
413
490
  :param dict [params]: extra parameters specific to the exchange API endpoint
414
491
  :returns dict: an associative dictionary of currencies
415
492
  """
416
- response = await self.fetch_currencies_from_cache(params)
493
+ response = await self.publicGetCurrency(params)
417
494
  #
418
495
  # [
419
496
  # {
@@ -452,27 +529,18 @@ class latoken(Exchange, ImplicitAPI):
452
529
  id = self.safe_string(currency, 'id')
453
530
  tag = self.safe_string(currency, 'tag')
454
531
  code = self.safe_currency_code(tag)
455
- fee = self.safe_number(currency, 'fee')
456
532
  currencyType = self.safe_string(currency, 'type')
457
- type = None
458
- if currencyType == 'CURRENCY_TYPE_ALTERNATIVE':
459
- type = 'other'
460
- else:
461
- # CURRENCY_TYPE_CRYPTO and CURRENCY_TYPE_IEO are all cryptos
462
- type = 'crypto'
463
- status = self.safe_string(currency, 'status')
464
- active = (status == 'CURRENCY_STATUS_ACTIVE')
465
- name = self.safe_string(currency, 'name')
466
- result[code] = {
533
+ isCrypto = (currencyType == 'CURRENCY_TYPE_CRYPTO' or currencyType == 'CURRENCY_TYPE_IEO')
534
+ result[code] = self.safe_currency_structure({
467
535
  'id': id,
468
536
  'code': code,
469
537
  'info': currency,
470
- 'name': name,
471
- 'type': type,
472
- 'active': active,
538
+ 'name': self.safe_string(currency, 'name'),
539
+ 'type': 'crypto' if isCrypto else 'other',
540
+ 'active': self.safe_string(currency, 'status') == 'CURRENCY_STATUS_ACTIVE',
473
541
  'deposit': None,
474
542
  'withdraw': None,
475
- 'fee': fee,
543
+ 'fee': self.safe_number(currency, 'fee'),
476
544
  'precision': self.parse_number(self.parse_precision(self.safe_string(currency, 'decimals'))),
477
545
  'limits': {
478
546
  'amount': {
@@ -485,13 +553,15 @@ class latoken(Exchange, ImplicitAPI):
485
553
  },
486
554
  },
487
555
  'networks': {},
488
- }
556
+ })
489
557
  return result
490
558
 
491
559
  async def fetch_balance(self, params={}) -> Balances:
492
560
  """
493
561
  query for balance and get the amount of funds available for trading or funds locked in orders
494
- :see: https://api.latoken.com/doc/v2/#tag/Account/operation/getBalancesByUser
562
+
563
+ https://api.latoken.com/doc/v2/#tag/Account/operation/getBalancesByUser
564
+
495
565
  :param dict [params]: extra parameters specific to the exchange API endpoint
496
566
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
497
567
  """
@@ -552,7 +622,9 @@ class latoken(Exchange, ImplicitAPI):
552
622
  async def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
553
623
  """
554
624
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
555
- :see: https://api.latoken.com/doc/v2/#tag/Order-Book/operation/getOrderBook
625
+
626
+ https://api.latoken.com/doc/v2/#tag/Order-Book/operation/getOrderBook
627
+
556
628
  :param str symbol: unified symbol of the market to fetch the order book for
557
629
  :param int [limit]: the maximum amount of order book entries to return
558
630
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -635,7 +707,9 @@ class latoken(Exchange, ImplicitAPI):
635
707
  async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
636
708
  """
637
709
  fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
638
- :see: https://api.latoken.com/doc/v2/#tag/Ticker/operation/getTicker
710
+
711
+ https://api.latoken.com/doc/v2/#tag/Ticker/operation/getTicker
712
+
639
713
  :param str symbol: unified symbol of the market to fetch the ticker for
640
714
  :param dict [params]: extra parameters specific to the exchange API endpoint
641
715
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -672,7 +746,9 @@ class latoken(Exchange, ImplicitAPI):
672
746
  async def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
673
747
  """
674
748
  fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
675
- :see: https://api.latoken.com/doc/v2/#tag/Ticker/operation/getAllTickers
749
+
750
+ https://api.latoken.com/doc/v2/#tag/Ticker/operation/getAllTickers
751
+
676
752
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
677
753
  :param dict [params]: extra parameters specific to the exchange API endpoint
678
754
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -787,7 +863,9 @@ class latoken(Exchange, ImplicitAPI):
787
863
  async def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
788
864
  """
789
865
  get the list of most recent trades for a particular symbol
790
- :see: https://api.latoken.com/doc/v2/#tag/Trade/operation/getTradesByPair
866
+
867
+ https://api.latoken.com/doc/v2/#tag/Trade/operation/getTradesByPair
868
+
791
869
  :param str symbol: unified symbol of the market to fetch trades for
792
870
  :param int [since]: timestamp in ms of the earliest trade to fetch
793
871
  :param int [limit]: the maximum amount of trades to fetch
@@ -817,8 +895,10 @@ class latoken(Exchange, ImplicitAPI):
817
895
  async def fetch_trading_fee(self, symbol: str, params={}) -> TradingFeeInterface:
818
896
  """
819
897
  fetch the trading fees for a market
820
- :see: https://api.latoken.com/doc/v2/#tag/Trade/operation/getFeeByPair
821
- :see: https://api.latoken.com/doc/v2/#tag/Trade/operation/getAuthFeeByPair
898
+
899
+ https://api.latoken.com/doc/v2/#tag/Trade/operation/getFeeByPair
900
+ https://api.latoken.com/doc/v2/#tag/Trade/operation/getAuthFeeByPair
901
+
822
902
  :param str symbol: unified market symbol
823
903
  :param dict [params]: extra parameters specific to the exchange API endpoint
824
904
  :returns dict: a `fee structure <https://docs.ccxt.com/#/?id=fee-structure>`
@@ -887,8 +967,10 @@ class latoken(Exchange, ImplicitAPI):
887
967
  async def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
888
968
  """
889
969
  fetch all trades made by the user
890
- :see: https://api.latoken.com/doc/v2/#tag/Trade/operation/getTradesByTrader
891
- :see: https://api.latoken.com/doc/v2/#tag/Trade/operation/getTradesByAssetAndTrader
970
+
971
+ https://api.latoken.com/doc/v2/#tag/Trade/operation/getTradesByTrader
972
+ https://api.latoken.com/doc/v2/#tag/Trade/operation/getTradesByAssetAndTrader
973
+
892
974
  :param str symbol: unified market symbol
893
975
  :param int [since]: the earliest time in ms to fetch trades for
894
976
  :param int [limit]: the maximum number of trades structures to retrieve
@@ -1031,7 +1113,6 @@ class latoken(Exchange, ImplicitAPI):
1031
1113
  status = 'open'
1032
1114
  clientOrderId = self.safe_string(order, 'clientOrderId')
1033
1115
  timeInForce = self.parse_time_in_force(self.safe_string(order, 'condition'))
1034
- triggerPrice = self.safe_string(order, 'stopPrice')
1035
1116
  return self.safe_order({
1036
1117
  'id': id,
1037
1118
  'clientOrderId': clientOrderId,
@@ -1046,8 +1127,7 @@ class latoken(Exchange, ImplicitAPI):
1046
1127
  'postOnly': None,
1047
1128
  'side': side,
1048
1129
  'price': price,
1049
- 'stopPrice': triggerPrice,
1050
- 'triggerPrice': triggerPrice,
1130
+ 'triggerPrice': self.safe_string(order, 'stopPrice'),
1051
1131
  'cost': cost,
1052
1132
  'amount': amount,
1053
1133
  'filled': filled,
@@ -1060,8 +1140,10 @@ class latoken(Exchange, ImplicitAPI):
1060
1140
  async def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
1061
1141
  """
1062
1142
  fetch all unfilled currently open orders
1063
- :see: https://api.latoken.com/doc/v2/#tag/Order/operation/getMyActiveOrdersByPair
1064
- :see: https://api.latoken.com/doc/v2/#tag/StopOrder/operation/getMyActiveStopOrdersByPair # stop
1143
+
1144
+ https://api.latoken.com/doc/v2/#tag/Order/operation/getMyActiveOrdersByPair
1145
+ https://api.latoken.com/doc/v2/#tag/StopOrder/operation/getMyActiveStopOrdersByPair # stop
1146
+
1065
1147
  :param str symbol: unified market symbol
1066
1148
  :param int [since]: the earliest time in ms to fetch open orders for
1067
1149
  :param int [limit]: the maximum number of open orders structures to retrieve
@@ -1112,10 +1194,12 @@ class latoken(Exchange, ImplicitAPI):
1112
1194
  async def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
1113
1195
  """
1114
1196
  fetches information on multiple orders made by the user
1115
- :see: https://api.latoken.com/doc/v2/#tag/Order/operation/getMyOrders
1116
- :see: https://api.latoken.com/doc/v2/#tag/Order/operation/getMyOrdersByPair
1117
- :see: https://api.latoken.com/doc/v2/#tag/StopOrder/operation/getMyStopOrders # stop
1118
- :see: https://api.latoken.com/doc/v2/#tag/StopOrder/operation/getMyStopOrdersByPair # stop
1197
+
1198
+ https://api.latoken.com/doc/v2/#tag/Order/operation/getMyOrders
1199
+ https://api.latoken.com/doc/v2/#tag/Order/operation/getMyOrdersByPair
1200
+ https://api.latoken.com/doc/v2/#tag/StopOrder/operation/getMyStopOrders # stop
1201
+ https://api.latoken.com/doc/v2/#tag/StopOrder/operation/getMyStopOrdersByPair # stop
1202
+
1119
1203
  :param str symbol: unified market symbol of the market orders were made in
1120
1204
  :param int [since]: the earliest time in ms to fetch orders for
1121
1205
  :param int [limit]: the maximum number of order structures to retrieve
@@ -1176,8 +1260,11 @@ class latoken(Exchange, ImplicitAPI):
1176
1260
  async def fetch_order(self, id: str, symbol: Str = None, params={}):
1177
1261
  """
1178
1262
  fetches information on an order made by the user
1179
- :see: https://api.latoken.com/doc/v2/#tag/Order/operation/getOrderById
1180
- :see: https://api.latoken.com/doc/v2/#tag/StopOrder/operation/getStopOrderById
1263
+
1264
+ https://api.latoken.com/doc/v2/#tag/Order/operation/getOrderById
1265
+ https://api.latoken.com/doc/v2/#tag/StopOrder/operation/getStopOrderById
1266
+
1267
+ :param str id: order id
1181
1268
  :param str [symbol]: not used by latoken fetchOrder
1182
1269
  :param dict [params]: extra parameters specific to the exchange API endpoint
1183
1270
  :param boolean [params.trigger]: True if fetching a trigger order
@@ -1219,17 +1306,19 @@ class latoken(Exchange, ImplicitAPI):
1219
1306
  async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
1220
1307
  """
1221
1308
  create a trade order
1222
- :see: https://api.latoken.com/doc/v2/#tag/Order/operation/placeOrder
1223
- :see: https://api.latoken.com/doc/v2/#tag/StopOrder/operation/placeStopOrder # stop
1309
+
1310
+ https://api.latoken.com/doc/v2/#tag/Order/operation/placeOrder
1311
+ https://api.latoken.com/doc/v2/#tag/StopOrder/operation/placeStopOrder # stop
1312
+
1224
1313
  :param str symbol: unified symbol of the market to create an order in
1225
1314
  :param str type: 'market' or 'limit'
1226
1315
  :param str side: 'buy' or 'sell'
1227
1316
  :param float amount: how much of currency you want to trade in units of base currency
1228
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1317
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1229
1318
  :param dict [params]: extra parameters specific to the exchange API endpoint
1230
1319
  :param float [params.triggerPrice]: the price at which a trigger order is triggered at
1231
- *
1232
- * EXCHANGE SPECIFIC PARAMETERS
1320
+
1321
+ EXCHANGE SPECIFIC PARAMETERS
1233
1322
  :param str [params.condition]: "GTC", "IOC", or "FOK"
1234
1323
  :param str [params.clientOrderId]: [0 .. 50] characters, client's custom order id(free field for your convenience)
1235
1324
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -1276,8 +1365,10 @@ class latoken(Exchange, ImplicitAPI):
1276
1365
  async def cancel_order(self, id: str, symbol: Str = None, params={}):
1277
1366
  """
1278
1367
  cancels an open order
1279
- :see: https://api.latoken.com/doc/v2/#tag/Order/operation/cancelOrder
1280
- :see: https://api.latoken.com/doc/v2/#tag/StopOrder/operation/cancelStopOrder # stop
1368
+
1369
+ https://api.latoken.com/doc/v2/#tag/Order/operation/cancelOrder
1370
+ https://api.latoken.com/doc/v2/#tag/StopOrder/operation/cancelStopOrder # stop
1371
+
1281
1372
  :param str id: order id
1282
1373
  :param str symbol: not used by latoken cancelOrder()
1283
1374
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -1309,8 +1400,10 @@ class latoken(Exchange, ImplicitAPI):
1309
1400
  async def cancel_all_orders(self, symbol: Str = None, params={}):
1310
1401
  """
1311
1402
  cancel all open orders in a market
1312
- :see: https://api.latoken.com/doc/v2/#tag/Order/operation/cancelAllOrders
1313
- :see: https://api.latoken.com/doc/v2/#tag/Order/operation/cancelAllOrdersByPair
1403
+
1404
+ https://api.latoken.com/doc/v2/#tag/Order/operation/cancelAllOrders
1405
+ https://api.latoken.com/doc/v2/#tag/Order/operation/cancelAllOrdersByPair
1406
+
1314
1407
  :param str symbol: unified market symbol of the market to cancel orders in
1315
1408
  :param dict [params]: extra parameters specific to the exchange API endpoint
1316
1409
  :param boolean [params.trigger]: True if cancelling trigger orders
@@ -1344,13 +1437,19 @@ class latoken(Exchange, ImplicitAPI):
1344
1437
  # "status":"SUCCESS"
1345
1438
  # }
1346
1439
  #
1347
- return response
1440
+ return [
1441
+ self.safe_order({
1442
+ 'info': response,
1443
+ }),
1444
+ ]
1348
1445
 
1349
1446
  async def fetch_transactions(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
1350
1447
  """
1351
- * @deprecated
1448
+ @deprecated
1352
1449
  use fetchDepositsWithdrawals instead
1353
- :see: https://api.latoken.com/doc/v2/#tag/Transaction/operation/getUserTransactions
1450
+
1451
+ https://api.latoken.com/doc/v2/#tag/Transaction/operation/getUserTransactions
1452
+
1354
1453
  :param str code: unified currency code for the currency of the transactions, default is None
1355
1454
  :param int [since]: timestamp in ms of the earliest transaction, default is None
1356
1455
  :param int [limit]: max number of transactions to return, default is None
@@ -1461,6 +1560,7 @@ class latoken(Exchange, ImplicitAPI):
1461
1560
  statuses: dict = {
1462
1561
  'TRANSACTION_STATUS_CONFIRMED': 'ok',
1463
1562
  'TRANSACTION_STATUS_EXECUTED': 'ok',
1563
+ 'TRANSACTION_STATUS_CHECKING': 'pending',
1464
1564
  'TRANSACTION_STATUS_CANCELLED': 'canceled',
1465
1565
  }
1466
1566
  return self.safe_string(statuses, status, status)
@@ -1472,10 +1572,12 @@ class latoken(Exchange, ImplicitAPI):
1472
1572
  }
1473
1573
  return self.safe_string(types, type, type)
1474
1574
 
1475
- async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> TransferEntries:
1575
+ async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[TransferEntry]:
1476
1576
  """
1477
1577
  fetch a history of internal transfers made on an account
1478
- :see: https://api.latoken.com/doc/v2/#tag/Transfer/operation/getUsersTransfers
1578
+
1579
+ https://api.latoken.com/doc/v2/#tag/Transfer/operation/getUsersTransfers
1580
+
1479
1581
  :param str code: unified currency code of the currency transferred
1480
1582
  :param int [since]: the earliest time in ms to fetch transfers for
1481
1583
  :param int [limit]: the maximum number of transfers structures to retrieve
@@ -1522,9 +1624,11 @@ class latoken(Exchange, ImplicitAPI):
1522
1624
  async def transfer(self, code: str, amount: float, fromAccount: str, toAccount: str, params={}) -> TransferEntry:
1523
1625
  """
1524
1626
  transfer currency internally between wallets on the same account
1525
- :see: https://api.latoken.com/doc/v2/#tag/Transfer/operation/transferByEmail
1526
- :see: https://api.latoken.com/doc/v2/#tag/Transfer/operation/transferById
1527
- :see: https://api.latoken.com/doc/v2/#tag/Transfer/operation/transferByPhone
1627
+
1628
+ https://api.latoken.com/doc/v2/#tag/Transfer/operation/transferByEmail
1629
+ https://api.latoken.com/doc/v2/#tag/Transfer/operation/transferById
1630
+ https://api.latoken.com/doc/v2/#tag/Transfer/operation/transferByPhone
1631
+
1528
1632
  :param str code: unified currency code
1529
1633
  :param float amount: amount to transfer
1530
1634
  :param str fromAccount: account to transfer from