ccxt-ir 4.3.46.0.2__py2.py3-none-any.whl → 4.5.0__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. ccxt/__init__.py +39 -35
  2. ccxt/abantether.py +9 -9
  3. ccxt/abstract/alpaca.py +4 -0
  4. ccxt/abstract/apex.py +31 -0
  5. ccxt/abstract/bigone.py +1 -1
  6. ccxt/abstract/binance.py +106 -48
  7. ccxt/abstract/binancecoinm.py +106 -48
  8. ccxt/abstract/binanceus.py +141 -83
  9. ccxt/abstract/binanceusdm.py +106 -48
  10. ccxt/abstract/bingx.py +50 -1
  11. ccxt/abstract/bitbank.py +5 -0
  12. ccxt/abstract/bitfinex.py +136 -65
  13. ccxt/abstract/bitflyer.py +1 -0
  14. ccxt/abstract/bitget.py +67 -0
  15. ccxt/abstract/bitmart.py +19 -1
  16. ccxt/abstract/bitopro.py +1 -0
  17. ccxt/abstract/bitrue.py +68 -68
  18. ccxt/abstract/bitstamp.py +1 -0
  19. ccxt/abstract/blofin.py +30 -0
  20. ccxt/abstract/btcbox.py +2 -0
  21. ccxt/abstract/bybit.py +28 -13
  22. ccxt/abstract/cex.py +28 -29
  23. ccxt/abstract/coinbaseexchange.py +1 -0
  24. ccxt/abstract/coinbaseinternational.py +1 -1
  25. ccxt/abstract/cryptocom.py +16 -0
  26. ccxt/abstract/cryptomus.py +20 -0
  27. ccxt/abstract/defx.py +69 -0
  28. ccxt/abstract/deribit.py +1 -0
  29. ccxt/abstract/derive.py +117 -0
  30. ccxt/abstract/digifinex.py +1 -0
  31. ccxt/abstract/ellipx.py +25 -0
  32. ccxt/abstract/foxbit.py +26 -0
  33. ccxt/abstract/gate.py +19 -0
  34. ccxt/abstract/gateio.py +19 -0
  35. ccxt/abstract/gemini.py +1 -0
  36. ccxt/abstract/hibachi.py +26 -0
  37. ccxt/abstract/hyperliquid.py +1 -1
  38. ccxt/abstract/independentreserve.py +6 -0
  39. ccxt/abstract/kraken.py +1 -0
  40. ccxt/abstract/krakenfutures.py +4 -0
  41. ccxt/abstract/kucoin.py +10 -0
  42. ccxt/abstract/kucoinfutures.py +18 -0
  43. ccxt/abstract/lbank.py +2 -1
  44. ccxt/abstract/luno.py +1 -0
  45. ccxt/abstract/mexc.py +2 -0
  46. ccxt/abstract/modetrade.py +119 -0
  47. ccxt/abstract/myokx.py +349 -0
  48. ccxt/abstract/oceanex.py +5 -0
  49. ccxt/abstract/okx.py +25 -0
  50. ccxt/abstract/okxus.py +349 -0
  51. ccxt/abstract/onetrading.py +0 -12
  52. ccxt/abstract/paradex.py +23 -0
  53. ccxt/abstract/phemex.py +2 -0
  54. ccxt/abstract/poloniex.py +36 -0
  55. ccxt/abstract/tradeogre.py +3 -1
  56. ccxt/abstract/upbit.py +51 -34
  57. ccxt/abstract/whitebit.py +16 -0
  58. ccxt/abstract/woo.py +64 -6
  59. ccxt/abstract/xt.py +10 -5
  60. ccxt/afratether.py +7 -7
  61. ccxt/alpaca.py +828 -51
  62. ccxt/apex.py +1875 -0
  63. ccxt/arzinja.py +7 -7
  64. ccxt/arzplus.py +9 -9
  65. ccxt/ascendex.py +501 -306
  66. ccxt/async_support/__init__.py +39 -35
  67. ccxt/async_support/abantether.py +10 -10
  68. ccxt/async_support/afratether.py +9 -9
  69. ccxt/async_support/alpaca.py +828 -51
  70. ccxt/async_support/apex.py +1875 -0
  71. ccxt/async_support/arzinja.py +10 -10
  72. ccxt/async_support/arzplus.py +12 -12
  73. ccxt/async_support/ascendex.py +502 -306
  74. ccxt/async_support/base/exchange.py +303 -89
  75. ccxt/async_support/base/ws/cache.py +9 -3
  76. ccxt/async_support/base/ws/client.py +173 -38
  77. ccxt/async_support/base/ws/future.py +25 -37
  78. ccxt/async_support/bequant.py +5 -3
  79. ccxt/async_support/bigone.py +279 -144
  80. ccxt/async_support/binance.py +2347 -1158
  81. ccxt/async_support/binancecoinm.py +9 -3
  82. ccxt/async_support/binanceus.py +17 -3
  83. ccxt/async_support/binanceusdm.py +9 -4
  84. ccxt/async_support/bingx.py +2962 -920
  85. ccxt/async_support/bit2c.py +147 -27
  86. ccxt/async_support/bitbank.py +151 -23
  87. ccxt/async_support/bitbns.py +104 -30
  88. ccxt/async_support/bitfinex.py +3291 -1113
  89. ccxt/async_support/bitflyer.py +202 -27
  90. ccxt/async_support/bitget.py +3683 -1538
  91. ccxt/async_support/bithumb.py +195 -38
  92. ccxt/async_support/bitimen.py +12 -12
  93. ccxt/async_support/bitir.py +38 -38
  94. ccxt/async_support/bitmart.py +1288 -350
  95. ccxt/async_support/bitmex.py +260 -75
  96. ccxt/async_support/bitopro.py +262 -62
  97. ccxt/async_support/bitpin.py +17 -16
  98. ccxt/async_support/bitrue.py +459 -290
  99. ccxt/async_support/bitso.py +199 -54
  100. ccxt/async_support/bitstamp.py +230 -96
  101. ccxt/async_support/bitteam.py +167 -25
  102. ccxt/async_support/{huobijp.py → bittrade.py} +158 -30
  103. ccxt/async_support/bitvavo.py +213 -49
  104. ccxt/async_support/blockchaincom.py +160 -46
  105. ccxt/async_support/blofin.py +502 -120
  106. ccxt/async_support/btcalpha.py +169 -31
  107. ccxt/async_support/btcbox.py +292 -23
  108. ccxt/async_support/btcmarkets.py +211 -58
  109. ccxt/async_support/btcturk.py +161 -38
  110. ccxt/async_support/bybit.py +1775 -1030
  111. ccxt/async_support/cex.py +1440 -1303
  112. ccxt/async_support/coinbase.py +724 -212
  113. ccxt/async_support/coinbaseadvanced.py +2 -1
  114. ccxt/async_support/coinbaseexchange.py +388 -89
  115. ccxt/async_support/coinbaseinternational.py +412 -57
  116. ccxt/async_support/coincatch.py +177 -78
  117. ccxt/async_support/coincheck.py +135 -19
  118. ccxt/async_support/coinex.py +606 -232
  119. ccxt/async_support/coinmate.py +189 -63
  120. ccxt/async_support/coinmetro.py +195 -54
  121. ccxt/async_support/coinone.py +158 -51
  122. ccxt/async_support/coinsph.py +336 -61
  123. ccxt/async_support/coinspot.py +151 -52
  124. ccxt/async_support/cryptocom.py +661 -111
  125. ccxt/async_support/cryptomus.py +1137 -0
  126. ccxt/async_support/defx.py +2071 -0
  127. ccxt/async_support/delta.py +299 -99
  128. ccxt/async_support/deribit.py +348 -126
  129. ccxt/async_support/derive.py +2572 -0
  130. ccxt/async_support/digifinex.py +430 -214
  131. ccxt/async_support/ellipx.py +2029 -0
  132. ccxt/async_support/eterex.py +10 -10
  133. ccxt/async_support/excoino.py +31 -31
  134. ccxt/async_support/exir.py +14 -14
  135. ccxt/async_support/exmo.py +344 -131
  136. ccxt/async_support/exnovin.py +10 -10
  137. ccxt/async_support/farhadexchange.py +12 -12
  138. ccxt/async_support/fmfwio.py +2 -1
  139. ccxt/async_support/foxbit.py +1935 -0
  140. ccxt/async_support/gate.py +1351 -529
  141. ccxt/async_support/gateio.py +2 -1
  142. ccxt/async_support/gemini.py +144 -39
  143. ccxt/async_support/hashkey.py +152 -109
  144. ccxt/async_support/hibachi.py +2080 -0
  145. ccxt/async_support/hitbtc.py +395 -167
  146. ccxt/async_support/hitobit.py +12 -12
  147. ccxt/async_support/hollaex.py +307 -119
  148. ccxt/async_support/htx.py +851 -383
  149. ccxt/async_support/huobi.py +2 -1
  150. ccxt/async_support/hyperliquid.py +1848 -536
  151. ccxt/async_support/independentreserve.py +288 -15
  152. ccxt/async_support/indodax.py +190 -33
  153. ccxt/async_support/jibitex.py +12 -12
  154. ccxt/async_support/kraken.py +795 -351
  155. ccxt/async_support/krakenfutures.py +214 -62
  156. ccxt/async_support/kucoin.py +715 -396
  157. ccxt/async_support/kucoinfutures.py +652 -89
  158. ccxt/async_support/latoken.py +217 -113
  159. ccxt/async_support/lbank.py +425 -97
  160. ccxt/async_support/luno.py +382 -35
  161. ccxt/async_support/mercado.py +113 -6
  162. ccxt/async_support/mexc.py +874 -437
  163. ccxt/async_support/modetrade.py +2818 -0
  164. ccxt/async_support/myokx.py +54 -0
  165. ccxt/async_support/ndax.py +221 -64
  166. ccxt/async_support/nobitex.py +31 -37
  167. ccxt/async_support/novadax.py +190 -34
  168. ccxt/async_support/oceanex.py +217 -28
  169. ccxt/async_support/okcoin.py +253 -145
  170. ccxt/async_support/okexchange.py +11 -11
  171. ccxt/async_support/okx.py +1088 -351
  172. ccxt/async_support/okxus.py +54 -0
  173. ccxt/async_support/ompfinex.py +25 -24
  174. ccxt/async_support/onetrading.py +213 -392
  175. ccxt/async_support/oxfun.py +245 -166
  176. ccxt/async_support/p2b.py +151 -29
  177. ccxt/async_support/paradex.py +562 -49
  178. ccxt/async_support/paymium.py +82 -19
  179. ccxt/async_support/phemex.py +713 -172
  180. ccxt/async_support/poloniex.py +1602 -283
  181. ccxt/async_support/probit.py +224 -95
  182. ccxt/async_support/ramzinex.py +30 -27
  183. ccxt/async_support/sarmayex.py +9 -9
  184. ccxt/async_support/sarrafex.py +13 -13
  185. ccxt/async_support/tabdeal.py +14 -13
  186. ccxt/async_support/tetherland.py +9 -9
  187. ccxt/async_support/timex.py +210 -51
  188. ccxt/async_support/tokocrypto.py +167 -47
  189. ccxt/async_support/tradeogre.py +266 -31
  190. ccxt/async_support/twox.py +9 -9
  191. ccxt/async_support/ubitex.py +12 -12
  192. ccxt/async_support/upbit.py +568 -165
  193. ccxt/async_support/vertex.py +160 -32
  194. ccxt/async_support/wallex.py +12 -12
  195. ccxt/async_support/wavesexchange.py +165 -30
  196. ccxt/async_support/whitebit.py +975 -127
  197. ccxt/async_support/woo.py +1918 -1016
  198. ccxt/async_support/woofipro.py +433 -141
  199. ccxt/async_support/xt.py +649 -193
  200. ccxt/async_support/yobit.py +195 -70
  201. ccxt/async_support/zaif.py +91 -15
  202. ccxt/async_support/zonda.py +151 -36
  203. ccxt/base/decimal_to_precision.py +14 -10
  204. ccxt/base/errors.py +49 -18
  205. ccxt/base/exchange.py +1556 -450
  206. ccxt/base/precise.py +10 -0
  207. ccxt/base/types.py +114 -6
  208. ccxt/bequant.py +5 -3
  209. ccxt/bigone.py +279 -144
  210. ccxt/binance.py +2347 -1158
  211. ccxt/binancecoinm.py +9 -3
  212. ccxt/binanceus.py +17 -3
  213. ccxt/binanceusdm.py +9 -4
  214. ccxt/bingx.py +2962 -920
  215. ccxt/bit2c.py +147 -27
  216. ccxt/bitbank.py +151 -23
  217. ccxt/bitbns.py +104 -30
  218. ccxt/bitfinex.py +3290 -1113
  219. ccxt/bitflyer.py +202 -27
  220. ccxt/bitget.py +3683 -1538
  221. ccxt/bithumb.py +194 -38
  222. ccxt/bitimen.py +9 -9
  223. ccxt/bitir.py +35 -35
  224. ccxt/bitmart.py +1288 -350
  225. ccxt/bitmex.py +260 -75
  226. ccxt/bitopro.py +262 -62
  227. ccxt/bitpin.py +15 -14
  228. ccxt/bitrue.py +459 -290
  229. ccxt/bitso.py +199 -54
  230. ccxt/bitstamp.py +230 -96
  231. ccxt/bitteam.py +167 -25
  232. ccxt/{huobijp.py → bittrade.py} +158 -30
  233. ccxt/bitvavo.py +213 -49
  234. ccxt/blockchaincom.py +160 -46
  235. ccxt/blofin.py +502 -120
  236. ccxt/btcalpha.py +169 -31
  237. ccxt/btcbox.py +291 -23
  238. ccxt/btcmarkets.py +211 -58
  239. ccxt/btcturk.py +161 -38
  240. ccxt/bybit.py +1775 -1030
  241. ccxt/cex.py +1439 -1303
  242. ccxt/coinbase.py +724 -212
  243. ccxt/coinbaseadvanced.py +2 -1
  244. ccxt/coinbaseexchange.py +388 -89
  245. ccxt/coinbaseinternational.py +412 -57
  246. ccxt/coincatch.py +177 -78
  247. ccxt/coincheck.py +135 -19
  248. ccxt/coinex.py +606 -232
  249. ccxt/coinmate.py +189 -63
  250. ccxt/coinmetro.py +194 -54
  251. ccxt/coinone.py +158 -51
  252. ccxt/coinsph.py +336 -61
  253. ccxt/coinspot.py +151 -52
  254. ccxt/cryptocom.py +661 -111
  255. ccxt/cryptomus.py +1137 -0
  256. ccxt/defx.py +2070 -0
  257. ccxt/delta.py +299 -99
  258. ccxt/deribit.py +348 -126
  259. ccxt/derive.py +2571 -0
  260. ccxt/digifinex.py +430 -214
  261. ccxt/ellipx.py +2029 -0
  262. ccxt/eterex.py +7 -7
  263. ccxt/excoino.py +29 -29
  264. ccxt/exir.py +11 -11
  265. ccxt/exmo.py +343 -131
  266. ccxt/exnovin.py +8 -8
  267. ccxt/farhadexchange.py +10 -10
  268. ccxt/fmfwio.py +2 -1
  269. ccxt/foxbit.py +1935 -0
  270. ccxt/gate.py +1351 -529
  271. ccxt/gateio.py +2 -1
  272. ccxt/gemini.py +144 -39
  273. ccxt/hashkey.py +152 -109
  274. ccxt/hibachi.py +2079 -0
  275. ccxt/hitbtc.py +395 -167
  276. ccxt/hitobit.py +9 -9
  277. ccxt/hollaex.py +307 -119
  278. ccxt/htx.py +851 -383
  279. ccxt/huobi.py +2 -1
  280. ccxt/hyperliquid.py +1848 -536
  281. ccxt/independentreserve.py +287 -15
  282. ccxt/indodax.py +190 -33
  283. ccxt/jibitex.py +9 -9
  284. ccxt/kraken.py +794 -351
  285. ccxt/krakenfutures.py +214 -62
  286. ccxt/kucoin.py +715 -396
  287. ccxt/kucoinfutures.py +652 -89
  288. ccxt/latoken.py +217 -113
  289. ccxt/lbank.py +425 -97
  290. ccxt/luno.py +382 -35
  291. ccxt/mercado.py +113 -6
  292. ccxt/mexc.py +873 -437
  293. ccxt/modetrade.py +2818 -0
  294. ccxt/myokx.py +54 -0
  295. ccxt/ndax.py +221 -64
  296. ccxt/nobitex.py +29 -35
  297. ccxt/novadax.py +190 -34
  298. ccxt/oceanex.py +217 -28
  299. ccxt/okcoin.py +253 -145
  300. ccxt/okexchange.py +9 -9
  301. ccxt/okx.py +1088 -351
  302. ccxt/okxus.py +54 -0
  303. ccxt/ompfinex.py +22 -21
  304. ccxt/onetrading.py +213 -392
  305. ccxt/oxfun.py +245 -166
  306. ccxt/p2b.py +151 -29
  307. ccxt/paradex.py +562 -49
  308. ccxt/paymium.py +82 -19
  309. ccxt/phemex.py +712 -172
  310. ccxt/poloniex.py +1601 -283
  311. ccxt/pro/__init__.py +76 -17
  312. ccxt/pro/alpaca.py +21 -6
  313. ccxt/pro/apex.py +984 -0
  314. ccxt/pro/ascendex.py +58 -10
  315. ccxt/pro/bequant.py +6 -1
  316. ccxt/pro/binance.py +728 -156
  317. ccxt/pro/binancecoinm.py +6 -2
  318. ccxt/pro/binanceus.py +8 -4
  319. ccxt/pro/binanceusdm.py +7 -2
  320. ccxt/pro/bingx.py +333 -142
  321. ccxt/pro/bitfinex.py +727 -262
  322. ccxt/pro/bitget.py +570 -79
  323. ccxt/pro/bithumb.py +20 -6
  324. ccxt/pro/bitmart.py +216 -87
  325. ccxt/pro/bitmex.py +47 -9
  326. ccxt/pro/bitopro.py +26 -14
  327. ccxt/pro/bitrue.py +22 -22
  328. ccxt/pro/bitstamp.py +54 -21
  329. ccxt/pro/{huobijp.py → bittrade.py} +7 -6
  330. ccxt/pro/bitvavo.py +191 -67
  331. ccxt/pro/blockchaincom.py +21 -8
  332. ccxt/pro/blofin.py +9 -1
  333. ccxt/pro/bybit.py +632 -245
  334. ccxt/pro/cex.py +59 -24
  335. ccxt/pro/coinbase.py +102 -73
  336. ccxt/pro/coinbaseadvanced.py +2 -1
  337. ccxt/pro/coinbaseexchange.py +8 -8
  338. ccxt/pro/coinbaseinternational.py +181 -25
  339. ccxt/pro/coincatch.py +6 -7
  340. ccxt/pro/coincheck.py +11 -6
  341. ccxt/pro/coinex.py +967 -665
  342. ccxt/pro/coinone.py +16 -9
  343. ccxt/pro/cryptocom.py +448 -45
  344. ccxt/pro/defx.py +831 -0
  345. ccxt/pro/deribit.py +150 -14
  346. ccxt/pro/derive.py +704 -0
  347. ccxt/pro/exmo.py +239 -6
  348. ccxt/pro/gate.py +623 -65
  349. ccxt/pro/gateio.py +2 -1
  350. ccxt/pro/gemini.py +27 -11
  351. ccxt/pro/hashkey.py +2 -2
  352. ccxt/pro/hitbtc.py +196 -91
  353. ccxt/pro/hollaex.py +23 -7
  354. ccxt/pro/htx.py +51 -14
  355. ccxt/pro/huobi.py +2 -1
  356. ccxt/pro/hyperliquid.py +591 -27
  357. ccxt/pro/independentreserve.py +9 -6
  358. ccxt/pro/kraken.py +640 -320
  359. ccxt/pro/krakenfutures.py +62 -35
  360. ccxt/pro/kucoin.py +267 -46
  361. ccxt/pro/kucoinfutures.py +165 -21
  362. ccxt/pro/lbank.py +102 -21
  363. ccxt/pro/luno.py +12 -8
  364. ccxt/pro/mexc.py +877 -111
  365. ccxt/pro/modetrade.py +1271 -0
  366. ccxt/pro/myokx.py +38 -0
  367. ccxt/pro/ndax.py +15 -2
  368. ccxt/pro/okcoin.py +23 -4
  369. ccxt/pro/okx.py +573 -98
  370. ccxt/pro/okxus.py +38 -0
  371. ccxt/pro/onetrading.py +30 -13
  372. ccxt/pro/oxfun.py +131 -27
  373. ccxt/pro/p2b.py +88 -22
  374. ccxt/pro/paradex.py +3 -3
  375. ccxt/pro/phemex.py +75 -21
  376. ccxt/pro/poloniex.py +124 -41
  377. ccxt/pro/probit.py +87 -80
  378. ccxt/pro/tradeogre.py +272 -0
  379. ccxt/pro/upbit.py +152 -12
  380. ccxt/pro/vertex.py +8 -3
  381. ccxt/pro/whitebit.py +58 -5
  382. ccxt/pro/woo.py +228 -37
  383. ccxt/pro/woofipro.py +106 -18
  384. ccxt/pro/xt.py +111 -5
  385. ccxt/probit.py +224 -95
  386. ccxt/protobuf/__init__.py +0 -0
  387. ccxt/protobuf/mexc/PrivateAccountV3Api_pb2.py +37 -0
  388. ccxt/protobuf/mexc/PrivateDealsV3Api_pb2.py +37 -0
  389. ccxt/protobuf/mexc/PrivateOrdersV3Api_pb2.py +37 -0
  390. ccxt/protobuf/mexc/PublicAggreBookTickerV3Api_pb2.py +37 -0
  391. ccxt/protobuf/mexc/PublicAggreDealsV3Api_pb2.py +39 -0
  392. ccxt/protobuf/mexc/PublicAggreDepthsV3Api_pb2.py +39 -0
  393. ccxt/protobuf/mexc/PublicBookTickerBatchV3Api_pb2.py +38 -0
  394. ccxt/protobuf/mexc/PublicBookTickerV3Api_pb2.py +37 -0
  395. ccxt/protobuf/mexc/PublicDealsV3Api_pb2.py +39 -0
  396. ccxt/protobuf/mexc/PublicIncreaseDepthsBatchV3Api_pb2.py +38 -0
  397. ccxt/protobuf/mexc/PublicIncreaseDepthsV3Api_pb2.py +39 -0
  398. ccxt/protobuf/mexc/PublicLimitDepthsV3Api_pb2.py +39 -0
  399. ccxt/protobuf/mexc/PublicMiniTickerV3Api_pb2.py +37 -0
  400. ccxt/protobuf/mexc/PublicMiniTickersV3Api_pb2.py +38 -0
  401. ccxt/protobuf/mexc/PublicSpotKlineV3Api_pb2.py +37 -0
  402. ccxt/protobuf/mexc/PushDataV3ApiWrapper_pb2.py +52 -0
  403. ccxt/protobuf/mexc/__init__.py +0 -0
  404. ccxt/ramzinex.py +28 -25
  405. ccxt/sarmayex.py +7 -7
  406. ccxt/sarrafex.py +10 -10
  407. ccxt/static_dependencies/__init__.py +1 -1
  408. ccxt/static_dependencies/lark/py.typed +0 -0
  409. ccxt/static_dependencies/marshmallow/py.typed +0 -0
  410. ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  411. ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  412. ccxt/tabdeal.py +12 -11
  413. ccxt/test/tests_async.py +261 -57
  414. ccxt/test/tests_helpers.py +1 -3
  415. ccxt/test/tests_init.py +4 -3
  416. ccxt/test/tests_sync.py +261 -57
  417. ccxt/tetherland.py +7 -7
  418. ccxt/timex.py +210 -51
  419. ccxt/tokocrypto.py +167 -47
  420. ccxt/tradeogre.py +266 -31
  421. ccxt/twox.py +7 -7
  422. ccxt/ubitex.py +9 -9
  423. ccxt/upbit.py +568 -165
  424. ccxt/vertex.py +160 -32
  425. ccxt/wallex.py +9 -9
  426. ccxt/wavesexchange.py +165 -30
  427. ccxt/whitebit.py +975 -127
  428. ccxt/woo.py +1917 -1016
  429. ccxt/woofipro.py +432 -141
  430. ccxt/xt.py +649 -193
  431. ccxt/yobit.py +194 -70
  432. ccxt/zaif.py +91 -15
  433. ccxt/zonda.py +151 -36
  434. {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info}/METADATA +225 -73
  435. ccxt_ir-4.5.0.dist-info/RECORD +743 -0
  436. {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info}/WHEEL +1 -1
  437. ccxt/abstract/ace.py +0 -15
  438. ccxt/abstract/bitbay.py +0 -53
  439. ccxt/abstract/bitcoincom.py +0 -115
  440. ccxt/abstract/bitfinex2.py +0 -139
  441. ccxt/abstract/bitpanda.py +0 -35
  442. ccxt/abstract/bl3p.py +0 -19
  443. ccxt/abstract/coinlist.py +0 -54
  444. ccxt/abstract/currencycom.py +0 -68
  445. ccxt/abstract/hitbtc3.py +0 -115
  446. ccxt/abstract/idex.py +0 -26
  447. ccxt/abstract/kuna.py +0 -182
  448. ccxt/abstract/lykke.py +0 -29
  449. ccxt/abstract/poloniexfutures.py +0 -48
  450. ccxt/abstract/wazirx.py +0 -30
  451. ccxt/ace.py +0 -1012
  452. ccxt/async_support/ace.py +0 -1012
  453. ccxt/async_support/base/ws/aiohttp_client.py +0 -125
  454. ccxt/async_support/base/ws/fast_client.py +0 -96
  455. ccxt/async_support/bitbay.py +0 -17
  456. ccxt/async_support/bitcoincom.py +0 -17
  457. ccxt/async_support/bitfinex2.py +0 -3552
  458. ccxt/async_support/bitpanda.py +0 -16
  459. ccxt/async_support/bl3p.py +0 -485
  460. ccxt/async_support/coinlist.py +0 -2243
  461. ccxt/async_support/currencycom.py +0 -1950
  462. ccxt/async_support/hitbtc3.py +0 -16
  463. ccxt/async_support/idex.py +0 -1766
  464. ccxt/async_support/kuna.py +0 -1841
  465. ccxt/async_support/lykke.py +0 -1270
  466. ccxt/async_support/poloniexfutures.py +0 -1717
  467. ccxt/async_support/wazirx.py +0 -1224
  468. ccxt/bitbay.py +0 -17
  469. ccxt/bitcoincom.py +0 -17
  470. ccxt/bitfinex2.py +0 -3552
  471. ccxt/bitpanda.py +0 -16
  472. ccxt/bl3p.py +0 -485
  473. ccxt/coinlist.py +0 -2243
  474. ccxt/currencycom.py +0 -1950
  475. ccxt/hitbtc3.py +0 -16
  476. ccxt/idex.py +0 -1766
  477. ccxt/kuna.py +0 -1841
  478. ccxt/lykke.py +0 -1270
  479. ccxt/poloniexfutures.py +0 -1717
  480. ccxt/pro/bitcoincom.py +0 -34
  481. ccxt/pro/bitfinex2.py +0 -1083
  482. ccxt/pro/bitpanda.py +0 -15
  483. ccxt/pro/currencycom.py +0 -536
  484. ccxt/pro/idex.py +0 -672
  485. ccxt/pro/poloniexfutures.py +0 -990
  486. ccxt/pro/wazirx.py +0 -749
  487. ccxt/test/base/__init__.py +0 -29
  488. ccxt/test/base/test_account.py +0 -26
  489. ccxt/test/base/test_balance.py +0 -56
  490. ccxt/test/base/test_borrow_interest.py +0 -35
  491. ccxt/test/base/test_borrow_rate.py +0 -32
  492. ccxt/test/base/test_calculate_fee.py +0 -51
  493. ccxt/test/base/test_crypto.py +0 -127
  494. ccxt/test/base/test_currency.py +0 -76
  495. ccxt/test/base/test_datetime.py +0 -109
  496. ccxt/test/base/test_decimal_to_precision.py +0 -392
  497. ccxt/test/base/test_deep_extend.py +0 -68
  498. ccxt/test/base/test_deposit_withdrawal.py +0 -50
  499. ccxt/test/base/test_exchange_datetime_functions.py +0 -76
  500. ccxt/test/base/test_funding_rate_history.py +0 -29
  501. ccxt/test/base/test_last_price.py +0 -31
  502. ccxt/test/base/test_ledger_entry.py +0 -45
  503. ccxt/test/base/test_ledger_item.py +0 -48
  504. ccxt/test/base/test_leverage_tier.py +0 -33
  505. ccxt/test/base/test_liquidation.py +0 -50
  506. ccxt/test/base/test_margin_mode.py +0 -24
  507. ccxt/test/base/test_margin_modification.py +0 -35
  508. ccxt/test/base/test_market.py +0 -193
  509. ccxt/test/base/test_number.py +0 -411
  510. ccxt/test/base/test_ohlcv.py +0 -33
  511. ccxt/test/base/test_open_interest.py +0 -32
  512. ccxt/test/base/test_order.py +0 -64
  513. ccxt/test/base/test_order_book.py +0 -69
  514. ccxt/test/base/test_position.py +0 -60
  515. ccxt/test/base/test_shared_methods.py +0 -353
  516. ccxt/test/base/test_status.py +0 -24
  517. ccxt/test/base/test_throttle.py +0 -126
  518. ccxt/test/base/test_ticker.py +0 -92
  519. ccxt/test/base/test_trade.py +0 -47
  520. ccxt/test/base/test_trading_fee.py +0 -26
  521. ccxt/test/base/test_transaction.py +0 -39
  522. ccxt/test/test_async.py +0 -1649
  523. ccxt/test/test_sync.py +0 -1648
  524. ccxt/wazirx.py +0 -1224
  525. ccxt_ir-4.3.46.0.2.dist-info/RECORD +0 -772
  526. /ccxt/abstract/{huobijp.py → bittrade.py} +0 -0
  527. {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info/licenses}/LICENSE.txt +0 -0
  528. {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info}/top_level.txt +0 -0
