ccxt 4.2.77__py2.py3-none-any.whl → 4.4.49__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 (546) hide show
  1. ccxt/__init__.py +36 -14
  2. ccxt/abstract/alpaca.py +4 -0
  3. ccxt/abstract/bigone.py +1 -1
  4. ccxt/abstract/binance.py +112 -48
  5. ccxt/abstract/binancecoinm.py +112 -48
  6. ccxt/abstract/binanceus.py +147 -83
  7. ccxt/abstract/binanceusdm.py +112 -48
  8. ccxt/abstract/bingx.py +133 -78
  9. ccxt/abstract/bitbank.py +5 -0
  10. ccxt/abstract/bitfinex.py +136 -65
  11. ccxt/abstract/bitfinex1.py +69 -0
  12. ccxt/abstract/bitflyer.py +1 -0
  13. ccxt/abstract/bitget.py +8 -1
  14. ccxt/abstract/bitmart.py +13 -1
  15. ccxt/abstract/bitopro.py +1 -0
  16. ccxt/abstract/bitpanda.py +0 -12
  17. ccxt/abstract/bitrue.py +3 -3
  18. ccxt/abstract/bitstamp.py +26 -3
  19. ccxt/abstract/blofin.py +24 -0
  20. ccxt/abstract/btcbox.py +1 -0
  21. ccxt/abstract/bybit.py +29 -14
  22. ccxt/abstract/cex.py +28 -29
  23. ccxt/abstract/coinbase.py +6 -0
  24. ccxt/abstract/coinbaseadvanced.py +94 -0
  25. ccxt/abstract/{coinbasepro.py → coinbaseexchange.py} +1 -0
  26. ccxt/abstract/coinbaseinternational.py +1 -1
  27. ccxt/abstract/coincatch.py +94 -0
  28. ccxt/abstract/coinex.py +233 -123
  29. ccxt/abstract/coinmetro.py +1 -0
  30. ccxt/abstract/cryptocom.py +14 -0
  31. ccxt/abstract/defx.py +69 -0
  32. ccxt/abstract/deribit.py +1 -0
  33. ccxt/abstract/digifinex.py +1 -0
  34. ccxt/abstract/ellipx.py +25 -0
  35. ccxt/abstract/gate.py +20 -0
  36. ccxt/abstract/gateio.py +20 -0
  37. ccxt/abstract/gemini.py +1 -0
  38. ccxt/abstract/hashkey.py +67 -0
  39. ccxt/abstract/hyperliquid.py +1 -1
  40. ccxt/abstract/independentreserve.py +6 -0
  41. ccxt/abstract/kraken.py +4 -3
  42. ccxt/abstract/krakenfutures.py +4 -0
  43. ccxt/abstract/kucoin.py +24 -0
  44. ccxt/abstract/kucoinfutures.py +34 -0
  45. ccxt/abstract/luno.py +2 -0
  46. ccxt/abstract/mexc.py +4 -0
  47. ccxt/abstract/myokx.py +340 -0
  48. ccxt/abstract/oceanex.py +5 -0
  49. ccxt/abstract/okx.py +30 -0
  50. ccxt/abstract/onetrading.py +0 -12
  51. ccxt/abstract/oxfun.py +34 -0
  52. ccxt/abstract/paradex.py +40 -0
  53. ccxt/abstract/phemex.py +1 -0
  54. ccxt/abstract/upbit.py +4 -0
  55. ccxt/abstract/vertex.py +19 -0
  56. ccxt/abstract/whitebit.py +31 -1
  57. ccxt/abstract/woo.py +6 -2
  58. ccxt/abstract/woofipro.py +119 -0
  59. ccxt/abstract/xt.py +153 -0
  60. ccxt/abstract/zonda.py +6 -0
  61. ccxt/ace.py +164 -60
  62. ccxt/alpaca.py +727 -63
  63. ccxt/ascendex.py +395 -249
  64. ccxt/async_support/__init__.py +36 -14
  65. ccxt/async_support/ace.py +164 -60
  66. ccxt/async_support/alpaca.py +727 -63
  67. ccxt/async_support/ascendex.py +396 -249
  68. ccxt/async_support/base/exchange.py +531 -155
  69. ccxt/async_support/base/ws/aiohttp_client.py +28 -5
  70. ccxt/async_support/base/ws/cache.py +3 -2
  71. ccxt/async_support/base/ws/client.py +26 -5
  72. ccxt/async_support/base/ws/fast_client.py +4 -3
  73. ccxt/async_support/base/ws/functions.py +1 -1
  74. ccxt/async_support/base/ws/future.py +40 -31
  75. ccxt/async_support/base/ws/order_book_side.py +3 -0
  76. ccxt/async_support/bequant.py +1 -1
  77. ccxt/async_support/bigone.py +329 -202
  78. ccxt/async_support/binance.py +3030 -1087
  79. ccxt/async_support/binancecoinm.py +2 -1
  80. ccxt/async_support/binanceus.py +12 -1
  81. ccxt/async_support/binanceusdm.py +3 -1
  82. ccxt/async_support/bingx.py +3205 -937
  83. ccxt/async_support/bit2c.py +119 -38
  84. ccxt/async_support/bitbank.py +215 -76
  85. ccxt/async_support/bitbns.py +124 -53
  86. ccxt/async_support/bitfinex.py +3236 -1078
  87. ccxt/async_support/bitfinex1.py +1711 -0
  88. ccxt/async_support/bitflyer.py +238 -49
  89. ccxt/async_support/bitget.py +1525 -573
  90. ccxt/async_support/bithumb.py +199 -65
  91. ccxt/async_support/bitmart.py +1320 -435
  92. ccxt/async_support/bitmex.py +308 -111
  93. ccxt/async_support/bitopro.py +256 -96
  94. ccxt/async_support/bitrue.py +365 -233
  95. ccxt/async_support/bitso.py +201 -89
  96. ccxt/async_support/bitstamp.py +438 -269
  97. ccxt/async_support/bitteam.py +179 -73
  98. ccxt/async_support/bitvavo.py +180 -70
  99. ccxt/async_support/bl3p.py +92 -25
  100. ccxt/async_support/blockchaincom.py +193 -79
  101. ccxt/async_support/blofin.py +392 -148
  102. ccxt/async_support/btcalpha.py +161 -55
  103. ccxt/async_support/btcbox.py +250 -34
  104. ccxt/async_support/btcmarkets.py +232 -85
  105. ccxt/async_support/btcturk.py +159 -60
  106. ccxt/async_support/bybit.py +2231 -1193
  107. ccxt/async_support/cex.py +1409 -1329
  108. ccxt/async_support/coinbase.py +1454 -287
  109. ccxt/async_support/coinbaseadvanced.py +17 -0
  110. ccxt/async_support/{coinbasepro.py → coinbaseexchange.py} +233 -99
  111. ccxt/async_support/coinbaseinternational.py +428 -88
  112. ccxt/async_support/coincatch.py +5152 -0
  113. ccxt/async_support/coincheck.py +121 -38
  114. ccxt/async_support/coinex.py +4020 -3339
  115. ccxt/async_support/coinlist.py +273 -116
  116. ccxt/async_support/coinmate.py +204 -97
  117. ccxt/async_support/coinmetro.py +203 -110
  118. ccxt/async_support/coinone.py +142 -68
  119. ccxt/async_support/coinsph.py +223 -97
  120. ccxt/async_support/coinspot.py +137 -62
  121. ccxt/async_support/cryptocom.py +515 -185
  122. ccxt/async_support/currencycom.py +203 -85
  123. ccxt/async_support/defx.py +2066 -0
  124. ccxt/async_support/delta.py +404 -109
  125. ccxt/async_support/deribit.py +639 -323
  126. ccxt/async_support/digifinex.py +465 -233
  127. ccxt/async_support/ellipx.py +1887 -0
  128. ccxt/async_support/exmo.py +317 -128
  129. ccxt/async_support/gate.py +1472 -463
  130. ccxt/async_support/gemini.py +206 -84
  131. ccxt/async_support/hashkey.py +4164 -0
  132. ccxt/async_support/hitbtc.py +433 -178
  133. ccxt/async_support/hollaex.py +207 -83
  134. ccxt/async_support/htx.py +1095 -563
  135. ccxt/async_support/huobijp.py +178 -56
  136. ccxt/async_support/hyperliquid.py +1678 -292
  137. ccxt/async_support/idex.py +219 -95
  138. ccxt/async_support/independentreserve.py +300 -31
  139. ccxt/async_support/indodax.py +226 -62
  140. ccxt/async_support/kraken.py +871 -354
  141. ccxt/async_support/krakenfutures.py +324 -100
  142. ccxt/async_support/kucoin.py +917 -357
  143. ccxt/async_support/kucoinfutures.py +1004 -149
  144. ccxt/async_support/kuna.py +198 -107
  145. ccxt/async_support/latoken.py +199 -79
  146. ccxt/async_support/lbank.py +360 -113
  147. ccxt/async_support/luno.py +185 -62
  148. ccxt/async_support/lykke.py +168 -55
  149. ccxt/async_support/mercado.py +101 -29
  150. ccxt/async_support/mexc.py +995 -429
  151. ccxt/async_support/myokx.py +53 -0
  152. ccxt/async_support/ndax.py +234 -82
  153. ccxt/async_support/novadax.py +195 -75
  154. ccxt/async_support/oceanex.py +244 -59
  155. ccxt/async_support/okcoin.py +301 -165
  156. ccxt/async_support/okx.py +1776 -454
  157. ccxt/async_support/onetrading.py +198 -414
  158. ccxt/async_support/oxfun.py +2898 -0
  159. ccxt/async_support/p2b.py +142 -52
  160. ccxt/async_support/paradex.py +2085 -0
  161. ccxt/async_support/paymium.py +56 -32
  162. ccxt/async_support/phemex.py +572 -196
  163. ccxt/async_support/poloniex.py +218 -95
  164. ccxt/async_support/poloniexfutures.py +260 -92
  165. ccxt/async_support/probit.py +143 -110
  166. ccxt/async_support/timex.py +123 -70
  167. ccxt/async_support/tokocrypto.py +129 -93
  168. ccxt/async_support/tradeogre.py +39 -25
  169. ccxt/async_support/upbit.py +322 -113
  170. ccxt/async_support/vertex.py +2983 -0
  171. ccxt/async_support/wavesexchange.py +227 -173
  172. ccxt/async_support/wazirx.py +145 -65
  173. ccxt/async_support/whitebit.py +533 -138
  174. ccxt/async_support/woo.py +1137 -296
  175. ccxt/async_support/woofipro.py +2716 -0
  176. ccxt/async_support/xt.py +4628 -0
  177. ccxt/async_support/yobit.py +160 -92
  178. ccxt/async_support/zaif.py +80 -33
  179. ccxt/async_support/zonda.py +140 -69
  180. ccxt/base/errors.py +51 -20
  181. ccxt/base/exchange.py +1722 -480
  182. ccxt/base/precise.py +10 -0
  183. ccxt/base/types.py +223 -4
  184. ccxt/bequant.py +1 -1
  185. ccxt/bigone.py +329 -202
  186. ccxt/binance.py +3030 -1087
  187. ccxt/binancecoinm.py +2 -1
  188. ccxt/binanceus.py +12 -1
  189. ccxt/binanceusdm.py +3 -1
  190. ccxt/bingx.py +3205 -937
  191. ccxt/bit2c.py +119 -38
  192. ccxt/bitbank.py +215 -76
  193. ccxt/bitbns.py +124 -53
  194. ccxt/bitfinex.py +3235 -1078
  195. ccxt/bitfinex1.py +1710 -0
  196. ccxt/bitflyer.py +238 -49
  197. ccxt/bitget.py +1525 -573
  198. ccxt/bithumb.py +198 -65
  199. ccxt/bitmart.py +1320 -435
  200. ccxt/bitmex.py +308 -111
  201. ccxt/bitopro.py +256 -96
  202. ccxt/bitrue.py +365 -233
  203. ccxt/bitso.py +201 -89
  204. ccxt/bitstamp.py +438 -269
  205. ccxt/bitteam.py +179 -73
  206. ccxt/bitvavo.py +180 -70
  207. ccxt/bl3p.py +92 -25
  208. ccxt/blockchaincom.py +193 -79
  209. ccxt/blofin.py +392 -148
  210. ccxt/btcalpha.py +161 -55
  211. ccxt/btcbox.py +250 -34
  212. ccxt/btcmarkets.py +232 -85
  213. ccxt/btcturk.py +159 -60
  214. ccxt/bybit.py +2231 -1193
  215. ccxt/cex.py +1408 -1329
  216. ccxt/coinbase.py +1454 -287
  217. ccxt/coinbaseadvanced.py +17 -0
  218. ccxt/{coinbasepro.py → coinbaseexchange.py} +233 -99
  219. ccxt/coinbaseinternational.py +428 -88
  220. ccxt/coincatch.py +5152 -0
  221. ccxt/coincheck.py +121 -38
  222. ccxt/coinex.py +4020 -3339
  223. ccxt/coinlist.py +273 -116
  224. ccxt/coinmate.py +204 -97
  225. ccxt/coinmetro.py +203 -110
  226. ccxt/coinone.py +142 -68
  227. ccxt/coinsph.py +223 -97
  228. ccxt/coinspot.py +137 -62
  229. ccxt/cryptocom.py +515 -185
  230. ccxt/currencycom.py +203 -85
  231. ccxt/defx.py +2065 -0
  232. ccxt/delta.py +404 -109
  233. ccxt/deribit.py +639 -323
  234. ccxt/digifinex.py +465 -233
  235. ccxt/ellipx.py +1887 -0
  236. ccxt/exmo.py +317 -128
  237. ccxt/gate.py +1472 -463
  238. ccxt/gemini.py +206 -84
  239. ccxt/hashkey.py +4164 -0
  240. ccxt/hitbtc.py +433 -178
  241. ccxt/hollaex.py +207 -83
  242. ccxt/htx.py +1095 -563
  243. ccxt/huobijp.py +178 -56
  244. ccxt/hyperliquid.py +1677 -292
  245. ccxt/idex.py +219 -95
  246. ccxt/independentreserve.py +299 -31
  247. ccxt/indodax.py +226 -62
  248. ccxt/kraken.py +871 -354
  249. ccxt/krakenfutures.py +324 -100
  250. ccxt/kucoin.py +917 -357
  251. ccxt/kucoinfutures.py +1004 -149
  252. ccxt/kuna.py +198 -107
  253. ccxt/latoken.py +199 -79
  254. ccxt/lbank.py +360 -113
  255. ccxt/luno.py +185 -62
  256. ccxt/lykke.py +168 -55
  257. ccxt/mercado.py +101 -29
  258. ccxt/mexc.py +994 -429
  259. ccxt/myokx.py +53 -0
  260. ccxt/ndax.py +234 -82
  261. ccxt/novadax.py +195 -75
  262. ccxt/oceanex.py +244 -59
  263. ccxt/okcoin.py +301 -165
  264. ccxt/okx.py +1776 -454
  265. ccxt/onetrading.py +198 -414
  266. ccxt/oxfun.py +2897 -0
  267. ccxt/p2b.py +142 -52
  268. ccxt/paradex.py +2085 -0
  269. ccxt/paymium.py +56 -32
  270. ccxt/phemex.py +572 -196
  271. ccxt/poloniex.py +218 -95
  272. ccxt/poloniexfutures.py +260 -92
  273. ccxt/pro/__init__.py +29 -5
  274. ccxt/pro/alpaca.py +32 -17
  275. ccxt/pro/ascendex.py +62 -14
  276. ccxt/pro/bequant.py +4 -0
  277. ccxt/pro/binance.py +1596 -329
  278. ccxt/pro/binancecoinm.py +1 -0
  279. ccxt/pro/binanceus.py +2 -9
  280. ccxt/pro/binanceusdm.py +2 -0
  281. ccxt/pro/bingx.py +527 -134
  282. ccxt/pro/bitcoincom.py +4 -1
  283. ccxt/pro/bitfinex.py +731 -266
  284. ccxt/pro/bitfinex1.py +635 -0
  285. ccxt/pro/bitget.py +726 -357
  286. ccxt/pro/bithumb.py +380 -0
  287. ccxt/pro/bitmart.py +143 -39
  288. ccxt/pro/bitmex.py +199 -40
  289. ccxt/pro/bitopro.py +25 -13
  290. ccxt/pro/bitrue.py +31 -32
  291. ccxt/pro/bitstamp.py +7 -6
  292. ccxt/pro/bitvavo.py +203 -81
  293. ccxt/pro/blockchaincom.py +30 -17
  294. ccxt/pro/blofin.py +692 -0
  295. ccxt/pro/bybit.py +791 -82
  296. ccxt/pro/cex.py +99 -51
  297. ccxt/pro/coinbase.py +220 -30
  298. ccxt/{async_support/hitbtc3.py → pro/coinbaseadvanced.py} +5 -5
  299. ccxt/pro/{coinbasepro.py → coinbaseexchange.py} +19 -19
  300. ccxt/pro/coinbaseinternational.py +193 -30
  301. ccxt/pro/coincatch.py +1464 -0
  302. ccxt/pro/coincheck.py +11 -6
  303. ccxt/pro/coinex.py +965 -665
  304. ccxt/pro/coinone.py +17 -10
  305. ccxt/pro/cryptocom.py +446 -66
  306. ccxt/pro/currencycom.py +11 -10
  307. ccxt/pro/defx.py +832 -0
  308. ccxt/pro/deribit.py +167 -31
  309. ccxt/pro/exmo.py +252 -20
  310. ccxt/pro/gate.py +729 -64
  311. ccxt/pro/gemini.py +44 -26
  312. ccxt/pro/hashkey.py +802 -0
  313. ccxt/pro/hitbtc.py +208 -103
  314. ccxt/pro/hollaex.py +25 -9
  315. ccxt/pro/htx.py +83 -39
  316. ccxt/pro/huobijp.py +17 -16
  317. ccxt/pro/hyperliquid.py +502 -31
  318. ccxt/pro/idex.py +28 -13
  319. ccxt/pro/independentreserve.py +21 -16
  320. ccxt/pro/kraken.py +298 -51
  321. ccxt/pro/krakenfutures.py +166 -75
  322. ccxt/pro/kucoin.py +395 -77
  323. ccxt/pro/kucoinfutures.py +400 -99
  324. ccxt/pro/lbank.py +52 -31
  325. ccxt/pro/luno.py +12 -10
  326. ccxt/pro/mexc.py +400 -50
  327. ccxt/pro/myokx.py +28 -0
  328. ccxt/pro/ndax.py +25 -12
  329. ccxt/pro/okcoin.py +28 -9
  330. ccxt/pro/okx.py +935 -124
  331. ccxt/pro/onetrading.py +41 -24
  332. ccxt/pro/oxfun.py +1054 -0
  333. ccxt/pro/p2b.py +100 -24
  334. ccxt/pro/paradex.py +352 -0
  335. ccxt/pro/phemex.py +92 -33
  336. ccxt/pro/poloniex.py +128 -49
  337. ccxt/pro/poloniexfutures.py +53 -32
  338. ccxt/pro/probit.py +92 -85
  339. ccxt/pro/upbit.py +401 -8
  340. ccxt/pro/vertex.py +943 -0
  341. ccxt/pro/wazirx.py +46 -28
  342. ccxt/pro/whitebit.py +65 -12
  343. ccxt/pro/woo.py +437 -65
  344. ccxt/pro/woofipro.py +1271 -0
  345. ccxt/pro/xt.py +1067 -0
  346. ccxt/probit.py +143 -110
  347. ccxt/static_dependencies/__init__.py +1 -1
  348. ccxt/static_dependencies/lark/__init__.py +38 -0
  349. ccxt/static_dependencies/lark/__pyinstaller/__init__.py +6 -0
  350. ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +14 -0
  351. ccxt/static_dependencies/lark/ast_utils.py +59 -0
  352. ccxt/static_dependencies/lark/common.py +86 -0
  353. ccxt/static_dependencies/lark/exceptions.py +292 -0
  354. ccxt/static_dependencies/lark/grammar.py +130 -0
  355. ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  356. ccxt/static_dependencies/lark/indenter.py +143 -0
  357. ccxt/static_dependencies/lark/lark.py +658 -0
  358. ccxt/static_dependencies/lark/lexer.py +678 -0
  359. ccxt/static_dependencies/lark/load_grammar.py +1428 -0
  360. ccxt/static_dependencies/lark/parse_tree_builder.py +391 -0
  361. ccxt/static_dependencies/lark/parser_frontends.py +257 -0
  362. ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  363. ccxt/static_dependencies/lark/parsers/cyk.py +340 -0
  364. ccxt/static_dependencies/lark/parsers/earley.py +314 -0
  365. ccxt/static_dependencies/lark/parsers/earley_common.py +42 -0
  366. ccxt/static_dependencies/lark/parsers/earley_forest.py +801 -0
  367. ccxt/static_dependencies/lark/parsers/grammar_analysis.py +203 -0
  368. ccxt/static_dependencies/lark/parsers/lalr_analysis.py +332 -0
  369. ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +158 -0
  370. ccxt/static_dependencies/lark/parsers/lalr_parser.py +122 -0
  371. ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +110 -0
  372. ccxt/static_dependencies/lark/parsers/xearley.py +165 -0
  373. ccxt/static_dependencies/lark/py.typed +0 -0
  374. ccxt/static_dependencies/lark/reconstruct.py +107 -0
  375. ccxt/static_dependencies/lark/tools/__init__.py +70 -0
  376. ccxt/static_dependencies/lark/tools/nearley.py +202 -0
  377. ccxt/static_dependencies/lark/tools/serialize.py +32 -0
  378. ccxt/static_dependencies/lark/tools/standalone.py +196 -0
  379. ccxt/static_dependencies/lark/tree.py +267 -0
  380. ccxt/static_dependencies/lark/tree_matcher.py +186 -0
  381. ccxt/static_dependencies/lark/tree_templates.py +180 -0
  382. ccxt/static_dependencies/lark/utils.py +343 -0
  383. ccxt/static_dependencies/lark/visitors.py +596 -0
  384. ccxt/static_dependencies/marshmallow/__init__.py +81 -0
  385. ccxt/static_dependencies/marshmallow/base.py +65 -0
  386. ccxt/static_dependencies/marshmallow/class_registry.py +94 -0
  387. ccxt/static_dependencies/marshmallow/decorators.py +231 -0
  388. ccxt/static_dependencies/marshmallow/error_store.py +60 -0
  389. ccxt/static_dependencies/marshmallow/exceptions.py +71 -0
  390. ccxt/static_dependencies/marshmallow/fields.py +2114 -0
  391. ccxt/static_dependencies/marshmallow/orderedset.py +89 -0
  392. ccxt/static_dependencies/marshmallow/py.typed +0 -0
  393. ccxt/static_dependencies/marshmallow/schema.py +1228 -0
  394. ccxt/static_dependencies/marshmallow/types.py +12 -0
  395. ccxt/static_dependencies/marshmallow/utils.py +378 -0
  396. ccxt/static_dependencies/marshmallow/validate.py +678 -0
  397. ccxt/static_dependencies/marshmallow/warnings.py +2 -0
  398. ccxt/static_dependencies/marshmallow_dataclass/__init__.py +1047 -0
  399. ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +51 -0
  400. ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +45 -0
  401. ccxt/static_dependencies/marshmallow_dataclass/mypy.py +71 -0
  402. ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  403. ccxt/static_dependencies/marshmallow_dataclass/typing.py +14 -0
  404. ccxt/static_dependencies/marshmallow_dataclass/union_field.py +82 -0
  405. ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +1 -0
  406. ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +193 -0
  407. ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  408. ccxt/static_dependencies/starknet/__init__.py +0 -0
  409. ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  410. ccxt/static_dependencies/starknet/cairo/data_types.py +123 -0
  411. ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  412. ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +77 -0
  413. ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +46 -0
  414. ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +138 -0
  415. ccxt/static_dependencies/starknet/cairo/felt.py +64 -0
  416. ccxt/static_dependencies/starknet/cairo/type_parser.py +121 -0
  417. ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  418. ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +59 -0
  419. ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  420. ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +77 -0
  421. ccxt/static_dependencies/starknet/ccxt_utils.py +7 -0
  422. ccxt/static_dependencies/starknet/common.py +15 -0
  423. ccxt/static_dependencies/starknet/constants.py +39 -0
  424. ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  425. ccxt/static_dependencies/starknet/hash/address.py +79 -0
  426. ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +111 -0
  427. ccxt/static_dependencies/starknet/hash/selector.py +16 -0
  428. ccxt/static_dependencies/starknet/hash/storage.py +12 -0
  429. ccxt/static_dependencies/starknet/hash/utils.py +78 -0
  430. ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  431. ccxt/static_dependencies/starknet/models/typed_data.py +45 -0
  432. ccxt/static_dependencies/starknet/serialization/__init__.py +24 -0
  433. ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +40 -0
  434. ccxt/static_dependencies/starknet/serialization/_context.py +142 -0
  435. ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +10 -0
  436. ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +82 -0
  437. ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +43 -0
  438. ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +37 -0
  439. ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +66 -0
  440. ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +71 -0
  441. ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +71 -0
  442. ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +50 -0
  443. ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +58 -0
  444. ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +43 -0
  445. ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +40 -0
  446. ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +72 -0
  447. ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +36 -0
  448. ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +36 -0
  449. ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +76 -0
  450. ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +100 -0
  451. ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +32 -0
  452. ccxt/static_dependencies/starknet/serialization/errors.py +10 -0
  453. ccxt/static_dependencies/starknet/serialization/factory.py +229 -0
  454. ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +110 -0
  455. ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +59 -0
  456. ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  457. ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +86 -0
  458. ccxt/static_dependencies/starknet/utils/iterable.py +13 -0
  459. ccxt/static_dependencies/starknet/utils/schema.py +13 -0
  460. ccxt/static_dependencies/starknet/utils/typed_data.py +182 -0
  461. ccxt/static_dependencies/starkware/__init__.py +0 -0
  462. ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  463. ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +50 -0
  464. ccxt/static_dependencies/starkware/crypto/math_utils.py +78 -0
  465. ccxt/static_dependencies/starkware/crypto/signature.py +2344 -0
  466. ccxt/static_dependencies/starkware/crypto/utils.py +63 -0
  467. ccxt/static_dependencies/sympy/__init__.py +0 -0
  468. ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  469. ccxt/static_dependencies/sympy/core/intfunc.py +35 -0
  470. ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  471. ccxt/static_dependencies/sympy/external/gmpy.py +345 -0
  472. ccxt/static_dependencies/sympy/external/importtools.py +187 -0
  473. ccxt/static_dependencies/sympy/external/ntheory.py +637 -0
  474. ccxt/static_dependencies/sympy/external/pythonmpq.py +341 -0
  475. ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  476. ccxt/static_dependencies/typing_inspect/typing_inspect.py +851 -0
  477. ccxt/test/{test_async.py → tests_async.py} +456 -391
  478. ccxt/test/tests_helpers.py +285 -0
  479. ccxt/test/tests_init.py +39 -0
  480. ccxt/test/{test_sync.py → tests_sync.py} +456 -393
  481. ccxt/timex.py +123 -70
  482. ccxt/tokocrypto.py +129 -93
  483. ccxt/tradeogre.py +39 -25
  484. ccxt/upbit.py +322 -113
  485. ccxt/vertex.py +2983 -0
  486. ccxt/wavesexchange.py +227 -173
  487. ccxt/wazirx.py +145 -65
  488. ccxt/whitebit.py +533 -138
  489. ccxt/woo.py +1137 -296
  490. ccxt/woofipro.py +2716 -0
  491. ccxt/xt.py +4627 -0
  492. ccxt/yobit.py +159 -92
  493. ccxt/zaif.py +80 -33
  494. ccxt/zonda.py +140 -69
  495. ccxt-4.4.49.dist-info/LICENSE.txt +21 -0
  496. ccxt-4.4.49.dist-info/METADATA +646 -0
  497. ccxt-4.4.49.dist-info/RECORD +669 -0
  498. {ccxt-4.2.77.dist-info → ccxt-4.4.49.dist-info}/WHEEL +1 -1
  499. ccxt/abstract/bitbay.py +0 -47
  500. ccxt/abstract/bitfinex2.py +0 -139
  501. ccxt/abstract/hitbtc3.py +0 -115
  502. ccxt/async_support/bitbay.py +0 -17
  503. ccxt/async_support/bitfinex2.py +0 -3496
  504. ccxt/async_support/flowbtc.py +0 -34
  505. ccxt/bitbay.py +0 -17
  506. ccxt/bitfinex2.py +0 -3496
  507. ccxt/flowbtc.py +0 -34
  508. ccxt/hitbtc3.py +0 -16
  509. ccxt/pro/bitfinex2.py +0 -1081
  510. ccxt/test/base/__init__.py +0 -28
  511. ccxt/test/base/test_account.py +0 -26
  512. ccxt/test/base/test_balance.py +0 -56
  513. ccxt/test/base/test_borrow_interest.py +0 -35
  514. ccxt/test/base/test_borrow_rate.py +0 -32
  515. ccxt/test/base/test_calculate_fee.py +0 -51
  516. ccxt/test/base/test_crypto.py +0 -127
  517. ccxt/test/base/test_currency.py +0 -76
  518. ccxt/test/base/test_datetime.py +0 -103
  519. ccxt/test/base/test_decimal_to_precision.py +0 -392
  520. ccxt/test/base/test_deep_extend.py +0 -68
  521. ccxt/test/base/test_deposit_withdrawal.py +0 -50
  522. ccxt/test/base/test_exchange_datetime_functions.py +0 -76
  523. ccxt/test/base/test_funding_rate_history.py +0 -29
  524. ccxt/test/base/test_last_price.py +0 -32
  525. ccxt/test/base/test_ledger_entry.py +0 -45
  526. ccxt/test/base/test_ledger_item.py +0 -48
  527. ccxt/test/base/test_leverage_tier.py +0 -33
  528. ccxt/test/base/test_margin_mode.py +0 -24
  529. ccxt/test/base/test_margin_modification.py +0 -35
  530. ccxt/test/base/test_market.py +0 -190
  531. ccxt/test/base/test_number.py +0 -411
  532. ccxt/test/base/test_ohlcv.py +0 -32
  533. ccxt/test/base/test_open_interest.py +0 -32
  534. ccxt/test/base/test_order.py +0 -64
  535. ccxt/test/base/test_order_book.py +0 -63
  536. ccxt/test/base/test_position.py +0 -60
  537. ccxt/test/base/test_shared_methods.py +0 -345
  538. ccxt/test/base/test_status.py +0 -24
  539. ccxt/test/base/test_throttle.py +0 -126
  540. ccxt/test/base/test_ticker.py +0 -86
  541. ccxt/test/base/test_trade.py +0 -47
  542. ccxt/test/base/test_trading_fee.py +0 -26
  543. ccxt/test/base/test_transaction.py +0 -39
  544. ccxt-4.2.77.dist-info/METADATA +0 -626
  545. ccxt-4.2.77.dist-info/RECORD +0 -534
  546. {ccxt-4.2.77.dist-info → ccxt-4.4.49.dist-info}/top_level.txt +0 -0
