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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (529) hide show
  1. ccxt/__init__.py +39 -35
  2. ccxt/abantether.py +8 -8
  3. ccxt/abstract/alpaca.py +4 -0
  4. ccxt/abstract/apex.py +31 -0
  5. ccxt/abstract/bigone.py +1 -1
  6. ccxt/abstract/binance.py +106 -48
  7. ccxt/abstract/binancecoinm.py +106 -48
  8. ccxt/abstract/binanceus.py +141 -83
  9. ccxt/abstract/binanceusdm.py +106 -48
  10. ccxt/abstract/bingx.py +50 -1
  11. ccxt/abstract/bitbank.py +5 -0
  12. ccxt/abstract/bitfinex.py +136 -65
  13. ccxt/abstract/bitflyer.py +1 -0
  14. ccxt/abstract/bitget.py +67 -0
  15. ccxt/abstract/bitmart.py +19 -1
  16. ccxt/abstract/bitopro.py +1 -0
  17. ccxt/abstract/bitrue.py +68 -68
  18. ccxt/abstract/bitstamp.py +1 -0
  19. ccxt/abstract/blofin.py +30 -0
  20. ccxt/abstract/btcbox.py +2 -0
  21. ccxt/abstract/bybit.py +28 -13
  22. ccxt/abstract/cex.py +28 -29
  23. ccxt/abstract/coinbaseexchange.py +1 -0
  24. ccxt/abstract/coinbaseinternational.py +1 -1
  25. ccxt/abstract/cryptocom.py +16 -0
  26. ccxt/abstract/cryptomus.py +20 -0
  27. ccxt/abstract/defx.py +69 -0
  28. ccxt/abstract/deribit.py +1 -0
  29. ccxt/abstract/derive.py +117 -0
  30. ccxt/abstract/digifinex.py +1 -0
  31. ccxt/abstract/ellipx.py +25 -0
  32. ccxt/abstract/foxbit.py +26 -0
  33. ccxt/abstract/gate.py +19 -0
  34. ccxt/abstract/gateio.py +19 -0
  35. ccxt/abstract/gemini.py +1 -0
  36. ccxt/abstract/hibachi.py +26 -0
  37. ccxt/abstract/hyperliquid.py +1 -1
  38. ccxt/abstract/independentreserve.py +6 -0
  39. ccxt/abstract/kraken.py +1 -0
  40. ccxt/abstract/krakenfutures.py +4 -0
  41. ccxt/abstract/kucoin.py +10 -0
  42. ccxt/abstract/kucoinfutures.py +18 -0
  43. ccxt/abstract/lbank.py +2 -1
  44. ccxt/abstract/luno.py +1 -0
  45. ccxt/abstract/mexc.py +2 -0
  46. ccxt/abstract/modetrade.py +119 -0
  47. ccxt/abstract/myokx.py +349 -0
  48. ccxt/abstract/oceanex.py +5 -0
  49. ccxt/abstract/okx.py +25 -0
  50. ccxt/abstract/okxus.py +349 -0
  51. ccxt/abstract/onetrading.py +0 -12
  52. ccxt/abstract/paradex.py +23 -0
  53. ccxt/abstract/phemex.py +2 -0
  54. ccxt/abstract/poloniex.py +36 -0
  55. ccxt/abstract/tradeogre.py +3 -1
  56. ccxt/abstract/upbit.py +51 -34
  57. ccxt/abstract/whitebit.py +16 -0
  58. ccxt/abstract/woo.py +64 -6
  59. ccxt/abstract/xt.py +10 -5
  60. ccxt/afratether.py +8 -8
  61. ccxt/alpaca.py +828 -51
  62. ccxt/apex.py +1875 -0
  63. ccxt/arzinja.py +7 -7
  64. ccxt/arzplus.py +9 -9
  65. ccxt/ascendex.py +501 -306
  66. ccxt/async_support/__init__.py +39 -35
  67. ccxt/async_support/abantether.py +8 -8
  68. ccxt/async_support/afratether.py +10 -10
  69. ccxt/async_support/alpaca.py +828 -51
  70. ccxt/async_support/apex.py +1875 -0
  71. ccxt/async_support/arzinja.py +10 -10
  72. ccxt/async_support/arzplus.py +12 -12
  73. ccxt/async_support/ascendex.py +502 -306
  74. ccxt/async_support/base/exchange.py +303 -89
  75. ccxt/async_support/base/ws/cache.py +9 -3
  76. ccxt/async_support/base/ws/client.py +173 -38
  77. ccxt/async_support/base/ws/future.py +25 -37
  78. ccxt/async_support/bequant.py +5 -3
  79. ccxt/async_support/bigone.py +279 -144
  80. ccxt/async_support/binance.py +2347 -1158
  81. ccxt/async_support/binancecoinm.py +9 -3
  82. ccxt/async_support/binanceus.py +17 -3
  83. ccxt/async_support/binanceusdm.py +9 -4
  84. ccxt/async_support/bingx.py +2962 -920
  85. ccxt/async_support/bit2c.py +147 -27
  86. ccxt/async_support/bitbank.py +151 -23
  87. ccxt/async_support/bitbns.py +104 -30
  88. ccxt/async_support/bitfinex.py +3291 -1113
  89. ccxt/async_support/bitflyer.py +202 -27
  90. ccxt/async_support/bitget.py +3683 -1538
  91. ccxt/async_support/bithumb.py +195 -38
  92. ccxt/async_support/bitimen.py +12 -12
  93. ccxt/async_support/bitir.py +38 -38
  94. ccxt/async_support/bitmart.py +1288 -350
  95. ccxt/async_support/bitmex.py +260 -75
  96. ccxt/async_support/bitopro.py +262 -62
  97. ccxt/async_support/bitpin.py +17 -16
  98. ccxt/async_support/bitrue.py +459 -290
  99. ccxt/async_support/bitso.py +199 -54
  100. ccxt/async_support/bitstamp.py +230 -96
  101. ccxt/async_support/bitteam.py +167 -25
  102. ccxt/async_support/{huobijp.py → bittrade.py} +158 -30
  103. ccxt/async_support/bitvavo.py +213 -49
  104. ccxt/async_support/blockchaincom.py +160 -46
  105. ccxt/async_support/blofin.py +502 -120
  106. ccxt/async_support/btcalpha.py +169 -31
  107. ccxt/async_support/btcbox.py +292 -23
  108. ccxt/async_support/btcmarkets.py +211 -58
  109. ccxt/async_support/btcturk.py +161 -38
  110. ccxt/async_support/bybit.py +1775 -1030
  111. ccxt/async_support/cex.py +1440 -1303
  112. ccxt/async_support/coinbase.py +724 -212
  113. ccxt/async_support/coinbaseadvanced.py +2 -1
  114. ccxt/async_support/coinbaseexchange.py +388 -89
  115. ccxt/async_support/coinbaseinternational.py +412 -57
  116. ccxt/async_support/coincatch.py +177 -78
  117. ccxt/async_support/coincheck.py +135 -19
  118. ccxt/async_support/coinex.py +606 -232
  119. ccxt/async_support/coinmate.py +189 -63
  120. ccxt/async_support/coinmetro.py +195 -54
  121. ccxt/async_support/coinone.py +158 -51
  122. ccxt/async_support/coinsph.py +336 -61
  123. ccxt/async_support/coinspot.py +151 -52
  124. ccxt/async_support/cryptocom.py +661 -111
  125. ccxt/async_support/cryptomus.py +1137 -0
  126. ccxt/async_support/defx.py +2071 -0
  127. ccxt/async_support/delta.py +299 -99
  128. ccxt/async_support/deribit.py +348 -126
  129. ccxt/async_support/derive.py +2572 -0
  130. ccxt/async_support/digifinex.py +430 -214
  131. ccxt/async_support/ellipx.py +2029 -0
  132. ccxt/async_support/eterex.py +10 -10
  133. ccxt/async_support/excoino.py +31 -31
  134. ccxt/async_support/exir.py +14 -14
  135. ccxt/async_support/exmo.py +344 -131
  136. ccxt/async_support/exnovin.py +10 -10
  137. ccxt/async_support/farhadexchange.py +12 -12
  138. ccxt/async_support/fmfwio.py +2 -1
  139. ccxt/async_support/foxbit.py +1935 -0
  140. ccxt/async_support/gate.py +1351 -529
  141. ccxt/async_support/gateio.py +2 -1
  142. ccxt/async_support/gemini.py +144 -39
  143. ccxt/async_support/hashkey.py +152 -109
  144. ccxt/async_support/hibachi.py +2080 -0
  145. ccxt/async_support/hitbtc.py +395 -167
  146. ccxt/async_support/hitobit.py +12 -12
  147. ccxt/async_support/hollaex.py +307 -119
  148. ccxt/async_support/htx.py +851 -383
  149. ccxt/async_support/huobi.py +2 -1
  150. ccxt/async_support/hyperliquid.py +1848 -536
  151. ccxt/async_support/independentreserve.py +288 -15
  152. ccxt/async_support/indodax.py +190 -33
  153. ccxt/async_support/jibitex.py +12 -12
  154. ccxt/async_support/kraken.py +795 -351
  155. ccxt/async_support/krakenfutures.py +214 -62
  156. ccxt/async_support/kucoin.py +715 -396
  157. ccxt/async_support/kucoinfutures.py +652 -89
  158. ccxt/async_support/latoken.py +217 -113
  159. ccxt/async_support/lbank.py +425 -97
  160. ccxt/async_support/luno.py +382 -35
  161. ccxt/async_support/mercado.py +113 -6
  162. ccxt/async_support/mexc.py +874 -437
  163. ccxt/async_support/modetrade.py +2818 -0
  164. ccxt/async_support/myokx.py +54 -0
  165. ccxt/async_support/ndax.py +221 -64
  166. ccxt/async_support/nobitex.py +32 -38
  167. ccxt/async_support/novadax.py +190 -34
  168. ccxt/async_support/oceanex.py +217 -28
  169. ccxt/async_support/okcoin.py +253 -145
  170. ccxt/async_support/okexchange.py +11 -11
  171. ccxt/async_support/okx.py +1088 -351
  172. ccxt/async_support/okxus.py +54 -0
  173. ccxt/async_support/ompfinex.py +32 -27
  174. ccxt/async_support/onetrading.py +213 -392
  175. ccxt/async_support/oxfun.py +245 -166
  176. ccxt/async_support/p2b.py +151 -29
  177. ccxt/async_support/paradex.py +562 -49
  178. ccxt/async_support/paymium.py +82 -19
  179. ccxt/async_support/phemex.py +713 -172
  180. ccxt/async_support/poloniex.py +1602 -283
  181. ccxt/async_support/probit.py +224 -95
  182. ccxt/async_support/ramzinex.py +34 -30
  183. ccxt/async_support/sarmayex.py +9 -9
  184. ccxt/async_support/sarrafex.py +13 -13
  185. ccxt/async_support/tabdeal.py +15 -14
  186. ccxt/async_support/tetherland.py +9 -9
  187. ccxt/async_support/timex.py +210 -51
  188. ccxt/async_support/tokocrypto.py +167 -47
  189. ccxt/async_support/tradeogre.py +266 -31
  190. ccxt/async_support/twox.py +9 -9
  191. ccxt/async_support/ubitex.py +12 -12
  192. ccxt/async_support/upbit.py +568 -165
  193. ccxt/async_support/vertex.py +160 -32
  194. ccxt/async_support/wallex.py +12 -12
  195. ccxt/async_support/wavesexchange.py +165 -30
  196. ccxt/async_support/whitebit.py +975 -127
  197. ccxt/async_support/woo.py +1918 -1016
  198. ccxt/async_support/woofipro.py +433 -141
  199. ccxt/async_support/xt.py +649 -193
  200. ccxt/async_support/yobit.py +195 -70
  201. ccxt/async_support/zaif.py +91 -15
  202. ccxt/async_support/zonda.py +151 -36
  203. ccxt/base/decimal_to_precision.py +14 -10
  204. ccxt/base/errors.py +49 -18
  205. ccxt/base/exchange.py +1556 -450
  206. ccxt/base/precise.py +10 -0
  207. ccxt/base/types.py +114 -6
  208. ccxt/bequant.py +5 -3
  209. ccxt/bigone.py +279 -144
  210. ccxt/binance.py +2347 -1158
  211. ccxt/binancecoinm.py +9 -3
  212. ccxt/binanceus.py +17 -3
  213. ccxt/binanceusdm.py +9 -4
  214. ccxt/bingx.py +2962 -920
  215. ccxt/bit2c.py +147 -27
  216. ccxt/bitbank.py +151 -23
  217. ccxt/bitbns.py +104 -30
  218. ccxt/bitfinex.py +3290 -1113
  219. ccxt/bitflyer.py +202 -27
  220. ccxt/bitget.py +3683 -1538
  221. ccxt/bithumb.py +194 -38
  222. ccxt/bitimen.py +9 -9
  223. ccxt/bitir.py +35 -35
  224. ccxt/bitmart.py +1288 -350
  225. ccxt/bitmex.py +260 -75
  226. ccxt/bitopro.py +262 -62
  227. ccxt/bitpin.py +15 -14
  228. ccxt/bitrue.py +459 -290
  229. ccxt/bitso.py +199 -54
  230. ccxt/bitstamp.py +230 -96
  231. ccxt/bitteam.py +167 -25
  232. ccxt/{huobijp.py → bittrade.py} +158 -30
  233. ccxt/bitvavo.py +213 -49
  234. ccxt/blockchaincom.py +160 -46
  235. ccxt/blofin.py +502 -120
  236. ccxt/btcalpha.py +169 -31
  237. ccxt/btcbox.py +291 -23
  238. ccxt/btcmarkets.py +211 -58
  239. ccxt/btcturk.py +161 -38
  240. ccxt/bybit.py +1775 -1030
  241. ccxt/cex.py +1439 -1303
  242. ccxt/coinbase.py +724 -212
  243. ccxt/coinbaseadvanced.py +2 -1
  244. ccxt/coinbaseexchange.py +388 -89
  245. ccxt/coinbaseinternational.py +412 -57
  246. ccxt/coincatch.py +177 -78
  247. ccxt/coincheck.py +135 -19
  248. ccxt/coinex.py +606 -232
  249. ccxt/coinmate.py +189 -63
  250. ccxt/coinmetro.py +194 -54
  251. ccxt/coinone.py +158 -51
  252. ccxt/coinsph.py +336 -61
  253. ccxt/coinspot.py +151 -52
  254. ccxt/cryptocom.py +661 -111
  255. ccxt/cryptomus.py +1137 -0
  256. ccxt/defx.py +2070 -0
  257. ccxt/delta.py +299 -99
  258. ccxt/deribit.py +348 -126
  259. ccxt/derive.py +2571 -0
  260. ccxt/digifinex.py +430 -214
  261. ccxt/ellipx.py +2029 -0
  262. ccxt/eterex.py +7 -7
  263. ccxt/excoino.py +29 -29
  264. ccxt/exir.py +11 -11
  265. ccxt/exmo.py +343 -131
  266. ccxt/exnovin.py +8 -8
  267. ccxt/farhadexchange.py +10 -10
  268. ccxt/fmfwio.py +2 -1
  269. ccxt/foxbit.py +1935 -0
  270. ccxt/gate.py +1351 -529
  271. ccxt/gateio.py +2 -1
  272. ccxt/gemini.py +144 -39
  273. ccxt/hashkey.py +152 -109
  274. ccxt/hibachi.py +2079 -0
  275. ccxt/hitbtc.py +395 -167
  276. ccxt/hitobit.py +9 -9
  277. ccxt/hollaex.py +307 -119
  278. ccxt/htx.py +851 -383
  279. ccxt/huobi.py +2 -1
  280. ccxt/hyperliquid.py +1848 -536
  281. ccxt/independentreserve.py +287 -15
  282. ccxt/indodax.py +190 -33
  283. ccxt/jibitex.py +9 -9
  284. ccxt/kraken.py +794 -351
  285. ccxt/krakenfutures.py +214 -62
  286. ccxt/kucoin.py +715 -396
  287. ccxt/kucoinfutures.py +652 -89
  288. ccxt/latoken.py +217 -113
  289. ccxt/lbank.py +425 -97
  290. ccxt/luno.py +382 -35
  291. ccxt/mercado.py +113 -6
  292. ccxt/mexc.py +873 -437
  293. ccxt/modetrade.py +2818 -0
  294. ccxt/myokx.py +54 -0
  295. ccxt/ndax.py +221 -64
  296. ccxt/nobitex.py +30 -36
  297. ccxt/novadax.py +190 -34
  298. ccxt/oceanex.py +217 -28
  299. ccxt/okcoin.py +253 -145
  300. ccxt/okexchange.py +9 -9
  301. ccxt/okx.py +1088 -351
  302. ccxt/okxus.py +54 -0
  303. ccxt/ompfinex.py +29 -24
  304. ccxt/onetrading.py +213 -392
  305. ccxt/oxfun.py +245 -166
  306. ccxt/p2b.py +151 -29
  307. ccxt/paradex.py +562 -49
  308. ccxt/paymium.py +82 -19
  309. ccxt/phemex.py +712 -172
  310. ccxt/poloniex.py +1601 -283
  311. ccxt/pro/__init__.py +76 -17
  312. ccxt/pro/alpaca.py +21 -6
  313. ccxt/pro/apex.py +984 -0
  314. ccxt/pro/ascendex.py +58 -10
  315. ccxt/pro/bequant.py +6 -1
  316. ccxt/pro/binance.py +728 -156
  317. ccxt/pro/binancecoinm.py +6 -2
  318. ccxt/pro/binanceus.py +8 -4
  319. ccxt/pro/binanceusdm.py +7 -2
  320. ccxt/pro/bingx.py +333 -142
  321. ccxt/pro/bitfinex.py +727 -262
  322. ccxt/pro/bitget.py +570 -79
  323. ccxt/pro/bithumb.py +20 -6
  324. ccxt/pro/bitmart.py +216 -87
  325. ccxt/pro/bitmex.py +47 -9
  326. ccxt/pro/bitopro.py +26 -14
  327. ccxt/pro/bitrue.py +22 -22
  328. ccxt/pro/bitstamp.py +54 -21
  329. ccxt/pro/{huobijp.py → bittrade.py} +7 -6
  330. ccxt/pro/bitvavo.py +191 -67
  331. ccxt/pro/blockchaincom.py +21 -8
  332. ccxt/pro/blofin.py +9 -1
  333. ccxt/pro/bybit.py +632 -245
  334. ccxt/pro/cex.py +59 -24
  335. ccxt/pro/coinbase.py +102 -73
  336. ccxt/pro/coinbaseadvanced.py +2 -1
  337. ccxt/pro/coinbaseexchange.py +8 -8
  338. ccxt/pro/coinbaseinternational.py +181 -25
  339. ccxt/pro/coincatch.py +6 -7
  340. ccxt/pro/coincheck.py +11 -6
  341. ccxt/pro/coinex.py +967 -665
  342. ccxt/pro/coinone.py +16 -9
  343. ccxt/pro/cryptocom.py +448 -45
  344. ccxt/pro/defx.py +831 -0
  345. ccxt/pro/deribit.py +150 -14
  346. ccxt/pro/derive.py +704 -0
  347. ccxt/pro/exmo.py +239 -6
  348. ccxt/pro/gate.py +623 -65
  349. ccxt/pro/gateio.py +2 -1
  350. ccxt/pro/gemini.py +27 -11
  351. ccxt/pro/hashkey.py +2 -2
  352. ccxt/pro/hitbtc.py +196 -91
  353. ccxt/pro/hollaex.py +23 -7
  354. ccxt/pro/htx.py +51 -14
  355. ccxt/pro/huobi.py +2 -1
  356. ccxt/pro/hyperliquid.py +591 -27
  357. ccxt/pro/independentreserve.py +9 -6
  358. ccxt/pro/kraken.py +640 -320
  359. ccxt/pro/krakenfutures.py +62 -35
  360. ccxt/pro/kucoin.py +267 -46
  361. ccxt/pro/kucoinfutures.py +165 -21
  362. ccxt/pro/lbank.py +102 -21
  363. ccxt/pro/luno.py +12 -8
  364. ccxt/pro/mexc.py +877 -111
  365. ccxt/pro/modetrade.py +1271 -0
  366. ccxt/pro/myokx.py +38 -0
  367. ccxt/pro/ndax.py +15 -2
  368. ccxt/pro/okcoin.py +23 -4
  369. ccxt/pro/okx.py +573 -98
  370. ccxt/pro/okxus.py +38 -0
  371. ccxt/pro/onetrading.py +30 -13
  372. ccxt/pro/oxfun.py +131 -27
  373. ccxt/pro/p2b.py +88 -22
  374. ccxt/pro/paradex.py +3 -3
  375. ccxt/pro/phemex.py +75 -21
  376. ccxt/pro/poloniex.py +124 -41
  377. ccxt/pro/probit.py +87 -80
  378. ccxt/pro/tradeogre.py +272 -0
  379. ccxt/pro/upbit.py +152 -12
  380. ccxt/pro/vertex.py +8 -3
  381. ccxt/pro/whitebit.py +58 -5
  382. ccxt/pro/woo.py +228 -37
  383. ccxt/pro/woofipro.py +106 -18
  384. ccxt/pro/xt.py +111 -5
  385. ccxt/probit.py +224 -95
  386. ccxt/protobuf/__init__.py +0 -0
  387. ccxt/protobuf/mexc/PrivateAccountV3Api_pb2.py +37 -0
  388. ccxt/protobuf/mexc/PrivateDealsV3Api_pb2.py +37 -0
  389. ccxt/protobuf/mexc/PrivateOrdersV3Api_pb2.py +37 -0
  390. ccxt/protobuf/mexc/PublicAggreBookTickerV3Api_pb2.py +37 -0
  391. ccxt/protobuf/mexc/PublicAggreDealsV3Api_pb2.py +39 -0
  392. ccxt/protobuf/mexc/PublicAggreDepthsV3Api_pb2.py +39 -0
  393. ccxt/protobuf/mexc/PublicBookTickerBatchV3Api_pb2.py +38 -0
  394. ccxt/protobuf/mexc/PublicBookTickerV3Api_pb2.py +37 -0
  395. ccxt/protobuf/mexc/PublicDealsV3Api_pb2.py +39 -0
  396. ccxt/protobuf/mexc/PublicIncreaseDepthsBatchV3Api_pb2.py +38 -0
  397. ccxt/protobuf/mexc/PublicIncreaseDepthsV3Api_pb2.py +39 -0
  398. ccxt/protobuf/mexc/PublicLimitDepthsV3Api_pb2.py +39 -0
  399. ccxt/protobuf/mexc/PublicMiniTickerV3Api_pb2.py +37 -0
  400. ccxt/protobuf/mexc/PublicMiniTickersV3Api_pb2.py +38 -0
  401. ccxt/protobuf/mexc/PublicSpotKlineV3Api_pb2.py +37 -0
  402. ccxt/protobuf/mexc/PushDataV3ApiWrapper_pb2.py +52 -0
  403. ccxt/protobuf/mexc/__init__.py +0 -0
  404. ccxt/ramzinex.py +32 -28
  405. ccxt/sarmayex.py +7 -7
  406. ccxt/sarrafex.py +10 -10
  407. ccxt/static_dependencies/__init__.py +1 -1
  408. ccxt/static_dependencies/lark/py.typed +0 -0
  409. ccxt/static_dependencies/marshmallow/py.typed +0 -0
  410. ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  411. ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  412. ccxt/tabdeal.py +13 -12
  413. ccxt/test/tests_async.py +261 -57
  414. ccxt/test/tests_helpers.py +1 -3
  415. ccxt/test/tests_init.py +4 -3
  416. ccxt/test/tests_sync.py +261 -57
  417. ccxt/tetherland.py +7 -7
  418. ccxt/timex.py +210 -51
  419. ccxt/tokocrypto.py +167 -47
  420. ccxt/tradeogre.py +266 -31
  421. ccxt/twox.py +7 -7
  422. ccxt/ubitex.py +9 -9
  423. ccxt/upbit.py +568 -165
  424. ccxt/vertex.py +160 -32
  425. ccxt/wallex.py +9 -9
  426. ccxt/wavesexchange.py +165 -30
  427. ccxt/whitebit.py +975 -127
  428. ccxt/woo.py +1917 -1016
  429. ccxt/woofipro.py +432 -141
  430. ccxt/xt.py +649 -193
  431. ccxt/yobit.py +194 -70
  432. ccxt/zaif.py +91 -15
  433. ccxt/zonda.py +151 -36
  434. {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.1.dist-info}/METADATA +225 -73
  435. ccxt_ir-4.5.1.dist-info/RECORD +743 -0
  436. {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.1.dist-info}/WHEEL +1 -1
  437. ccxt/__test__.py +0 -7
  438. ccxt/abstract/ace.py +0 -15
  439. ccxt/abstract/bitbay.py +0 -53
  440. ccxt/abstract/bitcoincom.py +0 -115
  441. ccxt/abstract/bitfinex2.py +0 -139
  442. ccxt/abstract/bitpanda.py +0 -35
  443. ccxt/abstract/bl3p.py +0 -19
  444. ccxt/abstract/coinlist.py +0 -54
  445. ccxt/abstract/currencycom.py +0 -68
  446. ccxt/abstract/hitbtc3.py +0 -115
  447. ccxt/abstract/idex.py +0 -26
  448. ccxt/abstract/kuna.py +0 -182
  449. ccxt/abstract/lykke.py +0 -29
  450. ccxt/abstract/poloniexfutures.py +0 -48
  451. ccxt/abstract/wazirx.py +0 -30
  452. ccxt/ace.py +0 -1012
  453. ccxt/async_support/ace.py +0 -1012
  454. ccxt/async_support/base/ws/aiohttp_client.py +0 -125
  455. ccxt/async_support/base/ws/fast_client.py +0 -96
  456. ccxt/async_support/bitbay.py +0 -17
  457. ccxt/async_support/bitcoincom.py +0 -17
  458. ccxt/async_support/bitfinex2.py +0 -3552
  459. ccxt/async_support/bitpanda.py +0 -16
  460. ccxt/async_support/bl3p.py +0 -485
  461. ccxt/async_support/coinlist.py +0 -2243
  462. ccxt/async_support/currencycom.py +0 -1950
  463. ccxt/async_support/hitbtc3.py +0 -16
  464. ccxt/async_support/idex.py +0 -1766
  465. ccxt/async_support/kuna.py +0 -1841
  466. ccxt/async_support/lykke.py +0 -1270
  467. ccxt/async_support/poloniexfutures.py +0 -1717
  468. ccxt/async_support/wazirx.py +0 -1224
  469. ccxt/bitbay.py +0 -17
  470. ccxt/bitcoincom.py +0 -17
  471. ccxt/bitfinex2.py +0 -3552
  472. ccxt/bitpanda.py +0 -16
  473. ccxt/bl3p.py +0 -485
  474. ccxt/coinlist.py +0 -2243
  475. ccxt/currencycom.py +0 -1950
  476. ccxt/hitbtc3.py +0 -16
  477. ccxt/idex.py +0 -1766
  478. ccxt/kuna.py +0 -1841
  479. ccxt/lykke.py +0 -1270
  480. ccxt/poloniexfutures.py +0 -1717
  481. ccxt/pro/bitcoincom.py +0 -34
  482. ccxt/pro/bitfinex2.py +0 -1083
  483. ccxt/pro/bitpanda.py +0 -15
  484. ccxt/pro/currencycom.py +0 -536
  485. ccxt/pro/idex.py +0 -672
  486. ccxt/pro/poloniexfutures.py +0 -990
  487. ccxt/pro/wazirx.py +0 -749
  488. ccxt/test/base/__init__.py +0 -29
  489. ccxt/test/base/test_account.py +0 -26
  490. ccxt/test/base/test_balance.py +0 -56
  491. ccxt/test/base/test_borrow_interest.py +0 -35
  492. ccxt/test/base/test_borrow_rate.py +0 -32
  493. ccxt/test/base/test_calculate_fee.py +0 -51
  494. ccxt/test/base/test_crypto.py +0 -127
  495. ccxt/test/base/test_currency.py +0 -76
  496. ccxt/test/base/test_datetime.py +0 -109
  497. ccxt/test/base/test_decimal_to_precision.py +0 -392
  498. ccxt/test/base/test_deep_extend.py +0 -68
  499. ccxt/test/base/test_deposit_withdrawal.py +0 -50
  500. ccxt/test/base/test_exchange_datetime_functions.py +0 -76
  501. ccxt/test/base/test_funding_rate_history.py +0 -29
  502. ccxt/test/base/test_last_price.py +0 -31
  503. ccxt/test/base/test_ledger_entry.py +0 -45
  504. ccxt/test/base/test_ledger_item.py +0 -48
  505. ccxt/test/base/test_leverage_tier.py +0 -33
  506. ccxt/test/base/test_liquidation.py +0 -50
  507. ccxt/test/base/test_margin_mode.py +0 -24
  508. ccxt/test/base/test_margin_modification.py +0 -35
  509. ccxt/test/base/test_market.py +0 -193
  510. ccxt/test/base/test_number.py +0 -411
  511. ccxt/test/base/test_ohlcv.py +0 -33
  512. ccxt/test/base/test_open_interest.py +0 -32
  513. ccxt/test/base/test_order.py +0 -64
  514. ccxt/test/base/test_order_book.py +0 -69
  515. ccxt/test/base/test_position.py +0 -60
  516. ccxt/test/base/test_shared_methods.py +0 -353
  517. ccxt/test/base/test_status.py +0 -24
  518. ccxt/test/base/test_throttle.py +0 -126
  519. ccxt/test/base/test_ticker.py +0 -92
  520. ccxt/test/base/test_trade.py +0 -47
  521. ccxt/test/base/test_trading_fee.py +0 -26
  522. ccxt/test/base/test_transaction.py +0 -39
  523. ccxt/test/test_async.py +0 -1649
  524. ccxt/test/test_sync.py +0 -1648
  525. ccxt/wazirx.py +0 -1224
  526. ccxt_ir-4.3.46.0.3.dist-info/RECORD +0 -773
  527. /ccxt/abstract/{huobijp.py → bittrade.py} +0 -0
  528. {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.1.dist-info/licenses}/LICENSE.txt +0 -0
  529. {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.1.dist-info}/top_level.txt +0 -0