ccxt/btcbox.py CHANGED
@@ -7,7 +7,7 @@ from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.btcbox import ImplicitAPI
8
8
  import hashlib
9
9
  import json
10
- from ccxt.base.types import Balances, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade
10
+ from ccxt.base.types import Any, Balances, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import AuthenticationError
@@ -23,7 +23,7 @@ from ccxt.base.precise import Precise
23
23
 
24
24
  class btcbox(Exchange, ImplicitAPI):
25
25
 
26
- def describe(self):
26
+ def describe(self) -> Any:
27
27
  return self.deep_extend(super(btcbox, self).describe(), {
28
28
  'id': 'btcbox',
29
29
  'name': 'BtcBox',
@@ -39,28 +39,57 @@ class btcbox(Exchange, ImplicitAPI):
39
39
  'future': False,
40
40
  'option': False,
41
41
  'addMargin': False,
42
+ 'borrowCrossMargin': False,
43
+ 'borrowIsolatedMargin': False,
44
+ 'borrowMargin': False,
42
45
  'cancelOrder': True,
43
46
  'closeAllPositions': False,
44
47
  'closePosition': False,
45
48
  'createOrder': True,
49
+ 'createOrderWithTakeProfitAndStopLoss': False,
50
+ 'createOrderWithTakeProfitAndStopLossWs': False,
51
+ 'createPostOnlyOrder': False,
46
52
  'createReduceOnlyOrder': False,
47
53
  'fetchBalance': True,
54
+ 'fetchBorrowInterest': False,
55
+ 'fetchBorrowRate': False,
48
56
  'fetchBorrowRateHistories': False,
49
57
  'fetchBorrowRateHistory': False,
58
+ 'fetchBorrowRates': False,
59
+ 'fetchBorrowRatesPerSymbol': False,
50
60
  'fetchCrossBorrowRate': False,
51
61
  'fetchCrossBorrowRates': False,
52
62
  'fetchFundingHistory': False,
63
+ 'fetchFundingInterval': False,
64
+ 'fetchFundingIntervals': False,
53
65
  'fetchFundingRate': False,
54
66
  'fetchFundingRateHistory': False,
55
67
  'fetchFundingRates': False,
68
+ 'fetchGreeks': False,
56
69
  'fetchIndexOHLCV': False,
57
70
  'fetchIsolatedBorrowRate': False,
58
71
  'fetchIsolatedBorrowRates': False,
72
+ 'fetchIsolatedPositions': False,
59
73
  'fetchLeverage': False,
74
+ 'fetchLeverages': False,
75
+ 'fetchLeverageTiers': False,
76
+ 'fetchLiquidations': False,
77
+ 'fetchLongShortRatio': False,
78
+ 'fetchLongShortRatioHistory': False,
79
+ 'fetchMarginAdjustmentHistory': False,
60
80
  'fetchMarginMode': False,
81
+ 'fetchMarginModes': False,
82
+ 'fetchMarketLeverageTiers': False,
61
83
  'fetchMarkOHLCV': False,
84
+ 'fetchMarkPrices': False,
85
+ 'fetchMyLiquidations': False,
86
+ 'fetchMySettlementHistory': False,
87
+ 'fetchOpenInterest': False,
62
88
  'fetchOpenInterestHistory': False,
89
+ 'fetchOpenInterests': False,
63
90
  'fetchOpenOrders': True,
91
+ 'fetchOption': False,
92
+ 'fetchOptionChain': False,
64
93
  'fetchOrder': True,
65
94
  'fetchOrderBook': True,
66
95
  'fetchOrders': True,
@@ -72,15 +101,21 @@ class btcbox(Exchange, ImplicitAPI):
72
101
  'fetchPositionsHistory': False,
73
102
  'fetchPositionsRisk': False,
74
103
  'fetchPremiumIndexOHLCV': False,
104
+ 'fetchSettlementHistory': False,
75
105
  'fetchTicker': True,
76
- 'fetchTickers': False,
106
+ 'fetchTickers': True,
77
107
  'fetchTrades': True,
78
108
  'fetchTransfer': False,
79
109
  'fetchTransfers': False,
110
+ 'fetchVolatilityHistory': False,
80
111
  'fetchWithdrawal': False,
81
112
  'fetchWithdrawals': False,
82
113
  'reduceMargin': False,
114
+ 'repayCrossMargin': False,
115
+ 'repayIsolatedMargin': False,
116
+ 'repayMargin': False,
83
117
  'setLeverage': False,
118
+ 'setMargin': False,
84
119
  'setMarginMode': False,
85
120
  'setPositionMode': False,
86
121
  'transfer': False,
@@ -88,7 +123,7 @@ class btcbox(Exchange, ImplicitAPI):
88
123
  'ws': False,
89
124
  },
90
125
  'urls': {
91
- 'logo': 'https://user-images.githubusercontent.com/51840849/87327317-98c55400-c53c-11ea-9a11-81f7d951cc74.jpg',
126
+ 'logo': 'https://github.com/user-attachments/assets/1e2cb499-8d0f-4f8f-9464-3c015cfbc76b',
92
127
  'api': {
93
128
  'rest': 'https://www.btcbox.co.jp/api',
94
129
  },
@@ -102,6 +137,7 @@ class btcbox(Exchange, ImplicitAPI):
102
137
  'depth',
103
138
  'orders',
104
139
  'ticker',
140
+ 'tickers',
105
141
  ],
106
142
  },