ccxt/lykke.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.lykke import ImplicitAPI
8
- from ccxt.base.types import Balances, Currency, IndexType, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
8
+ from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, IndexType, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
9
9
  from typing import List
10
10
  from ccxt.base.errors import ExchangeError
11
11
  from ccxt.base.errors import BadRequest
@@ -50,6 +50,8 @@ class lykke(Exchange, ImplicitAPI):
50
50
  'fetchCrossBorrowRates': False,
51
51
  'fetchCurrencies': True,
52
52
  'fetchDepositAddress': True,
53
+ 'fetchDepositAddresses': False,
54
+ 'fetchDepositAddressesByNetwork': False,
53
55
  'fetchDeposits': False,
54
56
  'fetchDepositsWithdrawals': True,
55
57
  'fetchFundingHistory': False,
@@ -70,8 +72,13 @@ class lykke(Exchange, ImplicitAPI):
70
72
  'fetchOrderBook': True,
71
73
  'fetchOrders': False,
72
74
  'fetchOrderTrades': False,
75
+ 'fetchPosition': False,
76
+ 'fetchPositionHistory': False,
73
77
  'fetchPositionMode': False,
74
78
  'fetchPositions': False,
79
+ 'fetchPositionsForSymbol': False,
80
+ 'fetchPositionsHistory': False,
81
+ 'fetchPositionsRisk': False,
75
82
  'fetchPremiumIndexOHLCV': False,
