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/bitstamp.py CHANGED
@@ -6,11 +6,12 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.bitstamp import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
9
+ from ccxt.base.types import Any, Balances, Currencies, Currency, DepositAddress, Int, LedgerEntry, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
13
13
  from ccxt.base.errors import PermissionDenied
14
+ from ccxt.base.errors import AccountSuspended
14
15
  from ccxt.base.errors import BadRequest
15
16
  from ccxt.base.errors import InsufficientFunds
16
17
  from ccxt.base.errors import InvalidAddress
@@ -26,7 +27,7 @@ from ccxt.base.precise import Precise
26
27
 
27
28
  class bitstamp(Exchange, ImplicitAPI):
28
29
 
29
- def describe(self):
30
+ def describe(self) -> Any:
30
31
  return self.deep_extend(super(bitstamp, self).describe(), {
31
32
  'id': 'bitstamp',
32
33
  'name': 'Bitstamp',
@@ -44,41 +45,71 @@ class bitstamp(Exchange, ImplicitAPI):
44
45
  'future': False,
45
46
  'option': False,
46
47
  'addMargin': False,
48
+ 'borrowCrossMargin': False,
49
+ 'borrowIsolatedMargin': False,
50
+ 'borrowMargin': False,
47
51
  'cancelAllOrders': True,
48
52
  'cancelOrder': True,
49
53
  'closeAllPositions': False,
50
54
  'closePosition': False,
51
55
  'createOrder': True,
56
+ 'createOrderWithTakeProfitAndStopLoss': False,
57
+ 'createOrderWithTakeProfitAndStopLossWs': False,
52
58
  'createReduceOnlyOrder': False,
53
59
  'createStopLimitOrder': False,
54
60
  'createStopMarketOrder': False,
55
61
  'createStopOrder': False,
56
62
  'fetchBalance': True,
63
+ 'fetchBorrowInterest': False,
64
+ 'fetchBorrowRate': False,
57
65
  'fetchBorrowRateHistories': False,
58
66
  'fetchBorrowRateHistory': False,
67
+ 'fetchBorrowRates': False,
68
+ 'fetchBorrowRatesPerSymbol': False,
59
69
  'fetchCrossBorrowRate': False,
60
70
  'fetchCrossBorrowRates': False,
61
71
  'fetchCurrencies': True,
62
72
  'fetchDepositAddress': True,
73
+ 'fetchDepositAddresses': False,
74
+ 'fetchDepositAddressesByNetwork': False,
63
75
  'fetchDepositsWithdrawals': True,
64
76
  'fetchDepositWithdrawFee': 'emulated',
65
77
  'fetchDepositWithdrawFees': True,
66
78
  'fetchFundingHistory': False,
79
+ 'fetchFundingInterval': False,
80
+ 'fetchFundingIntervals': False,
67
81
  'fetchFundingRate': False,
68
82
  'fetchFundingRateHistory': False,
69
83
  'fetchFundingRates': False,
84
+ 'fetchGreeks': False,
70
85
  'fetchIndexOHLCV': False,
71
86
  'fetchIsolatedBorrowRate': False,
72
87
  'fetchIsolatedBorrowRates': False,
88
+ 'fetchIsolatedPositions': False,
73
89
  'fetchLedger': True,
74
90
  'fetchLeverage': False,
91
+ 'fetchLeverages': False,
92
+ 'fetchLeverageTiers': False,
93
+ 'fetchLiquidations': False,
94
+ 'fetchLongShortRatio': False,
95
+ 'fetchLongShortRatioHistory': False,
96
+ 'fetchMarginAdjustmentHistory': False,
75
97
  'fetchMarginMode': False,
98
+ 'fetchMarginModes': False,
99
+ 'fetchMarketLeverageTiers': False,
76
100
  'fetchMarkets': True,
77
101
  'fetchMarkOHLCV': False,
102
+ 'fetchMarkPrices': False,
103
+ 'fetchMyLiquidations': False,
104
+ 'fetchMySettlementHistory': False,
78
105
  'fetchMyTrades': True,
79
106
  'fetchOHLCV': True,
107
+ 'fetchOpenInterest': False,
80
108
  'fetchOpenInterestHistory': False,
109
+ 'fetchOpenInterests': False,
81
110
  'fetchOpenOrders': True,
111
+ 'fetchOption': False,
112
+ 'fetchOptionChain': False,
82
113
  'fetchOrder': True,
83
114
  'fetchOrderBook': True,
84
115
  'fetchPosition': False,
@@ -89,6 +120,7 @@ class bitstamp(Exchange, ImplicitAPI):
89
120
  'fetchPositionsHistory': False,
90
121
  'fetchPositionsRisk': False,
91
122
  'fetchPremiumIndexOHLCV': False,
123
+ 'fetchSettlementHistory': False,
92
124
  'fetchTicker': True,
93
125
  'fetchTickers': True,
94
126
  'fetchTrades': True,
@@ -96,16 +128,20 @@ class bitstamp(Exchange, ImplicitAPI):
96
128
  'fetchTradingFees': True,
97
129
  'fetchTransactionFees': True,
98
130
  'fetchTransactions': 'emulated',
131
+ 'fetchVolatilityHistory': False,
99
132
  'fetchWithdrawals': True,
100
133
  'reduceMargin': False,
134
+ 'repayCrossMargin': False,
135
+ 'repayIsolatedMargin': False,
101
136
  'setLeverage': False,
137
+ 'setMargin': False,
102
138
  'setMarginMode': False,
103
139
  'setPositionMode': False,
104
140
  'transfer': True,
105
141
  'withdraw': True,
106
142
  },
107
143
  'urls': {
108
- 'logo': 'https://user-images.githubusercontent.com/1294454/27786377-8c8ab57e-5fe9-11e7-8ea4-2b05b6bcceec.jpg',
144
+ 'logo': 'https://github.com/user-attachments/assets/d5480572-1fee-43cb-b900-d38c522d0024',
109
145
  'api': {
110
146
  'public': 'https://www.bitstamp.net/api',
111
147
  'private': 'https://www.bitstamp.net/api',
@@ -163,6 +199,7 @@ class bitstamp(Exchange, ImplicitAPI):
163
199
  'user_transactions/': 1,
164
200
  'user_transactions/{pair}/': 1,
165
201
  'crypto-transactions/': 1,
202
+ 'open_order': 1,
166
203
  'open_orders/all/': 1,
167
204
  'open_orders/{pair}/': 1,
168
205
  'order_status/': 1,
@@ -402,46 +439,34 @@ class bitstamp(Exchange, ImplicitAPI):
402
439
  'trading': {
403
440
  'tierBased': True,
404
441
  'percentage': True,
405
- 'taker': self.parse_number('0.005'),
406
- 'maker': self.parse_number('0.005'),
442
+ 'taker': self.parse_number('0.004'),
443
+ 'maker': self.parse_number('0.004'),
407
444
  'tiers': {
408
445
  'taker': [
409
- [self.parse_number('0'), self.parse_number('0.005')],
410
- [self.parse_number('20000'), self.parse_number('0.0025')],
411
- [self.parse_number('100000'), self.parse_number('0.0024')],
412
- [self.parse_number('200000'), self.parse_number('0.0022')],
413
- [self.parse_number('400000'), self.parse_number('0.0020')],
414
- [self.parse_number('600000'), self.parse_number('0.0015')],
415
- [self.parse_number('1000000'), self.parse_number('0.0014')],
416
- [self.parse_number('2000000'), self.parse_number('0.0013')],
417
- [self.parse_number('4000000'), self.parse_number('0.0012')],
418
- [self.parse_number('20000000'), self.parse_number('0.0011')],
419
- [self.parse_number('50000000'), self.parse_number('0.0010')],
420
- [self.parse_number('100000000'), self.parse_number('0.0007')],
421
- [self.parse_number('500000000'), self.parse_number('0.0005')],
422
- [self.parse_number('2000000000'), self.parse_number('0.0003')],
423
- [self.parse_number('6000000000'), self.parse_number('0.0001')],
424
- [self.parse_number('20000000000'), self.parse_number('0.00005')],
425
- [self.parse_number('20000000001'), self.parse_number('0')],
446
+ [self.parse_number('0'), self.parse_number('0.004')],
447
+ [self.parse_number('10000'), self.parse_number('0.003')],
448
+ [self.parse_number('100000'), self.parse_number('0.002')],
449
+ [self.parse_number('500000'), self.parse_number('0.0018')],
450
+ [self.parse_number('1500000'), self.parse_number('0.0016')],
451
+ [self.parse_number('5000000'), self.parse_number('0.0012')],
452
+ [self.parse_number('20000000'), self.parse_number('0.001')],
453
+ [self.parse_number('50000000'), self.parse_number('0.0008')],
454
+ [self.parse_number('100000000'), self.parse_number('0.0006')],
455
+ [self.parse_number('250000000'), self.parse_number('0.0005')],
456
+ [self.parse_number('1000000000'), self.parse_number('0.0003')],
426
457
  ],
427
458
  'maker': [
428
- [self.parse_number('0'), self.parse_number('0.005')],
429
- [self.parse_number('20000'), self.parse_number('0.0025')],
430
- [self.parse_number('100000'), self.parse_number('0.0024')],
431
- [self.parse_number('200000'), self.parse_number('0.0022')],
432
- [self.parse_number('400000'), self.parse_number('0.0020')],
433
- [self.parse_number('600000'), self.parse_number('0.0015')],
434
- [self.parse_number('1000000'), self.parse_number('0.0014')],
435
- [self.parse_number('2000000'), self.parse_number('0.0013')],
436
- [self.parse_number('4000000'), self.parse_number('0.0012')],
437
- [self.parse_number('20000000'), self.parse_number('0.0011')],
438
- [self.parse_number('50000000'), self.parse_number('0.0010')],
439
- [self.parse_number('100000000'), self.parse_number('0.0007')],
440
- [self.parse_number('500000000'), self.parse_number('0.0005')],
441
- [self.parse_number('2000000000'), self.parse_number('0.0003')],
442
- [self.parse_number('6000000000'), self.parse_number('0.0001')],
443
- [self.parse_number('20000000000'), self.parse_number('0.00005')],
444
- [self.parse_number('20000000001'), self.parse_number('0')],
459
+ [self.parse_number('0'), self.parse_number('0.003')],
460
+ [self.parse_number('10000'), self.parse_number('0.002')],
461
+ [self.parse_number('100000'), self.parse_number('0.001')],
462
+ [self.parse_number('500000'), self.parse_number('0.0008')],
463
+ [self.parse_number('1500000'), self.parse_number('0.0006')],
464
+ [self.parse_number('5000000'), self.parse_number('0.0003')],
465
+ [self.parse_number('20000000'), self.parse_number('0.002')],
466
+ [self.parse_number('50000000'), self.parse_number('0.0001')],
467
+ [self.parse_number('100000000'), self.parse_number('0')],
468
+ [self.parse_number('250000000'), self.parse_number('0')],
469
+ [self.parse_number('1000000000'), self.parse_number('0')],
445
470
  ],
446
471
  },
447
472
  },
@@ -507,6 +532,7 @@ class bitstamp(Exchange, ImplicitAPI):
507
532
  "Bitstamp.net is under scheduled maintenance. We'll be back soon.": OnMaintenance, # {"error": "Bitstamp.net is under scheduled maintenance. We'll be back soon."}
508
533
  'Order could not be placed.': ExchangeNotAvailable, # Order could not be placed(perhaps due to internal error or trade halt). Please retry placing order.
509
534
  'Invalid offset.': BadRequest,
535
+ 'Trading is currently unavailable for your account.': AccountSuspended, # {"status": "error", "reason": {"__all__": ["Trading is currently unavailable for your account."]}, "response_code": "403.004"}
510
536
  },
511
537
  'broad': {
512
538
  'Minimum order size is': InvalidOrder, # Minimum order size is 5.0 EUR.
@@ -515,12 +541,75 @@ class bitstamp(Exchange, ImplicitAPI):
515
541
  'Ensure that there are no more than': InvalidOrder, # {"status": "error", "reason": {"amount": ["Ensure that there are no more than 0 decimal places."], "__all__": [""]}}
516
542
  },
517
543
  },
544
+ 'features': {
545
+ 'spot': {
546
+ 'sandbox': False,
547
+ 'createOrder': {
548
+ 'marginMode': False,
549
+ 'triggerPrice': False,
550
+ 'triggerPriceType': None,
551
+ 'triggerDirection': False,
552
+ 'stopLossPrice': False,
553
+ 'takeProfitPrice': False,
554
+ 'attachedStopLossTakeProfit': None,
555
+ 'timeInForce': {
556
+ 'IOC': True,
557
+ 'FOK': True,
558
+ 'PO': True,
559
+ 'GTD': True,
560
+ },
561
+ 'hedged': False,
562
+ 'trailing': False,
563
+ 'leverage': False,
564
+ 'marketBuyByCost': False,
565
+ 'marketBuyRequiresPrice': False,
566
+ 'selfTradePrevention': False,
567
+ 'iceberg': False,
568
+ },
569
+ 'createOrders': None,
570
+ 'fetchMyTrades': {
571
+ 'marginMode': False,
572
+ 'limit': 1000,
573
+ 'daysBack': None,
574
+ 'untilDays': 30,
575
+ 'symbolRequired': False,
576
+ },
577
+ 'fetchOrder': {
578
+ 'marginMode': False,
579
+ 'trigger': False,
580
+ 'trailing': False,
581
+ 'symbolRequired': False,
582
+ },
583
+ 'fetchOpenOrders': {
584
+ 'marginMode': False,
585
+ 'limit': None,
586
+ 'trigger': False,
587
+ 'trailing': False,
588
+ 'symbolRequired': False,
589
+ },
590
+ 'fetchOrders': None,
591
+ 'fetchClosedOrders': None,
592
+ 'fetchOHLCV': {
593
+ 'limit': 1000,
594
+ },
595
+ },
596
+ 'swap': {
597
+ 'linear': None,
598
+ 'inverse': None,
599
+ },
600
+ 'future': {
601
+ 'linear': None,
602
+ 'inverse': None,
603
+ },
604
+ },
518
605
  })