107
143
  'private': {
@@ -114,12 +150,79 @@ class btcbox(Exchange, ImplicitAPI):
114
150
  'wallet',
115
151
  ],
116
152
  },
153
+ 'webApi': {
154
+ 'get': [
155
+ 'ajax/coin/coinInfo',
156
+ ],
157
+ },
117
158
  },
118
- 'markets': {
119
- 'BTC/JPY': self.safe_market_structure({'id': 'btc', 'symbol': 'BTC/JPY', 'base': 'BTC', 'quote': 'JPY', 'baseId': 'btc', 'quoteId': 'jpy', 'taker': self.parse_number('0.0005'), 'maker': self.parse_number('0.0005'), 'type': 'spot', 'spot': True}),
120
- 'ETH/JPY': self.safe_market_structure({'id': 'eth', 'symbol': 'ETH/JPY', 'base': 'ETH', 'quote': 'JPY', 'baseId': 'eth', 'quoteId': 'jpy', 'taker': self.parse_number('0.0010'), 'maker': self.parse_number('0.0010'), 'type': 'spot', 'spot': True}),
121
- 'LTC/JPY': self.safe_market_structure({'id': 'ltc', 'symbol': 'LTC/JPY', 'base': 'LTC', 'quote': 'JPY', 'baseId': 'ltc', 'quoteId': 'jpy', 'taker': self.parse_number('0.0010'), 'maker': self.parse_number('0.0010'), 'type': 'spot', 'spot': True}),
122
- 'BCH/JPY': self.safe_market_structure({'id': 'bch', 'symbol': 'BCH/JPY', 'base': 'BCH', 'quote': 'JPY', 'baseId': 'bch', 'quoteId': 'jpy', 'taker': self.parse_number('0.0010'), 'maker': self.parse_number('0.0010'), 'type': 'spot', 'spot': True}),
159
+ 'options': {
160
+ 'fetchMarkets': {
161
+ 'webApiEnable': True, # fetches from WEB
162
+ 'webApiRetries': 3,
163
+ },
164
+ 'amountPrecision': '0.0001', # exchange has only few pairs and all of them
165
+ },
166
+ 'features': {
167
+ 'spot': {
168
+ 'sandbox': False,
169
+ 'createOrder': {
170
+ 'marginMode': False,
171
+ 'triggerPrice': False,
172
+ 'triggerPriceType': None,
173
+ 'triggerDirection': False,
174
+ 'stopLossPrice': False,
175
+ 'takeProfitPrice': False,
176
+ 'attachedStopLossTakeProfit': None,
177
+ 'timeInForce': {
178
+ 'IOC': False,
179
+ 'FOK': False,
180
+ 'PO': False,
181
+ 'GTD': False,
182
+ },
183
+ 'hedged': False,
184
+ 'leverage': False,
185
+ 'marketBuyRequiresPrice': False,
186
+ 'marketBuyByCost': False,
187
+ 'selfTradePrevention': False,
188
+ 'trailing': False,
189
+ 'iceberg': False,
190
+ },
191
+ 'createOrders': None,
192
+ 'fetchMyTrades': None,
193
+ 'fetchOrder': {
194
+ 'marginMode': False,
195
+ 'trigger': False,
196
+ 'trailing': False,
197
+ 'symbolRequired': True,
198
+ },
199
+ 'fetchOpenOrders': {
200
+ 'marginMode': False,
201
+ 'limit': 100,
202
+ 'trigger': False,
203
+ 'trailing': False,
204
+ 'symbolRequired': True,
205
+ },
206
+ 'fetchOrders': {
207
+ 'marginMode': False,
208
+ 'limit': 100,
209
+ 'daysBack': None,
210
+ 'untilDays': None,
211
+ 'trigger': False,
212
+ 'trailing': False,
213
+ 'symbolRequired': True,
214
+ },
215
+ 'fetchClosedOrders': None,
216
+ 'fetchOHLCV': None,
217
+ },
218
+ 'swap': {
219
+ 'linear': None,
220
+ 'inverse': None,
221
+ },
222
+ 'future': {
223
+ 'linear': None,
224
+ 'inverse': None,
225
+ },
123
226
  },
124
227
  'precisionMode': TICK_SIZE,
125
228
  'exceptions': {
@@ -136,6 +239,142 @@ class btcbox(Exchange, ImplicitAPI):
136
239
  },
137
240
  })