76
83
  'fetchTicker': True,
77
84
  'fetchTickers': True,
@@ -185,12 +192,78 @@ class lykke(Exchange, ImplicitAPI):
185
192
  },
186
193
  'commonCurrencies': {
187
194
  },
195
+ 'features': {
196
+ 'spot': {
197
+ 'sandbox': False,
198
+ 'createOrder': {
199
+ 'marginMode': False,
200
+ 'triggerPrice': False,
201
+ 'triggerPriceType': None,
202
+ 'triggerDirection': False,
203
+ 'stopLossPrice': False,
204
+ 'takeProfitPrice': False,
205
+ 'attachedStopLossTakeProfit': None,
206
+ 'timeInForce': {
207
+ 'IOC': False,
208
+ 'FOK': False,
209
+ 'PO': False,
210
+ 'GTD': False,
211
+ },
212
+ 'hedged': False,
213
+ 'trailing': False,
214
+ 'leverage': False,
215
+ 'marketBuyByCost': False,
216
+ 'marketBuyRequiresPrice': False,
217
+ 'selfTradePrevention': False,
218
+ 'iceberg': False,
219
+ },
220
+ 'createOrders': None,
221
+ 'fetchMyTrades': {
222
+ 'marginMode': False,
223
+ 'limit': 1000,
224
+ 'daysBack': 100000, # todo
225
+ 'untilDays': 100000, # todo
226
+ },
227
+ 'fetchOrder': {
228
+ 'marginMode': False,
229
+ 'trigger': False,
230
+ 'trailing': False,
231
+ },
232
+ 'fetchOpenOrders': {
233
+ 'marginMode': False,
234
+ 'limit': 1000,
235
+ 'trigger': False,
236
+ 'trailing': False,
237
+ },
238
+ 'fetchOrders': None,
239
+ 'fetchClosedOrders': {
240
+ 'marginMode': False,
241
+ 'limit': 1000,
242
+ 'daysBack': None,
243
+ 'daysBackCanceled': None,
244
+ 'untilDays': None,
245
+ 'trigger': False,
246
+ 'trailing': False,
247
+ },
248
+ 'fetchOHLCV': None,
249
+ },
250
+ 'swap': {
251
+ 'linear': None,
252
+ 'inverse': None,
253
+ },
254
+ 'future': {
255
+ 'linear': None,
256
+ 'inverse': None,
257
+ },
258
+ },
188
259
  })
