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/oceanex.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.oceanex import ImplicitAPI
8
- from ccxt.base.types import Balances, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees
8
+ from ccxt.base.types import Any, Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, OrderBooks, Trade, TradingFees
9
9
  from typing import List
10
10
  from ccxt.base.errors import ExchangeError
11
11
  from ccxt.base.errors import AuthenticationError
@@ -20,7 +20,7 @@ from ccxt.base.decimal_to_precision import TICK_SIZE
20
20
 
21
21
  class oceanex(Exchange, ImplicitAPI):
22
22
 
23
- def describe(self):
23
+ def describe(self) -> Any:
24
24
  return self.deep_extend(super(oceanex, self).describe(), {
25
25
  'id': 'oceanex',
26
26
  'name': 'OceanEx',
@@ -54,9 +54,11 @@ class oceanex(Exchange, ImplicitAPI):
54
54
  'fetchClosedOrders': True,
55
55
  'fetchCrossBorrowRate': False,
56
56
  'fetchCrossBorrowRates': False,
57
- 'fetchDepositAddress': False,
58
- 'fetchDepositAddresses': False,
59
- 'fetchDepositAddressesByNetwork': False,
57
+ 'fetchDepositAddress': 'emulated',
58
+ 'fetchDepositAddresses': None,
59
+ 'fetchDepositAddressesByNetwork': True,
60
+ 'fetchFundingRateHistory': False,
61
+ 'fetchFundingRates': False,
60
62
  'fetchIsolatedBorrowRate': False,
61
63
  'fetchIsolatedBorrowRates': False,
62
64
  'fetchMarkets': True,
@@ -117,6 +119,11 @@ class oceanex(Exchange, ImplicitAPI):
117
119
  'order/delete',
118
120
  'order/delete/multi',
119
121
  'orders/clear',
122
+ '/withdraws/special/new',
123
+ '/deposit_address',
124
+ '/deposit_addresses',
125
+ '/deposit_history',
126
+ '/withdraw_history',
120
127
  ],
121
128
  },
122
129
  },
@@ -132,6 +139,79 @@ class oceanex(Exchange, ImplicitAPI):
132
139
  'PLA': 'Plair',
133
140
  },
134
141
  'precisionMode': TICK_SIZE,