138
241
 
242
+ def fetch_markets(self, params={}) -> List[Market]:
243
+ """
244
+ retrieves data on all markets for ace
245
+ :param dict [params]: extra parameters specific to the exchange API endpoint
246
+ :returns dict[]: an array of objects representing market data
247
+ """
248
+ promise1 = self.publicGetTickers()
249
+ promise2 = self.fetch_web_endpoint('fetchMarkets', 'webApiGetAjaxCoinCoinInfo', True)
250
+ response1, response2 = [promise1, promise2]
251
+ #
252
+ result2Data = self.safe_dict(response2, 'data', {})
253
+ marketIds = list(response1.keys())
254
+ markets = []
255
+ for i in range(0, len(marketIds)):
256
+ marketId = marketIds[i]
257
+ symbolParts = marketId.split('_')
258
+ baseCurr = self.safe_string(symbolParts, 0)
259
+ quote = self.safe_string(symbolParts, 1)
260
+ quoteId = quote.lower()
261
+ id = baseCurr.lower()
262
+ res = response1[marketId]
263
+ symbol = baseCurr + '/' + quote
264
+ fee = self.parse_number('0.0005') if (id == 'BTC') else self.parse_number('0.0010')
265
+ details = self.safe_dict(result2Data, id, {})
266
+ tradeDetails = self.safe_dict(details, 'trade', {})
267
+ markets.append(self.safe_market_structure({
268
+ 'id': id,
269
+ 'uppercaseId': None,
270
+ 'symbol': symbol,
271
+ 'base': baseCurr,
272
+ 'baseId': id,
273
+ 'quote': quote,
274
+ 'quoteId': quoteId,
275
+ 'settle': None,
276
+ 'settleId': None,
277
+ 'type': 'spot',
278
+ 'spot': True,
279
+ 'margin': False,
280
+ 'swap': False,
281
+ 'future': False,
282
+ 'option': False,
283
+ 'taker': fee,
284
+ 'maker': fee,
285
+ 'contract': False,
286
+ 'linear': None,
287
+ 'inverse': None,
288
+ 'contractSize': None,
289
+ 'expiry': None,
290
+ 'expiryDatetime': None,
291
+ 'strike': None,
292
+ 'optionType': None,
293
+ 'limits': {
294
+ 'amount': {
295
+ 'min': None,
296
+ 'max': None,
297
+ },
298
+ 'price': {
299
+ 'min': None,
300
+ 'max': None,
301
+ },
302
+ 'cost': {
303
+ 'min': None,
304
+ 'max': None,
305
+ },
306
+ 'leverage': {
307
+ 'min': None,
308
+ 'max': None,
309
+ },
310
+ },
311
+ 'precision': {
312
+ 'price': self.parse_number(self.parse_precision(self.safe_string(tradeDetails, 'pricedecimal'))),
313
+ 'amount': None,
314
+ },
315
+ 'active': self.safe_string(tradeDetails, 'enable') == '1',
316
+ 'created': None,
317
+ 'info': res,
318
+ }))
319
+ return markets
320
+
321
+ def parse_market(self, market: dict) -> Market:
322
+ baseId = self.safe_string(market, 'base')
323
+ base = self.safe_currency_code(baseId)
324
+ quoteId = self.safe_string(market, 'quote')
325
+ quote = self.safe_currency_code(quoteId)
326
+ symbol = base + '/' + quote
327
+ return {
328
+ 'id': self.safe_string(market, 'symbol'),
329
+ 'uppercaseId': None,
330
+ 'symbol': symbol,
331
+ 'base': base,
332
+ 'baseId': baseId,
333
+ 'quote': quote,
334
+ 'quoteId': quoteId,
335
+ 'settle': None,
336
+ 'settleId': None,
337
+ 'type': 'spot',
338
+ 'spot': True,
339
+ 'margin': False,
340
+ 'swap': False,
341
+ 'future': False,
342
+ 'option': False,
343
+ 'contract': False,
344
+ 'linear': None,
345
+ 'inverse': None,
346
+ 'contractSize': None,
347
+ 'expiry': None,
348
+ 'expiryDatetime': None,
349
+ 'strike': None,
350
+ 'optionType': None,
351
+ 'limits': {
352
+ 'amount': {
353
+ 'min': self.safe_number(market, 'minLimitBaseAmount'),
354
+ 'max': self.safe_number(market, 'maxLimitBaseAmount'),
355
+ },
356
+ 'price': {
357
+ 'min': None,
358
+ 'max': None,
359
+ },
360
+ 'cost': {
361
+ 'min': None,
362
+ 'max': None,
363
+ },
364
+ 'leverage': {
365
+ 'min': None,
366
+ 'max': None,
367
+ },
368
+ },
369
+ 'precision': {
370
+ 'price': self.parse_number(self.parse_precision(self.safe_string(market, 'quotePrecision'))),
371
+ 'amount': self.parse_number(self.parse_precision(self.safe_string(market, 'basePrecision'))),
372
+ },
373
+ 'active': None,
374
+ 'created': None,
375
+ 'info': market,
376
+ }
377
+
139
378
  def parse_balance(self, response) -> Balances:
140
379
  result: dict = {'info': response}
141
380
  codes = list(self.currencies.keys())
@@ -155,7 +394,9 @@ class btcbox(Exchange, ImplicitAPI):
155
394
  def fetch_balance(self, params={}) -> Balances:
156
395
  """
157
396
  query for balance and get the amount of funds available for trading or funds locked in orders
158
- :see: https://blog.btcbox.jp/en/archives/8762#toc13
397
+
398
+ https://blog.btcbox.jp/en/archives/8762#toc13
399
+
159
400
  :param dict [params]: extra parameters specific to the exchange API endpoint
160
401
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
161
402
  """
@@ -166,7 +407,9 @@ class btcbox(Exchange, ImplicitAPI):
166
407
  def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
167
408
  """
168
409
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
169
- :see: https://blog.btcbox.jp/en/archives/8762#toc6
410
+
411
+ https://blog.btcbox.jp/en/archives/8762#toc6
412
+
170
413
  :param str symbol: unified symbol of the market to fetch the order book for
171
414
  :param int [limit]: the maximum amount of order book entries to return
172
415
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -210,7 +453,9 @@ class btcbox(Exchange, ImplicitAPI):
210
453
  def fetch_ticker(self, symbol: str, params={}) -> Ticker:
211
454
  """
212
455
  fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