189
260
 
190
- def fetch_currencies(self, params={}):
261
+ def fetch_currencies(self, params={}) -> Currencies:
191
262
  """
192
263
  fetches all available currencies on an exchange
193
- :see: https://lykkecity.github.io/Trading-API/#get-all-assets
264
+
265
+ https://lykkecity.github.io/Trading-API/#get-all-assets
266
+
194
267
  :param dict [params]: extra parameters specific to the exchange API endpoint
195
268
  :returns dict: an associative dictionary of currencies
196
269
  """
@@ -200,7 +273,7 @@ class lykke(Exchange, ImplicitAPI):
200
273
  # {
201
274
  # "payload":[
202
275
  # {
203
- # "assetId":"115a60c2-0da1-40f9-a7f2-41da723b9074",
276
+ # "assetId":"115a60c2-0da1-40f9-a7f2-41da723b9075",
204
277
  # "name":"Monaco Token",
205
278
  # "symbol":"MCO",
206
279
  # "accuracy":6,
@@ -226,7 +299,7 @@ class lykke(Exchange, ImplicitAPI):
226
299
  # "error":null
227
300
  # }
228
301
  #
229
- result = {}
302
+ result: dict = {}
230
303
  for i in range(0, len(currencies)):
231
304
  currency = currencies[i]
