ccxt 4.2.11 → 4.2.13

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 (392) hide show
  1. package/README.md +5 -5
  2. package/build.sh +2 -2
  3. package/dist/ccxt.browser.js +1347 -490
  4. package/dist/ccxt.browser.min.js +3 -3
  5. package/dist/cjs/_virtual/agent.js +7 -0
  6. package/dist/cjs/_virtual/parse-proxy-response.js +7 -0
  7. package/dist/cjs/_virtual/promisify.js +7 -0
  8. package/dist/cjs/ccxt.js +1 -1
  9. package/dist/cjs/js/ccxt.js +474 -0
  10. package/dist/cjs/js/src/abstract/ace.js +9 -0
  11. package/dist/cjs/js/src/abstract/alpaca.js +9 -0
  12. package/dist/cjs/js/src/abstract/ascendex.js +9 -0
  13. package/dist/cjs/js/src/abstract/bigone.js +9 -0
  14. package/dist/cjs/js/src/abstract/binance.js +9 -0
  15. package/dist/cjs/js/src/abstract/bingx.js +9 -0
  16. package/dist/cjs/js/src/abstract/bit2c.js +9 -0
  17. package/dist/cjs/js/src/abstract/bitbank.js +9 -0
  18. package/dist/cjs/js/src/abstract/bitbns.js +9 -0
  19. package/dist/cjs/js/src/abstract/bitfinex.js +9 -0
  20. package/dist/cjs/js/src/abstract/bitfinex2.js +9 -0
  21. package/dist/cjs/js/src/abstract/bitflyer.js +9 -0
  22. package/dist/cjs/js/src/abstract/bitforex.js +9 -0
  23. package/dist/cjs/js/src/abstract/bitget.js +9 -0
  24. package/dist/cjs/js/src/abstract/bithumb.js +9 -0
  25. package/dist/cjs/js/src/abstract/bitmart.js +9 -0
  26. package/dist/cjs/js/src/abstract/bitmex.js +9 -0
  27. package/dist/cjs/js/src/abstract/bitopro.js +9 -0
  28. package/dist/cjs/js/src/abstract/bitpanda.js +9 -0
  29. package/dist/cjs/js/src/abstract/bitrue.js +9 -0
  30. package/dist/cjs/js/src/abstract/bitso.js +9 -0
  31. package/dist/cjs/js/src/abstract/bitstamp.js +9 -0
  32. package/dist/cjs/js/src/abstract/bitteam.js +9 -0
  33. package/dist/cjs/js/src/abstract/bitvavo.js +9 -0
  34. package/dist/cjs/js/src/abstract/bl3p.js +9 -0
  35. package/dist/cjs/js/src/abstract/blockchaincom.js +9 -0
  36. package/dist/cjs/js/src/abstract/btcalpha.js +9 -0
  37. package/dist/cjs/js/src/abstract/btcbox.js +9 -0
  38. package/dist/cjs/js/src/abstract/btcmarkets.js +9 -0
  39. package/dist/cjs/js/src/abstract/btcturk.js +9 -0
  40. package/dist/cjs/js/src/abstract/bybit.js +9 -0
  41. package/dist/cjs/js/src/abstract/cex.js +9 -0
  42. package/dist/cjs/js/src/abstract/coinbase.js +9 -0
  43. package/dist/cjs/js/src/abstract/coinbasepro.js +9 -0
  44. package/dist/cjs/js/src/abstract/coincheck.js +9 -0
  45. package/dist/cjs/js/src/abstract/coinex.js +9 -0
  46. package/dist/cjs/js/src/abstract/coinlist.js +9 -0
  47. package/dist/cjs/js/src/abstract/coinmate.js +9 -0
  48. package/dist/cjs/js/src/abstract/coinone.js +9 -0
  49. package/dist/cjs/js/src/abstract/coinsph.js +9 -0
  50. package/dist/cjs/js/src/abstract/coinspot.js +9 -0
  51. package/dist/cjs/js/src/abstract/cryptocom.js +9 -0
  52. package/dist/cjs/js/src/abstract/currencycom.js +9 -0
  53. package/dist/cjs/js/src/abstract/delta.js +9 -0
  54. package/dist/cjs/js/src/abstract/deribit.js +9 -0
  55. package/dist/cjs/js/src/abstract/digifinex.js +9 -0
  56. package/dist/cjs/js/src/abstract/exmo.js +9 -0
  57. package/dist/cjs/js/src/abstract/gate.js +9 -0
  58. package/dist/cjs/js/src/abstract/gemini.js +9 -0
  59. package/dist/cjs/js/src/abstract/hitbtc.js +9 -0
  60. package/dist/cjs/js/src/abstract/hollaex.js +9 -0
  61. package/dist/cjs/js/src/abstract/htx.js +9 -0
  62. package/dist/cjs/js/src/abstract/huobijp.js +9 -0
  63. package/dist/cjs/js/src/abstract/idex.js +9 -0
  64. package/dist/cjs/js/src/abstract/independentreserve.js +9 -0
  65. package/dist/cjs/js/src/abstract/indodax.js +9 -0
  66. package/dist/cjs/js/src/abstract/kraken.js +9 -0
  67. package/dist/cjs/js/src/abstract/krakenfutures.js +9 -0
  68. package/dist/cjs/js/src/abstract/kucoin.js +9 -0
  69. package/dist/cjs/js/src/abstract/kucoinfutures.js +9 -0
  70. package/dist/cjs/js/src/abstract/kuna.js +9 -0
  71. package/dist/cjs/js/src/abstract/latoken.js +9 -0
  72. package/dist/cjs/js/src/abstract/lbank.js +9 -0
  73. package/dist/cjs/js/src/abstract/luno.js +9 -0
  74. package/dist/cjs/js/src/abstract/lykke.js +9 -0
  75. package/dist/cjs/js/src/abstract/mercado.js +9 -0
  76. package/dist/cjs/js/src/abstract/mexc.js +9 -0
  77. package/dist/cjs/js/src/abstract/ndax.js +9 -0
  78. package/dist/cjs/js/src/abstract/novadax.js +9 -0
  79. package/dist/cjs/js/src/abstract/oceanex.js +9 -0
  80. package/dist/cjs/js/src/abstract/okcoin.js +9 -0
  81. package/dist/cjs/js/src/abstract/okx.js +9 -0
  82. package/dist/cjs/js/src/abstract/p2b.js +9 -0
  83. package/dist/cjs/js/src/abstract/paymium.js +9 -0
  84. package/dist/cjs/js/src/abstract/phemex.js +9 -0
  85. package/dist/cjs/js/src/abstract/poloniex.js +9 -0
  86. package/dist/cjs/js/src/abstract/poloniexfutures.js +9 -0
  87. package/dist/cjs/js/src/abstract/probit.js +9 -0
  88. package/dist/cjs/js/src/abstract/timex.js +9 -0
  89. package/dist/cjs/js/src/abstract/tokocrypto.js +9 -0
  90. package/dist/cjs/js/src/abstract/upbit.js +9 -0
  91. package/dist/cjs/js/src/abstract/wavesexchange.js +9 -0
  92. package/dist/cjs/js/src/abstract/wazirx.js +9 -0
  93. package/dist/cjs/js/src/abstract/whitebit.js +9 -0
  94. package/dist/cjs/js/src/abstract/woo.js +9 -0
  95. package/dist/cjs/js/src/abstract/yobit.js +9 -0
  96. package/dist/cjs/js/src/abstract/zaif.js +9 -0
  97. package/dist/cjs/js/src/abstract/zonda.js +9 -0
  98. package/dist/cjs/js/src/ace.js +1058 -0
  99. package/dist/cjs/js/src/alpaca.js +1125 -0
  100. package/dist/cjs/js/src/ascendex.js +3360 -0
  101. package/dist/cjs/js/src/base/Exchange.js +5110 -0
  102. package/dist/cjs/js/src/base/Precise.js +263 -0
  103. package/dist/cjs/js/src/base/errors.js +299 -0
  104. package/dist/cjs/js/src/base/functions/crypto.js +78 -0
  105. package/dist/cjs/js/src/base/functions/encode.js +44 -0
  106. package/dist/cjs/js/src/base/functions/generic.js +193 -0
  107. package/dist/cjs/js/src/base/functions/misc.js +96 -0
  108. package/dist/cjs/js/src/base/functions/number.js +297 -0
  109. package/dist/cjs/js/src/base/functions/platform.js +28 -0
  110. package/dist/cjs/js/src/base/functions/rsa.js +34 -0
  111. package/dist/cjs/js/src/base/functions/string.js +48 -0
  112. package/dist/cjs/js/src/base/functions/throttle.js +66 -0
  113. package/dist/cjs/js/src/base/functions/time.js +187 -0
  114. package/dist/cjs/js/src/base/functions/totp.js +24 -0
  115. package/dist/cjs/js/src/base/functions/type.js +162 -0
  116. package/dist/cjs/js/src/base/functions.js +157 -0
  117. package/dist/cjs/js/src/base/ws/Cache.js +254 -0
  118. package/dist/cjs/js/src/base/ws/Client.js +299 -0
  119. package/dist/cjs/js/src/base/ws/Future.js +34 -0
  120. package/dist/cjs/js/src/base/ws/OrderBook.js +107 -0
  121. package/dist/cjs/js/src/base/ws/OrderBookSide.js +281 -0
  122. package/dist/cjs/js/src/base/ws/WsClient.js +69 -0
  123. package/dist/cjs/js/src/bequant.js +33 -0
  124. package/dist/cjs/js/src/bigone.js +2209 -0
  125. package/dist/cjs/js/src/binance.js +9736 -0
  126. package/dist/cjs/js/src/binancecoinm.js +45 -0
  127. package/dist/cjs/js/src/binanceus.js +84 -0
  128. package/dist/cjs/js/src/binanceusdm.js +58 -0
  129. package/dist/cjs/js/src/bingx.js +3807 -0
  130. package/dist/cjs/js/src/bit2c.js +916 -0
  131. package/dist/cjs/js/src/bitbank.js +1000 -0
  132. package/dist/cjs/js/src/bitbay.js +17 -0
  133. package/dist/cjs/js/src/bitbns.js +1220 -0
  134. package/dist/cjs/js/src/bitcoincom.js +17 -0
  135. package/dist/cjs/js/src/bitfinex.js +1670 -0
  136. package/dist/cjs/js/src/bitfinex2.js +2990 -0
  137. package/dist/cjs/js/src/bitflyer.js +1045 -0
  138. package/dist/cjs/js/src/bitforex.js +852 -0
  139. package/dist/cjs/js/src/bitget.js +8291 -0
  140. package/dist/cjs/js/src/bithumb.js +1090 -0
  141. package/dist/cjs/js/src/bitmart.js +4454 -0
  142. package/dist/cjs/js/src/bitmex.js +2884 -0
  143. package/dist/cjs/js/src/bitopro.js +1724 -0
  144. package/dist/cjs/js/src/bitpanda.js +2002 -0
  145. package/dist/cjs/js/src/bitrue.js +3253 -0
  146. package/dist/cjs/js/src/bitso.js +1753 -0
  147. package/dist/cjs/js/src/bitstamp.js +2188 -0
  148. package/dist/cjs/js/src/bitteam.js +2309 -0
  149. package/dist/cjs/js/src/bitvavo.js +1968 -0
  150. package/dist/cjs/js/src/bl3p.js +447 -0
  151. package/dist/cjs/js/src/blockchaincom.js +1160 -0
  152. package/dist/cjs/js/src/btcalpha.js +929 -0
  153. package/dist/cjs/js/src/btcbox.js +565 -0
  154. package/dist/cjs/js/src/btcmarkets.js +1237 -0
  155. package/dist/cjs/js/src/btcturk.js +929 -0
  156. package/dist/cjs/js/src/bybit.js +7646 -0
  157. package/dist/cjs/js/src/cex.js +1693 -0
  158. package/dist/cjs/js/src/coinbase.js +3424 -0
  159. package/dist/cjs/js/src/coinbasepro.js +1866 -0
  160. package/dist/cjs/js/src/coincheck.js +843 -0
  161. package/dist/cjs/js/src/coinex.js +5414 -0
  162. package/dist/cjs/js/src/coinlist.js +2329 -0
  163. package/dist/cjs/js/src/coinmate.js +989 -0
  164. package/dist/cjs/js/src/coinone.js +1185 -0
  165. package/dist/cjs/js/src/coinsph.js +1933 -0
  166. package/dist/cjs/js/src/coinspot.js +548 -0
  167. package/dist/cjs/js/src/cryptocom.js +3007 -0
  168. package/dist/cjs/js/src/currencycom.js +2015 -0
  169. package/dist/cjs/js/src/delta.js +3256 -0
  170. package/dist/cjs/js/src/deribit.js +3306 -0
  171. package/dist/cjs/js/src/digifinex.js +4307 -0
  172. package/dist/cjs/js/src/exmo.js +2645 -0
  173. package/dist/cjs/js/src/fmfwio.js +34 -0
  174. package/dist/cjs/js/src/gate.js +7072 -0
  175. package/dist/cjs/js/src/gateio.js +16 -0
  176. package/dist/cjs/js/src/gemini.js +1801 -0
  177. package/dist/cjs/js/src/hitbtc.js +3660 -0
  178. package/dist/cjs/js/src/hitbtc3.js +19 -0
  179. package/dist/cjs/js/src/hollaex.js +1882 -0
  180. package/dist/cjs/js/src/htx.js +9049 -0
  181. package/dist/cjs/js/src/huobi.js +16 -0
  182. package/dist/cjs/js/src/huobijp.js +1918 -0
  183. package/dist/cjs/js/src/idex.js +1770 -0
  184. package/dist/cjs/js/src/independentreserve.js +761 -0
  185. package/dist/cjs/js/src/indodax.js +1069 -0
  186. package/dist/cjs/js/src/kraken.js +2857 -0
  187. package/dist/cjs/js/src/krakenfutures.js +2407 -0
  188. package/dist/cjs/js/src/kucoin.js +4489 -0
  189. package/dist/cjs/js/src/kucoinfutures.js +2475 -0
  190. package/dist/cjs/js/src/kuna.js +1949 -0
  191. package/dist/cjs/js/src/latoken.js +1729 -0
  192. package/dist/cjs/js/src/lbank.js +2851 -0
  193. package/dist/cjs/js/src/luno.js +1044 -0
  194. package/dist/cjs/js/src/lykke.js +1303 -0
  195. package/dist/cjs/js/src/mercado.js +897 -0
  196. package/dist/cjs/js/src/mexc.js +5407 -0
  197. package/dist/cjs/js/src/ndax.js +2450 -0
  198. package/dist/cjs/js/src/novadax.js +1556 -0
  199. package/dist/cjs/js/src/oceanex.js +964 -0
  200. package/dist/cjs/js/src/okcoin.js +3115 -0
  201. package/dist/cjs/js/src/okx.js +7330 -0
  202. package/dist/cjs/js/src/p2b.js +1243 -0
  203. package/dist/cjs/js/src/paymium.js +597 -0
  204. package/dist/cjs/js/src/phemex.js +4722 -0
  205. package/dist/cjs/js/src/poloniex.js +2356 -0
  206. package/dist/cjs/js/src/poloniexfutures.js +1794 -0
  207. package/dist/cjs/js/src/pro/alpaca.js +714 -0
  208. package/dist/cjs/js/src/pro/ascendex.js +957 -0
  209. package/dist/cjs/js/src/pro/bequant.js +33 -0
  210. package/dist/cjs/js/src/pro/binance.js +2796 -0
  211. package/dist/cjs/js/src/pro/binancecoinm.js +23 -0
  212. package/dist/cjs/js/src/pro/binanceus.js +51 -0
  213. package/dist/cjs/js/src/pro/binanceusdm.js +32 -0
  214. package/dist/cjs/js/src/pro/bingx.js +944 -0
  215. package/dist/cjs/js/src/pro/bitcoincom.js +29 -0
  216. package/dist/cjs/js/src/pro/bitfinex.js +672 -0
  217. package/dist/cjs/js/src/pro/bitfinex2.js +1159 -0
  218. package/dist/cjs/js/src/pro/bitget.js +1733 -0
  219. package/dist/cjs/js/src/pro/bitmart.js +1486 -0
  220. package/dist/cjs/js/src/pro/bitmex.js +1576 -0
  221. package/dist/cjs/js/src/pro/bitopro.js +327 -0
  222. package/dist/cjs/js/src/pro/bitpanda.js +1341 -0
  223. package/dist/cjs/js/src/pro/bitrue.js +462 -0
  224. package/dist/cjs/js/src/pro/bitstamp.js +547 -0
  225. package/dist/cjs/js/src/pro/bitvavo.js +704 -0
  226. package/dist/cjs/js/src/pro/blockchaincom.js +794 -0
  227. package/dist/cjs/js/src/pro/bybit.js +1843 -0
  228. package/dist/cjs/js/src/pro/cex.js +1510 -0
  229. package/dist/cjs/js/src/pro/coinbase.js +561 -0
  230. package/dist/cjs/js/src/pro/coinbasepro.js +968 -0
  231. package/dist/cjs/js/src/pro/coinex.js +1095 -0
  232. package/dist/cjs/js/src/pro/cryptocom.js +1020 -0
  233. package/dist/cjs/js/src/pro/currencycom.js +563 -0
  234. package/dist/cjs/js/src/pro/deribit.js +825 -0
  235. package/dist/cjs/js/src/pro/exmo.js +658 -0
  236. package/dist/cjs/js/src/pro/gate.js +1316 -0
  237. package/dist/cjs/js/src/pro/gateio.js +16 -0
  238. package/dist/cjs/js/src/pro/gemini.js +649 -0
  239. package/dist/cjs/js/src/pro/hitbtc.js +1293 -0
  240. package/dist/cjs/js/src/pro/hollaex.js +597 -0
  241. package/dist/cjs/js/src/pro/htx.js +2383 -0
  242. package/dist/cjs/js/src/pro/huobi.js +16 -0
  243. package/dist/cjs/js/src/pro/huobijp.js +606 -0
  244. package/dist/cjs/js/src/pro/idex.js +714 -0
  245. package/dist/cjs/js/src/pro/independentreserve.js +280 -0
  246. package/dist/cjs/js/src/pro/kraken.js +1364 -0
  247. package/dist/cjs/js/src/pro/krakenfutures.js +1500 -0
  248. package/dist/cjs/js/src/pro/kucoin.js +1052 -0
  249. package/dist/cjs/js/src/pro/kucoinfutures.js +981 -0
  250. package/dist/cjs/js/src/pro/luno.js +322 -0
  251. package/dist/cjs/js/src/pro/mexc.js +1170 -0
  252. package/dist/cjs/js/src/pro/ndax.js +545 -0
  253. package/dist/cjs/js/src/pro/okcoin.js +760 -0
  254. package/dist/cjs/js/src/pro/okx.js +1608 -0
  255. package/dist/cjs/js/src/pro/phemex.js +1511 -0
  256. package/dist/cjs/js/src/pro/poloniex.js +1253 -0
  257. package/dist/cjs/js/src/pro/poloniexfutures.js +1014 -0
  258. package/dist/cjs/js/src/pro/probit.js +586 -0
  259. package/dist/cjs/js/src/pro/upbit.js +234 -0
  260. package/dist/cjs/js/src/pro/wazirx.js +776 -0
  261. package/dist/cjs/js/src/pro/whitebit.js +927 -0
  262. package/dist/cjs/js/src/pro/woo.js +769 -0
  263. package/dist/cjs/js/src/probit.js +1867 -0
  264. package/dist/cjs/js/src/static_dependencies/fflake/browser.js +401 -0
  265. package/dist/cjs/js/src/static_dependencies/jsencrypt/JSEncrypt.js +195 -0
  266. package/dist/cjs/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +308 -0
  267. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +554 -0
  268. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +94 -0
  269. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +70 -0
  270. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +91 -0
  271. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +16 -0
  272. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1760 -0
  273. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +52 -0
  274. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +81 -0
  275. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +376 -0
  276. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +70 -0
  277. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1580 -0
  278. package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +74 -0
  279. package/dist/cjs/js/src/static_dependencies/noble-curves/_shortw_utils.js +24 -0
  280. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/curve.js +158 -0
  281. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/edwards.js +429 -0
  282. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +176 -0
  283. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/modular.js +324 -0
  284. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/montgomery.js +163 -0
  285. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/utils.js +245 -0
  286. package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +1018 -0
  287. package/dist/cjs/js/src/static_dependencies/noble-curves/ed25519.js +383 -0
  288. package/dist/cjs/js/src/static_dependencies/noble-curves/secp256k1.js +258 -0
  289. package/dist/cjs/js/src/static_dependencies/noble-hashes/_assert.js +53 -0
  290. package/dist/cjs/js/src/static_dependencies/noble-hashes/_sha2.js +120 -0
  291. package/dist/cjs/js/src/static_dependencies/noble-hashes/_u64.js +69 -0
  292. package/dist/cjs/js/src/static_dependencies/noble-hashes/crypto.js +7 -0
  293. package/dist/cjs/js/src/static_dependencies/noble-hashes/hmac.js +83 -0
  294. package/dist/cjs/js/src/static_dependencies/noble-hashes/md5.js +240 -0
  295. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha1.js +91 -0
  296. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha256.js +130 -0
  297. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha3.js +214 -0
  298. package/dist/cjs/js/src/static_dependencies/noble-hashes/sha512.js +239 -0
  299. package/dist/cjs/js/src/static_dependencies/noble-hashes/utils.js +93 -0
  300. package/dist/cjs/js/src/static_dependencies/node-fetch/body.js +354 -0
  301. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/abort-error.js +16 -0
  302. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/base.js +20 -0
  303. package/dist/cjs/js/src/static_dependencies/node-fetch/errors/fetch-error.js +30 -0
  304. package/dist/cjs/js/src/static_dependencies/node-fetch/headers.js +239 -0
  305. package/dist/cjs/js/src/static_dependencies/node-fetch/index.js +372 -0
  306. package/dist/cjs/js/src/static_dependencies/node-fetch/request.js +273 -0
  307. package/dist/cjs/js/src/static_dependencies/node-fetch/response.js +139 -0
  308. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/get-search.js +14 -0
  309. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/is-redirect.js +16 -0
  310. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/is.js +81 -0
  311. package/dist/cjs/js/src/static_dependencies/node-fetch/utils/referrer.js +292 -0
  312. package/dist/cjs/js/src/static_dependencies/proxies/agent-base/index.js +103 -0
  313. package/dist/cjs/js/src/static_dependencies/proxies/http-proxy-agent/index.js +140 -0
  314. package/dist/cjs/js/src/static_dependencies/proxies/https-proxy-agent/index.js +175 -0
  315. package/dist/cjs/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +95 -0
  316. package/dist/cjs/js/src/static_dependencies/qs/index.cjs.js +7 -0
  317. package/dist/cjs/js/src/static_dependencies/scure-base/index.js +383 -0
  318. package/dist/cjs/js/src/timex.js +1562 -0
  319. package/dist/cjs/js/src/tokocrypto.js +2542 -0
  320. package/dist/cjs/js/src/upbit.js +1844 -0
  321. package/dist/cjs/js/src/wavesexchange.js +2607 -0
  322. package/dist/cjs/js/src/wazirx.js +953 -0
  323. package/dist/cjs/js/src/whitebit.js +2309 -0
  324. package/dist/cjs/js/src/woo.js +2765 -0
  325. package/dist/cjs/js/src/yobit.js +1314 -0
  326. package/dist/cjs/js/src/zaif.js +736 -0
  327. package/dist/cjs/js/src/zonda.js +1883 -0
  328. package/js/ccxt.d.ts +1 -1
  329. package/js/ccxt.js +1 -1
  330. package/js/src/abstract/bigone.d.ts +18 -0
  331. package/js/src/abstract/binance.d.ts +2 -0
  332. package/js/src/abstract/binancecoinm.d.ts +2 -0
  333. package/js/src/abstract/binanceus.d.ts +2 -0
  334. package/js/src/abstract/binanceusdm.d.ts +2 -0
  335. package/js/src/abstract/bingx.d.ts +2 -0
  336. package/js/src/abstract/bybit.d.ts +1 -0
  337. package/js/src/abstract/gate.d.ts +11 -0
  338. package/js/src/abstract/gateio.d.ts +11 -0
  339. package/js/src/abstract/okx.d.ts +1 -0
  340. package/js/src/alpaca.js +18 -18
  341. package/js/src/base/Exchange.d.ts +5 -1
  342. package/js/src/base/Exchange.js +101 -12
  343. package/js/src/bigone.d.ts +3 -2
  344. package/js/src/bigone.js +429 -167
  345. package/js/src/binance.js +48 -34
  346. package/js/src/bingx.js +115 -38
  347. package/js/src/bitfinex.d.ts +2 -2
  348. package/js/src/bitfinex.js +2 -3
  349. package/js/src/bitget.js +33 -13
  350. package/js/src/bitmart.d.ts +2 -2
  351. package/js/src/bitmart.js +5 -5
  352. package/js/src/bitmex.js +1 -0
  353. package/js/src/bybit.js +2 -0
  354. package/js/src/coinbase.d.ts +26 -3
  355. package/js/src/coinbase.js +176 -26
  356. package/js/src/coinlist.js +3 -4
  357. package/js/src/coinone.js +1 -1
  358. package/js/src/coinsph.js +2 -3
  359. package/js/src/deribit.js +1 -0
  360. package/js/src/gate.d.ts +4 -4
  361. package/js/src/gate.js +96 -59
  362. package/js/src/gemini.js +1 -1
  363. package/js/src/hitbtc.d.ts +4 -4
  364. package/js/src/hitbtc.js +2 -3
  365. package/js/src/htx.d.ts +1 -0
  366. package/js/src/htx.js +29 -7
  367. package/js/src/huobijp.js +2 -3
  368. package/js/src/independentreserve.js +7 -5
  369. package/js/src/kraken.js +3 -6
  370. package/js/src/lbank.js +59 -33
  371. package/js/src/mexc.js +2 -1
  372. package/js/src/oceanex.js +1 -1
  373. package/js/src/okx.js +14 -3
  374. package/js/src/phemex.js +9 -2
  375. package/js/src/pro/binance.d.ts +2 -23
  376. package/js/src/pro/binance.js +58 -22
  377. package/js/src/pro/coinbase.d.ts +2 -2
  378. package/js/src/pro/coinbase.js +4 -1
  379. package/js/src/pro/coinbasepro.d.ts +2 -2
  380. package/js/src/pro/hitbtc.d.ts +2 -2
  381. package/js/src/pro/kraken.js +1 -1
  382. package/js/src/pro/okx.d.ts +1 -0
  383. package/js/src/pro/okx.js +52 -2
  384. package/js/src/pro/poloniex.d.ts +2 -2
  385. package/js/src/probit.js +4 -2
  386. package/js/src/upbit.d.ts +3 -101
  387. package/js/src/upbit.js +12 -12
  388. package/js/src/wavesexchange.js +1 -1
  389. package/js/src/woo.d.ts +2 -0
  390. package/js/src/woo.js +52 -0
  391. package/package.json +1 -1
  392. package/skip-tests.json +5 -0