213
- :see: https://blog.btcbox.jp/en/archives/8762#toc5
456
+
457
+ https://blog.btcbox.jp/en/archives/8762#toc5
458
+
214
459
  :param str symbol: unified symbol of the market to fetch the ticker for
215
460
  :param dict [params]: extra parameters specific to the exchange API endpoint
216
461
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -224,6 +469,17 @@ class btcbox(Exchange, ImplicitAPI):
224
469
  response = self.publicGetTicker(self.extend(request, params))
225
470
  return self.parse_ticker(response, market)
226
471
 
472
+ def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
473
+ """
474
+ fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
475
+ :param str[] [symbols]: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
476
+ :param dict [params]: extra parameters specific to the exchange API endpoint
477
+ :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
478
+ """
479
+ self.load_markets()
480
+ response = self.publicGetTickers(params)
481
+ return self.parse_tickers(response, symbols)
482
+
227
483
  def parse_trade(self, trade: dict, market: Market = None) -> Trade:
228
484
  #
229
485
  # fetchTrades(public)
@@ -262,7 +518,9 @@ class btcbox(Exchange, ImplicitAPI):
262
518
  def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
263
519
  """
264
520
  get the list of most recent trades for a particular symbol
265
- :see: https://blog.btcbox.jp/en/archives/8762#toc7
521
+
522
+ https://blog.btcbox.jp/en/archives/8762#toc7
523
+
266
524
  :param str symbol: unified symbol of the market to fetch trades for
267
525
  :param int [since]: timestamp in ms of the earliest trade to fetch
268
526
  :param int [limit]: the maximum amount of trades to fetch
@@ -292,12 +550,14 @@ class btcbox(Exchange, ImplicitAPI):
292
550
  def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
293
551
  """