@@ -5,8 +5,9 @@
5
5
 
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.bithumb import ImplicitAPI
8
+ import asyncio
8
9
  import hashlib
9
- from ccxt.base.types import Balances, Currency, Int, Market, MarketInterface, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
10
+ from ccxt.base.types import Any, Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, MarketInterface
10
11
  from typing import List
11
12
  from ccxt.base.errors import ExchangeError
12
13
  from ccxt.base.errors import AuthenticationError
@@ -24,7 +25,7 @@ from ccxt.base.precise import Precise
24
25
 
25
26
  class bithumb(Exchange, ImplicitAPI):
26
27
 
27
- def describe(self):
28
+ def describe(self) -> Any:
28
29
  return self.deep_extend(super(bithumb, self).describe(), {
29
30
  'id': 'bithumb',
30
31
  'name': 'Bithumb',
@@ -39,30 +40,59 @@ class bithumb(Exchange, ImplicitAPI):
39
40
  'future': False,
40
41
  'option': False,
41
42
  'addMargin': False,
43
+ 'borrowCrossMargin': False,
44
+ 'borrowIsolatedMargin': False,
45
+ 'borrowMargin': False,
42
46
  'cancelOrder': True,
43
47
  'closeAllPositions': False,
44
48
  'closePosition': False,
45
49
  'createMarketOrder': True,
46
50
  'createOrder': True,
51
+ 'createOrderWithTakeProfitAndStopLoss': False,
52
+ 'createOrderWithTakeProfitAndStopLossWs': False,
47
53
  'createReduceOnlyOrder': False,
48
54
  'fetchBalance': True,
55
+ 'fetchBorrowInterest': False,
56
+ 'fetchBorrowRate': False,
49
57
  'fetchBorrowRateHistories': False,
50
58
  'fetchBorrowRateHistory': False,
59
+ 'fetchBorrowRates': False,
60
+ 'fetchBorrowRatesPerSymbol': False,
51
61
  'fetchCrossBorrowRate': False,
52
62
  'fetchCrossBorrowRates': False,
53
63
  'fetchFundingHistory': False,
64
+ 'fetchFundingInterval': False,
65
+ 'fetchFundingIntervals': False,
54
66
  'fetchFundingRate': False,
55
67
  'fetchFundingRateHistory': False,
56
68
  'fetchFundingRates': False,
69
+ 'fetchGreeks': False,
57
70
  'fetchIndexOHLCV': False,
58
71
  'fetchIsolatedBorrowRate': False,
59
72
  'fetchIsolatedBorrowRates': False,
73
+ 'fetchIsolatedPositions': False,
60
74
  'fetchLeverage': False,
75
+ 'fetchLeverages': False,
76
+ 'fetchLeverageTiers': False,
77
+ 'fetchLiquidations': False,
78
+ 'fetchLongShortRatio': False,
79
+ 'fetchLongShortRatioHistory': False,
80
+ 'fetchMarginAdjustmentHistory': False,
81
+ 'fetchMarginMode': False,
82
+ 'fetchMarginModes': False,
83
+ 'fetchMarketLeverageTiers': False,
61
84
  'fetchMarkets': True,
62
85
  'fetchMarkOHLCV': False,
86
+ 'fetchMarkPrices': False,
87
+ 'fetchMyLiquidations': False,
88
+ 'fetchMySettlementHistory': False,
63
89
  'fetchOHLCV': True,
90
+ 'fetchOpenInterest': False,
64
91
  'fetchOpenInterestHistory': False,
92
+ 'fetchOpenInterests': False,
65
93
  'fetchOpenOrders': True,
94
+ 'fetchOption': False,
95
+ 'fetchOptionChain': False,
66
96
  'fetchOrder': True,
67
97
  'fetchOrderBook': True,
68
98
  'fetchPosition': False,
@@ -73,13 +103,18 @@ class bithumb(Exchange, ImplicitAPI):
73
103
  'fetchPositionsHistory': False,
74
104
  'fetchPositionsRisk': False,
75
105
  'fetchPremiumIndexOHLCV': False,
106
+ 'fetchSettlementHistory': False,
76
107
  'fetchTicker': True,
77
108
  'fetchTickers': True,
78
109
  'fetchTrades': True,
79
110
  'fetchTransfer': False,
80
111
  'fetchTransfers': False,
112
+ 'fetchVolatilityHistory': False,
81
113
  'reduceMargin': False,
114
+ 'repayCrossMargin': False,
115
+ 'repayIsolatedMargin': False,
82
116
  'setLeverage': False,
117
+ 'setMargin': False,
83
118
  'setMarginMode': False,
84
119
  'setPositionMode': False,
85
120
  'transfer': False,
@@ -87,7 +122,7 @@ class bithumb(Exchange, ImplicitAPI):
87
122
  },
88
123
  'hostname': 'bithumb.com',
89
124
  'urls': {
90
- 'logo': 'https://user-images.githubusercontent.com/1294454/30597177-ea800172-9d5e-11e7-804c-b9d4fa9b56b0.jpg',
125
+ 'logo': 'https://github.com/user-attachments/assets/c9e0eefb-4777-46b9-8f09-9d7f7c4af82d',
91
126
  'api': {
92
127
  'public': 'https://api.{hostname}/public',
93
128
  'private': 'https://api.{hostname}',
@@ -141,6 +176,62 @@ class bithumb(Exchange, ImplicitAPI):
141
176
  },
142
177
  },
143
178
  'precisionMode': SIGNIFICANT_DIGITS,
179
+ # todo: update to v2 apis
180
+ 'features': {
181
+ 'spot': {
182
+ 'sandbox': False,
183
+ 'createOrder': {
184
+ 'marginMode': False,
185
+ 'triggerPrice': False,
186
+ 'triggerPriceType': None,
187
+ 'triggerDirection': False,
188
+ 'stopLossPrice': False,
189
+ 'takeProfitPrice': False,
190
+ 'attachedStopLossTakeProfit': None,
191
+ 'timeInForce': {
192
+ 'IOC': False,
193
+ 'FOK': False,
194
+ 'PO': False,
195
+ 'GTD': False,
196
+ },
197
+ 'hedged': False,
198
+ 'trailing': False,
199
+ 'leverage': False,
200
+ 'marketBuyRequiresPrice': False,
201
+ 'marketBuyByCost': False,
202
+ 'selfTradePrevention': False,
203
+ 'iceberg': False,
204
+ },
205
+ 'createOrders': None,
206
+ 'fetchMyTrades': None,
207
+ 'fetchOrder': {
208
+ 'marginMode': False,
209
+ 'trigger': False,
210
+ 'trailing': False,
211
+ 'symbolRequired': True,
212
+ },
213
+ 'fetchOpenOrders': {
214
+ 'marginMode': False,
215
+ 'limit': 1000,
216
+ 'trigger': False,
217
+ 'trailing': False,
218
+ 'symbolRequired': True,
219
+ },
220
+ 'fetchOrders': None,
221
+ 'fetchClosedOrders': None,
222
+ 'fetchOHLCV': {
223
+ 'limit': 1000,
224
+ },
225
+ },
226
+ 'swap': {
227
+ 'linear': None,
228
+ 'inverse': None,
229
+ },
230
+ 'future': {
231
+ 'linear': None,
232
+ 'inverse': None,
233
+ },
234
+ },
144
235
  'exceptions': {
145
236
  'Bad Request(SSL)': BadRequest,
146
237
  'Bad Request(Bad Method)': BadRequest,
@@ -207,22 +298,63 @@ class bithumb(Exchange, ImplicitAPI):
207
298
  async def fetch_markets(self, params={}) -> List[Market]:
208
299
  """
209
300
  retrieves data on all markets for bithumb
210
- :see: https://apidocs.bithumb.com/reference/%ED%98%84%EC%9E%AC%EA%B0%80-%EC%A0%95%EB%B3%B4-%EC%A1%B0%ED%9A%8C-all
301
+
302
+ https://apidocs.bithumb.com/v1.2.0/reference/%ED%98%84%EC%9E%AC%EA%B0%80-%EC%A0%95%EB%B3%B4-%EC%A1%B0%ED%9A%8C-all
303
+
211
304
  :param dict [params]: extra parameters specific to the exchange API endpoint
212
305
  :returns dict[]: an array of objects representing market data
213
306
  """
214
307
  result = []
215
- quoteCurrencies = self.safe_value(self.options, 'quoteCurrencies', {})
308
+ quoteCurrencies = self.safe_dict(self.options, 'quoteCurrencies', {})
216
309
  quotes = list(quoteCurrencies.keys())
310
+ promises = []
311
+ for i in range(0, len(quotes)):
312
+ request = {
313
+ 'quoteId': quotes[i],
314
+ }
315
+ promises.append(self.publicGetTickerALLQuoteId(self.extend(request, params)))
316
+ #
317
+ # {
318
+ # "status": "0000",
319
+ # "data": {
320
+ # "ETH": {
321
+ # "opening_price": "0.05153399",
322
+ # "closing_price": "0.05145144",
323
+ # "min_price": "0.05145144",
324
+ # "max_price": "0.05160781",
325
+ # "units_traded": "6.541124172077830855",
326
+ # "acc_trade_value": "0.33705472498492329997697755",
327
+ # "prev_closing_price": "0.0515943",
328
+ # "units_traded_24H": "43.368879902677400513",
329
+ # "acc_trade_value_24H": "2.24165339555398079994373342",
330
+ # "fluctate_24H": "-0.00018203",
331
+ # "fluctate_rate_24H": "-0.35"
332
+ # },
333
+ # "XRP": {
334
+ # "opening_price": "0.00000918",
335
+ # "closing_price": "0.0000092",
336
+ # "min_price": "0.00000918",
337
+ # "max_price": "0.0000092",
338
+ # "units_traded": "6516.949363",
339
+ # "acc_trade_value": "0.0598792533602796",
340
+ # "prev_closing_price": "0.00000916",
341
+ # "units_traded_24H": "229161.50354738",
342
+ # "acc_trade_value_24H": "2.0446589371637117",
343
+ # "fluctate_24H": "0.00000049",
344
+ # "fluctate_rate_24H": "5.63"
345
+ # },
346
+ # ...
347
+ # "date": "1721675913145"
348
+ # }
349
+ # }
350
+ #
351
+ results = await asyncio.gather(*promises)
217
352
  for i in range(0, len(quotes)):
218
353
  quote = quotes[i]
219
354
  quoteId = quote
220
- extension = self.safe_value(quoteCurrencies, quote, {})
221
- request: dict = {
222
- 'quoteId': quoteId,
223
- }
224
- response = await self.publicGetTickerALLQuoteId(self.extend(request, params))
225
- data = self.safe_value(response, 'data')
355
+ response = results[i]
356
+ data = self.safe_dict(response, 'data')
357
+ extension = self.safe_dict(quoteCurrencies, quote, {})
226
358
  currencyIds = list(data.keys())
227
359
  for j in range(0, len(currencyIds)):
228
360
  currencyId = currencyIds[j]
@@ -286,7 +418,7 @@ class bithumb(Exchange, ImplicitAPI):
286
418
 
287
419
  def parse_balance(self, response) -> Balances:
288
420
  result: dict = {'info': response}
289
- balances = self.safe_value(response, 'data')
421
+ balances = self.safe_dict(response, 'data')
290
422
  codes = list(self.currencies.keys())
291
423
  for i in range(0, len(codes)):
292
424
  code = codes[i]
@@ -302,7 +434,9 @@ class bithumb(Exchange, ImplicitAPI):
302
434
  async def fetch_balance(self, params={}) -> Balances:
303
435
  """
304
436
  query for balance and get the amount of funds available for trading or funds locked in orders
305
- :see: https://apidocs.bithumb.com/reference/%EB%B3%B4%EC%9C%A0%EC%9E%90%EC%82%B0-%EC%A1%B0%ED%9A%8C
437
+
438
+ https://apidocs.bithumb.com/v1.2.0/reference/%EB%B3%B4%EC%9C%A0%EC%9E%90%EC%82%B0-%EC%A1%B0%ED%9A%8C
439
+
306
440
  :param dict [params]: extra parameters specific to the exchange API endpoint
307
441
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
308
442
  """
@@ -316,7 +450,9 @@ class bithumb(Exchange, ImplicitAPI):
316
450
  async def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
317
451
  """
318
452
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
319
- :see: https://apidocs.bithumb.com/reference/%ED%98%B8%EA%B0%80-%EC%A0%95%EB%B3%B4-%EC%A1%B0%ED%9A%8C
453
+
454
+ https://apidocs.bithumb.com/v1.2.0/reference/%ED%98%B8%EA%B0%80-%EC%A0%95%EB%B3%B4-%EC%A1%B0%ED%9A%8C
455
+
320
456
  :param str symbol: unified symbol of the market to fetch the order book for
321
457
  :param int [limit]: the maximum amount of order book entries to return
322
458
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -351,7 +487,7 @@ class bithumb(Exchange, ImplicitAPI):
351
487
  # }
352
488
  # }
353
489
  #
354
- data = self.safe_value(response, 'data', {})
490
+ data = self.safe_dict(response, 'data', {})
355
491
  timestamp = self.safe_integer(data, 'timestamp')
356
492
  return self.parse_order_book(data, symbol, timestamp, 'bids', 'asks', 'price', 'quantity')
357
493
 
@@ -406,22 +542,27 @@ class bithumb(Exchange, ImplicitAPI):
406
542
  async def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
407
543
  """
408
544
  fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
409
- :see: https://apidocs.bithumb.com/reference/%ED%98%84%EC%9E%AC%EA%B0%80-%EC%A0%95%EB%B3%B4-%EC%A1%B0%ED%9A%8C-all
545
+
546
+ https://apidocs.bithumb.com/v1.2.0/reference/%ED%98%84%EC%9E%AC%EA%B0%80-%EC%A0%95%EB%B3%B4-%EC%A1%B0%ED%9A%8C-all
547
+
410
548
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
411
549
  :param dict [params]: extra parameters specific to the exchange API endpoint
412
550
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
413
551
  """
414
552
  await self.load_markets()
415
553
  result: dict = {}
416
- quoteCurrencies = self.safe_value(self.options, 'quoteCurrencies', {})
554
+ quoteCurrencies = self.safe_dict(self.options, 'quoteCurrencies', {})
417
555
  quotes = list(quoteCurrencies.keys())
556
+ promises = []
418
557
  for i in range(0, len(quotes)):
419
- quote = quotes[i]
420
- quoteId = quote
421
558
  request: dict = {
422
- 'quoteId': quoteId,
559
+ 'quoteId': quotes[i],
423
560
  }
424
- response = await self.publicGetTickerALLQuoteId(self.extend(request, params))
561
+ promises.append(self.publicGetTickerALLQuoteId(self.extend(request, params)))
562
+ responses = await asyncio.gather(*promises)
563
+ for i in range(0, len(quotes)):
564
+ quote = quotes[i]
565
+ response = responses[i]
425
566
  #
426
567
  # {
427
568
  # "status":"0000",
@@ -443,7 +584,7 @@ class bithumb(Exchange, ImplicitAPI):
443
584
  # }
444
585
  # }
445
586
  #
446
- data = self.safe_value(response, 'data', {})
587
+ data = self.safe_dict(response, 'data', {})
447
588
  timestamp = self.safe_integer(data, 'date')
448
589
  tickers = self.omit(data, 'date')
449
590
  currencyIds = list(tickers.keys())
@@ -460,7 +601,9 @@ class bithumb(Exchange, ImplicitAPI):
460
601
  async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
461
602
  """
462
603
  fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
463
- :see: https://apidocs.bithumb.com/reference/%ED%98%84%EC%9E%AC%EA%B0%80-%EC%A0%95%EB%B3%B4-%EC%A1%B0%ED%9A%8C
604
+
605
+ https://apidocs.bithumb.com/v1.2.0/reference/%ED%98%84%EC%9E%AC%EA%B0%80-%EC%A0%95%EB%B3%B4-%EC%A1%B0%ED%9A%8C
606
+
464
607
  :param str symbol: unified symbol of the market to fetch the ticker for
465
608
  :param dict [params]: extra parameters specific to the exchange API endpoint
466
609
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -517,7 +660,9 @@ class bithumb(Exchange, ImplicitAPI):
517
660
  async def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
518
661
  """
519
662
  fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
520
- :see: https://apidocs.bithumb.com/reference/candlestick-rest-api
663
+
664
+ https://apidocs.bithumb.com/v1.2.0/reference/candlestick-rest-api
665
+
521
666
  :param str symbol: unified symbol of the market to fetch OHLCV data for
522
667
  :param str timeframe: the length of time each candle represents
523
668
  :param int [since]: timestamp in ms of the earliest candle to fetch
@@ -634,7 +779,9 @@ class bithumb(Exchange, ImplicitAPI):
634
779
  async def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
635
780
  """
636
781
  get the list of most recent trades for a particular symbol
637
- :see: https://apidocs.bithumb.com/reference/%EC%B5%9C%EA%B7%BC-%EC%B2%B4%EA%B2%B0-%EB%82%B4%EC%97%AD
782
+
783
+ https://apidocs.bithumb.com/v1.2.0/reference/%EC%B5%9C%EA%B7%BC-%EC%B2%B4%EA%B2%B0-%EB%82%B4%EC%97%AD
784
+
638
785
  :param str symbol: unified symbol of the market to fetch trades for
639
786
  :param int [since]: timestamp in ms of the earliest trade to fetch
640
787
  :param int [limit]: the maximum amount of trades to fetch
@@ -670,14 +817,16 @@ class bithumb(Exchange, ImplicitAPI):
670
817
  async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
671
818
  """
672
819
  create a trade order
673
- :see: https://apidocs.bithumb.com/reference/%EC%A7%80%EC%A0%95%EA%B0%80-%EC%A3%BC%EB%AC%B8%ED%95%98%EA%B8%B0
674
- :see: https://apidocs.bithumb.com/reference/%EC%8B%9C%EC%9E%A5%EA%B0%80-%EB%A7%A4%EC%88%98%ED%95%98%EA%B8%B0
675
- :see: https://apidocs.bithumb.com/reference/%EC%8B%9C%EC%9E%A5%EA%B0%80-%EB%A7%A4%EB%8F%84%ED%95%98%EA%B8%B0
820
+
821
+ https://apidocs.bithumb.com/v1.2.0/reference/%EC%A7%80%EC%A0%95%EA%B0%80-%EC%A3%BC%EB%AC%B8%ED%95%98%EA%B8%B0
822
+ https://apidocs.bithumb.com/v1.2.0/reference/%EC%8B%9C%EC%9E%A5%EA%B0%80-%EB%A7%A4%EC%88%98%ED%95%98%EA%B8%B0
823
+ https://apidocs.bithumb.com/v1.2.0/reference/%EC%8B%9C%EC%9E%A5%EA%B0%80-%EB%A7%A4%EB%8F%84%ED%95%98%EA%B8%B0
824
+
676
825
  :param str symbol: unified symbol of the market to create an order in
677
826
  :param str type: 'market' or 'limit'
678
827
  :param str side: 'buy' or 'sell'
679
828
  :param float amount: how much of currency you want to trade in units of base currency
680
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
829
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
681
830
  :param dict [params]: extra parameters specific to the exchange API endpoint
682
831
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
683
832
  """
@@ -709,7 +858,10 @@ class bithumb(Exchange, ImplicitAPI):
709
858
  async def fetch_order(self, id: str, symbol: Str = None, params={}):
710
859
  """
711
860
  fetches information on an order made by the user
712
- :see: https://apidocs.bithumb.com/reference/%EA%B1%B0%EB%9E%98-%EC%A3%BC%EB%AC%B8%EB%82%B4%EC%97%AD-%EC%83%81%EC%84%B8-%EC%A1%B0%ED%9A%8C
861
+
862
+ https://apidocs.bithumb.com/v1.2.0/reference/%EA%B1%B0%EB%9E%98-%EC%A3%BC%EB%AC%B8%EB%82%B4%EC%97%AD-%EC%83%81%EC%84%B8-%EC%A1%B0%ED%9A%8C
863
+
864
+ :param str id: order id
713
865
  :param str symbol: unified symbol of the market the order was made in
714
866
  :param dict [params]: extra parameters specific to the exchange API endpoint
715
867
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -805,7 +957,7 @@ class bithumb(Exchange, ImplicitAPI):
805
957
  # }
806
958
  #
807
959
  timestamp = self.safe_integer_product(order, 'order_date', 0.001)
808
- sideProperty = self.safe_value_2(order, 'type', 'side')
960
+ sideProperty = self.safe_string_2(order, 'type', 'side')
809
961
  side = 'buy' if (sideProperty == 'bid') else 'sell'
810
962
  status = self.parse_order_status(self.safe_string(order, 'order_status'))
811
963
  price = self.safe_string_2(order, 'order_price', 'price')
@@ -830,7 +982,7 @@ class bithumb(Exchange, ImplicitAPI):
830
982
  market = self.safe_market(None, market)
831
983
  symbol = market['symbol']
832
984
  id = self.safe_string(order, 'order_id')
833
- rawTrades = self.safe_value(order, 'contract', [])
985
+ rawTrades = self.safe_list(order, 'contract', [])
834
986
  return self.safe_order({
835
987
  'info': order,
836
988
  'id': id,
@@ -844,7 +996,6 @@ class bithumb(Exchange, ImplicitAPI):
844
996
  'postOnly': None,
845
997
  'side': side,
846
998
  'price': price,
847
- 'stopPrice': None,
848
999
  'triggerPrice': None,
849
1000
  'amount': amount,
850
1001
  'cost': None,
@@ -859,7 +1010,9 @@ class bithumb(Exchange, ImplicitAPI):
859
1010
  async def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
860
1011
  """
861
1012
  fetch all unfilled currently open orders
862
- :see: https://apidocs.bithumb.com/reference/%EA%B1%B0%EB%9E%98-%EC%A3%BC%EB%AC%B8%EB%82%B4%EC%97%AD-%EC%A1%B0%ED%9A%8C
1013
+
1014
+ https://apidocs.bithumb.com/v1.2.0/reference/%EA%B1%B0%EB%9E%98-%EC%A3%BC%EB%AC%B8%EB%82%B4%EC%97%AD-%EC%A1%B0%ED%9A%8C
1015
+
863
1016
  :param str symbol: unified market symbol
864
1017
  :param int [since]: the earliest time in ms to fetch open orders for
865
1018
  :param int [limit]: the maximum number of open order structures to retrieve
@@ -903,7 +1056,9 @@ class bithumb(Exchange, ImplicitAPI):
903
1056
  async def cancel_order(self, id: str, symbol: Str = None, params={}):
904
1057
  """
905
1058
  cancels an open order
906
- :see: https://apidocs.bithumb.com/reference/%EC%A3%BC%EB%AC%B8-%EC%B7%A8%EC%86%8C%ED%95%98%EA%B8%B0
1059
+
1060
+ https://apidocs.bithumb.com/v1.2.0/reference/%EC%A3%BC%EB%AC%B8-%EC%B7%A8%EC%86%8C%ED%95%98%EA%B8%B0
1061
+
907
1062
  :param str id: order id
908
1063
  :param str symbol: unified symbol of the market the order was made in
909
1064
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -940,10 +1095,12 @@ class bithumb(Exchange, ImplicitAPI):
940
1095
  }
941
1096
  return await self.cancel_order(order['id'], order['symbol'], self.extend(request, params))
942
1097
 
943
- async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
1098
+ async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
944
1099
  """
945
1100
  make a withdrawal
946
- :see: https://apidocs.bithumb.com/reference/%EC%BD%94%EC%9D%B8-%EC%B6%9C%EA%B8%88%ED%95%98%EA%B8%B0-%EA%B0%9C%EC%9D%B8
1101
+
1102
+ https://apidocs.bithumb.com/v1.2.0/reference/%EC%BD%94%EC%9D%B8-%EC%B6%9C%EA%B8%88%ED%95%98%EA%B8%B0-%EA%B0%9C%EC%9D%B8
1103
+
947
1104
  :param str code: unified currency code
948
1105
  :param float amount: the amount to withdraw
949
1106
  :param str address: the address to withdraw to
@@ -960,7 +1117,7 @@ class bithumb(Exchange, ImplicitAPI):
960
1117
  'address': address,
961
1118
  'currency': currency['id'],
962
1119
  }
963
- if code == 'XRP' or code == 'XMR' or code == 'EOS' or code == 'STEEM':
1120
+ if code == 'XRP' or code == 'XMR' or code == 'EOS' or code == 'STEEM' or code == 'TON':
964
1121
  destination = self.safe_string(params, 'destination')
965
1122
  if (tag is None) and (destination is None):
966
1123
  raise ArgumentsRequired(self.id + ' ' + code + ' withdraw() requires a tag argument or an extra destination param')
@@ -5,17 +5,17 @@
5
5
 
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.bitimen import ImplicitAPI
8
- from ccxt.base.types import Int, Market, OrderBook, Strings, Ticker, Tickers
8
+ from ccxt.base.types import Any, Int, Market, OrderBook, Strings, Ticker, Tickers
9
9
  from typing import List
10
10
 
11
11
 
12
12
  class bitimen(Exchange, ImplicitAPI):
13
13
 
14
- def describe(self):
14
+ def describe(self) -> Any:
15
15
  return self.deep_extend(super(bitimen, self).describe(), {
16
16
  'id': 'bitimen',
17
17
  'name': 'Bitimen',
18
- 'country': ['IR'],
18
+ 'countries': ['IR'],
19
19
  'rateLimit': 1000,
20
20
  'version': '1',
21
21
  'certified': False,
@@ -120,10 +120,10 @@ class bitimen(Exchange, ImplicitAPI):
120
120
  },
121
121
  })
