ccxt-ir 4.3.46.0.3__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 (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 +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 +8 -8
  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.3.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.3.dist-info → ccxt_ir-4.5.0.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.0.dist-info/licenses}/LICENSE.txt +0 -0
  529. {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.0.dist-info}/top_level.txt +0 -0
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.bitso import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Trade, TradingFees, Transaction
9
+ from ccxt.base.types import Any, Balances, Currency, DepositAddress, Int, LedgerEntry, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Trade, TradingFees, Transaction
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
@@ -21,7 +21,7 @@ from ccxt.base.precise import Precise
21
21
 
22
22
  class bitso(Exchange, ImplicitAPI):
23
23
 
24
- def describe(self):
24
+ def describe(self) -> Any:
25
25
  return self.deep_extend(super(bitso, self).describe(), {
26
26
  'id': 'bitso',
27
27
  'name': 'Bitso',
@@ -36,6 +36,9 @@ class bitso(Exchange, ImplicitAPI):
36
36
  'future': False,
37
37
  'option': False,
38
38
  'addMargin': False,
39
+ 'borrowCrossMargin': False,
40
+ 'borrowIsolatedMargin': False,
41
+ 'borrowMargin': False,
39
42
  'cancelAllOrders': True,
40
43
  'cancelOrder': True,
41
44
  'cancelOrders': True,
@@ -43,36 +46,62 @@ class bitso(Exchange, ImplicitAPI):
43
46
  'closePosition': False,
44
47
  'createDepositAddress': False,
45
48
  'createOrder': True,
49
+ 'createOrderWithTakeProfitAndStopLoss': False,
50
+ 'createOrderWithTakeProfitAndStopLossWs': False,
46
51
  'createReduceOnlyOrder': False,
47
52
  'fetchAccounts': False,
48
53
  'fetchBalance': True,
54
+ 'fetchBorrowInterest': False,
55
+ 'fetchBorrowRate': False,
49
56
  'fetchBorrowRateHistories': False,
50
57
  'fetchBorrowRateHistory': False,
58
+ 'fetchBorrowRates': False,
59
+ 'fetchBorrowRatesPerSymbol': False,
51
60
  'fetchCrossBorrowRate': False,
52
61
  'fetchCrossBorrowRates': False,
53
62
  'fetchDeposit': True,
54
63
  'fetchDepositAddress': True,
55
64
  'fetchDepositAddresses': False,
65
+ 'fetchDepositAddressesByNetwork': False,
56
66
  'fetchDeposits': True,
57
67
  'fetchDepositsWithdrawals': False,
58
68
  'fetchDepositWithdrawFee': 'emulated',
59
69
  'fetchDepositWithdrawFees': True,
60
70
  'fetchFundingHistory': False,
71
+ 'fetchFundingInterval': False,
72
+ 'fetchFundingIntervals': False,
61
73
  'fetchFundingRate': False,
62
74
  'fetchFundingRateHistory': False,
63
75
  'fetchFundingRates': False,
76
+ 'fetchGreeks': False,
64
77
  'fetchIndexOHLCV': False,
65
78
  'fetchIsolatedBorrowRate': False,
66
79
  'fetchIsolatedBorrowRates': False,
80
+ 'fetchIsolatedPositions': False,
67
81
  'fetchLedger': True,
68
82
  'fetchLeverage': False,
83
+ 'fetchLeverages': False,
84
+ 'fetchLeverageTiers': False,
85
+ 'fetchLiquidations': False,
86
+ 'fetchLongShortRatio': False,
87
+ 'fetchLongShortRatioHistory': False,
88
+ 'fetchMarginAdjustmentHistory': False,
69
89
  'fetchMarginMode': False,
90
+ 'fetchMarginModes': False,
91
+ 'fetchMarketLeverageTiers': False,
70
92
  'fetchMarkets': True,
71
93
  'fetchMarkOHLCV': False,
94
+ 'fetchMarkPrices': False,
95
+ 'fetchMyLiquidations': False,
96
+ 'fetchMySettlementHistory': False,
72
97
  'fetchMyTrades': True,
73
98
  'fetchOHLCV': True,
99
+ 'fetchOpenInterest': False,
74
100
  'fetchOpenInterestHistory': False,
101
+ 'fetchOpenInterests': False,
75
102
  'fetchOpenOrders': True,
103
+ 'fetchOption': False,
104
+ 'fetchOptionChain': False,
76
105
  'fetchOrder': True,
77
106
  'fetchOrderBook': True,
78
107
  'fetchOrderTrades': True,
@@ -84,6 +113,7 @@ class bitso(Exchange, ImplicitAPI):
84
113
  'fetchPositionsHistory': False,
85
114
  'fetchPositionsRisk': False,
86
115
  'fetchPremiumIndexOHLCV': False,
116
+ 'fetchSettlementHistory': False,
87
117
  'fetchTicker': True,
88
118
  'fetchTickers': False,
89
119
  'fetchTime': False,
@@ -95,17 +125,24 @@ class bitso(Exchange, ImplicitAPI):
95
125
  'fetchTransactions': False,
96
126
  'fetchTransfer': False,
97
127
  'fetchTransfers': False,
128
+ 'fetchVolatilityHistory': False,
98
129
  'reduceMargin': False,
130
+ 'repayCrossMargin': False,
131
+ 'repayIsolatedMargin': False,
99
132
  'setLeverage': False,
133
+ 'setMargin': False,
100
134
  'setMarginMode': False,
101
135
  'setPositionMode': False,
102
136
  'transfer': False,
103
137
  'withdraw': True,
104
138
  },
105
139
  'urls': {
106
- 'logo': 'https://user-images.githubusercontent.com/51840849/87295554-11f98280-c50e-11ea-80d6-15b3bafa8cbf.jpg',
140
+ 'logo': 'https://github.com/user-attachments/assets/178c8e56-9054-4107-b192-5e5053d4f975',
107
141
  'api': {
108
- 'rest': 'https://api.bitso.com',
142
+ 'rest': 'https://bitso.com/api',
143
+ },
144
+ 'test': {
145
+ 'rest': 'https://stage.bitso.com/api',
109
146
  },
110
147
  'www': 'https://bitso.com',
111
148
  'doc': 'https://bitso.com/api_info',
@@ -120,6 +157,12 @@ class bitso(Exchange, ImplicitAPI):
120
157
  'TUSD': 0.01,
121
158
  },
122
159
  'defaultPrecision': 0.00000001,
160
+ 'networks': {
161
+ 'TRC20': 'trx',
162
+ 'ERC20': 'erc20',
163
+ 'BEP20': 'bsc',
164
+ 'BEP2': 'bep2',
165
+ },
123
166
  },
