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/myokx.py ADDED
@@ -0,0 +1,54 @@
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.okx import okx
7
+ from ccxt.abstract.myokx import ImplicitAPI
8
+ from ccxt.base.types import Any
9
+
10
+
11
+ class myokx(okx, ImplicitAPI):
12
+
13
+ def describe(self) -> Any:
14
+ return self.deep_extend(super(myokx, self).describe(), {
15
+ 'id': 'myokx',
16
+ 'name': 'MyOKX(EEA)',
17
+ 'certified': False,
18
+ 'pro': True,
19
+ 'hostname': 'eea.okx.com',
20
+ 'urls': {
21
+ 'logo': 'https://user-images.githubusercontent.com/1294454/152485636-38b19e4a-bece-4dec-979a-5982859ffc04.jpg',
22
+ 'api': {
23
+ 'rest': 'https://{hostname}',
24
+ },
25
+ 'www': 'https://my.okx.com',
26
+ 'doc': 'https://my.okx.com/docs-v5/en/#overview',
27
+ 'fees': 'https://my.okx.com/pages/products/fees.html',
28
+ 'referral': {
29
+ 'url': 'https://www.my.okx.com/join/CCXT2023',
30
+ 'discount': 0.2,
31
+ },
32
+ 'test': {
33
+ 'rest': 'https://{hostname}',
34
+ },
35
+ },
36
+ 'has': {
37
+ 'CORS': None,
38
+ 'spot': True,
39
+ 'margin': None,
40
+ 'swap': False,
41
+ 'future': False,
42
+ 'option': False,
43
+ },
44
+ 'features': {
45
+ 'swap': {
46
+ 'linear': None,
47
+ 'inverse': None,
48
+ },
49
+ 'future': {
50
+ 'linear': None,
51
+ 'inverse': None,
52
+ },
53
+ },
54
+ })
ccxt/ndax.py CHANGED
@@ -7,7 +7,7 @@ from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.ndax import ImplicitAPI
8
8
  import hashlib
9
9
  import json
10
- from ccxt.base.types import Account, Balances, Currencies, Currency, IndexType, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Transaction
10
+ from ccxt.base.types import Account, Any, Balances, Currencies, Currency, DepositAddress, IndexType, Int, LedgerEntry, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Transaction
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import AuthenticationError
@@ -20,7 +20,7 @@ from ccxt.base.precise import Precise
20
20
 
21
21
  class ndax(Exchange, ImplicitAPI):
22
22
 
