ccxt-ir 4.3.46.0.2__py2.py3-none-any.whl → 4.5.0__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 (528) hide show
  1. ccxt/__init__.py +39 -35
  2. ccxt/abantether.py +9 -9
  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 +7 -7
  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 +10 -10
  68. ccxt/async_support/afratether.py +9 -9
  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 +31 -37
  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 +25 -24
  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 +30 -27
  183. ccxt/async_support/sarmayex.py +9 -9
  184. ccxt/async_support/sarrafex.py +13 -13
  185. ccxt/async_support/tabdeal.py +14 -13
  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 +29 -35
  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 +22 -21
  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 +28 -25
  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 +12 -11
  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.2.dist-info → ccxt_ir-4.5.0.dist-info}/METADATA +225 -73
  435. ccxt_ir-4.5.0.dist-info/RECORD +743 -0
  436. {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info}/WHEEL +1 -1
  437. ccxt/abstract/ace.py +0 -15
  438. ccxt/abstract/bitbay.py +0 -53
  439. ccxt/abstract/bitcoincom.py +0 -115
  440. ccxt/abstract/bitfinex2.py +0 -139
  441. ccxt/abstract/bitpanda.py +0 -35
  442. ccxt/abstract/bl3p.py +0 -19
  443. ccxt/abstract/coinlist.py +0 -54
  444. ccxt/abstract/currencycom.py +0 -68
  445. ccxt/abstract/hitbtc3.py +0 -115
  446. ccxt/abstract/idex.py +0 -26
  447. ccxt/abstract/kuna.py +0 -182
  448. ccxt/abstract/lykke.py +0 -29
  449. ccxt/abstract/poloniexfutures.py +0 -48
  450. ccxt/abstract/wazirx.py +0 -30
  451. ccxt/ace.py +0 -1012
  452. ccxt/async_support/ace.py +0 -1012
  453. ccxt/async_support/base/ws/aiohttp_client.py +0 -125
  454. ccxt/async_support/base/ws/fast_client.py +0 -96
  455. ccxt/async_support/bitbay.py +0 -17
  456. ccxt/async_support/bitcoincom.py +0 -17
  457. ccxt/async_support/bitfinex2.py +0 -3552
  458. ccxt/async_support/bitpanda.py +0 -16
  459. ccxt/async_support/bl3p.py +0 -485
  460. ccxt/async_support/coinlist.py +0 -2243
  461. ccxt/async_support/currencycom.py +0 -1950
  462. ccxt/async_support/hitbtc3.py +0 -16
  463. ccxt/async_support/idex.py +0 -1766
  464. ccxt/async_support/kuna.py +0 -1841
  465. ccxt/async_support/lykke.py +0 -1270
  466. ccxt/async_support/poloniexfutures.py +0 -1717
  467. ccxt/async_support/wazirx.py +0 -1224
  468. ccxt/bitbay.py +0 -17
  469. ccxt/bitcoincom.py +0 -17
  470. ccxt/bitfinex2.py +0 -3552
  471. ccxt/bitpanda.py +0 -16
  472. ccxt/bl3p.py +0 -485
  473. ccxt/coinlist.py +0 -2243
  474. ccxt/currencycom.py +0 -1950
  475. ccxt/hitbtc3.py +0 -16
  476. ccxt/idex.py +0 -1766
  477. ccxt/kuna.py +0 -1841
  478. ccxt/lykke.py +0 -1270
  479. ccxt/poloniexfutures.py +0 -1717
  480. ccxt/pro/bitcoincom.py +0 -34
  481. ccxt/pro/bitfinex2.py +0 -1083
  482. ccxt/pro/bitpanda.py +0 -15
  483. ccxt/pro/currencycom.py +0 -536
  484. ccxt/pro/idex.py +0 -672
  485. ccxt/pro/poloniexfutures.py +0 -990
  486. ccxt/pro/wazirx.py +0 -749
  487. ccxt/test/base/__init__.py +0 -29
  488. ccxt/test/base/test_account.py +0 -26
  489. ccxt/test/base/test_balance.py +0 -56
  490. ccxt/test/base/test_borrow_interest.py +0 -35
  491. ccxt/test/base/test_borrow_rate.py +0 -32
  492. ccxt/test/base/test_calculate_fee.py +0 -51
  493. ccxt/test/base/test_crypto.py +0 -127
  494. ccxt/test/base/test_currency.py +0 -76
  495. ccxt/test/base/test_datetime.py +0 -109
  496. ccxt/test/base/test_decimal_to_precision.py +0 -392
  497. ccxt/test/base/test_deep_extend.py +0 -68
  498. ccxt/test/base/test_deposit_withdrawal.py +0 -50
  499. ccxt/test/base/test_exchange_datetime_functions.py +0 -76
  500. ccxt/test/base/test_funding_rate_history.py +0 -29
  501. ccxt/test/base/test_last_price.py +0 -31
  502. ccxt/test/base/test_ledger_entry.py +0 -45
  503. ccxt/test/base/test_ledger_item.py +0 -48
  504. ccxt/test/base/test_leverage_tier.py +0 -33
  505. ccxt/test/base/test_liquidation.py +0 -50
  506. ccxt/test/base/test_margin_mode.py +0 -24
  507. ccxt/test/base/test_margin_modification.py +0 -35
  508. ccxt/test/base/test_market.py +0 -193
  509. ccxt/test/base/test_number.py +0 -411
  510. ccxt/test/base/test_ohlcv.py +0 -33
  511. ccxt/test/base/test_open_interest.py +0 -32
  512. ccxt/test/base/test_order.py +0 -64
  513. ccxt/test/base/test_order_book.py +0 -69
  514. ccxt/test/base/test_position.py +0 -60
  515. ccxt/test/base/test_shared_methods.py +0 -353
  516. ccxt/test/base/test_status.py +0 -24
  517. ccxt/test/base/test_throttle.py +0 -126
  518. ccxt/test/base/test_ticker.py +0 -92
  519. ccxt/test/base/test_trade.py +0 -47
  520. ccxt/test/base/test_trading_fee.py +0 -26
  521. ccxt/test/base/test_transaction.py +0 -39
  522. ccxt/test/test_async.py +0 -1649
  523. ccxt/test/test_sync.py +0 -1648
  524. ccxt/wazirx.py +0 -1224
  525. ccxt_ir-4.3.46.0.2.dist-info/RECORD +0 -772
  526. /ccxt/abstract/{huobijp.py → bittrade.py} +0 -0
  527. {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info/licenses}/LICENSE.txt +0 -0
  528. {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info}/top_level.txt +0 -0
