ccxt-ir 4.10.0 → 4.11.0

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 (1047) hide show
  1. package/README.md +4 -4
  2. package/dist/ccxt.browser.min.js +2 -2
  3. package/dist/cjs/ccxt.js +4 -1
  4. package/dist/cjs/src/abstract/bidarz.js +11 -0
  5. package/dist/cjs/src/bidarz.js +337 -0
  6. package/dist/cjs/src/bit24.js +4 -3
  7. package/js/ccxt.d.ts +5 -2
  8. package/js/ccxt.js +4 -2
  9. package/js/src/abstract/bidarz.d.ts +9 -0
  10. package/js/src/abstract/bidarz.js +11 -0
  11. package/js/src/bidarz.d.ts +22 -0
  12. package/js/src/bidarz.js +336 -0
  13. package/js/src/bit24.js +4 -3
  14. package/js/src/src/abantether.d.ts +21 -0
  15. package/js/src/src/abantether.js +353 -0
  16. package/js/src/src/abstract/abantether.d.ts +8 -0
  17. package/js/src/src/abstract/abantether.js +11 -0
  18. package/js/src/src/abstract/afratether.d.ts +9 -0
  19. package/js/src/src/abstract/afratether.js +11 -0
  20. package/js/src/src/abstract/alpaca.d.ts +77 -0
  21. package/js/src/src/abstract/alpaca.js +11 -0
  22. package/js/src/src/abstract/apex.d.ts +34 -0
  23. package/js/src/src/abstract/apex.js +11 -0
  24. package/js/src/src/abstract/arzinja.d.ts +8 -0
  25. package/js/src/src/abstract/arzinja.js +11 -0
  26. package/js/src/src/abstract/arzplus.d.ts +11 -0
  27. package/js/src/src/abstract/arzplus.js +11 -0
  28. package/js/src/src/abstract/ascendex.d.ts +80 -0
  29. package/js/src/src/abstract/ascendex.js +11 -0
  30. package/js/src/src/abstract/asretether.d.ts +8 -0
  31. package/js/src/src/abstract/asretether.js +11 -0
  32. package/js/src/src/abstract/bidarz.d.ts +9 -0
  33. package/js/src/src/abstract/bidarz.js +11 -0
  34. package/js/src/src/abstract/bigone.d.ts +48 -0
  35. package/js/src/src/abstract/bigone.js +11 -0
  36. package/js/src/src/abstract/binance.d.ts +773 -0
  37. package/js/src/src/abstract/binance.js +11 -0
  38. package/js/src/src/abstract/bingx.d.ts +165 -0
  39. package/js/src/src/abstract/bingx.js +11 -0
  40. package/js/src/src/abstract/bit24.d.ts +9 -0
  41. package/js/src/src/abstract/bit24.js +11 -0
  42. package/js/src/src/abstract/bit2c.d.ts +30 -0
  43. package/js/src/src/abstract/bit2c.js +11 -0
  44. package/js/src/src/abstract/bitbank.d.ts +35 -0
  45. package/js/src/src/abstract/bitbank.js +11 -0
  46. package/js/src/src/abstract/bitbarg.d.ts +8 -0
  47. package/js/src/src/abstract/bitbarg.js +11 -0
  48. package/js/src/src/abstract/bitbns.d.ts +43 -0
  49. package/js/src/src/abstract/bitbns.js +11 -0
  50. package/js/src/src/abstract/bitfinex.d.ts +143 -0
  51. package/js/src/src/abstract/bitfinex.js +11 -0
  52. package/js/src/src/abstract/bitflyer.d.ts +42 -0
  53. package/js/src/src/abstract/bitflyer.js +11 -0
  54. package/js/src/src/abstract/bitget.d.ts +578 -0
  55. package/js/src/src/abstract/bitget.js +11 -0
  56. package/js/src/src/abstract/bithumb.d.ts +35 -0
  57. package/js/src/src/abstract/bithumb.js +11 -0
  58. package/js/src/src/abstract/bitimen.d.ts +10 -0
  59. package/js/src/src/abstract/bitimen.js +11 -0
  60. package/js/src/src/abstract/bitir.d.ts +10 -0
  61. package/js/src/src/abstract/bitir.js +11 -0
  62. package/js/src/src/abstract/bitmart.d.ts +120 -0
  63. package/js/src/src/abstract/bitmart.js +11 -0
  64. package/js/src/src/abstract/bitmex.d.ts +100 -0
  65. package/js/src/src/abstract/bitmex.js +11 -0
  66. package/js/src/src/abstract/bitopro.d.ts +33 -0
  67. package/js/src/src/abstract/bitopro.js +11 -0
  68. package/js/src/src/abstract/bitpin.d.ts +11 -0
  69. package/js/src/src/abstract/bitpin.js +11 -0
  70. package/js/src/src/abstract/bitrue.d.ts +75 -0
  71. package/js/src/src/abstract/bitrue.js +11 -0
  72. package/js/src/src/abstract/bitso.d.ts +46 -0
  73. package/js/src/src/abstract/bitso.js +11 -0
  74. package/js/src/src/abstract/bitstamp.d.ts +262 -0
  75. package/js/src/src/abstract/bitstamp.js +11 -0
  76. package/js/src/src/abstract/bitteam.d.ts +32 -0
  77. package/js/src/src/abstract/bitteam.js +11 -0
  78. package/js/src/src/abstract/bittrade.d.ts +117 -0
  79. package/js/src/src/abstract/bittrade.js +11 -0
  80. package/js/src/src/abstract/bitunix.d.ts +9 -0
  81. package/js/src/src/abstract/bitunix.js +11 -0
  82. package/js/src/src/abstract/bitvavo.d.ts +30 -0
  83. package/js/src/src/abstract/bitvavo.js +11 -0
  84. package/js/src/src/abstract/blockchaincom.d.ts +31 -0
  85. package/js/src/src/abstract/blockchaincom.js +11 -0
  86. package/js/src/src/abstract/blofin.d.ts +70 -0
  87. package/js/src/src/abstract/blofin.js +11 -0
  88. package/js/src/src/abstract/btcalpha.d.ts +21 -0
  89. package/js/src/src/abstract/btcalpha.js +11 -0
  90. package/js/src/src/abstract/btcbox.d.ts +18 -0
  91. package/js/src/src/abstract/btcbox.js +11 -0
  92. package/js/src/src/abstract/btcmarkets.d.ts +42 -0
  93. package/js/src/src/abstract/btcmarkets.js +11 -0
  94. package/js/src/src/abstract/btcturk.d.ts +23 -0
  95. package/js/src/src/abstract/btcturk.js +11 -0
  96. package/js/src/src/abstract/bybit.d.ts +316 -0
  97. package/js/src/src/abstract/bybit.js +11 -0
  98. package/js/src/src/abstract/bydfi.d.ts +11 -0
  99. package/js/src/src/abstract/bydfi.js +11 -0
  100. package/js/src/src/abstract/cafearz.d.ts +8 -0
  101. package/js/src/src/abstract/cafearz.js +11 -0
  102. package/js/src/src/abstract/cex.d.ts +35 -0
  103. package/js/src/src/abstract/cex.js +11 -0
  104. package/js/src/src/abstract/coinbase.d.ts +97 -0
  105. package/js/src/src/abstract/coinbase.js +11 -0
  106. package/js/src/src/abstract/coinbaseexchange.d.ts +71 -0
  107. package/js/src/src/abstract/coinbaseexchange.js +11 -0
  108. package/js/src/src/abstract/coinbaseinternational.d.ts +42 -0
  109. package/js/src/src/abstract/coinbaseinternational.js +11 -0
  110. package/js/src/src/abstract/coincatch.d.ts +97 -0
  111. package/js/src/src/abstract/coincatch.js +11 -0
  112. package/js/src/src/abstract/coincheck.d.ts +36 -0
  113. package/js/src/src/abstract/coincheck.js +11 -0
  114. package/js/src/src/abstract/coinex.d.ts +240 -0
  115. package/js/src/src/abstract/coinex.js +11 -0
  116. package/js/src/src/abstract/coinmate.d.ts +65 -0
  117. package/js/src/src/abstract/coinmate.js +11 -0
  118. package/js/src/src/abstract/coinmetro.d.ts +37 -0
  119. package/js/src/src/abstract/coinmetro.js +11 -0
  120. package/js/src/src/abstract/coinone.d.ts +70 -0
  121. package/js/src/src/abstract/coinone.js +11 -0
  122. package/js/src/src/abstract/coinsph.d.ts +57 -0
  123. package/js/src/src/abstract/coinsph.js +11 -0
  124. package/js/src/src/abstract/coinspot.d.ts +31 -0
  125. package/js/src/src/abstract/coinspot.js +11 -0
  126. package/js/src/src/abstract/cryptocom.d.ts +126 -0
  127. package/js/src/src/abstract/cryptocom.js +11 -0
  128. package/js/src/src/abstract/cryptomus.d.ts +23 -0
  129. package/js/src/src/abstract/cryptomus.js +11 -0
  130. package/js/src/src/abstract/defx.d.ts +72 -0
  131. package/js/src/src/abstract/defx.js +11 -0
  132. package/js/src/src/abstract/delta.d.ts +53 -0
  133. package/js/src/src/abstract/delta.js +11 -0
  134. package/js/src/src/abstract/deribit.d.ts +129 -0
  135. package/js/src/src/abstract/deribit.js +11 -0
  136. package/js/src/src/abstract/derive.d.ts +120 -0
  137. package/js/src/src/abstract/derive.js +11 -0
  138. package/js/src/src/abstract/digifinex.d.ts +95 -0
  139. package/js/src/src/abstract/digifinex.js +11 -0
  140. package/js/src/src/abstract/ellipx.d.ts +28 -0
  141. package/js/src/src/abstract/ellipx.js +11 -0
  142. package/js/src/src/abstract/eterex.d.ts +8 -0
  143. package/js/src/src/abstract/eterex.js +11 -0
  144. package/js/src/src/abstract/excoino.d.ts +10 -0
  145. package/js/src/src/abstract/excoino.js +11 -0
  146. package/js/src/src/abstract/exir.d.ts +11 -0
  147. package/js/src/src/abstract/exir.js +11 -0
  148. package/js/src/src/abstract/exmo.d.ts +58 -0
  149. package/js/src/src/abstract/exmo.js +11 -0
  150. package/js/src/src/abstract/exnovin.d.ts +9 -0
  151. package/js/src/src/abstract/exnovin.js +11 -0
  152. package/js/src/src/abstract/farhadexchange.d.ts +8 -0
  153. package/js/src/src/abstract/farhadexchange.js +11 -0
  154. package/js/src/src/abstract/foxbit.d.ts +29 -0
  155. package/js/src/src/abstract/foxbit.js +11 -0
  156. package/js/src/src/abstract/gate.d.ts +287 -0
  157. package/js/src/src/abstract/gate.js +11 -0
  158. package/js/src/src/abstract/gemini.d.ts +62 -0
  159. package/js/src/src/abstract/gemini.js +11 -0
  160. package/js/src/src/abstract/hamtapay.d.ts +9 -0
  161. package/js/src/src/abstract/hamtapay.js +11 -0
  162. package/js/src/src/abstract/hashkey.d.ts +70 -0
  163. package/js/src/src/abstract/hashkey.js +11 -0
  164. package/js/src/src/abstract/hibachi.d.ts +29 -0
  165. package/js/src/src/abstract/hibachi.js +11 -0
  166. package/js/src/src/abstract/hitbtc.d.ts +118 -0
  167. package/js/src/src/abstract/hitbtc.js +11 -0
  168. package/js/src/src/abstract/hitobit.d.ts +11 -0
  169. package/js/src/src/abstract/hitobit.js +11 -0
  170. package/js/src/src/abstract/hollaex.d.ts +36 -0
  171. package/js/src/src/abstract/hollaex.js +11 -0
  172. package/js/src/src/abstract/htx.d.ts +551 -0
  173. package/js/src/src/abstract/htx.js +11 -0
  174. package/js/src/src/abstract/hyperliquid.d.ts +9 -0
  175. package/js/src/src/abstract/hyperliquid.js +11 -0
  176. package/js/src/src/abstract/independentreserve.d.ts +46 -0
  177. package/js/src/src/abstract/independentreserve.js +11 -0
  178. package/js/src/src/abstract/indodax.d.ts +29 -0
  179. package/js/src/src/abstract/indodax.js +11 -0
  180. package/js/src/src/abstract/iranexchange.d.ts +9 -0
  181. package/js/src/src/abstract/iranexchange.js +11 -0
  182. package/js/src/src/abstract/jibitex.d.ts +10 -0
  183. package/js/src/src/abstract/jibitex.js +11 -0
  184. package/js/src/src/abstract/kcex.d.ts +10 -0
  185. package/js/src/src/abstract/kcex.js +11 -0
  186. package/js/src/src/abstract/kifpoolme.d.ts +9 -0
  187. package/js/src/src/abstract/kifpoolme.js +11 -0
  188. package/js/src/src/abstract/kraken.d.ts +61 -0
  189. package/js/src/src/abstract/kraken.js +11 -0
  190. package/js/src/src/abstract/krakenfutures.d.ts +45 -0
  191. package/js/src/src/abstract/krakenfutures.js +11 -0
  192. package/js/src/src/abstract/kucoin.d.ts +227 -0
  193. package/js/src/src/abstract/kucoin.js +11 -0
  194. package/js/src/src/abstract/kucoinfutures.d.ts +254 -0
  195. package/js/src/src/abstract/kucoinfutures.js +11 -0
  196. package/js/src/src/abstract/latoken.d.ts +59 -0
  197. package/js/src/src/abstract/latoken.js +11 -0
  198. package/js/src/src/abstract/lbank.d.ts +65 -0
  199. package/js/src/src/abstract/lbank.js +11 -0
  200. package/js/src/src/abstract/luno.d.ts +41 -0
  201. package/js/src/src/abstract/luno.js +11 -0
  202. package/js/src/src/abstract/mazdax.d.ts +11 -0
  203. package/js/src/src/abstract/mazdax.js +11 -0
  204. package/js/src/src/abstract/mercado.d.ts +28 -0
  205. package/js/src/src/abstract/mercado.js +11 -0
  206. package/js/src/src/abstract/mexc.d.ts +183 -0
  207. package/js/src/src/abstract/mexc.js +11 -0
  208. package/js/src/src/abstract/modetrade.d.ts +122 -0
  209. package/js/src/src/abstract/modetrade.js +11 -0
  210. package/js/src/src/abstract/ndax.d.ts +100 -0
  211. package/js/src/src/abstract/ndax.js +11 -0
  212. package/js/src/src/abstract/nobitex.d.ts +10 -0
  213. package/js/src/src/abstract/nobitex.js +11 -0
  214. package/js/src/src/abstract/novadax.d.ts +32 -0
  215. package/js/src/src/abstract/novadax.js +11 -0
  216. package/js/src/src/abstract/oceanex.d.ts +30 -0
  217. package/js/src/src/abstract/oceanex.js +11 -0
  218. package/js/src/src/abstract/okcoin.d.ts +77 -0
  219. package/js/src/src/abstract/okcoin.js +11 -0
  220. package/js/src/src/abstract/okexchange.d.ts +11 -0
  221. package/js/src/src/abstract/okexchange.js +11 -0
  222. package/js/src/src/abstract/okx.d.ts +352 -0
  223. package/js/src/src/abstract/okx.js +11 -0
  224. package/js/src/src/abstract/ompfinex.d.ts +10 -0
  225. package/js/src/src/abstract/ompfinex.js +11 -0
  226. package/js/src/src/abstract/onetrading.d.ts +26 -0
  227. package/js/src/src/abstract/onetrading.js +11 -0
  228. package/js/src/src/abstract/oxfun.d.ts +37 -0
  229. package/js/src/src/abstract/oxfun.js +11 -0
  230. package/js/src/src/abstract/p2b.d.ts +25 -0
  231. package/js/src/src/abstract/p2b.js +11 -0
  232. package/js/src/src/abstract/paradex.d.ts +66 -0
  233. package/js/src/src/abstract/paradex.js +11 -0
  234. package/js/src/src/abstract/paymium.d.ts +31 -0
  235. package/js/src/src/abstract/paymium.js +11 -0
  236. package/js/src/src/abstract/phemex.d.ts +120 -0
  237. package/js/src/src/abstract/phemex.js +11 -0
  238. package/js/src/src/abstract/pingi.d.ts +9 -0
  239. package/js/src/src/abstract/pingi.js +11 -0
  240. package/js/src/src/abstract/poloniex.d.ts +108 -0
  241. package/js/src/src/abstract/poloniex.js +11 -0
  242. package/js/src/src/abstract/pooleno.d.ts +8 -0
  243. package/js/src/src/abstract/pooleno.js +11 -0
  244. package/js/src/src/abstract/probit.d.ts +26 -0
  245. package/js/src/src/abstract/probit.js +11 -0
  246. package/js/src/src/abstract/raastin.d.ts +11 -0
  247. package/js/src/src/abstract/raastin.js +11 -0
  248. package/js/src/src/abstract/ramzinex.d.ts +10 -0
  249. package/js/src/src/abstract/ramzinex.js +11 -0
  250. package/js/src/src/abstract/sarmayex.d.ts +8 -0
  251. package/js/src/src/abstract/sarmayex.js +11 -0
  252. package/js/src/src/abstract/sarrafex.d.ts +10 -0
  253. package/js/src/src/abstract/sarrafex.js +11 -0
  254. package/js/src/src/abstract/tabdeal.d.ts +10 -0
  255. package/js/src/src/abstract/tabdeal.js +11 -0
  256. package/js/src/src/abstract/tehran_exchange.d.ts +9 -0
  257. package/js/src/src/abstract/tehran_exchange.js +11 -0
  258. package/js/src/src/abstract/tetherland.d.ts +8 -0
  259. package/js/src/src/abstract/tetherland.js +11 -0
  260. package/js/src/src/abstract/timex.d.ts +65 -0
  261. package/js/src/src/abstract/timex.js +11 -0
  262. package/js/src/src/abstract/tokocrypto.d.ts +40 -0
  263. package/js/src/src/abstract/tokocrypto.js +11 -0
  264. package/js/src/src/abstract/toobit.d.ts +10 -0
  265. package/js/src/src/abstract/toobit.js +11 -0
  266. package/js/src/src/abstract/tradeogre.d.ts +21 -0
  267. package/js/src/src/abstract/tradeogre.js +11 -0
  268. package/js/src/src/abstract/twox.d.ts +8 -0
  269. package/js/src/src/abstract/twox.js +11 -0
  270. package/js/src/src/abstract/ubitex.d.ts +10 -0
  271. package/js/src/src/abstract/ubitex.js +11 -0
  272. package/js/src/src/abstract/upbit.d.ts +58 -0
  273. package/js/src/src/abstract/upbit.js +11 -0
  274. package/js/src/src/abstract/vertex.d.ts +22 -0
  275. package/js/src/src/abstract/vertex.js +11 -0
  276. package/js/src/src/abstract/wallex.d.ts +11 -0
  277. package/js/src/src/abstract/wallex.js +11 -0
  278. package/js/src/src/abstract/wavesexchange.d.ts +157 -0
  279. package/js/src/src/abstract/wavesexchange.js +11 -0
  280. package/js/src/src/abstract/whitebit.d.ts +117 -0
  281. package/js/src/src/abstract/whitebit.js +11 -0
  282. package/js/src/src/abstract/woo.d.ts +144 -0
  283. package/js/src/src/abstract/woo.js +11 -0
  284. package/js/src/src/abstract/woofipro.d.ts +122 -0
  285. package/js/src/src/abstract/woofipro.js +11 -0
  286. package/js/src/src/abstract/xt.d.ts +160 -0
  287. package/js/src/src/abstract/xt.js +11 -0
  288. package/js/src/src/abstract/yobit.d.ts +19 -0
  289. package/js/src/src/abstract/yobit.js +11 -0
  290. package/js/src/src/abstract/zaif.d.ts +41 -0
  291. package/js/src/src/abstract/zaif.js +11 -0
  292. package/js/src/src/abstract/zonda.d.ts +56 -0
  293. package/js/src/src/abstract/zonda.js +11 -0
  294. package/js/src/src/afratether.d.ts +21 -0
  295. package/js/src/src/afratether.js +356 -0
  296. package/js/src/src/alpaca.d.ts +332 -0
  297. package/js/src/src/alpaca.js +1908 -0
  298. package/js/src/src/apex.d.ts +333 -0
  299. package/js/src/src/apex.js +1942 -0
  300. package/js/src/src/arzinja.d.ts +21 -0
  301. package/js/src/src/arzinja.js +298 -0
  302. package/js/src/src/arzplus.d.ts +26 -0
  303. package/js/src/src/arzplus.js +581 -0
  304. package/js/src/src/ascendex.d.ts +424 -0
  305. package/js/src/src/ascendex.js +3699 -0
  306. package/js/src/src/asretether.d.ts +21 -0
  307. package/js/src/src/asretether.js +324 -0
  308. package/js/src/src/base/Exchange.d.ts +926 -0
  309. package/js/src/src/base/Exchange.js +7399 -0
  310. package/js/src/src/base/Precise.d.ts +42 -0
  311. package/js/src/src/base/Precise.js +275 -0
  312. package/js/src/src/base/errors.d.ts +168 -0
  313. package/js/src/src/base/errors.js +255 -0
  314. package/js/src/src/base/functions/crypto.d.ts +16 -0
  315. package/js/src/src/base/functions/crypto.js +131 -0
  316. package/js/src/src/base/functions/encode.d.ts +4 -0
  317. package/js/src/src/base/functions/encode.js +32 -0
  318. package/js/src/src/base/functions/generic.d.ts +29 -0
  319. package/js/src/src/base/functions/generic.js +203 -0
  320. package/js/src/src/base/functions/misc.d.ts +9 -0
  321. package/js/src/src/base/functions/misc.js +101 -0
  322. package/js/src/src/base/functions/number.d.ts +27 -0
  323. package/js/src/src/base/functions/number.js +313 -0
  324. package/js/src/src/base/functions/platform.d.ts +7 -0
  325. package/js/src/src/base/functions/platform.js +27 -0
  326. package/js/src/src/base/functions/rsa.d.ts +5 -0
  327. package/js/src/src/base/functions/rsa.js +49 -0
  328. package/js/src/src/base/functions/string.d.ts +7 -0
  329. package/js/src/src/base/functions/string.js +44 -0
  330. package/js/src/src/base/functions/throttle.d.ts +6 -0
  331. package/js/src/src/base/functions/throttle.js +67 -0
  332. package/js/src/src/base/functions/time.d.ts +21 -0
  333. package/js/src/src/base/functions/time.js +171 -0
  334. package/js/src/src/base/functions/totp.d.ts +3 -0
  335. package/js/src/src/base/functions/totp.js +25 -0
  336. package/js/src/src/base/functions/type.d.ts +37 -0
  337. package/js/src/src/base/functions/type.js +179 -0
  338. package/js/src/src/base/functions.d.ts +10 -0
  339. package/js/src/src/base/functions.js +18 -0
  340. package/js/src/src/base/types.d.ts +586 -0
  341. package/js/src/src/base/types.js +7 -0
  342. package/js/src/src/base/ws/Cache.d.ts +27 -0
  343. package/js/src/src/base/ws/Cache.js +260 -0
  344. package/js/src/src/base/ws/Client.d.ts +53 -0
  345. package/js/src/src/base/ws/Client.js +307 -0
  346. package/js/src/src/base/ws/Future.d.ts +8 -0
  347. package/js/src/src/base/ws/Future.js +35 -0
  348. package/js/src/src/base/ws/OrderBook.d.ts +25 -0
  349. package/js/src/src/base/ws/OrderBook.js +130 -0
  350. package/js/src/src/base/ws/OrderBookSide.d.ts +40 -0
  351. package/js/src/src/base/ws/OrderBookSide.js +286 -0
  352. package/js/src/src/base/ws/WsClient.d.ts +11 -0
  353. package/js/src/src/base/ws/WsClient.js +69 -0
  354. package/js/src/src/bequant.d.ts +4 -0
  355. package/js/src/src/bequant.js +35 -0
  356. package/js/src/src/bidarz.d.ts +16 -0
  357. package/js/src/src/bidarz.js +327 -0
  358. package/js/src/src/bigone.d.ts +296 -0
  359. package/js/src/src/bigone.js +2340 -0
  360. package/js/src/src/binance.d.ts +1667 -0
  361. package/js/src/src/binance.js +14400 -0
  362. package/js/src/src/binancecoinm.d.ts +6 -0
  363. package/js/src/src/binancecoinm.js +51 -0
  364. package/js/src/src/binanceus.d.ts +4 -0
  365. package/js/src/src/binanceus.js +225 -0
  366. package/js/src/src/binanceusdm.d.ts +6 -0
  367. package/js/src/src/binanceusdm.js +63 -0
  368. package/js/src/src/bingx.d.ts +778 -0
  369. package/js/src/src/bingx.js +6705 -0
  370. package/js/src/src/bit24.d.ts +24 -0
  371. package/js/src/src/bit24.js +520 -0
  372. package/js/src/src/bit2c.d.ts +146 -0
  373. package/js/src/src/bit2c.js +1029 -0
  374. package/js/src/src/bitbank.d.ts +181 -0
  375. package/js/src/src/bitbank.js +1146 -0
  376. package/js/src/src/bitbarg.d.ts +21 -0
  377. package/js/src/src/bitbarg.js +312 -0
  378. package/js/src/src/bitbns.d.ts +184 -0
  379. package/js/src/src/bitbns.js +1288 -0
  380. package/js/src/src/bitfinex.d.ts +516 -0
  381. package/js/src/src/bitfinex.js +3951 -0
  382. package/js/src/src/bitflyer.d.ts +229 -0
  383. package/js/src/src/bitflyer.js +1209 -0
  384. package/js/src/src/bitget.d.ts +1109 -0
  385. package/js/src/src/bitget.js +11033 -0
  386. package/js/src/src/bithumb.d.ts +165 -0
  387. package/js/src/src/bithumb.js +1257 -0
  388. package/js/src/src/bitimen.d.ts +23 -0
  389. package/js/src/src/bitimen.js +424 -0
  390. package/js/src/src/bitir.d.ts +23 -0
  391. package/js/src/src/bitir.js +521 -0
  392. package/js/src/src/bitmart.d.ts +736 -0
  393. package/js/src/src/bitmart.js +5639 -0
  394. package/js/src/src/bitmex.d.ts +395 -0
  395. package/js/src/src/bitmex.js +3088 -0
  396. package/js/src/src/bitopro.d.ts +295 -0
  397. package/js/src/src/bitopro.js +1892 -0
  398. package/js/src/src/bitpin.d.ts +23 -0
  399. package/js/src/src/bitpin.js +487 -0
  400. package/js/src/src/bitrue.d.ts +384 -0
  401. package/js/src/src/bitrue.js +3382 -0
  402. package/js/src/src/bitso.d.ts +270 -0
  403. package/js/src/src/bitso.js +1881 -0
  404. package/js/src/src/bitstamp.d.ts +355 -0
  405. package/js/src/src/bitstamp.js +2445 -0
  406. package/js/src/src/bitteam.d.ts +229 -0
  407. package/js/src/src/bitteam.js +2420 -0
  408. package/js/src/src/bittrade.d.ts +298 -0
  409. package/js/src/src/bittrade.js +2050 -0
  410. package/js/src/src/bitunix.d.ts +21 -0
  411. package/js/src/src/bitunix.js +326 -0
  412. package/js/src/src/bitvavo.d.ts +311 -0
  413. package/js/src/src/bitvavo.js +2204 -0
  414. package/js/src/src/blockchaincom.d.ts +256 -0
  415. package/js/src/src/blockchaincom.js +1259 -0
  416. package/js/src/src/blofin.d.ts +439 -0
  417. package/js/src/src/blofin.js +2576 -0
  418. package/js/src/src/btcalpha.d.ts +209 -0
  419. package/js/src/src/btcalpha.js +1056 -0
  420. package/js/src/src/btcbox.d.ts +144 -0
  421. package/js/src/src/btcbox.js +834 -0
  422. package/js/src/src/btcmarkets.d.ts +253 -0
  423. package/js/src/src/btcmarkets.js +1418 -0
  424. package/js/src/src/btcturk.d.ts +161 -0
  425. package/js/src/src/btcturk.js +1058 -0
  426. package/js/src/src/bybit.d.ts +1097 -0
  427. package/js/src/src/bybit.js +9382 -0
  428. package/js/src/src/bydfi.d.ts +23 -0
  429. package/js/src/src/bydfi.js +434 -0
  430. package/js/src/src/cafearz.d.ts +21 -0
  431. package/js/src/src/cafearz.js +346 -0
  432. package/js/src/src/cex.d.ts +286 -0
  433. package/js/src/src/cex.js +1799 -0
  434. package/js/src/src/coinbase.d.ts +623 -0
  435. package/js/src/src/coinbase.js +5220 -0
  436. package/js/src/src/coinbaseadvanced.d.ts +4 -0
  437. package/js/src/src/coinbaseadvanced.js +18 -0
  438. package/js/src/src/coinbaseexchange.d.ts +334 -0
  439. package/js/src/src/coinbaseexchange.js +2127 -0
  440. package/js/src/src/coinbaseinternational.d.ts +443 -0
  441. package/js/src/src/coinbaseinternational.js +2336 -0
  442. package/js/src/src/coincatch.d.ts +786 -0
  443. package/js/src/src/coincatch.js +5492 -0
  444. package/js/src/src/coincheck.d.ts +147 -0
  445. package/js/src/src/coincheck.js +962 -0
  446. package/js/src/src/coinex.d.ts +719 -0
  447. package/js/src/src/coinex.js +6166 -0
  448. package/js/src/src/coinmate.d.ts +202 -0
  449. package/js/src/src/coinmate.js +1215 -0
  450. package/js/src/src/coinmetro.d.ts +244 -0
  451. package/js/src/src/coinmetro.js +2024 -0
  452. package/js/src/src/coinone.d.ts +158 -0
  453. package/js/src/src/coinone.js +1278 -0
  454. package/js/src/src/coinsph.d.ts +310 -0
  455. package/js/src/src/coinsph.js +2203 -0
  456. package/js/src/src/coinspot.d.ts +108 -0
  457. package/js/src/src/coinspot.js +653 -0
  458. package/js/src/src/cryptocom.d.ts +463 -0
  459. package/js/src/src/cryptocom.js +3549 -0
  460. package/js/src/src/cryptomus.d.ts +158 -0
  461. package/js/src/src/cryptomus.js +1169 -0
  462. package/js/src/src/defx.d.ts +348 -0
  463. package/js/src/src/defx.js +2139 -0
  464. package/js/src/src/delta.d.ts +407 -0
  465. package/js/src/src/delta.js +3654 -0
  466. package/js/src/src/deribit.d.ts +516 -0
  467. package/js/src/src/deribit.js +3790 -0
  468. package/js/src/src/derive.d.ts +324 -0
  469. package/js/src/src/derive.js +2655 -0
  470. package/js/src/src/digifinex.d.ts +544 -0
  471. package/js/src/src/digifinex.js +4453 -0
  472. package/js/src/src/ellipx.d.ts +237 -0
  473. package/js/src/src/ellipx.js +2071 -0
  474. package/js/src/src/eterex.d.ts +21 -0
  475. package/js/src/src/eterex.js +299 -0
  476. package/js/src/src/excoino.d.ts +23 -0
  477. package/js/src/src/excoino.js +426 -0
  478. package/js/src/src/exir.d.ts +23 -0
  479. package/js/src/src/exir.js +403 -0
  480. package/js/src/src/exmo.d.ts +426 -0
  481. package/js/src/src/exmo.js +2825 -0
  482. package/js/src/src/exnovin.d.ts +22 -0
  483. package/js/src/src/exnovin.js +378 -0
  484. package/js/src/src/farhadexchange.d.ts +21 -0
  485. package/js/src/src/farhadexchange.js +280 -0
  486. package/js/src/src/fmfwio.d.ts +4 -0
  487. package/js/src/src/fmfwio.js +35 -0
  488. package/js/src/src/foxbit.d.ts +352 -0
  489. package/js/src/src/foxbit.js +2016 -0
  490. package/js/src/src/gate.d.ts +1071 -0
  491. package/js/src/src/gate.js +8282 -0
  492. package/js/src/src/gateio.d.ts +4 -0
  493. package/js/src/src/gateio.js +17 -0
  494. package/js/src/src/gemini.d.ts +257 -0
  495. package/js/src/src/gemini.js +2006 -0
  496. package/js/src/src/hamtapay.d.ts +21 -0
  497. package/js/src/src/hamtapay.js +303 -0
  498. package/js/src/src/hashkey.d.ts +628 -0
  499. package/js/src/src/hashkey.js +4363 -0
  500. package/js/src/src/hibachi.d.ts +346 -0
  501. package/js/src/src/hibachi.js +2137 -0
  502. package/js/src/src/hitbtc.d.ts +558 -0
  503. package/js/src/src/hitbtc.js +3847 -0
  504. package/js/src/src/hitobit.d.ts +23 -0
  505. package/js/src/src/hitobit.js +412 -0
  506. package/js/src/src/hollaex.d.ts +305 -0
  507. package/js/src/src/hollaex.js +2046 -0
  508. package/js/src/src/htx.d.ts +961 -0
  509. package/js/src/src/htx.js +9668 -0
  510. package/js/src/src/huobi.d.ts +4 -0
  511. package/js/src/src/huobi.js +17 -0
  512. package/js/src/src/hyperliquid.d.ts +651 -0
  513. package/js/src/src/hyperliquid.js +3937 -0
  514. package/js/src/src/independentreserve.d.ts +169 -0
  515. package/js/src/src/independentreserve.js +1115 -0
  516. package/js/src/src/indodax.d.ts +217 -0
  517. package/js/src/src/indodax.js +1454 -0
  518. package/js/src/src/iranexchange.d.ts +21 -0
  519. package/js/src/src/iranexchange.js +399 -0
  520. package/js/src/src/jibitex.d.ts +23 -0
  521. package/js/src/src/jibitex.js +416 -0
  522. package/js/src/src/kcex.d.ts +21 -0
  523. package/js/src/src/kcex.js +335 -0
  524. package/js/src/src/kifpoolme.d.ts +23 -0
  525. package/js/src/src/kifpoolme.js +410 -0
  526. package/js/src/src/kraken.d.ts +484 -0
  527. package/js/src/src/kraken.js +3518 -0
  528. package/js/src/src/krakenfutures.d.ts +362 -0
  529. package/js/src/src/krakenfutures.js +2885 -0
  530. package/js/src/src/kucoin.d.ts +759 -0
  531. package/js/src/src/kucoin.js +5153 -0
  532. package/js/src/src/kucoinfutures.d.ts +521 -0
  533. package/js/src/src/kucoinfutures.js +3381 -0
  534. package/js/src/src/latoken.d.ts +274 -0
  535. package/js/src/src/latoken.js +1824 -0
  536. package/js/src/src/lbank.d.ts +350 -0
  537. package/js/src/src/lbank.js +3146 -0
  538. package/js/src/src/luno.d.ts +252 -0
  539. package/js/src/src/luno.js +1479 -0
  540. package/js/src/src/mazdax.d.ts +23 -0
  541. package/js/src/src/mazdax.js +534 -0
  542. package/js/src/src/mercado.d.ts +160 -0
  543. package/js/src/src/mercado.js +1011 -0
  544. package/js/src/src/mexc.d.ts +768 -0
  545. package/js/src/src/mexc.js +6102 -0
  546. package/js/src/src/modetrade.d.ts +496 -0
  547. package/js/src/src/modetrade.js +2936 -0
  548. package/js/src/src/myokx.d.ts +4 -0
  549. package/js/src/src/myokx.js +54 -0
  550. package/js/src/src/ndax.d.ts +285 -0
  551. package/js/src/src/ndax.js +2598 -0
  552. package/js/src/src/nobitex.d.ts +23 -0
  553. package/js/src/src/nobitex.js +454 -0
  554. package/js/src/src/novadax.d.ts +279 -0
  555. package/js/src/src/novadax.js +1676 -0
  556. package/js/src/src/oceanex.d.ts +231 -0
  557. package/js/src/src/oceanex.js +1123 -0
  558. package/js/src/src/okcoin.d.ts +346 -0
  559. package/js/src/src/okcoin.js +3211 -0
  560. package/js/src/src/okexchange.d.ts +23 -0
  561. package/js/src/src/okexchange.js +373 -0
  562. package/js/src/src/okx.d.ts +1125 -0
  563. package/js/src/src/okx.js +9009 -0
  564. package/js/src/src/okxus.d.ts +4 -0
  565. package/js/src/src/okxus.js +54 -0
  566. package/js/src/src/ompfinex.d.ts +23 -0
  567. package/js/src/src/ompfinex.js +510 -0
  568. package/js/src/src/onetrading.d.ts +228 -0
  569. package/js/src/src/onetrading.js +1769 -0
  570. package/js/src/src/oxfun.d.ts +442 -0
  571. package/js/src/src/oxfun.js +2920 -0
  572. package/js/src/src/p2b.d.ts +189 -0
  573. package/js/src/src/p2b.js +1344 -0
  574. package/js/src/src/paradex.d.ts +389 -0
  575. package/js/src/src/paradex.js +2607 -0
  576. package/js/src/src/paymium.d.ts +133 -0
  577. package/js/src/src/paymium.js +644 -0
  578. package/js/src/src/phemex.d.ts +497 -0
  579. package/js/src/src/phemex.js +5333 -0
  580. package/js/src/src/pingi.d.ts +22 -0
  581. package/js/src/src/pingi.js +446 -0
  582. package/js/src/src/poloniex.d.ts +441 -0
  583. package/js/src/src/poloniex.js +3681 -0
  584. package/js/src/src/pooleno.d.ts +21 -0
  585. package/js/src/src/pooleno.js +347 -0
  586. package/js/src/src/pro/alpaca.d.ts +95 -0
  587. package/js/src/src/pro/alpaca.js +724 -0
  588. package/js/src/src/pro/apex.d.ts +160 -0
  589. package/js/src/src/pro/apex.js +1044 -0
  590. package/js/src/src/pro/ascendex.d.ts +99 -0
  591. package/js/src/src/pro/ascendex.js +1012 -0
  592. package/js/src/src/pro/bequant.d.ts +4 -0
  593. package/js/src/src/pro/bequant.js +42 -0
  594. package/js/src/src/pro/binance.d.ts +796 -0
  595. package/js/src/src/pro/binance.js +4373 -0
  596. package/js/src/src/pro/binancecoinm.d.ts +4 -0
  597. package/js/src/src/pro/binancecoinm.js +32 -0
  598. package/js/src/src/pro/binanceus.d.ts +4 -0
  599. package/js/src/src/pro/binanceus.js +52 -0
  600. package/js/src/src/pro/binanceusdm.d.ts +4 -0
  601. package/js/src/src/pro/binanceusdm.js +37 -0
  602. package/js/src/src/pro/bingx.d.ts +151 -0
  603. package/js/src/src/pro/bingx.js +1568 -0
  604. package/js/src/src/pro/bitfinex.d.ts +99 -0
  605. package/js/src/src/pro/bitfinex.js +1165 -0
  606. package/js/src/src/pro/bitget.d.ts +257 -0
  607. package/js/src/src/pro/bitget.js +2327 -0
  608. package/js/src/src/pro/bithumb.d.ts +59 -0
  609. package/js/src/src/pro/bithumb.js +395 -0
  610. package/js/src/src/pro/bitmart.d.ts +168 -0
  611. package/js/src/src/pro/bitmart.js +1686 -0
  612. package/js/src/src/pro/bitmex.d.ts +170 -0
  613. package/js/src/src/pro/bitmex.js +1760 -0
  614. package/js/src/src/pro/bitopro.d.ts +69 -0
  615. package/js/src/src/pro/bitopro.js +477 -0
  616. package/js/src/src/pro/bitrue.d.ts +40 -0
  617. package/js/src/src/pro/bitrue.js +461 -0
  618. package/js/src/src/pro/bitstamp.d.ts +53 -0
  619. package/js/src/src/pro/bitstamp.js +587 -0
  620. package/js/src/src/pro/bittrade.d.ts +66 -0
  621. package/js/src/src/pro/bittrade.js +606 -0
  622. package/js/src/src/pro/bitvavo.d.ts +321 -0
  623. package/js/src/src/pro/bitvavo.js +1451 -0
  624. package/js/src/src/pro/blockchaincom.d.ts +89 -0
  625. package/js/src/src/pro/blockchaincom.js +777 -0
  626. package/js/src/src/pro/blofin.d.ts +174 -0
  627. package/js/src/src/pro/blofin.js +743 -0
  628. package/js/src/src/pro/bybit.d.ts +397 -0
  629. package/js/src/src/pro/bybit.js +2519 -0
  630. package/js/src/src/pro/cex.d.ts +220 -0
  631. package/js/src/src/pro/cex.js +1535 -0
  632. package/js/src/src/pro/coinbase.d.ts +119 -0
  633. package/js/src/src/pro/coinbase.js +736 -0
  634. package/js/src/src/pro/coinbaseadvanced.d.ts +4 -0
  635. package/js/src/src/pro/coinbaseadvanced.js +18 -0
  636. package/js/src/src/pro/coinbaseexchange.d.ts +133 -0
  637. package/js/src/src/pro/coinbaseexchange.js +969 -0
  638. package/js/src/src/pro/coinbaseinternational.d.ts +143 -0
  639. package/js/src/src/pro/coinbaseinternational.js +804 -0
  640. package/js/src/src/pro/coincatch.d.ts +207 -0
  641. package/js/src/src/pro/coincatch.js +1562 -0
  642. package/js/src/src/pro/coincheck.d.ts +33 -0
  643. package/js/src/src/pro/coincheck.js +210 -0
  644. package/js/src/src/pro/coinex.d.ts +147 -0
  645. package/js/src/src/pro/coinex.js +1426 -0
  646. package/js/src/src/pro/coinone.d.ts +51 -0
  647. package/js/src/src/pro/coinone.js +413 -0
  648. package/js/src/src/pro/cryptocom.d.ts +300 -0
  649. package/js/src/src/pro/cryptocom.js +1414 -0
  650. package/js/src/src/pro/defx.d.ts +236 -0
  651. package/js/src/src/pro/defx.js +865 -0
  652. package/js/src/src/pro/deribit.d.ts +163 -0
  653. package/js/src/src/pro/deribit.js +1066 -0
  654. package/js/src/src/pro/derive.d.ts +100 -0
  655. package/js/src/src/pro/derive.js +753 -0
  656. package/js/src/src/pro/exmo.d.ts +97 -0
  657. package/js/src/src/pro/exmo.js +903 -0
  658. package/js/src/src/pro/gate.d.ts +360 -0
  659. package/js/src/src/pro/gate.js +2119 -0
  660. package/js/src/src/pro/gateio.d.ts +4 -0
  661. package/js/src/src/pro/gateio.js +17 -0
  662. package/js/src/src/pro/gemini.d.ts +106 -0
  663. package/js/src/src/pro/gemini.js +932 -0
  664. package/js/src/src/pro/hashkey.d.ts +121 -0
  665. package/js/src/src/pro/hashkey.js +843 -0
  666. package/js/src/src/pro/hitbtc.d.ts +235 -0
  667. package/js/src/src/pro/hitbtc.js +1400 -0
  668. package/js/src/src/pro/hollaex.d.ts +77 -0
  669. package/js/src/src/pro/hollaex.js +604 -0
  670. package/js/src/src/pro/htx.d.ts +141 -0
  671. package/js/src/src/pro/htx.js +2415 -0
  672. package/js/src/src/pro/huobi.d.ts +4 -0
  673. package/js/src/src/pro/huobi.js +17 -0
  674. package/js/src/src/pro/hyperliquid.d.ts +218 -0
  675. package/js/src/src/pro/hyperliquid.js +1126 -0
  676. package/js/src/src/pro/independentreserve.d.ts +36 -0
  677. package/js/src/src/pro/independentreserve.js +287 -0
  678. package/js/src/src/pro/kraken.d.ts +233 -0
  679. package/js/src/src/pro/kraken.js +1785 -0
  680. package/js/src/src/pro/krakenfutures.d.ts +178 -0
  681. package/js/src/src/pro/krakenfutures.js +1592 -0
  682. package/js/src/src/pro/kucoin.d.ts +221 -0
  683. package/js/src/src/pro/kucoin.js +1430 -0
  684. package/js/src/src/pro/kucoinfutures.d.ts +205 -0
  685. package/js/src/src/pro/kucoinfutures.js +1295 -0
  686. package/js/src/src/pro/lbank.d.ts +134 -0
  687. package/js/src/src/pro/lbank.js +950 -0
  688. package/js/src/src/pro/luno.d.ts +44 -0
  689. package/js/src/src/pro/luno.js +322 -0
  690. package/js/src/src/pro/mexc.d.ts +210 -0
  691. package/js/src/src/pro/mexc.js +2009 -0
  692. package/js/src/src/pro/modetrade.d.ts +155 -0
  693. package/js/src/src/pro/modetrade.js +1335 -0
  694. package/js/src/src/pro/myokx.d.ts +4 -0
  695. package/js/src/src/pro/myokx.js +39 -0
  696. package/js/src/src/pro/ndax.d.ts +60 -0
  697. package/js/src/src/pro/ndax.js +545 -0
  698. package/js/src/src/pro/okcoin.d.ts +91 -0
  699. package/js/src/src/pro/okcoin.js +763 -0
  700. package/js/src/src/pro/okx.d.ts +408 -0
  701. package/js/src/src/pro/okx.js +2479 -0
  702. package/js/src/src/pro/okxus.d.ts +4 -0
  703. package/js/src/src/pro/okxus.js +39 -0
  704. package/js/src/src/pro/onetrading.d.ts +107 -0
  705. package/js/src/src/pro/onetrading.js +1343 -0
  706. package/js/src/src/pro/oxfun.d.ts +234 -0
  707. package/js/src/src/pro/oxfun.js +1112 -0
  708. package/js/src/src/pro/p2b.d.ts +104 -0
  709. package/js/src/src/pro/p2b.js +506 -0
  710. package/js/src/src/pro/paradex.d.ts +54 -0
  711. package/js/src/src/pro/paradex.js +370 -0
  712. package/js/src/src/pro/phemex.d.ts +129 -0
  713. package/js/src/src/pro/phemex.js +1569 -0
  714. package/js/src/src/pro/poloniex.d.ts +214 -0
  715. package/js/src/src/pro/poloniex.js +1318 -0
  716. package/js/src/src/pro/probit.d.ts +91 -0
  717. package/js/src/src/pro/probit.js +593 -0
  718. package/js/src/src/pro/tradeogre.d.ts +49 -0
  719. package/js/src/src/pro/tradeogre.js +284 -0
  720. package/js/src/src/pro/upbit.d.ts +124 -0
  721. package/js/src/src/pro/upbit.js +689 -0
  722. package/js/src/src/pro/vertex.d.ts +104 -0
  723. package/js/src/src/pro/vertex.js +999 -0
  724. package/js/src/src/pro/whitebit.d.ts +123 -0
  725. package/js/src/src/pro/whitebit.js +971 -0
  726. package/js/src/src/pro/woo.d.ts +161 -0
  727. package/js/src/src/pro/woo.js +1351 -0
  728. package/js/src/src/pro/woofipro.d.ts +155 -0
  729. package/js/src/src/pro/woofipro.js +1335 -0
  730. package/js/src/src/pro/xt.d.ts +165 -0
  731. package/js/src/src/pro/xt.js +1230 -0
  732. package/js/src/src/probit.d.ts +283 -0
  733. package/js/src/src/probit.js +1935 -0
  734. package/js/src/src/protobuf/mexc/compiled.cjs +7186 -0
  735. package/js/src/src/protobuf/mexc/compiled.d.cts +8 -0
  736. package/js/src/src/raastin.d.ts +24 -0
  737. package/js/src/src/raastin.js +494 -0
  738. package/js/src/src/ramzinex.d.ts +23 -0
  739. package/js/src/src/ramzinex.js +510 -0
  740. package/js/src/src/sarmayex.d.ts +21 -0
  741. package/js/src/src/sarmayex.js +376 -0
  742. package/js/src/src/sarrafex.d.ts +23 -0
  743. package/js/src/src/sarrafex.js +501 -0
  744. package/js/src/src/static_dependencies/ethers/abi-coder.d.ts +50 -0
  745. package/js/src/src/static_dependencies/ethers/abi-coder.js +148 -0
  746. package/js/src/src/static_dependencies/ethers/address/address.d.ts +55 -0
  747. package/js/src/src/static_dependencies/ethers/address/address.js +162 -0
  748. package/js/src/src/static_dependencies/ethers/address/checks.d.ts +80 -0
  749. package/js/src/src/static_dependencies/ethers/address/checks.js +119 -0
  750. package/js/src/src/static_dependencies/ethers/address/contract-address.d.ts +47 -0
  751. package/js/src/src/static_dependencies/ethers/address/contract-address.js +73 -0
  752. package/js/src/src/static_dependencies/ethers/address/index.d.ts +48 -0
  753. package/js/src/src/static_dependencies/ethers/address/index.js +24 -0
  754. package/js/src/src/static_dependencies/ethers/bytes32.d.ts +14 -0
  755. package/js/src/src/static_dependencies/ethers/bytes32.js +45 -0
  756. package/js/src/src/static_dependencies/ethers/coders/abstract-coder.d.ts +120 -0
  757. package/js/src/src/static_dependencies/ethers/coders/abstract-coder.js +424 -0
  758. package/js/src/src/static_dependencies/ethers/coders/address.d.ts +12 -0
  759. package/js/src/src/static_dependencies/ethers/coders/address.js +34 -0
  760. package/js/src/src/static_dependencies/ethers/coders/anonymous.d.ts +14 -0
  761. package/js/src/src/static_dependencies/ethers/coders/anonymous.js +27 -0
  762. package/js/src/src/static_dependencies/ethers/coders/array.d.ts +24 -0
  763. package/js/src/src/static_dependencies/ethers/coders/array.js +162 -0
  764. package/js/src/src/static_dependencies/ethers/coders/boolean.d.ts +12 -0
  765. package/js/src/src/static_dependencies/ethers/coders/boolean.js +26 -0
  766. package/js/src/src/static_dependencies/ethers/coders/bytes.d.ts +18 -0
  767. package/js/src/src/static_dependencies/ethers/coders/bytes.js +39 -0
  768. package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.d.ts +14 -0
  769. package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.js +32 -0
  770. package/js/src/src/static_dependencies/ethers/coders/null.d.ts +11 -0
  771. package/js/src/src/static_dependencies/ethers/coders/null.js +29 -0
  772. package/js/src/src/static_dependencies/ethers/coders/number.d.ts +15 -0
  773. package/js/src/src/static_dependencies/ethers/coders/number.js +48 -0
  774. package/js/src/src/static_dependencies/ethers/coders/string.d.ts +12 -0
  775. package/js/src/src/static_dependencies/ethers/coders/string.js +26 -0
  776. package/js/src/src/static_dependencies/ethers/coders/tuple.d.ts +15 -0
  777. package/js/src/src/static_dependencies/ethers/coders/tuple.js +67 -0
  778. package/js/src/src/static_dependencies/ethers/fragments.d.ts +458 -0
  779. package/js/src/src/static_dependencies/ethers/fragments.js +1252 -0
  780. package/js/src/src/static_dependencies/ethers/hash/index.d.ts +10 -0
  781. package/js/src/src/static_dependencies/ethers/hash/index.js +15 -0
  782. package/js/src/src/static_dependencies/ethers/hash/solidity.d.ts +30 -0
  783. package/js/src/src/static_dependencies/ethers/hash/solidity.js +107 -0
  784. package/js/src/src/static_dependencies/ethers/hash/typed-data.d.ts +144 -0
  785. package/js/src/src/static_dependencies/ethers/hash/typed-data.js +490 -0
  786. package/js/src/src/static_dependencies/ethers/index.d.ts +19 -0
  787. package/js/src/src/static_dependencies/ethers/index.js +22 -0
  788. package/js/src/src/static_dependencies/ethers/interface.d.ts +380 -0
  789. package/js/src/src/static_dependencies/ethers/interface.js +990 -0
  790. package/js/src/src/static_dependencies/ethers/typed.d.ts +569 -0
  791. package/js/src/src/static_dependencies/ethers/typed.js +608 -0
  792. package/js/src/src/static_dependencies/ethers/utils/base58.d.ts +22 -0
  793. package/js/src/src/static_dependencies/ethers/utils/base58.js +68 -0
  794. package/js/src/src/static_dependencies/ethers/utils/base64.d.ts +39 -0
  795. package/js/src/src/static_dependencies/ethers/utils/base64.js +58 -0
  796. package/js/src/src/static_dependencies/ethers/utils/data.d.ts +92 -0
  797. package/js/src/src/static_dependencies/ethers/utils/data.js +175 -0
  798. package/js/src/src/static_dependencies/ethers/utils/errors.d.ts +509 -0
  799. package/js/src/src/static_dependencies/ethers/utils/errors.js +227 -0
  800. package/js/src/src/static_dependencies/ethers/utils/events.d.ts +76 -0
  801. package/js/src/src/static_dependencies/ethers/utils/events.js +52 -0
  802. package/js/src/src/static_dependencies/ethers/utils/fixednumber.d.ts +251 -0
  803. package/js/src/src/static_dependencies/ethers/utils/fixednumber.js +529 -0
  804. package/js/src/src/static_dependencies/ethers/utils/index.d.ts +30 -0
  805. package/js/src/src/static_dependencies/ethers/utils/index.js +38 -0
  806. package/js/src/src/static_dependencies/ethers/utils/maths.d.ts +65 -0
  807. package/js/src/src/static_dependencies/ethers/utils/maths.js +220 -0
  808. package/js/src/src/static_dependencies/ethers/utils/properties.d.ts +22 -0
  809. package/js/src/src/static_dependencies/ethers/utils/properties.js +59 -0
  810. package/js/src/src/static_dependencies/ethers/utils/rlp-decode.d.ts +5 -0
  811. package/js/src/src/static_dependencies/ethers/utils/rlp-decode.js +84 -0
  812. package/js/src/src/static_dependencies/ethers/utils/rlp-encode.d.ts +5 -0
  813. package/js/src/src/static_dependencies/ethers/utils/rlp-encode.js +54 -0
  814. package/js/src/src/static_dependencies/ethers/utils/rlp.d.ts +16 -0
  815. package/js/src/src/static_dependencies/ethers/utils/rlp.js +14 -0
  816. package/js/src/src/static_dependencies/ethers/utils/units.d.ts +23 -0
  817. package/js/src/src/static_dependencies/ethers/utils/units.js +88 -0
  818. package/js/src/src/static_dependencies/ethers/utils/utf8.d.ts +95 -0
  819. package/js/src/src/static_dependencies/ethers/utils/utf8.js +225 -0
  820. package/js/src/src/static_dependencies/ethers/utils/uuid.d.ts +7 -0
  821. package/js/src/src/static_dependencies/ethers/utils/uuid.js +35 -0
  822. package/js/src/src/static_dependencies/fflake/browser.d.ts +222 -0
  823. package/js/src/src/static_dependencies/fflake/browser.js +2578 -0
  824. package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.d.ts +116 -0
  825. package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.js +194 -0
  826. package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.d.ts +142 -0
  827. package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +307 -0
  828. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.d.ts +51 -0
  829. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +565 -0
  830. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.d.ts +5 -0
  831. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +94 -0
  832. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.d.ts +3 -0
  833. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +70 -0
  834. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.d.ts +9 -0
  835. package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +91 -0
  836. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.d.ts +3 -0
  837. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +25 -0
  838. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +101 -0
  839. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1757 -0
  840. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.d.ts +10 -0
  841. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +50 -0
  842. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.d.ts +3 -0
  843. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +80 -0
  844. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.d.ts +23 -0
  845. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +377 -0
  846. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.d.ts +7 -0
  847. package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.js +64 -0
  848. package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.d.ts +24 -0
  849. package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1627 -0
  850. package/js/src/src/static_dependencies/noble-curves/_shortw_utils.d.ts +60 -0
  851. package/js/src/src/static_dependencies/noble-curves/_shortw_utils.js +22 -0
  852. package/js/src/src/static_dependencies/noble-curves/abstract/curve.d.ts +67 -0
  853. package/js/src/src/static_dependencies/noble-curves/abstract/curve.js +157 -0
  854. package/js/src/src/static_dependencies/noble-curves/abstract/edwards.d.ts +79 -0
  855. package/js/src/src/static_dependencies/noble-curves/abstract/edwards.js +432 -0
  856. package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.d.ts +56 -0
  857. package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +171 -0
  858. package/js/src/src/static_dependencies/noble-curves/abstract/modular.d.ts +68 -0
  859. package/js/src/src/static_dependencies/noble-curves/abstract/modular.js +351 -0
  860. package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.d.ts +25 -0
  861. package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.js +162 -0
  862. package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.d.ts +29 -0
  863. package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.js +115 -0
  864. package/js/src/src/static_dependencies/noble-curves/abstract/utils.d.ts +53 -0
  865. package/js/src/src/static_dependencies/noble-curves/abstract/utils.js +227 -0
  866. package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.d.ts +204 -0
  867. package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.js +1016 -0
  868. package/js/src/src/static_dependencies/noble-curves/ed25519.d.ts +53 -0
  869. package/js/src/src/static_dependencies/noble-curves/ed25519.js +402 -0
  870. package/js/src/src/static_dependencies/noble-curves/p256.d.ts +103 -0
  871. package/js/src/src/static_dependencies/noble-curves/p256.js +47 -0
  872. package/js/src/src/static_dependencies/noble-curves/secp256k1.d.ts +91 -0
  873. package/js/src/src/static_dependencies/noble-curves/secp256k1.js +257 -0
  874. package/js/src/src/static_dependencies/noble-hashes/_assert.d.ts +21 -0
  875. package/js/src/src/static_dependencies/noble-hashes/_assert.js +48 -0
  876. package/js/src/src/static_dependencies/noble-hashes/_sha2.d.ts +23 -0
  877. package/js/src/src/static_dependencies/noble-hashes/_sha2.js +119 -0
  878. package/js/src/src/static_dependencies/noble-hashes/_u64.d.ts +35 -0
  879. package/js/src/src/static_dependencies/noble-hashes/_u64.js +66 -0
  880. package/js/src/src/static_dependencies/noble-hashes/crypto.d.ts +1 -0
  881. package/js/src/src/static_dependencies/noble-hashes/crypto.js +7 -0
  882. package/js/src/src/static_dependencies/noble-hashes/hmac.d.ts +26 -0
  883. package/js/src/src/static_dependencies/noble-hashes/hmac.js +82 -0
  884. package/js/src/src/static_dependencies/noble-hashes/md5.d.ts +18 -0
  885. package/js/src/src/static_dependencies/noble-hashes/md5.js +242 -0
  886. package/js/src/src/static_dependencies/noble-hashes/sha1.d.ts +21 -0
  887. package/js/src/src/static_dependencies/noble-hashes/sha1.js +90 -0
  888. package/js/src/src/static_dependencies/noble-hashes/sha256.d.ts +34 -0
  889. package/js/src/src/static_dependencies/noble-hashes/sha256.js +129 -0
  890. package/js/src/src/static_dependencies/noble-hashes/sha3.d.ts +97 -0
  891. package/js/src/src/static_dependencies/noble-hashes/sha3.js +211 -0
  892. package/js/src/src/static_dependencies/noble-hashes/sha512.d.ts +66 -0
  893. package/js/src/src/static_dependencies/noble-hashes/sha512.js +236 -0
  894. package/js/src/src/static_dependencies/noble-hashes/utils.d.ts +77 -0
  895. package/js/src/src/static_dependencies/noble-hashes/utils.js +147 -0
  896. package/js/src/src/static_dependencies/proxies/agent-base/helpers.d.ts +14 -0
  897. package/js/src/src/static_dependencies/proxies/agent-base/helpers.js +42 -0
  898. package/js/src/src/static_dependencies/proxies/agent-base/index.d.ts +33 -0
  899. package/js/src/src/static_dependencies/proxies/agent-base/index.js +82 -0
  900. package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.d.ts +40 -0
  901. package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.js +119 -0
  902. package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.d.ts +45 -0
  903. package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.js +150 -0
  904. package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.d.ts +15 -0
  905. package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +95 -0
  906. package/js/src/src/static_dependencies/qs/formats.cjs +22 -0
  907. package/js/src/src/static_dependencies/qs/formats.d.cts +14 -0
  908. package/js/src/src/static_dependencies/qs/index.cjs +15 -0
  909. package/js/src/src/static_dependencies/qs/index.d.cts +10 -0
  910. package/js/src/src/static_dependencies/qs/parse.cjs +208 -0
  911. package/js/src/src/static_dependencies/qs/parse.d.cts +8 -0
  912. package/js/src/src/static_dependencies/qs/stringify.cjs +192 -0
  913. package/js/src/src/static_dependencies/qs/stringify.d.cts +8 -0
  914. package/js/src/src/static_dependencies/qs/utils.cjs +202 -0
  915. package/js/src/src/static_dependencies/qs/utils.d.cts +15 -0
  916. package/js/src/src/static_dependencies/scure-base/index.d.ts +92 -0
  917. package/js/src/src/static_dependencies/scure-base/index.js +420 -0
  918. package/js/src/src/static_dependencies/scure-starknet/index.d.ts +79 -0
  919. package/js/src/src/static_dependencies/scure-starknet/index.js +323 -0
  920. package/js/src/src/static_dependencies/starknet/constants.d.ts +61 -0
  921. package/js/src/src/static_dependencies/starknet/constants.js +67 -0
  922. package/js/src/src/static_dependencies/starknet/index.d.ts +3 -0
  923. package/js/src/src/static_dependencies/starknet/index.js +9 -0
  924. package/js/src/src/static_dependencies/starknet/types/cairoEnum.d.ts +2 -0
  925. package/js/src/src/static_dependencies/starknet/types/cairoEnum.js +7 -0
  926. package/js/src/src/static_dependencies/starknet/types/calldata.d.ts +19 -0
  927. package/js/src/src/static_dependencies/starknet/types/calldata.js +28 -0
  928. package/js/src/src/static_dependencies/starknet/types/index.d.ts +13 -0
  929. package/js/src/src/static_dependencies/starknet/types/index.js +16 -0
  930. package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.d.ts +71 -0
  931. package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.js +13 -0
  932. package/js/src/src/static_dependencies/starknet/types/lib/contract/index.d.ts +24 -0
  933. package/js/src/src/static_dependencies/starknet/types/lib/contract/index.js +16 -0
  934. package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.d.ts +33 -0
  935. package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.js +7 -0
  936. package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.d.ts +52 -0
  937. package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.js +7 -0
  938. package/js/src/src/static_dependencies/starknet/types/lib/index.d.ts +248 -0
  939. package/js/src/src/static_dependencies/starknet/types/lib/index.js +52 -0
  940. package/js/src/src/static_dependencies/starknet/types/typedData.d.ts +44 -0
  941. package/js/src/src/static_dependencies/starknet/types/typedData.js +19 -0
  942. package/js/src/src/static_dependencies/starknet/utils/assert.d.ts +7 -0
  943. package/js/src/src/static_dependencies/starknet/utils/assert.js +17 -0
  944. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.d.ts +6 -0
  945. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +43 -0
  946. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.d.ts +72 -0
  947. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +117 -0
  948. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.d.ts +76 -0
  949. package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +136 -0
  950. package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.d.ts +32 -0
  951. package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.js +59 -0
  952. package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.d.ts +183 -0
  953. package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.js +229 -0
  954. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.d.ts +38 -0
  955. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +57 -0
  956. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.d.ts +35 -0
  957. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +64 -0
  958. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.d.ts +34 -0
  959. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +63 -0
  960. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.d.ts +3 -0
  961. package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.js +9 -0
  962. package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.d.ts +9 -0
  963. package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.js +67 -0
  964. package/js/src/src/static_dependencies/starknet/utils/calldata/index.d.ts +89 -0
  965. package/js/src/src/static_dependencies/starknet/utils/calldata/index.js +280 -0
  966. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +5 -0
  967. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.js +30 -0
  968. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.d.ts +20 -0
  969. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.js +8 -0
  970. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.d.ts +24 -0
  971. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +36 -0
  972. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.d.ts +23 -0
  973. package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +40 -0
  974. package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.d.ts +2 -0
  975. package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +155 -0
  976. package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.d.ts +11 -0
  977. package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.js +248 -0
  978. package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.d.ts +11 -0
  979. package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.js +214 -0
  980. package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.d.ts +6 -0
  981. package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.js +113 -0
  982. package/js/src/src/static_dependencies/starknet/utils/calldata/validate.d.ts +6 -0
  983. package/js/src/src/static_dependencies/starknet/utils/calldata/validate.js +208 -0
  984. package/js/src/src/static_dependencies/starknet/utils/encode.d.ts +207 -0
  985. package/js/src/src/static_dependencies/starknet/utils/encode.js +282 -0
  986. package/js/src/src/static_dependencies/starknet/utils/hash/classHash.d.ts +57 -0
  987. package/js/src/src/static_dependencies/starknet/utils/hash/classHash.js +223 -0
  988. package/js/src/src/static_dependencies/starknet/utils/hash/index.d.ts +6 -0
  989. package/js/src/src/static_dependencies/starknet/utils/hash/index.js +13 -0
  990. package/js/src/src/static_dependencies/starknet/utils/merkle.d.ts +35 -0
  991. package/js/src/src/static_dependencies/starknet/utils/merkle.js +84 -0
  992. package/js/src/src/static_dependencies/starknet/utils/num.d.ts +182 -0
  993. package/js/src/src/static_dependencies/starknet/utils/num.js +244 -0
  994. package/js/src/src/static_dependencies/starknet/utils/selector.d.ts +48 -0
  995. package/js/src/src/static_dependencies/starknet/utils/selector.js +85 -0
  996. package/js/src/src/static_dependencies/starknet/utils/shortString.d.ts +57 -0
  997. package/js/src/src/static_dependencies/starknet/utils/shortString.js +96 -0
  998. package/js/src/src/static_dependencies/starknet/utils/typedData.d.ts +54 -0
  999. package/js/src/src/static_dependencies/starknet/utils/typedData.js +321 -0
  1000. package/js/src/src/static_dependencies/watchable/src/types.d.ts +28 -0
  1001. package/js/src/src/static_dependencies/watchable/src/types.js +8 -0
  1002. package/js/src/src/static_dependencies/watchable/src/unpromise.d.ts +120 -0
  1003. package/js/src/src/static_dependencies/watchable/src/unpromise.js +297 -0
  1004. package/js/src/src/static_dependencies/zklink/zklink-sdk-web.d.ts +1279 -0
  1005. package/js/src/src/static_dependencies/zklink/zklink-sdk-web.js +4282 -0
  1006. package/js/src/src/tabdeal.d.ts +23 -0
  1007. package/js/src/src/tabdeal.js +387 -0
  1008. package/js/src/src/tehran_exchange.d.ts +21 -0
  1009. package/js/src/src/tehran_exchange.js +333 -0
  1010. package/js/src/src/tetherland.d.ts +21 -0
  1011. package/js/src/src/tetherland.js +367 -0
  1012. package/js/src/src/timex.d.ts +247 -0
  1013. package/js/src/src/timex.js +1792 -0
  1014. package/js/src/src/tokocrypto.d.ts +261 -0
  1015. package/js/src/src/tokocrypto.js +2641 -0
  1016. package/js/src/src/toobit.d.ts +22 -0
  1017. package/js/src/src/toobit.js +445 -0
  1018. package/js/src/src/tradeogre.d.ts +149 -0
  1019. package/js/src/src/tradeogre.js +878 -0
  1020. package/js/src/src/twox.d.ts +21 -0
  1021. package/js/src/src/twox.js +371 -0
  1022. package/js/src/src/ubitex.d.ts +23 -0
  1023. package/js/src/src/ubitex.js +433 -0
  1024. package/js/src/src/upbit.d.ts +377 -0
  1025. package/js/src/src/upbit.js +2340 -0
  1026. package/js/src/src/vertex.d.ts +346 -0
  1027. package/js/src/src/vertex.js +3146 -0
  1028. package/js/src/src/wallex.d.ts +23 -0
  1029. package/js/src/src/wallex.js +467 -0
  1030. package/js/src/src/wavesexchange.d.ts +244 -0
  1031. package/js/src/src/wavesexchange.js +2747 -0
  1032. package/js/src/src/whitebit.d.ts +571 -0
  1033. package/js/src/src/whitebit.js +3437 -0
  1034. package/js/src/src/woo.d.ts +727 -0
  1035. package/js/src/src/woo.js +4183 -0
  1036. package/js/src/src/woofipro.d.ts +497 -0
  1037. package/js/src/src/woofipro.js +2941 -0
  1038. package/js/src/src/xt.d.ts +568 -0
  1039. package/js/src/src/xt.js +5184 -0
  1040. package/js/src/src/yobit.d.ts +197 -0
  1041. package/js/src/src/yobit.js +1453 -0
  1042. package/js/src/src/zaif.d.ts +136 -0
  1043. package/js/src/src/zaif.js +821 -0
  1044. package/js/src/src/zonda.d.ts +214 -0
  1045. package/js/src/src/zonda.js +1984 -0
  1046. package/js/test.js +3 -3
  1047. package/package.json +1 -1