124
167
  'timeframes': {
125
168
  '1m': '60',
@@ -185,6 +228,68 @@ class bitso(Exchange, ImplicitAPI):
185
228
  ],
186
229
  },
187
230
  },
231
+ 'features': {
232
+ 'spot': {
233
+ 'sandbox': False,
234
+ 'createOrder': {
235
+ 'marginMode': False,
236
+ 'triggerPrice': True, # todo implementation
237
+ 'triggerPriceType': None,
238
+ 'triggerDirection': None,
239
+ 'stopLossPrice': False, # todo
240
+ 'takeProfitPrice': False, # todo
241
+ 'attachedStopLossTakeProfit': None,
242
+ # todo: implementation for TIF
243
+ 'timeInForce': {
244
+ 'IOC': True,
245
+ 'FOK': True,
246
+ 'PO': True,
247
+ 'GTD': False,
248
+ },
249
+ 'hedged': False,
250
+ 'trailing': False,
251
+ 'leverage': False,
252
+ 'marketBuyRequiresPrice': False,
253
+ 'marketBuyByCost': False,
254
+ 'selfTradePrevention': False,
255
+ 'iceberg': False,
256
+ },
257
+ 'createOrders': None,
258
+ 'fetchMyTrades': {
259
+ 'marginMode': False,
260
+ 'limit': 100,
261
+ 'daysBack': None,
262
+ 'untilDays': None,
263
+ 'symbolRequired': True,
264
+ },
265
+ 'fetchOrder': {
266
+ 'marginMode': False,
267
+ 'trigger': False,
268
+ 'trailing': False,
269
+ 'symbolRequired': True,
270
+ },
271
+ 'fetchOpenOrders': {
272
+ 'marginMode': False,
273
+ 'limit': 500,
274
+ 'trigger': False,
275
+ 'trailing': False,
276
+ 'symbolRequired': True,
277
+ },
278
+ 'fetchOrders': None,
279
+ 'fetchClosedOrders': None,
280
+ 'fetchOHLCV': {
281
+ 'limit': 300,
282
+ },
283
+ },
284
+ 'swap': {
285
+ 'linear': None,
286
+ 'inverse': None,
287
+ },
288
+ 'future': {
289
+ 'linear': None,
290
+ 'inverse': None,
291
+ },
292
+ },
188
293
  'exceptions': {
189
294
  '0201': AuthenticationError, # Invalid Nonce or Invalid Credentials
190
295
  '104': InvalidNonce, # Cannot perform request - nonce must be higher than 1520307203724237
@@ -192,14 +297,14 @@ class bitso(Exchange, ImplicitAPI):
192
297
  },
