@pezkuwi/util-crypto 14.0.2 → 14.0.3

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 (750) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +4 -4
  3. package/address/addressToEvm.d.ts +5 -0
  4. package/address/addressToEvm.js +8 -0
  5. package/address/check.d.ts +8 -0
  6. package/address/check.js +26 -0
  7. package/address/checksum.d.ts +1 -0
  8. package/address/checksum.js +16 -0
  9. package/address/decode.d.ts +2 -0
  10. package/address/decode.js +29 -0
  11. package/address/defaults.d.ts +6 -0
  12. package/address/defaults.js +8 -0
  13. package/address/derive.d.ts +8 -0
  14. package/address/derive.js +24 -0
  15. package/address/encode.d.ts +2 -0
  16. package/address/encode.js +23 -0
  17. package/address/encodeDerived.d.ts +9 -0
  18. package/address/encodeDerived.js +12 -0
  19. package/address/encodeMulti.d.ts +9 -0
  20. package/address/encodeMulti.js +11 -0
  21. package/address/eq.d.ts +15 -0
  22. package/{src/address/eq.ts → address/eq.js} +2 -7
  23. package/address/evmToAddress.d.ts +7 -0
  24. package/address/evmToAddress.js +14 -0
  25. package/{src/address/index.ts → address/index.d.ts} +0 -5
  26. package/address/index.js +16 -0
  27. package/address/is.d.ts +2 -0
  28. package/address/is.js +9 -0
  29. package/address/keyDerived.d.ts +2 -0
  30. package/address/keyDerived.js +8 -0
  31. package/address/keyMulti.d.ts +2 -0
  32. package/address/keyMulti.js +8 -0
  33. package/address/setSS58Format.d.ts +6 -0
  34. package/address/setSS58Format.js +11 -0
  35. package/address/sort.d.ts +2 -0
  36. package/address/sort.js +7 -0
  37. package/address/sshash.d.ts +1 -0
  38. package/address/sshash.js +6 -0
  39. package/address/types.d.ts +1 -0
  40. package/address/types.js +1 -0
  41. package/address/util.d.ts +1 -0
  42. package/address/util.js +4 -0
  43. package/address/validate.d.ts +2 -0
  44. package/address/validate.js +4 -0
  45. package/base32/bs32.d.ts +26 -0
  46. package/{src/base32/bs32.ts → base32/bs32.js} +8 -21
  47. package/base32/helpers.d.ts +25 -0
  48. package/base32/helpers.js +61 -0
  49. package/{src/base32/index.ts → base32/index.d.ts} +0 -4
  50. package/base32/index.js +4 -0
  51. package/base58/bs58.d.ts +26 -0
  52. package/{src/base58/bs58.ts → base58/bs58.js} +4 -13
  53. package/{src/base58/index.ts → base58/index.d.ts} +0 -4
  54. package/base58/index.js +4 -0
  55. package/base64/bs64.d.ts +26 -0
  56. package/{src/base64/bs64.ts → base64/bs64.js} +4 -13
  57. package/{src/base64/index.ts → base64/index.d.ts} +0 -4
  58. package/base64/index.js +6 -0
  59. package/base64/pad.d.ts +5 -0
  60. package/base64/pad.js +7 -0
  61. package/base64/trim.d.ts +5 -0
  62. package/base64/trim.js +10 -0
  63. package/blake2/asU8a.d.ts +20 -0
  64. package/{src/blake2/asU8a.ts → blake2/asU8a.js} +8 -16
  65. package/{src/blake2/index.ts → blake2/index.d.ts} +0 -4
  66. package/blake2/index.js +4 -0
  67. package/bn.d.ts +30 -0
  68. package/{src/bn.ts → bn.js} +0 -7
  69. package/bundle-polkadot-util-crypto.js +11813 -0
  70. package/{src/bundle.ts → bundle.d.ts} +0 -7
  71. package/bundle.js +26 -0
  72. package/bundleInit.d.ts +1 -0
  73. package/bundleInit.js +5 -0
  74. package/cjs/address/addressToEvm.d.ts +5 -0
  75. package/cjs/address/addressToEvm.js +11 -0
  76. package/cjs/address/check.d.ts +8 -0
  77. package/cjs/address/check.js +29 -0
  78. package/cjs/address/checksum.d.ts +1 -0
  79. package/cjs/address/checksum.js +19 -0
  80. package/cjs/address/decode.d.ts +2 -0
  81. package/cjs/address/decode.js +32 -0
  82. package/cjs/address/defaults.d.ts +6 -0
  83. package/cjs/address/defaults.js +11 -0
  84. package/cjs/address/derive.d.ts +8 -0
  85. package/cjs/address/derive.js +27 -0
  86. package/cjs/address/encode.d.ts +2 -0
  87. package/cjs/address/encode.js +26 -0
  88. package/cjs/address/encodeDerived.d.ts +9 -0
  89. package/cjs/address/encodeDerived.js +15 -0
  90. package/cjs/address/encodeMulti.d.ts +9 -0
  91. package/cjs/address/encodeMulti.js +14 -0
  92. package/cjs/address/eq.d.ts +15 -0
  93. package/cjs/address/eq.js +22 -0
  94. package/cjs/address/evmToAddress.d.ts +7 -0
  95. package/cjs/address/evmToAddress.js +17 -0
  96. package/cjs/address/index.d.ts +16 -0
  97. package/cjs/address/index.js +35 -0
  98. package/cjs/address/is.d.ts +2 -0
  99. package/cjs/address/is.js +12 -0
  100. package/cjs/address/keyDerived.d.ts +2 -0
  101. package/cjs/address/keyDerived.js +11 -0
  102. package/cjs/address/keyMulti.d.ts +2 -0
  103. package/cjs/address/keyMulti.js +11 -0
  104. package/cjs/address/setSS58Format.d.ts +6 -0
  105. package/cjs/address/setSS58Format.js +14 -0
  106. package/cjs/address/sort.d.ts +2 -0
  107. package/cjs/address/sort.js +10 -0
  108. package/cjs/address/sshash.d.ts +1 -0
  109. package/cjs/address/sshash.js +9 -0
  110. package/cjs/address/types.d.ts +1 -0
  111. package/cjs/address/types.js +2 -0
  112. package/cjs/address/util.d.ts +1 -0
  113. package/cjs/address/util.js +7 -0
  114. package/cjs/address/validate.d.ts +2 -0
  115. package/cjs/address/validate.js +7 -0
  116. package/cjs/base32/bs32.d.ts +26 -0
  117. package/cjs/base32/bs32.js +43 -0
  118. package/cjs/base32/helpers.d.ts +25 -0
  119. package/cjs/base32/helpers.js +67 -0
  120. package/cjs/base32/index.d.ts +4 -0
  121. package/cjs/base32/index.js +11 -0
  122. package/cjs/base58/bs58.d.ts +26 -0
  123. package/cjs/base58/bs58.js +37 -0
  124. package/cjs/base58/index.d.ts +4 -0
  125. package/cjs/base58/index.js +11 -0
  126. package/cjs/base64/bs64.d.ts +26 -0
  127. package/cjs/base64/bs64.js +37 -0
  128. package/cjs/base64/index.d.ts +6 -0
  129. package/cjs/base64/index.js +15 -0
  130. package/cjs/base64/pad.d.ts +5 -0
  131. package/cjs/base64/pad.js +10 -0
  132. package/cjs/base64/trim.d.ts +5 -0
  133. package/cjs/base64/trim.js +13 -0
  134. package/cjs/blake2/asU8a.d.ts +20 -0
  135. package/cjs/blake2/asU8a.js +36 -0
  136. package/cjs/blake2/index.d.ts +4 -0
  137. package/cjs/blake2/index.js +9 -0
  138. package/cjs/bn.d.ts +30 -0
  139. package/cjs/bn.js +11 -0
  140. package/cjs/bundle.d.ts +26 -0
  141. package/cjs/bundle.js +31 -0
  142. package/cjs/bundleInit.d.ts +1 -0
  143. package/cjs/bundleInit.js +7 -0
  144. package/cjs/crypto.d.ts +3 -0
  145. package/cjs/crypto.js +16 -0
  146. package/cjs/ed25519/deriveHard.d.ts +1 -0
  147. package/cjs/ed25519/deriveHard.js +12 -0
  148. package/{src/ed25519/index.ts → cjs/ed25519/index.d.ts} +0 -3
  149. package/cjs/ed25519/index.js +20 -0
  150. package/cjs/ed25519/pair/fromRandom.d.ts +16 -0
  151. package/cjs/ed25519/pair/fromRandom.js +22 -0
  152. package/cjs/ed25519/pair/fromSecret.d.ts +16 -0
  153. package/{src/ed25519/pair/fromSecret.ts → cjs/ed25519/pair/fromSecret.js} +11 -14
  154. package/cjs/ed25519/pair/fromSeed.d.ts +16 -0
  155. package/cjs/ed25519/pair/fromSeed.js +34 -0
  156. package/cjs/ed25519/pair/fromString.d.ts +16 -0
  157. package/cjs/ed25519/pair/fromString.js +23 -0
  158. package/cjs/ed25519/sign.d.ts +16 -0
  159. package/cjs/ed25519/sign.js +33 -0
  160. package/cjs/ed25519/verify.d.ts +15 -0
  161. package/cjs/ed25519/verify.js +39 -0
  162. package/cjs/ethereum/encode.d.ts +2 -0
  163. package/cjs/ethereum/encode.js +28 -0
  164. package/{src/ethereum/index.ts → cjs/ethereum/index.d.ts} +0 -3
  165. package/cjs/ethereum/index.js +9 -0
  166. package/cjs/ethereum/isAddress.d.ts +1 -0
  167. package/cjs/ethereum/isAddress.js +14 -0
  168. package/cjs/ethereum/isChecksum.d.ts +1 -0
  169. package/cjs/ethereum/isChecksum.js +20 -0
  170. package/cjs/hd/ethereum/index.d.ts +2 -0
  171. package/cjs/hd/ethereum/index.js +47 -0
  172. package/{src/hd/index.ts → cjs/hd/index.d.ts} +0 -3
  173. package/cjs/hd/index.js +9 -0
  174. package/cjs/hd/ledger/derivePrivate.d.ts +1 -0
  175. package/cjs/hd/ledger/derivePrivate.js +15 -0
  176. package/cjs/hd/ledger/index.d.ts +2 -0
  177. package/cjs/hd/ledger/index.js +33 -0
  178. package/cjs/hd/ledger/master.d.ts +1 -0
  179. package/cjs/hd/ledger/master.js +19 -0
  180. package/cjs/hd/validatePath.d.ts +2 -0
  181. package/cjs/hd/validatePath.js +20 -0
  182. package/cjs/helpers.d.ts +12 -0
  183. package/cjs/helpers.js +24 -0
  184. package/cjs/hmac/index.d.ts +1 -0
  185. package/cjs/hmac/index.js +7 -0
  186. package/cjs/hmac/shaAsU8a.d.ts +15 -0
  187. package/cjs/hmac/shaAsU8a.js +40 -0
  188. package/cjs/index.d.ts +2 -0
  189. package/cjs/index.js +5 -0
  190. package/cjs/json/constants.d.ts +6 -0
  191. package/cjs/json/constants.js +8 -0
  192. package/cjs/json/decrypt.d.ts +2 -0
  193. package/cjs/json/decrypt.js +16 -0
  194. package/cjs/json/decryptData.d.ts +2 -0
  195. package/cjs/json/decryptData.js +32 -0
  196. package/cjs/json/encrypt.d.ts +2 -0
  197. package/cjs/json/encrypt.js +18 -0
  198. package/cjs/json/encryptFormat.d.ts +2 -0
  199. package/cjs/json/encryptFormat.js +17 -0
  200. package/{src/json/index.ts → cjs/json/index.d.ts} +0 -3
  201. package/cjs/json/index.js +11 -0
  202. package/cjs/json/types.d.ts +16 -0
  203. package/cjs/json/types.js +2 -0
  204. package/cjs/keccak/asU8a.d.ts +30 -0
  205. package/cjs/keccak/asU8a.js +36 -0
  206. package/{src/keccak/index.ts → cjs/keccak/index.d.ts} +0 -4
  207. package/cjs/keccak/index.js +11 -0
  208. package/cjs/key/DeriveJunction.d.ts +12 -0
  209. package/cjs/key/DeriveJunction.js +62 -0
  210. package/cjs/key/extractPath.d.ts +9 -0
  211. package/cjs/key/extractPath.js +26 -0
  212. package/cjs/key/extractSuri.d.ts +11 -0
  213. package/cjs/key/extractSuri.js +25 -0
  214. package/cjs/key/fromPath.d.ts +3 -0
  215. package/cjs/key/fromPath.js +21 -0
  216. package/cjs/key/hdkdDerive.d.ts +3 -0
  217. package/cjs/key/hdkdDerive.js +11 -0
  218. package/cjs/key/hdkdEcdsa.d.ts +1 -0
  219. package/cjs/key/hdkdEcdsa.js +7 -0
  220. package/cjs/key/hdkdEd25519.d.ts +1 -0
  221. package/cjs/key/hdkdEd25519.js +6 -0
  222. package/cjs/key/hdkdSr25519.d.ts +3 -0
  223. package/cjs/key/hdkdSr25519.js +10 -0
  224. package/{src/key/index.ts → cjs/key/index.d.ts} +0 -3
  225. package/cjs/key/index.js +18 -0
  226. package/cjs/mnemonic/bip39.d.ts +5 -0
  227. package/cjs/mnemonic/bip39.js +90 -0
  228. package/cjs/mnemonic/generate.d.ts +13 -0
  229. package/cjs/mnemonic/generate.js +23 -0
  230. package/{src/mnemonic/index.ts → cjs/mnemonic/index.d.ts} +0 -3
  231. package/cjs/mnemonic/index.js +16 -0
  232. package/cjs/mnemonic/toEntropy.d.ts +1 -0
  233. package/cjs/mnemonic/toEntropy.js +11 -0
  234. package/cjs/mnemonic/toLegacySeed.d.ts +18 -0
  235. package/cjs/mnemonic/toLegacySeed.js +37 -0
  236. package/cjs/mnemonic/toMiniSecret.d.ts +1 -0
  237. package/cjs/mnemonic/toMiniSecret.js +20 -0
  238. package/cjs/mnemonic/validate.d.ts +14 -0
  239. package/cjs/mnemonic/validate.js +24 -0
  240. package/cjs/mnemonic/wordlists/en.d.ts +2 -0
  241. package/cjs/mnemonic/wordlists/en.js +3 -0
  242. package/cjs/mnemonic/wordlists/es.d.ts +2 -0
  243. package/cjs/mnemonic/wordlists/es.js +3 -0
  244. package/cjs/mnemonic/wordlists/fr.d.ts +2 -0
  245. package/cjs/mnemonic/wordlists/fr.js +3 -0
  246. package/{src/mnemonic/wordlists/index.ts → cjs/mnemonic/wordlists/index.d.ts} +0 -3
  247. package/cjs/mnemonic/wordlists/index.js +20 -0
  248. package/cjs/mnemonic/wordlists/it.d.ts +2 -0
  249. package/cjs/mnemonic/wordlists/it.js +3 -0
  250. package/cjs/mnemonic/wordlists/jp.d.ts +2 -0
  251. package/cjs/mnemonic/wordlists/jp.js +3 -0
  252. package/cjs/mnemonic/wordlists/ko.d.ts +2 -0
  253. package/cjs/mnemonic/wordlists/ko.js +3 -0
  254. package/cjs/mnemonic/wordlists/zh-s.d.ts +2 -0
  255. package/cjs/mnemonic/wordlists/zh-s.js +3 -0
  256. package/cjs/mnemonic/wordlists/zh-t.d.ts +2 -0
  257. package/cjs/mnemonic/wordlists/zh-t.js +3 -0
  258. package/cjs/nacl/decrypt.d.ts +15 -0
  259. package/cjs/nacl/decrypt.js +21 -0
  260. package/cjs/nacl/encrypt.d.ts +20 -0
  261. package/cjs/nacl/encrypt.js +25 -0
  262. package/{src/nacl/index.ts → cjs/nacl/index.d.ts} +0 -3
  263. package/cjs/nacl/index.js +10 -0
  264. package/cjs/nacl/tweetnacl.d.ts +2 -0
  265. package/cjs/nacl/tweetnacl.js +238 -0
  266. package/cjs/networks.d.ts +1 -0
  267. package/cjs/networks.js +7 -0
  268. package/cjs/package.json +3 -0
  269. package/cjs/packageDetect.d.ts +1 -0
  270. package/cjs/packageDetect.js +8 -0
  271. package/cjs/packageInfo.d.ts +6 -0
  272. package/cjs/packageInfo.js +4 -0
  273. package/cjs/pbkdf2/encode.d.ts +7 -0
  274. package/cjs/pbkdf2/encode.js +19 -0
  275. package/cjs/pbkdf2/index.d.ts +1 -0
  276. package/cjs/pbkdf2/index.js +5 -0
  277. package/cjs/random/asNumber.d.ts +15 -0
  278. package/cjs/random/asNumber.js +23 -0
  279. package/cjs/random/asU8a.d.ts +20 -0
  280. package/cjs/random/asU8a.js +28 -0
  281. package/{src/random/index.ts → cjs/random/index.d.ts} +0 -4
  282. package/cjs/random/index.js +11 -0
  283. package/cjs/scrypt/defaults.d.ts +3 -0
  284. package/cjs/scrypt/defaults.js +16 -0
  285. package/cjs/scrypt/encode.d.ts +8 -0
  286. package/cjs/scrypt/encode.js +18 -0
  287. package/cjs/scrypt/fromU8a.d.ts +7 -0
  288. package/cjs/scrypt/fromU8a.js +27 -0
  289. package/{src/scrypt/index.ts → cjs/scrypt/index.d.ts} +0 -3
  290. package/cjs/scrypt/index.js +9 -0
  291. package/cjs/scrypt/toU8a.d.ts +2 -0
  292. package/cjs/scrypt/toU8a.js +8 -0
  293. package/cjs/scrypt/types.d.ts +6 -0
  294. package/cjs/scrypt/types.js +2 -0
  295. package/cjs/secp256k1/compress.d.ts +1 -0
  296. package/cjs/secp256k1/compress.js +17 -0
  297. package/cjs/secp256k1/deriveHard.d.ts +1 -0
  298. package/cjs/secp256k1/deriveHard.js +13 -0
  299. package/cjs/secp256k1/expand.d.ts +1 -0
  300. package/cjs/secp256k1/expand.js +20 -0
  301. package/cjs/secp256k1/hasher.d.ts +2 -0
  302. package/cjs/secp256k1/hasher.js +10 -0
  303. package/{src/secp256k1/index.ts → cjs/secp256k1/index.d.ts} +0 -3
  304. package/cjs/secp256k1/index.js +17 -0
  305. package/cjs/secp256k1/pair/fromSeed.d.ts +6 -0
  306. package/cjs/secp256k1/pair/fromSeed.js +34 -0
  307. package/cjs/secp256k1/recover.d.ts +6 -0
  308. package/cjs/secp256k1/recover.js +29 -0
  309. package/cjs/secp256k1/sign.d.ts +7 -0
  310. package/cjs/secp256k1/sign.js +23 -0
  311. package/cjs/secp256k1/tweakAdd.d.ts +1 -0
  312. package/cjs/secp256k1/tweakAdd.js +48 -0
  313. package/cjs/secp256k1/types.d.ts +1 -0
  314. package/cjs/secp256k1/types.js +2 -0
  315. package/cjs/secp256k1/verify.d.ts +6 -0
  316. package/cjs/secp256k1/verify.js +23 -0
  317. package/cjs/sha/asU8a.d.ts +15 -0
  318. package/cjs/sha/asU8a.js +22 -0
  319. package/{src/sha/index.ts → cjs/sha/index.d.ts} +0 -4
  320. package/cjs/sha/index.js +10 -0
  321. package/cjs/signature/index.d.ts +4 -0
  322. package/cjs/signature/index.js +8 -0
  323. package/cjs/signature/verify.d.ts +2 -0
  324. package/cjs/signature/verify.js +81 -0
  325. package/cjs/sr25519/agreement.d.ts +5 -0
  326. package/cjs/sr25519/agreement.js +20 -0
  327. package/cjs/sr25519/derive.d.ts +2 -0
  328. package/cjs/sr25519/derive.js +16 -0
  329. package/cjs/sr25519/deriveHard.d.ts +1 -0
  330. package/cjs/sr25519/deriveHard.js +7 -0
  331. package/cjs/sr25519/derivePublic.d.ts +1 -0
  332. package/cjs/sr25519/derivePublic.js +16 -0
  333. package/cjs/sr25519/deriveSoft.d.ts +1 -0
  334. package/cjs/sr25519/deriveSoft.js +7 -0
  335. package/{src/sr25519/index.ts → cjs/sr25519/index.d.ts} +0 -3
  336. package/cjs/sr25519/index.js +21 -0
  337. package/cjs/sr25519/pair/fromSeed.d.ts +6 -0
  338. package/cjs/sr25519/pair/fromSeed.js +22 -0
  339. package/cjs/sr25519/pair/fromU8a.d.ts +2 -0
  340. package/cjs/sr25519/pair/fromU8a.js +17 -0
  341. package/cjs/sr25519/pair/toU8a.d.ts +2 -0
  342. package/cjs/sr25519/pair/toU8a.js +7 -0
  343. package/cjs/sr25519/sign.d.ts +6 -0
  344. package/cjs/sr25519/sign.js +19 -0
  345. package/cjs/sr25519/verify.d.ts +5 -0
  346. package/cjs/sr25519/verify.js +21 -0
  347. package/cjs/sr25519/vrfSign.d.ts +6 -0
  348. package/cjs/sr25519/vrfSign.js +19 -0
  349. package/cjs/sr25519/vrfVerify.d.ts +5 -0
  350. package/cjs/sr25519/vrfVerify.js +22 -0
  351. package/cjs/types.d.ts +26 -0
  352. package/cjs/types.js +5 -0
  353. package/cjs/xxhash/asU8a.d.ts +20 -0
  354. package/cjs/xxhash/asU8a.js +39 -0
  355. package/{src/xxhash/index.ts → cjs/xxhash/index.d.ts} +0 -4
  356. package/cjs/xxhash/index.js +9 -0
  357. package/cjs/xxhash/xxhash64.d.ts +1 -0
  358. package/cjs/xxhash/xxhash64.js +103 -0
  359. package/crypto.d.ts +3 -0
  360. package/crypto.js +12 -0
  361. package/ed25519/deriveHard.d.ts +1 -0
  362. package/ed25519/deriveHard.js +9 -0
  363. package/ed25519/index.d.ts +10 -0
  364. package/ed25519/index.js +10 -0
  365. package/ed25519/pair/fromRandom.d.ts +16 -0
  366. package/{src/ed25519/pair/fromRandom.ts → ed25519/pair/fromRandom.js} +2 -8
  367. package/ed25519/pair/fromSecret.d.ts +16 -0
  368. package/ed25519/pair/fromSecret.js +23 -0
  369. package/ed25519/pair/fromSeed.d.ts +16 -0
  370. package/{src/ed25519/pair/fromSeed.ts → ed25519/pair/fromSeed.js} +11 -21
  371. package/ed25519/pair/fromString.d.ts +16 -0
  372. package/{src/ed25519/pair/fromString.ts → ed25519/pair/fromString.js} +2 -13
  373. package/ed25519/sign.d.ts +16 -0
  374. package/ed25519/sign.js +30 -0
  375. package/ed25519/verify.d.ts +15 -0
  376. package/ed25519/verify.js +36 -0
  377. package/ethereum/encode.d.ts +2 -0
  378. package/ethereum/encode.js +25 -0
  379. package/ethereum/index.d.ts +3 -0
  380. package/ethereum/index.js +3 -0
  381. package/ethereum/isAddress.d.ts +1 -0
  382. package/ethereum/isAddress.js +11 -0
  383. package/ethereum/isChecksum.d.ts +1 -0
  384. package/ethereum/isChecksum.js +17 -0
  385. package/hd/ethereum/index.d.ts +2 -0
  386. package/hd/ethereum/index.js +44 -0
  387. package/hd/index.d.ts +3 -0
  388. package/hd/index.js +3 -0
  389. package/hd/ledger/derivePrivate.d.ts +1 -0
  390. package/hd/ledger/derivePrivate.js +12 -0
  391. package/hd/ledger/index.d.ts +2 -0
  392. package/hd/ledger/index.js +30 -0
  393. package/hd/ledger/master.d.ts +1 -0
  394. package/hd/ledger/master.js +16 -0
  395. package/hd/validatePath.d.ts +2 -0
  396. package/hd/validatePath.js +16 -0
  397. package/helpers.d.ts +12 -0
  398. package/helpers.js +19 -0
  399. package/hmac/index.d.ts +1 -0
  400. package/hmac/index.js +1 -0
  401. package/hmac/shaAsU8a.d.ts +15 -0
  402. package/{src/hmac/shaAsU8a.ts → hmac/shaAsU8a.js} +11 -23
  403. package/index.d.ts +2 -0
  404. package/index.js +2 -0
  405. package/json/constants.d.ts +6 -0
  406. package/json/constants.js +5 -0
  407. package/json/decrypt.d.ts +2 -0
  408. package/json/decrypt.js +13 -0
  409. package/json/decryptData.d.ts +2 -0
  410. package/json/decryptData.js +29 -0
  411. package/json/encrypt.d.ts +2 -0
  412. package/json/encrypt.js +15 -0
  413. package/json/encryptFormat.d.ts +2 -0
  414. package/json/encryptFormat.js +14 -0
  415. package/json/index.d.ts +4 -0
  416. package/json/index.js +4 -0
  417. package/json/types.d.ts +16 -0
  418. package/json/types.js +1 -0
  419. package/keccak/asU8a.d.ts +30 -0
  420. package/{src/keccak/asU8a.ts → keccak/asU8a.js} +1 -13
  421. package/keccak/index.d.ts +4 -0
  422. package/keccak/index.js +4 -0
  423. package/key/DeriveJunction.d.ts +12 -0
  424. package/key/DeriveJunction.js +58 -0
  425. package/key/extractPath.d.ts +9 -0
  426. package/key/extractPath.js +23 -0
  427. package/key/extractSuri.d.ts +11 -0
  428. package/key/extractSuri.js +22 -0
  429. package/key/fromPath.d.ts +3 -0
  430. package/key/fromPath.js +18 -0
  431. package/key/hdkdDerive.d.ts +3 -0
  432. package/key/hdkdDerive.js +8 -0
  433. package/key/hdkdEcdsa.d.ts +1 -0
  434. package/{src/key/hdkdEcdsa.ts → key/hdkdEcdsa.js} +0 -4
  435. package/key/hdkdEd25519.d.ts +1 -0
  436. package/{src/key/hdkdEd25519.ts → key/hdkdEd25519.js} +0 -4
  437. package/key/hdkdSr25519.d.ts +3 -0
  438. package/key/hdkdSr25519.js +7 -0
  439. package/key/index.d.ts +9 -0
  440. package/key/index.js +9 -0
  441. package/mnemonic/bip39.d.ts +5 -0
  442. package/mnemonic/bip39.js +82 -0
  443. package/mnemonic/generate.d.ts +13 -0
  444. package/{src/mnemonic/generate.ts → mnemonic/generate.js} +4 -9
  445. package/mnemonic/index.d.ts +8 -0
  446. package/mnemonic/index.js +8 -0
  447. package/mnemonic/toEntropy.d.ts +1 -0
  448. package/mnemonic/toEntropy.js +8 -0
  449. package/mnemonic/toLegacySeed.d.ts +18 -0
  450. package/{src/mnemonic/toLegacySeed.ts → mnemonic/toLegacySeed.js} +12 -17
  451. package/mnemonic/toMiniSecret.d.ts +1 -0
  452. package/mnemonic/toMiniSecret.js +17 -0
  453. package/mnemonic/validate.d.ts +14 -0
  454. package/{src/mnemonic/validate.ts → mnemonic/validate.js} +4 -9
  455. package/mnemonic/wordlists/en.d.ts +2 -0
  456. package/{src/mnemonic/wordlists/en.ts → mnemonic/wordlists/en.js} +0 -6
  457. package/mnemonic/wordlists/es.d.ts +2 -0
  458. package/{src/mnemonic/wordlists/es.ts → mnemonic/wordlists/es.js} +0 -6
  459. package/mnemonic/wordlists/fr.d.ts +2 -0
  460. package/{src/mnemonic/wordlists/fr.ts → mnemonic/wordlists/fr.js} +0 -6
  461. package/mnemonic/wordlists/index.d.ts +8 -0
  462. package/mnemonic/wordlists/index.js +8 -0
  463. package/mnemonic/wordlists/it.d.ts +2 -0
  464. package/{src/mnemonic/wordlists/it.ts → mnemonic/wordlists/it.js} +0 -6
  465. package/mnemonic/wordlists/jp.d.ts +2 -0
  466. package/{src/mnemonic/wordlists/jp.ts → mnemonic/wordlists/jp.js} +0 -6
  467. package/mnemonic/wordlists/ko.d.ts +2 -0
  468. package/{src/mnemonic/wordlists/ko.ts → mnemonic/wordlists/ko.js} +0 -6
  469. package/mnemonic/wordlists/zh-s.d.ts +2 -0
  470. package/{src/mnemonic/wordlists/zh-s.ts → mnemonic/wordlists/zh-s.js} +0 -6
  471. package/mnemonic/wordlists/zh-t.d.ts +2 -0
  472. package/{src/mnemonic/wordlists/zh-t.ts → mnemonic/wordlists/zh-t.js} +0 -6
  473. package/nacl/decrypt.d.ts +15 -0
  474. package/{src/nacl/decrypt.ts → nacl/decrypt.js} +2 -6
  475. package/nacl/encrypt.d.ts +20 -0
  476. package/{src/nacl/encrypt.ts → nacl/encrypt.js} +5 -14
  477. package/nacl/index.d.ts +5 -0
  478. package/nacl/index.js +5 -0
  479. package/nacl/tweetnacl.d.ts +2 -0
  480. package/nacl/tweetnacl.js +234 -0
  481. package/networks.d.ts +1 -0
  482. package/networks.js +1 -0
  483. package/package.json +2022 -10
  484. package/packageDetect.d.ts +1 -0
  485. package/{src/packageDetect.ts → packageDetect.js} +0 -8
  486. package/packageInfo.d.ts +6 -0
  487. package/packageInfo.js +1 -0
  488. package/pbkdf2/encode.d.ts +7 -0
  489. package/pbkdf2/encode.js +16 -0
  490. package/pbkdf2/index.d.ts +1 -0
  491. package/pbkdf2/index.js +1 -0
  492. package/random/asNumber.d.ts +15 -0
  493. package/{src/random/asNumber.ts → random/asNumber.js} +2 -10
  494. package/random/asU8a.d.ts +20 -0
  495. package/{src/random/asU8a.ts → random/asU8a.js} +2 -8
  496. package/random/index.d.ts +5 -0
  497. package/random/index.js +5 -0
  498. package/scrypt/defaults.d.ts +3 -0
  499. package/scrypt/defaults.js +13 -0
  500. package/scrypt/encode.d.ts +8 -0
  501. package/scrypt/encode.js +15 -0
  502. package/scrypt/fromU8a.d.ts +7 -0
  503. package/scrypt/fromU8a.js +24 -0
  504. package/scrypt/index.d.ts +3 -0
  505. package/scrypt/index.js +3 -0
  506. package/scrypt/toU8a.d.ts +2 -0
  507. package/scrypt/toU8a.js +5 -0
  508. package/scrypt/types.d.ts +6 -0
  509. package/scrypt/types.js +1 -0
  510. package/secp256k1/compress.d.ts +1 -0
  511. package/secp256k1/compress.js +14 -0
  512. package/secp256k1/deriveHard.d.ts +1 -0
  513. package/secp256k1/deriveHard.js +10 -0
  514. package/secp256k1/expand.d.ts +1 -0
  515. package/secp256k1/expand.js +17 -0
  516. package/secp256k1/hasher.d.ts +2 -0
  517. package/secp256k1/hasher.js +7 -0
  518. package/secp256k1/index.d.ts +7 -0
  519. package/secp256k1/index.js +7 -0
  520. package/secp256k1/pair/fromSeed.d.ts +6 -0
  521. package/secp256k1/pair/fromSeed.js +31 -0
  522. package/secp256k1/recover.d.ts +6 -0
  523. package/secp256k1/recover.js +26 -0
  524. package/secp256k1/sign.d.ts +7 -0
  525. package/secp256k1/sign.js +20 -0
  526. package/secp256k1/tweakAdd.d.ts +1 -0
  527. package/secp256k1/tweakAdd.js +45 -0
  528. package/secp256k1/types.d.ts +1 -0
  529. package/secp256k1/types.js +1 -0
  530. package/secp256k1/verify.d.ts +6 -0
  531. package/secp256k1/verify.js +20 -0
  532. package/sha/asU8a.d.ts +15 -0
  533. package/{src/sha/asU8a.ts → sha/asU8a.js} +1 -12
  534. package/sha/index.d.ts +4 -0
  535. package/sha/index.js +4 -0
  536. package/signature/index.d.ts +4 -0
  537. package/signature/index.js +4 -0
  538. package/signature/verify.d.ts +2 -0
  539. package/signature/verify.js +78 -0
  540. package/sr25519/agreement.d.ts +5 -0
  541. package/sr25519/agreement.js +17 -0
  542. package/sr25519/derive.d.ts +2 -0
  543. package/sr25519/derive.js +12 -0
  544. package/sr25519/deriveHard.d.ts +1 -0
  545. package/{src/sr25519/deriveHard.ts → sr25519/deriveHard.js} +0 -6
  546. package/sr25519/derivePublic.d.ts +1 -0
  547. package/sr25519/derivePublic.js +12 -0
  548. package/sr25519/deriveSoft.d.ts +1 -0
  549. package/{src/sr25519/deriveSoft.ts → sr25519/deriveSoft.js} +0 -6
  550. package/sr25519/index.d.ts +9 -0
  551. package/sr25519/index.js +9 -0
  552. package/sr25519/pair/fromSeed.d.ts +6 -0
  553. package/sr25519/pair/fromSeed.js +18 -0
  554. package/sr25519/pair/fromU8a.d.ts +2 -0
  555. package/sr25519/pair/fromU8a.js +14 -0
  556. package/sr25519/pair/toU8a.d.ts +2 -0
  557. package/sr25519/pair/toU8a.js +4 -0
  558. package/sr25519/sign.d.ts +6 -0
  559. package/sr25519/sign.js +15 -0
  560. package/sr25519/verify.d.ts +5 -0
  561. package/sr25519/verify.js +17 -0
  562. package/sr25519/vrfSign.d.ts +6 -0
  563. package/sr25519/vrfSign.js +15 -0
  564. package/sr25519/vrfVerify.d.ts +5 -0
  565. package/sr25519/vrfVerify.js +18 -0
  566. package/types.d.ts +26 -0
  567. package/types.js +2 -0
  568. package/xxhash/asU8a.d.ts +20 -0
  569. package/{src/xxhash/asU8a.ts → xxhash/asU8a.js} +11 -21
  570. package/xxhash/index.d.ts +4 -0
  571. package/xxhash/index.js +4 -0
  572. package/xxhash/xxhash64.d.ts +1 -0
  573. package/xxhash/xxhash64.js +100 -0
  574. package/src/address/addressToEvm.spec.ts +0 -16
  575. package/src/address/addressToEvm.ts +0 -12
  576. package/src/address/check.spec.ts +0 -44
  577. package/src/address/check.ts +0 -34
  578. package/src/address/checksum.spec.ts +0 -45
  579. package/src/address/checksum.ts +0 -25
  580. package/src/address/decode.spec.ts +0 -138
  581. package/src/address/decode.ts +0 -41
  582. package/src/address/defaults.ts +0 -12
  583. package/src/address/derive.spec.ts +0 -26
  584. package/src/address/derive.ts +0 -36
  585. package/src/address/encode.spec.ts +0 -177
  586. package/src/address/encode.ts +0 -43
  587. package/src/address/encodeDerived.spec.ts +0 -14
  588. package/src/address/encodeDerived.ts +0 -19
  589. package/src/address/encodeMulti.spec.ts +0 -18
  590. package/src/address/encodeMulti.ts +0 -18
  591. package/src/address/eq.spec.ts +0 -45
  592. package/src/address/evmToAddress.spec.ts +0 -20
  593. package/src/address/evmToAddress.ts +0 -24
  594. package/src/address/is.spec.ts +0 -113
  595. package/src/address/is.ts +0 -14
  596. package/src/address/keyDerived.spec.ts +0 -24
  597. package/src/address/keyDerived.ts +0 -22
  598. package/src/address/keyMulti.spec.ts +0 -20
  599. package/src/address/keyMulti.ts +0 -23
  600. package/src/address/setSS58Format.spec.ts +0 -21
  601. package/src/address/setSS58Format.ts +0 -20
  602. package/src/address/sort.spec.ts +0 -22
  603. package/src/address/sort.ts +0 -17
  604. package/src/address/sshash.ts +0 -12
  605. package/src/address/types.ts +0 -6
  606. package/src/address/util.ts +0 -8
  607. package/src/address/validate.spec.ts +0 -113
  608. package/src/address/validate.ts +0 -10
  609. package/src/base32/decode.spec.ts +0 -34
  610. package/src/base32/encode.spec.ts +0 -30
  611. package/src/base32/helpers.ts +0 -93
  612. package/src/base32/is.spec.ts +0 -32
  613. package/src/base32/validate.spec.ts +0 -44
  614. package/src/base58/decode.spec.ts +0 -31
  615. package/src/base58/encode.spec.ts +0 -26
  616. package/src/base58/validate.spec.ts +0 -20
  617. package/src/base64/decode.spec.ts +0 -42
  618. package/src/base64/encode.spec.ts +0 -14
  619. package/src/base64/pad.spec.ts +0 -14
  620. package/src/base64/pad.ts +0 -10
  621. package/src/base64/trim.spec.ts +0 -14
  622. package/src/base64/trim.ts +0 -14
  623. package/src/base64/validate.spec.ts +0 -32
  624. package/src/blake2/asHex.spec.ts +0 -57
  625. package/src/blake2/asU8a.spec.ts +0 -74
  626. package/src/bundleInit.ts +0 -11
  627. package/src/crypto.spec.ts +0 -18
  628. package/src/crypto.ts +0 -18
  629. package/src/ed25519/deriveHard.ts +0 -18
  630. package/src/ed25519/pair/fromRandom.spec.ts +0 -28
  631. package/src/ed25519/pair/fromSecret.spec.ts +0 -33
  632. package/src/ed25519/pair/fromSeed.spec.ts +0 -42
  633. package/src/ed25519/pair/fromString.spec.ts +0 -17
  634. package/src/ed25519/sign.spec.ts +0 -40
  635. package/src/ed25519/sign.ts +0 -38
  636. package/src/ed25519/verify.spec.ts +0 -84
  637. package/src/ed25519/verify.ts +0 -41
  638. package/src/ethereum/encode.spec.ts +0 -59
  639. package/src/ethereum/encode.ts +0 -39
  640. package/src/ethereum/isAddress.spec.ts +0 -34
  641. package/src/ethereum/isAddress.ts +0 -16
  642. package/src/ethereum/isChecksum.ts +0 -27
  643. package/src/ethereum/isCheksum.spec.ts +0 -30
  644. package/src/hd/ethereum/index.spec.ts +0 -54
  645. package/src/hd/ethereum/index.ts +0 -69
  646. package/src/hd/ledger/derivePrivate.ts +0 -34
  647. package/src/hd/ledger/index.spec.ts +0 -64
  648. package/src/hd/ledger/index.ts +0 -42
  649. package/src/hd/ledger/master.spec.ts +0 -19
  650. package/src/hd/ledger/master.ts +0 -26
  651. package/src/hd/validatePath.spec.ts +0 -30
  652. package/src/hd/validatePath.ts +0 -24
  653. package/src/helpers.ts +0 -38
  654. package/src/hmac/index.ts +0 -4
  655. package/src/hmac/shaAsU8a.spec.ts +0 -45
  656. package/src/index.ts +0 -6
  657. package/src/json/constants.ts +0 -11
  658. package/src/json/decrypt.ts +0 -25
  659. package/src/json/decryptData.ts +0 -45
  660. package/src/json/encrypt.ts +0 -25
  661. package/src/json/encryptFormat.ts +0 -20
  662. package/src/json/types.ts +0 -22
  663. package/src/keccak/asHex.spec.ts +0 -30
  664. package/src/keccak/asU8a.spec.ts +0 -56
  665. package/src/key/DeriveJunction.ts +0 -79
  666. package/src/key/extractPath.spec.ts +0 -51
  667. package/src/key/extractPath.ts +0 -37
  668. package/src/key/extractSuri.spec.ts +0 -147
  669. package/src/key/extractSuri.ts +0 -40
  670. package/src/key/fromPath.ts +0 -28
  671. package/src/key/hdkdDerive.ts +0 -17
  672. package/src/key/hdkdSr25519.ts +0 -14
  673. package/src/mnemonic/bip39.spec.ts +0 -80
  674. package/src/mnemonic/bip39.ts +0 -127
  675. package/src/mnemonic/generate.spec.ts +0 -58
  676. package/src/mnemonic/toEntropy.spec.ts +0 -36
  677. package/src/mnemonic/toEntropy.ts +0 -13
  678. package/src/mnemonic/toLegacySeed.spec.ts +0 -52
  679. package/src/mnemonic/toMiniSecret.spec.ts +0 -67
  680. package/src/mnemonic/toMiniSecret.ts +0 -23
  681. package/src/mnemonic/toMiniSecretCmp.spec.ts +0 -64
  682. package/src/mnemonic/validate.spec.ts +0 -39
  683. package/src/mod.ts +0 -4
  684. package/src/nacl/decrypt.spec.ts +0 -26
  685. package/src/nacl/encrypt.spec.ts +0 -20
  686. package/src/nacl/tweetnacl-secretbox-data.spec.ts +0 -4629
  687. package/src/nacl/tweetnacl-secretbox.spec.ts +0 -161
  688. package/src/nacl/tweetnacl.ts +0 -1159
  689. package/src/networks.ts +0 -5
  690. package/src/packageInfo.ts +0 -6
  691. package/src/pbkdf2/encode.spec.ts +0 -54
  692. package/src/pbkdf2/encode.ts +0 -29
  693. package/src/pbkdf2/index.ts +0 -4
  694. package/src/random/asHex.spec.ts +0 -38
  695. package/src/random/asNumber.spec.ts +0 -16
  696. package/src/random/asU8a.spec.ts +0 -36
  697. package/src/scrypt/defaults.ts +0 -19
  698. package/src/scrypt/encode.spec.ts +0 -43
  699. package/src/scrypt/encode.ts +0 -30
  700. package/src/scrypt/fromU8a.ts +0 -44
  701. package/src/scrypt/toU8a.ts +0 -17
  702. package/src/scrypt/types.ts +0 -9
  703. package/src/secp256k1/compress.spec.ts +0 -47
  704. package/src/secp256k1/compress.ts +0 -21
  705. package/src/secp256k1/deriveHard.ts +0 -17
  706. package/src/secp256k1/expand.spec.ts +0 -47
  707. package/src/secp256k1/expand.ts +0 -30
  708. package/src/secp256k1/hasher.spec.ts +0 -24
  709. package/src/secp256k1/hasher.ts +0 -13
  710. package/src/secp256k1/pair/fromSeed.spec.ts +0 -75
  711. package/src/secp256k1/pair/fromSeed.ts +0 -42
  712. package/src/secp256k1/recover.spec.ts +0 -35
  713. package/src/secp256k1/recover.ts +0 -36
  714. package/src/secp256k1/sign.spec.ts +0 -39
  715. package/src/secp256k1/sign.ts +0 -37
  716. package/src/secp256k1/signVerify.spec.ts +0 -94
  717. package/src/secp256k1/tweakAdd.spec.ts +0 -35
  718. package/src/secp256k1/tweakAdd.ts +0 -65
  719. package/src/secp256k1/types.ts +0 -4
  720. package/src/secp256k1/verify.spec.ts +0 -81
  721. package/src/secp256k1/verify.ts +0 -32
  722. package/src/sha/asU8a256.spec.ts +0 -55
  723. package/src/sha/asU8a512.spec.ts +0 -33
  724. package/src/signature/index.ts +0 -8
  725. package/src/signature/verify.spec.ts +0 -230
  726. package/src/signature/verify.ts +0 -114
  727. package/src/sr25519/agreement.spec.ts +0 -31
  728. package/src/sr25519/agreement.ts +0 -23
  729. package/src/sr25519/derive.ts +0 -21
  730. package/src/sr25519/derivePublic.ts +0 -18
  731. package/src/sr25519/pair/fromSeed.spec.ts +0 -35
  732. package/src/sr25519/pair/fromSeed.ts +0 -28
  733. package/src/sr25519/pair/fromU8a.ts +0 -23
  734. package/src/sr25519/pair/testing.spec.ts +0 -161
  735. package/src/sr25519/pair/toU8a.ts +0 -10
  736. package/src/sr25519/sign.spec.ts +0 -28
  737. package/src/sr25519/sign.ts +0 -22
  738. package/src/sr25519/verify.spec.ts +0 -42
  739. package/src/sr25519/verify.ts +0 -23
  740. package/src/sr25519/vrfSign.ts +0 -24
  741. package/src/sr25519/vrfSignVerify.spec.ts +0 -73
  742. package/src/sr25519/vrfVerify.ts +0 -25
  743. package/src/test/index.ts +0 -8
  744. package/src/test/performance.ts +0 -17
  745. package/src/types.ts +0 -33
  746. package/src/xxhash/asHex.spec.ts +0 -36
  747. package/src/xxhash/asU8a.spec.ts +0 -48
  748. package/src/xxhash/xxhash64.ts +0 -155
  749. package/tsconfig.build.json +0 -18
  750. package/tsconfig.spec.json +0 -20
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.signatureVerify = signatureVerify;
4
+ const util_1 = require("@pezkuwi/util");
5
+ const decode_js_1 = require("../address/decode.js");
6
+ const verify_js_1 = require("../ed25519/verify.js");
7
+ const verify_js_2 = require("../secp256k1/verify.js");
8
+ const verify_js_3 = require("../sr25519/verify.js");
9
+ const secp256k1VerifyHasher = (hashType) => (message, signature, publicKey) => (0, verify_js_2.secp256k1Verify)(message, signature, publicKey, hashType, true);
10
+ const VERIFIERS_ECDSA = [
11
+ ['ecdsa', secp256k1VerifyHasher('blake2')],
12
+ ['ethereum', secp256k1VerifyHasher('keccak')]
13
+ ];
14
+ const VERIFIERS = [
15
+ ['ed25519', verify_js_1.ed25519Verify],
16
+ ['sr25519', verify_js_3.sr25519Verify]
17
+ ];
18
+ function verifyDetect(result, { message, publicKey, signature }, verifiers = [...VERIFIERS, ...VERIFIERS_ECDSA]) {
19
+ result.isValid = verifiers.some(([crypto, verify]) => {
20
+ try {
21
+ if (verify(message, signature, publicKey)) {
22
+ result.crypto = crypto;
23
+ return true;
24
+ }
25
+ }
26
+ catch {
27
+ // do nothing, result.isValid still set to false
28
+ }
29
+ return false;
30
+ });
31
+ return result;
32
+ }
33
+ function verifyMultisig(result, { message, publicKey, signature }) {
34
+ if (![0, 1, 2].includes(signature[0]) || ![65, 66].includes(signature.length)) {
35
+ throw new Error(`Unknown crypto type, expected signature prefix [0..2], found ${signature[0]}`);
36
+ }
37
+ // If the signature is 66 bytes it must be an ecdsa signature
38
+ // containing: prefix [1 byte] + signature [65] bytes.
39
+ // Remove the and then verify
40
+ if (signature.length === 66) {
41
+ result = verifyDetect(result, { message, publicKey, signature: signature.subarray(1) }, VERIFIERS_ECDSA);
42
+ }
43
+ else {
44
+ // The signature contains 65 bytes which is either
45
+ // - A ed25519 or sr25519 signature [1 byte prefix + 64 bytes]
46
+ // - An ecdsa signature [65 bytes]
47
+ result = verifyDetect(result, { message, publicKey, signature: signature.subarray(1) }, VERIFIERS);
48
+ if (!result.isValid) {
49
+ result = verifyDetect(result, { message, publicKey, signature }, VERIFIERS_ECDSA);
50
+ }
51
+ // If both failed, explicitly set crypto to 'none'
52
+ if (!result.isValid) {
53
+ result.crypto = 'none';
54
+ }
55
+ }
56
+ return result;
57
+ }
58
+ function getVerifyFn(signature) {
59
+ return [0, 1, 2].includes(signature[0]) && [65, 66].includes(signature.length)
60
+ ? verifyMultisig
61
+ : verifyDetect;
62
+ }
63
+ function signatureVerify(message, signature, addressOrPublicKey) {
64
+ const signatureU8a = (0, util_1.u8aToU8a)(signature);
65
+ if (![64, 65, 66].includes(signatureU8a.length)) {
66
+ throw new Error(`Invalid signature length, expected [64..66] bytes, found ${signatureU8a.length}`);
67
+ }
68
+ const publicKey = (0, decode_js_1.decodeAddress)(addressOrPublicKey);
69
+ const input = { message: (0, util_1.u8aToU8a)(message), publicKey, signature: signatureU8a };
70
+ const result = { crypto: 'none', isValid: false, isWrapped: (0, util_1.u8aIsWrapped)(input.message, true), publicKey };
71
+ const isWrappedBytes = (0, util_1.u8aIsWrapped)(input.message, false);
72
+ const verifyFn = getVerifyFn(signatureU8a);
73
+ verifyFn(result, input);
74
+ if (result.crypto !== 'none' || (result.isWrapped && !isWrappedBytes)) {
75
+ return result;
76
+ }
77
+ input.message = isWrappedBytes
78
+ ? (0, util_1.u8aUnwrapBytes)(input.message)
79
+ : (0, util_1.u8aWrapBytes)(input.message);
80
+ return verifyFn(result, input);
81
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @name sr25519Agreement
3
+ * @description Key agreement between other's public key and self secret key
4
+ */
5
+ export declare function sr25519Agreement(secretKey: string | Uint8Array, publicKey: string | Uint8Array): Uint8Array;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sr25519Agreement = sr25519Agreement;
4
+ const sr25519_1 = require("@scure/sr25519");
5
+ const util_1 = require("@pezkuwi/util");
6
+ /**
7
+ * @name sr25519Agreement
8
+ * @description Key agreement between other's public key and self secret key
9
+ */
10
+ function sr25519Agreement(secretKey, publicKey) {
11
+ const secretKeyU8a = (0, util_1.u8aToU8a)(secretKey);
12
+ const publicKeyU8a = (0, util_1.u8aToU8a)(publicKey);
13
+ if (publicKeyU8a.length !== 32) {
14
+ throw new Error(`Invalid publicKey, received ${publicKeyU8a.length} bytes, expected 32`);
15
+ }
16
+ else if (secretKeyU8a.length !== 64) {
17
+ throw new Error(`Invalid secretKey, received ${secretKeyU8a.length} bytes, expected 64`);
18
+ }
19
+ return (0, sr25519_1.getSharedSecret)(secretKeyU8a, publicKeyU8a);
20
+ }
@@ -0,0 +1,2 @@
1
+ import type { Keypair } from '../types.js';
2
+ export declare function createDeriveFn(derive: (pair: Uint8Array, cc: Uint8Array) => Uint8Array): (keypair: Keypair, chainCode: Uint8Array) => Keypair;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDeriveFn = createDeriveFn;
4
+ const tslib_1 = require("tslib");
5
+ const sr25519 = tslib_1.__importStar(require("@scure/sr25519"));
6
+ const util_1 = require("@pezkuwi/util");
7
+ function createDeriveFn(derive) {
8
+ return (keypair, chainCode) => {
9
+ if (!(0, util_1.isU8a)(chainCode) || chainCode.length !== 32) {
10
+ throw new Error('Invalid chainCode passed to derive');
11
+ }
12
+ const secretKey = derive(keypair.secretKey, chainCode);
13
+ const publicKey = sr25519.getPublicKey(secretKey);
14
+ return { publicKey, secretKey };
15
+ };
16
+ }
@@ -0,0 +1 @@
1
+ export declare const sr25519DeriveHard: (keypair: import("../types.js").Keypair, chainCode: Uint8Array) => import("../types.js").Keypair;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sr25519DeriveHard = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const sr25519 = tslib_1.__importStar(require("@scure/sr25519"));
6
+ const derive_js_1 = require("./derive.js");
7
+ exports.sr25519DeriveHard = (0, derive_js_1.createDeriveFn)(sr25519.HDKD.secretHard);
@@ -0,0 +1 @@
1
+ export declare function sr25519DerivePublic(publicKey: string | Uint8Array, chainCode: Uint8Array): Uint8Array;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sr25519DerivePublic = sr25519DerivePublic;
4
+ const tslib_1 = require("tslib");
5
+ const sr25519 = tslib_1.__importStar(require("@scure/sr25519"));
6
+ const util_1 = require("@pezkuwi/util");
7
+ function sr25519DerivePublic(publicKey, chainCode) {
8
+ const publicKeyU8a = (0, util_1.u8aToU8a)(publicKey);
9
+ if (!(0, util_1.isU8a)(chainCode) || chainCode.length !== 32) {
10
+ throw new Error('Invalid chainCode passed to derive');
11
+ }
12
+ else if (publicKeyU8a.length !== 32) {
13
+ throw new Error(`Invalid publicKey, received ${publicKeyU8a.length} bytes, expected 32`);
14
+ }
15
+ return sr25519.HDKD.publicSoft(publicKeyU8a, chainCode);
16
+ }
@@ -0,0 +1 @@
1
+ export declare const sr25519DeriveSoft: (keypair: import("../types.js").Keypair, chainCode: Uint8Array) => import("../types.js").Keypair;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sr25519DeriveSoft = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const sr25519 = tslib_1.__importStar(require("@scure/sr25519"));
6
+ const derive_js_1 = require("./derive.js");
7
+ exports.sr25519DeriveSoft = (0, derive_js_1.createDeriveFn)(sr25519.HDKD.secretSoft);
@@ -1,6 +1,3 @@
1
- // Copyright 2017-2025 @polkadot/util-crypto authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
1
  export { sr25519Agreement } from './agreement.js';
5
2
  export { sr25519DeriveHard } from './deriveHard.js';
6
3
  export { sr25519DerivePublic } from './derivePublic.js';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sr25519VrfVerify = exports.sr25519VrfSign = exports.sr25519Verify = exports.sr25519Sign = exports.sr25519PairFromSeed = exports.sr25519DeriveSoft = exports.sr25519DerivePublic = exports.sr25519DeriveHard = exports.sr25519Agreement = void 0;
4
+ var agreement_js_1 = require("./agreement.js");
5
+ Object.defineProperty(exports, "sr25519Agreement", { enumerable: true, get: function () { return agreement_js_1.sr25519Agreement; } });
6
+ var deriveHard_js_1 = require("./deriveHard.js");
7
+ Object.defineProperty(exports, "sr25519DeriveHard", { enumerable: true, get: function () { return deriveHard_js_1.sr25519DeriveHard; } });
8
+ var derivePublic_js_1 = require("./derivePublic.js");
9
+ Object.defineProperty(exports, "sr25519DerivePublic", { enumerable: true, get: function () { return derivePublic_js_1.sr25519DerivePublic; } });
10
+ var deriveSoft_js_1 = require("./deriveSoft.js");
11
+ Object.defineProperty(exports, "sr25519DeriveSoft", { enumerable: true, get: function () { return deriveSoft_js_1.sr25519DeriveSoft; } });
12
+ var fromSeed_js_1 = require("./pair/fromSeed.js");
13
+ Object.defineProperty(exports, "sr25519PairFromSeed", { enumerable: true, get: function () { return fromSeed_js_1.sr25519PairFromSeed; } });
14
+ var sign_js_1 = require("./sign.js");
15
+ Object.defineProperty(exports, "sr25519Sign", { enumerable: true, get: function () { return sign_js_1.sr25519Sign; } });
16
+ var verify_js_1 = require("./verify.js");
17
+ Object.defineProperty(exports, "sr25519Verify", { enumerable: true, get: function () { return verify_js_1.sr25519Verify; } });
18
+ var vrfSign_js_1 = require("./vrfSign.js");
19
+ Object.defineProperty(exports, "sr25519VrfSign", { enumerable: true, get: function () { return vrfSign_js_1.sr25519VrfSign; } });
20
+ var vrfVerify_js_1 = require("./vrfVerify.js");
21
+ Object.defineProperty(exports, "sr25519VrfVerify", { enumerable: true, get: function () { return vrfVerify_js_1.sr25519VrfVerify; } });
@@ -0,0 +1,6 @@
1
+ import type { Keypair } from '../../types.js';
2
+ /**
3
+ * @name sr25519PairFromSeed
4
+ * @description Returns a object containing a `publicKey` & `secretKey` generated from the supplied seed.
5
+ */
6
+ export declare function sr25519PairFromSeed(seed: string | Uint8Array): Keypair;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sr25519PairFromSeed = sr25519PairFromSeed;
4
+ const tslib_1 = require("tslib");
5
+ const sr25519 = tslib_1.__importStar(require("@scure/sr25519"));
6
+ const util_1 = require("@pezkuwi/util");
7
+ /**
8
+ * @name sr25519PairFromSeed
9
+ * @description Returns a object containing a `publicKey` & `secretKey` generated from the supplied seed.
10
+ */
11
+ function sr25519PairFromSeed(seed) {
12
+ const seedU8a = (0, util_1.u8aToU8a)(seed);
13
+ if (seedU8a.length !== 32) {
14
+ throw new Error(`Expected a seed matching 32 bytes, found ${seedU8a.length}`);
15
+ }
16
+ const sec = sr25519.secretFromSeed(seedU8a);
17
+ const pub = sr25519.getPublicKey(sec);
18
+ return {
19
+ publicKey: pub,
20
+ secretKey: sec
21
+ };
22
+ }
@@ -0,0 +1,2 @@
1
+ import type { Keypair } from '../../types.js';
2
+ export declare function sr25519PairFromU8a(full: string | Uint8Array): Keypair;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sr25519PairFromU8a = sr25519PairFromU8a;
4
+ const util_1 = require("@pezkuwi/util");
5
+ const SEC_LEN = 64;
6
+ const PUB_LEN = 32;
7
+ const TOT_LEN = SEC_LEN + PUB_LEN;
8
+ function sr25519PairFromU8a(full) {
9
+ const fullU8a = (0, util_1.u8aToU8a)(full);
10
+ if (fullU8a.length !== TOT_LEN) {
11
+ throw new Error(`Expected keypair with ${TOT_LEN} bytes, found ${fullU8a.length}`);
12
+ }
13
+ return {
14
+ publicKey: fullU8a.slice(SEC_LEN, TOT_LEN),
15
+ secretKey: fullU8a.slice(0, SEC_LEN)
16
+ };
17
+ }
@@ -0,0 +1,2 @@
1
+ import type { Keypair } from '../../types.js';
2
+ export declare function sr25519KeypairToU8a({ publicKey, secretKey }: Keypair): Uint8Array;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sr25519KeypairToU8a = sr25519KeypairToU8a;
4
+ const util_1 = require("@pezkuwi/util");
5
+ function sr25519KeypairToU8a({ publicKey, secretKey }) {
6
+ return (0, util_1.u8aConcat)(secretKey, publicKey).slice();
7
+ }
@@ -0,0 +1,6 @@
1
+ import type { Keypair } from '../types.js';
2
+ /**
3
+ * @name sr25519Sign
4
+ * @description Returns message signature of `message`, using the supplied pair
5
+ */
6
+ export declare function sr25519Sign(message: string | Uint8Array, { publicKey, secretKey }: Partial<Keypair>): Uint8Array;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sr25519Sign = sr25519Sign;
4
+ const tslib_1 = require("tslib");
5
+ const sr25519 = tslib_1.__importStar(require("@scure/sr25519"));
6
+ const util_1 = require("@pezkuwi/util");
7
+ /**
8
+ * @name sr25519Sign
9
+ * @description Returns message signature of `message`, using the supplied pair
10
+ */
11
+ function sr25519Sign(message, { publicKey, secretKey }) {
12
+ if (publicKey?.length !== 32) {
13
+ throw new Error('Expected a valid publicKey, 32-bytes');
14
+ }
15
+ else if (secretKey?.length !== 64) {
16
+ throw new Error('Expected a valid secretKey, 64-bytes');
17
+ }
18
+ return sr25519.sign(secretKey, (0, util_1.u8aToU8a)(message));
19
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @name sr25519Verify
3
+ * @description Verifies the signature of `message`, using the supplied pair
4
+ */
5
+ export declare function sr25519Verify(message: string | Uint8Array, signature: string | Uint8Array, publicKey: string | Uint8Array): boolean;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sr25519Verify = sr25519Verify;
4
+ const tslib_1 = require("tslib");
5
+ const sr25519 = tslib_1.__importStar(require("@scure/sr25519"));
6
+ const util_1 = require("@pezkuwi/util");
7
+ /**
8
+ * @name sr25519Verify
9
+ * @description Verifies the signature of `message`, using the supplied pair
10
+ */
11
+ function sr25519Verify(message, signature, publicKey) {
12
+ const publicKeyU8a = (0, util_1.u8aToU8a)(publicKey);
13
+ const signatureU8a = (0, util_1.u8aToU8a)(signature);
14
+ if (publicKeyU8a.length !== 32) {
15
+ throw new Error(`Invalid publicKey, received ${publicKeyU8a.length} bytes, expected 32`);
16
+ }
17
+ else if (signatureU8a.length !== 64) {
18
+ throw new Error(`Invalid signature, received ${signatureU8a.length} bytes, expected 64`);
19
+ }
20
+ return sr25519.verify((0, util_1.u8aToU8a)(message), signatureU8a, publicKeyU8a);
21
+ }
@@ -0,0 +1,6 @@
1
+ import type { Keypair } from '../types.js';
2
+ /**
3
+ * @name sr25519VrfSign
4
+ * @description Sign with sr25519 vrf signing (deterministic)
5
+ */
6
+ export declare function sr25519VrfSign(message: string | Uint8Array, { secretKey }: Partial<Keypair>, context?: string | Uint8Array, extra?: string | Uint8Array): Uint8Array;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sr25519VrfSign = sr25519VrfSign;
4
+ const tslib_1 = require("tslib");
5
+ const utils_1 = require("@noble/hashes/utils");
6
+ const sr25519 = tslib_1.__importStar(require("@scure/sr25519"));
7
+ const util_1 = require("@pezkuwi/util");
8
+ const EMPTY_U8A = new Uint8Array();
9
+ /**
10
+ * @name sr25519VrfSign
11
+ * @description Sign with sr25519 vrf signing (deterministic)
12
+ */
13
+ function sr25519VrfSign(message, { secretKey }, context = EMPTY_U8A, extra = EMPTY_U8A) {
14
+ if (secretKey?.length !== 64) {
15
+ throw new Error('Invalid secretKey, expected 64-bytes');
16
+ }
17
+ return sr25519.vrf.sign((0, util_1.u8aToU8a)(message), secretKey, (0, util_1.u8aToU8a)(context), (0, util_1.u8aToU8a)(extra), utils_1.randomBytes);
18
+ // return vrfSign(secretKey, u8aToU8a(context), u8aToU8a(message), u8aToU8a(extra));
19
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @name sr25519VrfVerify
3
+ * @description Verify with sr25519 vrf verification
4
+ */
5
+ export declare function sr25519VrfVerify(message: string | Uint8Array, signOutput: string | Uint8Array, publicKey: string | Uint8Array, context?: string | Uint8Array, extra?: string | Uint8Array): boolean;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sr25519VrfVerify = sr25519VrfVerify;
4
+ const tslib_1 = require("tslib");
5
+ const sr25519 = tslib_1.__importStar(require("@scure/sr25519"));
6
+ const util_1 = require("@pezkuwi/util");
7
+ const EMPTY_U8A = new Uint8Array();
8
+ /**
9
+ * @name sr25519VrfVerify
10
+ * @description Verify with sr25519 vrf verification
11
+ */
12
+ function sr25519VrfVerify(message, signOutput, publicKey, context = EMPTY_U8A, extra = EMPTY_U8A) {
13
+ const publicKeyU8a = (0, util_1.u8aToU8a)(publicKey);
14
+ const proofU8a = (0, util_1.u8aToU8a)(signOutput);
15
+ if (publicKeyU8a.length !== 32) {
16
+ throw new Error('Invalid publicKey, expected 32-bytes');
17
+ }
18
+ else if (proofU8a.length !== 96) {
19
+ throw new Error('Invalid vrfSign output, expected 96 bytes');
20
+ }
21
+ return sr25519.vrf.verify((0, util_1.u8aToU8a)(message), proofU8a, publicKeyU8a, (0, util_1.u8aToU8a)(context), (0, util_1.u8aToU8a)(extra));
22
+ }
package/cjs/types.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ export * from './address/types.js';
2
+ export * from './json/types.js';
3
+ export interface Keypair {
4
+ /** The publicKey for this pair */
5
+ publicKey: Uint8Array;
6
+ /** The secretKey for this pair */
7
+ secretKey: Uint8Array;
8
+ }
9
+ export interface Seedpair {
10
+ /** The publicKey for this pair */
11
+ publicKey: Uint8Array;
12
+ /** The seed used to construct the pair */
13
+ seed: Uint8Array;
14
+ }
15
+ /** The supported types of pairs */
16
+ export type KeypairType = 'ed25519' | 'sr25519' | 'ecdsa' | 'ethereum';
17
+ export interface VerifyResult {
18
+ /** The detected crypto interface, or 'none' if not detected */
19
+ crypto: 'none' | KeypairType;
20
+ /** The validity for this result, false if invalid */
21
+ isValid: boolean;
22
+ /** Flag to indicate if the passed data was wrapped in <Bytes>...</Bytes> */
23
+ isWrapped: boolean;
24
+ /** The extracted publicKey */
25
+ publicKey: Uint8Array;
26
+ }
package/cjs/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./address/types.js"), exports);
5
+ tslib_1.__exportStar(require("./json/types.js"), exports);
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @name xxhashAsU8a
3
+ * @summary Creates a xxhash64 u8a from the input.
4
+ * @description
5
+ * From either a `string`, `Uint8Array` or a `Buffer` input, create the xxhash64 and return the result as a `Uint8Array` with the specified `bitLength`.
6
+ * @example
7
+ * <BR>
8
+ *
9
+ * ```javascript
10
+ * import { xxhashAsU8a } from '@polkadot/util-crypto';
11
+ *
12
+ * xxhashAsU8a('abc'); // => 0x44bc2cf5ad770999
13
+ * ```
14
+ */
15
+ export declare function xxhashAsU8a(data: string | Uint8Array, bitLength?: 64 | 128 | 192 | 256 | 320 | 384 | 448 | 512, onlyJs?: boolean): Uint8Array;
16
+ /**
17
+ * @name xxhashAsHex
18
+ * @description Creates a xxhash64 hex from the input.
19
+ */
20
+ export declare const xxhashAsHex: (data: string | Uint8Array, bitLength?: 256 | 512 | 64 | 128 | 384 | 320 | 192 | 448 | undefined, onlyJs?: boolean | undefined) => import("@polkadot/util/types").HexString;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.xxhashAsHex = void 0;
4
+ exports.xxhashAsU8a = xxhashAsU8a;
5
+ const util_1 = require("@pezkuwi/util");
6
+ const wasm_crypto_1 = require("@pezkuwi/wasm-crypto");
7
+ const helpers_js_1 = require("../helpers.js");
8
+ const xxhash64_js_1 = require("./xxhash64.js");
9
+ /**
10
+ * @name xxhashAsU8a
11
+ * @summary Creates a xxhash64 u8a from the input.
12
+ * @description
13
+ * From either a `string`, `Uint8Array` or a `Buffer` input, create the xxhash64 and return the result as a `Uint8Array` with the specified `bitLength`.
14
+ * @example
15
+ * <BR>
16
+ *
17
+ * ```javascript
18
+ * import { xxhashAsU8a } from '@pezkuwi/util-crypto';
19
+ *
20
+ * xxhashAsU8a('abc'); // => 0x44bc2cf5ad770999
21
+ * ```
22
+ */
23
+ function xxhashAsU8a(data, bitLength = 64, onlyJs) {
24
+ const rounds = Math.ceil(bitLength / 64);
25
+ const u8a = (0, util_1.u8aToU8a)(data);
26
+ if (!util_1.hasBigInt || (!onlyJs && (0, wasm_crypto_1.isReady)())) {
27
+ return (0, wasm_crypto_1.twox)(u8a, rounds);
28
+ }
29
+ const result = new Uint8Array(rounds * 8);
30
+ for (let seed = 0; seed < rounds; seed++) {
31
+ result.set((0, xxhash64_js_1.xxhash64)(u8a, seed).reverse(), seed * 8);
32
+ }
33
+ return result;
34
+ }
35
+ /**
36
+ * @name xxhashAsHex
37
+ * @description Creates a xxhash64 hex from the input.
38
+ */
39
+ exports.xxhashAsHex = (0, helpers_js_1.createAsHex)(xxhashAsU8a);
@@ -1,8 +1,4 @@
1
- // Copyright 2017-2025 @polkadot/util-crypto authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
1
  /**
5
2
  * @summary Create xxhash64 values with specified bitlengths
6
3
  */
7
-
8
4
  export { xxhashAsHex, xxhashAsU8a } from './asU8a.js';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.xxhashAsU8a = exports.xxhashAsHex = void 0;
4
+ /**
5
+ * @summary Create xxhash64 values with specified bitlengths
6
+ */
7
+ var asU8a_js_1 = require("./asU8a.js");
8
+ Object.defineProperty(exports, "xxhashAsHex", { enumerable: true, get: function () { return asU8a_js_1.xxhashAsHex; } });
9
+ Object.defineProperty(exports, "xxhashAsU8a", { enumerable: true, get: function () { return asU8a_js_1.xxhashAsU8a; } });
@@ -0,0 +1 @@
1
+ export declare function xxhash64(input: Uint8Array, initSeed: bigint | number): Uint8Array;
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.xxhash64 = xxhash64;
4
+ const util_1 = require("@pezkuwi/util");
5
+ const x_bigint_1 = require("@pezkuwi/x-bigint");
6
+ const P64_1 = (0, x_bigint_1.BigInt)('11400714785074694791');
7
+ const P64_2 = (0, x_bigint_1.BigInt)('14029467366897019727');
8
+ const P64_3 = (0, x_bigint_1.BigInt)('1609587929392839161');
9
+ const P64_4 = (0, x_bigint_1.BigInt)('9650029242287828579');
10
+ const P64_5 = (0, x_bigint_1.BigInt)('2870177450012600261');
11
+ const U64 = (0, x_bigint_1.BigInt)('0xffffffffffffffff');
12
+ const _7n = (0, x_bigint_1.BigInt)(7);
13
+ const _11n = (0, x_bigint_1.BigInt)(11);
14
+ const _12n = (0, x_bigint_1.BigInt)(12);
15
+ const _16n = (0, x_bigint_1.BigInt)(16);
16
+ const _18n = (0, x_bigint_1.BigInt)(18);
17
+ const _23n = (0, x_bigint_1.BigInt)(23);
18
+ const _27n = (0, x_bigint_1.BigInt)(27);
19
+ const _29n = (0, x_bigint_1.BigInt)(29);
20
+ const _31n = (0, x_bigint_1.BigInt)(31);
21
+ const _32n = (0, x_bigint_1.BigInt)(32);
22
+ const _33n = (0, x_bigint_1.BigInt)(33);
23
+ const _64n = (0, x_bigint_1.BigInt)(64);
24
+ const _256n = (0, x_bigint_1.BigInt)(256);
25
+ function rotl(a, b) {
26
+ const c = a & U64;
27
+ return ((c << b) | (c >> (_64n - b))) & U64;
28
+ }
29
+ function fromU8a(u8a, p, count) {
30
+ const bigints = new Array(count);
31
+ let offset = 0;
32
+ for (let i = 0; i < count; i++, offset += 2) {
33
+ bigints[i] = (0, x_bigint_1.BigInt)(u8a[p + offset] | (u8a[p + 1 + offset] << 8));
34
+ }
35
+ let result = util_1._0n;
36
+ for (let i = count - 1; i >= 0; i--) {
37
+ result = (result << _16n) + bigints[i];
38
+ }
39
+ return result;
40
+ }
41
+ function init(seed, input) {
42
+ const state = {
43
+ seed,
44
+ u8a: new Uint8Array(32),
45
+ u8asize: 0,
46
+ v1: seed + P64_1 + P64_2,
47
+ v2: seed + P64_2,
48
+ v3: seed,
49
+ v4: seed - P64_1
50
+ };
51
+ if (input.length < 32) {
52
+ state.u8a.set(input);
53
+ state.u8asize = input.length;
54
+ return state;
55
+ }
56
+ const limit = input.length - 32;
57
+ let p = 0;
58
+ if (limit >= 0) {
59
+ const adjustV = (v) => P64_1 * rotl(v + P64_2 * fromU8a(input, p, 4), _31n);
60
+ do {
61
+ state.v1 = adjustV(state.v1);
62
+ p += 8;
63
+ state.v2 = adjustV(state.v2);
64
+ p += 8;
65
+ state.v3 = adjustV(state.v3);
66
+ p += 8;
67
+ state.v4 = adjustV(state.v4);
68
+ p += 8;
69
+ } while (p <= limit);
70
+ }
71
+ if (p < input.length) {
72
+ state.u8a.set(input.subarray(p, input.length));
73
+ state.u8asize = input.length - p;
74
+ }
75
+ return state;
76
+ }
77
+ function xxhash64(input, initSeed) {
78
+ const { seed, u8a, u8asize, v1, v2, v3, v4 } = init((0, x_bigint_1.BigInt)(initSeed), input);
79
+ let p = 0;
80
+ let h64 = U64 & ((0, x_bigint_1.BigInt)(input.length) + (input.length >= 32
81
+ ? (((((((((rotl(v1, util_1._1n) + rotl(v2, _7n) + rotl(v3, _12n) + rotl(v4, _18n)) ^ (P64_1 * rotl(v1 * P64_2, _31n))) * P64_1 + P64_4) ^ (P64_1 * rotl(v2 * P64_2, _31n))) * P64_1 + P64_4) ^ (P64_1 * rotl(v3 * P64_2, _31n))) * P64_1 + P64_4) ^ (P64_1 * rotl(v4 * P64_2, _31n))) * P64_1 + P64_4)
82
+ : (seed + P64_5)));
83
+ while (p <= (u8asize - 8)) {
84
+ h64 = U64 & (P64_4 + P64_1 * rotl(h64 ^ (P64_1 * rotl(P64_2 * fromU8a(u8a, p, 4), _31n)), _27n));
85
+ p += 8;
86
+ }
87
+ if ((p + 4) <= u8asize) {
88
+ h64 = U64 & (P64_3 + P64_2 * rotl(h64 ^ (P64_1 * fromU8a(u8a, p, 2)), _23n));
89
+ p += 4;
90
+ }
91
+ while (p < u8asize) {
92
+ h64 = U64 & (P64_1 * rotl(h64 ^ (P64_5 * (0, x_bigint_1.BigInt)(u8a[p++])), _11n));
93
+ }
94
+ h64 = U64 & (P64_2 * (h64 ^ (h64 >> _33n)));
95
+ h64 = U64 & (P64_3 * (h64 ^ (h64 >> _29n)));
96
+ h64 = U64 & (h64 ^ (h64 >> _32n));
97
+ const result = new Uint8Array(8);
98
+ for (let i = 7; i >= 0; i--) {
99
+ result[i] = Number(h64 % _256n);
100
+ h64 = h64 / _256n;
101
+ }
102
+ return result;
103
+ }
package/crypto.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { isReady } from '@polkadot/wasm-crypto';
2
+ export declare const cryptoIsReady: typeof isReady;
3
+ export declare function cryptoWaitReady(): Promise<boolean>;
package/crypto.js ADDED
@@ -0,0 +1,12 @@
1
+ import { isReady, waitReady } from '@pezkuwi/wasm-crypto';
2
+ export const cryptoIsReady = isReady;
3
+ export function cryptoWaitReady() {
4
+ return waitReady()
5
+ .then(() => {
6
+ if (!isReady()) {
7
+ throw new Error('Unable to initialize @pezkuwi/util-crypto');
8
+ }
9
+ return true;
10
+ })
11
+ .catch(() => false);
12
+ }
@@ -0,0 +1 @@
1
+ export declare function ed25519DeriveHard(seed: Uint8Array, chainCode: Uint8Array): Uint8Array;
@@ -0,0 +1,9 @@
1
+ import { compactAddLength, isU8a, stringToU8a, u8aConcat } from '@pezkuwi/util';
2
+ import { blake2AsU8a } from '../blake2/asU8a.js';
3
+ const HDKD = compactAddLength(stringToU8a('Ed25519HDKD'));
4
+ export function ed25519DeriveHard(seed, chainCode) {
5
+ if (!isU8a(chainCode) || chainCode.length !== 32) {
6
+ throw new Error('Invalid chainCode passed to derive');
7
+ }
8
+ return blake2AsU8a(u8aConcat(HDKD, seed, chainCode));
9
+ }