23
- def describe(self):
23
+ def describe(self) -> Any:
24
24
  return self.deep_extend(super(ndax, self).describe(), {
25
25
  'id': 'ndax',
26
26
  'name': 'NDAX',
@@ -35,6 +35,9 @@ class ndax(Exchange, ImplicitAPI):
35
35
  'future': False,
36
36
  'option': False,
37
37
  'addMargin': False,
38
+ 'borrowCrossMargin': False,
39
+ 'borrowIsolatedMargin': False,
40
+ 'borrowMargin': False,
38
41
  'cancelAllOrders': True,
39
42
  'cancelOrder': True,
40
43
  'closeAllPositions': False,
@@ -47,30 +50,57 @@ class ndax(Exchange, ImplicitAPI):
47
50
  'createStopOrder': True,
48
51
  'editOrder': True,
49
52
  'fetchAccounts': True,
53
+ 'fetchAllGreeks': False,
50
54
  'fetchBalance': True,
55
+ 'fetchBorrowInterest': False,
56
+ 'fetchBorrowRate': False,
51
57
  'fetchBorrowRateHistories': False,
52
58
  'fetchBorrowRateHistory': False,
59
+ 'fetchBorrowRates': False,
60
+ 'fetchBorrowRatesPerSymbol': False,
53
61
  'fetchCrossBorrowRate': False,
54
62
  'fetchCrossBorrowRates': False,
55
63
  'fetchCurrencies': True,
56
64
  'fetchDepositAddress': True,
65
+ 'fetchDepositAddresses': False,
66
+ 'fetchDepositAddressesByNetwork': False,
57
67
  'fetchDeposits': True,
58
68
  'fetchFundingHistory': False,
69
+ 'fetchFundingInterval': False,
70
+ 'fetchFundingIntervals': False,
59
71
  'fetchFundingRate': False,
60
72
  'fetchFundingRateHistory': False,
61
73
  'fetchFundingRates': False,
74
+ 'fetchGreeks': False,
62
75
  'fetchIndexOHLCV': False,
63
76
  'fetchIsolatedBorrowRate': False,
64
77
  'fetchIsolatedBorrowRates': False,
78
+ 'fetchIsolatedPositions': False,
65
79
  'fetchLedger': True,
66
80
  'fetchLeverage': False,
81
+ 'fetchLeverages': False,
67
82
  'fetchLeverageTiers': False,
83
+ 'fetchLiquidations': False,
84
+ 'fetchLongShortRatio': False,
85
+ 'fetchLongShortRatioHistory': False,
86
+ 'fetchMarginAdjustmentHistory': False,
87
+ 'fetchMarginMode': False,
88
+ 'fetchMarginModes': False,
89
+ 'fetchMarketLeverageTiers': False,
68
90
  'fetchMarkets': True,
69
91
  'fetchMarkOHLCV': False,
92
+ 'fetchMarkPrice': False,
93
+ 'fetchMarkPrices': False,
94
+ 'fetchMyLiquidations': False,
95
+ 'fetchMySettlementHistory': False,
70
96
  'fetchMyTrades': True,
71
97
  'fetchOHLCV': True,
98
+ 'fetchOpenInterest': False,
72
99
  'fetchOpenInterestHistory': False,
100
+ 'fetchOpenInterests': False,
73
101
  'fetchOpenOrders': True,
102
+ 'fetchOption': False,
103
+ 'fetchOptionChain': False,
74
104
  'fetchOrder': True,
75
105
  'fetchOrderBook': True,
76
106
  'fetchOrders': True,
@@ -83,16 +113,22 @@ class ndax(Exchange, ImplicitAPI):
83
113
  'fetchPositionsHistory': False,
84
114
  'fetchPositionsRisk': False,
85
115
  'fetchPremiumIndexOHLCV': False,
116
+ 'fetchSettlementHistory': False,
86
117
  'fetchTicker': True,
87
118
  'fetchTickers': False,
88
119
  'fetchTime': False,
89
120
  'fetchTrades': True,
90
121
  'fetchTradingFee': False,
91
122
  'fetchTradingFees': False,
123
+ 'fetchUnderlyingAssets': False,
124
+ 'fetchVolatilityHistory': False,
92
125
  'fetchWithdrawals': True,
93
126
  'reduceMargin': False,
127
+ 'repayCrossMargin': False,
128
+ 'repayIsolatedMargin': False,
94
129
  'sandbox': True,
95
130
  'setLeverage': False,
131
+ 'setMargin': False,
96
132
  'setMarginMode': False,
97
133
  'setPositionMode': False,
98
134
  'signIn': True,
@@ -236,6 +272,81 @@ class ndax(Exchange, ImplicitAPI):
236
272
  },
237
273
  },
238
274
  },