193
298
  })
194
299
 
195
- async def fetch_ledger(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
300
+ async def fetch_ledger(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[LedgerEntry]:
196
301
  """
197
- fetch the history of changes, actions done by the user or operations that altered balance of the user
198
- :param str code: unified currency code, default is None
302
+ fetch the history of changes, actions done by the user or operations that altered the balance of the user
303
+ :param str [code]: unified currency code, default is None
199
304
  :param int [since]: timestamp in ms of the earliest ledger entry, default is None
200
- :param int [limit]: max number of ledger entrys to return, default is None
305
+ :param int [limit]: max number of ledger entries to return, default is None
201
306
  :param dict [params]: extra parameters specific to the exchange API endpoint
202
- :returns dict: a `ledger structure <https://docs.ccxt.com/#/?id=ledger-structure>`
307
+ :returns dict: a `ledger structure <https://docs.ccxt.com/#/?id=ledger>`
203
308
  """
204
309
  request: dict = {}
205
310
  if limit is not None:
@@ -241,7 +346,7 @@ class bitso(Exchange, ImplicitAPI):
241
346
  }
242
347
  return self.safe_string(types, type, type)
243
348
 
244
- def parse_ledger_entry(self, item: dict, currency: Currency = None):
349
+ def parse_ledger_entry(self, item: dict, currency: Currency = None) -> LedgerEntry:
245
350
  #
246
351
  # {
247
352
  # "eid": "2510b3e2bc1c87f584500a18084f35ed",
@@ -305,6 +410,7 @@ class bitso(Exchange, ImplicitAPI):
305
410
  amount = self.safe_string(firstBalance, 'amount')
306
411
  currencyId = self.safe_string(firstBalance, 'currency')
307
412
  code = self.safe_currency_code(currencyId, currency)
413
+ currency = self.safe_currency(currencyId, currency)
308
414
  details = self.safe_value(item, 'details', {})
309
415
  referenceId = self.safe_string_2(details, 'fid', 'wid')
310
416
  if referenceId is None:
@@ -324,6 +430,7 @@ class bitso(Exchange, ImplicitAPI):
324
430
  }
325
431
  timestamp = self.parse8601(self.safe_string(item, 'created_at'))
326
432
  return self.safe_ledger_entry({
433
+ 'info': item,
327
434
  'id': self.safe_string(item, 'eid'),
328
435
  'direction': direction,
329
436
  'account': None,
@@ -338,13 +445,14 @@ class bitso(Exchange, ImplicitAPI):
338
445
  'after': None,
339
446
  'status': 'ok',
340
447
  'fee': fee,
341
- 'info': item,
342
448
  }, currency)
343
449
 
344
450
  async def fetch_markets(self, params={}) -> List[Market]:
345
451
  """
346
452
  retrieves data on all markets for bitso
347
- :see: https://docs.bitso.com/bitso-api/docs/list-available-books
453
+
454
+ https://docs.bitso.com/bitso-api/docs/list-available-books
455
+
348
456
  :param dict [params]: extra parameters specific to the exchange API endpoint
349
457
  :returns dict[]: an array of objects representing market data
350
458
  """
@@ -498,7 +606,9 @@ class bitso(Exchange, ImplicitAPI):
498
606
  async def fetch_balance(self, params={}) -> Balances:
499
607
  """
500
608
  query for balance and get the amount of funds available for trading or funds locked in orders
501
- :see: https://docs.bitso.com/bitso-api/docs/get-account-balance
609
+
610
+ https://docs.bitso.com/bitso-api/docs/get-account-balance
611
+
502
612
  :param dict [params]: extra parameters specific to the exchange API endpoint
503
613
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
504
614
  """
@@ -534,7 +644,9 @@ class bitso(Exchange, ImplicitAPI):
534
644
  async def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
535
645
  """
536
646
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
537
- :see: https://docs.bitso.com/bitso-api/docs/list-order-book
647
+
648
+ https://docs.bitso.com/bitso-api/docs/list-order-book
649
+
538
650
  :param str symbol: unified symbol of the market to fetch the order book for
539
651
  :param int [limit]: the maximum amount of order book entries to return
540
652
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -597,7 +709,9 @@ class bitso(Exchange, ImplicitAPI):
597
709
  async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
598
710
  """
599
711
  fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
600
- :see: https://docs.bitso.com/bitso-api/docs/ticker
712
+
713
+ https://docs.bitso.com/bitso-api/docs/ticker
714
+
601
715
  :param str symbol: unified symbol of the market to fetch the ticker for
602
716
  :param dict [params]: extra parameters specific to the exchange API endpoint
603
717
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -661,7 +775,7 @@ class bitso(Exchange, ImplicitAPI):
661
775
  # {
662
776
  # "bucket_start_time":1648219140000,
663
777
  # "first_trade_time":1648219154990,
664
- # "last_trade_time":1648219189441,
778
+ # "last_trade_time":1648219189442,
665
779
  # "first_rate":"44958.60",
666
780
  # "last_rate":"44979.88",
667
781
  # "min_rate":"44957.33",
@@ -802,7 +916,9 @@ class bitso(Exchange, ImplicitAPI):
802
916
  async def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
803
917
  """
804
918
  get the list of most recent trades for a particular symbol
805
- :see: https://docs.bitso.com/bitso-api/docs/list-trades
919
+
920
+ https://docs.bitso.com/bitso-api/docs/list-trades
921
+
806
922
  :param str symbol: unified symbol of the market to fetch trades for
807
923
  :param int [since]: timestamp in ms of the earliest trade to fetch
808
924
  :param int [limit]: the maximum amount of trades to fetch
@@ -820,7 +936,9 @@ class bitso(Exchange, ImplicitAPI):
820
936
  async def fetch_trading_fees(self, params={}) -> TradingFees:
821
937
  """
822
938
  fetch the trading fees for multiple markets
823
- :see: https://docs.bitso.com/bitso-api/docs/list-fees
939
+
940
+ https://docs.bitso.com/bitso-api/docs/list-fees
941
+
824
942
  :param dict [params]: extra parameters specific to the exchange API endpoint
825
943
  :returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
826
944
  """
@@ -889,7 +1007,9 @@ class bitso(Exchange, ImplicitAPI):
889
1007
  async def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = 25, params={}):
890
1008
  """
891
1009
  fetch all trades made by the user
892
- :see: https://docs.bitso.com/bitso-api/docs/user-trades
1010
+
1011
+ https://docs.bitso.com/bitso-api/docs/user-trades
1012
+
893
1013
  :param str symbol: unified market symbol
894
1014
  :param int [since]: the earliest time in ms to fetch trades for
895
1015
  :param int [limit]: the maximum number of trades structures to retrieve
