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

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