122
122
 
123
- async def fetch_markets(self, symbols: Strings = None, params={}) -> List[Market]:
123
+ async def fetch_markets(self, params={}) -> List[Market]:
124
124
  """
125
125
  retrieves data on all markets for bitimen
126
- :see: https://bitimen.com
126
+ https://bitimen.com
127
127
  :param dict [params]: extra parameters specific to the exchange API endpoint
128
128
  :returns dict[]: an array of objects representing market data
129
129
  """
@@ -132,7 +132,7 @@ class bitimen(Exchange, ImplicitAPI):
132
132
  result = []
133
133
  for i in range(0, len(marketKeys)):
134
134
  index = marketKeys[i]
135
- market = await self.parse_market(response[index])
135
+ market = self.parse_market(response[index])
136
136
  result.append(market)
137
137
  return result
138
138
 
@@ -226,7 +226,7 @@ class bitimen(Exchange, ImplicitAPI):
226
226
  async def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
227
227
  """
228
228
  fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
229
- :see: https://bitimen.com
229
+ https://bitimen.com
230
230
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
231
231
  :param dict [params]: extra parameters specific to the exchange API endpoint
232
232
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -241,7 +241,7 @@ class bitimen(Exchange, ImplicitAPI):
241
241
  index = marketKeys[i]
242
242
  if response[index]['last'] == '0':
243
243
  continue
244
- ticker = await self.parse_ticker(response[index])
244
+ ticker = self.parse_ticker(response[index])
245
245
  symbol = ticker['symbol']
246
246
  result[symbol] = ticker
247
247
  return self.filter_by_array_tickers(result, 'symbol', symbols)
@@ -249,7 +249,7 @@ class bitimen(Exchange, ImplicitAPI):
249
249
  async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
250
250
  """
