@pezkuwi/util-crypto 14.0.10 → 14.0.12

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 (593) hide show
  1. package/address/addressToEvm.d.ts +5 -0
  2. package/address/addressToEvm.js +8 -0
  3. package/address/check.d.ts +8 -0
  4. package/address/check.js +26 -0
  5. package/address/checksum.d.ts +1 -0
  6. package/address/checksum.js +16 -0
  7. package/address/decode.d.ts +2 -0
  8. package/address/decode.js +29 -0
  9. package/address/defaults.d.ts +6 -0
  10. package/address/defaults.js +8 -0
  11. package/address/derive.d.ts +8 -0
  12. package/address/derive.js +24 -0
  13. package/address/encode.d.ts +2 -0
  14. package/address/encode.js +23 -0
  15. package/address/encodeDerived.d.ts +9 -0
  16. package/address/encodeDerived.js +12 -0
  17. package/address/encodeMulti.d.ts +9 -0
  18. package/address/encodeMulti.js +11 -0
  19. package/address/eq.d.ts +15 -0
  20. package/address/eq.js +19 -0
  21. package/address/evmToAddress.d.ts +7 -0
  22. package/address/evmToAddress.js +14 -0
  23. package/address/index.d.ts +16 -0
  24. package/address/index.js +16 -0
  25. package/address/is.d.ts +2 -0
  26. package/address/is.js +9 -0
  27. package/address/keyDerived.d.ts +2 -0
  28. package/address/keyDerived.js +8 -0
  29. package/address/keyMulti.d.ts +2 -0
  30. package/address/keyMulti.js +8 -0
  31. package/address/setSS58Format.d.ts +6 -0
  32. package/address/setSS58Format.js +11 -0
  33. package/address/sort.d.ts +2 -0
  34. package/address/sort.js +7 -0
  35. package/address/sshash.d.ts +1 -0
  36. package/address/sshash.js +6 -0
  37. package/address/types.d.ts +1 -0
  38. package/address/types.js +1 -0
  39. package/address/util.d.ts +1 -0
  40. package/address/util.js +4 -0
  41. package/address/validate.d.ts +2 -0
  42. package/address/validate.js +4 -0
  43. package/base32/bs32.d.ts +26 -0
  44. package/base32/bs32.js +40 -0
  45. package/base32/helpers.d.ts +25 -0
  46. package/base32/helpers.js +61 -0
  47. package/base32/index.d.ts +4 -0
  48. package/base32/index.js +4 -0
  49. package/base58/bs58.d.ts +26 -0
  50. package/base58/bs58.js +34 -0
  51. package/base58/index.d.ts +4 -0
  52. package/base58/index.js +4 -0
  53. package/base64/bs64.d.ts +26 -0
  54. package/base64/bs64.js +34 -0
  55. package/base64/index.d.ts +6 -0
  56. package/base64/index.js +6 -0
  57. package/base64/pad.d.ts +5 -0
  58. package/base64/pad.js +7 -0
  59. package/base64/trim.d.ts +5 -0
  60. package/base64/trim.js +10 -0
  61. package/blake2/asU8a.d.ts +20 -0
  62. package/blake2/asU8a.js +32 -0
  63. package/blake2/index.d.ts +4 -0
  64. package/blake2/index.js +4 -0
  65. package/bn.d.ts +30 -0
  66. package/bn.js +8 -0
  67. package/build/blake2/asU8a.d.ts +1 -1
  68. package/build/bundle-pezkuwi-util-crypto.js +8749 -8246
  69. package/build/cjs/blake2/asU8a.d.ts +1 -1
  70. package/build/cjs/keccak/asU8a.d.ts +1 -1
  71. package/build/cjs/packageInfo.js +1 -1
  72. package/build/cjs/scrypt/encode.d.ts +1 -1
  73. package/build/cjs/xxhash/asU8a.d.ts +1 -1
  74. package/build/keccak/asU8a.d.ts +1 -1
  75. package/build/package.json +9 -9
  76. package/build/packageInfo.js +1 -1
  77. package/build/scrypt/encode.d.ts +1 -1
  78. package/build/xxhash/asU8a.d.ts +1 -1
  79. package/build-deno/packageInfo.ts +1 -1
  80. package/build-tsc/blake2/asU8a.d.ts +1 -1
  81. package/build-tsc/keccak/asU8a.d.ts +1 -1
  82. package/build-tsc/scrypt/encode.d.ts +1 -1
  83. package/build-tsc/xxhash/asU8a.d.ts +1 -1
  84. package/build-tsc-cjs/packageInfo.js +1 -1
  85. package/build-tsc-esm/packageInfo.js +1 -1
  86. package/bundle-pezkuwi-util-crypto.js +8251 -0
  87. package/bundle.d.ts +26 -0
  88. package/bundle.js +26 -0
  89. package/bundleInit.d.ts +1 -0
  90. package/bundleInit.js +5 -0
  91. package/cjs/address/addressToEvm.d.ts +5 -0
  92. package/cjs/address/addressToEvm.js +11 -0
  93. package/cjs/address/check.d.ts +8 -0
  94. package/cjs/address/check.js +29 -0
  95. package/cjs/address/checksum.d.ts +1 -0
  96. package/cjs/address/checksum.js +19 -0
  97. package/cjs/address/decode.d.ts +2 -0
  98. package/cjs/address/decode.js +32 -0
  99. package/cjs/address/defaults.d.ts +6 -0
  100. package/cjs/address/defaults.js +11 -0
  101. package/cjs/address/derive.d.ts +8 -0
  102. package/cjs/address/derive.js +27 -0
  103. package/cjs/address/encode.d.ts +2 -0
  104. package/cjs/address/encode.js +26 -0
  105. package/cjs/address/encodeDerived.d.ts +9 -0
  106. package/cjs/address/encodeDerived.js +15 -0
  107. package/cjs/address/encodeMulti.d.ts +9 -0
  108. package/cjs/address/encodeMulti.js +14 -0
  109. package/cjs/address/eq.d.ts +15 -0
  110. package/cjs/address/eq.js +22 -0
  111. package/cjs/address/evmToAddress.d.ts +7 -0
  112. package/cjs/address/evmToAddress.js +17 -0
  113. package/cjs/address/index.d.ts +16 -0
  114. package/cjs/address/index.js +35 -0
  115. package/cjs/address/is.d.ts +2 -0
  116. package/cjs/address/is.js +12 -0
  117. package/cjs/address/keyDerived.d.ts +2 -0
  118. package/cjs/address/keyDerived.js +11 -0
  119. package/cjs/address/keyMulti.d.ts +2 -0
  120. package/cjs/address/keyMulti.js +11 -0
  121. package/cjs/address/setSS58Format.d.ts +6 -0
  122. package/cjs/address/setSS58Format.js +14 -0
  123. package/cjs/address/sort.d.ts +2 -0
  124. package/cjs/address/sort.js +10 -0
  125. package/cjs/address/sshash.d.ts +1 -0
  126. package/cjs/address/sshash.js +9 -0
  127. package/cjs/address/types.d.ts +1 -0
  128. package/cjs/address/types.js +2 -0
  129. package/cjs/address/util.d.ts +1 -0
  130. package/cjs/address/util.js +7 -0
  131. package/cjs/address/validate.d.ts +2 -0
  132. package/cjs/address/validate.js +7 -0
  133. package/cjs/base32/bs32.d.ts +26 -0
  134. package/cjs/base32/bs32.js +43 -0
  135. package/cjs/base32/helpers.d.ts +25 -0
  136. package/cjs/base32/helpers.js +67 -0
  137. package/cjs/base32/index.d.ts +4 -0
  138. package/cjs/base32/index.js +11 -0
  139. package/cjs/base58/bs58.d.ts +26 -0
  140. package/cjs/base58/bs58.js +37 -0
  141. package/cjs/base58/index.d.ts +4 -0
  142. package/cjs/base58/index.js +11 -0
  143. package/cjs/base64/bs64.d.ts +26 -0
  144. package/cjs/base64/bs64.js +37 -0
  145. package/cjs/base64/index.d.ts +6 -0
  146. package/cjs/base64/index.js +15 -0
  147. package/cjs/base64/pad.d.ts +5 -0
  148. package/cjs/base64/pad.js +10 -0
  149. package/cjs/base64/trim.d.ts +5 -0
  150. package/cjs/base64/trim.js +13 -0
  151. package/cjs/blake2/asU8a.d.ts +20 -0
  152. package/cjs/blake2/asU8a.js +36 -0
  153. package/cjs/blake2/index.d.ts +4 -0
  154. package/cjs/blake2/index.js +9 -0
  155. package/cjs/bn.d.ts +30 -0
  156. package/cjs/bn.js +11 -0
  157. package/cjs/bundle.d.ts +26 -0
  158. package/cjs/bundle.js +31 -0
  159. package/cjs/bundleInit.d.ts +1 -0
  160. package/cjs/bundleInit.js +7 -0
  161. package/cjs/crypto.d.ts +3 -0
  162. package/cjs/crypto.js +16 -0
  163. package/cjs/ed25519/deriveHard.d.ts +1 -0
  164. package/cjs/ed25519/deriveHard.js +12 -0
  165. package/cjs/ed25519/index.d.ts +10 -0
  166. package/cjs/ed25519/index.js +20 -0
  167. package/cjs/ed25519/pair/fromRandom.d.ts +16 -0
  168. package/cjs/ed25519/pair/fromRandom.js +22 -0
  169. package/cjs/ed25519/pair/fromSecret.d.ts +16 -0
  170. package/cjs/ed25519/pair/fromSecret.js +26 -0
  171. package/cjs/ed25519/pair/fromSeed.d.ts +16 -0
  172. package/cjs/ed25519/pair/fromSeed.js +34 -0
  173. package/cjs/ed25519/pair/fromString.d.ts +16 -0
  174. package/cjs/ed25519/pair/fromString.js +23 -0
  175. package/cjs/ed25519/sign.d.ts +16 -0
  176. package/cjs/ed25519/sign.js +33 -0
  177. package/cjs/ed25519/verify.d.ts +15 -0
  178. package/cjs/ed25519/verify.js +39 -0
  179. package/cjs/ethereum/encode.d.ts +2 -0
  180. package/cjs/ethereum/encode.js +28 -0
  181. package/cjs/ethereum/index.d.ts +3 -0
  182. package/cjs/ethereum/index.js +9 -0
  183. package/cjs/ethereum/isAddress.d.ts +1 -0
  184. package/cjs/ethereum/isAddress.js +14 -0
  185. package/cjs/ethereum/isChecksum.d.ts +1 -0
  186. package/cjs/ethereum/isChecksum.js +20 -0
  187. package/cjs/hd/ethereum/index.d.ts +2 -0
  188. package/cjs/hd/ethereum/index.js +47 -0
  189. package/cjs/hd/index.d.ts +3 -0
  190. package/cjs/hd/index.js +9 -0
  191. package/cjs/hd/ledger/derivePrivate.d.ts +1 -0
  192. package/cjs/hd/ledger/derivePrivate.js +15 -0
  193. package/cjs/hd/ledger/index.d.ts +2 -0
  194. package/cjs/hd/ledger/index.js +33 -0
  195. package/cjs/hd/ledger/master.d.ts +1 -0
  196. package/cjs/hd/ledger/master.js +19 -0
  197. package/cjs/hd/validatePath.d.ts +2 -0
  198. package/cjs/hd/validatePath.js +20 -0
  199. package/cjs/helpers.d.ts +12 -0
  200. package/cjs/helpers.js +24 -0
  201. package/cjs/hmac/index.d.ts +1 -0
  202. package/cjs/hmac/index.js +7 -0
  203. package/cjs/hmac/shaAsU8a.d.ts +15 -0
  204. package/cjs/hmac/shaAsU8a.js +40 -0
  205. package/cjs/index.d.ts +2 -0
  206. package/cjs/index.js +5 -0
  207. package/cjs/json/constants.d.ts +6 -0
  208. package/cjs/json/constants.js +8 -0
  209. package/cjs/json/decrypt.d.ts +2 -0
  210. package/cjs/json/decrypt.js +16 -0
  211. package/cjs/json/decryptData.d.ts +2 -0
  212. package/cjs/json/decryptData.js +32 -0
  213. package/cjs/json/encrypt.d.ts +2 -0
  214. package/cjs/json/encrypt.js +18 -0
  215. package/cjs/json/encryptFormat.d.ts +2 -0
  216. package/cjs/json/encryptFormat.js +17 -0
  217. package/cjs/json/index.d.ts +4 -0
  218. package/cjs/json/index.js +11 -0
  219. package/cjs/json/types.d.ts +16 -0
  220. package/cjs/json/types.js +2 -0
  221. package/cjs/keccak/asU8a.d.ts +30 -0
  222. package/cjs/keccak/asU8a.js +36 -0
  223. package/cjs/keccak/index.d.ts +4 -0
  224. package/cjs/keccak/index.js +11 -0
  225. package/cjs/key/DeriveJunction.d.ts +12 -0
  226. package/cjs/key/DeriveJunction.js +62 -0
  227. package/cjs/key/extractPath.d.ts +9 -0
  228. package/cjs/key/extractPath.js +26 -0
  229. package/cjs/key/extractSuri.d.ts +11 -0
  230. package/cjs/key/extractSuri.js +25 -0
  231. package/cjs/key/fromPath.d.ts +3 -0
  232. package/cjs/key/fromPath.js +21 -0
  233. package/cjs/key/hdkdDerive.d.ts +3 -0
  234. package/cjs/key/hdkdDerive.js +11 -0
  235. package/cjs/key/hdkdEcdsa.d.ts +1 -0
  236. package/cjs/key/hdkdEcdsa.js +7 -0
  237. package/cjs/key/hdkdEd25519.d.ts +1 -0
  238. package/cjs/key/hdkdEd25519.js +6 -0
  239. package/cjs/key/hdkdSr25519.d.ts +3 -0
  240. package/cjs/key/hdkdSr25519.js +10 -0
  241. package/cjs/key/index.d.ts +9 -0
  242. package/cjs/key/index.js +18 -0
  243. package/cjs/mnemonic/bip39.d.ts +5 -0
  244. package/cjs/mnemonic/bip39.js +90 -0
  245. package/cjs/mnemonic/generate.d.ts +13 -0
  246. package/cjs/mnemonic/generate.js +23 -0
  247. package/cjs/mnemonic/index.d.ts +8 -0
  248. package/cjs/mnemonic/index.js +16 -0
  249. package/cjs/mnemonic/toEntropy.d.ts +1 -0
  250. package/cjs/mnemonic/toEntropy.js +11 -0
  251. package/cjs/mnemonic/toLegacySeed.d.ts +18 -0
  252. package/cjs/mnemonic/toLegacySeed.js +37 -0
  253. package/cjs/mnemonic/toMiniSecret.d.ts +1 -0
  254. package/cjs/mnemonic/toMiniSecret.js +20 -0
  255. package/cjs/mnemonic/validate.d.ts +14 -0
  256. package/cjs/mnemonic/validate.js +24 -0
  257. package/cjs/mnemonic/wordlists/en.d.ts +2 -0
  258. package/cjs/mnemonic/wordlists/en.js +3 -0
  259. package/cjs/mnemonic/wordlists/es.d.ts +2 -0
  260. package/cjs/mnemonic/wordlists/es.js +3 -0
  261. package/cjs/mnemonic/wordlists/fr.d.ts +2 -0
  262. package/cjs/mnemonic/wordlists/fr.js +3 -0
  263. package/cjs/mnemonic/wordlists/index.d.ts +8 -0
  264. package/cjs/mnemonic/wordlists/index.js +20 -0
  265. package/cjs/mnemonic/wordlists/it.d.ts +2 -0
  266. package/cjs/mnemonic/wordlists/it.js +3 -0
  267. package/cjs/mnemonic/wordlists/jp.d.ts +2 -0
  268. package/cjs/mnemonic/wordlists/jp.js +3 -0
  269. package/cjs/mnemonic/wordlists/ko.d.ts +2 -0
  270. package/cjs/mnemonic/wordlists/ko.js +3 -0
  271. package/cjs/mnemonic/wordlists/zh-s.d.ts +2 -0
  272. package/cjs/mnemonic/wordlists/zh-s.js +3 -0
  273. package/cjs/mnemonic/wordlists/zh-t.d.ts +2 -0
  274. package/cjs/mnemonic/wordlists/zh-t.js +3 -0
  275. package/cjs/nacl/decrypt.d.ts +15 -0
  276. package/cjs/nacl/decrypt.js +21 -0
  277. package/cjs/nacl/encrypt.d.ts +20 -0
  278. package/cjs/nacl/encrypt.js +25 -0
  279. package/cjs/nacl/index.d.ts +5 -0
  280. package/cjs/nacl/index.js +10 -0
  281. package/cjs/nacl/tweetnacl.d.ts +2 -0
  282. package/cjs/nacl/tweetnacl.js +238 -0
  283. package/cjs/networks.d.ts +1 -0
  284. package/cjs/networks.js +7 -0
  285. package/cjs/package.json +3 -0
  286. package/cjs/packageDetect.d.ts +1 -0
  287. package/cjs/packageDetect.js +8 -0
  288. package/cjs/packageInfo.d.ts +6 -0
  289. package/cjs/packageInfo.js +4 -0
  290. package/cjs/pbkdf2/encode.d.ts +7 -0
  291. package/cjs/pbkdf2/encode.js +19 -0
  292. package/cjs/pbkdf2/index.d.ts +1 -0
  293. package/cjs/pbkdf2/index.js +5 -0
  294. package/cjs/random/asNumber.d.ts +15 -0
  295. package/cjs/random/asNumber.js +23 -0
  296. package/cjs/random/asU8a.d.ts +20 -0
  297. package/cjs/random/asU8a.js +28 -0
  298. package/cjs/random/index.d.ts +5 -0
  299. package/cjs/random/index.js +11 -0
  300. package/cjs/scrypt/defaults.d.ts +3 -0
  301. package/cjs/scrypt/defaults.js +16 -0
  302. package/cjs/scrypt/encode.d.ts +8 -0
  303. package/cjs/scrypt/encode.js +18 -0
  304. package/cjs/scrypt/fromU8a.d.ts +7 -0
  305. package/cjs/scrypt/fromU8a.js +27 -0
  306. package/cjs/scrypt/index.d.ts +3 -0
  307. package/cjs/scrypt/index.js +9 -0
  308. package/cjs/scrypt/toU8a.d.ts +2 -0
  309. package/cjs/scrypt/toU8a.js +8 -0
  310. package/cjs/scrypt/types.d.ts +6 -0
  311. package/cjs/scrypt/types.js +2 -0
  312. package/cjs/secp256k1/compress.d.ts +1 -0
  313. package/cjs/secp256k1/compress.js +17 -0
  314. package/cjs/secp256k1/deriveHard.d.ts +1 -0
  315. package/cjs/secp256k1/deriveHard.js +13 -0
  316. package/cjs/secp256k1/expand.d.ts +1 -0
  317. package/cjs/secp256k1/expand.js +20 -0
  318. package/cjs/secp256k1/hasher.d.ts +2 -0
  319. package/cjs/secp256k1/hasher.js +10 -0
  320. package/cjs/secp256k1/index.d.ts +7 -0
  321. package/cjs/secp256k1/index.js +17 -0
  322. package/cjs/secp256k1/pair/fromSeed.d.ts +6 -0
  323. package/cjs/secp256k1/pair/fromSeed.js +34 -0
  324. package/cjs/secp256k1/recover.d.ts +6 -0
  325. package/cjs/secp256k1/recover.js +29 -0
  326. package/cjs/secp256k1/sign.d.ts +7 -0
  327. package/cjs/secp256k1/sign.js +23 -0
  328. package/cjs/secp256k1/tweakAdd.d.ts +1 -0
  329. package/cjs/secp256k1/tweakAdd.js +48 -0
  330. package/cjs/secp256k1/types.d.ts +1 -0
  331. package/cjs/secp256k1/types.js +2 -0
  332. package/cjs/secp256k1/verify.d.ts +6 -0
  333. package/cjs/secp256k1/verify.js +23 -0
  334. package/cjs/sha/asU8a.d.ts +15 -0
  335. package/cjs/sha/asU8a.js +22 -0
  336. package/cjs/sha/index.d.ts +4 -0
  337. package/cjs/sha/index.js +10 -0
  338. package/cjs/signature/index.d.ts +4 -0
  339. package/cjs/signature/index.js +8 -0
  340. package/cjs/signature/verify.d.ts +2 -0
  341. package/cjs/signature/verify.js +81 -0
  342. package/cjs/sr25519/agreement.d.ts +5 -0
  343. package/cjs/sr25519/agreement.js +20 -0
  344. package/cjs/sr25519/derive.d.ts +2 -0
  345. package/cjs/sr25519/derive.js +16 -0
  346. package/cjs/sr25519/deriveHard.d.ts +1 -0
  347. package/cjs/sr25519/deriveHard.js +7 -0
  348. package/cjs/sr25519/derivePublic.d.ts +1 -0
  349. package/cjs/sr25519/derivePublic.js +16 -0
  350. package/cjs/sr25519/deriveSoft.d.ts +1 -0
  351. package/cjs/sr25519/deriveSoft.js +7 -0
  352. package/cjs/sr25519/index.d.ts +9 -0
  353. package/cjs/sr25519/index.js +21 -0
  354. package/cjs/sr25519/pair/fromSeed.d.ts +6 -0
  355. package/cjs/sr25519/pair/fromSeed.js +22 -0
  356. package/cjs/sr25519/pair/fromU8a.d.ts +2 -0
  357. package/cjs/sr25519/pair/fromU8a.js +17 -0
  358. package/cjs/sr25519/pair/toU8a.d.ts +2 -0
  359. package/cjs/sr25519/pair/toU8a.js +7 -0
  360. package/cjs/sr25519/sign.d.ts +6 -0
  361. package/cjs/sr25519/sign.js +19 -0
  362. package/cjs/sr25519/verify.d.ts +5 -0
  363. package/cjs/sr25519/verify.js +21 -0
  364. package/cjs/sr25519/vrfSign.d.ts +6 -0
  365. package/cjs/sr25519/vrfSign.js +19 -0
  366. package/cjs/sr25519/vrfVerify.d.ts +5 -0
  367. package/cjs/sr25519/vrfVerify.js +22 -0
  368. package/cjs/types.d.ts +26 -0
  369. package/cjs/types.js +5 -0
  370. package/cjs/xxhash/asU8a.d.ts +20 -0
  371. package/cjs/xxhash/asU8a.js +39 -0
  372. package/cjs/xxhash/index.d.ts +4 -0
  373. package/cjs/xxhash/index.js +9 -0
  374. package/cjs/xxhash/xxhash64.d.ts +1 -0
  375. package/cjs/xxhash/xxhash64.js +103 -0
  376. package/crypto.d.ts +3 -0
  377. package/crypto.js +12 -0
  378. package/ed25519/deriveHard.d.ts +1 -0
  379. package/ed25519/deriveHard.js +9 -0
  380. package/ed25519/index.d.ts +10 -0
  381. package/ed25519/index.js +10 -0
  382. package/ed25519/pair/fromRandom.d.ts +16 -0
  383. package/ed25519/pair/fromRandom.js +19 -0
  384. package/ed25519/pair/fromSecret.d.ts +16 -0
  385. package/ed25519/pair/fromSecret.js +23 -0
  386. package/ed25519/pair/fromSeed.d.ts +16 -0
  387. package/ed25519/pair/fromSeed.js +31 -0
  388. package/ed25519/pair/fromString.d.ts +16 -0
  389. package/ed25519/pair/fromString.js +20 -0
  390. package/ed25519/sign.d.ts +16 -0
  391. package/ed25519/sign.js +30 -0
  392. package/ed25519/verify.d.ts +15 -0
  393. package/ed25519/verify.js +36 -0
  394. package/ethereum/encode.d.ts +2 -0
  395. package/ethereum/encode.js +25 -0
  396. package/ethereum/index.d.ts +3 -0
  397. package/ethereum/index.js +3 -0
  398. package/ethereum/isAddress.d.ts +1 -0
  399. package/ethereum/isAddress.js +11 -0
  400. package/ethereum/isChecksum.d.ts +1 -0
  401. package/ethereum/isChecksum.js +17 -0
  402. package/hd/ethereum/index.d.ts +2 -0
  403. package/hd/ethereum/index.js +44 -0
  404. package/hd/index.d.ts +3 -0
  405. package/hd/index.js +3 -0
  406. package/hd/ledger/derivePrivate.d.ts +1 -0
  407. package/hd/ledger/derivePrivate.js +12 -0
  408. package/hd/ledger/index.d.ts +2 -0
  409. package/hd/ledger/index.js +30 -0
  410. package/hd/ledger/master.d.ts +1 -0
  411. package/hd/ledger/master.js +16 -0
  412. package/hd/validatePath.d.ts +2 -0
  413. package/hd/validatePath.js +16 -0
  414. package/helpers.d.ts +12 -0
  415. package/helpers.js +19 -0
  416. package/hmac/index.d.ts +1 -0
  417. package/hmac/index.js +1 -0
  418. package/hmac/shaAsU8a.d.ts +15 -0
  419. package/hmac/shaAsU8a.js +36 -0
  420. package/index.d.ts +2 -0
  421. package/index.js +2 -0
  422. package/json/constants.d.ts +6 -0
  423. package/json/constants.js +5 -0
  424. package/json/decrypt.d.ts +2 -0
  425. package/json/decrypt.js +13 -0
  426. package/json/decryptData.d.ts +2 -0
  427. package/json/decryptData.js +29 -0
  428. package/json/encrypt.d.ts +2 -0
  429. package/json/encrypt.js +15 -0
  430. package/json/encryptFormat.d.ts +2 -0
  431. package/json/encryptFormat.js +14 -0
  432. package/json/index.d.ts +4 -0
  433. package/json/index.js +4 -0
  434. package/json/types.d.ts +16 -0
  435. package/json/types.js +1 -0
  436. package/keccak/asU8a.d.ts +30 -0
  437. package/keccak/asU8a.js +33 -0
  438. package/keccak/index.d.ts +4 -0
  439. package/keccak/index.js +4 -0
  440. package/key/DeriveJunction.d.ts +12 -0
  441. package/key/DeriveJunction.js +58 -0
  442. package/key/extractPath.d.ts +9 -0
  443. package/key/extractPath.js +23 -0
  444. package/key/extractSuri.d.ts +11 -0
  445. package/key/extractSuri.js +22 -0
  446. package/key/fromPath.d.ts +3 -0
  447. package/key/fromPath.js +18 -0
  448. package/key/hdkdDerive.d.ts +3 -0
  449. package/key/hdkdDerive.js +8 -0
  450. package/key/hdkdEcdsa.d.ts +1 -0
  451. package/key/hdkdEcdsa.js +4 -0
  452. package/key/hdkdEd25519.d.ts +1 -0
  453. package/key/hdkdEd25519.js +3 -0
  454. package/key/hdkdSr25519.d.ts +3 -0
  455. package/key/hdkdSr25519.js +7 -0
  456. package/key/index.d.ts +9 -0
  457. package/key/index.js +9 -0
  458. package/mnemonic/bip39.d.ts +5 -0
  459. package/mnemonic/bip39.js +82 -0
  460. package/mnemonic/generate.d.ts +13 -0
  461. package/mnemonic/generate.js +20 -0
  462. package/mnemonic/index.d.ts +8 -0
  463. package/mnemonic/index.js +8 -0
  464. package/mnemonic/toEntropy.d.ts +1 -0
  465. package/mnemonic/toEntropy.js +8 -0
  466. package/mnemonic/toLegacySeed.d.ts +18 -0
  467. package/mnemonic/toLegacySeed.js +34 -0
  468. package/mnemonic/toMiniSecret.d.ts +1 -0
  469. package/mnemonic/toMiniSecret.js +17 -0
  470. package/mnemonic/validate.d.ts +14 -0
  471. package/mnemonic/validate.js +21 -0
  472. package/mnemonic/wordlists/en.d.ts +2 -0
  473. package/mnemonic/wordlists/en.js +1 -0
  474. package/mnemonic/wordlists/es.d.ts +2 -0
  475. package/mnemonic/wordlists/es.js +1 -0
  476. package/mnemonic/wordlists/fr.d.ts +2 -0
  477. package/mnemonic/wordlists/fr.js +1 -0
  478. package/mnemonic/wordlists/index.d.ts +8 -0
  479. package/mnemonic/wordlists/index.js +8 -0
  480. package/mnemonic/wordlists/it.d.ts +2 -0
  481. package/mnemonic/wordlists/it.js +1 -0
  482. package/mnemonic/wordlists/jp.d.ts +2 -0
  483. package/mnemonic/wordlists/jp.js +1 -0
  484. package/mnemonic/wordlists/ko.d.ts +2 -0
  485. package/mnemonic/wordlists/ko.js +1 -0
  486. package/mnemonic/wordlists/zh-s.d.ts +2 -0
  487. package/mnemonic/wordlists/zh-s.js +1 -0
  488. package/mnemonic/wordlists/zh-t.d.ts +2 -0
  489. package/mnemonic/wordlists/zh-t.js +1 -0
  490. package/nacl/decrypt.d.ts +15 -0
  491. package/nacl/decrypt.js +18 -0
  492. package/nacl/encrypt.d.ts +20 -0
  493. package/nacl/encrypt.js +22 -0
  494. package/nacl/index.d.ts +5 -0
  495. package/nacl/index.js +5 -0
  496. package/nacl/tweetnacl.d.ts +2 -0
  497. package/nacl/tweetnacl.js +234 -0
  498. package/networks.d.ts +1 -0
  499. package/networks.js +1 -0
  500. package/package.json +2023 -11
  501. package/packageDetect.d.ts +1 -0
  502. package/packageDetect.js +6 -0
  503. package/packageInfo.d.ts +6 -0
  504. package/packageInfo.js +1 -0
  505. package/pbkdf2/encode.d.ts +7 -0
  506. package/pbkdf2/encode.js +16 -0
  507. package/pbkdf2/index.d.ts +1 -0
  508. package/pbkdf2/index.js +1 -0
  509. package/random/asNumber.d.ts +15 -0
  510. package/random/asNumber.js +20 -0
  511. package/random/asU8a.d.ts +20 -0
  512. package/random/asU8a.js +24 -0
  513. package/random/index.d.ts +5 -0
  514. package/random/index.js +5 -0
  515. package/scrypt/defaults.d.ts +3 -0
  516. package/scrypt/defaults.js +13 -0
  517. package/scrypt/encode.d.ts +8 -0
  518. package/scrypt/encode.js +15 -0
  519. package/scrypt/fromU8a.d.ts +7 -0
  520. package/scrypt/fromU8a.js +24 -0
  521. package/scrypt/index.d.ts +3 -0
  522. package/scrypt/index.js +3 -0
  523. package/scrypt/toU8a.d.ts +2 -0
  524. package/scrypt/toU8a.js +5 -0
  525. package/scrypt/types.d.ts +6 -0
  526. package/scrypt/types.js +1 -0
  527. package/secp256k1/compress.d.ts +1 -0
  528. package/secp256k1/compress.js +14 -0
  529. package/secp256k1/deriveHard.d.ts +1 -0
  530. package/secp256k1/deriveHard.js +10 -0
  531. package/secp256k1/expand.d.ts +1 -0
  532. package/secp256k1/expand.js +17 -0
  533. package/secp256k1/hasher.d.ts +2 -0
  534. package/secp256k1/hasher.js +7 -0
  535. package/secp256k1/index.d.ts +7 -0
  536. package/secp256k1/index.js +7 -0
  537. package/secp256k1/pair/fromSeed.d.ts +6 -0
  538. package/secp256k1/pair/fromSeed.js +31 -0
  539. package/secp256k1/recover.d.ts +6 -0
  540. package/secp256k1/recover.js +26 -0
  541. package/secp256k1/sign.d.ts +7 -0
  542. package/secp256k1/sign.js +20 -0
  543. package/secp256k1/tweakAdd.d.ts +1 -0
  544. package/secp256k1/tweakAdd.js +45 -0
  545. package/secp256k1/types.d.ts +1 -0
  546. package/secp256k1/types.js +1 -0
  547. package/secp256k1/verify.d.ts +6 -0
  548. package/secp256k1/verify.js +20 -0
  549. package/sha/asU8a.d.ts +15 -0
  550. package/sha/asU8a.js +19 -0
  551. package/sha/index.d.ts +4 -0
  552. package/sha/index.js +4 -0
  553. package/signature/index.d.ts +4 -0
  554. package/signature/index.js +4 -0
  555. package/signature/verify.d.ts +2 -0
  556. package/signature/verify.js +78 -0
  557. package/sr25519/agreement.d.ts +5 -0
  558. package/sr25519/agreement.js +17 -0
  559. package/sr25519/derive.d.ts +2 -0
  560. package/sr25519/derive.js +12 -0
  561. package/sr25519/deriveHard.d.ts +1 -0
  562. package/sr25519/deriveHard.js +3 -0
  563. package/sr25519/derivePublic.d.ts +1 -0
  564. package/sr25519/derivePublic.js +12 -0
  565. package/sr25519/deriveSoft.d.ts +1 -0
  566. package/sr25519/deriveSoft.js +3 -0
  567. package/sr25519/index.d.ts +9 -0
  568. package/sr25519/index.js +9 -0
  569. package/sr25519/pair/fromSeed.d.ts +6 -0
  570. package/sr25519/pair/fromSeed.js +18 -0
  571. package/sr25519/pair/fromU8a.d.ts +2 -0
  572. package/sr25519/pair/fromU8a.js +14 -0
  573. package/sr25519/pair/toU8a.d.ts +2 -0
  574. package/sr25519/pair/toU8a.js +4 -0
  575. package/sr25519/sign.d.ts +6 -0
  576. package/sr25519/sign.js +15 -0
  577. package/sr25519/verify.d.ts +5 -0
  578. package/sr25519/verify.js +17 -0
  579. package/sr25519/vrfSign.d.ts +6 -0
  580. package/sr25519/vrfSign.js +15 -0
  581. package/sr25519/vrfVerify.d.ts +5 -0
  582. package/sr25519/vrfVerify.js +18 -0
  583. package/src/packageInfo.ts +1 -1
  584. package/tsconfig.build.tsbuildinfo +1 -1
  585. package/tsconfig.spec.tsbuildinfo +1 -1
  586. package/types.d.ts +26 -0
  587. package/types.js +2 -0
  588. package/xxhash/asU8a.d.ts +20 -0
  589. package/xxhash/asU8a.js +35 -0
  590. package/xxhash/index.d.ts +4 -0
  591. package/xxhash/index.js +4 -0
  592. package/xxhash/xxhash64.d.ts +1 -0
  593. package/xxhash/xxhash64.js +100 -0
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @name addressToEvm
3
+ * @summary Converts an SS58 address to its corresponding EVM address.
4
+ */
5
+ export declare function addressToEvm(address: string | Uint8Array, ignoreChecksum?: boolean): Uint8Array;
@@ -0,0 +1,8 @@
1
+ import { decodeAddress } from './decode.js';
2
+ /**
3
+ * @name addressToEvm
4
+ * @summary Converts an SS58 address to its corresponding EVM address.
5
+ */
6
+ export function addressToEvm(address, ignoreChecksum) {
7
+ return decodeAddress(address, ignoreChecksum).subarray(0, 20);
8
+ }
@@ -0,0 +1,8 @@
1
+ import type { Prefix } from './types.js';
2
+ /**
3
+ * @name checkAddress
4
+ * @summary Validates an ss58 address.
5
+ * @description
6
+ * From the provided input, validate that the address is a valid input.
7
+ */
8
+ export declare function checkAddress(address: string, prefix: Prefix): [boolean, string | null];
@@ -0,0 +1,26 @@
1
+ import { base58Decode } from '../base58/index.js';
2
+ import { checkAddressChecksum } from './checksum.js';
3
+ import { defaults } from './defaults.js';
4
+ /**
5
+ * @name checkAddress
6
+ * @summary Validates an ss58 address.
7
+ * @description
8
+ * From the provided input, validate that the address is a valid input.
9
+ */
10
+ export function checkAddress(address, prefix) {
11
+ let decoded;
12
+ try {
13
+ decoded = base58Decode(address);
14
+ }
15
+ catch (error) {
16
+ return [false, error.message];
17
+ }
18
+ const [isValid, , , ss58Decoded] = checkAddressChecksum(decoded);
19
+ if (ss58Decoded !== prefix) {
20
+ return [false, `Prefix mismatch, expected ${prefix}, found ${ss58Decoded}`];
21
+ }
22
+ else if (!defaults.allowedEncodedLengths.includes(decoded.length)) {
23
+ return [false, 'Invalid decoded address length'];
24
+ }
25
+ return [isValid, isValid ? null : 'Invalid decoded address checksum'];
26
+ }
@@ -0,0 +1 @@
1
+ export declare function checkAddressChecksum(decoded: Uint8Array): [boolean, number, number, number];
@@ -0,0 +1,16 @@
1
+ import { sshash } from './sshash.js';
2
+ export function checkAddressChecksum(decoded) {
3
+ const ss58Length = (decoded[0] & 0b0100_0000) ? 2 : 1;
4
+ const ss58Decoded = ss58Length === 1
5
+ ? decoded[0]
6
+ : ((decoded[0] & 0b0011_1111) << 2) | (decoded[1] >> 6) | ((decoded[1] & 0b0011_1111) << 8);
7
+ // 32/33 bytes public + 2 bytes checksum + prefix
8
+ const isPublicKey = [34 + ss58Length, 35 + ss58Length].includes(decoded.length);
9
+ const length = decoded.length - (isPublicKey ? 2 : 1);
10
+ // calculate the hash and do the checksum byte checks
11
+ const hash = sshash(decoded.subarray(0, length));
12
+ const isValid = (decoded[0] & 0b1000_0000) === 0 && ![46, 47].includes(decoded[0]) && (isPublicKey
13
+ ? decoded[decoded.length - 2] === hash[0] && decoded[decoded.length - 1] === hash[1]
14
+ : decoded[decoded.length - 1] === hash[0]);
15
+ return [isValid, length, ss58Length, ss58Decoded];
16
+ }
@@ -0,0 +1,2 @@
1
+ import type { Prefix } from './types.js';
2
+ export declare function decodeAddress(encoded?: string | Uint8Array | null, ignoreChecksum?: boolean, ss58Format?: Prefix): Uint8Array;
@@ -0,0 +1,29 @@
1
+ import { isHex, isU8a, u8aToU8a } from '@pezkuwi/util';
2
+ import { base58Decode } from '../base58/index.js';
3
+ import { checkAddressChecksum } from './checksum.js';
4
+ import { defaults } from './defaults.js';
5
+ export function decodeAddress(encoded, ignoreChecksum, ss58Format = -1) {
6
+ if (!encoded) {
7
+ throw new Error('Invalid empty address passed');
8
+ }
9
+ if (isU8a(encoded) || isHex(encoded)) {
10
+ return u8aToU8a(encoded);
11
+ }
12
+ try {
13
+ const decoded = base58Decode(encoded);
14
+ if (!defaults.allowedEncodedLengths.includes(decoded.length)) {
15
+ throw new Error('Invalid decoded address length');
16
+ }
17
+ const [isValid, endPos, ss58Length, ss58Decoded] = checkAddressChecksum(decoded);
18
+ if (!isValid && !ignoreChecksum) {
19
+ throw new Error('Invalid decoded address checksum');
20
+ }
21
+ else if (ss58Format !== -1 && ss58Format !== ss58Decoded) {
22
+ throw new Error(`Expected ss58Format ${ss58Format}, received ${ss58Decoded}`);
23
+ }
24
+ return decoded.slice(ss58Length, endPos);
25
+ }
26
+ catch (error) {
27
+ throw new Error(`Decoding ${encoded}: ${error.message}`);
28
+ }
29
+ }
@@ -0,0 +1,6 @@
1
+ export declare const defaults: {
2
+ allowedDecodedLengths: number[];
3
+ allowedEncodedLengths: number[];
4
+ allowedPrefix: number[];
5
+ prefix: number;
6
+ };
@@ -0,0 +1,8 @@
1
+ import { availableNetworks } from '../networks.js';
2
+ export const defaults = {
3
+ allowedDecodedLengths: [1, 2, 4, 8, 32, 33],
4
+ // publicKey has prefix + 2 checksum bytes, short only prefix + 1 checksum byte
5
+ allowedEncodedLengths: [3, 4, 6, 10, 35, 36, 37, 38],
6
+ allowedPrefix: availableNetworks.map(({ prefix }) => prefix),
7
+ prefix: 42
8
+ };
@@ -0,0 +1,8 @@
1
+ import type { Prefix } from './types.js';
2
+ /**
3
+ * @name deriveAddress
4
+ * @summary Creates a sr25519 derived address from the supplied and path.
5
+ * @description
6
+ * Creates a sr25519 derived address based on the input address/publicKey and the uri supplied.
7
+ */
8
+ export declare function deriveAddress(who: string | Uint8Array, suri: string, ss58Format?: Prefix): string;
@@ -0,0 +1,24 @@
1
+ import { keyExtractPath } from '../key/index.js';
2
+ import { sr25519DerivePublic } from '../sr25519/index.js';
3
+ import { decodeAddress } from './decode.js';
4
+ import { encodeAddress } from './encode.js';
5
+ function filterHard({ isHard }) {
6
+ return isHard;
7
+ }
8
+ /**
9
+ * @name deriveAddress
10
+ * @summary Creates a sr25519 derived address from the supplied and path.
11
+ * @description
12
+ * Creates a sr25519 derived address based on the input address/publicKey and the uri supplied.
13
+ */
14
+ export function deriveAddress(who, suri, ss58Format) {
15
+ const { path } = keyExtractPath(suri);
16
+ if (!path.length || path.every(filterHard)) {
17
+ throw new Error('Expected suri to contain a combination of non-hard paths');
18
+ }
19
+ let publicKey = decodeAddress(who);
20
+ for (const { chainCode } of path) {
21
+ publicKey = sr25519DerivePublic(publicKey, chainCode);
22
+ }
23
+ return encodeAddress(publicKey, ss58Format);
24
+ }
@@ -0,0 +1,2 @@
1
+ import type { Prefix } from './types.js';
2
+ export declare function encodeAddress(key: string | Uint8Array, ss58Format?: Prefix): string;
@@ -0,0 +1,23 @@
1
+ import { u8aConcat } from '@pezkuwi/util';
2
+ import { base58Encode } from '../base58/index.js';
3
+ import { decodeAddress } from './decode.js';
4
+ import { defaults } from './defaults.js';
5
+ import { sshash } from './sshash.js';
6
+ export function encodeAddress(key, ss58Format = defaults.prefix) {
7
+ // decode it, this means we can re-encode an address
8
+ const u8a = decodeAddress(key);
9
+ if ((ss58Format < 0) || (ss58Format > 16383 && !ss58Exceptions.includes(ss58Format)) || [46, 47].includes(ss58Format)) {
10
+ throw new Error('Out of range ss58Format specified');
11
+ }
12
+ else if (!defaults.allowedDecodedLengths.includes(u8a.length)) {
13
+ throw new Error(`Expected a valid key to convert, with length ${defaults.allowedDecodedLengths.join(', ')}`);
14
+ }
15
+ const input = u8aConcat(ss58Format < 64
16
+ ? [ss58Format]
17
+ : [
18
+ ((ss58Format & 0b0000_0000_1111_1100) >> 2) | 0b0100_0000,
19
+ (ss58Format >> 8) | ((ss58Format & 0b0000_0000_0000_0011) << 6)
20
+ ], u8a);
21
+ return base58Encode(u8aConcat(input, sshash(input).subarray(0, [32, 33].includes(u8a.length) ? 2 : 1)));
22
+ }
23
+ const ss58Exceptions = [29972];
@@ -0,0 +1,9 @@
1
+ import type { BN } from '@pezkuwi/util';
2
+ import type { Prefix } from './types.js';
3
+ /**
4
+ * @name encodeDerivedAddress
5
+ * @summary Creates a derived address as used in Substrate utility.
6
+ * @description
7
+ * Creates a Substrate derived address based on the input address/publicKey and the index supplied.
8
+ */
9
+ export declare function encodeDerivedAddress(who: string | Uint8Array, index: bigint | BN | number, ss58Format?: Prefix): string;
@@ -0,0 +1,12 @@
1
+ import { decodeAddress } from './decode.js';
2
+ import { encodeAddress } from './encode.js';
3
+ import { createKeyDerived } from './keyDerived.js';
4
+ /**
5
+ * @name encodeDerivedAddress
6
+ * @summary Creates a derived address as used in Substrate utility.
7
+ * @description
8
+ * Creates a Substrate derived address based on the input address/publicKey and the index supplied.
9
+ */
10
+ export function encodeDerivedAddress(who, index, ss58Format) {
11
+ return encodeAddress(createKeyDerived(decodeAddress(who), index), ss58Format);
12
+ }
@@ -0,0 +1,9 @@
1
+ import type { BN } from '@pezkuwi/util';
2
+ import type { Prefix } from './types.js';
3
+ /**
4
+ * @name encodeMultiAddress
5
+ * @summary Creates a multisig address.
6
+ * @description
7
+ * Creates a Substrate multisig address based on the input address and the required threshold.
8
+ */
9
+ export declare function encodeMultiAddress(who: (string | Uint8Array)[], threshold: bigint | BN | number, ss58Format?: Prefix): string;
@@ -0,0 +1,11 @@
1
+ import { encodeAddress } from './encode.js';
2
+ import { createKeyMulti } from './keyMulti.js';
3
+ /**
4
+ * @name encodeMultiAddress
5
+ * @summary Creates a multisig address.
6
+ * @description
7
+ * Creates a Substrate multisig address based on the input address and the required threshold.
8
+ */
9
+ export function encodeMultiAddress(who, threshold, ss58Format) {
10
+ return encodeAddress(createKeyMulti(who, threshold), ss58Format);
11
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @name addressEq
3
+ * @summary Compares two addresses, either in ss58, Uint8Array or hex format.
4
+ * @description
5
+ * For the input values, return true is the underlying public keys do match.
6
+ * @example
7
+ * <BR>
8
+ *
9
+ * ```javascript
10
+ * import { u8aEq } from '@pezkuwi/util';
11
+ *
12
+ * u8aEq(new Uint8Array([0x68, 0x65]), new Uint8Array([0x68, 0x65])); // true
13
+ * ```
14
+ */
15
+ export declare function addressEq(a: string | Uint8Array, b: string | Uint8Array): boolean;
package/address/eq.js ADDED
@@ -0,0 +1,19 @@
1
+ import { u8aEq } from '@pezkuwi/util';
2
+ import { decodeAddress } from './decode.js';
3
+ /**
4
+ * @name addressEq
5
+ * @summary Compares two addresses, either in ss58, Uint8Array or hex format.
6
+ * @description
7
+ * For the input values, return true is the underlying public keys do match.
8
+ * @example
9
+ * <BR>
10
+ *
11
+ * ```javascript
12
+ * import { u8aEq } from '@pezkuwi/util';
13
+ *
14
+ * u8aEq(new Uint8Array([0x68, 0x65]), new Uint8Array([0x68, 0x65])); // true
15
+ * ```
16
+ */
17
+ export function addressEq(a, b) {
18
+ return u8aEq(decodeAddress(a), decodeAddress(b));
19
+ }
@@ -0,0 +1,7 @@
1
+ import type { HashType } from '../secp256k1/types.js';
2
+ import type { Prefix } from './types.js';
3
+ /**
4
+ * @name evmToAddress
5
+ * @summary Converts an EVM address to its corresponding SS58 address.
6
+ */
7
+ export declare function evmToAddress(evmAddress: string | Uint8Array, ss58Format?: Prefix, hashType?: HashType): string;
@@ -0,0 +1,14 @@
1
+ import { u8aConcat } from '@pezkuwi/util';
2
+ import { hasher } from '../secp256k1/hasher.js';
3
+ import { encodeAddress } from './encode.js';
4
+ /**
5
+ * @name evmToAddress
6
+ * @summary Converts an EVM address to its corresponding SS58 address.
7
+ */
8
+ export function evmToAddress(evmAddress, ss58Format, hashType = 'blake2') {
9
+ const message = u8aConcat('evm:', evmAddress);
10
+ if (message.length !== 24) {
11
+ throw new Error(`Converting ${evmAddress}: Invalid evm address length`);
12
+ }
13
+ return encodeAddress(hasher(hashType, message), ss58Format);
14
+ }
@@ -0,0 +1,16 @@
1
+ export { addressToEvm } from './addressToEvm.js';
2
+ export { checkAddress } from './check.js';
3
+ export { checkAddressChecksum } from './checksum.js';
4
+ export { decodeAddress } from './decode.js';
5
+ export { deriveAddress } from './derive.js';
6
+ export { encodeAddress } from './encode.js';
7
+ export { encodeDerivedAddress } from './encodeDerived.js';
8
+ export { encodeMultiAddress } from './encodeMulti.js';
9
+ export { addressEq } from './eq.js';
10
+ export { evmToAddress } from './evmToAddress.js';
11
+ export { isAddress } from './is.js';
12
+ export { createKeyDerived } from './keyDerived.js';
13
+ export { createKeyMulti } from './keyMulti.js';
14
+ export { sortAddresses } from './sort.js';
15
+ export { validateAddress } from './validate.js';
16
+ export { setSS58Format } from './setSS58Format.js';
@@ -0,0 +1,16 @@
1
+ export { addressToEvm } from './addressToEvm.js';
2
+ export { checkAddress } from './check.js';
3
+ export { checkAddressChecksum } from './checksum.js';
4
+ export { decodeAddress } from './decode.js';
5
+ export { deriveAddress } from './derive.js';
6
+ export { encodeAddress } from './encode.js';
7
+ export { encodeDerivedAddress } from './encodeDerived.js';
8
+ export { encodeMultiAddress } from './encodeMulti.js';
9
+ export { addressEq } from './eq.js';
10
+ export { evmToAddress } from './evmToAddress.js';
11
+ export { isAddress } from './is.js';
12
+ export { createKeyDerived } from './keyDerived.js';
13
+ export { createKeyMulti } from './keyMulti.js';
14
+ export { sortAddresses } from './sort.js';
15
+ export { validateAddress } from './validate.js';
16
+ export { setSS58Format } from './setSS58Format.js';
@@ -0,0 +1,2 @@
1
+ import type { Prefix } from './types.js';
2
+ export declare function isAddress(address?: string | null, ignoreChecksum?: boolean, ss58Format?: Prefix): address is string;
package/address/is.js ADDED
@@ -0,0 +1,9 @@
1
+ import { validateAddress } from './validate.js';
2
+ export function isAddress(address, ignoreChecksum, ss58Format) {
3
+ try {
4
+ return validateAddress(address, ignoreChecksum, ss58Format);
5
+ }
6
+ catch {
7
+ return false;
8
+ }
9
+ }
@@ -0,0 +1,2 @@
1
+ import type { BN } from '@pezkuwi/util';
2
+ export declare function createKeyDerived(who: string | Uint8Array, index: bigint | BN | number): Uint8Array;
@@ -0,0 +1,8 @@
1
+ import { bnToU8a, stringToU8a, u8aConcat } from '@pezkuwi/util';
2
+ import { blake2AsU8a } from '../blake2/asU8a.js';
3
+ import { BN_LE_16_OPTS } from '../bn.js';
4
+ import { decodeAddress } from './decode.js';
5
+ const PREFIX = stringToU8a('modlpy/utilisuba');
6
+ export function createKeyDerived(who, index) {
7
+ return blake2AsU8a(u8aConcat(PREFIX, decodeAddress(who), bnToU8a(index, BN_LE_16_OPTS)));
8
+ }
@@ -0,0 +1,2 @@
1
+ import type { BN } from '@pezkuwi/util';
2
+ export declare function createKeyMulti(who: (string | Uint8Array)[], threshold: bigint | BN | number): Uint8Array;
@@ -0,0 +1,8 @@
1
+ import { bnToU8a, compactToU8a, stringToU8a, u8aConcat, u8aSorted } from '@pezkuwi/util';
2
+ import { blake2AsU8a } from '../blake2/asU8a.js';
3
+ import { BN_LE_16_OPTS } from '../bn.js';
4
+ import { addressToU8a } from './util.js';
5
+ const PREFIX = stringToU8a('modlpy/utilisuba');
6
+ export function createKeyMulti(who, threshold) {
7
+ return blake2AsU8a(u8aConcat(PREFIX, compactToU8a(who.length), ...u8aSorted(who.map(addressToU8a)), bnToU8a(threshold, BN_LE_16_OPTS)));
8
+ }
@@ -0,0 +1,6 @@
1
+ import type { Prefix } from './types.js';
2
+ /**
3
+ * @description Sets the global SS58 format to use for address encoding
4
+ * @deprecated Use keyring.setSS58Format
5
+ */
6
+ export declare function setSS58Format(prefix: Prefix): void;
@@ -0,0 +1,11 @@
1
+ import { logger } from '@pezkuwi/util';
2
+ import { defaults } from './defaults.js';
3
+ const l = logger('setSS58Format');
4
+ /**
5
+ * @description Sets the global SS58 format to use for address encoding
6
+ * @deprecated Use keyring.setSS58Format
7
+ */
8
+ export function setSS58Format(prefix) {
9
+ l.warn('Global setting of the ss58Format is deprecated and not recommended. Set format on the keyring (if used) or as part of the address encode function');
10
+ defaults.prefix = prefix;
11
+ }
@@ -0,0 +1,2 @@
1
+ import type { Prefix } from './types.js';
2
+ export declare function sortAddresses(addresses: (string | Uint8Array)[], ss58Format?: Prefix): string[];
@@ -0,0 +1,7 @@
1
+ import { u8aSorted } from '@pezkuwi/util';
2
+ import { encodeAddress } from './encode.js';
3
+ import { addressToU8a } from './util.js';
4
+ export function sortAddresses(addresses, ss58Format) {
5
+ const u8aToAddress = (u8a) => encodeAddress(u8a, ss58Format);
6
+ return u8aSorted(addresses.map(addressToU8a)).map(u8aToAddress);
7
+ }
@@ -0,0 +1 @@
1
+ export declare function sshash(key: Uint8Array): Uint8Array;
@@ -0,0 +1,6 @@
1
+ import { stringToU8a, u8aConcat } from '@pezkuwi/util';
2
+ import { blake2AsU8a } from '../blake2/asU8a.js';
3
+ const SS58_PREFIX = stringToU8a('SS58PRE');
4
+ export function sshash(key) {
5
+ return blake2AsU8a(u8aConcat(SS58_PREFIX, key), 512);
6
+ }
@@ -0,0 +1 @@
1
+ export type Prefix = number;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export declare function addressToU8a(who: string | Uint8Array): Uint8Array;
@@ -0,0 +1,4 @@
1
+ import { decodeAddress } from './decode.js';
2
+ export function addressToU8a(who) {
3
+ return decodeAddress(who);
4
+ }
@@ -0,0 +1,2 @@
1
+ import type { Prefix } from './types.js';
2
+ export declare function validateAddress(encoded?: string | null, ignoreChecksum?: boolean, ss58Format?: Prefix): encoded is string;
@@ -0,0 +1,4 @@
1
+ import { decodeAddress } from './decode.js';
2
+ export function validateAddress(encoded, ignoreChecksum, ss58Format) {
3
+ return !!decodeAddress(encoded, ignoreChecksum, ss58Format);
4
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @name base32Validate
3
+ * @summary Validates a base32 value.
4
+ * @description
5
+ * Validates that the supplied value is valid base32, throwing exceptions if not
6
+ */
7
+ export declare const base32Validate: (value?: unknown, ipfsCompat?: boolean) => value is string;
8
+ /**
9
+ * @name isBase32
10
+ * @description Checks if the input is in base32, returning true/false
11
+ */
12
+ export declare const isBase32: (value?: unknown, ipfsCompat?: boolean) => value is string;
13
+ /**
14
+ * @name base32Decode
15
+ * @summary Delookup a base32 value.
16
+ * @description
17
+ * From the provided input, decode the base32 and return the result as an `Uint8Array`.
18
+ */
19
+ export declare const base32Decode: (value: string, ipfsCompat?: boolean) => Uint8Array;
20
+ /**
21
+ * @name base32Encode
22
+ * @summary Creates a base32 value.
23
+ * @description
24
+ * From the provided input, create the base32 and return the result as a string.
25
+ */
26
+ export declare const base32Encode: (value: import("@pezkuwi/util/types").U8aLike, ipfsCompat?: boolean) => string;
package/base32/bs32.js ADDED
@@ -0,0 +1,40 @@
1
+ import { utils } from '@scure/base';
2
+ import { createDecode, createEncode, createIs, createValidate } from './helpers.js';
3
+ const chars = 'abcdefghijklmnopqrstuvwxyz234567';
4
+ const config = {
5
+ chars,
6
+ coder: utils.chain(
7
+ // We define our own chain, the default base32 has padding
8
+ utils.radix2(5), utils.alphabet(chars), {
9
+ decode: (input) => input.split(''),
10
+ encode: (input) => input.join('')
11
+ }),
12
+ ipfs: 'b',
13
+ type: 'base32'
14
+ };
15
+ /**
16
+ * @name base32Validate
17
+ * @summary Validates a base32 value.
18
+ * @description
19
+ * Validates that the supplied value is valid base32, throwing exceptions if not
20
+ */
21
+ export const base32Validate = /*#__PURE__*/ createValidate(config);
22
+ /**
23
+ * @name isBase32
24
+ * @description Checks if the input is in base32, returning true/false
25
+ */
26
+ export const isBase32 = /*#__PURE__*/ createIs(base32Validate);
27
+ /**
28
+ * @name base32Decode
29
+ * @summary Delookup a base32 value.
30
+ * @description
31
+ * From the provided input, decode the base32 and return the result as an `Uint8Array`.
32
+ */
33
+ export const base32Decode = /*#__PURE__*/ createDecode(config, base32Validate);
34
+ /**
35
+ * @name base32Encode
36
+ * @summary Creates a base32 value.
37
+ * @description
38
+ * From the provided input, create the base32 and return the result as a string.
39
+ */
40
+ export const base32Encode = /*#__PURE__*/ createEncode(config);
@@ -0,0 +1,25 @@
1
+ import type { U8aLike } from '@pezkuwi/util/types';
2
+ export type { U8aLike } from '@pezkuwi/util/types';
3
+ interface Coder {
4
+ decode: (value: string) => Uint8Array;
5
+ encode: (value: Uint8Array) => string;
6
+ }
7
+ interface Config {
8
+ chars: string;
9
+ coder: Coder;
10
+ ipfs?: string;
11
+ regex?: RegExp;
12
+ type: string;
13
+ withPadding?: boolean;
14
+ }
15
+ type DecodeFn = (value: string, ipfsCompat?: boolean) => Uint8Array;
16
+ type EncodeFn = (value: U8aLike, ipfsCompat?: boolean) => string;
17
+ type ValidateFn = (value?: unknown, ipfsCompat?: boolean) => value is string;
18
+ /** @internal */
19
+ export declare function createDecode({ coder, ipfs }: Config, validate: ValidateFn): DecodeFn;
20
+ /** @internal */
21
+ export declare function createEncode({ coder, ipfs }: Config): EncodeFn;
22
+ /** @internal */
23
+ export declare function createIs(validate: ValidateFn): ValidateFn;
24
+ /** @internal */
25
+ export declare function createValidate({ chars, ipfs, type, withPadding }: Config): ValidateFn;
@@ -0,0 +1,61 @@
1
+ import { u8aToU8a } from '@pezkuwi/util';
2
+ /** @internal */
3
+ export function createDecode({ coder, ipfs }, validate) {
4
+ return (value, ipfsCompat) => {
5
+ validate(value, ipfsCompat);
6
+ return coder.decode(ipfs && ipfsCompat
7
+ ? value.substring(1)
8
+ : value);
9
+ };
10
+ }
11
+ /** @internal */
12
+ export function createEncode({ coder, ipfs }) {
13
+ return (value, ipfsCompat) => {
14
+ const out = coder.encode(u8aToU8a(value));
15
+ return ipfs && ipfsCompat
16
+ ? `${ipfs}${out}`
17
+ : out;
18
+ };
19
+ }
20
+ /** @internal */
21
+ export function createIs(validate) {
22
+ return (value, ipfsCompat) => {
23
+ try {
24
+ return validate(value, ipfsCompat);
25
+ }
26
+ catch {
27
+ return false;
28
+ }
29
+ };
30
+ }
31
+ /** @internal */
32
+ export function createValidate({ chars, ipfs, type, withPadding }) {
33
+ return (value, ipfsCompat) => {
34
+ if (typeof value !== 'string') {
35
+ throw new Error(`Expected ${type} string input`);
36
+ }
37
+ else if (ipfs && ipfsCompat && !value.startsWith(ipfs)) {
38
+ throw new Error(`Expected ipfs-compatible ${type} to start with '${ipfs}'`);
39
+ }
40
+ for (let i = (ipfsCompat ? 1 : 0), count = value.length; i < count; i++) {
41
+ if (chars.includes(value[i])) {
42
+ // all ok, character found
43
+ }
44
+ else if (withPadding && value[i] === '=') {
45
+ if (i === count - 1) {
46
+ // last character, everything ok
47
+ }
48
+ else if (value[i + 1] === '=') {
49
+ // next one is also padding, sequence ok
50
+ }
51
+ else {
52
+ throw new Error(`Invalid ${type} padding sequence "${value[i]}${value[i + 1]}" at index ${i}`);
53
+ }
54
+ }
55
+ else {
56
+ throw new Error(`Invalid ${type} character "${value[i]}" (0x${value.charCodeAt(i).toString(16)}) at index ${i}`);
57
+ }
58
+ }
59
+ return true;
60
+ };
61
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @summary Encode and decode base32 values
3
+ */
4
+ export { base32Decode, base32Encode, base32Validate, isBase32 } from './bs32.js';
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @summary Encode and decode base32 values
3
+ */
4
+ export { base32Decode, base32Encode, base32Validate, isBase32 } from './bs32.js';