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
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.coinone import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currencies, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
9
+ from ccxt.base.types import Any, Balances, Currencies, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import ArgumentsRequired
@@ -20,13 +20,12 @@ from ccxt.base.precise import Precise
20
20
 
21
21
  class coinone(Exchange, ImplicitAPI):
22
22
 
23
- def describe(self):
23
+ def describe(self) -> Any:
24
24
  return self.deep_extend(super(coinone, self).describe(), {
25
25
  'id': 'coinone',
26
26
  'name': 'CoinOne',
27
27
  'countries': ['KR'], # Korea
28
- # 'enableRateLimit': False,
29
- 'rateLimit': 667,
28
+ 'rateLimit': 50,
30
29
  'version': 'v2',
31
30
  'pro': False,
32
31
  'has': {
@@ -37,38 +36,68 @@ class coinone(Exchange, ImplicitAPI):
37
36
  'future': False,
38
37
  'option': False,
39
38
  'addMargin': False,
39
+ 'borrowCrossMargin': False,
40
+ 'borrowIsolatedMargin': False,
41
+ 'borrowMargin': False,
40
42
  'cancelOrder': True,
41
43
  'closeAllPositions': False,
42
44
  'closePosition': False,
43
45
  'createMarketOrder': False,
44
46
  'createOrder': True,
47
+ 'createOrderWithTakeProfitAndStopLoss': False,
48
+ 'createOrderWithTakeProfitAndStopLossWs': False,
49
+ 'createPostOnlyOrder': False,
45
50
  'createReduceOnlyOrder': False,
46
51
  'createStopLimitOrder': False,
47
52
  'createStopMarketOrder': False,
48
53
  'createStopOrder': False,
49
54
  'fetchBalance': True,
55
+ 'fetchBorrowInterest': False,
56
+ 'fetchBorrowRate': False,
50
57
  'fetchBorrowRateHistories': False,
51
58
  'fetchBorrowRateHistory': False,
59
+ 'fetchBorrowRates': False,
60
+ 'fetchBorrowRatesPerSymbol': False,
52
61
  'fetchClosedOrders': False, # the endpoint that should return closed orders actually returns trades, https://github.com/ccxt/ccxt/pull/7067
53
62
  'fetchCrossBorrowRate': False,
54
63
  'fetchCrossBorrowRates': False,
55
64
  'fetchCurrencies': True,
65
+ 'fetchDepositAddress': False,
56
66
  'fetchDepositAddresses': True,
67
+ 'fetchDepositAddressesByNetwork': False,
57
68
  'fetchFundingHistory': False,
69
+ 'fetchFundingInterval': False,
70
+ 'fetchFundingIntervals': False,
58
71
  'fetchFundingRate': False,
59
72
  'fetchFundingRateHistory': False,
60
73
  'fetchFundingRates': False,
74
+ 'fetchGreeks': False,
61
75
  'fetchIndexOHLCV': False,
62
76
  'fetchIsolatedBorrowRate': False,
63
77
  'fetchIsolatedBorrowRates': False,
78
+ 'fetchIsolatedPositions': False,
64
79
  'fetchLeverage': False,
80
+ 'fetchLeverages': False,
65
81
  'fetchLeverageTiers': False,
82
+ 'fetchLiquidations': False,
83
+ 'fetchLongShortRatio': False,
84
+ 'fetchLongShortRatioHistory': False,
85
+ 'fetchMarginAdjustmentHistory': False,
66
86
  'fetchMarginMode': False,
87
+ 'fetchMarginModes': False,
88
+ 'fetchMarketLeverageTiers': False,
67
89
  'fetchMarkets': True,
68
90
  'fetchMarkOHLCV': False,
91
+ 'fetchMarkPrices': False,
92
+ 'fetchMyLiquidations': False,
93
+ 'fetchMySettlementHistory': False,
69
94
  'fetchMyTrades': True,
95
+ 'fetchOpenInterest': False,
70
96
  'fetchOpenInterestHistory': False,
97
+ 'fetchOpenInterests': False,
71
98
  'fetchOpenOrders': True,
99
+ 'fetchOption': False,
100
+ 'fetchOptionChain': False,
72
101
  'fetchOrder': True,
73
102
  'fetchOrderBook': True,
74
103
  'fetchPosition': False,
@@ -79,11 +108,17 @@ class coinone(Exchange, ImplicitAPI):
79
108
  'fetchPositionsHistory': False,
80
109
  'fetchPositionsRisk': False,
81
110
  'fetchPremiumIndexOHLCV': False,
111
+ 'fetchSettlementHistory': False,
82
112
  'fetchTicker': True,
83
113
  'fetchTickers': True,
84
114
  'fetchTrades': True,
115
+ 'fetchVolatilityHistory': False,
85
116
  'reduceMargin': False,
117
+ 'repayCrossMargin': False,
118
+ 'repayIsolatedMargin': False,
119
+ 'repayMargin': False,
86
120
  'setLeverage': False,
121
+ 'setMargin': False,
87
122
  'setMarginMode': False,
88
123
  'setPositionMode': False,
89
124
  'ws': True,
@@ -196,12 +231,71 @@ class coinone(Exchange, ImplicitAPI):
196
231
  'maker': 0.002,
197
232
  },
198
233
  },
234
+ 'features': {
235
+ 'spot': {
236
+ 'sandbox': False,
237
+ 'createOrder': {
238
+ 'marginMode': False,
239
+ 'triggerPrice': False,
240
+ 'triggerPriceType': None,
241
+ 'triggerDirection': False,
242
+ 'stopLossPrice': False,
243
+ 'takeProfitPrice': False,
244
+ 'attachedStopLossTakeProfit': None,
245
+ 'timeInForce': {
246
+ 'IOC': False,
247
+ 'FOK': False,
248
+ 'PO': False,
249
+ 'GTD': False,
250
+ },
251
+ 'hedged': False,
252
+ 'trailing': False,
253
+ 'leverage': False,
254
+ 'marketBuyByCost': False,
255
+ 'marketBuyRequiresPrice': False,
256
+ 'selfTradePrevention': False,
257
+ 'iceberg': False,
258
+ },
259
+ 'createOrders': None,
260
+ 'fetchMyTrades': {
261
+ 'marginMode': False,
262
+ 'limit': 100, # todo implement
263
+ 'daysBack': 100000, # todo implement
264
+ 'untilDays': 100000, # todo implement
265
+ 'symbolRequired': True,
266
+ },
267
+ 'fetchOrder': {
268
+ 'marginMode': False,
269
+ 'trigger': False,
270
+ 'trailing': False,
271
+ 'symbolRequired': True,
272
+ },
273
+ 'fetchOpenOrders': {
274
+ 'marginMode': False,
275
+ 'limit': None,
276
+ 'trigger': False,
277
+ 'trailing': False,
278
+ 'symbolRequired': True,
279
+ },
280
+ 'fetchOrders': None,
281
+ 'fetchClosedOrders': None, # todo implement
282
+ 'fetchOHLCV': None, # todo implement
283
+ },
284
+ 'swap': {
285
+ 'linear': None,
286
+ 'inverse': None,
287
+ },
288
+ 'future': {
289
+ 'linear': None,
290
+ 'inverse': None,
291
+ },
292
+ },
199
293
  'precisionMode': TICK_SIZE,
200
294
  'exceptions': {
201
- '405': OnMaintenance, # {"errorCode":"405","status":"maintenance","result":"error"}
202
- '104': OrderNotFound, # {"errorCode":"104","errorMsg":"Order id is not exist","result":"error"}
203
- '108': BadSymbol, # {"errorCode":"108","errorMsg":"Unknown CryptoCurrency","result":"error"}
204
- '107': BadRequest, # {"errorCode":"107","errorMsg":"Parameter error","result":"error"}
295
+ '104': OrderNotFound,
296
+ '107': BadRequest,
297
+ '108': BadSymbol,
298
+ '405': OnMaintenance,
205
299
  },
206
300
  'commonCurrencies': {
207
301
  'SOC': 'Soda Coin',
@@ -211,7 +305,9 @@ class coinone(Exchange, ImplicitAPI):
211
305
  async def fetch_currencies(self, params={}) -> Currencies:
212
306
  """
213
307
  fetches all available currencies on an exchange
214
- :see: https://docs.coinone.co.kr/reference/currencies
308
+
309
+ https://docs.coinone.co.kr/reference/currencies
310
+
215
311
  :param dict [params]: extra parameters specific to the exchange API endpoint
216
312
  :returns dict: an associative dictionary of currencies
217
313
  """
@@ -237,22 +333,20 @@ class coinone(Exchange, ImplicitAPI):
237
333
  # }
238
334
  #
239
335
  result: dict = {}
240
- currencies = self.safe_value(response, 'currencies', [])
336
+ currencies = self.safe_list(response, 'currencies', [])
241
337
  for i in range(0, len(currencies)):
242
338
  entry = currencies[i]
243
339
  id = self.safe_string(entry, 'symbol')
244
- name = self.safe_string(entry, 'name')
245
340
  code = self.safe_currency_code(id)
246
- withdrawStatus = self.safe_string(entry, 'withdraw_status', '')
247
- depositStatus = self.safe_string(entry, 'deposit_status', '')
248
- isWithdrawEnabled = withdrawStatus == 'normal'
249
- isDepositEnabled = depositStatus == 'normal'
250
- result[code] = {
341
+ isWithdrawEnabled = self.safe_string(entry, 'withdraw_status', '') == 'normal'
342
+ isDepositEnabled = self.safe_string(entry, 'deposit_status', '') == 'normal'
343
+ type = 'crypto' if (code != 'KRW') else 'fiat'
344
+ result[code] = self.safe_currency_structure({
251
345
  'id': id,
252
346
  'code': code,
253
347
  'info': entry,
254
- 'name': name,
255
- 'active': isWithdrawEnabled and isDepositEnabled,
348
+ 'name': self.safe_string(entry, 'name'),
349
+ 'active': None,
256
350
  'deposit': isDepositEnabled,
257
351
  'withdraw': isWithdrawEnabled,
258
352
  'fee': self.safe_number(entry, 'withdrawal_fee'),
@@ -268,13 +362,16 @@ class coinone(Exchange, ImplicitAPI):
268
362
  },
269
363
  },
270
364
  'networks': {},
271
- }
365
+ 'type': type,
366
+ })
272
367
  return result
