@pezkuwi/util-crypto 14.0.2 → 14.0.4

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