232
305
  id = self.safe_string(currency, 'assetId')
@@ -263,10 +336,12 @@ class lykke(Exchange, ImplicitAPI):
263
336
  }
264
337
  return result
265
338
 
266
- def fetch_markets(self, params={}):
339
+ def fetch_markets(self, params={}) -> List[Market]:
267
340
  """
268
341
  retrieves data on all markets for lykke
269
- :see: https://lykkecity.github.io/Trading-API/#get-asset-by-id
342
+
343
+ https://lykkecity.github.io/Trading-API/#get-asset-by-id
344
+
270
345
  :param dict [params]: extra parameters specific to the exchange API endpoint
271
346
  :returns dict[]: an array of objects representing market data
272
347
  """
@@ -352,7 +427,7 @@ class lykke(Exchange, ImplicitAPI):
352
427
  })
353
428
  return result
354
429
 
355
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
430
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
356
431
  #
357
432
  # fetchTickers
358
433
  #
@@ -423,15 +498,17 @@ class lykke(Exchange, ImplicitAPI):
423
498
  def fetch_ticker(self, symbol: str, params={}) -> Ticker:
424
499
  """
425
500
  fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
426
- :see: https://lykkecity.github.io/Trading-API/#get-current-prices
427
- :see: https://lykkecity.github.io/Trading-API/#24hr-ticker-price-change-statistics
501
+
502
+ https://lykkecity.github.io/Trading-API/#get-current-prices
503
+ https://lykkecity.github.io/Trading-API/#24hr-ticker-price-change-statistics
504
+
428
505
  :param str symbol: unified symbol of the market to fetch the ticker for
429
506
  :param dict [params]: extra parameters specific to the exchange API endpoint
430
507
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
431
508
  """