519
606
 
520
607
  def fetch_markets(self, params={}) -> List[Market]:
521
608
  """
522
609
  retrieves data on all markets for bitstamp
523
- :see: https://www.bitstamp.net/api/#tag/Market-info/operation/GetTradingPairsInfo
610
+
611
+ https://www.bitstamp.net/api/#tag/Market-info/operation/GetTradingPairsInfo
612
+
524
613
  :param dict [params]: extra parameters specific to the exchange API endpoint
525
614
  :returns dict[]: an array of objects representing market data
526
615
  """
@@ -659,7 +748,9 @@ class bitstamp(Exchange, ImplicitAPI):
659
748
  def fetch_currencies(self, params={}) -> Currencies:
660
749
  """
661
750
  fetches all available currencies on an exchange
662
- :see: https://www.bitstamp.net/api/#tag/Market-info/operation/GetTradingPairsInfo
751
+
752
+ https://www.bitstamp.net/api/#tag/Market-info/operation/GetTradingPairsInfo
753
+
663
754
  :param dict [params]: extra parameters specific to the exchange API endpoint
664
755
  :returns dict: an associative dictionary of currencies
665
756
  """
@@ -703,7 +794,9 @@ class bitstamp(Exchange, ImplicitAPI):
703
794
  def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
704
795
  """
705
796
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
706
- :see: https://www.bitstamp.net/api/#tag/Order-book/operation/GetOrderBook
797
+
798
+ https://www.bitstamp.net/api/#tag/Order-book/operation/GetOrderBook
799
+
707
800
  :param str symbol: unified symbol of the market to fetch the order book for
708
801
  :param int [limit]: the maximum amount of order book entries to return
709
802
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -787,7 +880,9 @@ class bitstamp(Exchange, ImplicitAPI):
787
880
  def fetch_ticker(self, symbol: str, params={}) -> Ticker:
788
881
  """