273
368
 
274
369
  async def fetch_markets(self, params={}) -> List[Market]:
275
370
  """
276
371
  retrieves data on all markets for coinone
277
- :see: https://docs.coinone.co.kr/v1.0/reference/tickers
372
+
373
+ https://docs.coinone.co.kr/v1.0/reference/tickers
374
+
278
375
  :param dict [params]: extra parameters specific to the exchange API endpoint
279
376
  :returns dict[]: an array of objects representing market data
280
377
  """
@@ -315,7 +412,7 @@ class coinone(Exchange, ImplicitAPI):
315
412
  # ]
316
413
  # }
317
414
  #
318
- tickers = self.safe_value(response, 'tickers', [])
415
+ tickers = self.safe_list(response, 'tickers', [])
319
416
  result = []
320
417
  for i in range(0, len(tickers)):
321
418
  entry = self.safe_value(tickers, i)
@@ -397,7 +494,9 @@ class coinone(Exchange, ImplicitAPI):
397
494
  async def fetch_balance(self, params={}) -> Balances:
398
495
  """
399
496
  query for balance and get the amount of funds available for trading or funds locked in orders
400
- :see: https://docs.coinone.co.kr/v1.0/reference/v21
497
+
498
+ https://docs.coinone.co.kr/v1.0/reference/v21
499
+
401
500
  :param dict [params]: extra parameters specific to the exchange API endpoint
402
501
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
403
502
  """