432
509
  self.load_markets()
433
510
  market = self.market(symbol)
434
- request = {
511
+ request: dict = {
435
512
  'assetPairIds': market['id'],
436
513
  }
437
514
  # publicGetTickers or publicGetPrices
@@ -480,7 +557,9 @@ class lykke(Exchange, ImplicitAPI):
480
557
  def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
481
558
  """
482
559
  fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
483
- :see: https://lykkecity.github.io/Trading-API/#24hr-ticker-price-change-statistics
560
+
561
+ https://lykkecity.github.io/Trading-API/#24hr-ticker-price-change-statistics
562
+
484
563
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
485
564
  :param dict [params]: extra parameters specific to the exchange API endpoint
486
565
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -510,7 +589,9 @@ class lykke(Exchange, ImplicitAPI):
510
589
  def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
511
590
  """
512
591
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
513
- :see: https://lykkecity.github.io/Trading-API/#asset-pair-order-book-ticker
592
+
593
+ https://lykkecity.github.io/Trading-API/#asset-pair-order-book-ticker
594
+
514
595
  :param str symbol: unified symbol of the market to fetch the order book for
515
596
  :param int [limit]: the maximum amount of order book entries to return
516
597
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -518,7 +599,7 @@ class lykke(Exchange, ImplicitAPI):
518
599
  """
519
600
  self.load_markets()
520
601
  market = self.market(symbol)
521
- request = {
602
+ request: dict = {
522
603
  'assetPairId': market['id'],
523
604
  }
524
605
  if limit is not None:
@@ -552,7 +633,7 @@ class lykke(Exchange, ImplicitAPI):
552
633
  timestamp = self.safe_integer(orderbook, 'timestamp')
553
634
  return self.parse_order_book(orderbook, market['symbol'], timestamp, 'bids', 'asks', 'p', 'v')
554
635
 
555
- def parse_trade(self, trade, market: Market = None) -> Trade:
636
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
556
637
  #
557
638
  # public fetchTrades
558
639
  #
@@ -611,7 +692,9 @@ class lykke(Exchange, ImplicitAPI):
611
692
  def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
612
693
  """
613
694
  get the list of most recent trades for a particular symbol
614
- :see: https://lykkecity.github.io/Trading-API/#get-public-trades
695
+
696
+ https://lykkecity.github.io/Trading-API/#get-public-trades
697
+
615
698
  :param str symbol: unified symbol of the market to fetch trades for
616
699
  :param int [since]: timestamp in ms of the earliest trade to fetch
617
700
  :param int [limit]: the maximum amount of trades to fetch
@@ -620,7 +703,7 @@ class lykke(Exchange, ImplicitAPI):
620
703
  """
621
704
  self.load_markets()
622
705
  market = self.market(symbol)
623
- request = {
706
+ request: dict = {
624
707
  'assetPairId': market['id'],
625
708
  # 'offset': 0,
626
709
  }
@@ -656,15 +739,15 @@ class lykke(Exchange, ImplicitAPI):
656
739
  # }
657
740
  # ]
658
741
  #
659
- result = {'info': response}
742
+ result: dict = {'info': response}
660
743
  for i in range(0, len(response)):
661
744
  balance = response[i]
662
745
  currencyId = self.safe_string(balance, 'assetId')
663
746
  code = self.safe_currency_code(currencyId)
664
747
  account = self.account()
665
- free = self.safe_string(balance, 'available')
748
+ total = self.safe_string(balance, 'available')
666
749
  used = self.safe_string(balance, 'reserved')
667
- account['free'] = free
750
+ account['total'] = total
668
751
  account['used'] = used
669
752
  result[code] = account
670
753
  return self.safe_balance(result)
@@ -672,7 +755,9 @@ class lykke(Exchange, ImplicitAPI):
672
755
  def fetch_balance(self, params={}) -> Balances:
673
756
  """
674
757
  query for balance and get the amount of funds available for trading or funds locked in orders
675
- :see: https://lykkecity.github.io/Trading-API/#get-the-current-balance
758
+
759
+ https://lykkecity.github.io/Trading-API/#get-the-current-balance
760
+
676
761
  :param dict [params]: extra parameters specific to the exchange API endpoint
677
762
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
678
763
  """
@@ -694,8 +779,8 @@ class lykke(Exchange, ImplicitAPI):
694
779
  #
695
780
  return self.parse_balance(payload)
696
781
 
697
- def parse_order_status(self, status):
698
- statuses = {
782
+ def parse_order_status(self, status: Str):
783
+ statuses: dict = {
699
784
  'Open': 'open',
700
785
  'Pending': 'open',
701
786
  'InOrderBook': 'open',
@@ -708,7 +793,7 @@ class lykke(Exchange, ImplicitAPI):
708
793
  }
709
794
  return self.safe_string(statuses, status, status)
710
795
 
711
- def parse_order(self, order, market: Market = None) -> Order:
796
+ def parse_order(self, order: dict, market: Market = None) -> Order:
712
797
  #
713
798
  # {
714
799
  # "id":"1b367978-7e4f-454b-b870-64040d484443",
@@ -751,7 +836,6 @@ class lykke(Exchange, ImplicitAPI):
751
836
  'postOnly': None,
752
837
  'side': side,
753
838
  'price': price,
754
- 'stopPrice': None,
755
839
  'triggerPrice': None,
756
840
  'amount': amount,
757
841
  'cost': cost,
@@ -766,19 +850,21 @@ class lykke(Exchange, ImplicitAPI):
766
850
  def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
767
851
  """
768
852
  create a trade order
769
- :see: https://lykkecity.github.io/Trading-API/#place-a-limit-order
770
- :see: https://lykkecity.github.io/Trading-API/#place-a-market-order
853
+
854
+ https://lykkecity.github.io/Trading-API/#place-a-limit-order
855
+ https://lykkecity.github.io/Trading-API/#place-a-market-order
856
+
771
857
  :param str symbol: unified symbol of the market to create an order in
772
858
  :param str type: 'market' or 'limit'
773
859
  :param str side: 'buy' or 'sell'
774
860
  :param float amount: how much of currency you want to trade in units of base currency
775
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
861
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
776
862
  :param dict [params]: extra parameters specific to the exchange API endpoint
777
863
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
778
864
  """
779
865
  self.load_markets()
780
866
  market = self.market(symbol)
781
- query = {
867
+ query: dict = {
782
868
  'assetPairId': market['id'],
783
869
  'side': self.capitalize(side),
784
870
  'volume': float(self.amount_to_precision(market['symbol'], amount)),
@@ -838,13 +924,15 @@ class lykke(Exchange, ImplicitAPI):
838
924
  def cancel_order(self, id: str, symbol: Str = None, params={}):
839
925
  """
840
926
  cancels an open order
841
- :see: https://lykkecity.github.io/Trading-API/#cancel-orders-by-id
927
+
928
+ https://lykkecity.github.io/Trading-API/#cancel-orders-by-id
929
+
842
930
  :param str id: order id
843
931
  :param str symbol: unified symbol of the market the order was made in
844
932
  :param dict [params]: extra parameters specific to the exchange API endpoint
845
933
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
846
934
  """
847
- request = {
935
+ request: dict = {
848
936
  'orderId': id,
849
937
  }
850
938
  #
@@ -853,18 +941,23 @@ class lykke(Exchange, ImplicitAPI):
853
941
  # "error":null
854
942
  # }
855
943
  #
856
- return self.privateDeleteOrdersOrderId(self.extend(request, params))
944
+ response = self.privateDeleteOrdersOrderId(self.extend(request, params))
945
+ return self.safe_order({
946
+ 'info': response,
947
+ })
857
948
 
858
949
  def cancel_all_orders(self, symbol: Str = None, params={}):
859
950
  """
860
951
  cancel all open orders
861
- :see: https://lykkecity.github.io/Trading-API/#mass-cancel-orders
952
+
953
+ https://lykkecity.github.io/Trading-API/#mass-cancel-orders
954
+
862
955
  :param str symbol: unified market symbol, only orders in the market of self symbol are cancelled when symbol is not None
863
956
  :param dict [params]: extra parameters specific to the exchange API endpoint
864
957
  :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
865
958
  """
866
959
  self.load_markets()
867
- request = {
960
+ request: dict = {
868
961
  # 'side': 'Buy',
869
962
  }
870
963
  market = None
@@ -877,18 +970,26 @@ class lykke(Exchange, ImplicitAPI):
877
970
  # "error":null
878
971
  # }
879
972
  #
880
- return self.privateDeleteOrders(self.extend(request, params))
973
+ response = self.privateDeleteOrders(self.extend(request, params))
974
+ return [
975
+ self.safe_order({
976
+ 'info': response,
977
+ }),
978
+ ]
881
979
 
882
980
  def fetch_order(self, id: str, symbol: Str = None, params={}):
883
981
  """
884
982
  fetches information on an order made by the user
885
- :see: https://lykkecity.github.io/Trading-API/#get-order-by-id
983
+
984
+ https://lykkecity.github.io/Trading-API/#get-order-by-id
985
+
986
+ :param str id: order id
886
987
  :param str symbol: not used by lykke fetchOrder
887
988
  :param dict [params]: extra parameters specific to the exchange API endpoint
888
989
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
889
990
  """
890
991
  self.load_markets()
891
- request = {
992
+ request: dict = {
892
993
  'orderId': id,
893
994
  }
894
995
  response = self.privateGetOrdersOrderId(self.extend(request, params))
@@ -917,7 +1018,9 @@ class lykke(Exchange, ImplicitAPI):
917
1018
  def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
918
1019
  """
919
1020
  fetch all unfilled currently open orders
920
- :see: https://lykkecity.github.io/Trading-API/#get-active-or-closed-orders
1021
+
1022
+ https://lykkecity.github.io/Trading-API/#get-active-or-closed-orders
1023
+
921
1024
  :param str symbol: unified market symbol
922
1025
  :param int [since]: the earliest time in ms to fetch open orders for
923
1026
  :param int [limit]: the maximum number of open orders structures to retrieve
@@ -928,7 +1031,7 @@ class lykke(Exchange, ImplicitAPI):
928
1031
  market = None
929
1032
  if symbol is not None:
930
1033
  market = self.market(symbol)
931
- request = {
1034
+ request: dict = {
932
1035
  # 'offset': 0,
933
1036
  # 'take': 1,
934
1037
  }
@@ -962,7 +1065,9 @@ class lykke(Exchange, ImplicitAPI):
962
1065
  def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
963
1066
  """
964
1067
  fetches information on multiple closed orders made by the user
965
- :see: https://lykkecity.github.io/Trading-API/#get-active-or-closed-orders
1068
+
1069
+ https://lykkecity.github.io/Trading-API/#get-active-or-closed-orders
1070
+
966
1071
  :param str symbol: unified market symbol of the market orders were made in
967
1072
  :param int [since]: the earliest time in ms to fetch orders for
968
1073
  :param int [limit]: the maximum number of order structures to retrieve
@@ -973,7 +1078,7 @@ class lykke(Exchange, ImplicitAPI):
973
1078
  market = None
974
1079
  if symbol is not None:
975
1080
  market = self.market(symbol)
976
- request = {
1081
+ request: dict = {
977
1082
  # 'offset': 0,
978
1083
  # 'take': 1,
979
1084
  }
@@ -1007,7 +1112,9 @@ class lykke(Exchange, ImplicitAPI):
1007
1112
  def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
1008
1113
  """
1009
1114
  fetch all trades made by the user
1010
- :see: https://lykkecity.github.io/Trading-API/#get-trade-history
1115
+
1116
+ https://lykkecity.github.io/Trading-API/#get-trade-history
1117
+
1011
1118
  :param str symbol: unified market symbol
1012
1119
  :param int [since]: the earliest time in ms to fetch trades for
1013
1120
  :param int [limit]: the maximum number of trades structures to retrieve
@@ -1015,7 +1122,7 @@ class lykke(Exchange, ImplicitAPI):
1015
1122
  :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
1016
1123
  """
1017
1124
  self.load_markets()
1018
- request = {
1125
+ request: dict = {
1019
1126
  # 'side': 'buy',
1020
1127
  # 'offset': 0,
1021
1128
  # 'take': 1,
@@ -1059,17 +1166,19 @@ class lykke(Exchange, ImplicitAPI):
1059
1166
  amount = Precise.string_abs(self.safe_string(bidask, amountKey))
1060
1167
  return [self.parse_number(price), self.parse_number(amount)]
1061
1168
 
1062
- def fetch_deposit_address(self, code: str, params={}):
1169
+ def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
1063
1170
  """
1064
1171
  fetch the deposit address for a currency associated with self account
1065
- :see: https://lykkecity.github.io/Trading-API/#get-deposit-address-for-a-given-asset
1172
+
1173
+ https://lykkecity.github.io/Trading-API/#get-deposit-address-for-a-given-asset
1174
+
1066
1175
  :param str code: unified currency code
1067
1176
  :param dict [params]: extra parameters specific to the exchange API endpoint
1068
1177
  :returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
1069
1178
  """
1070
1179
  self.load_markets()
1071
1180
  currency = self.currency(code)
1072
- request = {
1181
+ request: dict = {
1073
1182
  'assetId': self.safe_string(currency, 'id'),
1074
1183
  }
1075
1184
  response = self.privateGetOperationsDepositsAddressesAssetId(self.extend(request, params))
@@ -1087,14 +1196,14 @@ class lykke(Exchange, ImplicitAPI):
1087
1196
  tag = self.safe_string(response, 'addressExtension')
1088
1197
  self.check_address(address)
1089
1198
  return {
1199
+ 'info': response,
1090
1200
  'currency': code,
1201
+ 'network': None,
1091
1202
  'address': address,
1092
1203
  'tag': tag,
1093
- 'network': None,
1094
- 'info': response,
1095
1204
  }
1096
1205
 
1097
- def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
1206
+ def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
1098
1207
  #
1099
1208
  # withdraw
1100
1209
  # "3035b1ad-2005-4587-a986-1f7966be78e0"
@@ -1156,7 +1265,9 @@ class lykke(Exchange, ImplicitAPI):
1156
1265
  def fetch_deposits_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
1157
1266
  """
1158
1267
  fetch history of deposits and withdrawals
1159
- :see: https://lykkecity.github.io/Trading-API/#get-the-history-of-withdrawals-and-deposits
1268
+
1269
+ https://lykkecity.github.io/Trading-API/#get-the-history-of-withdrawals-and-deposits
1270
+
1160
1271
  :param str [code]: unified currency code for the currency of the deposit/withdrawals, default is None
1161
1272
  :param int [since]: timestamp in ms of the earliest deposit/withdrawal, default is None
1162
1273
  :param int [limit]: max number of deposit/withdrawals to return, default is None
@@ -1164,7 +1275,7 @@ class lykke(Exchange, ImplicitAPI):
1164
1275
  :returns dict: a list of `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
1165
1276
  """
1166
1277
  self.load_markets()
1167
- request = {
1278
+ request: dict = {
1168
1279
  # 'offset': 0,
1169
1280
  # 'take': 1,
1170
1281
  }
@@ -1192,10 +1303,12 @@ class lykke(Exchange, ImplicitAPI):
1192
1303
  currency = self.currency(code)
1193
1304
  return self.parse_transactions(payload, currency, since, limit)
1194
1305
 
1195
- def withdraw(self, code: str, amount: float, address, tag=None, params={}):
1306
+ def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
1196
1307
  """
1197
1308
  make a withdrawal
1198
- :see: https://lykkecity.github.io/Trading-API/#withdrawal
1309
+
1310
+ https://lykkecity.github.io/Trading-API/#withdrawal
1311
+
1199
1312
  :param str code: unified currency code
1200
1313
  :param float amount: the amount to withdraw
1201
1314
  :param str address: the address to withdraw to
@@ -1206,7 +1319,7 @@ class lykke(Exchange, ImplicitAPI):
1206
1319
  self.load_markets()
1207
1320
  self.check_address(address)
1208
1321
  currency = self.currency(code)
1209
- request = {
1322
+ request: dict = {
1210
1323
  'assetId': currency['id'],
1211
1324
  'volume': float(self.currency_to_precision(code, amount)),
1212
1325
  'destinationAddress': address,
@@ -1243,7 +1356,7 @@ class lykke(Exchange, ImplicitAPI):
1243
1356
  headers['X-Request-ID'] = self.uuid()
1244
1357
  return {'url': url, 'method': method, 'body': body, 'headers': headers}
1245
1358
 
1246
- def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
1359
+ def handle_errors(self, code: int, reason: str, url: str, method: str, headers: dict, body: str, response, requestHeaders, requestBody):
1247
1360
  if response is None:
1248
1361
  return None
1249
1362
  error = self.safe_value(response, 'error', {})