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
ccxt/bithumb.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.bithumb import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currency, Int, Market, MarketInterface, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
9
+ from ccxt.base.types import Any, Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, MarketInterface
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
@@ -24,7 +24,7 @@ from ccxt.base.precise import Precise
24
24
 
25
25
  class bithumb(Exchange, ImplicitAPI):
26
26
 
27
- def describe(self):
27
+ def describe(self) -> Any:
28
28
  return self.deep_extend(super(bithumb, self).describe(), {
29
29
  'id': 'bithumb',
30
30
  'name': 'Bithumb',
@@ -39,30 +39,59 @@ class bithumb(Exchange, ImplicitAPI):
39
39
  'future': False,
40
40
  'option': False,
41
41
  'addMargin': False,
42
+ 'borrowCrossMargin': False,
43
+ 'borrowIsolatedMargin': False,
44
+ 'borrowMargin': False,
42
45
  'cancelOrder': True,
43
46
  'closeAllPositions': False,
44
47
  'closePosition': False,
45
48
  'createMarketOrder': True,
46
49
  'createOrder': True,
50
+ 'createOrderWithTakeProfitAndStopLoss': False,
51
+ 'createOrderWithTakeProfitAndStopLossWs': False,
47
52
  'createReduceOnlyOrder': False,
48
53
  'fetchBalance': True,
54
+ 'fetchBorrowInterest': False,
55
+ 'fetchBorrowRate': False,
49
56
  'fetchBorrowRateHistories': False,
50
57
  'fetchBorrowRateHistory': False,
58
+ 'fetchBorrowRates': False,
59
+ 'fetchBorrowRatesPerSymbol': False,
51
60
  'fetchCrossBorrowRate': False,
52
61
  'fetchCrossBorrowRates': False,
53
62
  'fetchFundingHistory': False,
63
+ 'fetchFundingInterval': False,
64
+ 'fetchFundingIntervals': False,
54
65
  'fetchFundingRate': False,
55
66
  'fetchFundingRateHistory': False,
56
67
  'fetchFundingRates': False,
68
+ 'fetchGreeks': False,
57
69
  'fetchIndexOHLCV': False,
58
70
  'fetchIsolatedBorrowRate': False,
59
71
  'fetchIsolatedBorrowRates': False,
72
+ 'fetchIsolatedPositions': False,
60
73
  'fetchLeverage': False,
74
+ 'fetchLeverages': False,
75
+ 'fetchLeverageTiers': False,
76
+ 'fetchLiquidations': False,
77
+ 'fetchLongShortRatio': False,
78
+ 'fetchLongShortRatioHistory': False,
79
+ 'fetchMarginAdjustmentHistory': False,
80
+ 'fetchMarginMode': False,
81
+ 'fetchMarginModes': False,
82
+ 'fetchMarketLeverageTiers': False,
61
83
  'fetchMarkets': True,
62
84
  'fetchMarkOHLCV': False,
85
+ 'fetchMarkPrices': False,
86
+ 'fetchMyLiquidations': False,
87
+ 'fetchMySettlementHistory': False,
63
88
  'fetchOHLCV': True,
89
+ 'fetchOpenInterest': False,
64
90
  'fetchOpenInterestHistory': False,
91
+ 'fetchOpenInterests': False,
65
92
  'fetchOpenOrders': True,
93
+ 'fetchOption': False,
94
+ 'fetchOptionChain': False,
66
95
  'fetchOrder': True,
67
96
  'fetchOrderBook': True,
68
97
  'fetchPosition': False,
@@ -73,13 +102,18 @@ class bithumb(Exchange, ImplicitAPI):
73
102
  'fetchPositionsHistory': False,
74
103
  'fetchPositionsRisk': False,
75
104
  'fetchPremiumIndexOHLCV': False,
105
+ 'fetchSettlementHistory': False,
76
106
  'fetchTicker': True,
77
107
  'fetchTickers': True,
78
108
  'fetchTrades': True,
79
109
  'fetchTransfer': False,
80
110
  'fetchTransfers': False,
111
+ 'fetchVolatilityHistory': False,
81
112
  'reduceMargin': False,
113
+ 'repayCrossMargin': False,
114
+ 'repayIsolatedMargin': False,
82
115
  'setLeverage': False,
116
+ 'setMargin': False,
83
117
  'setMarginMode': False,
84
118
  'setPositionMode': False,
85
119
  'transfer': False,
@@ -87,7 +121,7 @@ class bithumb(Exchange, ImplicitAPI):
87
121
  },
88
122
  'hostname': 'bithumb.com',
89
123
  'urls': {
90
- 'logo': 'https://user-images.githubusercontent.com/1294454/30597177-ea800172-9d5e-11e7-804c-b9d4fa9b56b0.jpg',
124
+ 'logo': 'https://github.com/user-attachments/assets/c9e0eefb-4777-46b9-8f09-9d7f7c4af82d',
91
125
  'api': {
92
126
  'public': 'https://api.{hostname}/public',
93
127
  'private': 'https://api.{hostname}',
@@ -141,6 +175,62 @@ class bithumb(Exchange, ImplicitAPI):
141
175
  },
142
176
  },
143
177
  'precisionMode': SIGNIFICANT_DIGITS,
178
+ # todo: update to v2 apis
179
+ 'features': {
180
+ 'spot': {
181
+ 'sandbox': False,
182
+ 'createOrder': {
183
+ 'marginMode': False,
184
+ 'triggerPrice': False,
185
+ 'triggerPriceType': None,
186
+ 'triggerDirection': False,
187
+ 'stopLossPrice': False,
188
+ 'takeProfitPrice': False,
189
+ 'attachedStopLossTakeProfit': None,
190
+ 'timeInForce': {
191
+ 'IOC': False,
192
+ 'FOK': False,
193
+ 'PO': False,
194
+ 'GTD': False,
195
+ },
196
+ 'hedged': False,
197
+ 'trailing': False,
198
+ 'leverage': False,
199
+ 'marketBuyRequiresPrice': False,
200
+ 'marketBuyByCost': False,
201
+ 'selfTradePrevention': False,
202
+ 'iceberg': False,
203
+ },
204
+ 'createOrders': None,
205
+ 'fetchMyTrades': None,
206
+ 'fetchOrder': {
207
+ 'marginMode': False,
208
+ 'trigger': False,
209
+ 'trailing': False,
210
+ 'symbolRequired': True,
211
+ },
212
+ 'fetchOpenOrders': {
213
+ 'marginMode': False,
214
+ 'limit': 1000,
215
+ 'trigger': False,
216
+ 'trailing': False,
217
+ 'symbolRequired': True,
218
+ },
219
+ 'fetchOrders': None,
220
+ 'fetchClosedOrders': None,
221
+ 'fetchOHLCV': {
222
+ 'limit': 1000,
223
+ },
224
+ },
225
+ 'swap': {
226
+ 'linear': None,
227
+ 'inverse': None,
228
+ },
229
+ 'future': {
230
+ 'linear': None,
231
+ 'inverse': None,
232
+ },
233
+ },
144
234
  'exceptions': {
145
235
  'Bad Request(SSL)': BadRequest,
146
236
  'Bad Request(Bad Method)': BadRequest,
@@ -207,22 +297,63 @@ class bithumb(Exchange, ImplicitAPI):
207
297
  def fetch_markets(self, params={}) -> List[Market]:
208
298
  """
209
299
  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
300
+
301
+ 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
302
+
211
303
  :param dict [params]: extra parameters specific to the exchange API endpoint
212
304
  :returns dict[]: an array of objects representing market data
213
305
  """
214
306
  result = []
215
- quoteCurrencies = self.safe_value(self.options, 'quoteCurrencies', {})
307
+ quoteCurrencies = self.safe_dict(self.options, 'quoteCurrencies', {})
216
308
  quotes = list(quoteCurrencies.keys())
309
+ promises = []
310
+ for i in range(0, len(quotes)):
311
+ request = {
312
+ 'quoteId': quotes[i],
313
+ }
314
+ promises.append(self.publicGetTickerALLQuoteId(self.extend(request, params)))
315
+ #
316
+ # {
317
+ # "status": "0000",
318
+ # "data": {
319
+ # "ETH": {
320
+ # "opening_price": "0.05153399",
321
+ # "closing_price": "0.05145144",
322
+ # "min_price": "0.05145144",
323
+ # "max_price": "0.05160781",
324
+ # "units_traded": "6.541124172077830855",
325
+ # "acc_trade_value": "0.33705472498492329997697755",
326
+ # "prev_closing_price": "0.0515943",
327
+ # "units_traded_24H": "43.368879902677400513",
328
+ # "acc_trade_value_24H": "2.24165339555398079994373342",
329
+ # "fluctate_24H": "-0.00018203",
330
+ # "fluctate_rate_24H": "-0.35"
331
+ # },
332
+ # "XRP": {
333
+ # "opening_price": "0.00000918",
334
+ # "closing_price": "0.0000092",
335
+ # "min_price": "0.00000918",
336
+ # "max_price": "0.0000092",
337
+ # "units_traded": "6516.949363",
338
+ # "acc_trade_value": "0.0598792533602796",
339
+ # "prev_closing_price": "0.00000916",
340
+ # "units_traded_24H": "229161.50354738",
341
+ # "acc_trade_value_24H": "2.0446589371637117",
342
+ # "fluctate_24H": "0.00000049",
343
+ # "fluctate_rate_24H": "5.63"
344
+ # },
345
+ # ...
346
+ # "date": "1721675913145"
347
+ # }
348
+ # }
349
+ #
350
+ results = promises
217
351
  for i in range(0, len(quotes)):
218
352
  quote = quotes[i]
219
353
  quoteId = quote
220
- extension = self.safe_value(quoteCurrencies, quote, {})
221
- request: dict = {
222
- 'quoteId': quoteId,
223
- }
224
- response = self.publicGetTickerALLQuoteId(self.extend(request, params))
225
- data = self.safe_value(response, 'data')
354
+ response = results[i]
355
+ data = self.safe_dict(response, 'data')
356
+ extension = self.safe_dict(quoteCurrencies, quote, {})
226
357
  currencyIds = list(data.keys())
227
358
  for j in range(0, len(currencyIds)):
228
359
  currencyId = currencyIds[j]
@@ -286,7 +417,7 @@ class bithumb(Exchange, ImplicitAPI):
286
417
 
287
418
  def parse_balance(self, response) -> Balances:
288
419
  result: dict = {'info': response}
289
- balances = self.safe_value(response, 'data')
420
+ balances = self.safe_dict(response, 'data')
290
421
  codes = list(self.currencies.keys())
291
422
  for i in range(0, len(codes)):
292
423
  code = codes[i]
@@ -302,7 +433,9 @@ class bithumb(Exchange, ImplicitAPI):
302
433
  def fetch_balance(self, params={}) -> Balances:
303
434
  """
304
435
  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
436
+
437
+ 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
438
+
306
439
  :param dict [params]: extra parameters specific to the exchange API endpoint
307
440
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
308
441
  """
@@ -316,7 +449,9 @@ class bithumb(Exchange, ImplicitAPI):
316
449
  def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
317
450
  """
318
451
  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
452
+
453
+ 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
454
+
320
455
  :param str symbol: unified symbol of the market to fetch the order book for
321
456
  :param int [limit]: the maximum amount of order book entries to return
322
457
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -351,7 +486,7 @@ class bithumb(Exchange, ImplicitAPI):
351
486
  # }
352
487
  # }
353
488
  #
354
- data = self.safe_value(response, 'data', {})
489
+ data = self.safe_dict(response, 'data', {})
355
490
  timestamp = self.safe_integer(data, 'timestamp')
356
491
  return self.parse_order_book(data, symbol, timestamp, 'bids', 'asks', 'price', 'quantity')
357
492
 
@@ -406,22 +541,27 @@ class bithumb(Exchange, ImplicitAPI):
406
541
  def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
407
542
  """
408
543
  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
544
+
545
+ 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
546
+
410
547
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
411
548
  :param dict [params]: extra parameters specific to the exchange API endpoint
412
549
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
413
550
  """
414
551
  self.load_markets()
415
552
  result: dict = {}
416
- quoteCurrencies = self.safe_value(self.options, 'quoteCurrencies', {})
553
+ quoteCurrencies = self.safe_dict(self.options, 'quoteCurrencies', {})
417
554
  quotes = list(quoteCurrencies.keys())
555
+ promises = []
418
556
  for i in range(0, len(quotes)):
419
- quote = quotes[i]
420
- quoteId = quote
421
557
  request: dict = {
422
- 'quoteId': quoteId,
558
+ 'quoteId': quotes[i],
423
559
  }
424
- response = self.publicGetTickerALLQuoteId(self.extend(request, params))
560
+ promises.append(self.publicGetTickerALLQuoteId(self.extend(request, params)))
561
+ responses = promises
562
+ for i in range(0, len(quotes)):
563
+ quote = quotes[i]
564
+ response = responses[i]
425
565
  #
426
566
  # {
427
567
  # "status":"0000",
@@ -443,7 +583,7 @@ class bithumb(Exchange, ImplicitAPI):
443
583
  # }
444
584
  # }
445
585
  #
446
- data = self.safe_value(response, 'data', {})
586
+ data = self.safe_dict(response, 'data', {})
447
587
  timestamp = self.safe_integer(data, 'date')
448
588
  tickers = self.omit(data, 'date')
449
589
  currencyIds = list(tickers.keys())
@@ -460,7 +600,9 @@ class bithumb(Exchange, ImplicitAPI):
460
600
  def fetch_ticker(self, symbol: str, params={}) -> Ticker:
461
601
  """
462
602
  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
603
+
604
+ 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
605
+
464
606
  :param str symbol: unified symbol of the market to fetch the ticker for
465
607
  :param dict [params]: extra parameters specific to the exchange API endpoint
466
608
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -517,7 +659,9 @@ class bithumb(Exchange, ImplicitAPI):
517
659
  def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
518
660
  """
519
661
  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
662
+
663
+ https://apidocs.bithumb.com/v1.2.0/reference/candlestick-rest-api
664
+
521
665
  :param str symbol: unified symbol of the market to fetch OHLCV data for
522
666
  :param str timeframe: the length of time each candle represents
523
667
  :param int [since]: timestamp in ms of the earliest candle to fetch
@@ -634,7 +778,9 @@ class bithumb(Exchange, ImplicitAPI):
634
778
  def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
635
779
  """
636
780
  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
781
+
782
+ 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
783
+
638
784
  :param str symbol: unified symbol of the market to fetch trades for
639
785
  :param int [since]: timestamp in ms of the earliest trade to fetch
640
786
  :param int [limit]: the maximum amount of trades to fetch
@@ -670,14 +816,16 @@ class bithumb(Exchange, ImplicitAPI):
670
816
  def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
671
817
  """
672
818
  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
819
+
820
+ 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
821
+ 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
822
+ 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
823
+
676
824
  :param str symbol: unified symbol of the market to create an order in
677
825
  :param str type: 'market' or 'limit'
678
826
  :param str side: 'buy' or 'sell'
679
827
  :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
828
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
681
829
  :param dict [params]: extra parameters specific to the exchange API endpoint
682
830
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
683
831
  """
@@ -709,7 +857,10 @@ class bithumb(Exchange, ImplicitAPI):
709
857
  def fetch_order(self, id: str, symbol: Str = None, params={}):
710
858
  """
711
859
  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
860
+
861
+ 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
862
+
863
+ :param str id: order id
713
864
  :param str symbol: unified symbol of the market the order was made in
714
865
  :param dict [params]: extra parameters specific to the exchange API endpoint
715
866
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -805,7 +956,7 @@ class bithumb(Exchange, ImplicitAPI):
805
956
  # }
806
957
  #
807
958
  timestamp = self.safe_integer_product(order, 'order_date', 0.001)
808
- sideProperty = self.safe_value_2(order, 'type', 'side')
959
+ sideProperty = self.safe_string_2(order, 'type', 'side')
809
960
  side = 'buy' if (sideProperty == 'bid') else 'sell'
810
961
  status = self.parse_order_status(self.safe_string(order, 'order_status'))
811
962
  price = self.safe_string_2(order, 'order_price', 'price')
@@ -830,7 +981,7 @@ class bithumb(Exchange, ImplicitAPI):
830
981
  market = self.safe_market(None, market)
831
982
  symbol = market['symbol']
832
983
  id = self.safe_string(order, 'order_id')
833
- rawTrades = self.safe_value(order, 'contract', [])
984
+ rawTrades = self.safe_list(order, 'contract', [])
834
985
  return self.safe_order({
835
986
  'info': order,
836
987
  'id': id,
@@ -844,7 +995,6 @@ class bithumb(Exchange, ImplicitAPI):
844
995
  'postOnly': None,
845
996
  'side': side,
846
997
  'price': price,
847
- 'stopPrice': None,
848
998
  'triggerPrice': None,
849
999
  'amount': amount,
850
1000
  'cost': None,
@@ -859,7 +1009,9 @@ class bithumb(Exchange, ImplicitAPI):
859
1009
  def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
860
1010
  """
861
1011
  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
1012
+
1013
+ 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
1014
+
863
1015
  :param str symbol: unified market symbol
864
1016
  :param int [since]: the earliest time in ms to fetch open orders for
865
1017
  :param int [limit]: the maximum number of open order structures to retrieve
@@ -903,7 +1055,9 @@ class bithumb(Exchange, ImplicitAPI):
903
1055
  def cancel_order(self, id: str, symbol: Str = None, params={}):
904
1056
  """
905
1057
  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
1058
+
1059
+ 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
1060
+
907
1061
  :param str id: order id
908
1062
  :param str symbol: unified symbol of the market the order was made in
909
1063
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -940,10 +1094,12 @@ class bithumb(Exchange, ImplicitAPI):
940
1094
  }
941
1095
  return self.cancel_order(order['id'], order['symbol'], self.extend(request, params))
942
1096
 
943
- def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
1097
+ def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
944
1098
  """
945
1099
  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
1100
+
1101
+ 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
1102
+
947
1103
  :param str code: unified currency code
948
1104
  :param float amount: the amount to withdraw
949
1105
  :param str address: the address to withdraw to
@@ -960,7 +1116,7 @@ class bithumb(Exchange, ImplicitAPI):
960
1116
  'address': address,
961
1117
  'currency': currency['id'],
962
1118
  }
963
- if code == 'XRP' or code == 'XMR' or code == 'EOS' or code == 'STEEM':
1119
+ if code == 'XRP' or code == 'XMR' or code == 'EOS' or code == 'STEEM' or code == 'TON':
964
1120
  destination = self.safe_string(params, 'destination')
965
1121
  if (tag is None) and (destination is None):
966
1122
  raise ArgumentsRequired(self.id + ' ' + code + ' withdraw() requires a tag argument or an extra destination param')
ccxt/bitimen.py CHANGED
@@ -5,17 +5,17 @@
5
5
 
6
6
  from ccxt.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
- def fetch_markets(self, symbols: Strings = None, params={}) -> List[Market]:
123
+ 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
  """
@@ -226,7 +226,7 @@ class bitimen(Exchange, ImplicitAPI):
226
226
  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>`
@@ -249,7 +249,7 @@ class bitimen(Exchange, ImplicitAPI):
249
249
  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>`
@@ -336,7 +336,7 @@ class bitimen(Exchange, ImplicitAPI):
336
336
  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
  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