quantumcoin 6.14.2 → 6.14.5

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 (317) hide show
  1. package/CHANGELOG.md +442 -442
  2. package/FUNDING.json +10 -10
  3. package/LICENSE.md +21 -21
  4. package/README.md +132 -142
  5. package/SECURITY.md +34 -34
  6. package/dist/README.md +22 -22
  7. package/dist/quantumcoin.js +1127 -1324
  8. package/dist/quantumcoin.js.map +1 -1
  9. package/dist/quantumcoin.min.js +1 -1
  10. package/dist/quantumcoin.umd.js +1128 -1327
  11. package/dist/quantumcoin.umd.js.map +1 -1
  12. package/dist/quantumcoin.umd.min.js +1 -1
  13. package/dist/wordlists-extra.js +1 -1
  14. package/dist/wordlists-extra.js.map +1 -1
  15. package/dist/wordlists-extra.min.js +1 -1
  16. package/lib.commonjs/README.md +16 -16
  17. package/lib.commonjs/_version.js +1 -1
  18. package/lib.commonjs/crypto/signature.d.ts +3 -76
  19. package/lib.commonjs/crypto/signature.d.ts.map +1 -1
  20. package/lib.commonjs/crypto/signature.js +15 -199
  21. package/lib.commonjs/crypto/signature.js.map +1 -1
  22. package/lib.commonjs/crypto/signing-key.d.ts +1 -1
  23. package/lib.commonjs/crypto/signing-key.d.ts.map +1 -1
  24. package/lib.commonjs/crypto/signing-key.js +19 -10
  25. package/lib.commonjs/crypto/signing-key.js.map +1 -1
  26. package/lib.commonjs/package.json +12 -12
  27. package/lib.commonjs/providers/provider-jsonrpc.d.ts +0 -1
  28. package/lib.commonjs/providers/provider-jsonrpc.d.ts.map +1 -1
  29. package/lib.commonjs/providers/provider-jsonrpc.js +0 -1
  30. package/lib.commonjs/providers/provider-jsonrpc.js.map +1 -1
  31. package/lib.commonjs/quantumcoin.d.ts +2 -0
  32. package/lib.commonjs/quantumcoin.d.ts.map +1 -1
  33. package/lib.commonjs/quantumcoin.js +11 -5
  34. package/lib.commonjs/quantumcoin.js.map +1 -1
  35. package/lib.commonjs/transaction/address.d.ts.map +1 -1
  36. package/lib.commonjs/transaction/address.js +8 -3
  37. package/lib.commonjs/transaction/address.js.map +1 -1
  38. package/lib.commonjs/transaction/transaction.d.ts.map +1 -1
  39. package/lib.commonjs/transaction/transaction.js +7 -40
  40. package/lib.commonjs/transaction/transaction.js.map +1 -1
  41. package/lib.commonjs/wallet/json-keystore.d.ts.map +1 -1
  42. package/lib.commonjs/wallet/json-keystore.js +7 -7
  43. package/lib.commonjs/wallet/json-keystore.js.map +1 -1
  44. package/lib.commonjs/wallet/wallet.d.ts.map +1 -1
  45. package/lib.commonjs/wallet/wallet.js +2 -2
  46. package/lib.commonjs/wallet/wallet.js.map +1 -1
  47. package/lib.esm/README.md +16 -16
  48. package/lib.esm/_version.js +1 -1
  49. package/lib.esm/crypto/signature.d.ts +3 -76
  50. package/lib.esm/crypto/signature.d.ts.map +1 -1
  51. package/lib.esm/crypto/signature.js +16 -202
  52. package/lib.esm/crypto/signature.js.map +1 -1
  53. package/lib.esm/crypto/signing-key.d.ts +1 -1
  54. package/lib.esm/crypto/signing-key.d.ts.map +1 -1
  55. package/lib.esm/crypto/signing-key.js +20 -9
  56. package/lib.esm/crypto/signing-key.js.map +1 -1
  57. package/lib.esm/package.json +12 -12
  58. package/lib.esm/providers/provider-jsonrpc.d.ts +0 -1
  59. package/lib.esm/providers/provider-jsonrpc.d.ts.map +1 -1
  60. package/lib.esm/providers/provider-jsonrpc.js +0 -1
  61. package/lib.esm/providers/provider-jsonrpc.js.map +1 -1
  62. package/lib.esm/quantumcoin.d.ts +2 -0
  63. package/lib.esm/quantumcoin.d.ts.map +1 -1
  64. package/lib.esm/quantumcoin.js +6 -0
  65. package/lib.esm/quantumcoin.js.map +1 -1
  66. package/lib.esm/transaction/address.d.ts.map +1 -1
  67. package/lib.esm/transaction/address.js +8 -2
  68. package/lib.esm/transaction/address.js.map +1 -1
  69. package/lib.esm/transaction/transaction.d.ts.map +1 -1
  70. package/lib.esm/transaction/transaction.js +7 -40
  71. package/lib.esm/transaction/transaction.js.map +1 -1
  72. package/lib.esm/wallet/json-keystore.d.ts.map +1 -1
  73. package/lib.esm/wallet/json-keystore.js +11 -5
  74. package/lib.esm/wallet/json-keystore.js.map +1 -1
  75. package/lib.esm/wallet/wallet.d.ts.map +1 -1
  76. package/lib.esm/wallet/wallet.js +3 -1
  77. package/lib.esm/wallet/wallet.js.map +1 -1
  78. package/package.json +6 -5
  79. package/rollup.config.mjs +50 -50
  80. package/src.ts/_version.ts +1 -1
  81. package/src.ts/abi/abi-coder.ts +237 -237
  82. package/src.ts/abi/bytes32.ts +45 -45
  83. package/src.ts/abi/coders/abstract-coder.ts +541 -541
  84. package/src.ts/abi/coders/address.ts +36 -36
  85. package/src.ts/abi/coders/anonymous.ts +29 -29
  86. package/src.ts/abi/coders/array.ts +199 -199
  87. package/src.ts/abi/coders/boolean.ts +27 -27
  88. package/src.ts/abi/coders/bytes.ts +43 -43
  89. package/src.ts/abi/coders/fixed-bytes.ts +37 -37
  90. package/src.ts/abi/coders/null.ts +28 -28
  91. package/src.ts/abi/coders/number.ts +63 -63
  92. package/src.ts/abi/coders/string.ts +29 -29
  93. package/src.ts/abi/coders/tuple.ts +69 -69
  94. package/src.ts/abi/fragments.ts +1617 -1617
  95. package/src.ts/abi/index.ts +41 -41
  96. package/src.ts/abi/interface.ts +1271 -1271
  97. package/src.ts/abi/typed.ts +796 -796
  98. package/src.ts/address/address.ts +148 -148
  99. package/src.ts/address/checks.ts +123 -123
  100. package/src.ts/address/contract-address.ts +80 -80
  101. package/src.ts/address/index.ts +57 -57
  102. package/src.ts/constants/addresses.ts +8 -8
  103. package/src.ts/constants/hashes.ts +7 -7
  104. package/src.ts/constants/index.ts +16 -16
  105. package/src.ts/constants/numbers.ts +35 -35
  106. package/src.ts/constants/strings.ts +16 -16
  107. package/src.ts/contract/contract.ts +1120 -1120
  108. package/src.ts/contract/factory.ts +143 -143
  109. package/src.ts/contract/index.ts +31 -31
  110. package/src.ts/contract/types.ts +236 -236
  111. package/src.ts/contract/wrappers.ts +225 -225
  112. package/src.ts/crypto/crypto-browser.ts +64 -64
  113. package/src.ts/crypto/crypto.ts +4 -4
  114. package/src.ts/crypto/hmac.ts +51 -51
  115. package/src.ts/crypto/index.ts +59 -59
  116. package/src.ts/crypto/keccak.ts +54 -54
  117. package/src.ts/crypto/pbkdf2.ts +55 -55
  118. package/src.ts/crypto/random.ts +36 -36
  119. package/src.ts/crypto/ripemd160.ts +43 -43
  120. package/src.ts/crypto/scrypt.ts +114 -114
  121. package/src.ts/crypto/sha2.ts +78 -78
  122. package/src.ts/crypto/signature.ts +145 -349
  123. package/src.ts/crypto/signing-key.ts +126 -118
  124. package/src.ts/hash/authorization.ts +38 -38
  125. package/src.ts/hash/id.ts +17 -17
  126. package/src.ts/hash/index.ts +18 -18
  127. package/src.ts/hash/message.ts +51 -51
  128. package/src.ts/hash/namehash.ts +101 -101
  129. package/src.ts/hash/solidity.ts +117 -117
  130. package/src.ts/hash/typed-data.ts +658 -658
  131. package/src.ts/index.ts +12 -12
  132. package/src.ts/providers/abstract-provider.ts +1761 -1761
  133. package/src.ts/providers/abstract-signer.ts +314 -314
  134. package/src.ts/providers/community.ts +49 -49
  135. package/src.ts/providers/contracts.ts +42 -42
  136. package/src.ts/providers/default-provider.ts +96 -96
  137. package/src.ts/providers/ens-resolver.ts +606 -606
  138. package/src.ts/providers/format.ts +320 -320
  139. package/src.ts/providers/formatting.ts +418 -418
  140. package/src.ts/providers/index.ts +125 -125
  141. package/src.ts/providers/network.ts +327 -327
  142. package/src.ts/providers/pagination.ts +8 -8
  143. package/src.ts/providers/plugin-fallback.ts +35 -35
  144. package/src.ts/providers/plugins-network.ts +281 -281
  145. package/src.ts/providers/provider-browser.ts +334 -334
  146. package/src.ts/providers/provider-fallback.ts +801 -801
  147. package/src.ts/providers/provider-ipcsocket-browser.ts +3 -3
  148. package/src.ts/providers/provider-ipcsocket.ts +81 -81
  149. package/src.ts/providers/provider-jsonrpc.ts +1334 -1335
  150. package/src.ts/providers/provider-socket.ts +352 -352
  151. package/src.ts/providers/provider-websocket.ts +103 -103
  152. package/src.ts/providers/provider.ts +2136 -2136
  153. package/src.ts/providers/signer-noncemanager.ts +98 -98
  154. package/src.ts/providers/signer.ts +166 -166
  155. package/src.ts/providers/subscriber-connection.ts +74 -74
  156. package/src.ts/providers/subscriber-filterid.ts +199 -199
  157. package/src.ts/providers/subscriber-polling.ts +321 -321
  158. package/src.ts/providers/ws-browser.ts +11 -11
  159. package/src.ts/providers/ws.ts +3 -3
  160. package/src.ts/quantumcoin.ts +219 -211
  161. package/src.ts/thirdparty.d.ts +16 -16
  162. package/src.ts/transaction/accesslist.ts +43 -43
  163. package/src.ts/transaction/address.ts +35 -31
  164. package/src.ts/transaction/authorization.ts +14 -14
  165. package/src.ts/transaction/index.ts +51 -51
  166. package/src.ts/transaction/transaction.ts +1349 -1379
  167. package/src.ts/utils/base58.ts +73 -73
  168. package/src.ts/utils/base64-browser.ts +25 -25
  169. package/src.ts/utils/base64.ts +56 -56
  170. package/src.ts/utils/data.ts +199 -199
  171. package/src.ts/utils/errors.ts +793 -793
  172. package/src.ts/utils/events.ts +105 -105
  173. package/src.ts/utils/fetch.ts +970 -970
  174. package/src.ts/utils/fixednumber.ts +643 -643
  175. package/src.ts/utils/geturl-browser.ts +81 -81
  176. package/src.ts/utils/geturl.ts +134 -134
  177. package/src.ts/utils/index.ts +95 -95
  178. package/src.ts/utils/maths.ts +240 -240
  179. package/src.ts/utils/properties.ts +60 -60
  180. package/src.ts/utils/rlp-decode.ts +104 -104
  181. package/src.ts/utils/rlp-encode.ts +64 -64
  182. package/src.ts/utils/rlp.ts +20 -20
  183. package/src.ts/utils/units.ts +91 -91
  184. package/src.ts/utils/utf8.ts +325 -325
  185. package/src.ts/utils/uuid.ts +36 -36
  186. package/src.ts/wallet/base-wallet.ts +160 -160
  187. package/src.ts/wallet/index.ts +32 -32
  188. package/src.ts/wallet/json-keystore.ts +108 -106
  189. package/src.ts/wallet/utils.ts +147 -147
  190. package/src.ts/wallet/wallet.ts +138 -139
  191. package/src.ts/wordlists/bit-reader.ts +35 -35
  192. package/src.ts/wordlists/decode-owl.ts +58 -58
  193. package/src.ts/wordlists/decode-owla.ts +33 -33
  194. package/src.ts/wordlists/generation/encode-latin.ts +370 -370
  195. package/src.ts/wordlists/index.ts +26 -26
  196. package/src.ts/wordlists/lang-cz.ts +33 -33
  197. package/src.ts/wordlists/lang-en.ts +33 -33
  198. package/src.ts/wordlists/lang-es.ts +35 -35
  199. package/src.ts/wordlists/lang-fr.ts +34 -34
  200. package/src.ts/wordlists/lang-it.ts +33 -33
  201. package/src.ts/wordlists/lang-ja.ts +181 -181
  202. package/src.ts/wordlists/lang-ko.ts +104 -104
  203. package/src.ts/wordlists/lang-pt.ts +34 -34
  204. package/src.ts/wordlists/lang-zh.ts +112 -112
  205. package/src.ts/wordlists/wordlist-owl.ts +77 -77
  206. package/src.ts/wordlists/wordlist-owla.ts +41 -41
  207. package/src.ts/wordlists/wordlist.ts +59 -59
  208. package/src.ts/wordlists/wordlists-browser.ts +8 -8
  209. package/src.ts/wordlists/wordlists-extra.ts +9 -9
  210. package/src.ts/wordlists/wordlists.ts +38 -38
  211. package/dist/quantumcoin.min.js'.gz' +0 -0
  212. package/dist/quantumcoin.umd.min.js'.gz' +0 -0
  213. package/dist/wordlists-extra.min.js'.gz' +0 -0
  214. package/lib.commonjs/providers/provider-alchemy.d.ts +0 -50
  215. package/lib.commonjs/providers/provider-alchemy.d.ts.map +0 -1
  216. package/lib.commonjs/providers/provider-alchemy.js +0 -151
  217. package/lib.commonjs/providers/provider-alchemy.js.map +0 -1
  218. package/lib.commonjs/providers/provider-ankr.d.ts +0 -61
  219. package/lib.commonjs/providers/provider-ankr.d.ts.map +0 -1
  220. package/lib.commonjs/providers/provider-ankr.js +0 -137
  221. package/lib.commonjs/providers/provider-ankr.js.map +0 -1
  222. package/lib.commonjs/providers/provider-blockscout.d.ts +0 -59
  223. package/lib.commonjs/providers/provider-blockscout.d.ts.map +0 -1
  224. package/lib.commonjs/providers/provider-blockscout.js +0 -145
  225. package/lib.commonjs/providers/provider-blockscout.js.map +0 -1
  226. package/lib.commonjs/providers/provider-chainstack.d.ts +0 -46
  227. package/lib.commonjs/providers/provider-chainstack.d.ts.map +0 -1
  228. package/lib.commonjs/providers/provider-chainstack.js +0 -102
  229. package/lib.commonjs/providers/provider-chainstack.js.map +0 -1
  230. package/lib.commonjs/providers/provider-cloudflare.d.ts +0 -14
  231. package/lib.commonjs/providers/provider-cloudflare.d.ts.map +0 -1
  232. package/lib.commonjs/providers/provider-cloudflare.js +0 -26
  233. package/lib.commonjs/providers/provider-cloudflare.js.map +0 -1
  234. package/lib.commonjs/providers/provider-etherscan.d.ts +0 -147
  235. package/lib.commonjs/providers/provider-etherscan.d.ts.map +0 -1
  236. package/lib.commonjs/providers/provider-etherscan.js +0 -587
  237. package/lib.commonjs/providers/provider-etherscan.js.map +0 -1
  238. package/lib.commonjs/providers/provider-infura.d.ts +0 -101
  239. package/lib.commonjs/providers/provider-infura.d.ts.map +0 -1
  240. package/lib.commonjs/providers/provider-infura.js +0 -206
  241. package/lib.commonjs/providers/provider-infura.js.map +0 -1
  242. package/lib.commonjs/providers/provider-pocket.d.ts +0 -54
  243. package/lib.commonjs/providers/provider-pocket.d.ts.map +0 -1
  244. package/lib.commonjs/providers/provider-pocket.js +0 -109
  245. package/lib.commonjs/providers/provider-pocket.js.map +0 -1
  246. package/lib.commonjs/providers/provider-quicknode.d.ts +0 -59
  247. package/lib.commonjs/providers/provider-quicknode.d.ts.map +0 -1
  248. package/lib.commonjs/providers/provider-quicknode.js +0 -163
  249. package/lib.commonjs/providers/provider-quicknode.js.map +0 -1
  250. package/lib.commonjs/wallet/hdwallet.d.ts +0 -248
  251. package/lib.commonjs/wallet/hdwallet.d.ts.map +0 -1
  252. package/lib.commonjs/wallet/hdwallet.js +0 -505
  253. package/lib.commonjs/wallet/hdwallet.js.map +0 -1
  254. package/lib.commonjs/wallet/json-crowdsale.d.ts +0 -27
  255. package/lib.commonjs/wallet/json-crowdsale.d.ts.map +0 -1
  256. package/lib.commonjs/wallet/json-crowdsale.js +0 -60
  257. package/lib.commonjs/wallet/json-crowdsale.js.map +0 -1
  258. package/lib.commonjs/wallet/mnemonic.d.ts +0 -65
  259. package/lib.commonjs/wallet/mnemonic.d.ts.map +0 -1
  260. package/lib.commonjs/wallet/mnemonic.js +0 -169
  261. package/lib.commonjs/wallet/mnemonic.js.map +0 -1
  262. package/lib.commonjs/wallet/seedwallet.d.ts +0 -4
  263. package/lib.commonjs/wallet/seedwallet.d.ts.map +0 -1
  264. package/lib.commonjs/wallet/seedwallet.js +0 -8
  265. package/lib.commonjs/wallet/seedwallet.js.map +0 -1
  266. package/lib.esm/providers/provider-alchemy.d.ts +0 -50
  267. package/lib.esm/providers/provider-alchemy.d.ts.map +0 -1
  268. package/lib.esm/providers/provider-alchemy.js +0 -147
  269. package/lib.esm/providers/provider-alchemy.js.map +0 -1
  270. package/lib.esm/providers/provider-ankr.d.ts +0 -61
  271. package/lib.esm/providers/provider-ankr.d.ts.map +0 -1
  272. package/lib.esm/providers/provider-ankr.js +0 -133
  273. package/lib.esm/providers/provider-ankr.js.map +0 -1
  274. package/lib.esm/providers/provider-blockscout.d.ts +0 -59
  275. package/lib.esm/providers/provider-blockscout.d.ts.map +0 -1
  276. package/lib.esm/providers/provider-blockscout.js +0 -141
  277. package/lib.esm/providers/provider-blockscout.js.map +0 -1
  278. package/lib.esm/providers/provider-chainstack.d.ts +0 -46
  279. package/lib.esm/providers/provider-chainstack.d.ts.map +0 -1
  280. package/lib.esm/providers/provider-chainstack.js +0 -98
  281. package/lib.esm/providers/provider-chainstack.js.map +0 -1
  282. package/lib.esm/providers/provider-cloudflare.d.ts +0 -14
  283. package/lib.esm/providers/provider-cloudflare.d.ts.map +0 -1
  284. package/lib.esm/providers/provider-cloudflare.js +0 -22
  285. package/lib.esm/providers/provider-cloudflare.js.map +0 -1
  286. package/lib.esm/providers/provider-etherscan.d.ts +0 -147
  287. package/lib.esm/providers/provider-etherscan.d.ts.map +0 -1
  288. package/lib.esm/providers/provider-etherscan.js +0 -584
  289. package/lib.esm/providers/provider-etherscan.js.map +0 -1
  290. package/lib.esm/providers/provider-infura.d.ts +0 -101
  291. package/lib.esm/providers/provider-infura.d.ts.map +0 -1
  292. package/lib.esm/providers/provider-infura.js +0 -201
  293. package/lib.esm/providers/provider-infura.js.map +0 -1
  294. package/lib.esm/providers/provider-pocket.d.ts +0 -54
  295. package/lib.esm/providers/provider-pocket.d.ts.map +0 -1
  296. package/lib.esm/providers/provider-pocket.js +0 -105
  297. package/lib.esm/providers/provider-pocket.js.map +0 -1
  298. package/lib.esm/providers/provider-quicknode.d.ts +0 -59
  299. package/lib.esm/providers/provider-quicknode.d.ts.map +0 -1
  300. package/lib.esm/providers/provider-quicknode.js +0 -159
  301. package/lib.esm/providers/provider-quicknode.js.map +0 -1
  302. package/lib.esm/wallet/hdwallet.d.ts +0 -248
  303. package/lib.esm/wallet/hdwallet.d.ts.map +0 -1
  304. package/lib.esm/wallet/hdwallet.js +0 -498
  305. package/lib.esm/wallet/hdwallet.js.map +0 -1
  306. package/lib.esm/wallet/json-crowdsale.d.ts +0 -27
  307. package/lib.esm/wallet/json-crowdsale.d.ts.map +0 -1
  308. package/lib.esm/wallet/json-crowdsale.js +0 -55
  309. package/lib.esm/wallet/json-crowdsale.js.map +0 -1
  310. package/lib.esm/wallet/mnemonic.d.ts +0 -65
  311. package/lib.esm/wallet/mnemonic.d.ts.map +0 -1
  312. package/lib.esm/wallet/mnemonic.js +0 -165
  313. package/lib.esm/wallet/mnemonic.js.map +0 -1
  314. package/lib.esm/wallet/seedwallet.d.ts +0 -4
  315. package/lib.esm/wallet/seedwallet.d.ts.map +0 -1
  316. package/lib.esm/wallet/seedwallet.js +0 -4
  317. package/lib.esm/wallet/seedwallet.js.map +0 -1