@@ -408,7 +507,9 @@ class coinone(Exchange, ImplicitAPI):
408
507
  async def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
409
508
  """
410
509
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
411
- :see: https://docs.coinone.co.kr/v1.0/reference/orderbook
510
+
511
+ https://docs.coinone.co.kr/v1.0/reference/orderbook
512
+
412
513
  :param str symbol: unified symbol of the market to fetch the order book for
413
514
  :param int [limit]: the maximum amount of order book entries to return
414
515
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -452,8 +553,10 @@ class coinone(Exchange, ImplicitAPI):
452
553
  async def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
453
554
  """
454
555
  fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
455
- :see: https://docs.coinone.co.kr/v1.0/reference/tickers
456
- :see: https://docs.coinone.co.kr/v1.0/reference/ticker
556
+
557
+ https://docs.coinone.co.kr/v1.0/reference/tickers
558
+ https://docs.coinone.co.kr/v1.0/reference/ticker
559
+
457
560
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
458
561
  :param dict [params]: extra parameters specific to the exchange API endpoint
459
562
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -512,7 +615,9 @@ class coinone(Exchange, ImplicitAPI):
512
615
  async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
513
616
  """
514
617
  fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
515
- :see: https://docs.coinone.co.kr/v1.0/reference/ticker
618
+
619
+ https://docs.coinone.co.kr/v1.0/reference/ticker
620
+
516
621
  :param str symbol: unified symbol of the market to fetch the ticker for
517
622
  :param dict [params]: extra parameters specific to the exchange API endpoint
518
623
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -557,7 +662,7 @@ class coinone(Exchange, ImplicitAPI):
557
662
  # ]
558
663
  # }
559
664
  #
560
- data = self.safe_value(response, 'tickers', [])
665
+ data = self.safe_list(response, 'tickers', [])
561
666
  ticker = self.safe_dict(data, 0, {})
562
667
  return self.parse_ticker(ticker, market)
563
668
 
@@ -590,8 +695,8 @@ class coinone(Exchange, ImplicitAPI):
590
695
  #
591
696
  timestamp = self.safe_integer(ticker, 'timestamp')
592
697
  last = self.safe_string(ticker, 'last')
593
- asks = self.safe_value(ticker, 'best_asks')
594
- bids = self.safe_value(ticker, 'best_bids')
698
+ asks = self.safe_list(ticker, 'best_asks', [])
699
+ bids = self.safe_list(ticker, 'best_bids', [])
595
700
  baseId = self.safe_string(ticker, 'target_currency')
596
701
  quoteId = self.safe_string(ticker, 'quote_currency')
597
702
  base = self.safe_currency_code(baseId)
@@ -645,7 +750,7 @@ class coinone(Exchange, ImplicitAPI):
645
750
  #
646
751
  timestamp = self.safe_integer(trade, 'timestamp')
647
752
  market = self.safe_market(None, market)
648
- isSellerMaker = self.safe_value(trade, 'is_seller_maker')
753
+ isSellerMaker = self.safe_bool(trade, 'is_seller_maker')
649
754
  side = None
650
755
  if isSellerMaker is not None:
651
756
  side = 'sell' if isSellerMaker else 'buy'
@@ -683,7 +788,9 @@ class coinone(Exchange, ImplicitAPI):
683
788
  async def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
684
789
  """
