ccxt 4.2.77__py2.py3-none-any.whl → 4.4.48__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 +3104 -880
  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 +1513 -563
  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 +206 -89
  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 +557 -323
  126. ccxt/async_support/digifinex.py +340 -223
  127. ccxt/async_support/ellipx.py +1826 -0
  128. ccxt/async_support/exmo.py +259 -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 +334 -178
  133. ccxt/async_support/hollaex.py +134 -83
  134. ccxt/async_support/htx.py +1095 -563
  135. ccxt/async_support/huobijp.py +105 -56
  136. ccxt/async_support/hyperliquid.py +1633 -268
  137. ccxt/async_support/idex.py +148 -95
  138. ccxt/async_support/independentreserve.py +236 -31
  139. ccxt/async_support/indodax.py +165 -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 +138 -106
  145. ccxt/async_support/latoken.py +135 -79
  146. ccxt/async_support/lbank.py +290 -113
  147. ccxt/async_support/luno.py +112 -62
  148. ccxt/async_support/lykke.py +104 -55
  149. ccxt/async_support/mercado.py +36 -29
  150. ccxt/async_support/mexc.py +995 -429
  151. ccxt/async_support/myokx.py +43 -0
  152. ccxt/async_support/ndax.py +163 -82
  153. ccxt/async_support/novadax.py +121 -75
  154. ccxt/async_support/oceanex.py +175 -59
  155. ccxt/async_support/okcoin.py +222 -163
  156. ccxt/async_support/okx.py +1776 -454
  157. ccxt/async_support/onetrading.py +132 -414
  158. ccxt/async_support/oxfun.py +2832 -0
  159. ccxt/async_support/p2b.py +79 -51
  160. ccxt/async_support/paradex.py +2017 -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 +3104 -880
  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 +1513 -563
  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 +206 -89
  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 +557 -323
  234. ccxt/digifinex.py +340 -223
  235. ccxt/ellipx.py +1826 -0
  236. ccxt/exmo.py +259 -128
  237. ccxt/gate.py +1472 -463
  238. ccxt/gemini.py +206 -84
  239. ccxt/hashkey.py +4164 -0
  240. ccxt/hitbtc.py +334 -178
  241. ccxt/hollaex.py +134 -83
  242. ccxt/htx.py +1095 -563
  243. ccxt/huobijp.py +105 -56
  244. ccxt/hyperliquid.py +1632 -268
  245. ccxt/idex.py +148 -95
  246. ccxt/independentreserve.py +235 -31
  247. ccxt/indodax.py +165 -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 +138 -106
  253. ccxt/latoken.py +135 -79
  254. ccxt/lbank.py +290 -113
  255. ccxt/luno.py +112 -62
  256. ccxt/lykke.py +104 -55
  257. ccxt/mercado.py +36 -29
  258. ccxt/mexc.py +994 -429
  259. ccxt/myokx.py +43 -0
  260. ccxt/ndax.py +163 -82
  261. ccxt/novadax.py +121 -75
  262. ccxt/oceanex.py +175 -59
  263. ccxt/okcoin.py +222 -163
  264. ccxt/okx.py +1776 -454
  265. ccxt/onetrading.py +132 -414
  266. ccxt/oxfun.py +2831 -0
  267. ccxt/p2b.py +79 -51
  268. ccxt/paradex.py +2017 -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 +138 -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.48.dist-info/LICENSE.txt +21 -0
  496. ccxt-4.4.48.dist-info/METADATA +646 -0
  497. ccxt-4.4.48.dist-info/RECORD +669 -0
  498. {ccxt-4.2.77.dist-info → ccxt-4.4.48.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.48.dist-info}/top_level.txt +0 -0
ccxt/hollaex.py CHANGED
@@ -6,15 +6,15 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.hollaex import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
9
+ from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
10
10
  from typing import List
11
+ from ccxt.base.errors import AuthenticationError
11
12
  from ccxt.base.errors import ArgumentsRequired
12
13
  from ccxt.base.errors import BadRequest
13
14
  from ccxt.base.errors import InsufficientFunds
14
15
  from ccxt.base.errors import OrderNotFound
15
16
  from ccxt.base.errors import OrderImmediatelyFillable
16
17
  from ccxt.base.errors import NetworkError
17
- from ccxt.base.errors import AuthenticationError
18
18
  from ccxt.base.decimal_to_precision import TICK_SIZE
19
19
  from ccxt.base.precise import Precise
20
20
 
@@ -59,6 +59,7 @@ class hollaex(Exchange, ImplicitAPI):
59
59
  'fetchCurrencies': True,