@@ -923,12 +1043,14 @@ class bitso(Exchange, ImplicitAPI):
923
1043
  async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
924
1044
  """
925
1045
  create a trade order
926
- :see: https://docs.bitso.com/bitso-api/docs/place-an-order
1046
+
1047
+ https://docs.bitso.com/bitso-api/docs/place-an-order
1048
+
927
1049
  :param str symbol: unified symbol of the market to create an order in
928
1050
  :param str type: 'market' or 'limit'
929
1051
  :param str side: 'buy' or 'sell'
930
1052
  :param float amount: how much of currency you want to trade in units of base currency
931
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1053
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
932
1054
  :param dict [params]: extra parameters specific to the exchange API endpoint
933
1055
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
934
1056
  """
@@ -952,7 +1074,9 @@ class bitso(Exchange, ImplicitAPI):
952
1074
  async def cancel_order(self, id: str, symbol: Str = None, params={}):
953
1075
  """
954
1076
  cancels an open order
955
- :see: https://docs.bitso.com/bitso-api/docs/cancel-an-order
1077
+
1078
+ https://docs.bitso.com/bitso-api/docs/cancel-an-order
1079
+
956
1080
  :param str id: order id
957
1081
  :param str symbol: not used by bitso cancelOrder()
958
1082
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -962,12 +1086,26 @@ class bitso(Exchange, ImplicitAPI):
962
1086
  request: dict = {
963
1087
  'oid': id,
964
1088
  }
965
- return await self.privateDeleteOrdersOid(self.extend(request, params))
1089
+ response = await self.privateDeleteOrdersOid(self.extend(request, params))
1090
+ #
1091
+ # {
1092
+ # "success": True,
1093
+ # "payload": ["yWTQGxDMZ0VimZgZ"]
1094
+ # }
1095
+ #
1096
+ payload = self.safe_list(response, 'payload', [])
1097
+ orderId = self.safe_string(payload, 0)
1098
+ return self.safe_order({
1099
+ 'info': response,
1100
+ 'id': orderId,
1101
+ })
966
1102
 
967
- async def cancel_orders(self, ids, symbol: Str = None, params={}):
1103
+ async def cancel_orders(self, ids, symbol: Str = None, params={}) -> List[Order]:
968
1104
  """
969
1105
  cancel multiple orders
970
- :see: https://docs.bitso.com/bitso-api/docs/cancel-an-order
1106
+
1107
+ https://docs.bitso.com/bitso-api/docs/cancel-an-order
1108
+
971
1109
  :param str[] ids: order ids
972
1110
  :param str symbol: unified market symbol
973
1111
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -996,10 +1134,12 @@ class bitso(Exchange, ImplicitAPI):
996
1134
  orders.append(self.parse_order(id, market))
997
1135
  return orders
998
1136
 
999
- async def cancel_all_orders(self, symbol: Str = None, params={}):
1137
+ async def cancel_all_orders(self, symbol: Str = None, params={}) -> List[Order]:
1000
1138
  """
1001
1139
  cancel all open orders
1002
- :see: https://docs.bitso.com/bitso-api/docs/cancel-an-order
1140
+
1141
+ https://docs.bitso.com/bitso-api/docs/cancel-an-order
1142
+
1003
1143
  :param None symbol: bitso does not support canceling orders for only a specific market
1004
1144
  :param dict [params]: extra parameters specific to the exchange API endpoint
1005
1145
  :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
@@ -1063,7 +1203,6 @@ class bitso(Exchange, ImplicitAPI):
1063
1203
  'postOnly': None,
1064
1204
  'side': side,
1065
1205
  'price': price,
1066
- 'stopPrice': None,
1067
1206
  'triggerPrice': None,
1068
1207
  'amount': amount,
1069
1208
  'cost': None,
@@ -1078,7 +1217,9 @@ class bitso(Exchange, ImplicitAPI):
1078
1217
  async def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = 25, params={}) -> List[Order]:
1079
1218
  """
1080
1219
  fetch all unfilled currently open orders