789
882
  fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
790
- :see: https://www.bitstamp.net/api/#tag/Tickers/operation/GetMarketTicker
883
+
884
+ https://www.bitstamp.net/api/#tag/Tickers/operation/GetMarketTicker
885
+
791
886
  :param str symbol: unified symbol of the market to fetch the ticker for
792
887
  :param dict [params]: extra parameters specific to the exchange API endpoint
793
888
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -818,7 +913,9 @@ class bitstamp(Exchange, ImplicitAPI):
818
913
  def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
819
914
  """
820
915
  fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
821
- :see: https://www.bitstamp.net/api/#tag/Tickers/operation/GetCurrencyPairTickers
916
+
917
+ https://www.bitstamp.net/api/#tag/Tickers/operation/GetCurrencyPairTickers
918
+
822
919
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
823
920
  :param dict [params]: extra parameters specific to the exchange API endpoint
824
921
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -1021,7 +1118,9 @@ class bitstamp(Exchange, ImplicitAPI):
1021
1118
  def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
1022
1119
  """
1023
1120
  get the list of most recent trades for a particular symbol
1024
- :see: https://www.bitstamp.net/api/#tag/Transactions-public/operation/GetTransactions
1121
+
1122
+ https://www.bitstamp.net/api/#tag/Transactions-public/operation/GetTransactions
1123
+
1025
1124
  :param str symbol: unified symbol of the market to fetch trades for