294
552
  create a trade order
295
- :see: https://blog.btcbox.jp/en/archives/8762#toc18
553
+
554
+ https://blog.btcbox.jp/en/archives/8762#toc18
555
+
296
556
  :param str symbol: unified symbol of the market to create an order in
297
557
  :param str type: 'market' or 'limit'
298
558
  :param str side: 'buy' or 'sell'
299
559
  :param float amount: how much of currency you want to trade in units of base currency
300
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
560
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
301
561
  :param dict [params]: extra parameters specific to the exchange API endpoint
302
562
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
303
563
  """
@@ -321,7 +581,9 @@ class btcbox(Exchange, ImplicitAPI):
321
581
  def cancel_order(self, id: str, symbol: Str = None, params={}):
322
582
  """
323
583
  cancels an open order
324
- :see: https://blog.btcbox.jp/en/archives/8762#toc17
584
+
585
+ https://blog.btcbox.jp/en/archives/8762#toc17
586
+
325
587
  :param str id: order id
326
588
  :param str symbol: unified symbol of the market the order was made in
327
589
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -399,7 +661,6 @@ class btcbox(Exchange, ImplicitAPI):
399
661
  'status': status,
400
662
  'symbol': market['symbol'],
401
663
  'price': price,
402
- 'stopPrice': None,
403
664
  'triggerPrice': None,