ccxt/bitpanda.py DELETED
@@ -1,16 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- # PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
- # https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
-
6
- from ccxt.onetrading import onetrading
7
- from ccxt.abstract.bitpanda import ImplicitAPI
8
-
9
-
10
- class bitpanda(onetrading, ImplicitAPI):
11
-
12
- def describe(self):
13
- return self.deep_extend(super(bitpanda, self).describe(), {
14
- 'id': 'bitpanda',
15
- 'alias': True,
16
- })
ccxt/bl3p.py DELETED
@@ -1,485 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- # PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
- # https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
-
6
- from ccxt.base.exchange import Exchange
7
- from ccxt.abstract.bl3p import ImplicitAPI
8
- import hashlib
9
- from ccxt.base.types import Balances, Currency, IndexType, Int, Market, Num, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, TradingFees
10
- from typing import List
11
- from ccxt.base.decimal_to_precision import TICK_SIZE
12
- from ccxt.base.precise import Precise
13
-
14
-
15
- class bl3p(Exchange, ImplicitAPI):
16
-
17
- def describe(self):
18
- return self.deep_extend(super(bl3p, self).describe(), {
19
- 'id': 'bl3p',
20
- 'name': 'BL3P',
21
- 'countries': ['NL'], # Netherlands
22
- 'rateLimit': 1000,
23
- 'version': '1',
24
- 'comment': 'An exchange market by BitonicNL',
25
- 'pro': False,
26
- 'has': {
27
- 'CORS': None,
28
- 'spot': True,
29
- 'margin': False,
30
- 'swap': False,
31
- 'future': False,
32
- 'option': False,
33
- 'addMargin': False,
34
- 'cancelOrder': True,
35
- 'closeAllPositions': False,
36
- 'closePosition': False,
37
- 'createDepositAddress': True,
38
- 'createOrder': True,
39
- 'createReduceOnlyOrder': False,
40
- 'createStopLimitOrder': False,
41
- 'createStopMarketOrder': False,
42
- 'createStopOrder': False,
43
- 'fetchBalance': True,
44
- 'fetchBorrowRateHistories': False,
45
- 'fetchBorrowRateHistory': False,
46
- 'fetchCrossBorrowRate': False,
47
- 'fetchCrossBorrowRates': False,
48
- 'fetchDepositAddress': False,
49
- 'fetchDepositAddresses': False,
50
- 'fetchDepositAddressesByNetwork': False,
51
- 'fetchFundingHistory': False,
52
- 'fetchFundingRate': False,
53
- 'fetchFundingRateHistory': False,
54
- 'fetchFundingRates': False,
55
- 'fetchIndexOHLCV': False,
56
- 'fetchIsolatedBorrowRate': False,
57
- 'fetchIsolatedBorrowRates': False,
58
- 'fetchLeverage': False,
59
- 'fetchMarginMode': False,
60
- 'fetchMarkOHLCV': False,
61
- 'fetchOpenInterestHistory': False,
62
- 'fetchOrderBook': True,
63
- 'fetchPosition': False,
64
- 'fetchPositionHistory': False,
65
- 'fetchPositionMode': False,
66
- 'fetchPositions': False,
67
- 'fetchPositionsForSymbol': False,
68
- 'fetchPositionsHistory': False,
69
- 'fetchPositionsRisk': False,
70
- 'fetchPremiumIndexOHLCV': False,
71
- 'fetchTicker': True,
72
- 'fetchTrades': True,
73
- 'fetchTradingFee': False,
74
- 'fetchTradingFees': True,
75
- 'fetchTransfer': False,
76
- 'fetchTransfers': False,
77
- 'reduceMargin': False,
78
- 'setLeverage': False,
79
- 'setMarginMode': False,
80
- 'setPositionMode': False,
81
- 'transfer': False,
82
- 'ws': False,
83
- },
84
- 'urls': {
85
- 'logo': 'https://user-images.githubusercontent.com/1294454/28501752-60c21b82-6feb-11e7-818b-055ee6d0e754.jpg',
86
- 'api': {
87
- 'rest': 'https://api.bl3p.eu',
88
- },
89
- 'www': 'https://bl3p.eu', # 'https://bitonic.nl'
90
- 'doc': [
91
- 'https://github.com/BitonicNL/bl3p-api/tree/master/docs',
92
- 'https://bl3p.eu/api',
93
- 'https://bitonic.nl/en/api',
94
- ],
95
- },
96
- 'api': {
97
- 'public': {
98
- 'get': [
99
- '{market}/ticker',
100
- '{market}/orderbook',
101
- '{market}/trades',
102
- ],
103
- },
104
- 'private': {
105
- 'post': [
106
- '{market}/money/depth/full',
107
- '{market}/money/order/add',
108
- '{market}/money/order/cancel',
109
- '{market}/money/order/result',
110
- '{market}/money/orders',
111
- '{market}/money/orders/history',
112
- '{market}/money/trades/fetch',
113
- 'GENMKT/money/info',
114
- 'GENMKT/money/deposit_address',
115
- 'GENMKT/money/new_deposit_address',
116
- 'GENMKT/money/wallet/history',
117
- 'GENMKT/money/withdraw',
118
- ],
119
- },
120
- },
121
- 'markets': {
122
- 'BTC/EUR': self.safe_market_structure({'id': 'BTCEUR', 'symbol': 'BTC/EUR', 'base': 'BTC', 'quote': 'EUR', 'baseId': 'BTC', 'quoteId': 'EUR', 'maker': 0.0025, 'taker': 0.0025, 'type': 'spot', 'spot': True}),
123
- },
124
- 'precisionMode': TICK_SIZE,
125
- })
126
-
127
- def parse_balance(self, response) -> Balances:
128
- data = self.safe_value(response, 'data', {})
129
- wallets = self.safe_value(data, 'wallets', {})
130
- result: dict = {'info': data}
131
- codes = list(self.currencies.keys())
132
- for i in range(0, len(codes)):
133
- code = codes[i]
134
- currency = self.currency(code)
135
- currencyId = currency['id']
136
- wallet = self.safe_value(wallets, currencyId, {})
137
- available = self.safe_value(wallet, 'available', {})
138
- balance = self.safe_value(wallet, 'balance', {})
139
- account = self.account()
140
- account['free'] = self.safe_string(available, 'value')
141
- account['total'] = self.safe_string(balance, 'value')
142
- result[code] = account
143
- return self.safe_balance(result)
144
-
145
- def fetch_balance(self, params={}) -> Balances:
146
- """
147
- query for balance and get the amount of funds available for trading or funds locked in orders
148
- :see: https://github.com/BitonicNL/bl3p-api/blob/master/docs/authenticated_api/http.md#35---get-account-info--balance
149
- :param dict [params]: extra parameters specific to the exchange API endpoint
150
- :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
151
- """
152
- self.load_markets()
153
- response = self.privatePostGENMKTMoneyInfo(params)
154
- return self.parse_balance(response)
155
-
156
- def parse_bid_ask(self, bidask, priceKey: IndexType = 0, amountKey: IndexType = 1, countOrIdKey: IndexType = 2):
157
- price = self.safe_string(bidask, priceKey)
158
- size = self.safe_string(bidask, amountKey)
159
- return [
160
- self.parse_number(Precise.string_div(price, '100000.0')),
161
- self.parse_number(Precise.string_div(size, '100000000.0')),
162
- ]
163
-
164
- def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
165
- """
166
- fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
167
- :see: https://github.com/BitonicNL/bl3p-api/blob/master/docs/public_api/http.md#22---orderbook
168
- :param str symbol: unified symbol of the market to fetch the order book for
169
- :param int [limit]: the maximum amount of order book entries to return
170
- :param dict [params]: extra parameters specific to the exchange API endpoint
171
- :returns dict: A dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbols
172
- """
173
- market = self.market(symbol)
174
- request: dict = {
175
- 'market': market['id'],
176
- }
177
- response = self.publicGetMarketOrderbook(self.extend(request, params))
178
- orderbook = self.safe_dict(response, 'data')
179
- return self.parse_order_book(orderbook, market['symbol'], None, 'bids', 'asks', 'price_int', 'amount_int')
180
-
181
- def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
182
- #
183
- # {
184
- # "currency":"BTC",
185
- # "last":32654.55595,
186
- # "bid":32552.3642,
187
- # "ask":32703.58231,
188
- # "high":33500,
189
- # "low":31943,
190
- # "timestamp":1643372789,
191
- # "volume":{
192
- # "24h":2.27372413,
193
- # "30d":320.79375456
194
- # }
195
- # }
196
- #
197
- symbol = self.safe_symbol(None, market)
198
- timestamp = self.safe_timestamp(ticker, 'timestamp')
199
- last = self.safe_string(ticker, 'last')
200
- volume = self.safe_value(ticker, 'volume', {})
201
- return self.safe_ticker({
202
- 'symbol': symbol,
203
- 'timestamp': timestamp,
204
- 'datetime': self.iso8601(timestamp),
205
- 'high': self.safe_string(ticker, 'high'),
206
- 'low': self.safe_string(ticker, 'low'),
207
- 'bid': self.safe_string(ticker, 'bid'),
208
- 'bidVolume': None,
209
- 'ask': self.safe_string(ticker, 'ask'),
210
- 'askVolume': None,
211
- 'vwap': None,
212
- 'open': None,
213
- 'close': last,
214
- 'last': last,
215
- 'previousClose': None,
216
- 'change': None,
217
- 'percentage': None,
218
- 'average': None,
219
- 'baseVolume': self.safe_string(volume, '24h'),
220
- 'quoteVolume': None,
221
- 'info': ticker,
222
- }, market)
223
-
224
- def fetch_ticker(self, symbol: str, params={}) -> Ticker:
225
- """
226
- fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
227
- :see: https://github.com/BitonicNL/bl3p-api/blob/master/docs/public_api/http.md#21---ticker
228
- :param str symbol: unified symbol of the market to fetch the ticker for
229
- :param dict [params]: extra parameters specific to the exchange API endpoint
230
- :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
231
- """
232
- market = self.market(symbol)
233
- request: dict = {
234
- 'market': market['id'],
235
- }
236
- ticker = self.publicGetMarketTicker(self.extend(request, params))
237
- #
238
- # {
239
- # "currency":"BTC",
240
- # "last":32654.55595,
241
- # "bid":32552.3642,
242
- # "ask":32703.58231,
243
- # "high":33500,
244
- # "low":31943,
245
- # "timestamp":1643372789,
246
- # "volume":{
247
- # "24h":2.27372413,
248
- # "30d":320.79375456
249
- # }
250
- # }
251
- #
252
- return self.parse_ticker(ticker, market)
253
-
254
- def parse_trade(self, trade: dict, market: Market = None) -> Trade:
255
- #
256
- # fetchTrades
257
- #
258
- # {
259
- # "trade_id": "2518789",
260
- # "date": "1694348697745",
261
- # "amount_int": "2959153",
262
- # "price_int": "2416231440"
263
- # }
264
- #
265
- id = self.safe_string(trade, 'trade_id')
266
- timestamp = self.safe_integer(trade, 'date')
267
- price = self.safe_string(trade, 'price_int')
268
- amount = self.safe_string(trade, 'amount_int')
269
- market = self.safe_market(None, market)
270
- return self.safe_trade({
271
- 'id': id,
272
- 'info': trade,
273
- 'timestamp': timestamp,
274
- 'datetime': self.iso8601(timestamp),
275
- 'symbol': market['symbol'],
276
- 'type': None,
277
- 'side': None,
278
- 'order': None,
279
- 'takerOrMaker': None,
280
- 'price': Precise.string_div(price, '100000'),
281
- 'amount': Precise.string_div(amount, '100000000'),
282
- 'cost': None,
283
- 'fee': None,
284
- }, market)
285
-
286
- def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
287
- """
288
- get the list of most recent trades for a particular symbol
289
- :see: https://github.com/BitonicNL/bl3p-api/blob/master/docs/public_api/http.md#23---last-1000-trades
290
- :param str symbol: unified symbol of the market to fetch trades for
291
- :param int [since]: timestamp in ms of the earliest trade to fetch
292
- :param int [limit]: the maximum amount of trades to fetch
293
- :param dict [params]: extra parameters specific to the exchange API endpoint
294
- :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
295
- """
296
- market = self.market(symbol)
297
- response = self.publicGetMarketTrades(self.extend({
298
- 'market': market['id'],
299
- }, params))
300
- #
301
- # {
302
- # "result": "success",
303
- # "data": {
304
- # "trades": [
305
- # {
306
- # "trade_id": "2518789",
307
- # "date": "1694348697745",
308
- # "amount_int": "2959153",
309
- # "price_int": "2416231440"
310
- # },
311
- # ]
312
- # }
313
- # }
314
- result = self.parse_trades(response['data']['trades'], market, since, limit)
315
- return result
316
-
317
- def fetch_trading_fees(self, params={}) -> TradingFees:
318
- """
319
- fetch the trading fees for multiple markets
320
- :see: https://github.com/BitonicNL/bl3p-api/blob/master/docs/authenticated_api/http.md#35---get-account-info--balance
321
- :param dict [params]: extra parameters specific to the exchange API endpoint
322
- :returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
323
- """
324
- self.load_markets()
325
- response = self.privatePostGENMKTMoneyInfo(params)
326
- #
327
- # {
328
- # "result": "success",
329
- # "data": {
330
- # "user_id": "13396",
331
- # "wallets": {
332
- # "BTC": {
333
- # "balance": {
334
- # "value_int": "0",
335
- # "display": "0.00000000 BTC",
336
- # "currency": "BTC",
337
- # "value": "0.00000000",
338
- # "display_short": "0.00 BTC"
339
- # },
340
- # "available": {
341
- # "value_int": "0",
342
- # "display": "0.00000000 BTC",
343
- # "currency": "BTC",
344
- # "value": "0.00000000",
345
- # "display_short": "0.00 BTC"
346
- # }
347
- # },
348
- # ...
349
- # },
350
- # "trade_fee": "0.25"
351
- # }
352
- # }
353
- #
354
- data = self.safe_value(response, 'data', {})
355
- feeString = self.safe_string(data, 'trade_fee')
356
- fee = self.parse_number(Precise.string_div(feeString, '100'))
357
- result: dict = {}
358
- for i in range(0, len(self.symbols)):
359
- symbol = self.symbols[i]
360
- result[symbol] = {
361
- 'info': data,
362
- 'symbol': symbol,
363
- 'maker': fee,
364
- 'taker': fee,
365
- 'percentage': True,
366
- 'tierBased': False,
367
- }
368
- return result
369
-
370
- def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
371
- """
372
- create a trade order
373
- :see: https://github.com/BitonicNL/bl3p-api/blob/master/examples/nodejs/example.md#21---create-an-order
374
- :param str symbol: unified symbol of the market to create an order in
375
- :param str type: 'market' or 'limit'
376
- :param str side: 'buy' or 'sell'
377
- :param float amount: how much of currency you want to trade in units of base currency
378
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
379
- :param dict [params]: extra parameters specific to the exchange API endpoint
380
- *
381
- * EXCHANGE SPECIFIC PARAMETERS
382
- :param int [params.amount_funds]: maximal EUR amount to spend(*1e5)
383
- :param str [params.fee_currency]: 'EUR' or 'BTC'
384
- :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
385
- """
386
- market = self.market(symbol)
387
- amountString = self.number_to_string(amount)
388
- priceString = self.number_to_string(price)
389
- order: dict = {
390
- 'market': market['id'],
391
- 'amount_int': int(Precise.string_mul(amountString, '100000000')),
392
- 'fee_currency': market['quote'],
393
- 'type': 'bid' if (side == 'buy') else 'ask',
394
- }
395
- if type == 'limit':
396
- order['price_int'] = int(Precise.string_mul(priceString, '100000.0'))
397
- response = self.privatePostMarketMoneyOrderAdd(self.extend(order, params))
398
- orderId = self.safe_string(response['data'], 'order_id')
399
- return self.safe_order({
400
- 'info': response,
401
- 'id': orderId,
402
- }, market)
403
-
404
- def cancel_order(self, id: str, symbol: Str = None, params={}):
405
- """
406
- cancels an open order
407
- :see: https://github.com/BitonicNL/bl3p-api/blob/master/docs/authenticated_api/http.md#22---cancel-an-order
408
- :param str id: order id
409
- :param str symbol: unified symbol of the market the order was made in
410
- :param dict [params]: extra parameters specific to the exchange API endpoint
411
- :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
412
- """
413
- request: dict = {
414
- 'order_id': id,
415
- }
416
- response = self.privatePostMarketMoneyOrderCancel(self.extend(request, params))
417
- #
418
- # "success"
419
- #
420
- return self.safe_order({
421
- 'info': response,
422
- })
423
-
424
- def create_deposit_address(self, code: str, params={}):
425
- """
426
- create a currency deposit address
427
- :see: https://github.com/BitonicNL/bl3p-api/blob/master/docs/authenticated_api/http.md#32---create-a-new-deposit-address
428
- :param str code: unified currency code of the currency for the deposit address
429
- :param dict [params]: extra parameters specific to the exchange API endpoint
430
- :returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
431
- """
432
- self.load_markets()
433
- currency = self.currency(code)
434
- request: dict = {
435
- 'currency': currency['id'],
436
- }
437
- response = self.privatePostGENMKTMoneyNewDepositAddress(self.extend(request, params))
438
- #
439
- # {
440
- # "result": "success",
441
- # "data": {
442
- # "address": "36Udu9zi1uYicpXcJpoKfv3bewZeok5tpk"
443
- # }
444
- # }
445
- #
446
- data = self.safe_dict(response, 'data')
447
- return self.parse_deposit_address(data, currency)
448
-
449
- def parse_deposit_address(self, depositAddress, currency: Currency = None):
450
- #
451
- # {
452
- # "address": "36Udu9zi1uYicpXcJpoKfv3bewZeok5tpk"
453
- # }
454
- #
455
- address = self.safe_string(depositAddress, 'address')
456
- self.check_address(address)
457
- return {
458
- 'info': depositAddress,
459
- 'currency': self.safe_string(currency, 'code'),
460
- 'address': address,
461
- 'tag': None,
462
- 'network': None,
463
- }
464
-
465
- def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
466
- request = self.implode_params(path, params)
467
- url = self.urls['api']['rest'] + '/' + self.version + '/' + request
468
- query = self.omit(params, self.extract_params(path))
469
- if api == 'public':
470
- if query:
471
- url += '?' + self.urlencode(query)
472
- else:
473
- self.check_required_credentials()
474
- nonce = self.nonce()
475
- body = self.urlencode(self.extend({'nonce': nonce}, query))
476
- secret = self.base64_to_binary(self.secret)
477
- # eslint-disable-next-line quotes
478
- auth = request + "\0" + body
479
- signature = self.hmac(self.encode(auth), secret, hashlib.sha512, 'base64')
480
- headers = {
481
- 'Content-Type': 'application/x-www-form-urlencoded',
482
- 'Rest-Key': self.apiKey,
483
- 'Rest-Sign': signature,
484
- }
485
- return {'url': url, 'method': method, 'body': body, 'headers': headers}