1026
1125
  :param int [since]: timestamp in ms of the earliest trade to fetch
1027
1126
  :param int [limit]: the maximum amount of trades to fetch
@@ -1078,7 +1177,9 @@ class bitstamp(Exchange, ImplicitAPI):
1078
1177
  def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
1079
1178
  """
1080
1179
  fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
1081
- :see: https://www.bitstamp.net/api/#tag/Market-info/operation/GetOHLCData
1180
+
1181
+ https://www.bitstamp.net/api/#tag/Market-info/operation/GetOHLCData
1182
+
1082
1183
  :param str symbol: unified symbol of the market to fetch OHLCV data for
1083
1184
  :param str timeframe: the length of time each candle represents
1084
1185
  :param int [since]: timestamp in ms of the earliest candle to fetch
@@ -1147,7 +1248,9 @@ class bitstamp(Exchange, ImplicitAPI):
1147
1248
  def fetch_balance(self, params={}) -> Balances:
1148
1249
  """
1149
1250
  query for balance and get the amount of funds available for trading or funds locked in orders
1150
- :see: https://www.bitstamp.net/api/#tag/Account-balances/operation/GetAccountBalances
1251
+
1252
+ https://www.bitstamp.net/api/#tag/Account-balances/operation/GetAccountBalances
1253
+
1151
1254
  :param dict [params]: extra parameters specific to the exchange API endpoint