1081
- :see: https://docs.bitso.com/bitso-api/docs/list-open-orders
1220
+
1221
+ https://docs.bitso.com/bitso-api/docs/list-open-orders
1222
+
1082
1223
  :param str symbol: unified market symbol
1083
1224
  :param int [since]: the earliest time in ms to fetch open orders for
1084
1225
  :param int [limit]: the maximum number of open orders structures to retrieve
@@ -1113,7 +1254,10 @@ class bitso(Exchange, ImplicitAPI):
1113
1254
  async def fetch_order(self, id: str, symbol: Str = None, params={}):
1114
1255
  """
1115
1256
  fetches information on an order made by the user
1116
- :see: https://docs.bitso.com/bitso-api/docs/look-up-orders
1257
+
1258
+ https://docs.bitso.com/bitso-api/docs/look-up-orders
1259
+
1260
+ :param str id: the order id
1117
1261
  :param str symbol: not used by bitso fetchOrder
1118
1262
  :param dict [params]: extra parameters specific to the exchange API endpoint
1119
1263
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -1132,7 +1276,9 @@ class bitso(Exchange, ImplicitAPI):
1132
1276
  async def fetch_order_trades(self, id: str, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
1133
1277
  """
1134
1278
  fetch all the trades made from a single order
1135
- :see: https://docs.bitso.com/bitso-api/docs/list-user-trades
1279
+
1280
+ https://docs.bitso.com/bitso-api/docs/list-user-trades
1281
+
1136
1282
  :param str id: order id
1137
1283
  :param str symbol: unified market symbol
1138
1284
  :param int [since]: the earliest time in ms to fetch trades for
@@ -1151,7 +1297,9 @@ class bitso(Exchange, ImplicitAPI):
1151
1297
  async def fetch_deposit(self, id: str, code: Str = None, params={}):
1152
1298
  """
1153
1299
  fetch information on a deposit
1154
- :see: https://docs.bitso.com/bitso-payouts-funding/docs/fundings
1300
+
1301
+ https://docs.bitso.com/bitso-payouts-funding/docs/fundings
1302
+
1155
1303
  :param str id: deposit id
1156
1304
  :param str code: bitso does not support filtering by currency code and will ignore self argument
1157
1305
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -1192,7 +1340,9 @@ class bitso(Exchange, ImplicitAPI):
1192
1340
  async def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
1193
1341
  """
1194
1342
  fetch all deposits made to an account
1195
- :see: https://docs.bitso.com/bitso-payouts-funding/docs/fundings
1343
+
1344
+ https://docs.bitso.com/bitso-payouts-funding/docs/fundings
1345
+
1196
1346
  :param str code: unified currency code
1197
1347
  :param int [since]: the earliest time in ms to fetch deposits for
1198
1348
  :param int [limit]: the maximum number of deposits structures to retrieve
@@ -1230,7 +1380,7 @@ class bitso(Exchange, ImplicitAPI):
1230
1380
  transactions = self.safe_list(response, 'payload', [])
1231
1381
  return self.parse_transactions(transactions, currency, since, limit, params)
1232
1382
 
1233
- async def fetch_deposit_address(self, code: str, params={}):
1383
+ async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
1234
1384
  """
1235
1385
  fetch the deposit address for a currency associated with self account
1236
1386
  :param str code: unified currency code
@@ -1251,18 +1401,20 @@ class bitso(Exchange, ImplicitAPI):
1251
1401
  tag = self.safe_string(parts, 1)
1252
1402
  self.check_address(address)
1253
1403
  return {
1404
+ 'info': response,
1254
1405
  'currency': code,
1406
+ 'network': None,
1255
1407
  'address': address,
1256
1408
  'tag': tag,
1257
- 'network': None,
1258
- 'info': response,
1259
1409
  }
1260
1410
 
1261
1411
  async def fetch_transaction_fees(self, codes: Strings = None, params={}):
1262
1412
  """
1263
- * @deprecated
1413
+ @deprecated
1264
1414
  please use fetchDepositWithdrawFees instead
