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,52 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ // prng4.js - uses Arcfour as a PRNG
6
+ class Arcfour {
7
+ constructor() {
8
+ this.i = 0;
9
+ this.j = 0;
10
+ this.S = [];
11
+ }
12
+ // Arcfour.prototype.init = ARC4init;
13
+ // Initialize arcfour context from key, an array of ints, each from [0..255]
14
+ init(key) {
15
+ let i;
16
+ let j;
17
+ let t;
18
+ for (i = 0; i < 256; ++i) {
19
+ this.S[i] = i;
20
+ }
21
+ j = 0;
22
+ for (i = 0; i < 256; ++i) {
23
+ j = (j + this.S[i] + key[i % key.length]) & 255;
24
+ t = this.S[i];
25
+ this.S[i] = this.S[j];
26
+ this.S[j] = t;
27
+ }
28
+ this.i = 0;
29
+ this.j = 0;
30
+ }
31
+ // Arcfour.prototype.next = ARC4next;
32
+ next() {
33
+ let t;
34
+ this.i = (this.i + 1) & 255;
35
+ this.j = (this.j + this.S[this.i]) & 255;
36
+ t = this.S[this.i];
37
+ this.S[this.i] = this.S[this.j];
38
+ this.S[this.j] = t;
39
+ return this.S[(t + this.S[this.i]) & 255];
40
+ }
41
+ }
42
+ // Plug in your RNG constructor here
43
+ function prng_newstate() {
44
+ return new Arcfour();
45
+ }
46
+ // Pool size must be a multiple of 4 and greater than 32.
47
+ // An array of bytes the size of the pool will be passed to init()
48
+ let rng_psize = 256;
49
+
50
+ exports.Arcfour = Arcfour;
51
+ exports.prng_newstate = prng_newstate;
52
+ exports.rng_psize = rng_psize;
@@ -0,0 +1,81 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var prng4 = require('./prng4.js');
6
+
7
+ // Random number generator - requires a PRNG backend, e.g. prng4.js
8
+ let rng_state;
9
+ let rng_pool = null;
10
+ let rng_pptr;
11
+ // Initialize the pool with junk if needed.
12
+ if (rng_pool == null) {
13
+ rng_pool = [];
14
+ rng_pptr = 0;
15
+ let t;
16
+ if (typeof window !== 'undefined' && window.crypto && window.crypto.getRandomValues) {
17
+ // Extract entropy (2048 bits) from RNG if available
18
+ const z = new Uint32Array(256);
19
+ window.crypto.getRandomValues(z);
20
+ for (t = 0; t < z.length; ++t) {
21
+ rng_pool[rng_pptr++] = z[t] & 255;
22
+ }
23
+ }
24
+ // Use mouse events for entropy, if we do not have enough entropy by the time
25
+ // we need it, entropy will be generated by Math.random.
26
+ var count = 0;
27
+ const onMouseMoveListener = function (ev) {
28
+ count = count || 0;
29
+ if (count >= 256 || rng_pptr >= prng4.rng_psize) {
30
+ if (window.removeEventListener) {
31
+ window.removeEventListener("mousemove", onMouseMoveListener, false);
32
+ }
33
+ else if (window.detachEvent) {
34
+ window.detachEvent("onmousemove", onMouseMoveListener);
35
+ }
36
+ return;
37
+ }
38
+ try {
39
+ const mouseCoordinates = ev.x + ev.y;
40
+ rng_pool[rng_pptr++] = mouseCoordinates & 255;
41
+ count += 1;
42
+ }
43
+ catch (e) {
44
+ // Sometimes Firefox will deny permission to access event properties for some reason. Ignore.
45
+ }
46
+ };
47
+ if (typeof window !== 'undefined') {
48
+ if (window.addEventListener) {
49
+ window.addEventListener("mousemove", onMouseMoveListener, false);
50
+ }
51
+ else if (window.attachEvent) {
52
+ window.attachEvent("onmousemove", onMouseMoveListener);
53
+ }
54
+ }
55
+ }
56
+ function rng_get_byte() {
57
+ if (rng_state == null) {
58
+ rng_state = prng4.prng_newstate();
59
+ // At this point, we may not have collected enough entropy. If not, fall back to Math.random
60
+ while (rng_pptr < prng4.rng_psize) {
61
+ const random = Math.floor(65536 * Math.random());
62
+ rng_pool[rng_pptr++] = random & 255;
63
+ }
64
+ rng_state.init(rng_pool);
65
+ for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) {
66
+ rng_pool[rng_pptr] = 0;
67
+ }
68
+ rng_pptr = 0;
69
+ }
70
+ // TODO: allow reseeding after first request
71
+ return rng_state.next();
72
+ }
73
+ class SecureRandom {
74
+ nextBytes(ba) {
75
+ for (let i = 0; i < ba.length; ++i) {
76
+ ba[i] = rng_get_byte();
77
+ }
78
+ }
79
+ }
80
+
81
+ exports.SecureRandom = SecureRandom;
@@ -0,0 +1,376 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsbn = require('./jsbn.js');
6
+ var rng = require('./rng.js');
7
+
8
+ // Depends on jsbn.js and rng.js
9
+ // function linebrk(s,n) {
10
+ // var ret = "";
11
+ // var i = 0;
12
+ // while(i + n < s.length) {
13
+ // ret += s.substring(i,i+n) + "\n";
14
+ // i += n;
15
+ // }
16
+ // return ret + s.substring(i,s.length);
17
+ // }
18
+ // function byte2Hex(b) {
19
+ // if(b < 0x10)
20
+ // return "0" + b.toString(16);
21
+ // else
22
+ // return b.toString(16);
23
+ // }
24
+ function pkcs1pad1(s, n) {
25
+ if (n < s.length + 22) {
26
+ console.error("Message too long for RSA");
27
+ return null;
28
+ }
29
+ const len = n - s.length - 6;
30
+ let filler = "";
31
+ for (let f = 0; f < len; f += 2) {
32
+ filler += "ff";
33
+ }
34
+ const m = "0001" + filler + "00" + s;
35
+ return jsbn.parseBigInt(m, 16);
36
+ }
37
+ // PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint
38
+ function pkcs1pad2(s, n) {
39
+ if (n < s.length + 11) { // TODO: fix for utf-8
40
+ console.error("Message too long for RSA");
41
+ return null;
42
+ }
43
+ const ba = [];
44
+ let i = s.length - 1;
45
+ while (i >= 0 && n > 0) {
46
+ const c = s.charCodeAt(i--);
47
+ if (c < 128) { // encode using utf-8
48
+ ba[--n] = c;
49
+ }
50
+ else if ((c > 127) && (c < 2048)) {
51
+ ba[--n] = (c & 63) | 128;
52
+ ba[--n] = (c >> 6) | 192;
53
+ }
54
+ else {
55
+ ba[--n] = (c & 63) | 128;
56
+ ba[--n] = ((c >> 6) & 63) | 128;
57
+ ba[--n] = (c >> 12) | 224;
58
+ }
59
+ }
60
+ ba[--n] = 0;
61
+ const rng$1 = new rng.SecureRandom();
62
+ const x = [];
63
+ while (n > 2) { // random non-zero pad
64
+ x[0] = 0;
65
+ while (x[0] == 0) {
66
+ rng$1.nextBytes(x);
67
+ }
68
+ ba[--n] = x[0];
69
+ }
70
+ ba[--n] = 2;
71
+ ba[--n] = 0;
72
+ return new jsbn.BigInteger(ba);
73
+ }
74
+ // "empty" RSA key constructor
75
+ class RSAKey {
76
+ constructor() {
77
+ this.n = null;
78
+ this.e = 0;
79
+ this.d = null;
80
+ this.p = null;
81
+ this.q = null;
82
+ this.dmp1 = null;
83
+ this.dmq1 = null;
84
+ this.coeff = null;
85
+ }
86
+ //#region PROTECTED
87
+ // protected
88
+ // RSAKey.prototype.doPublic = RSADoPublic;
89
+ // Perform raw public operation on "x": return x^e (mod n)
90
+ doPublic(x) {
91
+ return x.modPowInt(this.e, this.n);
92
+ }
93
+ // RSAKey.prototype.doPrivate = RSADoPrivate;
94
+ // Perform raw private operation on "x": return x^d (mod n)
95
+ doPrivate(x) {
96
+ if (this.p == null || this.q == null) {
97
+ return x.modPow(this.d, this.n);
98
+ }
99
+ // TODO: re-calculate any missing CRT params
100
+ let xp = x.mod(this.p).modPow(this.dmp1, this.p);
101
+ const xq = x.mod(this.q).modPow(this.dmq1, this.q);
102
+ while (xp.compareTo(xq) < 0) {
103
+ xp = xp.add(this.p);
104
+ }
105
+ return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);
106
+ }
107
+ //#endregion PROTECTED
108
+ //#region PUBLIC
109
+ // RSAKey.prototype.setPublic = RSASetPublic;
110
+ // Set the public key fields N and e from hex strings
111
+ setPublic(N, E) {
112
+ if (N != null && E != null && N.length > 0 && E.length > 0) {
113
+ this.n = jsbn.parseBigInt(N, 16);
114
+ this.e = parseInt(E, 16);
115
+ }
116
+ else {
117
+ console.error("Invalid RSA public key");
118
+ }
119
+ }
120
+ // RSAKey.prototype.encrypt = RSAEncrypt;
121
+ // Return the PKCS#1 RSA encryption of "text" as an even-length hex string
122
+ encrypt(text) {
123
+ const maxLength = (this.n.bitLength() + 7) >> 3;
124
+ const m = pkcs1pad2(text, maxLength);
125
+ if (m == null) {
126
+ return null;
127
+ }
128
+ const c = this.doPublic(m);
129
+ if (c == null) {
130
+ return null;
131
+ }
132
+ let h = c.toString(16);
133
+ let length = h.length;
134
+ // fix zero before result
135
+ for (let i = 0; i < maxLength * 2 - length; i++) {
136
+ h = "0" + h;
137
+ }
138
+ return h;
139
+ }
140
+ // RSAKey.prototype.setPrivate = RSASetPrivate;
141
+ // Set the private key fields N, e, and d from hex strings
142
+ setPrivate(N, E, D) {
143
+ if (N != null && E != null && N.length > 0 && E.length > 0) {
144
+ this.n = jsbn.parseBigInt(N, 16);
145
+ this.e = parseInt(E, 16);
146
+ this.d = jsbn.parseBigInt(D, 16);
147
+ }
148
+ else {
149
+ console.error("Invalid RSA private key");
150
+ }
151
+ }
152
+ // RSAKey.prototype.setPrivateEx = RSASetPrivateEx;
153
+ // Set the private key fields N, e, d and CRT params from hex strings
154
+ setPrivateEx(N, E, D, P, Q, DP, DQ, C) {
155
+ if (N != null && E != null && N.length > 0 && E.length > 0) {
156
+ this.n = jsbn.parseBigInt(N, 16);
157
+ this.e = parseInt(E, 16);
158
+ this.d = jsbn.parseBigInt(D, 16);
159
+ this.p = jsbn.parseBigInt(P, 16);
160
+ this.q = jsbn.parseBigInt(Q, 16);
161
+ this.dmp1 = jsbn.parseBigInt(DP, 16);
162
+ this.dmq1 = jsbn.parseBigInt(DQ, 16);
163
+ this.coeff = jsbn.parseBigInt(C, 16);
164
+ }
165
+ else {
166
+ console.error("Invalid RSA private key");
167
+ }
168
+ }
169
+ // RSAKey.prototype.generate = RSAGenerate;
170
+ // Generate a new random private key B bits long, using public expt E
171
+ generate(B, E) {
172
+ const rng$1 = new rng.SecureRandom();
173
+ const qs = B >> 1;
174
+ this.e = parseInt(E, 16);
175
+ const ee = new jsbn.BigInteger(E, 16);
176
+ for (;;) {
177
+ for (;;) {
178
+ this.p = new jsbn.BigInteger(B - qs, 1, rng$1);
179
+ if (this.p.subtract(jsbn.BigInteger.ONE).gcd(ee).compareTo(jsbn.BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) {
180
+ break;
181
+ }
182
+ }
183
+ for (;;) {
184
+ this.q = new jsbn.BigInteger(qs, 1, rng$1);
185
+ if (this.q.subtract(jsbn.BigInteger.ONE).gcd(ee).compareTo(jsbn.BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) {
186
+ break;
187
+ }
188
+ }
189
+ if (this.p.compareTo(this.q) <= 0) {
190
+ const t = this.p;
191
+ this.p = this.q;
192
+ this.q = t;
193
+ }
194
+ const p1 = this.p.subtract(jsbn.BigInteger.ONE);
195
+ const q1 = this.q.subtract(jsbn.BigInteger.ONE);
196
+ const phi = p1.multiply(q1);
197
+ if (phi.gcd(ee).compareTo(jsbn.BigInteger.ONE) == 0) {
198
+ this.n = this.p.multiply(this.q);
199
+ this.d = ee.modInverse(phi);
200
+ this.dmp1 = this.d.mod(p1);
201
+ this.dmq1 = this.d.mod(q1);
202
+ this.coeff = this.q.modInverse(this.p);
203
+ break;
204
+ }
205
+ }
206
+ }
207
+ // RSAKey.prototype.decrypt = RSADecrypt;
208
+ // Return the PKCS#1 RSA decryption of "ctext".
209
+ // "ctext" is an even-length hex string and the output is a plain string.
210
+ decrypt(ctext) {
211
+ const c = jsbn.parseBigInt(ctext, 16);
212
+ const m = this.doPrivate(c);
213
+ if (m == null) {
214
+ return null;
215
+ }
216
+ return pkcs1unpad2(m, (this.n.bitLength() + 7) >> 3);
217
+ }
218
+ // Generate a new random private key B bits long, using public expt E
219
+ generateAsync(B, E, callback) {
220
+ const rng$1 = new rng.SecureRandom();
221
+ const qs = B >> 1;
222
+ this.e = parseInt(E, 16);
223
+ const ee = new jsbn.BigInteger(E, 16);
224
+ const rsa = this;
225
+ // These functions have non-descript names because they were originally for(;;) loops.
226
+ // I don't know about cryptography to give them better names than loop1-4.
227
+ const loop1 = function () {
228
+ const loop4 = function () {
229
+ if (rsa.p.compareTo(rsa.q) <= 0) {
230
+ const t = rsa.p;
231
+ rsa.p = rsa.q;
232
+ rsa.q = t;
233
+ }
234
+ const p1 = rsa.p.subtract(jsbn.BigInteger.ONE);
235
+ const q1 = rsa.q.subtract(jsbn.BigInteger.ONE);
236
+ const phi = p1.multiply(q1);
237
+ if (phi.gcd(ee).compareTo(jsbn.BigInteger.ONE) == 0) {
238
+ rsa.n = rsa.p.multiply(rsa.q);
239
+ rsa.d = ee.modInverse(phi);
240
+ rsa.dmp1 = rsa.d.mod(p1);
241
+ rsa.dmq1 = rsa.d.mod(q1);
242
+ rsa.coeff = rsa.q.modInverse(rsa.p);
243
+ setTimeout(function () { callback(); }, 0); // escape
244
+ }
245
+ else {
246
+ setTimeout(loop1, 0);
247
+ }
248
+ };
249
+ const loop3 = function () {
250
+ rsa.q = jsbn.nbi();
251
+ rsa.q.fromNumberAsync(qs, 1, rng$1, function () {
252
+ rsa.q.subtract(jsbn.BigInteger.ONE).gcda(ee, function (r) {
253
+ if (r.compareTo(jsbn.BigInteger.ONE) == 0 && rsa.q.isProbablePrime(10)) {
254
+ setTimeout(loop4, 0);
255
+ }
256
+ else {
257
+ setTimeout(loop3, 0);
258
+ }
259
+ });
260
+ });
261
+ };
262
+ const loop2 = function () {
263
+ rsa.p = jsbn.nbi();
264
+ rsa.p.fromNumberAsync(B - qs, 1, rng$1, function () {
265
+ rsa.p.subtract(jsbn.BigInteger.ONE).gcda(ee, function (r) {
266
+ if (r.compareTo(jsbn.BigInteger.ONE) == 0 && rsa.p.isProbablePrime(10)) {
267
+ setTimeout(loop3, 0);
268
+ }
269
+ else {
270
+ setTimeout(loop2, 0);
271
+ }
272
+ });
273
+ });
274
+ };
275
+ setTimeout(loop2, 0);
276
+ };
277
+ setTimeout(loop1, 0);
278
+ }
279
+ sign(text, digestMethod, digestName) {
280
+ const header = getDigestHeader(digestName);
281
+ const digest = header + digestMethod(text).toString();
282
+ const m = pkcs1pad1(digest, this.n.bitLength() / 4);
283
+ if (m == null) {
284
+ return null;
285
+ }
286
+ const c = this.doPrivate(m);
287
+ if (c == null) {
288
+ return null;
289
+ }
290
+ const h = c.toString(16);
291
+ if ((h.length & 1) == 0) {
292
+ return h;
293
+ }
294
+ else {
295
+ return "0" + h;
296
+ }
297
+ }
298
+ verify(text, signature, digestMethod) {
299
+ const c = jsbn.parseBigInt(signature, 16);
300
+ const m = this.doPublic(c);
301
+ if (m == null) {
302
+ return null;
303
+ }
304
+ const unpadded = m.toString(16).replace(/^1f+00/, "");
305
+ const digest = removeDigestHeader(unpadded);
306
+ return digest == digestMethod(text).toString();
307
+ }
308
+ }
309
+ // Undo PKCS#1 (type 2, random) padding and, if valid, return the plaintext
310
+ function pkcs1unpad2(d, n) {
311
+ const b = d.toByteArray();
312
+ let i = 0;
313
+ while (i < b.length && b[i] == 0) {
314
+ ++i;
315
+ }
316
+ if (b.length - i != n - 1 || b[i] != 2) {
317
+ return null;
318
+ }
319
+ ++i;
320
+ while (b[i] != 0) {
321
+ if (++i >= b.length) {
322
+ return null;
323
+ }
324
+ }
325
+ let ret = "";
326
+ while (++i < b.length) {
327
+ const c = b[i] & 255;
328
+ if (c < 128) { // utf-8 decode
329
+ ret += String.fromCharCode(c);
330
+ }
331
+ else if ((c > 191) && (c < 224)) {
332
+ ret += String.fromCharCode(((c & 31) << 6) | (b[i + 1] & 63));
333
+ ++i;
334
+ }
335
+ else {
336
+ ret += String.fromCharCode(((c & 15) << 12) | ((b[i + 1] & 63) << 6) | (b[i + 2] & 63));
337
+ i += 2;
338
+ }
339
+ }
340
+ return ret;
341
+ }
342
+ // https://tools.ietf.org/html/rfc3447#page-43
343
+ const DIGEST_HEADERS = {
344
+ md2: "3020300c06082a864886f70d020205000410",
345
+ md5: "3020300c06082a864886f70d020505000410",
346
+ sha1: "3021300906052b0e03021a05000414",
347
+ sha224: "302d300d06096086480165030402040500041c",
348
+ sha256: "3031300d060960864801650304020105000420",
349
+ sha384: "3041300d060960864801650304020205000430",
350
+ sha512: "3051300d060960864801650304020305000440",
351
+ ripemd160: "3021300906052b2403020105000414"
352
+ };
353
+ function getDigestHeader(name) {
354
+ return DIGEST_HEADERS[name] || "";
355
+ }
356
+ function removeDigestHeader(str) {
357
+ for (const name in DIGEST_HEADERS) {
358
+ if (DIGEST_HEADERS.hasOwnProperty(name)) {
359
+ const header = DIGEST_HEADERS[name];
360
+ const len = header.length;
361
+ if (str.substr(0, len) == header) {
362
+ return str.substr(len);
363
+ }
364
+ }
365
+ }
366
+ return str;
367
+ }
368
+ // Return the PKCS#1 RSA encryption of "text" as a Base64-encoded string
369
+ // function RSAEncryptB64(text) {
370
+ // var h = this.encrypt(text);
371
+ // if(h) return hex2b64(h); else return null;
372
+ // }
373
+ // public
374
+ // RSAKey.prototype.encrypt_b64 = RSAEncryptB64;
375
+
376
+ exports.RSAKey = RSAKey;
@@ -0,0 +1,70 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
6
+ function int2char(n) {
7
+ return BI_RM.charAt(n);
8
+ }
9
+ //#region BIT_OPERATIONS
10
+ // (public) this & a
11
+ function op_and(x, y) {
12
+ return x & y;
13
+ }
14
+ // (public) this | a
15
+ function op_or(x, y) {
16
+ return x | y;
17
+ }
18
+ // (public) this ^ a
19
+ function op_xor(x, y) {
20
+ return x ^ y;
21
+ }
22
+ // (public) this & ~a
23
+ function op_andnot(x, y) {
24
+ return x & ~y;
25
+ }
26
+ // return index of lowest 1-bit in x, x < 2^31
27
+ function lbit(x) {
28
+ if (x == 0) {
29
+ return -1;
30
+ }
31
+ let r = 0;
32
+ if ((x & 0xffff) == 0) {
33
+ x >>= 16;
34
+ r += 16;
35
+ }
36
+ if ((x & 0xff) == 0) {
37
+ x >>= 8;
38
+ r += 8;
39
+ }
40
+ if ((x & 0xf) == 0) {
41
+ x >>= 4;
42
+ r += 4;
43
+ }
44
+ if ((x & 3) == 0) {
45
+ x >>= 2;
46
+ r += 2;
47
+ }
48
+ if ((x & 1) == 0) {
49
+ ++r;
50
+ }
51
+ return r;
52
+ }
53
+ // return number of 1 bits in x
54
+ function cbit(x) {
55
+ let r = 0;
56
+ while (x != 0) {
57
+ x &= x - 1;
58
+ ++r;
59
+ }
60
+ return r;
61
+ }
62
+ //#endregion BIT_OPERATIONS
63
+
64
+ exports.cbit = cbit;
65
+ exports.int2char = int2char;
66
+ exports.lbit = lbit;
67
+ exports.op_and = op_and;
68
+ exports.op_andnot = op_andnot;
69
+ exports.op_or = op_or;
70
+ exports.op_xor = op_xor;