1152
1255
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
1153
1256
  """
@@ -1169,7 +1272,9 @@ class bitstamp(Exchange, ImplicitAPI):
1169
1272
  def fetch_trading_fee(self, symbol: str, params={}) -> TradingFeeInterface:
1170
1273
  """
1171
1274
  fetch the trading fees for a market
1172
- :see: https://www.bitstamp.net/api/#tag/Fees/operation/GetTradingFeesForCurrency
1275
+
1276
+ https://www.bitstamp.net/api/#tag/Fees/operation/GetTradingFeesForCurrency
1277
+
1173
1278
  :param str symbol: unified market symbol
1174
1279
  :param dict [params]: extra parameters specific to the exchange API endpoint
1175
1280
  :returns dict: a `fee structure <https://docs.ccxt.com/#/?id=fee-structure>`
@@ -1212,17 +1317,18 @@ class bitstamp(Exchange, ImplicitAPI):
1212
1317
 
1213
1318
  def parse_trading_fees(self, fees):
1214
1319
  result: dict = {'info': fees}
1215
- symbols = self.symbols
1216
- for i in range(0, len(symbols)):
1217
- symbol = symbols[i]
1320
+ for i in range(0, len(fees)):
1218
1321
  fee = self.parse_trading_fee(fees[i])
1322
+ symbol = fee['symbol']
1219
1323
  result[symbol] = fee
1220
1324
  return result
1221
1325
 
1222
1326
  def fetch_trading_fees(self, params={}) -> TradingFees:
1223
1327
  """
1224
1328
  fetch the trading fees for multiple markets
1225
- :see: https://www.bitstamp.net/api/#tag/Fees/operation/GetAllTradingFees
1329
+
1330
+ https://www.bitstamp.net/api/#tag/Fees/operation/GetAllTradingFees
1331
+
1226
1332
  :param dict [params]: extra parameters specific to the exchange API endpoint
1227
1333
  :returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
1228
1334
  """
@@ -1246,9 +1352,11 @@ class bitstamp(Exchange, ImplicitAPI):
1246
1352
 
1247
1353
  def fetch_transaction_fees(self, codes: Strings = None, params={}):
1248
1354
  """
1249
- * @deprecated
1355
+ @deprecated
1250
1356
  please use fetchDepositWithdrawFees instead
1251
- :see: https://www.bitstamp.net/api/#tag/Fees
1357
+
1358
+ https://www.bitstamp.net/api/#tag/Fees
1359
+
1252
1360
  :param str[]|None codes: list of unified currency codes
1253
1361
  :param dict [params]: extra parameters specific to the exchange API endpoint
1254
1362
  :returns dict[]: a list of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>`
@@ -1287,7 +1395,9 @@ class bitstamp(Exchange, ImplicitAPI):
1287
1395
  def fetch_deposit_withdraw_fees(self, codes=None, params={}):
1288
1396
  """
1289
1397
  fetch deposit and withdraw fees
1290
- :see: https://www.bitstamp.net/api/#tag/Fees/operation/GetAllWithdrawalFees
1398
+
1399
+ https://www.bitstamp.net/api/#tag/Fees/operation/GetAllWithdrawalFees
1400
+
1291
1401
  :param str[]|None codes: list of unified currency codes
1292
1402
  :param dict [params]: extra parameters specific to the exchange API endpoint