@@ -0,0 +1,1908 @@
1
+ // ----------------------------------------------------------------------------
2
+
3
+ // PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
+ // https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
+ // EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
+
7
+ // ---------------------------------------------------------------------------
8
+ import Exchange from './abstract/alpaca.js';
9
+ import { Precise } from './base/Precise.js';
10
+ import { ExchangeError, BadRequest, PermissionDenied, BadSymbol, NotSupported, InsufficientFunds, InvalidOrder, RateLimitExceeded, ArgumentsRequired } from './base/errors.js';
11
+ import { TICK_SIZE } from './base/functions/number.js';
12
+ // ---------------------------------------------------------------------------xs
13
+ /**
14
+ * @class alpaca
15
+ * @augments Exchange
16
+ */
17
+ export default class alpaca extends Exchange {
18
+ describe() {
19
+ return this.deepExtend(super.describe(), {
20
+ 'id': 'alpaca',
21
+ 'name': 'Alpaca',
22
+ 'countries': ['US'],
23
+ // 3 req/s for free
24
+ // 150 req/s for subscribers: https://alpaca.markets/data
25
+ // for brokers: https://alpaca.markets/docs/api-references/broker-api/#authentication-and-rate-limit
26
+ 'rateLimit': 333,
27
+ 'hostname': 'alpaca.markets',
28
+ 'pro': true,
29
+ 'urls': {
30
+ 'logo': 'https://github.com/user-attachments/assets/e9476df8-a450-4c3e-ab9a-1a7794219e1b',
31
+ 'www': 'https://alpaca.markets',
32
+ 'api': {
33
+ 'broker': 'https://broker-api.{hostname}',
34
+ 'trader': 'https://api.{hostname}',
35
+ 'market': 'https://data.{hostname}',
36
+ },
37
+ 'test': {
38
+ 'broker': 'https://broker-api.sandbox.{hostname}',
39
+ 'trader': 'https://paper-api.{hostname}',
40
+ 'market': 'https://data.{hostname}',
41
+ },
42
+ 'doc': 'https://alpaca.markets/docs/',
43
+ 'fees': 'https://docs.alpaca.markets/docs/crypto-fees',
44
+ },
45
+ 'has': {
46
+ 'CORS': false,
47
+ 'spot': true,
48
+ 'margin': false,
49
+ 'swap': false,
50
+ 'future': false,
51
+ 'option': false,
52
+ 'addMargin': false,
53
+ 'borrowCrossMargin': false,
54
+ 'borrowIsolatedMargin': false,
55
+ 'borrowMargin': false,
56
+ 'cancelAllOrders': true,
57
+ 'cancelOrder': true,
58
+ 'closeAllPositions': false,
59
+ 'closePosition': false,
60
+ 'createMarketBuyOrder': true,
61
+ 'createMarketBuyOrderWithCost': true,
62
+ 'createMarketOrderWithCost': true,
63
+ 'createOrder': true,
64
+ 'createOrderWithTakeProfitAndStopLoss': false,
65
+ 'createOrderWithTakeProfitAndStopLossWs': false,
66
+ 'createReduceOnlyOrder': false,
67
+ 'createStopOrder': true,
68
+ 'createTriggerOrder': true,
69
+ 'editOrder': true,
70
+ 'fetchBalance': true,
71
+ 'fetchBidsAsks': false,
72
+ 'fetchBorrowInterest': false,
73
+ 'fetchBorrowRate': false,
74
+ 'fetchBorrowRateHistories': false,
75
+ 'fetchBorrowRateHistory': false,
76
+ 'fetchBorrowRates': false,
77
+ 'fetchBorrowRatesPerSymbol': false,
78
+ 'fetchClosedOrders': true,
79
+ 'fetchCrossBorrowRate': false,
80
+ 'fetchCrossBorrowRates': false,
81
+ 'fetchCurrencies': false,
82
+ 'fetchDepositAddress': true,
83
+ 'fetchDepositAddressesByNetwork': false,
84
+ 'fetchDeposits': true,
85
+ 'fetchDepositsWithdrawals': true,
86
+ 'fetchFundingHistory': false,
87
+ 'fetchFundingInterval': false,
88
+ 'fetchFundingIntervals': false,
89
+ 'fetchFundingRate': false,
90
+ 'fetchFundingRateHistory': false,
91
+ 'fetchFundingRates': false,
92
+ 'fetchGreeks': false,
93
+ 'fetchIndexOHLCV': false,
94
+ 'fetchIsolatedBorrowRate': false,
95
+ 'fetchIsolatedBorrowRates': false,
96
+ 'fetchIsolatedPositions': false,
97
+ 'fetchL1OrderBook': true,
98
+ 'fetchL2OrderBook': false,
99
+ 'fetchLeverage': false,
100
+ 'fetchLeverages': false,
101
+ 'fetchLeverageTiers': false,
102
+ 'fetchLiquidations': false,
103
+ 'fetchLongShortRatio': false,
104
+ 'fetchLongShortRatioHistory': false,
105
+ 'fetchMarginAdjustmentHistory': false,
106
+ 'fetchMarginMode': false,
107
+ 'fetchMarginModes': false,
108
+ 'fetchMarketLeverageTiers': false,
109
+ 'fetchMarkets': true,
110
+ 'fetchMarkOHLCV': false,
111
+ 'fetchMarkPrices': false,
112
+ 'fetchMyLiquidations': false,
113
+ 'fetchMySettlementHistory': false,
114
+ 'fetchMyTrades': true,
115
+ 'fetchOHLCV': true,
116
+ 'fetchOpenInterest': false,
117
+ 'fetchOpenInterestHistory': false,
118
+ 'fetchOpenInterests': false,
119
+ 'fetchOpenOrder': false,
120
+ 'fetchOpenOrders': true,
121
+ 'fetchOption': false,
122
+ 'fetchOptionChain': false,
123
+ 'fetchOrder': true,
124
+ 'fetchOrderBook': true,
125
+ 'fetchOrders': true,
126
+ 'fetchPosition': false,
127
+ 'fetchPositionHistory': false,
128
+ 'fetchPositionMode': false,
129
+ 'fetchPositions': false,
130
+ 'fetchPositionsForSymbol': false,
131
+ 'fetchPositionsHistory': false,
132
+ 'fetchPositionsRisk': false,
133
+ 'fetchPremiumIndexOHLCV': false,
134
+ 'fetchSettlementHistory': false,
135
+ 'fetchStatus': false,
136
+ 'fetchTicker': true,
137
+ 'fetchTickers': true,
138
+ 'fetchTime': true,
139
+ 'fetchTrades': true,
140
+ 'fetchTradingFee': false,
141
+ 'fetchTradingFees': false,
142
+ 'fetchTransactionFees': false,
143
+ 'fetchTransactions': false,
144
+ 'fetchTransfers': false,
145
+ 'fetchVolatilityHistory': false,
146
+ 'fetchWithdrawals': true,
147
+ 'reduceMargin': false,
148
+ 'repayCrossMargin': false,
149
+ 'repayIsolatedMargin': false,
150
+ 'sandbox': true,
151
+ 'setLeverage': false,
152
+ 'setMargin': false,
153
+ 'setMarginMode': false,
154
+ 'setPositionMode': false,
155
+ 'transfer': false,
156
+ 'withdraw': true,
157
+ },
158
+ 'api': {
159
+ 'broker': {},
160
+ 'trader': {
161
+ 'private': {
162
+ 'get': [
163
+ 'v2/account',
164
+ 'v2/orders',
165
+ 'v2/orders/{order_id}',
166
+ 'v2/positions',
167
+ 'v2/positions/{symbol_or_asset_id}',
168
+ 'v2/account/portfolio/history',
169
+ 'v2/watchlists',
170
+ 'v2/watchlists/{watchlist_id}',
171
+ 'v2/watchlists:by_name',
172
+ 'v2/account/configurations',
173
+ 'v2/account/activities',
174
+ 'v2/account/activities/{activity_type}',
175
+ 'v2/calendar',
176
+ 'v2/clock',
177
+ 'v2/assets',
178
+ 'v2/assets/{symbol_or_asset_id}',
179
+ 'v2/corporate_actions/announcements/{id}',
180
+ 'v2/corporate_actions/announcements',
181
+ 'v2/wallets',
182
+ 'v2/wallets/transfers',
183
+ ],
184
+ 'post': [
185
+ 'v2/orders',
186
+ 'v2/watchlists',
187
+ 'v2/watchlists/{watchlist_id}',
188
+ 'v2/watchlists:by_name',
189
+ 'v2/wallets/transfers',
190
+ ],
191
+ 'put': [
192
+ 'v2/orders/{order_id}',
193
+ 'v2/watchlists/{watchlist_id}',
194
+ 'v2/watchlists:by_name',
195
+ ],
196
+ 'patch': [
197
+ 'v2/orders/{order_id}',
198
+ 'v2/account/configurations',
199
+ ],
200
+ 'delete': [
201
+ 'v2/orders',
202
+ 'v2/orders/{order_id}',
203
+ 'v2/positions',
204
+ 'v2/positions/{symbol_or_asset_id}',
205
+ 'v2/watchlists/{watchlist_id}',
206
+ 'v2/watchlists:by_name',
207
+ 'v2/watchlists/{watchlist_id}/{symbol}',
208
+ ],
209
+ },
210
+ },
211
+ 'market': {
212
+ 'public': {
213
+ 'get': [
214
+ 'v1beta3/crypto/{loc}/bars',
215
+ 'v1beta3/crypto/{loc}/latest/bars',
216
+ 'v1beta3/crypto/{loc}/latest/orderbooks',
217
+ 'v1beta3/crypto/{loc}/latest/quotes',
218
+ 'v1beta3/crypto/{loc}/latest/trades',
219
+ 'v1beta3/crypto/{loc}/quotes',
220
+ 'v1beta3/crypto/{loc}/snapshots',
221
+ 'v1beta3/crypto/{loc}/trades',
222
+ ],
223
+ },
224
+ 'private': {
225
+ 'get': [
226
+ 'v1beta1/corporate-actions',
227
+ 'v1beta1/forex/latest/rates',
228
+ 'v1beta1/forex/rates',
229
+ 'v1beta1/logos/{symbol}',
230
+ 'v1beta1/news',
231
+ 'v1beta1/screener/stocks/most-actives',
232
+ 'v1beta1/screener/{market_type}/movers',
233
+ 'v2/stocks/auctions',
234
+ 'v2/stocks/bars',
235
+ 'v2/stocks/bars/latest',
236
+ 'v2/stocks/meta/conditions/{ticktype}',
237
+ 'v2/stocks/meta/exchanges',
238
+ 'v2/stocks/quotes',
239
+ 'v2/stocks/quotes/latest',
240
+ 'v2/stocks/snapshots',
241
+ 'v2/stocks/trades',
242
+ 'v2/stocks/trades/latest',
243
+ 'v2/stocks/{symbol}/auctions',
244
+ 'v2/stocks/{symbol}/bars',
245
+ 'v2/stocks/{symbol}/bars/latest',
246
+ 'v2/stocks/{symbol}/quotes',
247
+ 'v2/stocks/{symbol}/quotes/latest',
248
+ 'v2/stocks/{symbol}/snapshot',
249
+ 'v2/stocks/{symbol}/trades',
250
+ 'v2/stocks/{symbol}/trades/latest',
251
+ ],
252
+ },
253
+ },
254
+ },
255
+ 'timeframes': {
256
+ '1m': '1min',
257
+ '3m': '3min',
258
+ '5m': '5min',
259
+ '15m': '15min',
260
+ '30m': '30min',
261
+ '1h': '1H',
262
+ '2h': '2H',
263
+ '4h': '4H',
264
+ '6h': '6H',
265
+ '8h': '8H',
266
+ '12h': '12H',
267
+ '1d': '1D',
268
+ '3d': '3D',
269
+ '1w': '1W',
270
+ '1M': '1M',
271
+ },
272
+ 'precisionMode': TICK_SIZE,
273
+ 'requiredCredentials': {
274
+ 'apiKey': true,
275
+ 'secret': true,
276
+ },
277
+ 'fees': {
278
+ 'trading': {
279
+ 'tierBased': true,
280
+ 'percentage': true,
281
+ 'maker': this.parseNumber('0.0015'),
282
+ 'taker': this.parseNumber('0.0025'),
283
+ 'tiers': {
284
+ 'taker': [
285
+ [this.parseNumber('0'), this.parseNumber('0.0025')],
286
+ [this.parseNumber('100000'), this.parseNumber('0.0022')],
287
+ [this.parseNumber('500000'), this.parseNumber('0.0020')],
288
+ [this.parseNumber('1000000'), this.parseNumber('0.0018')],
289
+ [this.parseNumber('10000000'), this.parseNumber('0.0015')],
290
+ [this.parseNumber('25000000'), this.parseNumber('0.0013')],
291
+ [this.parseNumber('50000000'), this.parseNumber('0.0012')],
292
+ [this.parseNumber('100000000'), this.parseNumber('0.001')],
293
+ ],
294
+ 'maker': [
295
+ [this.parseNumber('0'), this.parseNumber('0.0015')],
296
+ [this.parseNumber('100000'), this.parseNumber('0.0012')],
297
+ [this.parseNumber('500000'), this.parseNumber('0.001')],
298
+ [this.parseNumber('1000000'), this.parseNumber('0.0008')],
299
+ [this.parseNumber('10000000'), this.parseNumber('0.0005')],
300
+ [this.parseNumber('25000000'), this.parseNumber('0.0002')],
301
+ [this.parseNumber('50000000'), this.parseNumber('0.0002')],
302
+ [this.parseNumber('100000000'), this.parseNumber('0.00')],
303
+ ],
304
+ },
305
+ },
306
+ },
307
+ 'headers': {
308
+ 'APCA-PARTNER-ID': 'ccxt',
309
+ },
310
+ 'options': {
311
+ 'defaultExchange': 'CBSE',
312
+ 'exchanges': [
313
+ 'CBSE',
314
+ 'FTX',
315
+ 'GNSS',
316
+ 'ERSX', // ErisX
317
+ ],
318
+ 'defaultTimeInForce': 'gtc',
319
+ 'clientOrderId': 'ccxt_{id}',
320
+ },
321
+ 'features': {
322
+ 'spot': {
323
+ 'sandbox': true,
324
+ 'createOrder': {
325
+ 'marginMode': false,
326
+ 'triggerPrice': true,
327
+ 'triggerPriceType': undefined,
328
+ 'triggerDirection': false,
329
+ 'stopLossPrice': false,
330
+ 'takeProfitPrice': false,
331
+ 'attachedStopLossTakeProfit': {
332
+ 'triggerPriceType': {
333
+ 'last': true,
334
+ 'mark': true,
335
+ 'index': true,
336
+ },
337
+ 'price': true,
338
+ },
339
+ 'timeInForce': {
340
+ 'IOC': true,
341
+ 'FOK': true,
342
+ 'PO': true,
343
+ 'GTD': false,
344
+ },
345
+ 'hedged': false,
346
+ 'trailing': true,
347
+ 'leverage': false,
348
+ 'marketBuyRequiresPrice': false,
349
+ 'marketBuyByCost': false,
350
+ 'selfTradePrevention': false,
351
+ 'iceberg': false,
352
+ },
353
+ 'createOrders': undefined,
354
+ 'fetchMyTrades': {
355
+ 'marginMode': false,
356
+ 'limit': 100,
357
+ 'daysBack': 100000,
358
+ 'untilDays': 100000,
359
+ 'symbolRequired': false,
360
+ },
361
+ 'fetchOrder': {
362
+ 'marginMode': false,
363
+ 'trigger': false,
364
+ 'trailing': false,
365
+ 'symbolRequired': false,
366
+ },
367
+ 'fetchOpenOrders': {
368
+ 'marginMode': false,
369
+ 'limit': 500,
370
+ 'trigger': false,
371
+ 'trailing': false,
372
+ 'symbolRequired': false,
373
+ },
374
+ 'fetchOrders': {
375
+ 'marginMode': false,
376
+ 'limit': 500,
377
+ 'daysBack': 100000,
378
+ 'untilDays': 100000,
379
+ 'trigger': false,
380
+ 'trailing': false,
381
+ 'symbolRequired': false,
382
+ },
383
+ 'fetchClosedOrders': {
384
+ 'marginMode': false,
385
+ 'limit': 500,
386
+ 'daysBack': 100000,
387
+ 'daysBackCanceled': undefined,
388
+ 'untilDays': 100000,
389
+ 'trigger': false,
390
+ 'trailing': false,
391
+ 'symbolRequired': false,
392
+ },
393
+ 'fetchOHLCV': {
394
+ 'limit': 1000,
395
+ },
396
+ },
397
+ 'swap': {
398
+ 'linear': undefined,
399
+ 'inverse': undefined,
400
+ },
401
+ 'future': {
402
+ 'linear': undefined,
403
+ 'inverse': undefined,
404
+ },
405
+ },
406
+ 'exceptions': {
407
+ 'exact': {
408
+ 'forbidden.': PermissionDenied,
409
+ '40410000': InvalidOrder,
410
+ '40010001': BadRequest,
411
+ '40110000': PermissionDenied,
412
+ '40310000': InsufficientFunds,
413
+ '42910000': RateLimitExceeded, // {"code":42910000,"message":"rate limit exceeded"}
414
+ },
415
+ 'broad': {
416
+ 'Invalid format for parameter': BadRequest,
417
+ 'Invalid symbol': BadSymbol, // {"message":"Invalid symbol(s): BTC/USDdsda does not match ^[A-Z]+/[A-Z]+$"}
418
+ },
419
+ },
420
+ });
421
+ }
422
+ /**
423
+ * @method
424
+ * @name alpaca#fetchTime
425
+ * @description fetches the current integer timestamp in milliseconds from the exchange server
426
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
427
+ * @returns {int} the current integer timestamp in milliseconds from the exchange server
428
+ */
429
+ async fetchTime(params = {}) {
430
+ const response = await this.traderPrivateGetV2Clock(params);
431
+ //
432
+ // {
433
+ // timestamp: '2023-11-22T08:07:57.654738097-05:00',
434
+ // is_open: false,
435
+ // next_open: '2023-11-22T09:30:00-05:00',
436
+ // next_close: '2023-11-22T16:00:00-05:00'
437
+ // }
438
+ //
439
+ const timestamp = this.safeString(response, 'timestamp');
440
+ const localTime = timestamp.slice(0, 23);
441
+ const jetlagStrStart = timestamp.length - 6;
442
+ const jetlagStrEnd = timestamp.length - 3;
443
+ const jetlag = timestamp.slice(jetlagStrStart, jetlagStrEnd);
444
+ const iso = this.parse8601(localTime) - this.parseToNumeric(jetlag) * 3600 * 1000;
445
+ return iso;
446
+ }
447
+ /**
448
+ * @method
449
+ * @name alpaca#fetchMarkets
450
+ * @description retrieves data on all markets for alpaca
451
+ * @see https://docs.alpaca.markets/reference/get-v2-assets
452
+ * @param {object} [params] extra parameters specific to the exchange api endpoint
453
+ * @returns {object[]} an array of objects representing market data
454
+ */
455
+ async fetchMarkets(params = {}) {
456
+ const request = {
457
+ 'asset_class': 'crypto',
458
+ 'status': 'active',
459
+ };
460
+ const assets = await this.traderPrivateGetV2Assets(this.extend(request, params));
461
+ //
462
+ // [
463
+ // {
464
+ // "id": "c150e086-1e75-44e6-9c2c-093bb1e93139",
465
+ // "class": "crypto",
466
+ // "exchange": "CRYPTO",
467
+ // "symbol": "BTC/USDT",
468
+ // "name": "Bitcoin / USD Tether",
469
+ // "status": "active",
470
+ // "tradable": true,
471
+ // "marginable": false,
472
+ // "maintenance_margin_requirement": 100,
473
+ // "shortable": false,
474
+ // "easy_to_borrow": false,
475
+ // "fractionable": true,
476
+ // "attributes": [],
477
+ // "min_order_size": "0.000026873",
478
+ // "min_trade_increment": "0.000000001",
479
+ // "price_increment": "1"
480
+ // }
481
+ // ]
482
+ //
483
+ return this.parseMarkets(assets);
484
+ }
485
+ parseMarket(asset) {
486
+ //
487
+ // {
488
+ // "id": "c150e086-1e75-44e6-9c2c-093bb1e93139",
489
+ // "class": "crypto",
490
+ // "exchange": "CRYPTO",
491
+ // "symbol": "BTC/USDT",
492
+ // "name": "Bitcoin / USD Tether",
493
+ // "status": "active",
494
+ // "tradable": true,
495
+ // "marginable": false,
496
+ // "maintenance_margin_requirement": 101,
497
+ // "shortable": false,
498
+ // "easy_to_borrow": false,
499
+ // "fractionable": true,
500
+ // "attributes": [],
501
+ // "min_order_size": "0.000026873",
502
+ // "min_trade_increment": "0.000000001",
503
+ // "price_increment": "1"
504
+ // }
505
+ //
506
+ const marketId = this.safeString(asset, 'symbol');
507
+ const parts = marketId.split('/');
508
+ const assetClass = this.safeString(asset, 'class');
509
+ const baseId = this.safeString(parts, 0);
510
+ const quoteId = this.safeString(parts, 1);
511
+ const base = this.safeCurrencyCode(baseId);
512
+ let quote = this.safeCurrencyCode(quoteId);
513
+ // Us equity markets do not include quote in symbol.
514
+ // We can safely coerce us_equity quote to USD
515
+ if (quote === undefined && assetClass === 'us_equity') {
516
+ quote = 'USD';
517
+ }
518
+ const symbol = base + '/' + quote;
519
+ const status = this.safeString(asset, 'status');
520
+ const active = (status === 'active');
521
+ const minAmount = this.safeNumber(asset, 'min_order_size');
522
+ const amount = this.safeNumber(asset, 'min_trade_increment');
523
+ const price = this.safeNumber(asset, 'price_increment');
524
+ return {
525
+ 'id': marketId,
526
+ 'symbol': symbol,
527
+ 'base': base,
528
+ 'quote': quote,
529
+ 'settle': undefined,
530
+ 'baseId': baseId,
531
+ 'quoteId': quoteId,
532
+ 'settleId': undefined,
533
+ 'type': 'spot',
534
+ 'spot': true,
535
+ 'margin': undefined,
536
+ 'swap': false,
537
+ 'future': false,
538
+ 'option': false,
539
+ 'active': active,
540
+ 'contract': false,
541
+ 'linear': undefined,
542
+ 'inverse': undefined,
543
+ 'contractSize': undefined,
544
+ 'expiry': undefined,
545
+ 'expiryDatetime': undefined,
546
+ 'strike': undefined,
547
+ 'optionType': undefined,
548
+ 'precision': {
549
+ 'amount': amount,
550
+ 'price': price,
551
+ },
552
+ 'limits': {
553
+ 'leverage': {
554
+ 'min': undefined,
555
+ 'max': undefined,
556
+ },
557
+ 'amount': {
558
+ 'min': minAmount,
559
+ 'max': undefined,
560
+ },
561
+ 'price': {
562
+ 'min': undefined,
563
+ 'max': undefined,
564
+ },
565
+ 'cost': {
566
+ 'min': undefined,
567
+ 'max': undefined,
568
+ },
569
+ },
570
+ 'created': undefined,
571
+ 'info': asset,
572
+ };
573
+ }
574
+ /**
575
+ * @method
576
+ * @name alpaca#fetchTrades
577
+ * @description get the list of most recent trades for a particular symbol
578
+ * @see https://docs.alpaca.markets/reference/cryptotrades
579
+ * @see https://docs.alpaca.markets/reference/cryptolatesttrades
580
+ * @param {string} symbol unified symbol of the market to fetch trades for
581
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
582
+ * @param {int} [limit] the maximum amount of trades to fetch
583
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
584
+ * @param {string} [params.loc] crypto location, default: us
585
+ * @param {string} [params.method] method, default: marketPublicGetV1beta3CryptoLocTrades
586
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
587
+ */
588
+ async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
589
+ await this.loadMarkets();
590
+ const market = this.market(symbol);
591
+ const marketId = market['id'];
592
+ const loc = this.safeString(params, 'loc', 'us');
593
+ const method = this.safeString(params, 'method', 'marketPublicGetV1beta3CryptoLocTrades');
594
+ const request = {
595
+ 'symbols': marketId,
596
+ 'loc': loc,
597
+ };
598
+ params = this.omit(params, ['loc', 'method']);
599
+ let symbolTrades = undefined;
600
+ if (method === 'marketPublicGetV1beta3CryptoLocTrades') {
601
+ if (since !== undefined) {
602
+ request['start'] = this.iso8601(since);
603
+ }
604
+ if (limit !== undefined) {
605
+ request['limit'] = limit;
606
+ }
607
+ const response = await this.marketPublicGetV1beta3CryptoLocTrades(this.extend(request, params));
608
+ //
609
+ // {
610
+ // "next_page_token": null,
611
+ // "trades": {
612
+ // "BTC/USD": [
613
+ // {
614
+ // "i": 36440704,
615
+ // "p": 22625,
616
+ // "s": 0.0001,
617
+ // "t": "2022-07-21T11:47:31.073391Z",
618
+ // "tks": "B"
619
+ // }
620
+ // ]
621
+ // }
622
+ // }
623
+ //
624
+ const trades = this.safeDict(response, 'trades', {});
625
+ symbolTrades = this.safeList(trades, marketId, []);
626
+ }
627
+ else if (method === 'marketPublicGetV1beta3CryptoLocLatestTrades') {
628
+ const response = await this.marketPublicGetV1beta3CryptoLocLatestTrades(this.extend(request, params));
629
+ //
630
+ // {
631
+ // "trades": {
632
+ // "BTC/USD": {
633
+ // "i": 36440704,
634
+ // "p": 22625,
635
+ // "s": 0.0001,
636
+ // "t": "2022-07-21T11:47:31.073391Z",
637
+ // "tks": "B"
638
+ // }
639
+ // }
640
+ // }
641
+ //
642
+ const trades = this.safeDict(response, 'trades', {});
643
+ symbolTrades = this.safeDict(trades, marketId, {});
644
+ symbolTrades = [symbolTrades];
645
+ }
646
+ else {
647
+ throw new NotSupported(this.id + ' fetchTrades() does not support ' + method + ', marketPublicGetV1beta3CryptoLocTrades and marketPublicGetV1beta3CryptoLocLatestTrades are supported');
648
+ }
649
+ return this.parseTrades(symbolTrades, market, since, limit);
650
+ }
651
+ /**
652
+ * @method
653
+ * @name alpaca#fetchOrderBook
654
+ * @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
655
+ * @see https://docs.alpaca.markets/reference/cryptolatestorderbooks
656
+ * @param {string} symbol unified symbol of the market to fetch the order book for
657
+ * @param {int} [limit] the maximum amount of order book entries to return
658
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
659
+ * @param {string} [params.loc] crypto location, default: us
660
+ * @returns {object} A dictionary of [order book structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-book-structure} indexed by market symbols
661
+ */
662
+ async fetchOrderBook(symbol, limit = undefined, params = {}) {
663
+ await this.loadMarkets();
664
+ const market = this.market(symbol);
665
+ const id = market['id'];
666
+ const loc = this.safeString(params, 'loc', 'us');
667
+ const request = {
668
+ 'symbols': id,
669
+ 'loc': loc,
670
+ };
671
+ const response = await this.marketPublicGetV1beta3CryptoLocLatestOrderbooks(this.extend(request, params));
672
+ //
673
+ // {
674
+ // "orderbooks":{
675
+ // "BTC/USD":{
676
+ // "a":[
677
+ // {
678
+ // "p":22208,
679
+ // "s":0.0051
680
+ // },
681
+ // {
682
+ // "p":22209,
683
+ // "s":0.1123
684
+ // },
685
+ // {
686
+ // "p":22210,
687
+ // "s":0.2465
688
+ // }
689
+ // ],
690
+ // "b":[
691
+ // {
692
+ // "p":22203,
693
+ // "s":0.395
694
+ // },
695
+ // {
696
+ // "p":22202,
697
+ // "s":0.2465
698
+ // },
699
+ // {
700
+ // "p":22201,
701
+ // "s":0.6455
702
+ // }
703
+ // ],
704
+ // "t":"2022-07-19T13:41:55.13210112Z"
705
+ // }
706
+ // }
707
+ // }
708
+ //
709
+ const orderbooks = this.safeDict(response, 'orderbooks', {});
710
+ const rawOrderbook = this.safeDict(orderbooks, id, {});
711
+ const timestamp = this.parse8601(this.safeString(rawOrderbook, 't'));
712
+ return this.parseOrderBook(rawOrderbook, market['symbol'], timestamp, 'b', 'a', 'p', 's');
713
+ }
714
+ /**
715
+ * @method
716
+ * @name alpaca#fetchOHLCV
717
+ * @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
718
+ * @see https://docs.alpaca.markets/reference/cryptobars
719
+ * @see https://docs.alpaca.markets/reference/cryptolatestbars
720
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
721
+ * @param {string} timeframe the length of time each candle represents
722
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
723
+ * @param {int} [limit] the maximum amount of candles to fetch
724
+ * @param {object} [params] extra parameters specific to the alpha api endpoint
725
+ * @param {string} [params.loc] crypto location, default: us
726
+ * @param {string} [params.method] method, default: marketPublicGetV1beta3CryptoLocBars
727
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
728
+ */
729
+ async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
730
+ await this.loadMarkets();
731
+ const market = this.market(symbol);
732
+ const marketId = market['id'];
733
+ const loc = this.safeString(params, 'loc', 'us');
734
+ const method = this.safeString(params, 'method', 'marketPublicGetV1beta3CryptoLocBars');
735
+ const request = {
736
+ 'symbols': marketId,
737
+ 'loc': loc,
738
+ };
739
+ params = this.omit(params, ['loc', 'method']);
740
+ let ohlcvs = undefined;
741
+ if (method === 'marketPublicGetV1beta3CryptoLocBars') {
742
+ if (limit !== undefined) {
743
+ request['limit'] = limit;
744
+ }
745
+ if (since !== undefined) {
746
+ request['start'] = this.yyyymmdd(since);
747
+ }
748
+ request['timeframe'] = this.safeString(this.timeframes, timeframe, timeframe);
749
+ const response = await this.marketPublicGetV1beta3CryptoLocBars(this.extend(request, params));
750
+ //
751
+ // {
752
+ // "bars": {
753
+ // "BTC/USD": [
754
+ // {
755
+ // "c": 22887,
756
+ // "h": 22888,
757
+ // "l": 22873,
758
+ // "n": 11,
759
+ // "o": 22883,
760
+ // "t": "2022-07-21T05:00:00Z",
761
+ // "v": 1.1138,
762
+ // "vw": 22883.0155324116
763
+ // },
764
+ // {
765
+ // "c": 22895,
766
+ // "h": 22895,
767
+ // "l": 22884,
768
+ // "n": 6,
769
+ // "o": 22884,
770
+ // "t": "2022-07-21T05:01:00Z",
771
+ // "v": 0.001,
772
+ // "vw": 22889.5
773
+ // }
774
+ // ]
775
+ // },
776
+ // "next_page_token": "QlRDL1VTRHxNfDIwMjItMDctMjFUMDU6MDE6MDAuMDAwMDAwMDAwWg=="
777
+ // }
778
+ //
779
+ const bars = this.safeDict(response, 'bars', {});
780
+ ohlcvs = this.safeList(bars, marketId, []);
781
+ }
782
+ else if (method === 'marketPublicGetV1beta3CryptoLocLatestBars') {
783
+ const response = await this.marketPublicGetV1beta3CryptoLocLatestBars(this.extend(request, params));
784
+ //
785
+ // {
786
+ // "bars": {
787
+ // "BTC/USD": {
788
+ // "c": 22887,
789
+ // "h": 22888,
790
+ // "l": 22873,
791
+ // "n": 11,
792
+ // "o": 22883,
793
+ // "t": "2022-07-21T05:00:00Z",
794
+ // "v": 1.1138,
795
+ // "vw": 22883.0155324116
796
+ // }
797
+ // }
798
+ // }
799
+ //
800
+ const bars = this.safeDict(response, 'bars', {});
801
+ ohlcvs = this.safeDict(bars, marketId, {});
802
+ ohlcvs = [ohlcvs];
803
+ }
804
+ else {
805
+ throw new NotSupported(this.id + ' fetchOHLCV() does not support ' + method + ', marketPublicGetV1beta3CryptoLocBars and marketPublicGetV1beta3CryptoLocLatestBars are supported');
806
+ }
807
+ return this.parseOHLCVs(ohlcvs, market, timeframe, since, limit);
808
+ }
809
+ parseOHLCV(ohlcv, market = undefined) {
810
+ //
811
+ // {
812
+ // "c":22895,
813
+ // "h":22895,
814
+ // "l":22884,
815
+ // "n":6,
816
+ // "o":22884,
817
+ // "t":"2022-07-21T05:01:00Z",
818
+ // "v":0.001,
819
+ // "vw":22889.5
820
+ // }
821
+ //
822
+ const datetime = this.safeString(ohlcv, 't');
823
+ const timestamp = this.parse8601(datetime);
824
+ return [
825
+ timestamp,
826
+ this.safeNumber(ohlcv, 'o'),
827
+ this.safeNumber(ohlcv, 'h'),
828
+ this.safeNumber(ohlcv, 'l'),
829
+ this.safeNumber(ohlcv, 'c'),
830
+ this.safeNumber(ohlcv, 'v'), // volume
831
+ ];
832
+ }
833
+ /**
834
+ * @method
835
+ * @name alpaca#fetchTicker
836
+ * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
837
+ * @see https://docs.alpaca.markets/reference/cryptosnapshots-1
838
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
839
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
840
+ * @param {string} [params.loc] crypto location, default: us
841
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
842
+ */
843
+ async fetchTicker(symbol, params = {}) {
844
+ await this.loadMarkets();
845
+ symbol = this.symbol(symbol);
846
+ const tickers = await this.fetchTickers([symbol], params);
847
+ return this.safeDict(tickers, symbol);
848
+ }
849
+ /**
850
+ * @method
851
+ * @name alpaca#fetchTickers
852
+ * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
853
+ * @see https://docs.alpaca.markets/reference/cryptosnapshots-1
854
+ * @param {string[]} symbols unified symbols of the markets to fetch tickers for
855
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
856
+ * @param {string} [params.loc] crypto location, default: us
857
+ * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
858
+ */
859
+ async fetchTickers(symbols = undefined, params = {}) {
860
+ if (symbols === undefined) {
861
+ throw new ArgumentsRequired(this.id + ' fetchTickers() requires a symbols argument');
862
+ }
863
+ await this.loadMarkets();
864
+ symbols = this.marketSymbols(symbols);
865
+ const loc = this.safeString(params, 'loc', 'us');
866
+ const ids = this.marketIds(symbols);
867
+ const request = {
868
+ 'symbols': ids.join(','),
869
+ 'loc': loc,
870
+ };
871
+ params = this.omit(params, 'loc');
872
+ const response = await this.marketPublicGetV1beta3CryptoLocSnapshots(this.extend(request, params));
873
+ //
874
+ // {
875
+ // "snapshots": {
876
+ // "BTC/USD": {
877
+ // "dailyBar": {
878
+ // "c": 69403.554,
879
+ // "h": 69609.6515,
880
+ // "l": 69013.26,
881
+ // "n": 9,
882
+ // "o": 69536.7,
883
+ // "t": "2024-11-01T05:00:00Z",
884
+ // "v": 0.210809181,
885
+ // "vw": 69327.655393908
886
+ // },
887
+ // "latestQuote": {
888
+ // "ap": 69424.19,
889
+ // "as": 0.68149,
890
+ // "bp": 69366.086,
891
+ // "bs": 0.68312,
892
+ // "t": "2024-11-01T08:31:41.880246926Z"
893
+ // },
894
+ // "latestTrade": {
895
+ // "i": 5272941104897543146,
896
+ // "p": 69416.9,
897
+ // "s": 0.014017324,
898
+ // "t": "2024-11-01T08:14:28.245088803Z",
899
+ // "tks": "B"
900
+ // },
901
+ // "minuteBar": {
902
+ // "c": 69403.554,
903
+ // "h": 69403.554,
904
+ // "l": 69399.125,
905
+ // "n": 0,
906
+ // "o": 69399.125,
907
+ // "t": "2024-11-01T08:30:00Z",
908
+ // "v": 0,
909
+ // "vw": 0
910
+ // },
911
+ // "prevDailyBar": {
912
+ // "c": 69515.1415,
913
+ // "h": 72668.837,
914
+ // "l": 68796.85,
915
+ // "n": 129,
916
+ // "o": 72258.9,
917
+ // "t": "2024-10-31T05:00:00Z",
918
+ // "v": 2.217683307,
919
+ // "vw": 70782.6811608144
920
+ // }
921
+ // },
922
+ // }
923
+ // }
924
+ //
925
+ const results = [];
926
+ const snapshots = this.safeDict(response, 'snapshots', {});
927
+ const marketIds = Object.keys(snapshots);
928
+ for (let i = 0; i < marketIds.length; i++) {
929
+ const marketId = marketIds[i];
930
+ const market = this.safeMarket(marketId);
931
+ const entry = this.safeDict(snapshots, marketId);
932
+ const dailyBar = this.safeDict(entry, 'dailyBar', {});
933
+ const prevDailyBar = this.safeDict(entry, 'prevDailyBar', {});
934
+ const latestQuote = this.safeDict(entry, 'latestQuote', {});
935
+ const latestTrade = this.safeDict(entry, 'latestTrade', {});
936
+ const datetime = this.safeString(latestQuote, 't');
937
+ const ticker = this.safeTicker({
938
+ 'info': entry,
939
+ 'symbol': market['symbol'],
940
+ 'timestamp': this.parse8601(datetime),
941
+ 'datetime': datetime,
942
+ 'high': this.safeString(dailyBar, 'h'),
943
+ 'low': this.safeString(dailyBar, 'l'),
944
+ 'bid': this.safeString(latestQuote, 'bp'),
945
+ 'bidVolume': this.safeString(latestQuote, 'bs'),
946
+ 'ask': this.safeString(latestQuote, 'ap'),
947
+ 'askVolume': this.safeString(latestQuote, 'as'),
948
+ 'vwap': this.safeString(dailyBar, 'vw'),
949
+ 'open': this.safeString(dailyBar, 'o'),
950
+ 'close': this.safeString(dailyBar, 'c'),
951
+ 'last': this.safeString(latestTrade, 'p'),
952
+ 'previousClose': this.safeString(prevDailyBar, 'c'),
953
+ 'change': undefined,
954
+ 'percentage': undefined,
955
+ 'average': undefined,
956
+ 'baseVolume': this.safeString(dailyBar, 'v'),
957
+ 'quoteVolume': this.safeString(dailyBar, 'n'),
958
+ }, market);
959
+ results.push(ticker);
960
+ }
961
+ return this.filterByArray(results, 'symbol', symbols);
962
+ }
963
+ generateClientOrderId(params) {
964
+ const clientOrderIdprefix = this.safeString(this.options, 'clientOrderId');
965
+ const uuid = this.uuid();
966
+ const parts = uuid.split('-');
967
+ const random_id = parts.join('');
968
+ const defaultClientId = this.implodeParams(clientOrderIdprefix, { 'id': random_id });
969
+ const clientOrderId = this.safeString(params, 'clientOrderId', defaultClientId);
970
+ return clientOrderId;
971
+ }
972
+ /**
973
+ * @method
974
+ * @name alpaca#createMarketOrderWithCost
975
+ * @description create a market order by providing the symbol, side and cost
976
+ * @see https://docs.alpaca.markets/reference/postorder
977
+ * @param {string} symbol unified symbol of the market to create an order in
978
+ * @param {string} side 'buy' or 'sell'
979
+ * @param {float} cost how much you want to trade in units of the quote currency
980
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
981
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
982
+ */
983
+ async createMarketOrderWithCost(symbol, side, cost, params = {}) {
984
+ await this.loadMarkets();
985
+ const req = {
986
+ 'cost': cost,
987
+ };
988
+ return await this.createOrder(symbol, 'market', side, 0, undefined, this.extend(req, params));
989
+ }
990
+ /**
991
+ * @method
992
+ * @name alpaca#createMarketBuyOrderWithCost
993
+ * @description create a market buy order by providing the symbol and cost
994
+ * @see https://docs.alpaca.markets/reference/postorder
995
+ * @param {string} symbol unified symbol of the market to create an order in
996
+ * @param {float} cost how much you want to trade in units of the quote currency
997
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
998
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
999
+ */
1000
+ async createMarketBuyOrderWithCost(symbol, cost, params = {}) {
1001
+ await this.loadMarkets();
1002
+ const req = {
1003
+ 'cost': cost,
1004
+ };
1005
+ return await this.createOrder(symbol, 'market', 'buy', 0, undefined, this.extend(req, params));
1006
+ }
1007
+ /**
1008
+ * @method
1009
+ * @name alpaca#createMarketSellOrderWithCost
1010
+ * @description create a market sell order by providing the symbol and cost
1011
+ * @see https://docs.alpaca.markets/reference/postorder
1012
+ * @param {string} symbol unified symbol of the market to create an order in
1013
+ * @param {float} cost how much you want to trade in units of the quote currency
1014
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1015
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1016
+ */
1017
+ async createMarketSellOrderWithCost(symbol, cost, params = {}) {
1018
+ await this.loadMarkets();
1019
+ const req = {
1020
+ 'cost': cost,
1021
+ };
1022
+ return await this.createOrder(symbol, 'market', 'sell', cost, undefined, this.extend(req, params));
1023
+ }
1024
+ /**
1025
+ * @method
1026
+ * @name alpaca#createOrder
1027
+ * @description create a trade order
1028
+ * @see https://docs.alpaca.markets/reference/postorder
1029
+ * @param {string} symbol unified symbol of the market to create an order in
1030
+ * @param {string} type 'market', 'limit' or 'stop_limit'
1031
+ * @param {string} side 'buy' or 'sell'
1032
+ * @param {float} amount how much of currency you want to trade in units of base currency
1033
+ * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1034
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1035
+ * @param {float} [params.triggerPrice] The price at which a trigger order is triggered at
1036
+ * @param {float} [params.cost] *market orders only* the cost of the order in units of the quote currency
1037
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1038
+ */
1039
+ async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
1040
+ await this.loadMarkets();
1041
+ const market = this.market(symbol);
1042
+ const id = market['id'];
1043
+ const request = {
1044
+ 'symbol': id,
1045
+ 'side': side,
1046
+ 'type': type, // market, limit, stop_limit
1047
+ };
1048
+ const triggerPrice = this.safeStringN(params, ['triggerPrice', 'stop_price']);
1049
+ if (triggerPrice !== undefined) {
1050
+ let newType;
1051
+ if (type.indexOf('limit') >= 0) {
1052
+ newType = 'stop_limit';
1053
+ }
1054
+ else {
1055
+ throw new NotSupported(this.id + ' createOrder() does not support stop orders for ' + type + ' orders, only stop_limit orders are supported');
1056
+ }
1057
+ request['stop_price'] = this.priceToPrecision(symbol, triggerPrice);
1058
+ request['type'] = newType;
1059
+ }
1060
+ if (type.indexOf('limit') >= 0) {
1061
+ request['limit_price'] = this.priceToPrecision(symbol, price);
1062
+ }
1063
+ const cost = this.safeString(params, 'cost');
1064
+ if (cost !== undefined) {
1065
+ params = this.omit(params, 'cost');
1066
+ request['notional'] = this.costToPrecision(symbol, cost);
1067
+ }
1068
+ else {
1069
+ request['qty'] = this.amountToPrecision(symbol, amount);
1070
+ }
1071
+ const defaultTIF = this.safeString(this.options, 'defaultTimeInForce');
1072
+ request['time_in_force'] = this.safeString(params, 'timeInForce', defaultTIF);
1073
+ params = this.omit(params, ['timeInForce', 'triggerPrice']);
1074
+ request['client_order_id'] = this.generateClientOrderId(params);
1075
+ params = this.omit(params, ['clientOrderId']);
1076
+ const order = await this.traderPrivatePostV2Orders(this.extend(request, params));
1077
+ //
1078
+ // {
1079
+ // "id": "61e69015-8549-4bfd-b9c3-01e75843f47d",
1080
+ // "client_order_id": "eb9e2aaa-f71a-4f51-b5b4-52a6c565dad4",
1081
+ // "created_at": "2021-03-16T18:38:01.942282Z",
1082
+ // "updated_at": "2021-03-16T18:38:01.942282Z",
1083
+ // "submitted_at": "2021-03-16T18:38:01.937734Z",
1084
+ // "filled_at": null,
1085
+ // "expired_at": null,
1086
+ // "canceled_at": null,
1087
+ // "failed_at": null,
1088
+ // "replaced_at": null,
1089
+ // "replaced_by": null,
1090
+ // "replaces": null,
1091
+ // "asset_id": "b0b6dd9d-8b9b-48a9-ba46-b9d54906e415",
1092
+ // "symbol": "AAPL",
1093
+ // "asset_class": "us_equity",
1094
+ // "notional": "500",
1095
+ // "qty": null,
1096
+ // "filled_qty": "0",
1097
+ // "filled_avg_price": null,
1098
+ // "order_class": "",
1099
+ // "order_type": "market",
1100
+ // "type": "market",
1101
+ // "side": "buy",
1102
+ // "time_in_force": "day",
1103
+ // "limit_price": null,
1104
+ // "stop_price": null,
1105
+ // "status": "accepted",
1106
+ // "extended_hours": false,
1107
+ // "legs": null,
1108
+ // "trail_percent": null,
1109
+ // "trail_price": null,
1110
+ // "hwm": null
1111
+ // }
1112
+ //
1113
+ return this.parseOrder(order, market);
1114
+ }
1115
+ /**
1116
+ * @method
1117
+ * @name alpaca#cancelOrder
1118
+ * @description cancels an open order
1119
+ * @see https://docs.alpaca.markets/reference/deleteorderbyorderid
1120
+ * @param {string} id order id
1121
+ * @param {string} symbol unified symbol of the market the order was made in
1122
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1123
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1124
+ */
1125
+ async cancelOrder(id, symbol = undefined, params = {}) {
1126
+ const request = {
1127
+ 'order_id': id,
1128
+ };
1129
+ const response = await this.traderPrivateDeleteV2OrdersOrderId(this.extend(request, params));
1130
+ //
1131
+ // {
1132
+ // "code": 40410000,
1133
+ // "message": "order is not found."
1134
+ // }
1135
+ //
1136
+ return this.parseOrder(response);
1137
+ }
1138
+ /**
1139
+ * @method
1140
+ * @name alpaca#cancelAllOrders
1141
+ * @description cancel all open orders in a market
1142
+ * @see https://docs.alpaca.markets/reference/deleteallorders
1143
+ * @param {string} symbol alpaca cancelAllOrders cannot setting symbol, it will cancel all open orders
1144
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1145
+ * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1146
+ */
1147
+ async cancelAllOrders(symbol = undefined, params = {}) {
1148
+ await this.loadMarkets();
1149
+ const response = await this.traderPrivateDeleteV2Orders(params);
1150
+ if (Array.isArray(response)) {
1151
+ return this.parseOrders(response, undefined);
1152
+ }
1153
+ else {
1154
+ return [
1155
+ this.safeOrder({
1156
+ 'info': response,
1157
+ }),
1158
+ ];
1159
+ }
1160
+ }
1161
+ /**
1162
+ * @method
1163
+ * @name alpaca#fetchOrder
1164
+ * @description fetches information on an order made by the user
1165
+ * @see https://docs.alpaca.markets/reference/getorderbyorderid
1166
+ * @param {string} id the order id
1167
+ * @param {string} symbol unified symbol of the market the order was made in
1168
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1169
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1170
+ */
1171
+ async fetchOrder(id, symbol = undefined, params = {}) {
1172
+ await this.loadMarkets();
1173
+ const request = {
1174
+ 'order_id': id,
1175
+ };
1176
+ const order = await this.traderPrivateGetV2OrdersOrderId(this.extend(request, params));
1177
+ const marketId = this.safeString(order, 'symbol');
1178
+ const market = this.safeMarket(marketId);
1179
+ return this.parseOrder(order, market);
1180
+ }
1181
+ /**
1182
+ * @method
1183
+ * @name alpaca#fetchOrders
1184
+ * @description fetches information on multiple orders made by the user
1185
+ * @see https://docs.alpaca.markets/reference/getallorders
1186
+ * @param {string} symbol unified market symbol of the market orders were made in
1187
+ * @param {int} [since] the earliest time in ms to fetch orders for
1188
+ * @param {int} [limit] the maximum number of order structures to retrieve
1189
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1190
+ * @param {int} [params.until] the latest time in ms to fetch orders for
1191
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1192
+ */
1193
+ async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1194
+ await this.loadMarkets();
1195
+ const request = {
1196
+ 'status': 'all',
1197
+ };
1198
+ let market = undefined;
1199
+ if (symbol !== undefined) {
1200
+ market = this.market(symbol);
1201
+ request['symbols'] = market['id'];
1202
+ }
1203
+ const until = this.safeInteger(params, 'until');
1204
+ if (until !== undefined) {
1205
+ params = this.omit(params, 'until');
1206
+ request['endTime'] = this.iso8601(until);
1207
+ }
1208
+ if (since !== undefined) {
1209
+ request['after'] = this.iso8601(since);
1210
+ }
1211
+ if (limit !== undefined) {
1212
+ request['limit'] = limit;
1213
+ }
1214
+ const response = await this.traderPrivateGetV2Orders(this.extend(request, params));
1215
+ //
1216
+ // [
1217
+ // {
1218
+ // "id": "cbaf12d7-69b8-49c0-a31b-b46af35c755c",
1219
+ // "client_order_id": "ccxt_b36156ae6fd44d098ac9c179bab33efd",
1220
+ // "created_at": "2023-11-17T04:21:42.234579Z",
1221
+ // "updated_at": "2023-11-17T04:22:34.442765Z",
1222
+ // "submitted_at": "2023-11-17T04:21:42.233357Z",
1223
+ // "filled_at": null,
1224
+ // "expired_at": null,
1225
+ // "canceled_at": "2023-11-17T04:22:34.399019Z",
1226
+ // "failed_at": null,
1227
+ // "replaced_at": null,
1228
+ // "replaced_by": null,
1229
+ // "replaces": null,
1230
+ // "asset_id": "77c6f47f-0939-4b23-b41e-47b4469c4bc8",
1231
+ // "symbol": "LTC/USDT",
1232
+ // "asset_class": "crypto",
1233
+ // "notional": null,
1234
+ // "qty": "0.001",
1235
+ // "filled_qty": "0",
1236
+ // "filled_avg_price": null,
1237
+ // "order_class": "",
1238
+ // "order_type": "limit",
1239
+ // "type": "limit",
1240
+ // "side": "sell",
1241
+ // "time_in_force": "gtc",
1242
+ // "limit_price": "1000",
1243
+ // "stop_price": null,
1244
+ // "status": "canceled",
1245
+ // "extended_hours": false,
1246
+ // "legs": null,
1247
+ // "trail_percent": null,
1248
+ // "trail_price": null,
1249
+ // "hwm": null,
1250
+ // "subtag": null,
1251
+ // "source": "access_key"
1252
+ // }
1253
+ // ]
1254
+ //
1255
+ return this.parseOrders(response, market, since, limit);
1256
+ }
1257
+ /**
1258
+ * @method
1259
+ * @name alpaca#fetchOpenOrders
1260
+ * @description fetch all unfilled currently open orders
1261
+ * @see https://docs.alpaca.markets/reference/getallorders
1262
+ * @param {string} symbol unified market symbol of the market orders were made in
1263
+ * @param {int} [since] the earliest time in ms to fetch orders for
1264
+ * @param {int} [limit] the maximum number of order structures to retrieve
1265
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1266
+ * @param {int} [params.until] the latest time in ms to fetch orders for
1267
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1268
+ */
1269
+ async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1270
+ const request = {
1271
+ 'status': 'open',
1272
+ };
1273
+ return await this.fetchOrders(symbol, since, limit, this.extend(request, params));
1274
+ }
1275
+ /**
1276
+ * @method
1277
+ * @name alpaca#fetchClosedOrders
1278
+ * @description fetches information on multiple closed orders made by the user
1279
+ * @see https://docs.alpaca.markets/reference/getallorders
1280
+ * @param {string} symbol unified market symbol of the market orders were made in
1281
+ * @param {int} [since] the earliest time in ms to fetch orders for
1282
+ * @param {int} [limit] the maximum number of order structures to retrieve
1283
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1284
+ * @param {int} [params.until] the latest time in ms to fetch orders for
1285
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1286
+ */
1287
+ async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1288
+ const request = {
1289
+ 'status': 'closed',
1290
+ };
1291
+ return await this.fetchOrders(symbol, since, limit, this.extend(request, params));
1292
+ }
1293
+ /**
1294
+ * @method
1295
+ * @name alpaca#editOrder
1296
+ * @description edit a trade order
1297
+ * @see https://docs.alpaca.markets/reference/patchorderbyorderid-1
1298
+ * @param {string} id order id
1299
+ * @param {string} [symbol] unified symbol of the market to create an order in
1300
+ * @param {string} [type] 'market', 'limit' or 'stop_limit'
1301
+ * @param {string} [side] 'buy' or 'sell'
1302
+ * @param {float} [amount] how much of the currency you want to trade in units of the base currency
1303
+ * @param {float} [price] the price for the order, in units of the quote currency, ignored in market orders
1304
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1305
+ * @param {string} [params.triggerPrice] the price to trigger a stop order
1306
+ * @param {string} [params.timeInForce] for crypto trading either 'gtc' or 'ioc' can be used
1307
+ * @param {string} [params.clientOrderId] a unique identifier for the order, automatically generated if not sent
1308
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1309
+ */
1310
+ async editOrder(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
1311
+ await this.loadMarkets();
1312
+ const request = {
1313
+ 'order_id': id,
1314
+ };
1315
+ let market = undefined;
1316
+ if (symbol !== undefined) {
1317
+ market = this.market(symbol);
1318
+ }
1319
+ if (amount !== undefined) {
1320
+ request['qty'] = this.amountToPrecision(symbol, amount);
1321
+ }
1322
+ const triggerPrice = this.safeStringN(params, ['triggerPrice', 'stop_price']);
1323
+ if (triggerPrice !== undefined) {
1324
+ request['stop_price'] = this.priceToPrecision(symbol, triggerPrice);
1325
+ params = this.omit(params, 'triggerPrice');
1326
+ }
1327
+ if (price !== undefined) {
1328
+ request['limit_price'] = this.priceToPrecision(symbol, price);
1329
+ }
1330
+ let timeInForce = undefined;
1331
+ [timeInForce, params] = this.handleOptionAndParams2(params, 'editOrder', 'timeInForce', 'defaultTimeInForce');
1332
+ if (timeInForce !== undefined) {
1333
+ request['time_in_force'] = timeInForce;
1334
+ }
1335
+ request['client_order_id'] = this.generateClientOrderId(params);
1336
+ params = this.omit(params, ['clientOrderId']);
1337
+ const response = await this.traderPrivatePatchV2OrdersOrderId(this.extend(request, params));
1338
+ return this.parseOrder(response, market);
1339
+ }
1340
+ parseOrder(order, market = undefined) {
1341
+ //
1342
+ // {
1343
+ // "id":"6ecfcc34-4bed-4b53-83ba-c564aa832a81",
1344
+ // "client_order_id":"ccxt_1c6ceab0b5e84727b2f1c0394ba17560",
1345
+ // "created_at":"2022-06-14T13:59:30.224037068Z",
1346
+ // "updated_at":"2022-06-14T13:59:30.224037068Z",
1347
+ // "submitted_at":"2022-06-14T13:59:30.221856828Z",
1348
+ // "filled_at":null,
1349
+ // "expired_at":null,
1350
+ // "canceled_at":null,
1351
+ // "failed_at":null,
1352
+ // "replaced_at":null,
1353
+ // "replaced_by":null,
1354
+ // "replaces":null,
1355
+ // "asset_id":"64bbff51-59d6-4b3c-9351-13ad85e3c752",
1356
+ // "symbol":"BTCUSD",
1357
+ // "asset_class":"crypto",
1358
+ // "notional":null,
1359
+ // "qty":"0.01",
1360
+ // "filled_qty":"0",
1361
+ // "filled_avg_price":null,
1362
+ // "order_class":"",
1363
+ // "order_type":"limit",
1364
+ // "type":"limit",
1365
+ // "side":"buy",
1366
+ // "time_in_force":"day",
1367
+ // "limit_price":"14000",
1368
+ // "stop_price":null,
1369
+ // "status":"accepted",
1370
+ // "extended_hours":false,
1371
+ // "legs":null,
1372
+ // "trail_percent":null,
1373
+ // "trail_price":null,
1374
+ // "hwm":null,
1375
+ // "commission":"0.42",
1376
+ // "source":null
1377
+ // }
1378
+ //
1379
+ const marketId = this.safeString(order, 'symbol');
1380
+ market = this.safeMarket(marketId, market);
1381
+ const symbol = market['symbol'];
1382
+ const alpacaStatus = this.safeString(order, 'status');
1383
+ const status = this.parseOrderStatus(alpacaStatus);
1384
+ const feeValue = this.safeString(order, 'commission');
1385
+ let fee = undefined;
1386
+ if (feeValue !== undefined) {
1387
+ fee = {
1388
+ 'cost': feeValue,
1389
+ 'currency': 'USD',
1390
+ };
1391
+ }
1392
+ let orderType = this.safeString(order, 'order_type');
1393
+ if (orderType !== undefined) {
1394
+ if (orderType.indexOf('limit') >= 0) {
1395
+ // might be limit or stop-limit
1396
+ orderType = 'limit';
1397
+ }
1398
+ }
1399
+ const datetime = this.safeString(order, 'submitted_at');
1400
+ const timestamp = this.parse8601(datetime);
1401
+ return this.safeOrder({
1402
+ 'id': this.safeString(order, 'id'),
1403
+ 'clientOrderId': this.safeString(order, 'client_order_id'),
1404
+ 'timestamp': timestamp,
1405
+ 'datetime': datetime,
1406
+ 'lastTradeTimeStamp': undefined,
1407
+ 'status': status,
1408
+ 'symbol': symbol,
1409
+ 'type': orderType,
1410
+ 'timeInForce': this.parseTimeInForce(this.safeString(order, 'time_in_force')),
1411
+ 'postOnly': undefined,
1412
+ 'side': this.safeString(order, 'side'),
1413
+ 'price': this.safeNumber(order, 'limit_price'),
1414
+ 'triggerPrice': this.safeNumber(order, 'stop_price'),
1415
+ 'cost': undefined,
1416
+ 'average': this.safeNumber(order, 'filled_avg_price'),
1417
+ 'amount': this.safeNumber(order, 'qty'),
1418
+ 'filled': this.safeNumber(order, 'filled_qty'),
1419
+ 'remaining': undefined,
1420
+ 'trades': undefined,
1421
+ 'fee': fee,
1422
+ 'info': order,
1423
+ }, market);
1424
+ }
1425
+ parseOrderStatus(status) {
1426
+ const statuses = {
1427
+ 'pending_new': 'open',
1428
+ 'accepted': 'open',
1429
+ 'new': 'open',
1430
+ 'partially_filled': 'open',
1431
+ 'activated': 'open',
1432
+ 'filled': 'closed',
1433
+ };
1434
+ return this.safeString(statuses, status, status);
1435
+ }
1436
+ parseTimeInForce(timeInForce) {
1437
+ const timeInForces = {
1438
+ 'day': 'Day',
1439
+ };
1440
+ return this.safeString(timeInForces, timeInForce, timeInForce);
1441
+ }
1442
+ /**
1443
+ * @method
1444
+ * @name alpaca#fetchMyTrades
1445
+ * @description fetch all trades made by the user
1446
+ * @see https://docs.alpaca.markets/reference/getaccountactivitiesbyactivitytype-1
1447
+ * @param {string} [symbol] unified market symbol
1448
+ * @param {int} [since] the earliest time in ms to fetch trades for
1449
+ * @param {int} [limit] the maximum number of trade structures to retrieve
1450
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1451
+ * @param {int} [params.until] the latest time in ms to fetch trades for
1452
+ * @param {string} [params.page_token] page_token - used for paging
1453
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
1454
+ */
1455
+ async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1456
+ await this.loadMarkets();
1457
+ let market = undefined;
1458
+ let request = {
1459
+ 'activity_type': 'FILL',
1460
+ };
1461
+ if (symbol !== undefined) {
1462
+ market = this.market(symbol);
1463
+ }
1464
+ const until = this.safeInteger(params, 'until');
1465
+ if (until !== undefined) {
1466
+ params = this.omit(params, 'until');
1467
+ request['until'] = this.iso8601(until);
1468
+ }
1469
+ if (since !== undefined) {
1470
+ request['after'] = this.iso8601(since);
1471
+ }
1472
+ if (limit !== undefined) {
1473
+ request['page_size'] = limit;
1474
+ }
1475
+ [request, params] = this.handleUntilOption('until', request, params);
1476
+ const response = await this.traderPrivateGetV2AccountActivitiesActivityType(this.extend(request, params));
1477
+ //
1478
+ // [
1479
+ // {
1480
+ // "id": "20221228071929579::ca2aafd0-1270-4b56-b0a9-85423b4a07c8",
1481
+ // "activity_type": "FILL",
1482
+ // "transaction_time": "2022-12-28T12:19:29.579352Z",
1483
+ // "type": "fill",
1484
+ // "price": "67.31",
1485
+ // "qty": "0.07",
1486
+ // "side": "sell",
1487
+ // "symbol": "LTC/USD",
1488
+ // "leaves_qty": "0",
1489
+ // "order_id": "82eebcf7-6e66-4b7e-93f8-be0df0e4f12e",
1490
+ // "cum_qty": "0.07",
1491
+ // "order_status": "filled",
1492
+ // "swap_rate": "1"
1493
+ // },
1494
+ // ]
1495
+ //
1496
+ return this.parseTrades(response, market, since, limit);
1497
+ }
1498
+ parseTrade(trade, market = undefined) {
1499
+ //
1500
+ // fetchTrades
1501
+ //
1502
+ // {
1503
+ // "t":"2022-06-14T05:00:00.027869Z",
1504
+ // "x":"CBSE",
1505
+ // "p":"21942.15",
1506
+ // "s":"0.0001",
1507
+ // "tks":"S",
1508
+ // "i":"355681339"
1509
+ // }
1510
+ //
1511
+ // fetchMyTrades
1512
+ //
1513
+ // {
1514
+ // "id": "20221228071929579::ca2aafd0-1270-4b56-b0a9-85423b4a07c8",
1515
+ // "activity_type": "FILL",
1516
+ // "transaction_time": "2022-12-28T12:19:29.579352Z",
1517
+ // "type": "fill",
1518
+ // "price": "67.31",
1519
+ // "qty": "0.07",
1520
+ // "side": "sell",
1521
+ // "symbol": "LTC/USD",
1522
+ // "leaves_qty": "0",
1523
+ // "order_id": "82eebcf7-6e66-4b7e-93f8-be0df0e4f12e",
1524
+ // "cum_qty": "0.07",
1525
+ // "order_status": "filled",
1526
+ // "swap_rate": "1"
1527
+ // },
1528
+ //
1529
+ const marketId = this.safeString2(trade, 'S', 'symbol');
1530
+ const symbol = this.safeSymbol(marketId, market);
1531
+ const datetime = this.safeString2(trade, 't', 'transaction_time');
1532
+ const timestamp = this.parse8601(datetime);
1533
+ const alpacaSide = this.safeString(trade, 'tks');
1534
+ let side = this.safeString(trade, 'side');
1535
+ if (alpacaSide === 'B') {
1536
+ side = 'buy';
1537
+ }
1538
+ else if (alpacaSide === 'S') {
1539
+ side = 'sell';
1540
+ }
1541
+ const priceString = this.safeString2(trade, 'p', 'price');
1542
+ const amountString = this.safeString2(trade, 's', 'qty');
1543
+ return this.safeTrade({
1544
+ 'info': trade,
1545
+ 'id': this.safeString2(trade, 'i', 'id'),
1546
+ 'timestamp': timestamp,
1547
+ 'datetime': this.iso8601(timestamp),
1548
+ 'symbol': symbol,
1549
+ 'order': this.safeString(trade, 'order_id'),
1550
+ 'type': undefined,
1551
+ 'side': side,
1552
+ 'takerOrMaker': 'taker',
1553
+ 'price': priceString,
1554
+ 'amount': amountString,
1555
+ 'cost': undefined,
1556
+ 'fee': undefined,
1557
+ }, market);
1558
+ }
1559
+ /**
1560
+ * @method
1561
+ * @name alpaca#fetchDepositAddress
1562
+ * @description fetch the deposit address for a currency associated with this account
1563
+ * @see https://docs.alpaca.markets/reference/listcryptofundingwallets
1564
+ * @param {string} code unified currency code
1565
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1566
+ * @returns {object} an [address structure]{@link https://docs.ccxt.com/#/?id=address-structure}
1567
+ */
1568
+ async fetchDepositAddress(code, params = {}) {
1569
+ await this.loadMarkets();
1570
+ const currency = this.currency(code);
1571
+ const request = {
1572
+ 'asset': currency['id'],
1573
+ };
1574
+ const response = await this.traderPrivateGetV2Wallets(this.extend(request, params));
1575
+ //
1576
+ // {
1577
+ // "asset_id": "4fa30c85-77b7-4cbc-92dd-7b7513640aad",
1578
+ // "address": "bc1q2fpskfnwem3uq9z8660e4z6pfv7aqfamysk75r",
1579
+ // "created_at": "2024-11-03T07:30:05.609976344Z"
1580
+ // }
1581
+ //
1582
+ return this.parseDepositAddress(response, currency);
1583
+ }
1584
+ parseDepositAddress(depositAddress, currency = undefined) {
1585
+ //
1586
+ // {
1587
+ // "asset_id": "4fa30c85-77b7-4cbc-92dd-7b7513640aad",
1588
+ // "address": "bc1q2fpskfnwem3uq9z8660e4z6pfv7aqfamysk75r",
1589
+ // "created_at": "2024-11-03T07:30:05.609976344Z"
1590
+ // }
1591
+ //
1592
+ let parsedCurrency = undefined;
1593
+ if (currency !== undefined) {
1594
+ parsedCurrency = currency['id'];
1595
+ }
1596
+ return {
1597
+ 'info': depositAddress,
1598
+ 'currency': parsedCurrency,
1599
+ 'network': undefined,
1600
+ 'address': this.safeString(depositAddress, 'address'),
1601
+ 'tag': undefined,
1602
+ };
1603
+ }
1604
+ /**
1605
+ * @method
1606
+ * @name alpaca#withdraw
1607
+ * @description make a withdrawal
1608
+ * @see https://docs.alpaca.markets/reference/createcryptotransferforaccount
1609
+ * @param {string} code unified currency code
1610
+ * @param {float} amount the amount to withdraw
1611
+ * @param {string} address the address to withdraw to
1612
+ * @param {string} tag a memo for the transaction
1613
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1614
+ * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1615
+ */
1616
+ async withdraw(code, amount, address, tag = undefined, params = {}) {
1617
+ [tag, params] = this.handleWithdrawTagAndParams(tag, params);
1618
+ this.checkAddress(address);
1619
+ await this.loadMarkets();
1620
+ const currency = this.currency(code);
1621
+ if (tag) {
1622
+ address = address + ':' + tag;
1623
+ }
1624
+ const request = {
1625
+ 'asset': currency['id'],
1626
+ 'address': address,
1627
+ 'amount': this.numberToString(amount),
1628
+ };
1629
+ const response = await this.traderPrivatePostV2WalletsTransfers(this.extend(request, params));
1630
+ //
1631
+ // {
1632
+ // "id": "e27b70a6-5610-40d7-8468-a516a284b776",
1633
+ // "tx_hash": null,
1634
+ // "direction": "OUTGOING",
1635
+ // "amount": "20",
1636
+ // "usd_value": "19.99856",
1637
+ // "chain": "ETH",
1638
+ // "asset": "USDT",
1639
+ // "from_address": "0x123930E4dCA196E070d39B60c644C8Aae02f23",
1640
+ // "to_address": "0x1232c0925196e4dcf05945f67f690153190fbaab",
1641
+ // "status": "PROCESSING",
1642
+ // "created_at": "2024-11-07T02:39:01.775495Z",
1643
+ // "network_fee": "4",
1644
+ // "fees": "0.1"
1645
+ // }
1646
+ //
1647
+ return this.parseTransaction(response, currency);
1648
+ }
1649
+ async fetchTransactionsHelper(type, code, since, limit, params) {
1650
+ await this.loadMarkets();
1651
+ let currency = undefined;
1652
+ if (code !== undefined) {
1653
+ currency = this.currency(code);
1654
+ }
1655
+ const response = await this.traderPrivateGetV2WalletsTransfers(params);
1656
+ //
1657
+ // {
1658
+ // "id": "e27b70a6-5610-40d7-8468-a516a284b776",
1659
+ // "tx_hash": null,
1660
+ // "direction": "OUTGOING",
1661
+ // "amount": "20",
1662
+ // "usd_value": "19.99856",
1663
+ // "chain": "ETH",
1664
+ // "asset": "USDT",
1665
+ // "from_address": "0x123930E4dCA196E070d39B60c644C8Aae02f23",
1666
+ // "to_address": "0x1232c0925196e4dcf05945f67f690153190fbaab",
1667
+ // "status": "PROCESSING",
1668
+ // "created_at": "2024-11-07T02:39:01.775495Z",
1669
+ // "network_fee": "4",
1670
+ // "fees": "0.1"
1671
+ // }
1672
+ //
1673
+ const results = [];
1674
+ for (let i = 0; i < response.length; i++) {
1675
+ const entry = response[i];
1676
+ const direction = this.safeString(entry, 'direction');
1677
+ if (direction === type) {
1678
+ results.push(entry);
1679
+ }
1680
+ else if (type === 'BOTH') {
1681
+ results.push(entry);
1682
+ }
1683
+ }
1684
+ return this.parseTransactions(results, currency, since, limit, params);
1685
+ }
1686
+ /**
1687
+ * @method
1688
+ * @name alpaca#fetchDepositsWithdrawals
1689
+ * @description fetch history of deposits and withdrawals
1690
+ * @see https://docs.alpaca.markets/reference/listcryptofundingtransfers
1691
+ * @param {string} [code] unified currency code for the currency of the deposit/withdrawals, default is undefined
1692
+ * @param {int} [since] timestamp in ms of the earliest deposit/withdrawal, default is undefined
1693
+ * @param {int} [limit] max number of deposit/withdrawals to return, default is undefined
1694
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1695
+ * @returns {object} a list of [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1696
+ */
1697
+ async fetchDepositsWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
1698
+ return await this.fetchTransactionsHelper('BOTH', code, since, limit, params);
1699
+ }
1700
+ /**
1701
+ * @method
1702
+ * @name alpaca#fetchDeposits
1703
+ * @description fetch all deposits made to an account
1704
+ * @see https://docs.alpaca.markets/reference/listcryptofundingtransfers
1705
+ * @param {string} [code] unified currency code
1706
+ * @param {int} [since] the earliest time in ms to fetch deposits for
1707
+ * @param {int} [limit] the maximum number of deposit structures to retrieve
1708
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1709
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1710
+ */
1711
+ async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
1712
+ return await this.fetchTransactionsHelper('INCOMING', code, since, limit, params);
1713
+ }
1714
+ /**
1715
+ * @method
1716
+ * @name alpaca#fetchWithdrawals
1717
+ * @description fetch all withdrawals made from an account
1718
+ * @see https://docs.alpaca.markets/reference/listcryptofundingtransfers
1719
+ * @param {string} [code] unified currency code
1720
+ * @param {int} [since] the earliest time in ms to fetch withdrawals for
1721
+ * @param {int} [limit] the maximum number of withdrawal structures to retrieve
1722
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1723
+ * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
1724
+ */
1725
+ async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
1726
+ return await this.fetchTransactionsHelper('OUTGOING', code, since, limit, params);
1727
+ }
1728
+ parseTransaction(transaction, currency = undefined) {
1729
+ //
1730
+ // {
1731
+ // "id": "e27b70a6-5610-40d7-8468-a516a284b776",
1732
+ // "tx_hash": null,
1733
+ // "direction": "OUTGOING",
1734
+ // "amount": "20",
1735
+ // "usd_value": "19.99856",
1736
+ // "chain": "ETH",
1737
+ // "asset": "USDT",
1738
+ // "from_address": "0x123930E4dCA196E070d39B60c644C8Aae02f23",
1739
+ // "to_address": "0x1232c0925196e4dcf05945f67f690153190fbaab",
1740
+ // "status": "PROCESSING",
1741
+ // "created_at": "2024-11-07T02:39:01.775495Z",
1742
+ // "network_fee": "4",
1743
+ // "fees": "0.1"
1744
+ // }
1745
+ //
1746
+ const datetime = this.safeString(transaction, 'created_at');
1747
+ const currencyId = this.safeString(transaction, 'asset');
1748
+ const code = this.safeCurrencyCode(currencyId, currency);
1749
+ const fees = this.safeString(transaction, 'fees');
1750
+ const networkFee = this.safeString(transaction, 'network_fee');
1751
+ const totalFee = Precise.stringAdd(fees, networkFee);
1752
+ const fee = {
1753
+ 'cost': this.parseNumber(totalFee),
1754
+ 'currency': code,
1755
+ };
1756
+ return {
1757
+ 'info': transaction,
1758
+ 'id': this.safeString(transaction, 'id'),
1759
+ 'txid': this.safeString(transaction, 'tx_hash'),
1760
+ 'timestamp': this.parse8601(datetime),
1761
+ 'datetime': datetime,
1762
+ 'network': this.safeString(transaction, 'chain'),
1763
+ 'address': this.safeString(transaction, 'to_address'),
1764
+ 'addressTo': this.safeString(transaction, 'to_address'),
1765
+ 'addressFrom': this.safeString(transaction, 'from_address'),
1766
+ 'tag': undefined,
1767
+ 'tagTo': undefined,
1768
+ 'tagFrom': undefined,
1769
+ 'type': this.parseTransactionType(this.safeString(transaction, 'direction')),
1770
+ 'amount': this.safeNumber(transaction, 'amount'),
1771
+ 'currency': code,
1772
+ 'status': this.parseTransactionStatus(this.safeString(transaction, 'status')),
1773
+ 'updated': undefined,
1774
+ 'fee': fee,
1775
+ 'comment': undefined,
1776
+ 'internal': undefined,
1777
+ };
1778
+ }
1779
+ parseTransactionStatus(status) {
1780
+ const statuses = {
1781
+ 'PROCESSING': 'pending',
1782
+ 'FAILED': 'failed',
1783
+ 'COMPLETE': 'ok',
1784
+ };
1785
+ return this.safeString(statuses, status, status);
1786
+ }
1787
+ parseTransactionType(type) {
1788
+ const types = {
1789
+ 'INCOMING': 'deposit',
1790
+ 'OUTGOING': 'withdrawal',
1791
+ };
1792
+ return this.safeString(types, type, type);
1793
+ }
1794
+ /**
1795
+ * @method
1796
+ * @name alpaca#fetchBalance
1797
+ * @description query for balance and get the amount of funds available for trading or funds locked in orders
1798
+ * @see https://docs.alpaca.markets/reference/getaccount-1
1799
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1800
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
1801
+ */
1802
+ async fetchBalance(params = {}) {
1803
+ await this.loadMarkets();
1804
+ const response = await this.traderPrivateGetV2Account(params);
1805
+ //
1806
+ // {
1807
+ // "id": "43a01bde-4eb1-64fssc26adb5",
1808
+ // "admin_configurations": {
1809
+ // "allow_instant_ach": true,
1810
+ // "max_margin_multiplier": "4"
1811
+ // },
1812
+ // "user_configurations": {
1813
+ // "fractional_trading": true,
1814
+ // "max_margin_multiplier": "4"
1815
+ // },
1816
+ // "account_number": "744873727",
1817
+ // "status": "ACTIVE",
1818
+ // "crypto_status": "ACTIVE",
1819
+ // "currency": "USD",
1820
+ // "buying_power": "5.92",
1821
+ // "regt_buying_power": "5.92",
1822
+ // "daytrading_buying_power": "0",
1823
+ // "effective_buying_power": "5.92",
1824
+ // "non_marginable_buying_power": "5.92",
1825
+ // "bod_dtbp": "0",
1826
+ // "cash": "5.92",
1827
+ // "accrued_fees": "0",
1828
+ // "portfolio_value": "48.6",
1829
+ // "pattern_day_trader": false,
1830
+ // "trading_blocked": false,
1831
+ // "transfers_blocked": false,
1832
+ // "account_blocked": false,
1833
+ // "created_at": "2022-06-13T14:59:18.318096Z",
1834
+ // "trade_suspended_by_user": false,
1835
+ // "multiplier": "1",
1836
+ // "shorting_enabled": false,
1837
+ // "equity": "48.6",
1838
+ // "last_equity": "48.8014266",
1839
+ // "long_market_value": "42.68",
1840
+ // "short_market_value": "0",
1841
+ // "position_market_value": "42.68",
1842
+ // "initial_margin": "0",
1843
+ // "maintenance_margin": "0",
1844
+ // "last_maintenance_margin": "0",
1845
+ // "sma": "5.92",
1846
+ // "daytrade_count": 0,
1847
+ // "balance_asof": "2024-12-10",
1848
+ // "crypto_tier": 1,
1849
+ // "intraday_adjustments": "0",
1850
+ // "pending_reg_taf_fees": "0"
1851
+ // }
1852
+ //
1853
+ return this.parseBalance(response);
1854
+ }
1855
+ parseBalance(response) {
1856
+ const result = { 'info': response };
1857
+ const account = this.account();
1858
+ const currencyId = this.safeString(response, 'currency');
1859
+ const code = this.safeCurrencyCode(currencyId);
1860
+ account['free'] = this.safeString(response, 'cash');
1861
+ account['total'] = this.safeString(response, 'equity');
1862
+ result[code] = account;
1863
+ return this.safeBalance(result);
1864
+ }
1865
+ sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
1866
+ let endpoint = '/' + this.implodeParams(path, params);
1867
+ let url = this.implodeHostname(this.urls['api'][api[0]]);
1868
+ headers = (headers !== undefined) ? headers : {};
1869
+ if (api[1] === 'private') {
1870
+ this.checkRequiredCredentials();
1871
+ headers['APCA-API-KEY-ID'] = this.apiKey;
1872
+ headers['APCA-API-SECRET-KEY'] = this.secret;
1873
+ }
1874
+ const query = this.omit(params, this.extractParams(path));
1875
+ if (Object.keys(query).length) {
1876
+ if ((method === 'GET') || (method === 'DELETE')) {
1877
+ endpoint += '?' + this.urlencode(query);
1878
+ }
1879
+ else {
1880
+ body = this.json(query);
1881
+ headers['Content-Type'] = 'application/json';
1882
+ }
1883
+ }
1884
+ url = url + endpoint;
1885
+ return { 'url': url, 'method': method, 'body': body, 'headers': headers };
1886
+ }
1887
+ handleErrors(code, reason, url, method, headers, body, response, requestHeaders, requestBody) {
1888
+ if (response === undefined) {
1889
+ return undefined; // default error handler
1890
+ }
1891
+ // {
1892
+ // "code": 40110000,
1893
+ // "message": "request is not authorized"
1894
+ // }
1895
+ const feedback = this.id + ' ' + body;
1896
+ const errorCode = this.safeString(response, 'code');
1897
+ if (code !== undefined) {
1898
+ this.throwExactlyMatchedException(this.exceptions['exact'], errorCode, feedback);
1899
+ }
1900
+ const message = this.safeValue(response, 'message', undefined);
1901
+ if (message !== undefined) {
1902
+ this.throwExactlyMatchedException(this.exceptions['exact'], message, feedback);
1903
+ this.throwBroadlyMatchedException(this.exceptions['broad'], message, feedback);
1904
+ throw new ExchangeError(feedback);
1905
+ }
1906
+ return undefined;
1907
+ }
1908
+ }