1265
- :see: https://docs.bitso.com/bitso-api/docs/list-fees
1415
+
1416
+ https://docs.bitso.com/bitso-api/docs/list-fees
1417
+
1266
1418
  :param str[]|None codes: list of unified currency codes
1267
1419
  :param dict [params]: extra parameters specific to the exchange API endpoint
1268
1420
  :returns dict[]: a list of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>`
@@ -1349,7 +1501,9 @@ class bitso(Exchange, ImplicitAPI):
1349
1501
  async def fetch_deposit_withdraw_fees(self, codes: Strings = None, params={}):
1350
1502
  """
1351
1503
  fetch deposit and withdraw fees
1352
- :see: https://docs.bitso.com/bitso-api/docs/list-fees
1504
+
1505
+ https://docs.bitso.com/bitso-api/docs/list-fees
1506
+
1353
1507
  :param str[]|None codes: list of unified currency codes
1354
1508
  :param dict [params]: extra parameters specific to the exchange API endpoint
1355
1509
  :returns dict[]: a list of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>`
@@ -1476,7 +1630,7 @@ class bitso(Exchange, ImplicitAPI):
1476
1630
  result[code]['info'][code] = withdrawFee
1477
1631
  return result
1478
1632
 
1479
- async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
1633
+ async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
1480
1634
  """
1481
1635
  make a withdrawal
1482
1636
  :param str code: unified currency code
@@ -1530,18 +1684,6 @@ class bitso(Exchange, ImplicitAPI):
1530
1684
  first = self.safe_dict(payload, 0)
1531
1685
  return self.parse_transaction(first, currency)
1532
1686
 
1533
- def safe_network(self, networkId):
1534
- if networkId is None:
1535
- return None
1536
- networkId = networkId.upper()
1537
- networksById: dict = {
1538
- 'trx': 'TRC20',
1539
- 'erc20': 'ERC20',
1540
- 'bsc': 'BEP20',
1541
- 'bep2': 'BEP2',
1542
- }
1543
- return self.safe_string(networksById, networkId, networkId)
1544
-
1545
1687
  def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
1546
1688
  #
1547
1689
  # deposit
@@ -1588,12 +1730,14 @@ class bitso(Exchange, ImplicitAPI):
1588
1730
  networkId = self.safe_string_2(transaction, 'network', 'method')
1589
1731
  status = self.safe_string(transaction, 'status')
1590
1732
  withdrawId = self.safe_string(transaction, 'wid')
1733
+ networkCode = self.network_id_to_code(networkId)
1734
+ networkCodeUpper = networkCode.upper() if (networkCode is not None) else None
1591
1735
  return {
1592
1736
  'id': self.safe_string_2(transaction, 'wid', 'fid'),
1593
1737
  'txid': self.safe_string(details, 'tx_hash'),
1594
1738
  'timestamp': self.parse8601(datetime),
1595
1739
  'datetime': datetime,
1596
- 'network': self.safe_network(networkId),
1740
+ 'network': networkCodeUpper,
1597
1741
  'addressFrom': receivingAddress,
1598
1742
  'address': withdrawalAddress if (withdrawalAddress is not None) else receivingAddress,
1599
1743
  'addressTo': withdrawalAddress,
@@ -1633,6 +1777,7 @@ class bitso(Exchange, ImplicitAPI):
1633
1777
  if api == 'private':
1634
1778
  self.check_required_credentials()
1635
1779
  nonce = str(self.nonce())
1780
+ endpoint = '/api' + endpoint
1636
1781
  request = ''.join([nonce, method, endpoint])
1637
1782
  if method != 'GET' and method != 'DELETE':
1638
1783
  if query:
@@ -1642,7 +1787,7 @@ class bitso(Exchange, ImplicitAPI):
1642
1787
  auth = self.apiKey + ':' + nonce + ':' + signature
1643
1788
  headers = {
1644
1789
  'Authorization': 'Bitso ' + auth,
1645
- 'Content-Type': 'application/json',
1790
+ # 'Content-Type': 'application/json',
1646
1791
  }
1647
1792
  return {'url': url, 'method': method, 'body': body, 'headers': headers}
1648
1793