1293
1403
  :returns dict[]: a list of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>`
@@ -1333,17 +1443,19 @@ class bitstamp(Exchange, ImplicitAPI):
1333
1443
  def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
1334
1444
  """
1335
1445
  create a trade order
1336
- :see: https://www.bitstamp.net/api/#tag/Orders/operation/OpenInstantBuyOrder
1337
- :see: https://www.bitstamp.net/api/#tag/Orders/operation/OpenMarketBuyOrder
1338
- :see: https://www.bitstamp.net/api/#tag/Orders/operation/OpenLimitBuyOrder
1339
- :see: https://www.bitstamp.net/api/#tag/Orders/operation/OpenInstantSellOrder
1340
- :see: https://www.bitstamp.net/api/#tag/Orders/operation/OpenMarketSellOrder
1341
- :see: https://www.bitstamp.net/api/#tag/Orders/operation/OpenLimitSellOrder
1446
+
1447
+ https://www.bitstamp.net/api/#tag/Orders/operation/OpenInstantBuyOrder
1448
+ https://www.bitstamp.net/api/#tag/Orders/operation/OpenMarketBuyOrder
1449
+ https://www.bitstamp.net/api/#tag/Orders/operation/OpenLimitBuyOrder
1450
+ https://www.bitstamp.net/api/#tag/Orders/operation/OpenInstantSellOrder
1451
+ https://www.bitstamp.net/api/#tag/Orders/operation/OpenMarketSellOrder
1452
+ https://www.bitstamp.net/api/#tag/Orders/operation/OpenLimitSellOrder
1453
+
1342
1454
  :param str symbol: unified symbol of the market to create an order in
1343
1455
  :param str type: 'market' or 'limit'
1344
1456
  :param str side: 'buy' or 'sell'
1345
1457
  :param float amount: how much of currency you want to trade in units of base currency
1346
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1458
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1347
1459
  :param dict [params]: extra parameters specific to the exchange API endpoint
1348
1460
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1349
1461
  """
@@ -1382,7 +1494,9 @@ class bitstamp(Exchange, ImplicitAPI):
1382
1494
  def cancel_order(self, id: str, symbol: Str = None, params={}):
1383
1495
  """
1384
1496
  cancels an open order
1385
- :see: https://www.bitstamp.net/api/#tag/Orders/operation/CancelOrder
1497
+
1498
+ https://www.bitstamp.net/api/#tag/Orders/operation/CancelOrder
1499
+
1386
1500
  :param str id: order id
1387
1501
  :param str symbol: unified symbol of the market the order was made in
1388
1502
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -1407,8 +1521,10 @@ class bitstamp(Exchange, ImplicitAPI):
1407
1521
  def cancel_all_orders(self, symbol: Str = None, params={}):
1408
1522
  """
1409
1523
  cancel all open orders
1410
- :see: https://www.bitstamp.net/api/#tag/Orders/operation/CancelAllOrders
1411
- :see: https://www.bitstamp.net/api/#tag/Orders/operation/CancelOrdersForMarket
1524
+
1525
+ https://www.bitstamp.net/api/#tag/Orders/operation/CancelAllOrders
1526
+ https://www.bitstamp.net/api/#tag/Orders/operation/CancelOrdersForMarket
1527
+
1412
1528
  :param str symbol: unified market symbol, only orders in the market of self symbol are cancelled when symbol is not None
1413
1529
  :param dict [params]: extra parameters specific to the exchange API endpoint
1414
1530
  :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
@@ -1465,7 +1581,10 @@ class bitstamp(Exchange, ImplicitAPI):
1465
1581
  def fetch_order(self, id: str, symbol: Str = None, params={}):
1466
1582
  """
1467
1583
  fetches information on an order made by the user
1468
- :see: https://www.bitstamp.net/api/#tag/Orders/operation/GetOrderStatus
1584
+
1585
+ https://www.bitstamp.net/api/#tag/Orders/operation/GetOrderStatus
1586
+
1587
+ :param str id: the order id
1469
1588
  :param str symbol: unified symbol of the market the order was made in
1470
1589
  :param dict [params]: extra parameters specific to the exchange API endpoint
1471
1590
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -1505,8 +1624,10 @@ class bitstamp(Exchange, ImplicitAPI):
1505
1624
  def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
1506
1625
  """
1507
1626
  fetch all trades made by the user
1508
- :see: https://www.bitstamp.net/api/#tag/Transactions-private/operation/GetUserTransactions
1509
- :see: https://www.bitstamp.net/api/#tag/Transactions-private/operation/GetUserTransactionsForMarket
1627
+
1628
+ https://www.bitstamp.net/api/#tag/Transactions-private/operation/GetUserTransactions
1629
+ https://www.bitstamp.net/api/#tag/Transactions-private/operation/GetUserTransactionsForMarket
1630
+
1510
1631
  :param str symbol: unified market symbol
1511
1632
  :param int [since]: the earliest time in ms to fetch trades for
1512
1633
  :param int [limit]: the maximum number of trades structures to retrieve
@@ -1530,7 +1651,9 @@ class bitstamp(Exchange, ImplicitAPI):
1530
1651
  def fetch_deposits_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
1531
1652
  """
1532
1653
  fetch history of deposits and withdrawals
1533
- :see: https://www.bitstamp.net/api/#tag/Transactions-private/operation/GetUserTransactions
1654
+
1655
+ https://www.bitstamp.net/api/#tag/Transactions-private/operation/GetUserTransactions
1656
+
1534
1657
  :param str [code]: unified currency code for the currency of the deposit/withdrawals, default is None
1535
1658
  :param int [since]: timestamp in ms of the earliest deposit/withdrawal, default is None
1536
1659
  :param int [limit]: max number of deposit/withdrawals to return, default is None
@@ -1577,7 +1700,9 @@ class bitstamp(Exchange, ImplicitAPI):
1577
1700
  def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
1578
1701
  """
1579
1702
  fetch all withdrawals made from an account
1580
- :see: https://www.bitstamp.net/api/#tag/Withdrawals/operation/GetWithdrawalRequests
1703
+
1704
+ https://www.bitstamp.net/api/#tag/Withdrawals/operation/GetWithdrawalRequests
1705
+
1581
1706
  :param str code: unified currency code
1582
1707
  :param int [since]: the earliest time in ms to fetch withdrawals for
1583
1708
  :param int [limit]: the maximum number of withdrawals structures to retrieve
@@ -1821,7 +1946,6 @@ class bitstamp(Exchange, ImplicitAPI):
1821
1946
  'postOnly': None,
1822
1947
  'side': side,
1823
1948
  'price': price,
1824
- 'stopPrice': None,
1825
1949
  'triggerPrice': None,
1826
1950
  'cost': None,
1827
1951
  'amount': amount,
@@ -1842,7 +1966,7 @@ class bitstamp(Exchange, ImplicitAPI):
1842
1966
  }
1843
1967
  return self.safe_string(types, type, type)
1844
1968
 
1845
- def parse_ledger_entry(self, item: dict, currency: Currency = None):
1969
+ def parse_ledger_entry(self, item: dict, currency: Currency = None) -> LedgerEntry:
1846
1970
  #
1847
1971
  # [
1848
1972
  # {
@@ -1883,9 +2007,9 @@ class bitstamp(Exchange, ImplicitAPI):
1883
2007
  if market is None:
1884
2008
  market = self.get_market_from_trade(item)
1885
2009
  direction = 'in' if (parsedTrade['side'] == 'buy') else 'out'
1886
- return {
1887
- 'id': parsedTrade['id'],
2010
+ return self.safe_ledger_entry({
1888
2011
  'info': item,
2012
+ 'id': parsedTrade['id'],
1889
2013
  'timestamp': parsedTrade['timestamp'],
1890
2014
  'datetime': parsedTrade['datetime'],
1891
2015
  'direction': direction,
@@ -1899,7 +2023,7 @@ class bitstamp(Exchange, ImplicitAPI):
1899
2023
  'after': None,
1900
2024
  'status': 'ok',
1901
2025
  'fee': parsedTrade['fee'],
1902
- }
2026
+ }, currency)
1903
2027
  else:
1904
2028
  parsedTransaction = self.parse_transaction(item, currency)
1905
2029
  direction = None
@@ -1911,9 +2035,9 @@ class bitstamp(Exchange, ImplicitAPI):
1911
2035
  currency = self.currency(currencyCode)
1912
2036
  amount = self.safe_string(item, currency['id'])
1913
2037
  direction = 'in' if Precise.string_gt(amount, '0') else 'out'
1914
- return {
1915
- 'id': parsedTransaction['id'],
2038
+ return self.safe_ledger_entry({
1916
2039
  'info': item,
2040
+ 'id': parsedTransaction['id'],
1917
2041
  'timestamp': parsedTransaction['timestamp'],
1918
2042
  'datetime': parsedTransaction['datetime'],
1919
2043
  'direction': direction,
@@ -1927,17 +2051,19 @@ class bitstamp(Exchange, ImplicitAPI):
1927
2051
  'after': None,
1928
2052
  'status': parsedTransaction['status'],
1929
2053
  'fee': parsedTransaction['fee'],
1930
- }
2054
+ }, currency)
1931
2055
 
1932
- def fetch_ledger(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
2056
+ def fetch_ledger(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[LedgerEntry]:
1933
2057
  """
1934
- fetch the history of changes, actions done by the user or operations that altered balance of the user
1935
- :see: https://www.bitstamp.net/api/#tag/Transactions-private/operation/GetUserTransactions
1936
- :param str code: unified currency code, default is None
2058
+ fetch the history of changes, actions done by the user or operations that altered the balance of the user
2059
+
2060
+ https://www.bitstamp.net/api/#tag/Transactions-private/operation/GetUserTransactions
2061
+
2062
+ :param str [code]: unified currency code, default is None
1937
2063
  :param int [since]: timestamp in ms of the earliest ledger entry, default is None
1938
- :param int [limit]: max number of ledger entrys to return, default is None
2064
+ :param int [limit]: max number of ledger entries to return, default is None
1939
2065
  :param dict [params]: extra parameters specific to the exchange API endpoint
1940
- :returns dict: a `ledger structure <https://docs.ccxt.com/#/?id=ledger-structure>`
2066
+ :returns dict: a `ledger structure <https://docs.ccxt.com/#/?id=ledger>`
1941
2067
  """
1942
2068
  self.load_markets()
1943
2069
  request: dict = {}
@@ -1952,8 +2078,10 @@ class bitstamp(Exchange, ImplicitAPI):
1952
2078
  def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
1953
2079
  """