685
790
  get the list of most recent trades for a particular symbol
686
- :see: https://docs.coinone.co.kr/v1.0/reference/recent-completed-orders
791
+
792
+ https://docs.coinone.co.kr/v1.0/reference/recent-completed-orders
793
+
687
794
  :param str symbol: unified symbol of the market to fetch trades for
688
795
  :param int [since]: timestamp in ms of the earliest trade to fetch
689
796
  :param int [limit]: the maximum amount of trades to fetch
@@ -723,13 +830,15 @@ class coinone(Exchange, ImplicitAPI):
723
830
  async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
724
831
  """
725
832
  create a trade order
726
- :see: https://doc.coinone.co.kr/#tag/Order-V2/operation/v2_order_limit_buy
727
- :see: https://doc.coinone.co.kr/#tag/Order-V2/operation/v2_order_limit_sell
833
+
834
+ https://doc.coinone.co.kr/#tag/Order-V2/operation/v2_order_limit_buy
835
+ https://doc.coinone.co.kr/#tag/Order-V2/operation/v2_order_limit_sell
836
+
728
837
  :param str symbol: unified symbol of the market to create an order in
729
838
  :param str type: must be 'limit'
730
839
  :param str side: 'buy' or 'sell'
731
840
  :param float amount: how much of currency you want to trade in units of base currency
732
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
841
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
733
842
  :param dict [params]: extra parameters specific to the exchange API endpoint
734
843
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
735
844
  """