404
665
  'cost': None,
405
666
  'trades': trades,
@@ -411,7 +672,10 @@ class btcbox(Exchange, ImplicitAPI):
411
672
  def fetch_order(self, id: str, symbol: Str = None, params={}):
412
673
  """
413
674
  fetches information on an order made by the user
414
- :see: https://blog.btcbox.jp/en/archives/8762#toc16
675
+
676
+ https://blog.btcbox.jp/en/archives/8762#toc16
677
+
678
+ :param str id: the order id
415
679
  :param str symbol: unified symbol of the market the order was made in
416
680
  :param dict [params]: extra parameters specific to the exchange API endpoint
417
681
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
@@ -443,8 +707,6 @@ class btcbox(Exchange, ImplicitAPI):
443
707
  def fetch_orders_by_type(self, type, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
444
708
  self.load_markets()
445
709
  # a special case for btcbox – default symbol is BTC/JPY
446
- if symbol is None:
447
- symbol = 'BTC/JPY'
448
710
  market = self.market(symbol)
449
711
  request: dict = {
450
712
  'type': type, # 'open' or 'all'
@@ -474,7 +736,9 @@ class btcbox(Exchange, ImplicitAPI):
474
736
  def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
475
737
  """
476
738
  fetches information on multiple orders made by the user
477
- :see: https://blog.btcbox.jp/en/archives/8762#toc15
739
+
740
+ https://blog.btcbox.jp/en/archives/8762#toc15
741
+
478
742
  :param str symbol: unified market symbol of the market orders were made in
479
743
  :param int [since]: the earliest time in ms to fetch orders for
480
744
  :param int [limit]: the maximum number of order structures to retrieve
@@ -486,7 +750,9 @@ class btcbox(Exchange, ImplicitAPI):
486
750
  def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
487
751
  """
488
752
  fetch all unfilled currently open orders
489
- :see: https://blog.btcbox.jp/en/archives/8762#toc15
753
+
754
+ https://blog.btcbox.jp/en/archives/8762#toc15
755
+
490
756
  :param str symbol: unified market symbol
491
757
  :param int [since]: the earliest time in ms to fetch open orders for
492
758
  :param int [limit]: the maximum number of open orders structures to retrieve
@@ -503,6 +769,8 @@ class btcbox(Exchange, ImplicitAPI):
503
769
  if api == 'public':
504
770
  if params:
505
771
  url += '?' + self.urlencode(params)
772
+ elif api == 'webApi':
773
+ url = self.urls['www'] + '/' + path
506
774
  else:
507
775
  self.check_required_credentials()
508
776
  nonce = str(self.nonce())
@@ -511,7 +779,7 @@ class btcbox(Exchange, ImplicitAPI):
511
779
  'nonce': nonce,
512
780
  }, params)
513
781
  request = self.urlencode(query)
514
- secret = self.hash(self.encode(self.secret), 'sha256')
782
+ secret = self.hash(self.encode(self.secret), 'md5')
515
783
  query['signature'] = self.hmac(self.encode(request), self.encode(secret), hashlib.sha256)
516
784
  body = self.urlencode(query)
517
785
  headers = {