1954
2080
  fetch all unfilled currently open orders
1955
- :see: https://www.bitstamp.net/api/#tag/Orders/operation/GetAllOpenOrders
1956
- :see: https://www.bitstamp.net/api/#tag/Orders/operation/GetOpenOrdersForMarket
2081
+
2082
+ https://www.bitstamp.net/api/#tag/Orders/operation/GetAllOpenOrders
2083
+ https://www.bitstamp.net/api/#tag/Orders/operation/GetOpenOrdersForMarket
2084
+
1957
2085
  :param str symbol: unified market symbol
1958
2086
  :param int [since]: the earliest time in ms to fetch open orders for
1959
2087
  :param int [limit]: the maximum number of open orders structures to retrieve
@@ -1985,7 +2113,7 @@ class bitstamp(Exchange, ImplicitAPI):
1985
2113
 
1986
2114
  def get_currency_name(self, code):
1987
2115
  """
1988
- * @ignore
2116
+ @ignore
1989
2117
  :param str code: Unified currency code
1990
2118
  :returns str: lowercase version of code
1991
2119
  """
@@ -1994,10 +2122,12 @@ class bitstamp(Exchange, ImplicitAPI):
1994
2122
  def is_fiat(self, code):
1995
2123
  return code == 'USD' or code == 'EUR' or code == 'GBP'