142
+ 'features': {
143
+ 'spot': {
144
+ 'sandbox': False,
145
+ 'createOrder': {
146
+ 'marginMode': False,
147
+ 'triggerPrice': True, # todo
148
+ 'triggerDirection': True, # todo
149
+ 'triggerPriceType': None,
150
+ 'stopLossPrice': False, # todo
151
+ 'takeProfitPrice': False, # todo
152
+ 'attachedStopLossTakeProfit': None,
153
+ 'timeInForce': {
154
+ 'IOC': False,
155
+ 'FOK': False,
156
+ 'PO': False,
157
+ 'GTD': False,
158
+ },
159
+ 'hedged': False,
160
+ 'trailing': False,
161
+ 'leverage': False,
162
+ 'marketBuyByCost': False,
163
+ 'marketBuyRequiresPrice': False,
164
+ 'selfTradePrevention': False,
165
+ 'iceberg': False,
166
+ },
167
+ 'createOrders': None,
168
+ 'fetchMyTrades': None,
169
+ 'fetchOrder': {
170
+ 'marginMode': False,
171
+ 'trigger': False,
172
+ 'trailing': False,
173
+ 'symbolRequired': False,
174
+ },
175
+ 'fetchOpenOrders': {
176
+ 'marginMode': False,
177
+ 'limit': 100, # todo: max unknown
178
+ 'trigger': False,
179
+ 'trailing': False,
180
+ 'symbolRequired': False,
181
+ },
182
+ 'fetchOrders': {
183
+ 'marginMode': False,
184
+ 'limit': 100,
185
+ 'daysBack': 100000, # todo
186
+ 'untilDays': 100000, # todo
187
+ 'trigger': False,
188
+ 'trailing': False,
189
+ 'symbolRequired': False,
190
+ },
191
+ 'fetchClosedOrders': {
192
+ 'marginMode': False,
193
+ 'limit': 100,
194
+ 'daysBack': 100000, # todo
195
+ 'daysBackCanceled': 1, # todo
196
+ 'untilDays': 100000, # todo
197
+ 'trigger': False,
198
+ 'trailing': False,
199
+ 'symbolRequired': False,
200
+ },
201
+ 'fetchOHLCV': {
202
+ 'limit': 100,
203
+ },
204
+ },
205
+ # todo implement swap
206
+ 'swap': {
207
+ 'linear': None,
208
+ 'inverse': None,
209
+ },
210
+ 'future': {
211
+ 'linear': None,
212
+ 'inverse': None,
213
+ },
214
+ },
135
215
  'exceptions': {
136
216
  'codes': {
137
217
  '-1': BadRequest,
@@ -159,7 +239,9 @@ class oceanex(Exchange, ImplicitAPI):
159
239
  def fetch_markets(self, params={}) -> List[Market]:
160
240
  """
161
241
  retrieves data on all markets for oceanex
162
- :see: https://api.oceanex.pro/doc/v1/#markets-post
242
+
243
+ https://api.oceanex.pro/doc/v1/#markets-post
244
+
163
245
  :param dict [params]: extra parameters specific to the exchange API endpoint
164
246
  :returns dict[]: an array of objects representing market data
165
247
  """
@@ -243,7 +325,9 @@ class oceanex(Exchange, ImplicitAPI):
243
325
  def fetch_ticker(self, symbol: str, params={}) -> Ticker:
244
326
  """
245
327
  fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
246
- :see: https://api.oceanex.pro/doc/v1/#ticker-post
328
+
329
+ https://api.oceanex.pro/doc/v1/#ticker-post
330
+
247
331
  :param str symbol: unified symbol of the market to fetch the ticker for
248
332
  :param dict [params]: extra parameters specific to the exchange API endpoint
249
333
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -277,7 +361,9 @@ class oceanex(Exchange, ImplicitAPI):
277
361
  def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
278
362
  """
279
363
  fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
280
- :see: https://api.oceanex.pro/doc/v1/#multiple-tickers-post
364
+
365
+ https://api.oceanex.pro/doc/v1/#multiple-tickers-post
366
+
281
367
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
282
368
  :param dict [params]: extra parameters specific to the exchange API endpoint
283
369
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -359,7 +445,9 @@ class oceanex(Exchange, ImplicitAPI):
359
445
  def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
360
446
  """
361
447
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
362
- :see: https://api.oceanex.pro/doc/v1/#order-book-post
448
+
449
+ https://api.oceanex.pro/doc/v1/#order-book-post
450
+
363
451
  :param str symbol: unified symbol of the market to fetch the order book for
364
452
  :param int [limit]: the maximum amount of order book entries to return
365
453
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -396,10 +484,12 @@ class oceanex(Exchange, ImplicitAPI):
396
484
  timestamp = self.safe_timestamp(orderbook, 'timestamp')
397
485
  return self.parse_order_book(orderbook, symbol, timestamp)
398
486
 
399
- def fetch_order_books(self, symbols: Strings = None, limit: Int = None, params={}):
487
+ def fetch_order_books(self, symbols: Strings = None, limit: Int = None, params={}) -> OrderBooks:
400
488
  """
401
489
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data for multiple markets
402
- :see: https://api.oceanex.pro/doc/v1/#multiple-order-books-post
490
+
491
+ https://api.oceanex.pro/doc/v1/#multiple-order-books-post
492
+
403
493
  :param str[]|None symbols: list of unified market symbols, all symbols fetched if None, default is None
404
494
  :param int [limit]: max number of entries per orderbook to return, default is None
405
495
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -451,7 +541,9 @@ class oceanex(Exchange, ImplicitAPI):
451
541
  def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
452
542
  """
453
543
  get the list of most recent trades for a particular symbol
454
- :see: https://api.oceanex.pro/doc/v1/#trades-post
544
+
545
+ https://api.oceanex.pro/doc/v1/#trades-post
546
+
455
547
  :param str symbol: unified symbol of the market to fetch trades for
456
548
  :param int [since]: timestamp in ms of the earliest trade to fetch
457
549
  :param int [limit]: the maximum amount of trades to fetch
@@ -478,7 +570,7 @@ class oceanex(Exchange, ImplicitAPI):
478
570
  # "funds":"6.0732952",
479
571
  # "market":"ethusdt",
480
572
  # "created_at":"2022-04-19T19:03:15Z",
481
- # "created_on":1650394995,
573
+ # "created_on":1650394994,
482
574
  # "side":"bid"
483
575
  # },
484
576
  # ]
@@ -530,10 +622,12 @@ class oceanex(Exchange, ImplicitAPI):
530
622
  'fee': None,
531
623
  }, market)
532
624
 
533
- def fetch_time(self, params={}):
625
+ def fetch_time(self, params={}) -> Int:
534
626
  """
535
627
  fetches the current integer timestamp in milliseconds from the exchange server
536
- :see: https://api.oceanex.pro/doc/v1/#api-server-time-post
628
+
629
+ https://api.oceanex.pro/doc/v1/#api-server-time-post
630
+
537
631
  :param dict [params]: extra parameters specific to the exchange API endpoint
538
632
  :returns int: the current integer timestamp in milliseconds from the exchange server
539
633
  """
@@ -546,7 +640,9 @@ class oceanex(Exchange, ImplicitAPI):
546
640
  def fetch_trading_fees(self, params={}) -> TradingFees:
547
641
  """
548
642
  fetch the trading fees for multiple markets
549
- :see: https://api.oceanex.pro/doc/v1/#trading-fees-post
643
+
644
+ https://api.oceanex.pro/doc/v1/#trading-fees-post
645
+
550
646
  :param dict [params]: extra parameters specific to the exchange API endpoint
551
647
  :returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
552
648
  """
@@ -589,7 +685,9 @@ class oceanex(Exchange, ImplicitAPI):
589
685
  def fetch_balance(self, params={}) -> Balances:
590
686
  """
591
687
  query for balance and get the amount of funds available for trading or funds locked in orders
592
- :see: https://api.oceanex.pro/doc/v1/#account-info-post
688
+
689
+ https://api.oceanex.pro/doc/v1/#account-info-post
690
+
593
691
  :param dict [params]: extra parameters specific to the exchange API endpoint
594
692
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
595
693
  """
@@ -600,12 +698,14 @@ class oceanex(Exchange, ImplicitAPI):
600
698
  def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
601
699
  """
602
700
  create a trade order
603
- :see: https://api.oceanex.pro/doc/v1/#new-order-post
701
+
702
+ https://api.oceanex.pro/doc/v1/#new-order-post
703
+
604
704
  :param str symbol: unified symbol of the market to create an order in
605
705
  :param str type: 'market' or 'limit'
606
706
  :param str side: 'buy' or 'sell'
607
707
  :param float amount: how much of currency you want to trade in units of base currency
608
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
708
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
609
709
  :param dict [params]: extra parameters specific to the exchange API endpoint
610
710
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
611
711
  """
@@ -626,7 +726,10 @@ class oceanex(Exchange, ImplicitAPI):
626
726
  def fetch_order(self, id: str, symbol: Str = None, params={}):
627
727
  """
628
728
  fetches information on an order made by the user
629
- :see: https://api.oceanex.pro/doc/v1/#order-status-get
729
+
730
+ https://api.oceanex.pro/doc/v1/#order-status-get
731
+
732
+ :param str id: order id
630
733
  :param str symbol: unified symbol of the market the order was made in
631
734
  :param dict [params]: extra parameters specific to the exchange API endpoint
632
735
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -652,7 +755,9 @@ class oceanex(Exchange, ImplicitAPI):
652
755
  def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
653
756
  """
654
757
  fetch all unfilled currently open orders
655
- :see: https://api.oceanex.pro/doc/v1/#order-status-get
758
+
759
+ https://api.oceanex.pro/doc/v1/#order-status-get
760
+
656
761
  :param str symbol: unified market symbol
657
762
  :param int [since]: the earliest time in ms to fetch open orders for
658
763
  :param int [limit]: the maximum number of open orders structures to retrieve
@@ -667,7 +772,9 @@ class oceanex(Exchange, ImplicitAPI):
667
772
  def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
668
773
  """
669
774
  fetches information on multiple closed orders made by the user
670
- :see: https://api.oceanex.pro/doc/v1/#order-status-get
775
+
776
+ https://api.oceanex.pro/doc/v1/#order-status-get
777
+
671
778
  :param str symbol: unified market symbol of the market orders were made in
672
779
  :param int [since]: the earliest time in ms to fetch orders for
673
780
  :param int [limit]: the maximum number of order structures to retrieve
@@ -682,7 +789,9 @@ class oceanex(Exchange, ImplicitAPI):
682
789
  def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
683
790
  """
684
791
  fetches information on multiple orders made by the user
685
- :see: https://api.oceanex.pro/doc/v1/#order-status-with-filters-post
792
+
793
+ https://api.oceanex.pro/doc/v1/#order-status-with-filters-post
794
+
686
795
  :param str symbol: unified market symbol of the market orders were made in
687
796
  :param int [since]: the earliest time in ms to fetch orders for
688
797
  :param int [limit]: the maximum number of order structures to retrieve
@@ -733,7 +842,9 @@ class oceanex(Exchange, ImplicitAPI):
733
842
  def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
734
843
  """
735
844
  fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
736
- :see: https://api.oceanex.pro/doc/v1/#k-line-post
845
+
846
+ https://api.oceanex.pro/doc/v1/#k-line-post
847
+
737
848
  :param str symbol: unified symbol of the market to fetch OHLCV data for
738
849
  :param str timeframe: the length of time each candle represents
739
850
  :param int [since]: timestamp in ms of the earliest candle to fetch
@@ -797,7 +908,6 @@ class oceanex(Exchange, ImplicitAPI):
797
908
  'postOnly': None,
798
909
  'side': self.safe_value(order, 'side'),
799
910
  'price': price,
800
- 'stopPrice': None,
801
911
  'triggerPrice': None,
802
912
  'average': average,
803
913
  'amount': amount,
@@ -820,7 +930,9 @@ class oceanex(Exchange, ImplicitAPI):
820
930
  def cancel_order(self, id: str, symbol: Str = None, params={}):
821
931
  """
822
932
  cancels an open order
823
- :see: https://api.oceanex.pro/doc/v1/#cancel-order-post
933
+
934
+ https://api.oceanex.pro/doc/v1/#cancel-order-post
935
+
824
936
  :param str id: order id
825
937
  :param str symbol: not used by oceanex cancelOrder()
826
938
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -834,7 +946,9 @@ class oceanex(Exchange, ImplicitAPI):
834
946
  def cancel_orders(self, ids, symbol: Str = None, params={}):
835
947
  """
836
948
  cancel multiple orders
837
- :see: https://api.oceanex.pro/doc/v1/#cancel-multiple-orders-post
949
+
950
+ https://api.oceanex.pro/doc/v1/#cancel-multiple-orders-post
951
+
838
952
  :param str[] ids: order ids
839
953
  :param str symbol: not used by oceanex cancelOrders()
840
954
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -848,7 +962,9 @@ class oceanex(Exchange, ImplicitAPI):
848
962
  def cancel_all_orders(self, symbol: Str = None, params={}):
849
963
  """
850
964
  cancel all open orders
851
- :see: https://api.oceanex.pro/doc/v1/#cancel-all-orders-post
965
+
966
+ https://api.oceanex.pro/doc/v1/#cancel-all-orders-post
967
+
852
968
  :param str symbol: unified market symbol, only orders in the market of self symbol are cancelled when symbol is not None
853
969
  :param dict [params]: extra parameters specific to the exchange API endpoint
854
970
  :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
@@ -858,6 +974,79 @@ class oceanex(Exchange, ImplicitAPI):
858
974
  data = self.safe_list(response, 'data')
859
975
  return self.parse_orders(data)
860
976
 
977
+ def fetch_deposit_addresses_by_network(self, code: str, params={}) -> List[DepositAddress]:
978
+ """
979
+ fetch the deposit addresses for a currency associated with self account
980
+
981
+ https://api.oceanex.pro/doc/v1/#deposit-addresses-post
982
+
983
+ :param str code: unified currency code
984
+ :param dict [params]: extra parameters specific to the exchange API endpoint
985
+ :returns dict: a dictionary `address structures <https://docs.ccxt.com/#/?id=address-structure>`, indexed by the network
986
+ """
987
+ self.load_markets()
988
+ currency = self.currency(code)
989
+ request: dict = {
990
+ 'currency': currency['id'],
991
+ }
992
+ response = self.privatePostDepositAddresses(self.extend(request, params))
993
+ #
994
+ # {
995
+ # code: '0',
996
+ # message: 'Operation successful',
997
+ # data: {
998
+ # data: {
999
+ # currency_id: 'usdt',
1000
+ # display_name: 'USDT',
1001
+ # num_of_resources: '3',
1002
+ # resources: [
1003
+ # {
1004
+ # chain_name: 'TRC20',
1005
+ # currency_id: 'usdt',
1006
+ # address: 'TPcS7VgKMFmpRrWY82GbJzDeMnemWxEbpg',
1007
+ # memo: '',
1008
+ # deposit_status: 'enabled'
1009
+ # },
1010
+ # ...
1011
+ # ]
1012
+ # }
1013
+ # }
1014
+ # }
1015
+ #
1016
+ data = self.safe_dict(response, 'data', {})
1017
+ data2 = self.safe_dict(data, 'data', {})
1018
+ resources = self.safe_list(data2, 'resources', [])
1019
+ result = {}
1020
+ for i in range(0, len(resources)):
1021
+ resource = resources[i]
1022
+ enabled = self.safe_string(resource, 'deposit_status')
1023
+ if enabled == 'enabled':
1024
+ parsedAddress = self.parse_deposit_address(resource, currency)
1025
+ result[parsedAddress['currency']] = parsedAddress
1026
+ return result
1027
+
1028
+ def parse_deposit_address(self, depositAddress, currency: Currency = None) -> DepositAddress:
1029
+ #
1030
+ # {
1031
+ # chain_name: 'TRC20',
1032
+ # currency_id: 'usdt',
1033
+ # address: 'TPcS7VgKMFmpRrWY82GbJzDeMnemWxEbpg',
1034
+ # memo: '',
1035
+ # deposit_status: 'enabled'
1036
+ # }
1037
+ #
1038
+ address = self.safe_string(depositAddress, 'address')
1039
+ self.check_address(address)
1040
+ currencyId = self.safe_string(depositAddress, 'currency_id')
1041
+ networkId = self.safe_string(depositAddress, 'chain_name')
1042
+ return {
1043
+ 'info': depositAddress,
1044
+ 'currency': self.safe_currency_code(currencyId, currency),
1045
+ 'network': self.network_id_to_code(networkId),
1046
+ 'address': address,
1047
+ 'tag': self.safe_string(depositAddress, 'memo'),
1048
+ }
1049
+
861
1050
  def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
862
1051
  url = self.urls['api']['rest'] + '/' + self.version + '/' + self.implode_params(path, params)
863
1052
  query = self.omit(params, self.extract_params(path))