@@ -0,0 +1,130 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _sha2 = require('./_sha2.js');
6
+ var utils = require('./utils.js');
7
+
8
+ // Choice: a ? b : c
9
+ const Chi = (a, b, c) => (a & b) ^ (~a & c);
10
+ // Majority function, true if any two inpust is true
11
+ const Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);
12
+ // Round constants:
13
+ // first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)
14
+ // prettier-ignore
15
+ const SHA256_K = new Uint32Array([
16
+ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
17
+ 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
18
+ 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
19
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
20
+ 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
21
+ 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
22
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
23
+ 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
24
+ ]);
25
+ // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):
26
+ // prettier-ignore
27
+ const IV = new Uint32Array([
28
+ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
29
+ ]);
30
+ // Temporary buffer, not used to store anything between runs
31
+ // Named this way because it matches specification.
32
+ const SHA256_W = new Uint32Array(64);
33
+ class SHA256 extends _sha2.SHA2 {
34
+ constructor() {
35
+ super(64, 32, 8, false);
36
+ // We cannot use array here since array allows indexing by variable
37
+ // which means optimizer/compiler cannot use registers.
38
+ this.A = IV[0] | 0;
39
+ this.B = IV[1] | 0;
40
+ this.C = IV[2] | 0;
41
+ this.D = IV[3] | 0;
42
+ this.E = IV[4] | 0;
43
+ this.F = IV[5] | 0;
44
+ this.G = IV[6] | 0;
45
+ this.H = IV[7] | 0;
46
+ }
47
+ get() {
48
+ const { A, B, C, D, E, F, G, H } = this;
49
+ return [A, B, C, D, E, F, G, H];
50
+ }
51
+ // prettier-ignore
52
+ set(A, B, C, D, E, F, G, H) {
53
+ this.A = A | 0;
54
+ this.B = B | 0;
55
+ this.C = C | 0;
56
+ this.D = D | 0;
57
+ this.E = E | 0;
58
+ this.F = F | 0;
59
+ this.G = G | 0;
60
+ this.H = H | 0;
61
+ }
62
+ process(view, offset) {
63
+ // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array
64
+ for (let i = 0; i < 16; i++, offset += 4)
65
+ SHA256_W[i] = view.getUint32(offset, false);
66
+ for (let i = 16; i < 64; i++) {
67
+ const W15 = SHA256_W[i - 15];
68
+ const W2 = SHA256_W[i - 2];
69
+ const s0 = utils.rotr(W15, 7) ^ utils.rotr(W15, 18) ^ (W15 >>> 3);
70
+ const s1 = utils.rotr(W2, 17) ^ utils.rotr(W2, 19) ^ (W2 >>> 10);
71
+ SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;
72
+ }
73
+ // Compression function main loop, 64 rounds
74
+ let { A, B, C, D, E, F, G, H } = this;
75
+ for (let i = 0; i < 64; i++) {
76
+ const sigma1 = utils.rotr(E, 6) ^ utils.rotr(E, 11) ^ utils.rotr(E, 25);
77
+ const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;
78
+ const sigma0 = utils.rotr(A, 2) ^ utils.rotr(A, 13) ^ utils.rotr(A, 22);
79
+ const T2 = (sigma0 + Maj(A, B, C)) | 0;
80
+ H = G;
81
+ G = F;
82
+ F = E;
83
+ E = (D + T1) | 0;
84
+ D = C;
85
+ C = B;
86
+ B = A;
87
+ A = (T1 + T2) | 0;
88
+ }
89
+ // Add the compressed chunk to the current hash value
90
+ A = (A + this.A) | 0;
91
+ B = (B + this.B) | 0;
92
+ C = (C + this.C) | 0;
93
+ D = (D + this.D) | 0;
94
+ E = (E + this.E) | 0;
95
+ F = (F + this.F) | 0;
96
+ G = (G + this.G) | 0;
97
+ H = (H + this.H) | 0;
98
+ this.set(A, B, C, D, E, F, G, H);
99
+ }
100
+ roundClean() {
101
+ SHA256_W.fill(0);
102
+ }
103
+ destroy() {
104
+ this.set(0, 0, 0, 0, 0, 0, 0, 0);
105
+ this.buffer.fill(0);
106
+ }
107
+ }
108
+ // Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf
109
+ class SHA224 extends SHA256 {
110
+ constructor() {
111
+ super();
112
+ this.A = 0xc1059ed8 | 0;
113
+ this.B = 0x367cd507 | 0;
114
+ this.C = 0x3070dd17 | 0;
115
+ this.D = 0xf70e5939 | 0;
116
+ this.E = 0xffc00b31 | 0;
117
+ this.F = 0x68581511 | 0;
118
+ this.G = 0x64f98fa7 | 0;
119
+ this.H = 0xbefa4fa4 | 0;
120
+ this.outputLen = 28;
121
+ }
122
+ }
123
+ /**
124
+ * SHA2-256 hash function
125
+ * @param message - data that would be hashed
126
+ */
127
+ const sha256 = utils.wrapConstructor(() => new SHA256());
128
+ utils.wrapConstructor(() => new SHA224());
129
+
130
+ exports.sha256 = sha256;
@@ -0,0 +1,214 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _assert = require('./_assert.js');
6
+ var _u64 = require('./_u64.js');
7
+ var utils = require('./utils.js');
8
+
9
+ // Various per round constants calculations
10
+ const [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];
11
+ const _0n = BigInt(0);
12
+ const _1n = BigInt(1);
13
+ const _2n = BigInt(2);
14
+ const _7n = BigInt(7);
15
+ const _256n = BigInt(256);
16
+ const _0x71n = BigInt(0x71);
17
+ for (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {
18
+ // Pi
19
+ [x, y] = [y, (2 * x + 3 * y) % 5];
20
+ SHA3_PI.push(2 * (5 * y + x));
21
+ // Rotational
22
+ SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);
23
+ // Iota
24
+ let t = _0n;
25
+ for (let j = 0; j < 7; j++) {
26
+ R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;
27
+ if (R & _2n)
28
+ t ^= _1n << ((_1n << BigInt(j)) - _1n);
29
+ }
30
+ _SHA3_IOTA.push(t);
31
+ }
32
+ const [SHA3_IOTA_H, SHA3_IOTA_L] = _u64["default"].split(_SHA3_IOTA, true);
33
+ // Left rotation (without 0, 32, 64)
34
+ const rotlH = (h, l, s) => s > 32 ? _u64["default"].rotlBH(h, l, s) : _u64["default"].rotlSH(h, l, s);
35
+ const rotlL = (h, l, s) => s > 32 ? _u64["default"].rotlBL(h, l, s) : _u64["default"].rotlSL(h, l, s);
36
+ // Same as keccakf1600, but allows to skip some rounds
37
+ function keccakP(s, rounds = 24) {
38
+ const B = new Uint32Array(5 * 2);
39
+ // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)
40
+ for (let round = 24 - rounds; round < 24; round++) {
41
+ // Theta θ
42
+ for (let x = 0; x < 10; x++)
43
+ B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];
44
+ for (let x = 0; x < 10; x += 2) {
45
+ const idx1 = (x + 8) % 10;
46
+ const idx0 = (x + 2) % 10;
47
+ const B0 = B[idx0];
48
+ const B1 = B[idx0 + 1];
49
+ const Th = rotlH(B0, B1, 1) ^ B[idx1];
50
+ const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];
51
+ for (let y = 0; y < 50; y += 10) {
52
+ s[x + y] ^= Th;
53
+ s[x + y + 1] ^= Tl;
54
+ }
55
+ }
56
+ // Rho (ρ) and Pi (π)
57
+ let curH = s[2];
58
+ let curL = s[3];
59
+ for (let t = 0; t < 24; t++) {
60
+ const shift = SHA3_ROTL[t];
61
+ const Th = rotlH(curH, curL, shift);
62
+ const Tl = rotlL(curH, curL, shift);
63
+ const PI = SHA3_PI[t];
64
+ curH = s[PI];
65
+ curL = s[PI + 1];
66
+ s[PI] = Th;
67
+ s[PI + 1] = Tl;
68
+ }
69
+ // Chi (χ)
70
+ for (let y = 0; y < 50; y += 10) {
71
+ for (let x = 0; x < 10; x++)
72
+ B[x] = s[y + x];
73
+ for (let x = 0; x < 10; x++)
74
+ s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];
75
+ }
76
+ // Iota (ι)
77
+ s[0] ^= SHA3_IOTA_H[round];
78
+ s[1] ^= SHA3_IOTA_L[round];
79
+ }
80
+ B.fill(0);
81
+ }
82
+ class Keccak extends utils.Hash {
83
+ // NOTE: we accept arguments in bytes instead of bits here.
84
+ constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {
85
+ super();
86
+ this.blockLen = blockLen;
87
+ this.suffix = suffix;
88
+ this.outputLen = outputLen;
89
+ this.enableXOF = enableXOF;
90
+ this.rounds = rounds;
91
+ this.pos = 0;
92
+ this.posOut = 0;
93
+ this.finished = false;
94
+ this.destroyed = false;
95
+ // Can be passed from user as dkLen
96
+ _assert["default"].number(outputLen);
97
+ // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes
98
+ if (0 >= this.blockLen || this.blockLen >= 200)
99
+ throw new Error('Sha3 supports only keccak-f1600 function');
100
+ this.state = new Uint8Array(200);
101
+ this.state32 = utils.u32(this.state);
102
+ }
103
+ keccak() {
104
+ keccakP(this.state32, this.rounds);
105
+ this.posOut = 0;
106
+ this.pos = 0;
107
+ }
108
+ update(data) {
109
+ _assert["default"].exists(this);
110
+ const { blockLen, state } = this;
111
+ data = utils.toBytes(data);
112
+ const len = data.length;
113
+ for (let pos = 0; pos < len;) {
114
+ const take = Math.min(blockLen - this.pos, len - pos);
115
+ for (let i = 0; i < take; i++)
116
+ state[this.pos++] ^= data[pos++];
117
+ if (this.pos === blockLen)
118
+ this.keccak();
119
+ }
120
+ return this;
121
+ }
122
+ finish() {
123
+ if (this.finished)
124
+ return;
125
+ this.finished = true;
126
+ const { state, suffix, pos, blockLen } = this;
127
+ // Do the padding
128
+ state[pos] ^= suffix;
129
+ if ((suffix & 0x80) !== 0 && pos === blockLen - 1)
130
+ this.keccak();
131
+ state[blockLen - 1] ^= 0x80;
132
+ this.keccak();
133
+ }
134
+ writeInto(out) {
135
+ _assert["default"].exists(this, false);
136
+ _assert["default"].bytes(out);
137
+ this.finish();
138
+ const bufferOut = this.state;
139
+ const { blockLen } = this;
140
+ for (let pos = 0, len = out.length; pos < len;) {
141
+ if (this.posOut >= blockLen)
142
+ this.keccak();
143
+ const take = Math.min(blockLen - this.posOut, len - pos);
144
+ out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);
145
+ this.posOut += take;
146
+ pos += take;
147
+ }
148
+ return out;
149
+ }
150
+ xofInto(out) {
151
+ // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF
152
+ if (!this.enableXOF)
153
+ throw new Error('XOF is not possible for this instance');
154
+ return this.writeInto(out);
155
+ }
156
+ xof(bytes) {
157
+ _assert["default"].number(bytes);
158
+ return this.xofInto(new Uint8Array(bytes));
159
+ }
160
+ digestInto(out) {
161
+ _assert["default"].output(out, this);
162
+ if (this.finished)
163
+ throw new Error('digest() was already called');
164
+ this.writeInto(out);
165
+ this.destroy();
166
+ return out;
167
+ }
168
+ digest() {
169
+ return this.digestInto(new Uint8Array(this.outputLen));
170
+ }
171
+ destroy() {
172
+ this.destroyed = true;
173
+ this.state.fill(0);
174
+ }
175
+ _cloneInto(to) {
176
+ const { blockLen, suffix, outputLen, rounds, enableXOF } = this;
177
+ to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));
178
+ to.state32.set(this.state32);
179
+ to.pos = this.pos;
180
+ to.posOut = this.posOut;
181
+ to.finished = this.finished;
182
+ to.rounds = rounds;
183
+ // Suffix can change in cSHAKE
184
+ to.suffix = suffix;
185
+ to.outputLen = outputLen;
186
+ to.enableXOF = enableXOF;
187
+ to.destroyed = this.destroyed;
188
+ return to;
189
+ }
190
+ }
191
+ const gen = (suffix, blockLen, outputLen) => utils.wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));
192
+ gen(0x06, 144, 224 / 8);
193
+ /**
194
+ * SHA3-256 hash function
195
+ * @param message - that would be hashed
196
+ */
197
+ gen(0x06, 136, 256 / 8);
198
+ gen(0x06, 104, 384 / 8);
199
+ gen(0x06, 72, 512 / 8);
200
+ gen(0x01, 144, 224 / 8);
201
+ /**
202
+ * keccak-256 hash function. Different from SHA3-256.
203
+ * @param message - that would be hashed
204
+ */
205
+ const keccak_256 = gen(0x01, 136, 256 / 8);
206
+ gen(0x01, 104, 384 / 8);
207
+ gen(0x01, 72, 512 / 8);
208
+ const genShake = (suffix, blockLen, outputLen) => utils.wrapConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));
209
+ genShake(0x1f, 168, 128 / 8);
210
+ genShake(0x1f, 136, 256 / 8);
211
+
212
+ exports.Keccak = Keccak;
213
+ exports.keccakP = keccakP;
214
+ exports.keccak_256 = keccak_256;
@@ -0,0 +1,239 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _sha2 = require('./_sha2.js');
6
+ var _u64 = require('./_u64.js');
7
+ var utils = require('./utils.js');
8
+
9
+ // Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):
10
+ // prettier-ignore
11
+ const [SHA512_Kh, SHA512_Kl] = _u64["default"].split([
12
+ '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',
13
+ '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',
14
+ '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',
15
+ '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',
16
+ '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',
17
+ '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',
18
+ '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',
19
+ '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',
20
+ '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',
21
+ '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',
22
+ '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',
23
+ '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',
24
+ '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',
25
+ '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',
26
+ '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',
27
+ '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',
28
+ '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',
29
+ '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',
30
+ '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',
31
+ '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'
32
+ ].map(n => BigInt(n)));
33
+ // Temporary buffer, not used to store anything between runs
34
+ const SHA512_W_H = new Uint32Array(80);
35
+ const SHA512_W_L = new Uint32Array(80);
36
+ class SHA512 extends _sha2.SHA2 {
37
+ constructor() {
38
+ super(128, 64, 16, false);
39
+ // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.
40
+ // Also looks cleaner and easier to verify with spec.
41
+ // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):
42
+ // h -- high 32 bits, l -- low 32 bits
43
+ this.Ah = 0x6a09e667 | 0;
44
+ this.Al = 0xf3bcc908 | 0;
45
+ this.Bh = 0xbb67ae85 | 0;
46
+ this.Bl = 0x84caa73b | 0;
47
+ this.Ch = 0x3c6ef372 | 0;
48
+ this.Cl = 0xfe94f82b | 0;
49
+ this.Dh = 0xa54ff53a | 0;
50
+ this.Dl = 0x5f1d36f1 | 0;
51
+ this.Eh = 0x510e527f | 0;
52
+ this.El = 0xade682d1 | 0;
53
+ this.Fh = 0x9b05688c | 0;
54
+ this.Fl = 0x2b3e6c1f | 0;
55
+ this.Gh = 0x1f83d9ab | 0;
56
+ this.Gl = 0xfb41bd6b | 0;
57
+ this.Hh = 0x5be0cd19 | 0;
58
+ this.Hl = 0x137e2179 | 0;
59
+ }
60
+ // prettier-ignore
61
+ get() {
62
+ const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;
63
+ return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];
64
+ }
65
+ // prettier-ignore
66
+ set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {
67
+ this.Ah = Ah | 0;
68
+ this.Al = Al | 0;
69
+ this.Bh = Bh | 0;
70
+ this.Bl = Bl | 0;
71
+ this.Ch = Ch | 0;
72
+ this.Cl = Cl | 0;
73
+ this.Dh = Dh | 0;
74
+ this.Dl = Dl | 0;
75
+ this.Eh = Eh | 0;
76
+ this.El = El | 0;
77
+ this.Fh = Fh | 0;
78
+ this.Fl = Fl | 0;
79
+ this.Gh = Gh | 0;
80
+ this.Gl = Gl | 0;
81
+ this.Hh = Hh | 0;
82
+ this.Hl = Hl | 0;
83
+ }
84
+ process(view, offset) {
85
+ // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array
86
+ for (let i = 0; i < 16; i++, offset += 4) {
87
+ SHA512_W_H[i] = view.getUint32(offset);
88
+ SHA512_W_L[i] = view.getUint32((offset += 4));
89
+ }
90
+ for (let i = 16; i < 80; i++) {
91
+ // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)
92
+ const W15h = SHA512_W_H[i - 15] | 0;
93
+ const W15l = SHA512_W_L[i - 15] | 0;
94
+ const s0h = _u64["default"].rotrSH(W15h, W15l, 1) ^ _u64["default"].rotrSH(W15h, W15l, 8) ^ _u64["default"].shrSH(W15h, W15l, 7);
95
+ const s0l = _u64["default"].rotrSL(W15h, W15l, 1) ^ _u64["default"].rotrSL(W15h, W15l, 8) ^ _u64["default"].shrSL(W15h, W15l, 7);
96
+ // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)
97
+ const W2h = SHA512_W_H[i - 2] | 0;
98
+ const W2l = SHA512_W_L[i - 2] | 0;
99
+ const s1h = _u64["default"].rotrSH(W2h, W2l, 19) ^ _u64["default"].rotrBH(W2h, W2l, 61) ^ _u64["default"].shrSH(W2h, W2l, 6);
100
+ const s1l = _u64["default"].rotrSL(W2h, W2l, 19) ^ _u64["default"].rotrBL(W2h, W2l, 61) ^ _u64["default"].shrSL(W2h, W2l, 6);
101
+ // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];
102
+ const SUMl = _u64["default"].add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);
103
+ const SUMh = _u64["default"].add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);
104
+ SHA512_W_H[i] = SUMh | 0;
105
+ SHA512_W_L[i] = SUMl | 0;
106
+ }
107
+ let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;
108
+ // Compression function main loop, 80 rounds
109
+ for (let i = 0; i < 80; i++) {
110
+ // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)
111
+ const sigma1h = _u64["default"].rotrSH(Eh, El, 14) ^ _u64["default"].rotrSH(Eh, El, 18) ^ _u64["default"].rotrBH(Eh, El, 41);
112
+ const sigma1l = _u64["default"].rotrSL(Eh, El, 14) ^ _u64["default"].rotrSL(Eh, El, 18) ^ _u64["default"].rotrBL(Eh, El, 41);
113
+ //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;
114
+ const CHIh = (Eh & Fh) ^ (~Eh & Gh);
115
+ const CHIl = (El & Fl) ^ (~El & Gl);
116
+ // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]
117
+ // prettier-ignore
118
+ const T1ll = _u64["default"].add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);
119
+ const T1h = _u64["default"].add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);
120
+ const T1l = T1ll | 0;
121
+ // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)
122
+ const sigma0h = _u64["default"].rotrSH(Ah, Al, 28) ^ _u64["default"].rotrBH(Ah, Al, 34) ^ _u64["default"].rotrBH(Ah, Al, 39);
123
+ const sigma0l = _u64["default"].rotrSL(Ah, Al, 28) ^ _u64["default"].rotrBL(Ah, Al, 34) ^ _u64["default"].rotrBL(Ah, Al, 39);
124
+ const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);
125
+ const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);
126
+ Hh = Gh | 0;
127
+ Hl = Gl | 0;
128
+ Gh = Fh | 0;
129
+ Gl = Fl | 0;
130
+ Fh = Eh | 0;
131
+ Fl = El | 0;
132
+ ({ h: Eh, l: El } = _u64["default"].add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));
133
+ Dh = Ch | 0;
134
+ Dl = Cl | 0;
135
+ Ch = Bh | 0;
136
+ Cl = Bl | 0;
137
+ Bh = Ah | 0;
138
+ Bl = Al | 0;
139
+ const All = _u64["default"].add3L(T1l, sigma0l, MAJl);
140
+ Ah = _u64["default"].add3H(All, T1h, sigma0h, MAJh);
141
+ Al = All | 0;
142
+ }
143
+ // Add the compressed chunk to the current hash value
144
+ ({ h: Ah, l: Al } = _u64["default"].add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));
145
+ ({ h: Bh, l: Bl } = _u64["default"].add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));
146
+ ({ h: Ch, l: Cl } = _u64["default"].add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));
147
+ ({ h: Dh, l: Dl } = _u64["default"].add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));
148
+ ({ h: Eh, l: El } = _u64["default"].add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));
149
+ ({ h: Fh, l: Fl } = _u64["default"].add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));
150
+ ({ h: Gh, l: Gl } = _u64["default"].add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));
151
+ ({ h: Hh, l: Hl } = _u64["default"].add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));
152
+ this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);
153
+ }
154
+ roundClean() {
155
+ SHA512_W_H.fill(0);
156
+ SHA512_W_L.fill(0);
157
+ }
158
+ destroy() {
159
+ this.buffer.fill(0);
160
+ this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
161
+ }
162
+ }
163
+ class SHA512_224 extends SHA512 {
164
+ constructor() {
165
+ super();
166
+ // h -- high 32 bits, l -- low 32 bits
167
+ this.Ah = 0x8c3d37c8 | 0;
168
+ this.Al = 0x19544da2 | 0;
169
+ this.Bh = 0x73e19966 | 0;
170
+ this.Bl = 0x89dcd4d6 | 0;
171
+ this.Ch = 0x1dfab7ae | 0;
172
+ this.Cl = 0x32ff9c82 | 0;
173
+ this.Dh = 0x679dd514 | 0;
174
+ this.Dl = 0x582f9fcf | 0;
175
+ this.Eh = 0x0f6d2b69 | 0;
176
+ this.El = 0x7bd44da8 | 0;
177
+ this.Fh = 0x77e36f73 | 0;
178
+ this.Fl = 0x04c48942 | 0;
179
+ this.Gh = 0x3f9d85a8 | 0;
180
+ this.Gl = 0x6a1d36c8 | 0;
181
+ this.Hh = 0x1112e6ad | 0;
182
+ this.Hl = 0x91d692a1 | 0;
183
+ this.outputLen = 28;
184
+ }
185
+ }
186
+ class SHA512_256 extends SHA512 {
187
+ constructor() {
188
+ super();
189
+ // h -- high 32 bits, l -- low 32 bits
190
+ this.Ah = 0x22312194 | 0;
191
+ this.Al = 0xfc2bf72c | 0;
192
+ this.Bh = 0x9f555fa3 | 0;
193
+ this.Bl = 0xc84c64c2 | 0;
194
+ this.Ch = 0x2393b86b | 0;
195
+ this.Cl = 0x6f53b151 | 0;
196
+ this.Dh = 0x96387719 | 0;
197
+ this.Dl = 0x5940eabd | 0;
198
+ this.Eh = 0x96283ee2 | 0;
199
+ this.El = 0xa88effe3 | 0;
200
+ this.Fh = 0xbe5e1e25 | 0;
201
+ this.Fl = 0x53863992 | 0;
202
+ this.Gh = 0x2b0199fc | 0;
203
+ this.Gl = 0x2c85b8aa | 0;
204
+ this.Hh = 0x0eb72ddc | 0;
205
+ this.Hl = 0x81c52ca2 | 0;
206
+ this.outputLen = 32;
207
+ }
208
+ }
209
+ class SHA384 extends SHA512 {
210
+ constructor() {
211
+ super();
212
+ // h -- high 32 bits, l -- low 32 bits
213
+ this.Ah = 0xcbbb9d5d | 0;
214
+ this.Al = 0xc1059ed8 | 0;
215
+ this.Bh = 0x629a292a | 0;
216
+ this.Bl = 0x367cd507 | 0;
217
+ this.Ch = 0x9159015a | 0;
218
+ this.Cl = 0x3070dd17 | 0;
219
+ this.Dh = 0x152fecd8 | 0;
220
+ this.Dl = 0xf70e5939 | 0;
221
+ this.Eh = 0x67332667 | 0;
222
+ this.El = 0xffc00b31 | 0;
223
+ this.Fh = 0x8eb44a87 | 0;
224
+ this.Fl = 0x68581511 | 0;
225
+ this.Gh = 0xdb0c2e0d | 0;
226
+ this.Gl = 0x64f98fa7 | 0;
227
+ this.Hh = 0x47b5481d | 0;
228
+ this.Hl = 0xbefa4fa4 | 0;
229
+ this.outputLen = 48;
230
+ }
231
+ }
232
+ const sha512 = utils.wrapConstructor(() => new SHA512());
233
+ utils.wrapConstructor(() => new SHA512_224());
234
+ utils.wrapConstructor(() => new SHA512_256());
235
+ const sha384 = utils.wrapConstructor(() => new SHA384());
236
+
237
+ exports.SHA512 = SHA512;
238
+ exports.sha384 = sha384;
239
+ exports.sha512 = sha512;
@@ -0,0 +1,93 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var crypto = require('./crypto.js');
6
+
7
+ /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
8
+ const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));
9
+ // Cast array to view
10
+ const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);
11
+ // The rotate right (circular right shift) operation for uint32
12
+ const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);
13
+ // big-endian hardware is rare. Just in case someone still decides to run hashes:
14
+ // early-throw an error because we don't support BE yet.
15
+ const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;
16
+ if (!isLE)
17
+ throw new Error('Non little-endian hardware is not supported');
18
+ Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));
19
+ function utf8ToBytes(str) {
20
+ if (typeof str !== 'string') {
21
+ throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);
22
+ }
23
+ return new TextEncoder().encode(str);
24
+ }
25
+ function toBytes(data) {
26
+ if (typeof data === 'string')
27
+ data = utf8ToBytes(data);
28
+ if (!(data instanceof Uint8Array))
29
+ throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);
30
+ return data;
31
+ }
32
+ /**
33
+ * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`
34
+ * @example concatBytes(buf1, buf2)
35
+ */
36
+ function concatBytes(...arrays) {
37
+ if (!arrays.every((a) => a instanceof Uint8Array))
38
+ throw new Error('Uint8Array list expected');
39
+ if (arrays.length === 1)
40
+ return arrays[0];
41
+ const length = arrays.reduce((a, arr) => a + arr.length, 0);
42
+ const result = new Uint8Array(length);
43
+ for (let i = 0, pad = 0; i < arrays.length; i++) {
44
+ const arr = arrays[i];
45
+ result.set(arr, pad);
46
+ pad += arr.length;
47
+ }
48
+ return result;
49
+ }
50
+ // For runtime check if class implements interface
51
+ class Hash {
52
+ // Safe version that clones internal state
53
+ clone() {
54
+ return this._cloneInto();
55
+ }
56
+ }
57
+ function wrapConstructor(hashConstructor) {
58
+ const hashC = (message) => hashConstructor().update(toBytes(message)).digest();
59
+ const tmp = hashConstructor();
60
+ hashC.outputLen = tmp.outputLen;
61
+ hashC.blockLen = tmp.blockLen;
62
+ hashC.create = () => hashConstructor();
63
+ return hashC;
64
+ }
65
+ function wrapConstructorWithOpts(hashCons) {
66
+ const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();
67
+ const tmp = hashCons({});
68
+ hashC.outputLen = tmp.outputLen;
69
+ hashC.blockLen = tmp.blockLen;
70
+ hashC.create = (opts) => hashCons(opts);
71
+ return hashC;
72
+ }
73
+ /**
74
+ * Secure PRNG. Uses `globalThis.crypto` or node.js crypto module.
75
+ */
76
+ function randomBytes(bytesLength = 32) {
77
+ if (crypto.crypto && typeof crypto.crypto.getRandomValues === 'function') {
78
+ return crypto.crypto.getRandomValues(new Uint8Array(bytesLength));
79
+ }
80
+ throw new Error('crypto.getRandomValues must be defined');
81
+ }
82
+
83
+ exports.Hash = Hash;
84
+ exports.concatBytes = concatBytes;
85
+ exports.createView = createView;
86
+ exports.isLE = isLE;
87
+ exports.randomBytes = randomBytes;
88
+ exports.rotr = rotr;
89
+ exports.toBytes = toBytes;
90
+ exports.u32 = u32;
91
+ exports.utf8ToBytes = utf8ToBytes;
92
+ exports.wrapConstructor = wrapConstructor;
93
+ exports.wrapConstructorWithOpts = wrapConstructorWithOpts;