251
251
  fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
252
- :see: https://bitimen.com
252
+ https://bitimen.com
253
253
  :param str symbol: unified symbol of the market to fetch the ticker for
254
254
  :param dict [params]: extra parameters specific to the exchange API endpoint
255
255
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -257,7 +257,7 @@ class bitimen(Exchange, ImplicitAPI):
257
257
  await self.load_markets()
258
258
  market = self.market(symbol)
259
259
  response = await self.publicGetApiMarketStats(params)
260
- ticker = await self.parse_ticker(response[market['id']])
260
+ ticker = self.parse_ticker(response[market['id']])
261
261
  return ticker
262
262
 
263
263
  def parse_ticker(self, ticker, market: Market = None) -> Ticker:
@@ -336,7 +336,7 @@ class bitimen(Exchange, ImplicitAPI):
336
336
  async def fetch_ohlcv(self, symbol: str, timeframe='1h', since: Int = None, limit: Int = None, params={}) -> List[list]:
337
337
  """
338
338
  fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
339
- :see: https://bitimen.com
339
+ https://bitimen.com
340
340
  :param str symbol: unified symbol of the market to fetch OHLCV data for
341
341
  :param str timeframe: the length of time each candle represents
342
342
  :param int [since]: timestamp in ms of the earliest candle to fetch
@@ -375,7 +375,7 @@ class bitimen(Exchange, ImplicitAPI):
375
375
  async def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
376
376
  """
377
377
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data for multiple markets
378
- :see: https://bitimen.com
378
+ https://bitimen.com
379
379
  :param str[]|None symbols: list of unified market symbols, all symbols fetched if None, default is None
380
380
  :param int [limit]: max number of entries per orderbook to return, default is None
381
381
  :param dict [params]: extra parameters specific to the exchange API endpoint