@@ -1,51 +1,51 @@
1
- /**
2
- * An **HMAC** enables verification that a given key was used
3
- * to authenticate a payload.
4
- *
5
- * See: [[link-wiki-hmac]]
6
- *
7
- * @_subsection: api/crypto:HMAC [about-hmac]
8
- */
9
- import { createHmac } from "./crypto.js";
10
- import { getBytes, hexlify } from "../utils/index.js";
11
-
12
- import type { BytesLike } from "../utils/index.js";
13
-
14
-
15
- let locked = false;
16
-
17
- const _computeHmac = function(algorithm: "sha256" | "sha512", key: Uint8Array, data: Uint8Array): BytesLike {
18
- return createHmac(algorithm, key).update(data).digest();
19
- }
20
-
21
- let __computeHmac = _computeHmac;
22
-
23
- /**
24
- * Return the HMAC for %%data%% using the %%key%% key with the underlying
25
- * %%algo%% used for compression.
26
- *
27
- * @example:
28
- * key = id("some-secret")
29
- *
30
- * // Compute the HMAC
31
- * computeHmac("sha256", key, "0x1337")
32
- * //_result:
33
- *
34
- * // To compute the HMAC of UTF-8 data, the data must be
35
- * // converted to UTF-8 bytes
36
- * computeHmac("sha256", key, toUtf8Bytes("Hello World"))
37
- * //_result:
38
- *
39
- */
40
- export function computeHmac(algorithm: "sha256" | "sha512", _key: BytesLike, _data: BytesLike): string {
41
- const key = getBytes(_key, "key");
42
- const data = getBytes(_data, "data");
43
- return hexlify(__computeHmac(algorithm, key, data));
44
- }
45
- computeHmac._ = _computeHmac;
46
- computeHmac.lock = function() { locked = true; }
47
- computeHmac.register = function(func: (algorithm: "sha256" | "sha512", key: Uint8Array, data: Uint8Array) => BytesLike) {
48
- if (locked) { throw new Error("computeHmac is locked"); }
49
- __computeHmac = func;
50
- }
51
- Object.freeze(computeHmac);
1
+ /**
2
+ * An **HMAC** enables verification that a given key was used
3
+ * to authenticate a payload.
4
+ *
5
+ * See: [[link-wiki-hmac]]
6
+ *
7
+ * @_subsection: api/crypto:HMAC [about-hmac]
8
+ */
9
+ import { createHmac } from "./crypto.js";
10
+ import { getBytes, hexlify } from "../utils/index.js";
11
+
12
+ import type { BytesLike } from "../utils/index.js";
13
+
14
+
15
+ let locked = false;
16
+
17
+ const _computeHmac = function(algorithm: "sha256" | "sha512", key: Uint8Array, data: Uint8Array): BytesLike {
18
+ return createHmac(algorithm, key).update(data).digest();
19
+ }
20
+
21
+ let __computeHmac = _computeHmac;
22
+
23
+ /**
24
+ * Return the HMAC for %%data%% using the %%key%% key with the underlying
25
+ * %%algo%% used for compression.
26
+ *
27
+ * @example:
28
+ * key = id("some-secret")
29
+ *
30
+ * // Compute the HMAC
31
+ * computeHmac("sha256", key, "0x1337")
32
+ * //_result:
33
+ *
34
+ * // To compute the HMAC of UTF-8 data, the data must be
35
+ * // converted to UTF-8 bytes
36
+ * computeHmac("sha256", key, toUtf8Bytes("Hello World"))
37
+ * //_result:
38
+ *
39
+ */
40
+ export function computeHmac(algorithm: "sha256" | "sha512", _key: BytesLike, _data: BytesLike): string {
41
+ const key = getBytes(_key, "key");
42
+ const data = getBytes(_data, "data");
43
+ return hexlify(__computeHmac(algorithm, key, data));
44
+ }
45
+ computeHmac._ = _computeHmac;
46
+ computeHmac.lock = function() { locked = true; }
47
+ computeHmac.register = function(func: (algorithm: "sha256" | "sha512", key: Uint8Array, data: Uint8Array) => BytesLike) {
48
+ if (locked) { throw new Error("computeHmac is locked"); }
49
+ __computeHmac = func;
50
+ }
51
+ Object.freeze(computeHmac);
@@ -1,59 +1,59 @@
1
- /**
2
- * A fundamental building block of Ethereum is the underlying
3
- * cryptographic primitives.
4
- *
5
- * @_section: api/crypto:Cryptographic Functions [about-crypto]
6
- */
7
-
8
- null
9
-
10
- // We import all these so we can export lock()
11
- import { computeHmac } from "./hmac.js";
12
- import { keccak256 } from "./keccak.js";
13
- import { ripemd160 } from "./ripemd160.js";
14
- import { pbkdf2 } from "./pbkdf2.js";
15
- import { randomBytes } from "./random.js";
16
- import { scrypt, scryptSync } from "./scrypt.js";
17
- import { sha256, sha512 } from "./sha2.js";
18
-
19
- export {
20
- computeHmac,
21
-
22
- randomBytes,
23
-
24
- keccak256,
25
- ripemd160,
26
- sha256, sha512,
27
-
28
- pbkdf2,
29
- scrypt, scryptSync
30
- };
31
-
32
- export { SigningKey } from "./signing-key.js";
33
- export { Signature } from "./signature.js";
34
-
35
- /**
36
- * Once called, prevents any future change to the underlying cryptographic
37
- * primitives using the ``.register`` feature for hooks.
38
- */
39
- function lock(): void {
40
- computeHmac.lock();
41
- keccak256.lock();
42
- pbkdf2.lock();
43
- randomBytes.lock();
44
- ripemd160.lock();
45
- scrypt.lock();
46
- scryptSync.lock();
47
- sha256.lock();
48
- sha512.lock();
49
- randomBytes.lock();
50
- }
51
-
52
- export { lock };
53
-
54
- /////////////////////////////
55
- // Types
56
-
57
- export type { ProgressCallback } from "./scrypt.js";
58
-
59
- export type { SignatureLike } from "./signature.js";
1
+ /**
2
+ * A fundamental building block of Ethereum is the underlying
3
+ * cryptographic primitives.
4
+ *
5
+ * @_section: api/crypto:Cryptographic Functions [about-crypto]
6
+ */
7
+
8
+ null
9
+
10
+ // We import all these so we can export lock()
11
+ import { computeHmac } from "./hmac.js";
12
+ import { keccak256 } from "./keccak.js";
13
+ import { ripemd160 } from "./ripemd160.js";
14
+ import { pbkdf2 } from "./pbkdf2.js";
15
+ import { randomBytes } from "./random.js";
16
+ import { scrypt, scryptSync } from "./scrypt.js";
17
+ import { sha256, sha512 } from "./sha2.js";
18
+
19
+ export {
20
+ computeHmac,
21
+
22
+ randomBytes,
23
+
24
+ keccak256,
25
+ ripemd160,
26
+ sha256, sha512,
27
+
28
+ pbkdf2,
29
+ scrypt, scryptSync
30
+ };
31
+
32
+ export { SigningKey } from "./signing-key.js";
33
+ export { Signature } from "./signature.js";
34
+
35
+ /**
36
+ * Once called, prevents any future change to the underlying cryptographic
37
+ * primitives using the ``.register`` feature for hooks.
38
+ */
39
+ function lock(): void {
40
+ computeHmac.lock();
41
+ keccak256.lock();
42
+ pbkdf2.lock();
43
+ randomBytes.lock();
44
+ ripemd160.lock();
45
+ scrypt.lock();
46
+ scryptSync.lock();
47
+ sha256.lock();
48
+ sha512.lock();
49
+ randomBytes.lock();
50
+ }
51
+
52
+ export { lock };
53
+
54
+ /////////////////////////////
55
+ // Types
56
+
57
+ export type { ProgressCallback } from "./scrypt.js";
58
+
59
+ export type { SignatureLike } from "./signature.js";
@@ -1,54 +1,54 @@
1
- /**
2
- * Cryptographic hashing functions
3
- *
4
- * @_subsection: api/crypto:Hash Functions [about-crypto-hashing]
5
- */
6
-
7
- import { keccak_256 } from "@noble/hashes/sha3";
8
-
9
- import { getBytes, hexlify } from "../utils/index.js";
10
-
11
- import type { BytesLike } from "../utils/index.js";
12
-
13
-
14
- let locked = false;
15
-
16
- const _keccak256 = function(data: Uint8Array): Uint8Array {
17
- return keccak_256(data);
18
- }
19
-
20
- let __keccak256: (data: Uint8Array) => BytesLike = _keccak256;
21
-
22
- /**
23
- * Compute the cryptographic KECCAK256 hash of %%data%%.
24
- *
25
- * The %%data%% **must** be a data representation, to compute the
26
- * hash of UTF-8 data use the [[id]] function.
27
- *
28
- * @returns DataHexstring
29
- * @example:
30
- * keccak256("0x")
31
- * //_result:
32
- *
33
- * keccak256("0x1337")
34
- * //_result:
35
- *
36
- * keccak256(new Uint8Array([ 0x13, 0x37 ]))
37
- * //_result:
38
- *
39
- * // Strings are assumed to be DataHexString, otherwise it will
40
- * // throw. To hash UTF-8 data, see the note above.
41
- * keccak256("Hello World")
42
- * //_error:
43
- */
44
- export function keccak256(_data: BytesLike): string {
45
- const data = getBytes(_data, "data");
46
- return hexlify(__keccak256(data));
47
- }
48
- keccak256._ = _keccak256;
49
- keccak256.lock = function(): void { locked = true; }
50
- keccak256.register = function(func: (data: Uint8Array) => BytesLike) {
51
- if (locked) { throw new TypeError("keccak256 is locked"); }
52
- __keccak256 = func;
53
- }
54
- Object.freeze(keccak256);
1
+ /**
2
+ * Cryptographic hashing functions
3
+ *
4
+ * @_subsection: api/crypto:Hash Functions [about-crypto-hashing]
5
+ */
6
+
7
+ import { keccak_256 } from "@noble/hashes/sha3";
8
+
9
+ import { getBytes, hexlify } from "../utils/index.js";
10
+
11
+ import type { BytesLike } from "../utils/index.js";
12
+
13
+
14
+ let locked = false;
15
+
16
+ const _keccak256 = function(data: Uint8Array): Uint8Array {
17
+ return keccak_256(data);
18
+ }
19
+
20
+ let __keccak256: (data: Uint8Array) => BytesLike = _keccak256;
21
+
22
+ /**
23
+ * Compute the cryptographic KECCAK256 hash of %%data%%.
24
+ *
25
+ * The %%data%% **must** be a data representation, to compute the
26
+ * hash of UTF-8 data use the [[id]] function.
27
+ *
28
+ * @returns DataHexstring
29
+ * @example:
30
+ * keccak256("0x")
31
+ * //_result:
32
+ *
33
+ * keccak256("0x1337")
34
+ * //_result:
35
+ *
36
+ * keccak256(new Uint8Array([ 0x13, 0x37 ]))
37
+ * //_result:
38
+ *
39
+ * // Strings are assumed to be DataHexString, otherwise it will
40
+ * // throw. To hash UTF-8 data, see the note above.
41
+ * keccak256("Hello World")
42
+ * //_error:
43
+ */
44
+ export function keccak256(_data: BytesLike): string {
45
+ const data = getBytes(_data, "data");
46
+ return hexlify(__keccak256(data));
47
+ }
48
+ keccak256._ = _keccak256;
49
+ keccak256.lock = function(): void { locked = true; }
50
+ keccak256.register = function(func: (data: Uint8Array) => BytesLike) {
51
+ if (locked) { throw new TypeError("keccak256 is locked"); }
52
+ __keccak256 = func;
53
+ }
54
+ Object.freeze(keccak256);
@@ -1,55 +1,55 @@
1
- /**
2
- * A **Password-Based Key-Derivation Function** is designed to create
3
- * a sequence of bytes suitible as a **key** from a human-rememberable
4
- * password.
5
- *
6
- * @_subsection: api/crypto:Passwords [about-pbkdf]
7
- */
8
-
9
- import { pbkdf2Sync } from "./crypto.js";
10
-
11
- import { getBytes, hexlify } from "../utils/index.js";
12
-
13
- import type { BytesLike } from "../utils/index.js";
14
-
15
-
16
- let locked = false;
17
-
18
- const _pbkdf2 = function(password: Uint8Array, salt: Uint8Array, iterations: number, keylen: number, algo: "sha256" | "sha512"): BytesLike {
19
- return pbkdf2Sync(password, salt, iterations, keylen, algo);
20
- }
21
-
22
- let __pbkdf2 = _pbkdf2;
23
-
24
- /**
25
- * Return the [[link-pbkdf2]] for %%keylen%% bytes for %%password%% using
26
- * the %%salt%% and using %%iterations%% of %%algo%%.
27
- *
28
- * This PBKDF is outdated and should not be used in new projects, but is
29
- * required to decrypt older files.
30
- *
31
- * @example:
32
- * // The password must be converted to bytes, and it is generally
33
- * // best practices to ensure the string has been normalized. Many
34
- * // formats explicitly indicate the normalization form to use.
35
- * password = "hello"
36
- * passwordBytes = toUtf8Bytes(password, "NFKC")
37
- *
38
- * salt = id("some-salt")
39
- *
40
- * // Compute the PBKDF2
41
- * pbkdf2(passwordBytes, salt, 1024, 16, "sha256")
42
- * //_result:
43
- */
44
- export function pbkdf2(_password: BytesLike, _salt: BytesLike, iterations: number, keylen: number, algo: "sha256" | "sha512"): string {
45
- const password = getBytes(_password, "password");
46
- const salt = getBytes(_salt, "salt");
47
- return hexlify(__pbkdf2(password, salt, iterations, keylen, algo));
48
- }
49
- pbkdf2._ = _pbkdf2;
50
- pbkdf2.lock = function(): void { locked = true; }
51
- pbkdf2.register = function(func: (password: Uint8Array, salt: Uint8Array, iterations: number, keylen: number, algo: "sha256" | "sha512") => BytesLike) {
52
- if (locked) { throw new Error("pbkdf2 is locked"); }
53
- __pbkdf2 = func;
54
- }
55
- Object.freeze(pbkdf2);
1
+ /**
2
+ * A **Password-Based Key-Derivation Function** is designed to create
3
+ * a sequence of bytes suitible as a **key** from a human-rememberable
4
+ * password.
5
+ *
6
+ * @_subsection: api/crypto:Passwords [about-pbkdf]
7
+ */
8
+
9
+ import { pbkdf2Sync } from "./crypto.js";
10
+
11
+ import { getBytes, hexlify } from "../utils/index.js";
12
+
13
+ import type { BytesLike } from "../utils/index.js";
14
+
15
+
16
+ let locked = false;
17
+
18
+ const _pbkdf2 = function(password: Uint8Array, salt: Uint8Array, iterations: number, keylen: number, algo: "sha256" | "sha512"): BytesLike {
19
+ return pbkdf2Sync(password, salt, iterations, keylen, algo);
20
+ }
21
+
22
+ let __pbkdf2 = _pbkdf2;
23
+
24
+ /**
25
+ * Return the [[link-pbkdf2]] for %%keylen%% bytes for %%password%% using
26
+ * the %%salt%% and using %%iterations%% of %%algo%%.
27
+ *
28
+ * This PBKDF is outdated and should not be used in new projects, but is
29
+ * required to decrypt older files.
30
+ *
31
+ * @example:
32
+ * // The password must be converted to bytes, and it is generally
33
+ * // best practices to ensure the string has been normalized. Many
34
+ * // formats explicitly indicate the normalization form to use.
35
+ * password = "hello"
36
+ * passwordBytes = toUtf8Bytes(password, "NFKC")
37
+ *
38
+ * salt = id("some-salt")
39
+ *
40
+ * // Compute the PBKDF2
41
+ * pbkdf2(passwordBytes, salt, 1024, 16, "sha256")
42
+ * //_result:
43
+ */
44
+ export function pbkdf2(_password: BytesLike, _salt: BytesLike, iterations: number, keylen: number, algo: "sha256" | "sha512"): string {
45
+ const password = getBytes(_password, "password");
46
+ const salt = getBytes(_salt, "salt");
47
+ return hexlify(__pbkdf2(password, salt, iterations, keylen, algo));
48
+ }
49
+ pbkdf2._ = _pbkdf2;
50
+ pbkdf2.lock = function(): void { locked = true; }
51
+ pbkdf2.register = function(func: (password: Uint8Array, salt: Uint8Array, iterations: number, keylen: number, algo: "sha256" | "sha512") => BytesLike) {
52
+ if (locked) { throw new Error("pbkdf2 is locked"); }
53
+ __pbkdf2 = func;
54
+ }
55
+ Object.freeze(pbkdf2);
@@ -1,36 +1,36 @@
1
- /**
2
- * A **Cryptographically Secure Random Value** is one that has been
3
- * generated with additional care take to prevent side-channels
4
- * from allowing others to detect it and prevent others from through
5
- * coincidence generate the same values.
6
- *
7
- * @_subsection: api/crypto:Random Values [about-crypto-random]
8
- */
9
- import { randomBytes as crypto_random } from "./crypto.js";
10
-
11
- let locked = false;
12
-
13
- const _randomBytes = function(length: number): Uint8Array {
14
- return new Uint8Array(crypto_random(length));
15
- }
16
-
17
- let __randomBytes = _randomBytes;
18
-
19
- /**
20
- * Return %%length%% bytes of cryptographically secure random data.
21
- *
22
- * @example:
23
- * randomBytes(8)
24
- * //_result:
25
- */
26
- export function randomBytes(length: number): Uint8Array {
27
- return __randomBytes(length);
28
- }
29
-
30
- randomBytes._ = _randomBytes;
31
- randomBytes.lock = function(): void { locked = true; }
32
- randomBytes.register = function(func: (length: number) => Uint8Array) {
33
- if (locked) { throw new Error("randomBytes is locked"); }
34
- __randomBytes = func;
35
- }
36
- Object.freeze(randomBytes);
1
+ /**
2
+ * A **Cryptographically Secure Random Value** is one that has been
3
+ * generated with additional care take to prevent side-channels
4
+ * from allowing others to detect it and prevent others from through
5
+ * coincidence generate the same values.
6
+ *
7
+ * @_subsection: api/crypto:Random Values [about-crypto-random]
8
+ */
9
+ import { randomBytes as crypto_random } from "./crypto.js";
10
+
11
+ let locked = false;
12
+
13
+ const _randomBytes = function(length: number): Uint8Array {
14
+ return new Uint8Array(crypto_random(length));
15
+ }
16
+
17
+ let __randomBytes = _randomBytes;
18
+
19
+ /**
20
+ * Return %%length%% bytes of cryptographically secure random data.
21
+ *
22
+ * @example:
23
+ * randomBytes(8)
24
+ * //_result:
25
+ */
26
+ export function randomBytes(length: number): Uint8Array {
27
+ return __randomBytes(length);
28
+ }
29
+
30
+ randomBytes._ = _randomBytes;
31
+ randomBytes.lock = function(): void { locked = true; }
32
+ randomBytes.register = function(func: (length: number) => Uint8Array) {
33
+ if (locked) { throw new Error("randomBytes is locked"); }
34
+ __randomBytes = func;
35
+ }
36
+ Object.freeze(randomBytes);
@@ -1,43 +1,43 @@
1
- import { ripemd160 as noble_ripemd160 } from "@noble/hashes/ripemd160";
2
-
3
- import { getBytes, hexlify } from "../utils/index.js";
4
-
5
- import type { BytesLike } from "../utils/index.js";
6
-
7
-
8
- let locked = false;
9
-
10
- const _ripemd160 = function(data: Uint8Array): Uint8Array {
11
- return noble_ripemd160(data);
12
- }
13
-
14
- let __ripemd160: (data: Uint8Array) => BytesLike = _ripemd160;
15
-
16
- /**
17
- * Compute the cryptographic RIPEMD-160 hash of %%data%%.
18
- *
19
- * @_docloc: api/crypto:Hash Functions
20
- * @returns DataHexstring
21
- *
22
- * @example:
23
- * ripemd160("0x")
24
- * //_result:
25
- *
26
- * ripemd160("0x1337")
27
- * //_result:
28
- *
29
- * ripemd160(new Uint8Array([ 0x13, 0x37 ]))
30
- * //_result:
31
- *
32
- */
33
- export function ripemd160(_data: BytesLike): string {
34
- const data = getBytes(_data, "data");
35
- return hexlify(__ripemd160(data));
36
- }
37
- ripemd160._ = _ripemd160;
38
- ripemd160.lock = function(): void { locked = true; }
39
- ripemd160.register = function(func: (data: Uint8Array) => BytesLike) {
40
- if (locked) { throw new TypeError("ripemd160 is locked"); }
41
- __ripemd160 = func;
42
- }
43
- Object.freeze(ripemd160);
1
+ import { ripemd160 as noble_ripemd160 } from "@noble/hashes/ripemd160";
2
+
3
+ import { getBytes, hexlify } from "../utils/index.js";
4
+
5
+ import type { BytesLike } from "../utils/index.js";
6
+
7
+
8
+ let locked = false;
9
+
10
+ const _ripemd160 = function(data: Uint8Array): Uint8Array {
11
+ return noble_ripemd160(data);
12
+ }
13
+
14
+ let __ripemd160: (data: Uint8Array) => BytesLike = _ripemd160;
15
+
16
+ /**
17
+ * Compute the cryptographic RIPEMD-160 hash of %%data%%.
18
+ *
19
+ * @_docloc: api/crypto:Hash Functions
20
+ * @returns DataHexstring
21
+ *
22
+ * @example:
23
+ * ripemd160("0x")
24
+ * //_result:
25
+ *
26
+ * ripemd160("0x1337")
27
+ * //_result:
28
+ *
29
+ * ripemd160(new Uint8Array([ 0x13, 0x37 ]))
30
+ * //_result:
31
+ *
32
+ */
33
+ export function ripemd160(_data: BytesLike): string {
34
+ const data = getBytes(_data, "data");
35
+ return hexlify(__ripemd160(data));
36
+ }
37
+ ripemd160._ = _ripemd160;
38
+ ripemd160.lock = function(): void { locked = true; }
39
+ ripemd160.register = function(func: (data: Uint8Array) => BytesLike) {
40
+ if (locked) { throw new TypeError("ripemd160 is locked"); }
41
+ __ripemd160 = func;
42
+ }
43
+ Object.freeze(ripemd160);