60
60
  'fetchDepositAddress': 'emulated',
61
61
  'fetchDepositAddresses': True,
62
+ 'fetchDepositAddressesByNetwork': False,
62
63
  'fetchDeposits': True,
63
64
  'fetchFundingHistory': False,
64
65
  'fetchFundingRate': False,
@@ -96,6 +97,7 @@ class hollaex(Exchange, ImplicitAPI):
96
97
  'fetchWithdrawal': True,
97
98
  'fetchWithdrawals': True,
98
99
  'reduceMargin': False,
100
+ 'sandbox': True,
99
101
  'setLeverage': False,
100
102
  'setMarginMode': False,
101
103
  'setPositionMode': False,
@@ -215,10 +217,12 @@ class hollaex(Exchange, ImplicitAPI):
215
217
  },
216
218
  })
217
219
 
218
- def fetch_markets(self, params={}):
220
+ def fetch_markets(self, params={}) -> List[Market]:
219
221
  """
220
222
  retrieves data on all markets for hollaex
221
- :see: https://apidocs.hollaex.com/#constants
223
+
224
+ https://apidocs.hollaex.com/#constants
225
+
222
226
  :param dict [params]: extra parameters specific to the exchange API endpoint
223
227
  :returns dict[]: an array of objects representing market data
224
228
  """
@@ -328,10 +332,12 @@ class hollaex(Exchange, ImplicitAPI):
328
332
  })
329
333
  return result
330
334
 
331
- def fetch_currencies(self, params={}):
335
+ def fetch_currencies(self, params={}) -> Currencies:
332
336
  """
333
337
  fetches all available currencies on an exchange
334
- :see: https://apidocs.hollaex.com/#constants
338
+
339
+ https://apidocs.hollaex.com/#constants
340
+
335
341
  :param dict [params]: extra parameters specific to the exchange API endpoint
336
342
  :returns dict: an associative dictionary of currencies
337
343
  """
@@ -347,7 +353,7 @@ class hollaex(Exchange, ImplicitAPI):
347
353
  # "verified":true,
348
354
  # "allow_deposit":true,
349
355
  # "allow_withdrawal":true,
350
- # "withdrawal_fee":0.0001,
356
+ # "withdrawal_fee":0.0002,
351
357
  # "min":0.001,
352
358
  # "max":100000,
353
359
  # "increment_unit":0.001,
@@ -373,7 +379,7 @@ class hollaex(Exchange, ImplicitAPI):
373
379
  #
374
380
  coins = self.safe_value(response, 'coins', {})
375
381
  keys = list(coins.keys())
376
- result = {}
382
+ result: dict = {}
377
383
  for i in range(0, len(keys)):
378
384
  key = keys[i]
379
385
  currency = coins[key]
@@ -415,7 +421,9 @@ class hollaex(Exchange, ImplicitAPI):
415
421
  def fetch_order_books(self, symbols: Strings = None, limit: Int = None, params={}):
416
422
  """
417
423
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data for multiple markets
418
- :see: https://apidocs.hollaex.com/#orderbooks
424
+
425
+ https://apidocs.hollaex.com/#orderbooks
426
+
419
427
  :param str[]|None symbols: not used by hollaex fetchOrderBooks()
420
428
  :param int [limit]: not used by hollaex fetchOrderBooks()
421
429
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -423,7 +431,7 @@ class hollaex(Exchange, ImplicitAPI):
423
431
  """
424
432
  self.load_markets()
425
433
  response = self.publicGetOrderbooks(params)
426
- result = {}
434
+ result: dict = {}
427
435
  marketIds = list(response.keys())
428
436
  for i in range(0, len(marketIds)):
429
437
  marketId = marketIds[i]
@@ -436,7 +444,9 @@ class hollaex(Exchange, ImplicitAPI):
436
444
  def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
437
445
  """
438
446
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
439
- :see: https://apidocs.hollaex.com/#orderbook
447
+
448
+ https://apidocs.hollaex.com/#orderbook
449
+
440
450
  :param str symbol: unified symbol of the market to fetch the order book for
441
451
  :param int [limit]: the maximum amount of order book entries to return
442
452
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -444,7 +454,7 @@ class hollaex(Exchange, ImplicitAPI):
444
454
  """
445
455
  self.load_markets()
446
456
  market = self.market(symbol)