275
+ 'features': {
276
+ 'spot': {
277
+ 'sandbox': True,
278
+ 'createOrder': {
279
+ 'marginMode': False,
280
+ 'triggerPrice': True,
281
+ 'triggerDirection': False,
282
+ 'triggerPriceType': {
283
+ 'last': True,
284
+ 'mark': False,
285
+ 'index': False,
286
+ # bid & ask
287
+ },
288
+ 'stopLossPrice': False, # todo
289
+ 'takeProfitPrice': False, # todo
290
+ 'attachedStopLossTakeProfit': None,
291
+ # todo
292
+ 'timeInForce': {
293
+ 'IOC': True,
294
+ 'FOK': True,
295
+ 'PO': True,
296
+ 'GTD': False,
297
+ },
298
+ 'hedged': False,
299
+ 'trailing': False,
300
+ 'leverage': False,
301
+ 'marketBuyByCost': False,
302
+ 'marketBuyRequiresPrice': False,
303
+ 'selfTradePrevention': False,
304
+ 'iceberg': True, # todo
305
+ },
306
+ 'createOrders': None,
307
+ 'fetchMyTrades': {
308
+ 'marginMode': False,
309
+ 'limit': 100, # todo
310
+ 'daysBack': 100000, # todo
311
+ 'untilDays': 100000, # todo
312
+ 'symbolRequired': False,
313
+ },
314
+ 'fetchOrder': {
315
+ 'marginMode': False,
316
+ 'trigger': False,
317
+ 'trailing': False,
318
+ 'symbolRequired': False,
319
+ },
320
+ 'fetchOpenOrders': {
321
+ 'marginMode': False,
322
+ 'limit': None,
323
+ 'trigger': False,
324
+ 'trailing': False,
325
+ 'symbolRequired': False,
326
+ },
327
+ 'fetchOrders': {
328
+ 'marginMode': False,
329
+ 'limit': None,
330
+ 'daysBack': None,
331
+ 'untilDays': None,
332
+ 'trigger': False,
333
+ 'trailing': False,
334
+ 'symbolRequired': False,
335
+ },
336
+ 'fetchClosedOrders': None,
337
+ 'fetchOHLCV': {
338
+ 'limit': None,
339
+ },
340
+ },
341
+ 'swap': {
342
+ 'linear': None,
343
+ 'inverse': None,
344
+ },
345
+ 'future': {
346
+ 'linear': None,
347
+ 'inverse': None,
348
+ },
349
+ },
239
350
  'fees': {
240
351
  'trading': {
241
352
  'tierBased': False,
@@ -289,7 +400,9 @@ class ndax(Exchange, ImplicitAPI):
289
400
  def sign_in(self, params={}):
290
401
  """
291
402
  sign in, must be called prior to using other authenticated methods
292
- :see: https://apidoc.ndax.io/#authenticate2fa
403
+
404
+ https://apidoc.ndax.io/#authenticate2fa
405
+
293
406
  :param dict [params]: extra parameters specific to the exchange API endpoint
294
407
  :returns: response from exchange
295
408
  """
@@ -325,7 +438,7 @@ class ndax(Exchange, ImplicitAPI):
325
438
  #
326
439
  # {
327
440
  # "Authenticated": True,
328
- # "UserId":57765,
441
+ # "UserId":57764,
329
442
  # "SessionToken":"4a2a5857-c4e5-4fac-b09e-2c4c30b591a0"
330
443
  # }
331
444
  #
@@ -337,7 +450,9 @@ class ndax(Exchange, ImplicitAPI):
337
450
  def fetch_currencies(self, params={}) -> Currencies:
338
451
  """
339
452
  fetches all available currencies on an exchange
340
- :see: https://apidoc.ndax.io/#getproduct
453
+
454
+ https://apidoc.ndax.io/#getproduct
455
+
341
456
  :param dict [params]: extra parameters specific to the exchange API endpoint
342
457
  :returns dict: an associative dictionary of currencies
343
458
  """
@@ -347,44 +462,44 @@ class ndax(Exchange, ImplicitAPI):
347
462
  }
348
463
  response = self.publicGetGetProducts(self.extend(request, params))
349
464
  #
350
- # [
351
- # {
352
- # "OMSId":1,
353
- # "ProductId":1,
354
- # "Product":"BTC",
355
- # "ProductFullName":"Bitcoin",
356
- # "ProductType":"CryptoCurrency",
357
- # "DecimalPlaces":8,
358
- # "TickSize":0.0000000100000000000000000000,
359
- # "NoFees":false,
360
- # "IsDisabled":false,
361
- # "MarginEnabled":false
362
- # },
363
- # ]
465
+ # [
466
+ # {
467
+ # "OMSId": "1",
468
+ # "ProductId": "1",
469
+ # "Product": "BTC",
470
+ # "ProductFullName": "Bitcoin",
471
+ # "MasterDataUniqueProductSymbol": "",
472
+ # "ProductType": "CryptoCurrency",
473
+ # "DecimalPlaces": "8",
474
+ # "TickSize": "0.0000000100000000000000000000",
475
+ # "DepositEnabled": True,
476
+ # "WithdrawEnabled": True,
477
+ # "NoFees": False,
478
+ # "IsDisabled": False,
479
+ # "MarginEnabled": False
480
+ # },
481
+ # ...
364
482
  #
365
483
  result: dict = {}
366
484
  for i in range(0, len(response)):
367
485
  currency = response[i]
368
486
  id = self.safe_string(currency, 'ProductId')
369
- name = self.safe_string(currency, 'ProductFullName')
487
+ code = self.safe_currency_code(self.safe_string(currency, 'Product'))
370
488
  ProductType = self.safe_string(currency, 'ProductType')
371
489
  type = 'fiat' if (ProductType == 'NationalCurrency') else 'crypto'
372
490
  if ProductType == 'Unknown':
373
491
  # such currency is just a blanket entry
374
492
  type = 'other'
375
- code = self.safe_currency_code(self.safe_string(currency, 'Product'))
376
- isDisabled = self.safe_value(currency, 'IsDisabled')
377
- active = not isDisabled
378
- result[code] = {
493
+ result[code] = self.safe_currency_structure({
379
494
  'id': id,
380
- 'name': name,
495
+ 'name': self.safe_string(currency, 'ProductFullName'),
381
496
  'code': code,
382
497
  'type': type,
383
498
  'precision': self.safe_number(currency, 'TickSize'),
384
499
  'info': currency,
385
- 'active': active,
386
- 'deposit': None,
387
- 'withdraw': None,
500
+ 'active': not self.safe_bool(currency, 'IsDisabled'),
501
+ 'deposit': self.safe_bool(currency, 'DepositEnabled'),
502
+ 'withdraw': self.safe_bool(currency, 'WithdrawEnabled'),
388
503
  'fee': None,
389
504
  'limits': {
390
505
  'amount': {
@@ -397,13 +512,16 @@ class ndax(Exchange, ImplicitAPI):
397
512
  },
398
513
  },
399
514
  'networks': {},
400
- }
515
+ 'margin': self.safe_bool(currency, 'MarginEnabled'),
516
+ })
401
517
  return result
402
518
 
403
519
  def fetch_markets(self, params={}) -> List[Market]:
404
520
  """
405
521
  retrieves data on all markets for ndax
406
- :see: https://apidoc.ndax.io/#getinstruments
522
+
523
+ https://apidoc.ndax.io/#getinstruments
524
+
407
525
  :param dict [params]: extra parameters specific to the exchange API endpoint
408
526
  :returns dict[]: an array of objects representing market data
409
527
  """
@@ -545,7 +663,8 @@ class ndax(Exchange, ImplicitAPI):
545
663
  bidask = self.parse_bid_ask(level, priceKey, amountKey)
546
664
  levelSide = self.safe_integer(level, 9)
547
665
  side = asksKey if levelSide else bidsKey
548
- result[side].append(bidask)
666
+ resultSide = result[side]
667
+ resultSide.append(bidask)
549
668
  result['bids'] = self.sort_by(result['bids'], 0, True)
550
669
  result['asks'] = self.sort_by(result['asks'], 0)
551
670
  result['timestamp'] = timestamp
@@ -556,7 +675,9 @@ class ndax(Exchange, ImplicitAPI):
556
675
  def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
557
676
  """
558
677
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
559
- :see: https://apidoc.ndax.io/#getl2snapshot
678
+
679
+ https://apidoc.ndax.io/#getl2snapshot
680
+
560
681
  :param str symbol: unified symbol of the market to fetch the order book for
561
682
  :param int [limit]: the maximum amount of order book entries to return
562
683
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -665,7 +786,9 @@ class ndax(Exchange, ImplicitAPI):
665
786
  def fetch_ticker(self, symbol: str, params={}) -> Ticker:
666
787
  """
667
788
  fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
668
- :see: https://apidoc.ndax.io/#getlevel1
789
+
790
+ https://apidoc.ndax.io/#getlevel1
791
+
669
792
  :param str symbol: unified symbol of the market to fetch the ticker for
670
793
  :param dict [params]: extra parameters specific to the exchange API endpoint
671
794
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -736,7 +859,9 @@ class ndax(Exchange, ImplicitAPI):
736
859
  def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
737
860
  """
738
861
  fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
739
- :see: https://apidoc.ndax.io/#gettickerhistory
862
+
863
+ https://apidoc.ndax.io/#gettickerhistory
864
+
740
865
  :param str symbol: unified symbol of the market to fetch OHLCV data for
741
866
  :param str timeframe: the length of time each candle represents
742
867
  :param int [since]: timestamp in ms of the earliest candle to fetch
@@ -970,7 +1095,9 @@ class ndax(Exchange, ImplicitAPI):
970
1095
  def fetch_accounts(self, params={}) -> List[Account]:
971
1096
  """
972
1097
  fetch all the accounts associated with a profile
973
- :see: https://apidoc.ndax.io/#getuseraccounts
1098
+
1099
+ https://apidoc.ndax.io/#getuseraccounts
1100
+
974
1101
  :param dict [params]: extra parameters specific to the exchange API endpoint
975
1102
  :returns dict: a dictionary of `account structures <https://docs.ccxt.com/#/?id=account-structure>` indexed by the account type
976
1103
  """
@@ -1018,15 +1145,19 @@ class ndax(Exchange, ImplicitAPI):
1018
1145
  def fetch_balance(self, params={}) -> Balances:
1019
1146
  """
1020
1147
  query for balance and get the amount of funds available for trading or funds locked in orders
1021
- :see: https://apidoc.ndax.io/#getaccountpositions
1148
+
1149
+ https://apidoc.ndax.io/#getaccountpositions
1150
+
1022
1151
  :param dict [params]: extra parameters specific to the exchange API endpoint
1023
1152
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
1024
1153
  """
1025
1154
  omsId = self.safe_integer(self.options, 'omsId', 1)
1026
1155
  self.load_markets()
1027
1156
  self.load_accounts()
1028
- defaultAccountId = self.safe_integer_2(self.options, 'accountId', 'AccountId', int(self.accounts[0]['id']))
1157
+ defaultAccountId = self.safe_integer_2(self.options, 'accountId', 'AccountId')
1029
1158
  accountId = self.safe_integer_2(params, 'accountId', 'AccountId', defaultAccountId)
1159
+ if accountId is None:
1160
+ accountId = int(self.accounts[0]['id'])
1030
1161
  params = self.omit(params, ['accountId', 'AccountId'])
1031
1162
  request: dict = {
1032
1163
  'omsId': omsId,
@@ -1084,7 +1215,7 @@ class ndax(Exchange, ImplicitAPI):
1084
1215
  }
1085
1216
  return self.safe_string(types, type, type)
1086
1217
 
1087
- def parse_ledger_entry(self, item: dict, currency: Currency = None):
1218
+ def parse_ledger_entry(self, item: dict, currency: Currency = None) -> LedgerEntry:
1088
1219
  #
1089
1220
  # {
1090
1221
  # "TransactionId": 2663709493,
@@ -1102,6 +1233,7 @@ class ndax(Exchange, ImplicitAPI):
1102
1233
  # }
1103
1234
  #
1104
1235
  currencyId = self.safe_string(item, 'ProductId')
1236
+ currency = self.safe_currency(currencyId, currency)
1105
1237
  credit = self.safe_string(item, 'CR')
1106
1238
  debit = self.safe_string(item, 'DR')
1107
1239
  amount = None
@@ -1119,7 +1251,7 @@ class ndax(Exchange, ImplicitAPI):
1119
1251
  elif direction == 'in':
1120
1252
  before = Precise.string_max('0', Precise.string_sub(after, amount))
1121
1253
  timestamp = self.safe_integer(item, 'TimeStamp')
1122
- return {
1254
+ return self.safe_ledger_entry({
1123
1255
  'info': item,
1124
1256
  'id': self.safe_string(item, 'TransactionId'),
1125
1257
  'direction': direction,
@@ -1135,17 +1267,19 @@ class ndax(Exchange, ImplicitAPI):
1135
1267
  'timestamp': timestamp,
1136
1268
  'datetime': self.iso8601(timestamp),
1137
1269
  'fee': None,
1138
- }
1270
+ }, currency)
1139
1271
 
1140
- def fetch_ledger(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
1272
+ def fetch_ledger(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[LedgerEntry]:
1141
1273
  """
1142
- fetch the history of changes, actions done by the user or operations that altered balance of the user
1143
- :see: https://apidoc.ndax.io/#getaccounttransactions
1144
- :param str code: unified currency code, default is None
1274
+ fetch the history of changes, actions done by the user or operations that altered the balance of the user
1275
+
1276
+ https://apidoc.ndax.io/#getaccounttransactions
1277
+
1278
+ :param str [code]: unified currency code, default is None
1145
1279
  :param int [since]: timestamp in ms of the earliest ledger entry, default is None
1146
- :param int [limit]: max number of ledger entrys to return, default is None
1280
+ :param int [limit]: max number of ledger entries to return, default is None
1147
1281
  :param dict [params]: extra parameters specific to the exchange API endpoint
1148
- :returns dict: a `ledger structure <https://docs.ccxt.com/#/?id=ledger-structure>`
1282
+ :returns dict: a `ledger structure <https://docs.ccxt.com/#/?id=ledger>`
1149
1283
  """
1150
1284
  omsId = self.safe_integer(self.options, 'omsId', 1)
1151
1285
  self.load_markets()
@@ -1278,7 +1412,7 @@ class ndax(Exchange, ImplicitAPI):
1278
1412
  'postOnly': None,
1279
1413
  'side': self.safe_string_lower(order, 'Side'),
1280
1414
  'price': self.safe_string(order, 'Price'),
1281
- 'stopPrice': self.parse_number(self.omit_zero(self.safe_string(order, 'StopPrice'))),
1415
+ 'triggerPrice': self.parse_number(self.omit_zero(self.safe_string(order, 'StopPrice'))),
1282
1416
  'cost': self.safe_string(order, 'GrossValueExecuted'),
1283
1417
  'amount': self.safe_string(order, 'OrigQuantity'),
1284
1418
  'filled': self.safe_string(order, 'QuantityExecuted'),
@@ -1291,14 +1425,17 @@ class ndax(Exchange, ImplicitAPI):
1291
1425
  def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
1292
1426
  """
1293
1427
  create a trade order
1294
- :see: https://apidoc.ndax.io/#sendorder
1428
+
1429
+ https://apidoc.ndax.io/#sendorder
1430
+
1295
1431
  :param str symbol: unified symbol of the market to create an order in
1296
1432
  :param str type: 'market' or 'limit'
1297
1433
  :param str side: 'buy' or 'sell'
1298
1434
  :param float amount: how much of currency you want to trade in units of base currency
1299
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1435
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1300
1436
  :param dict [params]: extra parameters specific to the exchange API endpoint
1301
1437
  :param float [params.triggerPrice]: the price at which a trigger order would be triggered
1438
+ :param str [params.clientOrderId]: a unique id for the order
1302
1439
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1303
1440
  """
1304
1441
  omsId = self.safe_integer(self.options, 'omsId', 1)
@@ -1400,7 +1537,9 @@ class ndax(Exchange, ImplicitAPI):
1400
1537
  def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
1401
1538
  """
1402
1539
  fetch all trades made by the user
1403
- :see: https://apidoc.ndax.io/#gettradeshistory
1540
+
1541
+ https://apidoc.ndax.io/#gettradeshistory
1542
+
1404
1543
  :param str symbol: unified market symbol
1405
1544
  :param int [since]: the earliest time in ms to fetch trades for
1406
1545
  :param int [limit]: the maximum number of trades structures to retrieve
@@ -1483,7 +1622,9 @@ class ndax(Exchange, ImplicitAPI):
1483
1622
  def cancel_all_orders(self, symbol: Str = None, params={}):
1484
1623
  """
1485
1624
  cancel all open orders
1486
- :see: https://apidoc.ndax.io/#cancelallorders
1625
+
1626
+ https://apidoc.ndax.io/#cancelallorders
1627
+
1487
1628
  :param str symbol: unified market symbol, only orders in the market of self symbol are cancelled when symbol is not None
1488
1629
  :param dict [params]: extra parameters specific to the exchange API endpoint
1489
1630
  :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
@@ -1519,10 +1660,13 @@ class ndax(Exchange, ImplicitAPI):
1519
1660
  def cancel_order(self, id: str, symbol: Str = None, params={}):
1520
1661
  """
1521
1662
  cancels an open order
1522
- :see: https://apidoc.ndax.io/#cancelorder
1663
+
1664
+ https://apidoc.ndax.io/#cancelorder
1665
+
1523
1666
  :param str id: order id
1524
1667
  :param str symbol: unified symbol of the market the order was made in
1525
1668
  :param dict [params]: extra parameters specific to the exchange API endpoint
1669
+ :param str [params.clientOrderId]: a unique id for the order
1526
1670
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1527
1671
  """
1528
1672
  omsId = self.safe_integer(self.options, 'omsId', 1)
@@ -1554,7 +1698,9 @@ class ndax(Exchange, ImplicitAPI):
1554
1698
  def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
1555
1699
  """
1556
1700
  fetch all unfilled currently open orders
1557
- :see: https://apidoc.ndax.io/#getopenorders
1701
+
1702
+ https://apidoc.ndax.io/#getopenorders
1703
+
1558
1704
  :param str symbol: unified market symbol
1559
1705
  :param int [since]: the earliest time in ms to fetch open orders for
1560
1706
  :param int [limit]: the maximum number of open orders structures to retrieve
@@ -1630,7 +1776,9 @@ class ndax(Exchange, ImplicitAPI):
1630
1776
  def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
1631
1777
  """
1632
1778
  fetches information on multiple orders made by the user
1633
- :see: https://apidoc.ndax.io/#getorderhistory
1779
+
1780
+ https://apidoc.ndax.io/#getorderhistory
1781
+
1634
1782
  :param str symbol: unified market symbol of the market orders were made in
1635
1783
  :param int [since]: the earliest time in ms to fetch orders for
1636
1784
  :param int [limit]: the maximum number of order structures to retrieve
@@ -1720,7 +1868,10 @@ class ndax(Exchange, ImplicitAPI):
1720
1868
  def fetch_order(self, id: str, symbol: Str = None, params={}):
1721
1869
  """
1722
1870
  fetches information on an order made by the user
1723
- :see: https://apidoc.ndax.io/#getorderstatus
1871
+
1872
+ https://apidoc.ndax.io/#getorderstatus
1873
+
1874
+ :param str id: order id
1724
1875
  :param str symbol: unified symbol of the market the order was made in
1725
1876
  :param dict [params]: extra parameters specific to the exchange API endpoint
1726
1877
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -1793,7 +1944,9 @@ class ndax(Exchange, ImplicitAPI):
1793
1944
  def fetch_order_trades(self, id: str, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
1794
1945
  """
1795
1946
  fetch all the trades made from a single order
1796
- :see: https://apidoc.ndax.io/#getorderhistorybyorderid
1947
+
1948
+ https://apidoc.ndax.io/#getorderhistorybyorderid
1949
+
1797
1950
  :param str id: order id
1798
1951
  :param str symbol: unified market symbol
1799
1952
  :param int [since]: the earliest time in ms to fetch trades for
@@ -1870,7 +2023,7 @@ class ndax(Exchange, ImplicitAPI):
1870
2023
  trades = self.safe_list(grouped, 'Trade', [])
1871
2024
  return self.parse_trades(trades, market, since, limit)
1872
2025
 
1873
- def fetch_deposit_address(self, code: str, params={}):
2026
+ def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
1874
2027
  """
1875
2028
  fetch the deposit address for a currency associated with self account
1876
2029
  :param str code: unified currency code
@@ -1905,7 +2058,7 @@ class ndax(Exchange, ImplicitAPI):
1905
2058
  #
1906
2059
  return self.parse_deposit_address(response, currency)
1907
2060
 
1908
- def parse_deposit_address(self, depositAddress, currency: Currency = None):
2061
+ def parse_deposit_address(self, depositAddress, currency: Currency = None) -> DepositAddress:
1909
2062
  #
1910
2063
  # fetchDepositAddress, createDepositAddress
1911
2064
  #
@@ -1932,14 +2085,14 @@ class ndax(Exchange, ImplicitAPI):
1932
2085
  code = currency['code']
1933
2086
  self.check_address(address)
1934
2087
  return {
2088
+ 'info': depositAddress,
1935
2089
  'currency': code,
2090
+ 'network': None,
1936
2091
  'address': address,
1937
2092
  'tag': tag,
1938
- 'network': None,
1939
- 'info': depositAddress,
1940
2093
  }
1941
2094
 
1942
- def create_deposit_address(self, code: str, params={}):
2095
+ def create_deposit_address(self, code: str, params={}) -> DepositAddress:
1943
2096
  """
1944
2097
  create a currency deposit address
1945
2098
  :param str code: unified currency code of the currency for the deposit address
@@ -1954,7 +2107,9 @@ class ndax(Exchange, ImplicitAPI):
1954
2107
  def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
1955
2108
  """
1956
2109
  fetch all deposits made to an account
1957
- :see: https://apidoc.ndax.io/#getdeposits
2110
+
2111
+ https://apidoc.ndax.io/#getdeposits
2112
+
1958
2113
  :param str code: unified currency code
1959
2114
  :param int [since]: not used by ndax fetchDeposits
1960
2115
  :param int [limit]: the maximum number of deposits structures to retrieve
@@ -2010,7 +2165,9 @@ class ndax(Exchange, ImplicitAPI):
2010
2165
  def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
2011
2166
  """
2012
2167
  fetch all withdrawals made from an account
2013
- :see: https://apidoc.ndax.io/#getwithdraws
2168
+
2169
+ https://apidoc.ndax.io/#getwithdraws
2170
+
2014
2171
  :param str code: unified currency code
2015
2172
  :param int [since]: the earliest time in ms to fetch withdrawals for
2016
2173
  :param int [limit]: the maximum number of withdrawals structures to retrieve
@@ -2200,7 +2357,7 @@ class ndax(Exchange, ImplicitAPI):
2200
2357
  'network': None,
2201
2358
  }
2202
2359
 
2203
- def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
2360
+ def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
2204
2361
  """
2205
2362
  make a withdrawal
2206
2363
  :param str code: unified currency code