1996
2124
 
1997
- def fetch_deposit_address(self, code: str, params={}):
2125
+ def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
1998
2126
  """
1999
2127
  fetch the deposit address for a currency associated with self account
2000
- :see: https://www.bitstamp.net/api/#tag/Deposits/operation/GetCryptoDepositAddress
2128
+
2129
+ https://www.bitstamp.net/api/#tag/Deposits/operation/GetCryptoDepositAddress
2130
+
2001
2131
  :param str code: unified currency code
2002
2132
  :param dict [params]: extra parameters specific to the exchange API endpoint
2003
2133
  :returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
@@ -2011,18 +2141,20 @@ class bitstamp(Exchange, ImplicitAPI):
2011
2141
  tag = self.safe_string_2(response, 'memo_id', 'destination_tag')
2012
2142
  self.check_address(address)
2013
2143
  return {
2144
+ 'info': response,
2014
2145
  'currency': code,
2146
+ 'network': None,
2015
2147
  'address': address,
2016
2148
  'tag': tag,
2017
- 'network': None,
2018
- 'info': response,
2019
2149
  }
2020
2150
 
2021
- def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
2151
+ def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
2022
2152
  """
2023
2153
  make a withdrawal
2024
- :see: https://www.bitstamp.net/api/#tag/Withdrawals/operation/RequestFiatWithdrawal
2025
- :see: https://www.bitstamp.net/api/#tag/Withdrawals/operation/RequestCryptoWithdrawal
2154
+
2155
+ https://www.bitstamp.net/api/#tag/Withdrawals/operation/RequestFiatWithdrawal
2156
+ https://www.bitstamp.net/api/#tag/Withdrawals/operation/RequestCryptoWithdrawal
2157
+
2026
2158
  :param str code: unified currency code
2027
2159
  :param float amount: the amount to withdraw
2028
2160
  :param str address: the address to withdraw to
@@ -2061,8 +2193,10 @@ class bitstamp(Exchange, ImplicitAPI):
2061
2193
  def transfer(self, code: str, amount: float, fromAccount: str, toAccount: str, params={}) -> TransferEntry:
2062
2194
  """
2063
2195
  transfer currency internally between wallets on the same account
2064
- :see: https://www.bitstamp.net/api/#tag/Sub-account/operation/TransferFromMainToSub
2065
- :see: https://www.bitstamp.net/api/#tag/Sub-account/operation/TransferFromSubToMain
2196
+
2197
+ https://www.bitstamp.net/api/#tag/Sub-account/operation/TransferFromMainToSub
2198
+ https://www.bitstamp.net/api/#tag/Sub-account/operation/TransferFromSubToMain
2199
+
2066
2200
  :param str code: unified currency code
2067
2201
  :param float amount: amount to transfer
2068
2202
  :param str fromAccount: account to transfer from