@@ -756,6 +865,7 @@ class coinone(Exchange, ImplicitAPI):
756
865
  async def fetch_order(self, id: str, symbol: Str = None, params={}):
757
866
  """
758
867
  fetches information on an order made by the user
868
+ :param str id: order id
759
869
  :param str symbol: unified symbol of the market the order was made in
760
870
  :param dict [params]: extra parameters specific to the exchange API endpoint
761
871
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -897,7 +1007,6 @@ class coinone(Exchange, ImplicitAPI):
897
1007
  'postOnly': None,
898
1008
  'side': side,
899
1009
  'price': self.safe_string(order, 'price'),
900
- 'stopPrice': None,
901
1010
  'triggerPrice': None,
902
1011
  'cost': None,
903
1012
  'average': self.safe_string(order, 'averageExecutedPrice'),
@@ -1022,7 +1131,7 @@ class coinone(Exchange, ImplicitAPI):
1022
1131
  #
1023
1132
  return self.safe_order(response)
1024
1133
 
1025
- async def fetch_deposit_addresses(self, codes: Strings = None, params={}):
1134
+ async def fetch_deposit_addresses(self, codes: Strings = None, params={}) -> List[DepositAddress]:
1026
1135
  """
1027
1136
  fetch deposit addresses for multiple currencies and chain types
1028
1137
  :param str[]|None codes: list of unified currency codes, default is None
@@ -1045,7 +1154,7 @@ class coinone(Exchange, ImplicitAPI):
1045
1154
  # }
1046
1155
  # }
1047
1156
  #
1048
- walletAddress = self.safe_value(response, 'walletAddress', {})
1157
+ walletAddress = self.safe_dict(response, 'walletAddress', {})
1049
1158
  keys = list(walletAddress.keys())
1050
1159
  result: dict = {}
1051
1160
  for i in range(0, len(keys)):
@@ -1060,10 +1169,11 @@ class coinone(Exchange, ImplicitAPI):
1060
1169
  depositAddress = self.safe_value(result, code)
1061
1170
  if depositAddress is None:
1062
1171
  depositAddress = {
1172
+ 'info': value,
1063
1173
  'currency': code,
1174
+ 'network': None,
1064
1175
  'address': None,
1065
1176
  'tag': None,
1066
- 'info': value,
1067
1177
  }
1068
1178
  address = self.safe_string(depositAddress, 'address', value)
1069
1179
  self.check_address(address)
@@ -1111,17 +1221,14 @@ class coinone(Exchange, ImplicitAPI):
1111
1221
 
1112
1222
  def handle_errors(self, code: int, reason: str, url: str, method: str, headers: dict, body: str, response, requestHeaders, requestBody):
1113
1223
  if response is None:
1114
- return None
1115
- if 'result' in response:
1116
- result = response['result']
1117
- if result != 'success':
1118
- #
1119
- # { "errorCode": "405", "status": "maintenance", "result": "error"}
1120
- #
1121
- errorCode = self.safe_string(response, 'errorCode')
1122
- feedback = self.id + ' ' + body
1123
- self.throw_exactly_matched_exception(self.exceptions, errorCode, feedback)
1124
- raise ExchangeError(feedback)
1125
- else:
1126
- raise ExchangeError(self.id + ' ' + body)
1224
+ return None # fallback to default error handler
1225
+ #
1226
+ # {"result":"error","error_code":"107","error_msg":"Parameter value is wrong"}
1227
+ # {"result":"error","error_code":"108","error_msg":"Unknown CryptoCurrency"}
1228
+ #
1229
+ errorCode = self.safe_string(response, 'error_code')
1230
+ if errorCode is not None and errorCode != '0':
1231
+ feedback = self.id + ' ' + body
1232
+ self.throw_exactly_matched_exception(self.exceptions, errorCode, feedback)
1233
+ raise ExchangeError(feedback) # unknown message
1127
1234
  return None