447
- request = {
457
+ request: dict = {
448
458
  'symbol': market['id'],
449
459
  }
450
460
  response = self.publicGetOrderbook(self.extend(request, params))
@@ -474,14 +484,16 @@ class hollaex(Exchange, ImplicitAPI):
474
484
  def fetch_ticker(self, symbol: str, params={}) -> Ticker:
475
485
  """
476
486
  fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
477
- :see: https://apidocs.hollaex.com/#ticker
487
+
488
+ https://apidocs.hollaex.com/#ticker
489
+
478
490
  :param str symbol: unified symbol of the market to fetch the ticker for
479
491
  :param dict [params]: extra parameters specific to the exchange API endpoint
480
492
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
481
493
  """
482
494
  self.load_markets()
483
495
  market = self.market(symbol)
484
- request = {
496
+ request: dict = {
485
497
  'symbol': market['id'],
486
498
  }
487
499
  response = self.publicGetTicker(self.extend(request, params))
@@ -501,7 +513,9 @@ class hollaex(Exchange, ImplicitAPI):
501
513
  def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
502
514
  """
503
515
  fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
504
- :see: https://apidocs.hollaex.com/#tickers
516
+
517
+ https://apidocs.hollaex.com/#tickers
518
+
505
519
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
506
520
  :param dict [params]: extra parameters specific to the exchange API endpoint
507
521
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -526,19 +540,19 @@ class hollaex(Exchange, ImplicitAPI):
526
540
  #
527
541
  return self.parse_tickers(response, symbols)
528
542
 
529
- def parse_tickers(self, response, symbols: Strings = None, params={}):
530
- result = {}
531
- keys = list(response.keys())
543
+ def parse_tickers(self, tickers, symbols: Strings = None, params={}) -> Tickers:
544
+ result: dict = {}
545
+ keys = list(tickers.keys())
532
546
  for i in range(0, len(keys)):
533
547
  key = keys[i]
534
- ticker = response[key]
548
+ ticker = tickers[key]
535
549
  marketId = self.safe_string(ticker, 'symbol', key)
536
550
  market = self.safe_market(marketId, None, '-')
537
551
  symbol = market['symbol']
538
552
  result[symbol] = self.extend(self.parse_ticker(ticker, market), params)
539
553
  return self.filter_by_array_tickers(result, 'symbol', symbols)
540
554
 
541
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
555
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
542
556
  #
543
557
  # fetchTicker
544
558
  #
@@ -596,7 +610,9 @@ class hollaex(Exchange, ImplicitAPI):
596
610
  def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
597
611
  """
598
612
  get the list of most recent trades for a particular symbol
599
- :see: https://apidocs.hollaex.com/#trades
613
+
614
+ https://apidocs.hollaex.com/#trades
615
+
600
616
  :param str symbol: unified symbol of the market to fetch trades for
601
617
  :param int [since]: timestamp in ms of the earliest trade to fetch
602
618
  :param int [limit]: the maximum amount of trades to fetch
@@ -605,7 +621,7 @@ class hollaex(Exchange, ImplicitAPI):
605
621
  """
606
622
  self.load_markets()
607
623
  market = self.market(symbol)
608
- request = {
624
+ request: dict = {
609
625
  'symbol': market['id'],
610
626
  }
611
627
  response = self.publicGetTrades(self.extend(request, params))
@@ -622,10 +638,10 @@ class hollaex(Exchange, ImplicitAPI):
622
638
  # ]
623
639
  # }
624
640
  #
625
- trades = self.safe_value(response, market['id'], [])
641
+ trades = self.safe_list(response, market['id'], [])
626
642
  return self.parse_trades(trades, market, since, limit)
627
643
 
628
- def parse_trade(self, trade, market: Market = None) -> Trade:
644
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
629
645
  #
630
646
  # fetchTrades(public)
631
647
  #
@@ -679,10 +695,12 @@ class hollaex(Exchange, ImplicitAPI):
679
695
  'fee': fee,
680
696
  }, market)
681
697
 
682
- def fetch_trading_fees(self, params={}):
698
+ def fetch_trading_fees(self, params={}) -> TradingFees:
683
699
  """
684
700
  fetch the trading fees for multiple markets
685
- :see: https://apidocs.hollaex.com/#tiers
701
+
702
+ https://apidocs.hollaex.com/#tiers
703
+
686
704
  :param dict [params]: extra parameters specific to the exchange API endpoint
687
705
  :returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
688
706
  """
@@ -720,7 +738,7 @@ class hollaex(Exchange, ImplicitAPI):
720
738
  fees = self.safe_value(firstTier, 'fees', {})
721
739
  makerFees = self.safe_value(fees, 'maker', {})
722
740
  takerFees = self.safe_value(fees, 'taker', {})
723
- result = {}
741
+ result: dict = {}
724
742
  for i in range(0, len(self.symbols)):
725
743
  symbol = self.symbols[i]
726
744
  market = self.market(symbol)
@@ -739,7 +757,9 @@ class hollaex(Exchange, ImplicitAPI):
739
757
  def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
740
758
  """
741
759
  fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
742
- :see: https://apidocs.hollaex.com/#chart
760
+
761
+ https://apidocs.hollaex.com/#chart
762
+
743
763
  :param str symbol: unified symbol of the market to fetch OHLCV data for
744
764
  :param str timeframe: the length of time each candle represents
745
765
  :param int [since]: timestamp in ms of the earliest candle to fetch
@@ -749,7 +769,7 @@ class hollaex(Exchange, ImplicitAPI):
749
769
  """
750
770
  self.load_markets()
751
771
  market = self.market(symbol)
752
- request = {
772
+ request: dict = {
753
773
  'symbol': market['id'],
754
774
  'resolution': self.safe_string(self.timeframes, timeframe, timeframe),
755
775
  }
@@ -808,7 +828,7 @@ class hollaex(Exchange, ImplicitAPI):
808
828
 
809
829
  def parse_balance(self, response) -> Balances:
810
830
  timestamp = self.parse8601(self.safe_string(response, 'updated_at'))
811
- result = {
831
+ result: dict = {
812
832
  'info': response,
813
833
  'timestamp': timestamp,
814
834
  'datetime': self.iso8601(timestamp),
@@ -826,7 +846,9 @@ class hollaex(Exchange, ImplicitAPI):
826
846
  def fetch_balance(self, params={}) -> Balances:
827
847
  """
828
848
  query for balance and get the amount of funds available for trading or funds locked in orders
829
- :see: https://apidocs.hollaex.com/#get-balance
849
+
850
+ https://apidocs.hollaex.com/#get-balance
851
+
830
852
  :param dict [params]: extra parameters specific to the exchange API endpoint
831
853
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
832
854
  """
@@ -849,14 +871,16 @@ class hollaex(Exchange, ImplicitAPI):
849
871
  def fetch_open_order(self, id: str, symbol: Str = None, params={}):
850
872
  """
851
873
  fetch an open order by it's id
852
- :see: https://apidocs.hollaex.com/#get-order
874
+
875
+ https://apidocs.hollaex.com/#get-order
876
+
853
877
  :param str id: order id
854
878
  :param str symbol: not used by hollaex fetchOpenOrder()
855
879
  :param dict [params]: extra parameters specific to the exchange API endpoint
856
880
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
857
881
  """
858
882
  self.load_markets()
859
- request = {
883
+ request: dict = {
860
884
  'order_id': id,
861
885
  }
862
886
  response = self.privateGetOrder(self.extend(request, params))
@@ -889,14 +913,16 @@ class hollaex(Exchange, ImplicitAPI):
889
913
  def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
890
914
  """
891
915
  fetch all unfilled currently open orders
892
- :see: https://apidocs.hollaex.com/#get-all-orders
916
+
917
+ https://apidocs.hollaex.com/#get-all-orders
918
+
893
919
  :param str symbol: unified market symbol
894
920
  :param int [since]: the earliest time in ms to fetch open orders for
895
921
  :param int [limit]: the maximum number of open orders structures to retrieve
896
922
  :param dict [params]: extra parameters specific to the exchange API endpoint
897
923
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
898
924
  """
899
- request = {
925
+ request: dict = {
900
926
  'open': True,
901
927
  }
902
928
  return self.fetch_orders(symbol, since, limit, self.extend(request, params))
@@ -904,14 +930,16 @@ class hollaex(Exchange, ImplicitAPI):
904
930
  def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
905
931
  """
906
932
  fetches information on multiple closed orders made by the user
907
- :see: https://apidocs.hollaex.com/#get-all-orders
933
+
934
+ https://apidocs.hollaex.com/#get-all-orders
935
+
908
936
  :param str symbol: unified market symbol of the market orders were made in
909
937
  :param int [since]: the earliest time in ms to fetch orders for
910
938
  :param int [limit]: the maximum number of order structures to retrieve
911
939
  :param dict [params]: extra parameters specific to the exchange API endpoint
912
940
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
913
941
  """
914
- request = {
942
+ request: dict = {
915
943
  'open': False,
916
944
  }
917
945
  return self.fetch_orders(symbol, since, limit, self.extend(request, params))
@@ -919,13 +947,16 @@ class hollaex(Exchange, ImplicitAPI):
919
947
  def fetch_order(self, id: str, symbol: Str = None, params={}):
920
948
  """
921
949
  fetches information on an order made by the user
922
- :see: https://apidocs.hollaex.com/#get-order
950
+
951
+ https://apidocs.hollaex.com/#get-order
952
+
953
+ :param str id:
923
954
  :param str symbol: unified symbol of the market the order was made in
924
955
  :param dict [params]: extra parameters specific to the exchange API endpoint
925
956
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
926
957
  """
927
958
  self.load_markets()
928
- request = {
959
+ request: dict = {
929
960
  'order_id': id,
930
961
  }
931
962
  response = self.privateGetOrder(self.extend(request, params))
@@ -959,7 +990,9 @@ class hollaex(Exchange, ImplicitAPI):
959
990
  def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
960
991
  """
961
992
  fetches information on multiple orders made by the user
962
- :see: https://apidocs.hollaex.com/#get-all-orders
993
+
994
+ https://apidocs.hollaex.com/#get-all-orders
995
+
963
996
  :param str symbol: unified market symbol of the market orders were made in
964
997
  :param int [since]: the earliest time in ms to fetch orders for
965
998
  :param int [limit]: the maximum number of order structures to retrieve
@@ -968,7 +1001,7 @@ class hollaex(Exchange, ImplicitAPI):
968
1001
  """
969
1002
  self.load_markets()
970
1003
  market = None
971
- request = {
1004
+ request: dict = {
972
1005
  # 'symbol': market['id'],
973
1006
  # 'side': 'buy', # 'sell'
974
1007
  # 'status': 'new', # 'filled', 'pfilled', 'canceled'
@@ -1017,11 +1050,11 @@ class hollaex(Exchange, ImplicitAPI):
1017
1050
  # ]
1018
1051
  # }
1019
1052
  #
1020
- data = self.safe_value(response, 'data', [])
1053
+ data = self.safe_list(response, 'data', [])
1021
1054
  return self.parse_orders(data, market, since, limit)
1022
1055
 
1023
- def parse_order_status(self, status):
1024
- statuses = {
1056
+ def parse_order_status(self, status: Str):
1057
+ statuses: dict = {
1025
1058
  'new': 'open',
1026
1059
  'pfilled': 'open',
1027
1060
  'filled': 'closed',
@@ -1029,7 +1062,7 @@ class hollaex(Exchange, ImplicitAPI):
1029
1062
  }
1030
1063
  return self.safe_string(statuses, status, status)
1031
1064
 
1032
- def parse_order(self, order, market: Market = None) -> Order:
1065
+ def parse_order(self, order: dict, market: Market = None) -> Order:
1033
1066
  #
1034
1067
  # createOrder, fetchOpenOrder, fetchOpenOrders
1035
1068
  #
@@ -1065,7 +1098,6 @@ class hollaex(Exchange, ImplicitAPI):
1065
1098
  type = self.safe_string(order, 'type')
1066
1099
  side = self.safe_string(order, 'side')
1067
1100
  price = self.safe_string(order, 'price')
1068
- stopPrice = self.safe_string(order, 'stop')
1069
1101
  amount = self.safe_string(order, 'size')
1070
1102
  filled = self.safe_string(order, 'filled')
1071
1103
  status = self.parse_order_status(self.safe_string(order, 'status'))
@@ -1084,8 +1116,7 @@ class hollaex(Exchange, ImplicitAPI):
1084
1116
  'postOnly': postOnly,
1085
1117
  'side': side,
1086
1118
  'price': price,
1087
- 'stopPrice': stopPrice,
1088
- 'triggerPrice': stopPrice,
1119
+ 'triggerPrice': self.safe_string(order, 'stop'),
1089
1120
  'amount': amount,
1090
1121
  'filled': filled,
1091
1122
  'remaining': None,
@@ -1099,12 +1130,14 @@ class hollaex(Exchange, ImplicitAPI):
1099
1130
  def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
1100
1131
  """
1101
1132
  create a trade order
1102
- :see: https://apidocs.hollaex.com/#create-order
1133
+
1134
+ https://apidocs.hollaex.com/#create-order
1135
+
1103
1136
  :param str symbol: unified symbol of the market to create an order in
1104
1137
  :param str type: 'market' or 'limit'
1105
1138
  :param str side: 'buy' or 'sell'
1106
1139
  :param float amount: how much of currency you want to trade in units of base currency
1107
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1140
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1108
1141
  :param dict [params]: extra parameters specific to the exchange API endpoint
1109
1142
  :param float [params.triggerPrice]: the price at which a trigger order is triggered at
1110
1143
  :param bool [params.postOnly]: if True, the order will only be posted to the order book and not executed immediately
@@ -1113,7 +1146,7 @@ class hollaex(Exchange, ImplicitAPI):
1113
1146
  self.load_markets()
1114
1147
  market = self.market(symbol)
1115
1148
  convertedAmount = float(self.amount_to_precision(symbol, amount))
1116
- request = {
1149
+ request: dict = {
1117
1150
  'symbol': market['id'],
1118
1151
  'side': side,
1119
1152
  'size': self.normalize_number_if_needed(convertedAmount),
@@ -1121,7 +1154,7 @@ class hollaex(Exchange, ImplicitAPI):
1121
1154
  # 'stop': float(self.price_to_precision(symbol, stopPrice)),
1122
1155
  # 'meta': {}, # other options such
1123
1156
  }
1124
- stopPrice = self.safe_number_n(params, ['triggerPrice', 'stopPrice', 'stop'])
1157
+ triggerPrice = self.safe_number_n(params, ['triggerPrice', 'stopPrice', 'stop'])
1125
1158
  meta = self.safe_value(params, 'meta', {})
1126
1159
  exchangeSpecificParam = self.safe_bool(meta, 'post_only', False)
1127
1160
  isMarketOrder = type == 'market'
@@ -1129,8 +1162,8 @@ class hollaex(Exchange, ImplicitAPI):
1129
1162
  if not isMarketOrder:
1130
1163
  convertedPrice = float(self.price_to_precision(symbol, price))
1131
1164
  request['price'] = self.normalize_number_if_needed(convertedPrice)
1132
- if stopPrice is not None:
1133
- request['stop'] = self.normalize_number_if_needed(float(self.price_to_precision(symbol, stopPrice)))
1165
+ if triggerPrice is not None:
1166
+ request['stop'] = self.normalize_number_if_needed(float(self.price_to_precision(symbol, triggerPrice)))
1134
1167
  if postOnly:
1135
1168
  request['meta'] = {'post_only': True}
1136
1169
  params = self.omit(params, ['postOnly', 'timeInForce', 'stopPrice', 'triggerPrice', 'stop'])
@@ -1163,14 +1196,16 @@ class hollaex(Exchange, ImplicitAPI):
1163
1196
  def cancel_order(self, id: str, symbol: Str = None, params={}):
1164
1197
  """
1165
1198
  cancels an open order
1166
- :see: https://apidocs.hollaex.com/#cancel-order
1199
+
1200
+ https://apidocs.hollaex.com/#cancel-order
1201
+
1167
1202
  :param str id: order id
1168
1203
  :param str symbol: unified symbol of the market the order was made in
1169
1204
  :param dict [params]: extra parameters specific to the exchange API endpoint
1170
1205
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1171
1206
  """
1172
1207
  self.load_markets()
1173
- request = {
1208
+ request: dict = {
1174
1209
  'order_id': id,
1175
1210
  }
1176
1211
  response = self.privateDeleteOrder(self.extend(request, params))
@@ -1192,7 +1227,9 @@ class hollaex(Exchange, ImplicitAPI):
1192
1227
  def cancel_all_orders(self, symbol: Str = None, params={}):
1193
1228
  """
1194
1229
  cancel all open orders in a market
1195
- :see: https://apidocs.hollaex.com/#cancel-all-orders
1230
+
1231
+ https://apidocs.hollaex.com/#cancel-all-orders
1232
+
1196
1233
  :param str symbol: unified market symbol of the market to cancel orders in
1197
1234
  :param dict [params]: extra parameters specific to the exchange API endpoint
1198
1235
  :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
@@ -1200,7 +1237,7 @@ class hollaex(Exchange, ImplicitAPI):
1200
1237
  if symbol is None:
1201
1238
  raise ArgumentsRequired(self.id + ' cancelAllOrders() requires a symbol argument')
1202
1239
  self.load_markets()
1203
- request = {}
1240
+ request: dict = {}
1204
1241
  market = None
1205
1242
  market = self.market(symbol)
1206
1243
  request['symbol'] = market['id']
@@ -1225,7 +1262,9 @@ class hollaex(Exchange, ImplicitAPI):
1225
1262
  def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
1226
1263
  """
1227
1264
  fetch all trades made by the user
1228
- :see: https://apidocs.hollaex.com/#get-trades
1265
+
1266
+ https://apidocs.hollaex.com/#get-trades
1267
+
1229
1268
  :param str symbol: unified market symbol
1230
1269
  :param int [since]: the earliest time in ms to fetch trades for
1231
1270
  :param int [limit]: the maximum number of trades structures to retrieve
@@ -1233,7 +1272,7 @@ class hollaex(Exchange, ImplicitAPI):
1233
1272
  :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
1234
1273
  """
1235
1274
  self.load_markets()
1236
- request = {
1275
+ request: dict = {
1237
1276
  # 'symbol': market['id'],
1238
1277
  # 'limit': 50, # default 50, max 100
1239
1278
  # 'page': 1, # page of data to retrieve
@@ -1266,10 +1305,10 @@ class hollaex(Exchange, ImplicitAPI):
1266
1305
  # ]
1267
1306
  # }
1268
1307
  #
1269
- data = self.safe_value(response, 'data', [])
1308
+ data = self.safe_list(response, 'data', [])
1270
1309
  return self.parse_trades(data, market, since, limit)
1271
1310
 
1272
- def parse_deposit_address(self, depositAddress, currency: Currency = None):
1311
+ def parse_deposit_address(self, depositAddress, currency: Currency = None) -> DepositAddress:
1273
1312
  #
1274
1313
  # {
1275
1314
  # "currency":"usdt",
@@ -1291,17 +1330,19 @@ class hollaex(Exchange, ImplicitAPI):
1291
1330
  currency = self.safe_currency(currencyId, currency)
1292
1331
  network = self.safe_string(depositAddress, 'network')
1293
1332
  return {
1333
+ 'info': depositAddress,
1294
1334
  'currency': currency['code'],
1335
+ 'network': network,
1295
1336
  'address': address,
1296
1337
  'tag': tag,
1297
- 'network': network,
1298
- 'info': depositAddress,
1299
1338
  }
1300
1339
 
1301
- def fetch_deposit_addresses(self, codes: List[str] = None, params={}):
1340
+ def fetch_deposit_addresses(self, codes: Strings = None, params={}) -> List[DepositAddress]:
1302
1341
  """
1303
1342
  fetch deposit addresses for multiple currencies and chain types
1304
- :see: https://apidocs.hollaex.com/#get-user
1343
+
1344
+ https://apidocs.hollaex.com/#get-user
1345
+
1305
1346
  :param str[]|None codes: list of unified currency codes, default is None
1306
1347
  :param dict [params]: extra parameters specific to the exchange API endpoint
1307
1348
  :returns dict: a list of `address structures <https://docs.ccxt.com/#/?id=address-structure>`
@@ -1362,7 +1403,9 @@ class hollaex(Exchange, ImplicitAPI):
1362
1403
  def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
1363
1404
  """
1364
1405
  fetch all deposits made to an account
1365
- :see: https://apidocs.hollaex.com/#get-deposits
1406
+
1407
+ https://apidocs.hollaex.com/#get-deposits
1408
+
1366
1409
  :param str code: unified currency code
1367
1410
  :param int [since]: the earliest time in ms to fetch deposits for
1368
1411
  :param int [limit]: the maximum number of deposits structures to retrieve
@@ -1370,7 +1413,7 @@ class hollaex(Exchange, ImplicitAPI):
1370
1413
  :returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
1371
1414
  """
1372
1415
  self.load_markets()
1373
- request = {
1416
+ request: dict = {
1374
1417
  # 'currency': currency['id'],
1375
1418
  # 'limit': 50, # default 50, max 100
1376
1419
  # 'page': 1, # page of data to retrieve
@@ -1411,20 +1454,22 @@ class hollaex(Exchange, ImplicitAPI):
1411
1454
  # ]
1412
1455
  # }
1413
1456
  #
1414
- data = self.safe_value(response, 'data', [])
1457
+ data = self.safe_list(response, 'data', [])
1415
1458
  return self.parse_transactions(data, currency, since, limit)
1416
1459
 
1417
1460
  def fetch_withdrawal(self, id: str, code: Str = None, params={}):
1418
1461
  """
1419
1462
  fetch data on a currency withdrawal via the withdrawal id
1420
- :see: https://apidocs.hollaex.com/#get-withdrawals
1463
+
1464
+ https://apidocs.hollaex.com/#get-withdrawals
1465
+
1421
1466
  :param str id: withdrawal id
1422
1467
  :param str code: unified currency code of the currency withdrawn, default is None
1423
1468
  :param dict [params]: extra parameters specific to the exchange API endpoint
1424
1469
  :returns dict: a `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
1425
1470
  """
1426
1471
  self.load_markets()
1427
- request = {
1472
+ request: dict = {
1428
1473
  'transaction_id': id,
1429
1474
  }
1430
1475
  currency = None
@@ -1456,13 +1501,15 @@ class hollaex(Exchange, ImplicitAPI):
1456
1501
  # }
1457
1502
  #
1458
1503
  data = self.safe_value(response, 'data', [])
1459
- transaction = self.safe_value(data, 0, {})
1504
+ transaction = self.safe_dict(data, 0, {})
1460
1505
  return self.parse_transaction(transaction, currency)
1461
1506
 
1462
1507
  def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
1463
1508
  """
1464
1509
  fetch all withdrawals made from an account
1465
- :see: https://apidocs.hollaex.com/#get-withdrawals
1510
+
1511
+ https://apidocs.hollaex.com/#get-withdrawals
1512
+
1466
1513
  :param str code: unified currency code
1467
1514
  :param int [since]: the earliest time in ms to fetch withdrawals for
1468
1515
  :param int [limit]: the maximum number of withdrawals structures to retrieve
@@ -1470,7 +1517,7 @@ class hollaex(Exchange, ImplicitAPI):
1470
1517
  :returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
1471
1518
  """
1472
1519
  self.load_markets()
1473
- request = {
1520
+ request: dict = {
1474
1521
  # 'currency': currency['id'],
1475
1522
  # 'limit': 50, # default 50, max 100
1476
1523
  # 'page': 1, # page of data to retrieve
@@ -1511,10 +1558,10 @@ class hollaex(Exchange, ImplicitAPI):
1511
1558
  # ]
1512
1559
  # }
1513
1560
  #
1514
- data = self.safe_value(response, 'data', [])
1561
+ data = self.safe_list(response, 'data', [])
1515
1562
  return self.parse_transactions(data, currency, since, limit)
1516
1563
 
1517
- def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
1564
+ def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
1518
1565
  #
1519
1566
  # fetchWithdrawals, fetchDeposits
1520
1567
  #
@@ -1609,10 +1656,12 @@ class hollaex(Exchange, ImplicitAPI):
1609
1656
  'fee': fee,
1610
1657
  }
1611
1658
 
1612
- def withdraw(self, code: str, amount: float, address, tag=None, params={}):
1659
+ def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
1613
1660
  """
1614
1661
  make a withdrawal
1615
- :see: https://apidocs.hollaex.com/#withdrawal
1662
+
1663
+ https://apidocs.hollaex.com/#withdrawal
1664
+
1616
1665
  :param str code: unified currency code
1617
1666
  :param float amount: the amount to withdraw
1618
1667
  :param str address: the address to withdraw to
@@ -1630,7 +1679,7 @@ class hollaex(Exchange, ImplicitAPI):
1630
1679
  if network is None:
1631
1680
  raise ArgumentsRequired(self.id + ' withdraw() requires a network parameter')
1632
1681
  params = self.omit(params, 'network')
1633
- request = {
1682
+ request: dict = {
1634
1683
  'currency': currency['id'],
1635
1684
  'amount': amount,
1636
1685
  'address': address,
@@ -1680,7 +1729,7 @@ class hollaex(Exchange, ImplicitAPI):
1680
1729
  # "owner_id":1
1681
1730
  # }
1682
1731
  #
1683
- result = {
1732
+ result: dict = {
1684
1733
  'info': fee,
1685
1734
  'withdraw': {
1686
1735
  'fee': None,
@@ -1716,7 +1765,9 @@ class hollaex(Exchange, ImplicitAPI):
1716
1765
  def fetch_deposit_withdraw_fees(self, codes: Strings = None, params={}):
1717
1766
  """
1718
1767
  fetch deposit and withdraw fees
1719
- :see: https://apidocs.hollaex.com/#constants
1768
+
1769
+ https://apidocs.hollaex.com/#constants
1770
+
1720
1771
  :param str[]|None codes: list of unified currency codes
1721
1772
  :param dict [params]: extra parameters specific to the exchange API endpoint
1722
1773
  :returns dict: a list of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>`
@@ -1757,7 +1808,7 @@ class hollaex(Exchange, ImplicitAPI):
1757
1808
  # "network":"https://api.hollaex.network"
1758
1809
  # }
1759
1810
  #
1760
- coins = self.safe_value(response, 'coins')
1811
+ coins = self.safe_list(response, 'coins')
1761
1812
  return self.parse_deposit_withdraw_fees(coins, codes, 'symbol')
1762
1813
 
1763
1814
  def normalize_number_if_needed(self, number):
@@ -1791,7 +1842,7 @@ class hollaex(Exchange, ImplicitAPI):
1791
1842
  headers['api-signature'] = signature
1792
1843
  return {'url': url, 'method': method, 'body': body, 'headers': headers}
1793
1844
 
1794
- def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
1845
+ def handle_errors(self, code: int, reason: str, url: str, method: str, headers: dict, body: str, response, requestHeaders, requestBody):
1795
1846
  if response is None:
1796
1847
  return None
1797
1848
  if (code >= 400) and (code <= 503):