@pezkuwi/util-crypto 14.0.5 → 14.0.6
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.
- package/README.md +4 -4
- package/build/README.md +17 -0
- package/build/address/addressToEvm.js +8 -0
- package/build/address/check.js +26 -0
- package/build/address/checksum.js +16 -0
- package/build/address/decode.js +29 -0
- package/build/address/defaults.js +8 -0
- package/build/address/derive.js +24 -0
- package/build/address/encode.js +23 -0
- package/build/address/encodeDerived.d.ts +9 -0
- package/build/address/encodeDerived.js +12 -0
- package/build/address/encodeMulti.d.ts +9 -0
- package/build/address/encodeMulti.js +11 -0
- package/build/address/eq.d.ts +15 -0
- package/build/address/eq.js +19 -0
- package/build/address/evmToAddress.js +14 -0
- package/build/address/index.js +16 -0
- package/build/address/is.js +9 -0
- package/build/address/keyDerived.d.ts +2 -0
- package/build/address/keyDerived.js +8 -0
- package/build/address/keyMulti.d.ts +2 -0
- package/build/address/keyMulti.js +8 -0
- package/build/address/setSS58Format.js +11 -0
- package/build/address/sort.js +7 -0
- package/build/address/sshash.js +6 -0
- package/build/address/util.js +4 -0
- package/build/address/validate.js +4 -0
- package/build/base32/bs32.d.ts +26 -0
- package/build/base32/bs32.js +40 -0
- package/build/base32/helpers.d.ts +25 -0
- package/build/base32/helpers.js +61 -0
- package/build/base32/index.js +4 -0
- package/build/base58/bs58.d.ts +26 -0
- package/build/base58/bs58.js +34 -0
- package/build/base58/index.js +4 -0
- package/build/base64/bs64.d.ts +26 -0
- package/build/base64/bs64.js +34 -0
- package/build/base64/index.js +6 -0
- package/build/base64/pad.js +7 -0
- package/build/base64/trim.js +10 -0
- package/build/blake2/asU8a.d.ts +20 -0
- package/build/blake2/asU8a.js +32 -0
- package/build/blake2/index.js +4 -0
- package/build/bn.js +8 -0
- package/build/bundle-pezkuwi-util-crypto.js +11813 -0
- package/build/bundle.js +26 -0
- package/build/bundleInit.d.ts +1 -0
- package/build/bundleInit.js +5 -0
- package/build/cjs/address/addressToEvm.d.ts +5 -0
- package/build/cjs/address/addressToEvm.js +11 -0
- package/build/cjs/address/check.d.ts +8 -0
- package/build/cjs/address/check.js +29 -0
- package/build/cjs/address/checksum.d.ts +1 -0
- package/build/cjs/address/checksum.js +19 -0
- package/build/cjs/address/decode.d.ts +2 -0
- package/build/cjs/address/decode.js +32 -0
- package/build/cjs/address/defaults.d.ts +6 -0
- package/build/cjs/address/defaults.js +11 -0
- package/build/cjs/address/derive.d.ts +8 -0
- package/build/cjs/address/derive.js +27 -0
- package/build/cjs/address/encode.d.ts +2 -0
- package/build/cjs/address/encode.js +26 -0
- package/build/cjs/address/encodeDerived.d.ts +9 -0
- package/build/cjs/address/encodeDerived.js +15 -0
- package/build/cjs/address/encodeMulti.d.ts +9 -0
- package/build/cjs/address/encodeMulti.js +14 -0
- package/build/cjs/address/eq.d.ts +15 -0
- package/build/cjs/address/eq.js +22 -0
- package/build/cjs/address/evmToAddress.d.ts +7 -0
- package/build/cjs/address/evmToAddress.js +17 -0
- package/build/cjs/address/index.d.ts +16 -0
- package/build/cjs/address/index.js +35 -0
- package/build/cjs/address/is.d.ts +2 -0
- package/build/cjs/address/is.js +12 -0
- package/build/cjs/address/keyDerived.d.ts +2 -0
- package/build/cjs/address/keyDerived.js +11 -0
- package/build/cjs/address/keyMulti.d.ts +2 -0
- package/build/cjs/address/keyMulti.js +11 -0
- package/build/cjs/address/setSS58Format.d.ts +6 -0
- package/build/cjs/address/setSS58Format.js +14 -0
- package/build/cjs/address/sort.d.ts +2 -0
- package/build/cjs/address/sort.js +10 -0
- package/build/cjs/address/sshash.d.ts +1 -0
- package/build/cjs/address/sshash.js +9 -0
- package/build/cjs/address/types.d.ts +1 -0
- package/build/cjs/address/types.js +2 -0
- package/build/cjs/address/util.d.ts +1 -0
- package/build/cjs/address/util.js +7 -0
- package/build/cjs/address/validate.d.ts +2 -0
- package/build/cjs/address/validate.js +7 -0
- package/build/cjs/base32/bs32.d.ts +26 -0
- package/build/cjs/base32/bs32.js +43 -0
- package/build/cjs/base32/helpers.d.ts +25 -0
- package/build/cjs/base32/helpers.js +67 -0
- package/build/cjs/base32/index.d.ts +4 -0
- package/build/cjs/base32/index.js +11 -0
- package/build/cjs/base58/bs58.d.ts +26 -0
- package/build/cjs/base58/bs58.js +37 -0
- package/build/cjs/base58/index.d.ts +4 -0
- package/build/cjs/base58/index.js +11 -0
- package/build/cjs/base64/bs64.d.ts +26 -0
- package/build/cjs/base64/bs64.js +37 -0
- package/build/cjs/base64/index.d.ts +6 -0
- package/build/cjs/base64/index.js +15 -0
- package/build/cjs/base64/pad.d.ts +5 -0
- package/build/cjs/base64/pad.js +10 -0
- package/build/cjs/base64/trim.d.ts +5 -0
- package/build/cjs/base64/trim.js +13 -0
- package/build/cjs/blake2/asU8a.d.ts +20 -0
- package/build/cjs/blake2/asU8a.js +36 -0
- package/build/cjs/blake2/index.d.ts +4 -0
- package/build/cjs/blake2/index.js +9 -0
- package/build/cjs/bn.d.ts +30 -0
- package/build/cjs/bn.js +11 -0
- package/build/cjs/bundle.d.ts +26 -0
- package/build/cjs/bundle.js +31 -0
- package/build/cjs/bundleInit.d.ts +1 -0
- package/build/cjs/bundleInit.js +7 -0
- package/build/cjs/crypto.d.ts +3 -0
- package/build/cjs/crypto.js +16 -0
- package/build/cjs/ed25519/deriveHard.js +12 -0
- package/build/cjs/ed25519/index.js +20 -0
- package/build/cjs/ed25519/pair/fromRandom.d.ts +16 -0
- package/build/cjs/ed25519/pair/fromRandom.js +22 -0
- package/build/cjs/ed25519/pair/fromSecret.d.ts +16 -0
- package/build/cjs/ed25519/pair/fromSecret.js +26 -0
- package/build/cjs/ed25519/pair/fromSeed.d.ts +16 -0
- package/build/cjs/ed25519/pair/fromSeed.js +34 -0
- package/build/cjs/ed25519/pair/fromString.d.ts +16 -0
- package/build/cjs/ed25519/pair/fromString.js +23 -0
- package/build/cjs/ed25519/sign.d.ts +16 -0
- package/build/cjs/ed25519/sign.js +33 -0
- package/build/cjs/ed25519/verify.d.ts +15 -0
- package/build/cjs/ed25519/verify.js +39 -0
- package/build/cjs/ethereum/encode.d.ts +2 -0
- package/build/cjs/ethereum/encode.js +28 -0
- package/build/cjs/ethereum/index.js +9 -0
- package/build/cjs/ethereum/isAddress.js +14 -0
- package/build/cjs/ethereum/isChecksum.js +20 -0
- package/build/cjs/hd/ethereum/index.js +47 -0
- package/build/cjs/hd/index.js +9 -0
- package/build/cjs/hd/ledger/derivePrivate.js +15 -0
- package/build/cjs/hd/ledger/index.js +33 -0
- package/build/cjs/hd/ledger/master.js +19 -0
- package/build/cjs/hd/validatePath.js +20 -0
- package/build/cjs/helpers.d.ts +12 -0
- package/build/cjs/helpers.js +24 -0
- package/build/cjs/hmac/index.js +7 -0
- package/build/cjs/hmac/shaAsU8a.js +40 -0
- package/build/cjs/index.js +5 -0
- package/build/cjs/json/constants.js +8 -0
- package/build/cjs/json/decrypt.js +16 -0
- package/build/cjs/json/decryptData.js +32 -0
- package/build/cjs/json/encrypt.js +18 -0
- package/build/cjs/json/encryptFormat.js +17 -0
- package/build/cjs/json/index.js +11 -0
- package/build/cjs/json/types.js +2 -0
- package/build/cjs/keccak/asU8a.d.ts +30 -0
- package/build/cjs/keccak/asU8a.js +36 -0
- package/build/cjs/keccak/index.js +11 -0
- package/build/cjs/key/DeriveJunction.d.ts +12 -0
- package/build/cjs/key/DeriveJunction.js +62 -0
- package/build/cjs/key/extractPath.js +26 -0
- package/build/cjs/key/extractSuri.js +25 -0
- package/build/cjs/key/fromPath.js +21 -0
- package/build/cjs/key/hdkdDerive.js +11 -0
- package/build/cjs/key/hdkdEcdsa.js +7 -0
- package/build/cjs/key/hdkdEd25519.js +6 -0
- package/build/cjs/key/hdkdSr25519.js +10 -0
- package/build/cjs/key/index.js +18 -0
- package/build/cjs/mnemonic/bip39.js +90 -0
- package/build/cjs/mnemonic/generate.d.ts +13 -0
- package/build/cjs/mnemonic/generate.js +23 -0
- package/build/cjs/mnemonic/index.js +16 -0
- package/build/cjs/mnemonic/toEntropy.js +11 -0
- package/build/cjs/mnemonic/toLegacySeed.d.ts +18 -0
- package/build/cjs/mnemonic/toLegacySeed.js +37 -0
- package/build/cjs/mnemonic/toMiniSecret.js +20 -0
- package/build/cjs/mnemonic/validate.d.ts +14 -0
- package/build/cjs/mnemonic/validate.js +24 -0
- package/build/cjs/mnemonic/wordlists/en.js +3 -0
- package/build/cjs/mnemonic/wordlists/es.js +3 -0
- package/build/cjs/mnemonic/wordlists/fr.js +3 -0
- package/build/cjs/mnemonic/wordlists/index.js +20 -0
- package/build/cjs/mnemonic/wordlists/it.js +3 -0
- package/build/cjs/mnemonic/wordlists/jp.js +3 -0
- package/build/cjs/mnemonic/wordlists/ko.js +3 -0
- package/build/cjs/mnemonic/wordlists/zh-s.js +3 -0
- package/build/cjs/mnemonic/wordlists/zh-t.js +3 -0
- package/build/cjs/nacl/decrypt.d.ts +15 -0
- package/build/cjs/nacl/decrypt.js +21 -0
- package/build/cjs/nacl/encrypt.d.ts +20 -0
- package/build/cjs/nacl/encrypt.js +25 -0
- package/build/cjs/nacl/index.js +10 -0
- package/build/cjs/nacl/tweetnacl.js +238 -0
- package/build/cjs/networks.d.ts +1 -0
- package/build/cjs/networks.js +7 -0
- package/build/cjs/packageDetect.d.ts +1 -0
- package/build/cjs/packageInfo.js +4 -0
- package/build/cjs/pbkdf2/encode.js +19 -0
- package/build/cjs/pbkdf2/index.js +5 -0
- package/build/cjs/random/asNumber.d.ts +15 -0
- package/build/cjs/random/asNumber.js +23 -0
- package/build/cjs/random/asU8a.d.ts +20 -0
- package/build/cjs/random/asU8a.js +28 -0
- package/build/cjs/random/index.js +11 -0
- package/build/cjs/scrypt/defaults.js +16 -0
- package/build/cjs/scrypt/encode.js +18 -0
- package/build/cjs/scrypt/fromU8a.js +27 -0
- package/build/cjs/scrypt/index.js +9 -0
- package/build/cjs/scrypt/toU8a.js +8 -0
- package/build/cjs/scrypt/types.js +2 -0
- package/build/cjs/secp256k1/compress.js +17 -0
- package/build/cjs/secp256k1/deriveHard.js +13 -0
- package/build/cjs/secp256k1/expand.js +20 -0
- package/build/cjs/secp256k1/hasher.js +10 -0
- package/build/cjs/secp256k1/index.js +17 -0
- package/build/cjs/secp256k1/pair/fromSeed.js +34 -0
- package/build/cjs/secp256k1/recover.js +29 -0
- package/build/cjs/secp256k1/sign.js +23 -0
- package/build/cjs/secp256k1/tweakAdd.js +48 -0
- package/build/cjs/secp256k1/types.js +2 -0
- package/build/cjs/secp256k1/verify.js +23 -0
- package/build/cjs/sha/asU8a.js +22 -0
- package/build/cjs/sha/index.js +10 -0
- package/build/cjs/signature/index.js +8 -0
- package/build/cjs/signature/verify.js +81 -0
- package/build/cjs/sr25519/agreement.js +20 -0
- package/build/cjs/sr25519/derive.js +16 -0
- package/build/cjs/sr25519/deriveHard.js +7 -0
- package/build/cjs/sr25519/derivePublic.js +16 -0
- package/build/cjs/sr25519/deriveSoft.js +7 -0
- package/build/cjs/sr25519/index.js +21 -0
- package/build/cjs/sr25519/pair/fromSeed.js +22 -0
- package/build/cjs/sr25519/pair/fromU8a.js +17 -0
- package/build/cjs/sr25519/pair/toU8a.js +7 -0
- package/build/cjs/sr25519/sign.js +19 -0
- package/build/cjs/sr25519/verify.js +21 -0
- package/build/cjs/sr25519/vrfSign.js +19 -0
- package/build/cjs/sr25519/vrfVerify.js +22 -0
- package/build/cjs/types.js +5 -0
- package/build/cjs/xxhash/asU8a.d.ts +20 -0
- package/build/cjs/xxhash/asU8a.js +39 -0
- package/build/cjs/xxhash/index.js +9 -0
- package/build/cjs/xxhash/xxhash64.js +103 -0
- package/build/crypto.d.ts +3 -0
- package/build/crypto.js +12 -0
- package/build/ed25519/deriveHard.d.ts +1 -0
- package/build/ed25519/deriveHard.js +9 -0
- package/build/ed25519/index.d.ts +10 -0
- package/build/ed25519/index.js +10 -0
- package/build/ed25519/pair/fromRandom.d.ts +16 -0
- package/build/ed25519/pair/fromRandom.js +19 -0
- package/build/ed25519/pair/fromSecret.d.ts +16 -0
- package/build/ed25519/pair/fromSecret.js +23 -0
- package/build/ed25519/pair/fromSeed.d.ts +16 -0
- package/build/ed25519/pair/fromSeed.js +31 -0
- package/build/ed25519/pair/fromString.d.ts +16 -0
- package/build/ed25519/pair/fromString.js +20 -0
- package/build/ed25519/sign.d.ts +16 -0
- package/build/ed25519/sign.js +30 -0
- package/build/ed25519/verify.d.ts +15 -0
- package/build/ed25519/verify.js +36 -0
- package/build/ethereum/encode.d.ts +2 -0
- package/build/ethereum/encode.js +25 -0
- package/build/ethereum/index.d.ts +3 -0
- package/build/ethereum/index.js +3 -0
- package/build/ethereum/isAddress.d.ts +1 -0
- package/build/ethereum/isAddress.js +11 -0
- package/build/ethereum/isChecksum.d.ts +1 -0
- package/build/ethereum/isChecksum.js +17 -0
- package/build/hd/ethereum/index.d.ts +2 -0
- package/build/hd/ethereum/index.js +44 -0
- package/build/hd/index.d.ts +3 -0
- package/build/hd/index.js +3 -0
- package/build/hd/ledger/derivePrivate.d.ts +1 -0
- package/build/hd/ledger/derivePrivate.js +12 -0
- package/build/hd/ledger/index.d.ts +2 -0
- package/build/hd/ledger/index.js +30 -0
- package/build/hd/ledger/master.d.ts +1 -0
- package/build/hd/ledger/master.js +16 -0
- package/build/hd/validatePath.d.ts +2 -0
- package/build/hd/validatePath.js +16 -0
- package/build/helpers.d.ts +12 -0
- package/build/helpers.js +19 -0
- package/build/hmac/index.d.ts +1 -0
- package/build/hmac/index.js +1 -0
- package/build/hmac/shaAsU8a.d.ts +15 -0
- package/build/hmac/shaAsU8a.js +36 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +2 -0
- package/build/json/constants.d.ts +6 -0
- package/build/json/constants.js +5 -0
- package/build/json/decrypt.d.ts +2 -0
- package/build/json/decrypt.js +13 -0
- package/build/json/decryptData.d.ts +2 -0
- package/build/json/decryptData.js +29 -0
- package/build/json/encrypt.d.ts +2 -0
- package/build/json/encrypt.js +15 -0
- package/build/json/encryptFormat.d.ts +2 -0
- package/build/json/encryptFormat.js +14 -0
- package/build/json/index.d.ts +4 -0
- package/build/json/index.js +4 -0
- package/build/json/types.d.ts +16 -0
- package/build/json/types.js +1 -0
- package/build/keccak/asU8a.d.ts +30 -0
- package/build/keccak/asU8a.js +33 -0
- package/build/keccak/index.d.ts +4 -0
- package/build/keccak/index.js +4 -0
- package/build/key/DeriveJunction.d.ts +12 -0
- package/build/key/DeriveJunction.js +58 -0
- package/build/key/extractPath.d.ts +9 -0
- package/build/key/extractPath.js +23 -0
- package/build/key/extractSuri.d.ts +11 -0
- package/build/key/extractSuri.js +22 -0
- package/build/key/fromPath.d.ts +3 -0
- package/build/key/fromPath.js +18 -0
- package/build/key/hdkdDerive.d.ts +3 -0
- package/build/key/hdkdDerive.js +8 -0
- package/build/key/hdkdEcdsa.d.ts +1 -0
- package/build/key/hdkdEcdsa.js +4 -0
- package/build/key/hdkdEd25519.d.ts +1 -0
- package/build/key/hdkdEd25519.js +3 -0
- package/build/key/hdkdSr25519.d.ts +3 -0
- package/build/key/hdkdSr25519.js +7 -0
- package/build/key/index.d.ts +9 -0
- package/build/key/index.js +9 -0
- package/build/mnemonic/bip39.d.ts +5 -0
- package/build/mnemonic/bip39.js +82 -0
- package/build/mnemonic/generate.d.ts +13 -0
- package/build/mnemonic/generate.js +20 -0
- package/build/mnemonic/index.d.ts +8 -0
- package/build/mnemonic/index.js +8 -0
- package/build/mnemonic/toEntropy.d.ts +1 -0
- package/build/mnemonic/toEntropy.js +8 -0
- package/build/mnemonic/toLegacySeed.d.ts +18 -0
- package/build/mnemonic/toLegacySeed.js +34 -0
- package/build/mnemonic/toMiniSecret.d.ts +1 -0
- package/build/mnemonic/toMiniSecret.js +17 -0
- package/build/mnemonic/validate.d.ts +14 -0
- package/build/mnemonic/validate.js +21 -0
- package/build/mnemonic/wordlists/en.d.ts +2 -0
- package/build/mnemonic/wordlists/en.js +1 -0
- package/build/mnemonic/wordlists/es.d.ts +2 -0
- package/build/mnemonic/wordlists/es.js +1 -0
- package/build/mnemonic/wordlists/fr.d.ts +2 -0
- package/build/mnemonic/wordlists/fr.js +1 -0
- package/build/mnemonic/wordlists/index.d.ts +8 -0
- package/build/mnemonic/wordlists/index.js +8 -0
- package/build/mnemonic/wordlists/it.d.ts +2 -0
- package/build/mnemonic/wordlists/it.js +1 -0
- package/build/mnemonic/wordlists/jp.d.ts +2 -0
- package/build/mnemonic/wordlists/jp.js +1 -0
- package/build/mnemonic/wordlists/ko.d.ts +2 -0
- package/build/mnemonic/wordlists/ko.js +1 -0
- package/build/mnemonic/wordlists/zh-s.d.ts +2 -0
- package/build/mnemonic/wordlists/zh-s.js +1 -0
- package/build/mnemonic/wordlists/zh-t.d.ts +2 -0
- package/build/mnemonic/wordlists/zh-t.js +1 -0
- package/build/nacl/decrypt.d.ts +15 -0
- package/build/nacl/decrypt.js +18 -0
- package/build/nacl/encrypt.d.ts +20 -0
- package/build/nacl/encrypt.js +22 -0
- package/build/nacl/index.d.ts +5 -0
- package/build/nacl/index.js +5 -0
- package/build/nacl/tweetnacl.d.ts +2 -0
- package/build/nacl/tweetnacl.js +234 -0
- package/build/networks.d.ts +1 -0
- package/build/networks.js +1 -0
- package/build/package.json +2057 -0
- package/build/packageDetect.d.ts +1 -0
- package/build/packageDetect.js +6 -0
- package/build/packageInfo.d.ts +6 -0
- package/build/packageInfo.js +1 -0
- package/build/pbkdf2/encode.d.ts +7 -0
- package/build/pbkdf2/encode.js +16 -0
- package/build/pbkdf2/index.d.ts +1 -0
- package/build/pbkdf2/index.js +1 -0
- package/build/random/asNumber.d.ts +15 -0
- package/build/random/asNumber.js +20 -0
- package/build/random/asU8a.d.ts +20 -0
- package/build/random/asU8a.js +24 -0
- package/build/random/index.d.ts +5 -0
- package/build/random/index.js +5 -0
- package/build/scrypt/defaults.d.ts +3 -0
- package/build/scrypt/defaults.js +13 -0
- package/build/scrypt/encode.d.ts +8 -0
- package/build/scrypt/encode.js +15 -0
- package/build/scrypt/fromU8a.d.ts +7 -0
- package/build/scrypt/fromU8a.js +24 -0
- package/build/scrypt/index.d.ts +3 -0
- package/build/scrypt/index.js +3 -0
- package/build/scrypt/toU8a.d.ts +2 -0
- package/build/scrypt/toU8a.js +5 -0
- package/build/scrypt/types.d.ts +6 -0
- package/build/scrypt/types.js +1 -0
- package/build/secp256k1/compress.d.ts +1 -0
- package/build/secp256k1/compress.js +14 -0
- package/build/secp256k1/deriveHard.d.ts +1 -0
- package/build/secp256k1/deriveHard.js +10 -0
- package/build/secp256k1/expand.d.ts +1 -0
- package/build/secp256k1/expand.js +17 -0
- package/build/secp256k1/hasher.d.ts +2 -0
- package/build/secp256k1/hasher.js +7 -0
- package/build/secp256k1/index.d.ts +7 -0
- package/build/secp256k1/index.js +7 -0
- package/build/secp256k1/pair/fromSeed.d.ts +6 -0
- package/build/secp256k1/pair/fromSeed.js +31 -0
- package/build/secp256k1/recover.d.ts +6 -0
- package/build/secp256k1/recover.js +26 -0
- package/build/secp256k1/sign.d.ts +7 -0
- package/build/secp256k1/sign.js +20 -0
- package/build/secp256k1/tweakAdd.d.ts +1 -0
- package/build/secp256k1/tweakAdd.js +45 -0
- package/build/secp256k1/types.d.ts +1 -0
- package/build/secp256k1/types.js +1 -0
- package/build/secp256k1/verify.d.ts +6 -0
- package/build/secp256k1/verify.js +20 -0
- package/build/sha/asU8a.d.ts +15 -0
- package/build/sha/asU8a.js +19 -0
- package/build/sha/index.d.ts +4 -0
- package/build/sha/index.js +4 -0
- package/build/signature/index.d.ts +4 -0
- package/build/signature/index.js +4 -0
- package/build/signature/verify.d.ts +2 -0
- package/build/signature/verify.js +78 -0
- package/build/sr25519/agreement.d.ts +5 -0
- package/build/sr25519/agreement.js +17 -0
- package/build/sr25519/derive.d.ts +2 -0
- package/build/sr25519/derive.js +12 -0
- package/build/sr25519/deriveHard.d.ts +1 -0
- package/build/sr25519/deriveHard.js +3 -0
- package/build/sr25519/derivePublic.d.ts +1 -0
- package/build/sr25519/derivePublic.js +12 -0
- package/build/sr25519/deriveSoft.d.ts +1 -0
- package/build/sr25519/deriveSoft.js +3 -0
- package/build/sr25519/index.d.ts +9 -0
- package/build/sr25519/index.js +9 -0
- package/build/sr25519/pair/fromSeed.d.ts +6 -0
- package/build/sr25519/pair/fromSeed.js +18 -0
- package/build/sr25519/pair/fromU8a.d.ts +2 -0
- package/build/sr25519/pair/fromU8a.js +14 -0
- package/build/sr25519/pair/toU8a.d.ts +2 -0
- package/build/sr25519/pair/toU8a.js +4 -0
- package/build/sr25519/sign.d.ts +6 -0
- package/build/sr25519/sign.js +15 -0
- package/build/sr25519/verify.d.ts +5 -0
- package/build/sr25519/verify.js +17 -0
- package/build/sr25519/vrfSign.d.ts +6 -0
- package/build/sr25519/vrfSign.js +15 -0
- package/build/sr25519/vrfVerify.d.ts +5 -0
- package/build/sr25519/vrfVerify.js +18 -0
- package/build/types.d.ts +26 -0
- package/build/types.js +2 -0
- package/build/xxhash/asU8a.d.ts +20 -0
- package/build/xxhash/asU8a.js +35 -0
- package/build/xxhash/index.d.ts +4 -0
- package/build/xxhash/index.js +4 -0
- package/build/xxhash/xxhash64.d.ts +1 -0
- package/build/xxhash/xxhash64.js +100 -0
- package/build-deno/README.md +17 -0
- package/build-deno/address/addressToEvm.ts +10 -0
- package/build-deno/address/check.ts +32 -0
- package/build-deno/address/checksum.ts +23 -0
- package/build-deno/address/decode.ts +38 -0
- package/build-deno/address/defaults.ts +10 -0
- package/build-deno/address/derive.ts +34 -0
- package/build-deno/address/encode.ts +39 -0
- package/build-deno/address/encodeDerived.ts +17 -0
- package/build-deno/address/encodeMulti.ts +16 -0
- package/build-deno/address/eq.ts +22 -0
- package/build-deno/address/evmToAddress.ts +22 -0
- package/build-deno/address/index.ts +18 -0
- package/build-deno/address/is.ts +12 -0
- package/build-deno/address/keyDerived.ts +20 -0
- package/build-deno/address/keyMulti.ts +21 -0
- package/build-deno/address/setSS58Format.ts +18 -0
- package/build-deno/address/sort.ts +15 -0
- package/build-deno/address/sshash.ts +10 -0
- package/build-deno/address/types.ts +2 -0
- package/build-deno/address/util.ts +6 -0
- package/build-deno/address/validate.ts +8 -0
- package/build-deno/base32/bs32.ts +51 -0
- package/build-deno/base32/helpers.ts +90 -0
- package/build-deno/base32/index.ts +6 -0
- package/build-deno/base58/bs58.ts +41 -0
- package/build-deno/base58/index.ts +6 -0
- package/build-deno/base64/bs64.ts +41 -0
- package/build-deno/base64/index.ts +8 -0
- package/build-deno/base64/pad.ts +8 -0
- package/build-deno/base64/trim.ts +12 -0
- package/build-deno/blake2/asU8a.ts +38 -0
- package/build-deno/blake2/index.ts +6 -0
- package/build-deno/bn.ts +13 -0
- package/build-deno/bundle.ts +29 -0
- package/build-deno/bundleInit.ts +8 -0
- package/build-deno/crypto.ts +16 -0
- package/build-deno/ed25519/deriveHard.ts +16 -0
- package/build-deno/ed25519/index.ts +11 -0
- package/build-deno/ed25519/pair/fromRandom.ts +23 -0
- package/build-deno/ed25519/pair/fromSecret.ts +27 -0
- package/build-deno/ed25519/pair/fromSeed.ts +39 -0
- package/build-deno/ed25519/pair/fromString.ts +29 -0
- package/build-deno/ed25519/sign.ts +36 -0
- package/build-deno/ed25519/verify.ts +39 -0
- package/build-deno/ethereum/encode.ts +37 -0
- package/build-deno/ethereum/index.ts +4 -0
- package/build-deno/ethereum/isAddress.ts +14 -0
- package/build-deno/ethereum/isChecksum.ts +25 -0
- package/build-deno/hd/ethereum/index.ts +69 -0
- package/build-deno/hd/index.ts +4 -0
- package/build-deno/hd/ledger/derivePrivate.ts +31 -0
- package/build-deno/hd/ledger/index.ts +40 -0
- package/build-deno/hd/ledger/master.ts +23 -0
- package/build-deno/hd/validatePath.ts +22 -0
- package/build-deno/helpers.ts +35 -0
- package/build-deno/hmac/index.ts +2 -0
- package/build-deno/hmac/shaAsU8a.ts +46 -0
- package/build-deno/index.ts +4 -0
- package/build-deno/json/constants.ts +9 -0
- package/build-deno/json/decrypt.ts +23 -0
- package/build-deno/json/decryptData.ts +43 -0
- package/build-deno/json/encrypt.ts +23 -0
- package/build-deno/json/encryptFormat.ts +18 -0
- package/build-deno/json/index.ts +5 -0
- package/build-deno/json/types.ts +20 -0
- package/build-deno/keccak/asU8a.ts +45 -0
- package/build-deno/keccak/index.ts +6 -0
- package/build-deno/key/DeriveJunction.ts +77 -0
- package/build-deno/key/extractPath.ts +35 -0
- package/build-deno/key/extractSuri.ts +38 -0
- package/build-deno/key/fromPath.ts +26 -0
- package/build-deno/key/hdkdDerive.ts +15 -0
- package/build-deno/key/hdkdEcdsa.ts +6 -0
- package/build-deno/key/hdkdEd25519.ts +5 -0
- package/build-deno/key/hdkdSr25519.ts +12 -0
- package/build-deno/key/index.ts +10 -0
- package/build-deno/mnemonic/bip39.ts +115 -0
- package/build-deno/mnemonic/generate.ts +23 -0
- package/build-deno/mnemonic/index.ts +9 -0
- package/build-deno/mnemonic/toEntropy.ts +11 -0
- package/build-deno/mnemonic/toLegacySeed.ts +37 -0
- package/build-deno/mnemonic/toMiniSecret.ts +21 -0
- package/build-deno/mnemonic/validate.ts +24 -0
- package/build-deno/mnemonic/wordlists/en.ts +3 -0
- package/build-deno/mnemonic/wordlists/es.ts +3 -0
- package/build-deno/mnemonic/wordlists/fr.ts +3 -0
- package/build-deno/mnemonic/wordlists/index.ts +9 -0
- package/build-deno/mnemonic/wordlists/it.ts +3 -0
- package/build-deno/mnemonic/wordlists/jp.ts +3 -0
- package/build-deno/mnemonic/wordlists/ko.ts +3 -0
- package/build-deno/mnemonic/wordlists/zh-s.ts +3 -0
- package/build-deno/mnemonic/wordlists/zh-t.ts +3 -0
- package/build-deno/mod.ts +2 -0
- package/build-deno/nacl/decrypt.ts +20 -0
- package/build-deno/nacl/encrypt.ts +29 -0
- package/build-deno/nacl/index.ts +6 -0
- package/build-deno/nacl/tweetnacl.ts +344 -0
- package/build-deno/networks.ts +2 -0
- package/build-deno/packageDetect.ts +10 -0
- package/build-deno/packageInfo.ts +3 -0
- package/build-deno/pbkdf2/encode.ts +27 -0
- package/build-deno/pbkdf2/index.ts +2 -0
- package/build-deno/random/asNumber.ts +26 -0
- package/build-deno/random/asU8a.ts +28 -0
- package/build-deno/random/index.ts +7 -0
- package/build-deno/scrypt/defaults.ts +17 -0
- package/build-deno/scrypt/encode.ts +28 -0
- package/build-deno/scrypt/fromU8a.ts +42 -0
- package/build-deno/scrypt/index.ts +4 -0
- package/build-deno/scrypt/toU8a.ts +15 -0
- package/build-deno/scrypt/types.ts +7 -0
- package/build-deno/secp256k1/compress.ts +19 -0
- package/build-deno/secp256k1/deriveHard.ts +15 -0
- package/build-deno/secp256k1/expand.ts +28 -0
- package/build-deno/secp256k1/hasher.ts +11 -0
- package/build-deno/secp256k1/index.ts +8 -0
- package/build-deno/secp256k1/pair/fromSeed.ts +40 -0
- package/build-deno/secp256k1/recover.ts +34 -0
- package/build-deno/secp256k1/sign.ts +35 -0
- package/build-deno/secp256k1/tweakAdd.ts +61 -0
- package/build-deno/secp256k1/types.ts +2 -0
- package/build-deno/secp256k1/verify.ts +30 -0
- package/build-deno/sha/asU8a.ts +28 -0
- package/build-deno/sha/index.ts +6 -0
- package/build-deno/signature/index.ts +6 -0
- package/build-deno/signature/verify.ts +112 -0
- package/build-deno/sr25519/agreement.ts +21 -0
- package/build-deno/sr25519/derive.ts +19 -0
- package/build-deno/sr25519/deriveHard.ts +6 -0
- package/build-deno/sr25519/derivePublic.ts +16 -0
- package/build-deno/sr25519/deriveSoft.ts +6 -0
- package/build-deno/sr25519/index.ts +10 -0
- package/build-deno/sr25519/pair/fromSeed.ts +26 -0
- package/build-deno/sr25519/pair/fromU8a.ts +21 -0
- package/build-deno/sr25519/pair/toU8a.ts +8 -0
- package/build-deno/sr25519/sign.ts +20 -0
- package/build-deno/sr25519/verify.ts +21 -0
- package/build-deno/sr25519/vrfSign.ts +22 -0
- package/build-deno/sr25519/vrfVerify.ts +23 -0
- package/build-deno/test/index.ts +4 -0
- package/build-deno/test/performance.ts +15 -0
- package/build-deno/types.ts +31 -0
- package/build-deno/xxhash/asU8a.ts +45 -0
- package/build-deno/xxhash/index.ts +6 -0
- package/build-deno/xxhash/xxhash64.ts +138 -0
- package/build-tsc/address/encodeDerived.d.ts +9 -0
- package/build-tsc/address/encodeMulti.d.ts +9 -0
- package/build-tsc/address/eq.d.ts +15 -0
- package/build-tsc/address/keyDerived.d.ts +2 -0
- package/build-tsc/address/keyMulti.d.ts +2 -0
- package/build-tsc/base32/bs32.d.ts +26 -0
- package/build-tsc/base32/helpers.d.ts +25 -0
- package/build-tsc/base58/bs58.d.ts +26 -0
- package/build-tsc/base64/bs64.d.ts +26 -0
- package/build-tsc/blake2/asU8a.d.ts +20 -0
- package/build-tsc/bundleInit.d.ts +1 -0
- package/build-tsc/crypto.d.ts +3 -0
- package/build-tsc/ed25519/pair/fromRandom.d.ts +16 -0
- package/build-tsc/ed25519/pair/fromSecret.d.ts +16 -0
- package/build-tsc/ed25519/pair/fromSeed.d.ts +16 -0
- package/build-tsc/ed25519/pair/fromString.d.ts +16 -0
- package/build-tsc/ed25519/sign.d.ts +16 -0
- package/build-tsc/ed25519/verify.d.ts +15 -0
- package/build-tsc/ethereum/encode.d.ts +2 -0
- package/build-tsc/helpers.d.ts +12 -0
- package/build-tsc/keccak/asU8a.d.ts +30 -0
- package/build-tsc/key/DeriveJunction.d.ts +12 -0
- package/build-tsc/mnemonic/generate.d.ts +13 -0
- package/build-tsc/mnemonic/toLegacySeed.d.ts +18 -0
- package/build-tsc/mnemonic/validate.d.ts +14 -0
- package/build-tsc/nacl/decrypt.d.ts +15 -0
- package/build-tsc/nacl/encrypt.d.ts +20 -0
- package/build-tsc/networks.d.ts +1 -0
- package/build-tsc/random/asNumber.d.ts +15 -0
- package/build-tsc/random/asU8a.d.ts +20 -0
- package/build-tsc/xxhash/asU8a.d.ts +20 -0
- package/build-tsc-cjs/packageDetect.js +8 -0
- package/build-tsc-cjs/packageInfo.js +4 -0
- package/build-tsc-esm/packageInfo.js +1 -0
- package/package.json +15 -2027
- package/src/address/addressToEvm.spec.ts +16 -0
- package/src/address/addressToEvm.ts +12 -0
- package/src/address/check.spec.ts +44 -0
- package/src/address/check.ts +34 -0
- package/src/address/checksum.spec.ts +45 -0
- package/src/address/checksum.ts +25 -0
- package/src/address/decode.spec.ts +138 -0
- package/src/address/decode.ts +41 -0
- package/src/address/defaults.ts +12 -0
- package/src/address/derive.spec.ts +26 -0
- package/src/address/derive.ts +36 -0
- package/src/address/encode.spec.ts +177 -0
- package/src/address/encode.ts +43 -0
- package/src/address/encodeDerived.spec.ts +14 -0
- package/src/address/encodeDerived.ts +19 -0
- package/src/address/encodeMulti.spec.ts +18 -0
- package/src/address/encodeMulti.ts +18 -0
- package/src/address/eq.spec.ts +45 -0
- package/src/address/eq.ts +24 -0
- package/src/address/evmToAddress.spec.ts +20 -0
- package/src/address/evmToAddress.ts +24 -0
- package/src/address/index.ts +21 -0
- package/src/address/is.spec.ts +113 -0
- package/src/address/is.ts +14 -0
- package/src/address/keyDerived.spec.ts +24 -0
- package/src/address/keyDerived.ts +22 -0
- package/src/address/keyMulti.spec.ts +20 -0
- package/src/address/keyMulti.ts +23 -0
- package/src/address/setSS58Format.spec.ts +21 -0
- package/src/address/setSS58Format.ts +20 -0
- package/src/address/sort.spec.ts +22 -0
- package/src/address/sort.ts +17 -0
- package/src/address/sshash.ts +12 -0
- package/src/address/types.ts +6 -0
- package/src/address/util.ts +8 -0
- package/src/address/validate.spec.ts +113 -0
- package/src/address/validate.ts +10 -0
- package/src/base32/bs32.ts +53 -0
- package/src/base32/decode.spec.ts +34 -0
- package/src/base32/encode.spec.ts +30 -0
- package/src/base32/helpers.ts +93 -0
- package/src/base32/index.ts +8 -0
- package/src/base32/is.spec.ts +32 -0
- package/src/base32/validate.spec.ts +44 -0
- package/src/base58/bs58.ts +43 -0
- package/src/base58/decode.spec.ts +31 -0
- package/src/base58/encode.spec.ts +26 -0
- package/src/base58/index.ts +8 -0
- package/src/base58/validate.spec.ts +20 -0
- package/src/base64/bs64.ts +43 -0
- package/src/base64/decode.spec.ts +42 -0
- package/src/base64/encode.spec.ts +14 -0
- package/src/base64/index.ts +10 -0
- package/src/base64/pad.spec.ts +14 -0
- package/src/base64/pad.ts +10 -0
- package/src/base64/trim.spec.ts +14 -0
- package/src/base64/trim.ts +14 -0
- package/src/base64/validate.spec.ts +32 -0
- package/src/blake2/asHex.spec.ts +57 -0
- package/src/blake2/asU8a.spec.ts +74 -0
- package/src/blake2/asU8a.ts +40 -0
- package/src/blake2/index.ts +8 -0
- package/src/bn.ts +15 -0
- package/src/bundle.ts +33 -0
- package/src/bundleInit.ts +11 -0
- package/src/crypto.spec.ts +18 -0
- package/src/crypto.ts +18 -0
- package/src/ed25519/deriveHard.ts +18 -0
- package/src/ed25519/index.ts +13 -0
- package/src/ed25519/pair/fromRandom.spec.ts +28 -0
- package/src/ed25519/pair/fromRandom.ts +25 -0
- package/src/ed25519/pair/fromSecret.spec.ts +33 -0
- package/src/ed25519/pair/fromSecret.ts +29 -0
- package/src/ed25519/pair/fromSeed.spec.ts +42 -0
- package/src/ed25519/pair/fromSeed.ts +41 -0
- package/src/ed25519/pair/fromString.spec.ts +17 -0
- package/src/ed25519/pair/fromString.ts +31 -0
- package/src/ed25519/sign.spec.ts +40 -0
- package/src/ed25519/sign.ts +38 -0
- package/src/ed25519/verify.spec.ts +84 -0
- package/src/ed25519/verify.ts +41 -0
- package/src/ethereum/encode.spec.ts +59 -0
- package/src/ethereum/encode.ts +39 -0
- package/src/ethereum/index.ts +6 -0
- package/src/ethereum/isAddress.spec.ts +34 -0
- package/src/ethereum/isAddress.ts +16 -0
- package/src/ethereum/isChecksum.ts +27 -0
- package/src/ethereum/isCheksum.spec.ts +30 -0
- package/src/hd/ethereum/index.spec.ts +54 -0
- package/src/hd/ethereum/index.ts +69 -0
- package/src/hd/index.ts +6 -0
- package/src/hd/ledger/derivePrivate.ts +34 -0
- package/src/hd/ledger/index.spec.ts +64 -0
- package/src/hd/ledger/index.ts +42 -0
- package/src/hd/ledger/master.spec.ts +19 -0
- package/src/hd/ledger/master.ts +26 -0
- package/src/hd/validatePath.spec.ts +30 -0
- package/src/hd/validatePath.ts +24 -0
- package/src/helpers.ts +38 -0
- package/src/hmac/index.ts +4 -0
- package/src/hmac/shaAsU8a.spec.ts +45 -0
- package/src/hmac/shaAsU8a.ts +48 -0
- package/src/index.ts +6 -0
- package/src/json/constants.ts +11 -0
- package/src/json/decrypt.ts +25 -0
- package/src/json/decryptData.ts +45 -0
- package/src/json/encrypt.ts +25 -0
- package/src/json/encryptFormat.ts +20 -0
- package/src/json/index.ts +7 -0
- package/src/json/types.ts +22 -0
- package/src/keccak/asHex.spec.ts +30 -0
- package/src/keccak/asU8a.spec.ts +56 -0
- package/src/keccak/asU8a.ts +45 -0
- package/src/keccak/index.ts +8 -0
- package/src/key/DeriveJunction.ts +79 -0
- package/src/key/extractPath.spec.ts +51 -0
- package/src/key/extractPath.ts +37 -0
- package/src/key/extractSuri.spec.ts +147 -0
- package/src/key/extractSuri.ts +40 -0
- package/src/key/fromPath.ts +28 -0
- package/src/key/hdkdDerive.ts +17 -0
- package/src/key/hdkdEcdsa.ts +8 -0
- package/src/key/hdkdEd25519.ts +7 -0
- package/src/key/hdkdSr25519.ts +14 -0
- package/src/key/index.ts +12 -0
- package/src/mnemonic/bip39.spec.ts +80 -0
- package/src/mnemonic/bip39.ts +127 -0
- package/src/mnemonic/generate.spec.ts +58 -0
- package/src/mnemonic/generate.ts +25 -0
- package/src/mnemonic/index.ts +11 -0
- package/src/mnemonic/toEntropy.spec.ts +36 -0
- package/src/mnemonic/toEntropy.ts +13 -0
- package/src/mnemonic/toLegacySeed.spec.ts +52 -0
- package/src/mnemonic/toLegacySeed.ts +39 -0
- package/src/mnemonic/toMiniSecret.spec.ts +67 -0
- package/src/mnemonic/toMiniSecret.ts +23 -0
- package/src/mnemonic/toMiniSecretCmp.spec.ts +64 -0
- package/src/mnemonic/validate.spec.ts +39 -0
- package/src/mnemonic/validate.ts +26 -0
- package/src/mnemonic/wordlists/en.ts +7 -0
- package/src/mnemonic/wordlists/es.ts +7 -0
- package/src/mnemonic/wordlists/fr.ts +7 -0
- package/src/mnemonic/wordlists/index.ts +11 -0
- package/src/mnemonic/wordlists/it.ts +7 -0
- package/src/mnemonic/wordlists/jp.ts +7 -0
- package/src/mnemonic/wordlists/ko.ts +7 -0
- package/src/mnemonic/wordlists/zh-s.ts +7 -0
- package/src/mnemonic/wordlists/zh-t.ts +7 -0
- package/src/mod.ts +4 -0
- package/src/nacl/decrypt.spec.ts +26 -0
- package/src/nacl/decrypt.ts +22 -0
- package/src/nacl/encrypt.spec.ts +20 -0
- package/src/nacl/encrypt.ts +31 -0
- package/src/nacl/index.ts +8 -0
- package/src/nacl/tweetnacl-secretbox-data.spec.ts +4629 -0
- package/src/nacl/tweetnacl-secretbox.spec.ts +161 -0
- package/src/nacl/tweetnacl.ts +1159 -0
- package/src/networks.ts +5 -0
- package/src/packageDetect.ts +14 -0
- package/src/packageInfo.ts +6 -0
- package/src/pbkdf2/encode.spec.ts +54 -0
- package/src/pbkdf2/encode.ts +29 -0
- package/src/pbkdf2/index.ts +4 -0
- package/src/random/asHex.spec.ts +38 -0
- package/src/random/asNumber.spec.ts +16 -0
- package/src/random/asNumber.ts +28 -0
- package/src/random/asU8a.spec.ts +36 -0
- package/src/random/asU8a.ts +30 -0
- package/src/random/index.ts +9 -0
- package/src/scrypt/defaults.ts +19 -0
- package/src/scrypt/encode.spec.ts +43 -0
- package/src/scrypt/encode.ts +30 -0
- package/src/scrypt/fromU8a.ts +44 -0
- package/src/scrypt/index.ts +6 -0
- package/src/scrypt/toU8a.ts +17 -0
- package/src/scrypt/types.ts +9 -0
- package/src/secp256k1/compress.spec.ts +47 -0
- package/src/secp256k1/compress.ts +21 -0
- package/src/secp256k1/deriveHard.ts +17 -0
- package/src/secp256k1/expand.spec.ts +47 -0
- package/src/secp256k1/expand.ts +30 -0
- package/src/secp256k1/hasher.spec.ts +24 -0
- package/src/secp256k1/hasher.ts +13 -0
- package/src/secp256k1/index.ts +10 -0
- package/src/secp256k1/pair/fromSeed.spec.ts +75 -0
- package/src/secp256k1/pair/fromSeed.ts +42 -0
- package/src/secp256k1/recover.spec.ts +35 -0
- package/src/secp256k1/recover.ts +36 -0
- package/src/secp256k1/sign.spec.ts +39 -0
- package/src/secp256k1/sign.ts +37 -0
- package/src/secp256k1/signVerify.spec.ts +94 -0
- package/src/secp256k1/tweakAdd.spec.ts +35 -0
- package/src/secp256k1/tweakAdd.ts +65 -0
- package/src/secp256k1/types.ts +4 -0
- package/src/secp256k1/verify.spec.ts +81 -0
- package/src/secp256k1/verify.ts +32 -0
- package/src/sha/asU8a.ts +30 -0
- package/src/sha/asU8a256.spec.ts +55 -0
- package/src/sha/asU8a512.spec.ts +33 -0
- package/src/sha/index.ts +8 -0
- package/src/signature/index.ts +8 -0
- package/src/signature/verify.spec.ts +230 -0
- package/src/signature/verify.ts +114 -0
- package/src/sr25519/agreement.spec.ts +31 -0
- package/src/sr25519/agreement.ts +23 -0
- package/src/sr25519/derive.ts +21 -0
- package/src/sr25519/deriveHard.ts +9 -0
- package/src/sr25519/derivePublic.ts +18 -0
- package/src/sr25519/deriveSoft.ts +9 -0
- package/src/sr25519/index.ts +12 -0
- package/src/sr25519/pair/fromSeed.spec.ts +35 -0
- package/src/sr25519/pair/fromSeed.ts +28 -0
- package/src/sr25519/pair/fromU8a.ts +23 -0
- package/src/sr25519/pair/testing.spec.ts +161 -0
- package/src/sr25519/pair/toU8a.ts +10 -0
- package/src/sr25519/sign.spec.ts +28 -0
- package/src/sr25519/sign.ts +22 -0
- package/src/sr25519/verify.spec.ts +42 -0
- package/src/sr25519/verify.ts +23 -0
- package/src/sr25519/vrfSign.ts +24 -0
- package/src/sr25519/vrfSignVerify.spec.ts +73 -0
- package/src/sr25519/vrfVerify.ts +25 -0
- package/src/test/index.ts +8 -0
- package/src/test/performance.ts +17 -0
- package/src/types.ts +33 -0
- package/src/xxhash/asHex.spec.ts +36 -0
- package/src/xxhash/asU8a.spec.ts +48 -0
- package/src/xxhash/asU8a.ts +45 -0
- package/src/xxhash/index.ts +8 -0
- package/src/xxhash/xxhash64.ts +155 -0
- package/tsconfig.build.json +18 -0
- package/tsconfig.build.tsbuildinfo +1 -0
- package/tsconfig.spec.json +20 -0
- package/tsconfig.spec.tsbuildinfo +1 -0
- package/address/encodeDerived.d.ts +0 -9
- package/address/encodeMulti.d.ts +0 -9
- package/address/eq.d.ts +0 -15
- package/address/keyDerived.d.ts +0 -2
- package/address/keyMulti.d.ts +0 -2
- package/base32/bs32.d.ts +0 -26
- package/base32/helpers.d.ts +0 -25
- package/base58/bs58.d.ts +0 -26
- package/base64/bs64.d.ts +0 -26
- package/blake2/asU8a.d.ts +0 -20
- package/bundle-polkadot-util-crypto.js +0 -11813
- package/bundleInit.d.ts +0 -1
- package/cjs/address/encodeDerived.d.ts +0 -9
- package/cjs/address/encodeMulti.d.ts +0 -9
- package/cjs/address/eq.d.ts +0 -15
- package/cjs/address/keyDerived.d.ts +0 -2
- package/cjs/address/keyMulti.d.ts +0 -2
- package/cjs/base32/bs32.d.ts +0 -26
- package/cjs/base32/helpers.d.ts +0 -25
- package/cjs/base58/bs58.d.ts +0 -26
- package/cjs/base64/bs64.d.ts +0 -26
- package/cjs/blake2/asU8a.d.ts +0 -20
- package/cjs/bundleInit.d.ts +0 -1
- package/cjs/crypto.d.ts +0 -3
- package/cjs/ed25519/pair/fromRandom.d.ts +0 -16
- package/cjs/ed25519/pair/fromSecret.d.ts +0 -16
- package/cjs/ed25519/pair/fromSeed.d.ts +0 -16
- package/cjs/ed25519/pair/fromString.d.ts +0 -16
- package/cjs/ed25519/sign.d.ts +0 -16
- package/cjs/ed25519/verify.d.ts +0 -15
- package/cjs/ethereum/encode.d.ts +0 -2
- package/cjs/helpers.d.ts +0 -12
- package/cjs/keccak/asU8a.d.ts +0 -30
- package/cjs/key/DeriveJunction.d.ts +0 -12
- package/cjs/mnemonic/generate.d.ts +0 -13
- package/cjs/mnemonic/toLegacySeed.d.ts +0 -18
- package/cjs/mnemonic/validate.d.ts +0 -14
- package/cjs/nacl/decrypt.d.ts +0 -15
- package/cjs/nacl/encrypt.d.ts +0 -20
- package/cjs/networks.d.ts +0 -1
- package/cjs/packageInfo.js +0 -4
- package/cjs/random/asNumber.d.ts +0 -15
- package/cjs/random/asU8a.d.ts +0 -20
- package/cjs/xxhash/asU8a.d.ts +0 -20
- package/crypto.d.ts +0 -3
- package/ed25519/pair/fromRandom.d.ts +0 -16
- package/ed25519/pair/fromSecret.d.ts +0 -16
- package/ed25519/pair/fromSeed.d.ts +0 -16
- package/ed25519/pair/fromString.d.ts +0 -16
- package/ed25519/sign.d.ts +0 -16
- package/ed25519/verify.d.ts +0 -15
- package/ethereum/encode.d.ts +0 -2
- package/helpers.d.ts +0 -12
- package/keccak/asU8a.d.ts +0 -30
- package/key/DeriveJunction.d.ts +0 -12
- package/mnemonic/generate.d.ts +0 -13
- package/mnemonic/toLegacySeed.d.ts +0 -18
- package/mnemonic/validate.d.ts +0 -14
- package/nacl/decrypt.d.ts +0 -15
- package/nacl/encrypt.d.ts +0 -20
- package/networks.d.ts +0 -1
- package/packageInfo.js +0 -1
- package/random/asNumber.d.ts +0 -15
- package/random/asU8a.d.ts +0 -20
- package/xxhash/asU8a.d.ts +0 -20
- /package/{LICENSE → build/LICENSE} +0 -0
- /package/{cjs → build}/address/addressToEvm.d.ts +0 -0
- /package/{cjs → build}/address/check.d.ts +0 -0
- /package/{cjs → build}/address/checksum.d.ts +0 -0
- /package/{cjs → build}/address/decode.d.ts +0 -0
- /package/{cjs → build}/address/defaults.d.ts +0 -0
- /package/{cjs → build}/address/derive.d.ts +0 -0
- /package/{cjs → build}/address/encode.d.ts +0 -0
- /package/{cjs → build}/address/evmToAddress.d.ts +0 -0
- /package/{cjs → build}/address/index.d.ts +0 -0
- /package/{cjs → build}/address/is.d.ts +0 -0
- /package/{cjs → build}/address/setSS58Format.d.ts +0 -0
- /package/{cjs → build}/address/sort.d.ts +0 -0
- /package/{cjs → build}/address/sshash.d.ts +0 -0
- /package/{cjs → build}/address/types.d.ts +0 -0
- /package/{packageDetect.d.ts → build/address/types.js} +0 -0
- /package/{cjs → build}/address/util.d.ts +0 -0
- /package/{cjs → build}/address/validate.d.ts +0 -0
- /package/{cjs → build}/base32/index.d.ts +0 -0
- /package/{cjs → build}/base58/index.d.ts +0 -0
- /package/{cjs → build}/base64/index.d.ts +0 -0
- /package/{cjs → build}/base64/pad.d.ts +0 -0
- /package/{cjs → build}/base64/trim.d.ts +0 -0
- /package/{cjs → build}/blake2/index.d.ts +0 -0
- /package/{cjs → build}/bn.d.ts +0 -0
- /package/{cjs → build}/bundle.d.ts +0 -0
- /package/{ed25519 → build/cjs/ed25519}/deriveHard.d.ts +0 -0
- /package/{ed25519 → build/cjs/ed25519}/index.d.ts +0 -0
- /package/{ethereum → build/cjs/ethereum}/index.d.ts +0 -0
- /package/{ethereum → build/cjs/ethereum}/isAddress.d.ts +0 -0
- /package/{ethereum → build/cjs/ethereum}/isChecksum.d.ts +0 -0
- /package/{hd → build/cjs/hd}/ethereum/index.d.ts +0 -0
- /package/{hd → build/cjs/hd}/index.d.ts +0 -0
- /package/{hd → build/cjs/hd}/ledger/derivePrivate.d.ts +0 -0
- /package/{hd → build/cjs/hd}/ledger/index.d.ts +0 -0
- /package/{hd → build/cjs/hd}/ledger/master.d.ts +0 -0
- /package/{hd → build/cjs/hd}/validatePath.d.ts +0 -0
- /package/{hmac → build/cjs/hmac}/index.d.ts +0 -0
- /package/{hmac → build/cjs/hmac}/shaAsU8a.d.ts +0 -0
- /package/{index.d.ts → build/cjs/index.d.ts} +0 -0
- /package/{json → build/cjs/json}/constants.d.ts +0 -0
- /package/{json → build/cjs/json}/decrypt.d.ts +0 -0
- /package/{json → build/cjs/json}/decryptData.d.ts +0 -0
- /package/{json → build/cjs/json}/encrypt.d.ts +0 -0
- /package/{json → build/cjs/json}/encryptFormat.d.ts +0 -0
- /package/{json → build/cjs/json}/index.d.ts +0 -0
- /package/{json → build/cjs/json}/types.d.ts +0 -0
- /package/{keccak → build/cjs/keccak}/index.d.ts +0 -0
- /package/{key → build/cjs/key}/extractPath.d.ts +0 -0
- /package/{key → build/cjs/key}/extractSuri.d.ts +0 -0
- /package/{key → build/cjs/key}/fromPath.d.ts +0 -0
- /package/{key → build/cjs/key}/hdkdDerive.d.ts +0 -0
- /package/{key → build/cjs/key}/hdkdEcdsa.d.ts +0 -0
- /package/{key → build/cjs/key}/hdkdEd25519.d.ts +0 -0
- /package/{key → build/cjs/key}/hdkdSr25519.d.ts +0 -0
- /package/{key → build/cjs/key}/index.d.ts +0 -0
- /package/{mnemonic → build/cjs/mnemonic}/bip39.d.ts +0 -0
- /package/{mnemonic → build/cjs/mnemonic}/index.d.ts +0 -0
- /package/{mnemonic → build/cjs/mnemonic}/toEntropy.d.ts +0 -0
- /package/{mnemonic → build/cjs/mnemonic}/toMiniSecret.d.ts +0 -0
- /package/{mnemonic → build/cjs/mnemonic}/wordlists/en.d.ts +0 -0
- /package/{mnemonic → build/cjs/mnemonic}/wordlists/es.d.ts +0 -0
- /package/{mnemonic → build/cjs/mnemonic}/wordlists/fr.d.ts +0 -0
- /package/{mnemonic → build/cjs/mnemonic}/wordlists/index.d.ts +0 -0
- /package/{mnemonic → build/cjs/mnemonic}/wordlists/it.d.ts +0 -0
- /package/{mnemonic → build/cjs/mnemonic}/wordlists/jp.d.ts +0 -0
- /package/{mnemonic → build/cjs/mnemonic}/wordlists/ko.d.ts +0 -0
- /package/{mnemonic → build/cjs/mnemonic}/wordlists/zh-s.d.ts +0 -0
- /package/{mnemonic → build/cjs/mnemonic}/wordlists/zh-t.d.ts +0 -0
- /package/{nacl → build/cjs/nacl}/index.d.ts +0 -0
- /package/{nacl → build/cjs/nacl}/tweetnacl.d.ts +0 -0
- /package/{cjs → build/cjs}/package.json +0 -0
- /package/{cjs → build/cjs}/packageDetect.js +0 -0
- /package/{packageInfo.d.ts → build/cjs/packageInfo.d.ts} +0 -0
- /package/{pbkdf2 → build/cjs/pbkdf2}/encode.d.ts +0 -0
- /package/{pbkdf2 → build/cjs/pbkdf2}/index.d.ts +0 -0
- /package/{random → build/cjs/random}/index.d.ts +0 -0
- /package/{scrypt → build/cjs/scrypt}/defaults.d.ts +0 -0
- /package/{scrypt → build/cjs/scrypt}/encode.d.ts +0 -0
- /package/{scrypt → build/cjs/scrypt}/fromU8a.d.ts +0 -0
- /package/{scrypt → build/cjs/scrypt}/index.d.ts +0 -0
- /package/{scrypt → build/cjs/scrypt}/toU8a.d.ts +0 -0
- /package/{scrypt → build/cjs/scrypt}/types.d.ts +0 -0
- /package/{secp256k1 → build/cjs/secp256k1}/compress.d.ts +0 -0
- /package/{secp256k1 → build/cjs/secp256k1}/deriveHard.d.ts +0 -0
- /package/{secp256k1 → build/cjs/secp256k1}/expand.d.ts +0 -0
- /package/{secp256k1 → build/cjs/secp256k1}/hasher.d.ts +0 -0
- /package/{secp256k1 → build/cjs/secp256k1}/index.d.ts +0 -0
- /package/{secp256k1 → build/cjs/secp256k1}/pair/fromSeed.d.ts +0 -0
- /package/{secp256k1 → build/cjs/secp256k1}/recover.d.ts +0 -0
- /package/{secp256k1 → build/cjs/secp256k1}/sign.d.ts +0 -0
- /package/{secp256k1 → build/cjs/secp256k1}/tweakAdd.d.ts +0 -0
- /package/{secp256k1 → build/cjs/secp256k1}/types.d.ts +0 -0
- /package/{secp256k1 → build/cjs/secp256k1}/verify.d.ts +0 -0
- /package/{sha → build/cjs/sha}/asU8a.d.ts +0 -0
- /package/{sha → build/cjs/sha}/index.d.ts +0 -0
- /package/{signature → build/cjs/signature}/index.d.ts +0 -0
- /package/{signature → build/cjs/signature}/verify.d.ts +0 -0
- /package/{sr25519 → build/cjs/sr25519}/agreement.d.ts +0 -0
- /package/{sr25519 → build/cjs/sr25519}/derive.d.ts +0 -0
- /package/{sr25519 → build/cjs/sr25519}/deriveHard.d.ts +0 -0
- /package/{sr25519 → build/cjs/sr25519}/derivePublic.d.ts +0 -0
- /package/{sr25519 → build/cjs/sr25519}/deriveSoft.d.ts +0 -0
- /package/{sr25519 → build/cjs/sr25519}/index.d.ts +0 -0
- /package/{sr25519 → build/cjs/sr25519}/pair/fromSeed.d.ts +0 -0
- /package/{sr25519 → build/cjs/sr25519}/pair/fromU8a.d.ts +0 -0
- /package/{sr25519 → build/cjs/sr25519}/pair/toU8a.d.ts +0 -0
- /package/{sr25519 → build/cjs/sr25519}/sign.d.ts +0 -0
- /package/{sr25519 → build/cjs/sr25519}/verify.d.ts +0 -0
- /package/{sr25519 → build/cjs/sr25519}/vrfSign.d.ts +0 -0
- /package/{sr25519 → build/cjs/sr25519}/vrfVerify.d.ts +0 -0
- /package/{types.d.ts → build/cjs/types.d.ts} +0 -0
- /package/{xxhash → build/cjs/xxhash}/index.d.ts +0 -0
- /package/{xxhash → build/cjs/xxhash}/xxhash64.d.ts +0 -0
- /package/{address → build-tsc/address}/addressToEvm.d.ts +0 -0
- /package/{address → build-tsc/address}/check.d.ts +0 -0
- /package/{address → build-tsc/address}/checksum.d.ts +0 -0
- /package/{address → build-tsc/address}/decode.d.ts +0 -0
- /package/{address → build-tsc/address}/defaults.d.ts +0 -0
- /package/{address → build-tsc/address}/derive.d.ts +0 -0
- /package/{address → build-tsc/address}/encode.d.ts +0 -0
- /package/{address → build-tsc/address}/evmToAddress.d.ts +0 -0
- /package/{address → build-tsc/address}/index.d.ts +0 -0
- /package/{address → build-tsc/address}/is.d.ts +0 -0
- /package/{address → build-tsc/address}/setSS58Format.d.ts +0 -0
- /package/{address → build-tsc/address}/sort.d.ts +0 -0
- /package/{address → build-tsc/address}/sshash.d.ts +0 -0
- /package/{address → build-tsc/address}/types.d.ts +0 -0
- /package/{address → build-tsc/address}/util.d.ts +0 -0
- /package/{address → build-tsc/address}/validate.d.ts +0 -0
- /package/{base32 → build-tsc/base32}/index.d.ts +0 -0
- /package/{base58 → build-tsc/base58}/index.d.ts +0 -0
- /package/{base64 → build-tsc/base64}/index.d.ts +0 -0
- /package/{base64 → build-tsc/base64}/pad.d.ts +0 -0
- /package/{base64 → build-tsc/base64}/trim.d.ts +0 -0
- /package/{blake2 → build-tsc/blake2}/index.d.ts +0 -0
- /package/{bn.d.ts → build-tsc/bn.d.ts} +0 -0
- /package/{bundle.d.ts → build-tsc/bundle.d.ts} +0 -0
- /package/{cjs → build-tsc}/ed25519/deriveHard.d.ts +0 -0
- /package/{cjs → build-tsc}/ed25519/index.d.ts +0 -0
- /package/{cjs → build-tsc}/ethereum/index.d.ts +0 -0
- /package/{cjs → build-tsc}/ethereum/isAddress.d.ts +0 -0
- /package/{cjs → build-tsc}/ethereum/isChecksum.d.ts +0 -0
- /package/{cjs → build-tsc}/hd/ethereum/index.d.ts +0 -0
- /package/{cjs → build-tsc}/hd/index.d.ts +0 -0
- /package/{cjs → build-tsc}/hd/ledger/derivePrivate.d.ts +0 -0
- /package/{cjs → build-tsc}/hd/ledger/index.d.ts +0 -0
- /package/{cjs → build-tsc}/hd/ledger/master.d.ts +0 -0
- /package/{cjs → build-tsc}/hd/validatePath.d.ts +0 -0
- /package/{cjs → build-tsc}/hmac/index.d.ts +0 -0
- /package/{cjs → build-tsc}/hmac/shaAsU8a.d.ts +0 -0
- /package/{cjs → build-tsc}/index.d.ts +0 -0
- /package/{cjs → build-tsc}/json/constants.d.ts +0 -0
- /package/{cjs → build-tsc}/json/decrypt.d.ts +0 -0
- /package/{cjs → build-tsc}/json/decryptData.d.ts +0 -0
- /package/{cjs → build-tsc}/json/encrypt.d.ts +0 -0
- /package/{cjs → build-tsc}/json/encryptFormat.d.ts +0 -0
- /package/{cjs → build-tsc}/json/index.d.ts +0 -0
- /package/{cjs → build-tsc}/json/types.d.ts +0 -0
- /package/{cjs → build-tsc}/keccak/index.d.ts +0 -0
- /package/{cjs → build-tsc}/key/extractPath.d.ts +0 -0
- /package/{cjs → build-tsc}/key/extractSuri.d.ts +0 -0
- /package/{cjs → build-tsc}/key/fromPath.d.ts +0 -0
- /package/{cjs → build-tsc}/key/hdkdDerive.d.ts +0 -0
- /package/{cjs → build-tsc}/key/hdkdEcdsa.d.ts +0 -0
- /package/{cjs → build-tsc}/key/hdkdEd25519.d.ts +0 -0
- /package/{cjs → build-tsc}/key/hdkdSr25519.d.ts +0 -0
- /package/{cjs → build-tsc}/key/index.d.ts +0 -0
- /package/{cjs → build-tsc}/mnemonic/bip39.d.ts +0 -0
- /package/{cjs → build-tsc}/mnemonic/index.d.ts +0 -0
- /package/{cjs → build-tsc}/mnemonic/toEntropy.d.ts +0 -0
- /package/{cjs → build-tsc}/mnemonic/toMiniSecret.d.ts +0 -0
- /package/{cjs → build-tsc}/mnemonic/wordlists/en.d.ts +0 -0
- /package/{cjs → build-tsc}/mnemonic/wordlists/es.d.ts +0 -0
- /package/{cjs → build-tsc}/mnemonic/wordlists/fr.d.ts +0 -0
- /package/{cjs → build-tsc}/mnemonic/wordlists/index.d.ts +0 -0
- /package/{cjs → build-tsc}/mnemonic/wordlists/it.d.ts +0 -0
- /package/{cjs → build-tsc}/mnemonic/wordlists/jp.d.ts +0 -0
- /package/{cjs → build-tsc}/mnemonic/wordlists/ko.d.ts +0 -0
- /package/{cjs → build-tsc}/mnemonic/wordlists/zh-s.d.ts +0 -0
- /package/{cjs → build-tsc}/mnemonic/wordlists/zh-t.d.ts +0 -0
- /package/{cjs → build-tsc}/nacl/index.d.ts +0 -0
- /package/{cjs → build-tsc}/nacl/tweetnacl.d.ts +0 -0
- /package/{cjs → build-tsc}/packageDetect.d.ts +0 -0
- /package/{cjs → build-tsc}/packageInfo.d.ts +0 -0
- /package/{cjs → build-tsc}/pbkdf2/encode.d.ts +0 -0
- /package/{cjs → build-tsc}/pbkdf2/index.d.ts +0 -0
- /package/{cjs → build-tsc}/random/index.d.ts +0 -0
- /package/{cjs → build-tsc}/scrypt/defaults.d.ts +0 -0
- /package/{cjs → build-tsc}/scrypt/encode.d.ts +0 -0
- /package/{cjs → build-tsc}/scrypt/fromU8a.d.ts +0 -0
- /package/{cjs → build-tsc}/scrypt/index.d.ts +0 -0
- /package/{cjs → build-tsc}/scrypt/toU8a.d.ts +0 -0
- /package/{cjs → build-tsc}/scrypt/types.d.ts +0 -0
- /package/{cjs → build-tsc}/secp256k1/compress.d.ts +0 -0
- /package/{cjs → build-tsc}/secp256k1/deriveHard.d.ts +0 -0
- /package/{cjs → build-tsc}/secp256k1/expand.d.ts +0 -0
- /package/{cjs → build-tsc}/secp256k1/hasher.d.ts +0 -0
- /package/{cjs → build-tsc}/secp256k1/index.d.ts +0 -0
- /package/{cjs → build-tsc}/secp256k1/pair/fromSeed.d.ts +0 -0
- /package/{cjs → build-tsc}/secp256k1/recover.d.ts +0 -0
- /package/{cjs → build-tsc}/secp256k1/sign.d.ts +0 -0
- /package/{cjs → build-tsc}/secp256k1/tweakAdd.d.ts +0 -0
- /package/{cjs → build-tsc}/secp256k1/types.d.ts +0 -0
- /package/{cjs → build-tsc}/secp256k1/verify.d.ts +0 -0
- /package/{cjs → build-tsc}/sha/asU8a.d.ts +0 -0
- /package/{cjs → build-tsc}/sha/index.d.ts +0 -0
- /package/{cjs → build-tsc}/signature/index.d.ts +0 -0
- /package/{cjs → build-tsc}/signature/verify.d.ts +0 -0
- /package/{cjs → build-tsc}/sr25519/agreement.d.ts +0 -0
- /package/{cjs → build-tsc}/sr25519/derive.d.ts +0 -0
- /package/{cjs → build-tsc}/sr25519/deriveHard.d.ts +0 -0
- /package/{cjs → build-tsc}/sr25519/derivePublic.d.ts +0 -0
- /package/{cjs → build-tsc}/sr25519/deriveSoft.d.ts +0 -0
- /package/{cjs → build-tsc}/sr25519/index.d.ts +0 -0
- /package/{cjs → build-tsc}/sr25519/pair/fromSeed.d.ts +0 -0
- /package/{cjs → build-tsc}/sr25519/pair/fromU8a.d.ts +0 -0
- /package/{cjs → build-tsc}/sr25519/pair/toU8a.d.ts +0 -0
- /package/{cjs → build-tsc}/sr25519/sign.d.ts +0 -0
- /package/{cjs → build-tsc}/sr25519/verify.d.ts +0 -0
- /package/{cjs → build-tsc}/sr25519/vrfSign.d.ts +0 -0
- /package/{cjs → build-tsc}/sr25519/vrfVerify.d.ts +0 -0
- /package/{cjs → build-tsc}/types.d.ts +0 -0
- /package/{cjs → build-tsc}/xxhash/index.d.ts +0 -0
- /package/{cjs → build-tsc}/xxhash/xxhash64.d.ts +0 -0
- /package/{cjs → build-tsc-cjs}/address/addressToEvm.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/check.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/checksum.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/decode.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/defaults.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/derive.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/encode.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/encodeDerived.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/encodeMulti.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/eq.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/evmToAddress.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/is.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/keyDerived.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/keyMulti.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/setSS58Format.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/sort.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/sshash.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/types.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/util.js +0 -0
- /package/{cjs → build-tsc-cjs}/address/validate.js +0 -0
- /package/{cjs → build-tsc-cjs}/base32/bs32.js +0 -0
- /package/{cjs → build-tsc-cjs}/base32/helpers.js +0 -0
- /package/{cjs → build-tsc-cjs}/base32/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/base58/bs58.js +0 -0
- /package/{cjs → build-tsc-cjs}/base58/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/base64/bs64.js +0 -0
- /package/{cjs → build-tsc-cjs}/base64/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/base64/pad.js +0 -0
- /package/{cjs → build-tsc-cjs}/base64/trim.js +0 -0
- /package/{cjs → build-tsc-cjs}/blake2/asU8a.js +0 -0
- /package/{cjs → build-tsc-cjs}/blake2/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/bn.js +0 -0
- /package/{cjs → build-tsc-cjs}/bundle.js +0 -0
- /package/{cjs → build-tsc-cjs}/bundleInit.js +0 -0
- /package/{cjs → build-tsc-cjs}/crypto.js +0 -0
- /package/{cjs → build-tsc-cjs}/ed25519/deriveHard.js +0 -0
- /package/{cjs → build-tsc-cjs}/ed25519/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/ed25519/pair/fromRandom.js +0 -0
- /package/{cjs → build-tsc-cjs}/ed25519/pair/fromSecret.js +0 -0
- /package/{cjs → build-tsc-cjs}/ed25519/pair/fromSeed.js +0 -0
- /package/{cjs → build-tsc-cjs}/ed25519/pair/fromString.js +0 -0
- /package/{cjs → build-tsc-cjs}/ed25519/sign.js +0 -0
- /package/{cjs → build-tsc-cjs}/ed25519/verify.js +0 -0
- /package/{cjs → build-tsc-cjs}/ethereum/encode.js +0 -0
- /package/{cjs → build-tsc-cjs}/ethereum/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/ethereum/isAddress.js +0 -0
- /package/{cjs → build-tsc-cjs}/ethereum/isChecksum.js +0 -0
- /package/{cjs → build-tsc-cjs}/hd/ethereum/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/hd/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/hd/ledger/derivePrivate.js +0 -0
- /package/{cjs → build-tsc-cjs}/hd/ledger/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/hd/ledger/master.js +0 -0
- /package/{cjs → build-tsc-cjs}/hd/validatePath.js +0 -0
- /package/{cjs → build-tsc-cjs}/helpers.js +0 -0
- /package/{cjs → build-tsc-cjs}/hmac/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/hmac/shaAsU8a.js +0 -0
- /package/{cjs → build-tsc-cjs}/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/json/constants.js +0 -0
- /package/{cjs → build-tsc-cjs}/json/decrypt.js +0 -0
- /package/{cjs → build-tsc-cjs}/json/decryptData.js +0 -0
- /package/{cjs → build-tsc-cjs}/json/encrypt.js +0 -0
- /package/{cjs → build-tsc-cjs}/json/encryptFormat.js +0 -0
- /package/{cjs → build-tsc-cjs}/json/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/json/types.js +0 -0
- /package/{cjs → build-tsc-cjs}/keccak/asU8a.js +0 -0
- /package/{cjs → build-tsc-cjs}/keccak/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/key/DeriveJunction.js +0 -0
- /package/{cjs → build-tsc-cjs}/key/extractPath.js +0 -0
- /package/{cjs → build-tsc-cjs}/key/extractSuri.js +0 -0
- /package/{cjs → build-tsc-cjs}/key/fromPath.js +0 -0
- /package/{cjs → build-tsc-cjs}/key/hdkdDerive.js +0 -0
- /package/{cjs → build-tsc-cjs}/key/hdkdEcdsa.js +0 -0
- /package/{cjs → build-tsc-cjs}/key/hdkdEd25519.js +0 -0
- /package/{cjs → build-tsc-cjs}/key/hdkdSr25519.js +0 -0
- /package/{cjs → build-tsc-cjs}/key/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/mnemonic/bip39.js +0 -0
- /package/{cjs → build-tsc-cjs}/mnemonic/generate.js +0 -0
- /package/{cjs → build-tsc-cjs}/mnemonic/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/mnemonic/toEntropy.js +0 -0
- /package/{cjs → build-tsc-cjs}/mnemonic/toLegacySeed.js +0 -0
- /package/{cjs → build-tsc-cjs}/mnemonic/toMiniSecret.js +0 -0
- /package/{cjs → build-tsc-cjs}/mnemonic/validate.js +0 -0
- /package/{cjs → build-tsc-cjs}/mnemonic/wordlists/en.js +0 -0
- /package/{cjs → build-tsc-cjs}/mnemonic/wordlists/es.js +0 -0
- /package/{cjs → build-tsc-cjs}/mnemonic/wordlists/fr.js +0 -0
- /package/{cjs → build-tsc-cjs}/mnemonic/wordlists/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/mnemonic/wordlists/it.js +0 -0
- /package/{cjs → build-tsc-cjs}/mnemonic/wordlists/jp.js +0 -0
- /package/{cjs → build-tsc-cjs}/mnemonic/wordlists/ko.js +0 -0
- /package/{cjs → build-tsc-cjs}/mnemonic/wordlists/zh-s.js +0 -0
- /package/{cjs → build-tsc-cjs}/mnemonic/wordlists/zh-t.js +0 -0
- /package/{cjs → build-tsc-cjs}/nacl/decrypt.js +0 -0
- /package/{cjs → build-tsc-cjs}/nacl/encrypt.js +0 -0
- /package/{cjs → build-tsc-cjs}/nacl/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/nacl/tweetnacl.js +0 -0
- /package/{cjs → build-tsc-cjs}/networks.js +0 -0
- /package/{cjs → build-tsc-cjs}/pbkdf2/encode.js +0 -0
- /package/{cjs → build-tsc-cjs}/pbkdf2/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/random/asNumber.js +0 -0
- /package/{cjs → build-tsc-cjs}/random/asU8a.js +0 -0
- /package/{cjs → build-tsc-cjs}/random/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/scrypt/defaults.js +0 -0
- /package/{cjs → build-tsc-cjs}/scrypt/encode.js +0 -0
- /package/{cjs → build-tsc-cjs}/scrypt/fromU8a.js +0 -0
- /package/{cjs → build-tsc-cjs}/scrypt/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/scrypt/toU8a.js +0 -0
- /package/{cjs → build-tsc-cjs}/scrypt/types.js +0 -0
- /package/{cjs → build-tsc-cjs}/secp256k1/compress.js +0 -0
- /package/{cjs → build-tsc-cjs}/secp256k1/deriveHard.js +0 -0
- /package/{cjs → build-tsc-cjs}/secp256k1/expand.js +0 -0
- /package/{cjs → build-tsc-cjs}/secp256k1/hasher.js +0 -0
- /package/{cjs → build-tsc-cjs}/secp256k1/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/secp256k1/pair/fromSeed.js +0 -0
- /package/{cjs → build-tsc-cjs}/secp256k1/recover.js +0 -0
- /package/{cjs → build-tsc-cjs}/secp256k1/sign.js +0 -0
- /package/{cjs → build-tsc-cjs}/secp256k1/tweakAdd.js +0 -0
- /package/{cjs → build-tsc-cjs}/secp256k1/types.js +0 -0
- /package/{cjs → build-tsc-cjs}/secp256k1/verify.js +0 -0
- /package/{cjs → build-tsc-cjs}/sha/asU8a.js +0 -0
- /package/{cjs → build-tsc-cjs}/sha/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/signature/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/signature/verify.js +0 -0
- /package/{cjs → build-tsc-cjs}/sr25519/agreement.js +0 -0
- /package/{cjs → build-tsc-cjs}/sr25519/derive.js +0 -0
- /package/{cjs → build-tsc-cjs}/sr25519/deriveHard.js +0 -0
- /package/{cjs → build-tsc-cjs}/sr25519/derivePublic.js +0 -0
- /package/{cjs → build-tsc-cjs}/sr25519/deriveSoft.js +0 -0
- /package/{cjs → build-tsc-cjs}/sr25519/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/sr25519/pair/fromSeed.js +0 -0
- /package/{cjs → build-tsc-cjs}/sr25519/pair/fromU8a.js +0 -0
- /package/{cjs → build-tsc-cjs}/sr25519/pair/toU8a.js +0 -0
- /package/{cjs → build-tsc-cjs}/sr25519/sign.js +0 -0
- /package/{cjs → build-tsc-cjs}/sr25519/verify.js +0 -0
- /package/{cjs → build-tsc-cjs}/sr25519/vrfSign.js +0 -0
- /package/{cjs → build-tsc-cjs}/sr25519/vrfVerify.js +0 -0
- /package/{cjs → build-tsc-cjs}/types.js +0 -0
- /package/{cjs → build-tsc-cjs}/xxhash/asU8a.js +0 -0
- /package/{cjs → build-tsc-cjs}/xxhash/index.js +0 -0
- /package/{cjs → build-tsc-cjs}/xxhash/xxhash64.js +0 -0
- /package/{address → build-tsc-esm/address}/addressToEvm.js +0 -0
- /package/{address → build-tsc-esm/address}/check.js +0 -0
- /package/{address → build-tsc-esm/address}/checksum.js +0 -0
- /package/{address → build-tsc-esm/address}/decode.js +0 -0
- /package/{address → build-tsc-esm/address}/defaults.js +0 -0
- /package/{address → build-tsc-esm/address}/derive.js +0 -0
- /package/{address → build-tsc-esm/address}/encode.js +0 -0
- /package/{address → build-tsc-esm/address}/encodeDerived.js +0 -0
- /package/{address → build-tsc-esm/address}/encodeMulti.js +0 -0
- /package/{address → build-tsc-esm/address}/eq.js +0 -0
- /package/{address → build-tsc-esm/address}/evmToAddress.js +0 -0
- /package/{address → build-tsc-esm/address}/index.js +0 -0
- /package/{address → build-tsc-esm/address}/is.js +0 -0
- /package/{address → build-tsc-esm/address}/keyDerived.js +0 -0
- /package/{address → build-tsc-esm/address}/keyMulti.js +0 -0
- /package/{address → build-tsc-esm/address}/setSS58Format.js +0 -0
- /package/{address → build-tsc-esm/address}/sort.js +0 -0
- /package/{address → build-tsc-esm/address}/sshash.js +0 -0
- /package/{address → build-tsc-esm/address}/types.js +0 -0
- /package/{address → build-tsc-esm/address}/util.js +0 -0
- /package/{address → build-tsc-esm/address}/validate.js +0 -0
- /package/{base32 → build-tsc-esm/base32}/bs32.js +0 -0
- /package/{base32 → build-tsc-esm/base32}/helpers.js +0 -0
- /package/{base32 → build-tsc-esm/base32}/index.js +0 -0
- /package/{base58 → build-tsc-esm/base58}/bs58.js +0 -0
- /package/{base58 → build-tsc-esm/base58}/index.js +0 -0
- /package/{base64 → build-tsc-esm/base64}/bs64.js +0 -0
- /package/{base64 → build-tsc-esm/base64}/index.js +0 -0
- /package/{base64 → build-tsc-esm/base64}/pad.js +0 -0
- /package/{base64 → build-tsc-esm/base64}/trim.js +0 -0
- /package/{blake2 → build-tsc-esm/blake2}/asU8a.js +0 -0
- /package/{blake2 → build-tsc-esm/blake2}/index.js +0 -0
- /package/{bn.js → build-tsc-esm/bn.js} +0 -0
- /package/{bundle.js → build-tsc-esm/bundle.js} +0 -0
- /package/{bundleInit.js → build-tsc-esm/bundleInit.js} +0 -0
- /package/{crypto.js → build-tsc-esm/crypto.js} +0 -0
- /package/{ed25519 → build-tsc-esm/ed25519}/deriveHard.js +0 -0
- /package/{ed25519 → build-tsc-esm/ed25519}/index.js +0 -0
- /package/{ed25519 → build-tsc-esm/ed25519}/pair/fromRandom.js +0 -0
- /package/{ed25519 → build-tsc-esm/ed25519}/pair/fromSecret.js +0 -0
- /package/{ed25519 → build-tsc-esm/ed25519}/pair/fromSeed.js +0 -0
- /package/{ed25519 → build-tsc-esm/ed25519}/pair/fromString.js +0 -0
- /package/{ed25519 → build-tsc-esm/ed25519}/sign.js +0 -0
- /package/{ed25519 → build-tsc-esm/ed25519}/verify.js +0 -0
- /package/{ethereum → build-tsc-esm/ethereum}/encode.js +0 -0
- /package/{ethereum → build-tsc-esm/ethereum}/index.js +0 -0
- /package/{ethereum → build-tsc-esm/ethereum}/isAddress.js +0 -0
- /package/{ethereum → build-tsc-esm/ethereum}/isChecksum.js +0 -0
- /package/{hd → build-tsc-esm/hd}/ethereum/index.js +0 -0
- /package/{hd → build-tsc-esm/hd}/index.js +0 -0
- /package/{hd → build-tsc-esm/hd}/ledger/derivePrivate.js +0 -0
- /package/{hd → build-tsc-esm/hd}/ledger/index.js +0 -0
- /package/{hd → build-tsc-esm/hd}/ledger/master.js +0 -0
- /package/{hd → build-tsc-esm/hd}/validatePath.js +0 -0
- /package/{helpers.js → build-tsc-esm/helpers.js} +0 -0
- /package/{hmac → build-tsc-esm/hmac}/index.js +0 -0
- /package/{hmac → build-tsc-esm/hmac}/shaAsU8a.js +0 -0
- /package/{index.js → build-tsc-esm/index.js} +0 -0
- /package/{json → build-tsc-esm/json}/constants.js +0 -0
- /package/{json → build-tsc-esm/json}/decrypt.js +0 -0
- /package/{json → build-tsc-esm/json}/decryptData.js +0 -0
- /package/{json → build-tsc-esm/json}/encrypt.js +0 -0
- /package/{json → build-tsc-esm/json}/encryptFormat.js +0 -0
- /package/{json → build-tsc-esm/json}/index.js +0 -0
- /package/{json → build-tsc-esm/json}/types.js +0 -0
- /package/{keccak → build-tsc-esm/keccak}/asU8a.js +0 -0
- /package/{keccak → build-tsc-esm/keccak}/index.js +0 -0
- /package/{key → build-tsc-esm/key}/DeriveJunction.js +0 -0
- /package/{key → build-tsc-esm/key}/extractPath.js +0 -0
- /package/{key → build-tsc-esm/key}/extractSuri.js +0 -0
- /package/{key → build-tsc-esm/key}/fromPath.js +0 -0
- /package/{key → build-tsc-esm/key}/hdkdDerive.js +0 -0
- /package/{key → build-tsc-esm/key}/hdkdEcdsa.js +0 -0
- /package/{key → build-tsc-esm/key}/hdkdEd25519.js +0 -0
- /package/{key → build-tsc-esm/key}/hdkdSr25519.js +0 -0
- /package/{key → build-tsc-esm/key}/index.js +0 -0
- /package/{mnemonic → build-tsc-esm/mnemonic}/bip39.js +0 -0
- /package/{mnemonic → build-tsc-esm/mnemonic}/generate.js +0 -0
- /package/{mnemonic → build-tsc-esm/mnemonic}/index.js +0 -0
- /package/{mnemonic → build-tsc-esm/mnemonic}/toEntropy.js +0 -0
- /package/{mnemonic → build-tsc-esm/mnemonic}/toLegacySeed.js +0 -0
- /package/{mnemonic → build-tsc-esm/mnemonic}/toMiniSecret.js +0 -0
- /package/{mnemonic → build-tsc-esm/mnemonic}/validate.js +0 -0
- /package/{mnemonic → build-tsc-esm/mnemonic}/wordlists/en.js +0 -0
- /package/{mnemonic → build-tsc-esm/mnemonic}/wordlists/es.js +0 -0
- /package/{mnemonic → build-tsc-esm/mnemonic}/wordlists/fr.js +0 -0
- /package/{mnemonic → build-tsc-esm/mnemonic}/wordlists/index.js +0 -0
- /package/{mnemonic → build-tsc-esm/mnemonic}/wordlists/it.js +0 -0
- /package/{mnemonic → build-tsc-esm/mnemonic}/wordlists/jp.js +0 -0
- /package/{mnemonic → build-tsc-esm/mnemonic}/wordlists/ko.js +0 -0
- /package/{mnemonic → build-tsc-esm/mnemonic}/wordlists/zh-s.js +0 -0
- /package/{mnemonic → build-tsc-esm/mnemonic}/wordlists/zh-t.js +0 -0
- /package/{nacl → build-tsc-esm/nacl}/decrypt.js +0 -0
- /package/{nacl → build-tsc-esm/nacl}/encrypt.js +0 -0
- /package/{nacl → build-tsc-esm/nacl}/index.js +0 -0
- /package/{nacl → build-tsc-esm/nacl}/tweetnacl.js +0 -0
- /package/{networks.js → build-tsc-esm/networks.js} +0 -0
- /package/{packageDetect.js → build-tsc-esm/packageDetect.js} +0 -0
- /package/{pbkdf2 → build-tsc-esm/pbkdf2}/encode.js +0 -0
- /package/{pbkdf2 → build-tsc-esm/pbkdf2}/index.js +0 -0
- /package/{random → build-tsc-esm/random}/asNumber.js +0 -0
- /package/{random → build-tsc-esm/random}/asU8a.js +0 -0
- /package/{random → build-tsc-esm/random}/index.js +0 -0
- /package/{scrypt → build-tsc-esm/scrypt}/defaults.js +0 -0
- /package/{scrypt → build-tsc-esm/scrypt}/encode.js +0 -0
- /package/{scrypt → build-tsc-esm/scrypt}/fromU8a.js +0 -0
- /package/{scrypt → build-tsc-esm/scrypt}/index.js +0 -0
- /package/{scrypt → build-tsc-esm/scrypt}/toU8a.js +0 -0
- /package/{scrypt → build-tsc-esm/scrypt}/types.js +0 -0
- /package/{secp256k1 → build-tsc-esm/secp256k1}/compress.js +0 -0
- /package/{secp256k1 → build-tsc-esm/secp256k1}/deriveHard.js +0 -0
- /package/{secp256k1 → build-tsc-esm/secp256k1}/expand.js +0 -0
- /package/{secp256k1 → build-tsc-esm/secp256k1}/hasher.js +0 -0
- /package/{secp256k1 → build-tsc-esm/secp256k1}/index.js +0 -0
- /package/{secp256k1 → build-tsc-esm/secp256k1}/pair/fromSeed.js +0 -0
- /package/{secp256k1 → build-tsc-esm/secp256k1}/recover.js +0 -0
- /package/{secp256k1 → build-tsc-esm/secp256k1}/sign.js +0 -0
- /package/{secp256k1 → build-tsc-esm/secp256k1}/tweakAdd.js +0 -0
- /package/{secp256k1 → build-tsc-esm/secp256k1}/types.js +0 -0
- /package/{secp256k1 → build-tsc-esm/secp256k1}/verify.js +0 -0
- /package/{sha → build-tsc-esm/sha}/asU8a.js +0 -0
- /package/{sha → build-tsc-esm/sha}/index.js +0 -0
- /package/{signature → build-tsc-esm/signature}/index.js +0 -0
- /package/{signature → build-tsc-esm/signature}/verify.js +0 -0
- /package/{sr25519 → build-tsc-esm/sr25519}/agreement.js +0 -0
- /package/{sr25519 → build-tsc-esm/sr25519}/derive.js +0 -0
- /package/{sr25519 → build-tsc-esm/sr25519}/deriveHard.js +0 -0
- /package/{sr25519 → build-tsc-esm/sr25519}/derivePublic.js +0 -0
- /package/{sr25519 → build-tsc-esm/sr25519}/deriveSoft.js +0 -0
- /package/{sr25519 → build-tsc-esm/sr25519}/index.js +0 -0
- /package/{sr25519 → build-tsc-esm/sr25519}/pair/fromSeed.js +0 -0
- /package/{sr25519 → build-tsc-esm/sr25519}/pair/fromU8a.js +0 -0
- /package/{sr25519 → build-tsc-esm/sr25519}/pair/toU8a.js +0 -0
- /package/{sr25519 → build-tsc-esm/sr25519}/sign.js +0 -0
- /package/{sr25519 → build-tsc-esm/sr25519}/verify.js +0 -0
- /package/{sr25519 → build-tsc-esm/sr25519}/vrfSign.js +0 -0
- /package/{sr25519 → build-tsc-esm/sr25519}/vrfVerify.js +0 -0
- /package/{types.js → build-tsc-esm/types.js} +0 -0
- /package/{xxhash → build-tsc-esm/xxhash}/asU8a.js +0 -0
- /package/{xxhash → build-tsc-esm/xxhash}/index.js +0 -0
- /package/{xxhash → build-tsc-esm/xxhash}/xxhash64.js +0 -0
|
@@ -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,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,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;
|
|
@@ -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;
|
|
@@ -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,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,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,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/build/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/build/types.js
ADDED
|
@@ -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 '@pezkuwi/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("@pezkuwi/util/types").HexString;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { hasBigInt, u8aToU8a } from '@pezkuwi/util';
|
|
2
|
+
import { isReady, twox } from '@pezkuwi/wasm-crypto';
|
|
3
|
+
import { createAsHex } from '../helpers.js';
|
|
4
|
+
import { xxhash64 } from './xxhash64.js';
|
|
5
|
+
/**
|
|
6
|
+
* @name xxhashAsU8a
|
|
7
|
+
* @summary Creates a xxhash64 u8a from the input.
|
|
8
|
+
* @description
|
|
9
|
+
* From either a `string`, `Uint8Array` or a `Buffer` input, create the xxhash64 and return the result as a `Uint8Array` with the specified `bitLength`.
|
|
10
|
+
* @example
|
|
11
|
+
* <BR>
|
|
12
|
+
*
|
|
13
|
+
* ```javascript
|
|
14
|
+
* import { xxhashAsU8a } from '@pezkuwi/util-crypto';
|
|
15
|
+
*
|
|
16
|
+
* xxhashAsU8a('abc'); // => 0x44bc2cf5ad770999
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
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;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @name xxhashAsHex
|
|
33
|
+
* @description Creates a xxhash64 hex from the input.
|
|
34
|
+
*/
|
|
35
|
+
export const xxhashAsHex = /*#__PURE__*/ createAsHex(xxhashAsU8a);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function xxhash64(input: Uint8Array, initSeed: bigint | number): Uint8Array;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { _0n, _1n } from '@pezkuwi/util';
|
|
2
|
+
import { BigInt } from '@pezkuwi/x-bigint';
|
|
3
|
+
const P64_1 = BigInt('11400714785074694791');
|
|
4
|
+
const P64_2 = BigInt('14029467366897019727');
|
|
5
|
+
const P64_3 = BigInt('1609587929392839161');
|
|
6
|
+
const P64_4 = BigInt('9650029242287828579');
|
|
7
|
+
const P64_5 = BigInt('2870177450012600261');
|
|
8
|
+
const U64 = BigInt('0xffffffffffffffff');
|
|
9
|
+
const _7n = BigInt(7);
|
|
10
|
+
const _11n = BigInt(11);
|
|
11
|
+
const _12n = BigInt(12);
|
|
12
|
+
const _16n = BigInt(16);
|
|
13
|
+
const _18n = BigInt(18);
|
|
14
|
+
const _23n = BigInt(23);
|
|
15
|
+
const _27n = BigInt(27);
|
|
16
|
+
const _29n = BigInt(29);
|
|
17
|
+
const _31n = BigInt(31);
|
|
18
|
+
const _32n = BigInt(32);
|
|
19
|
+
const _33n = BigInt(33);
|
|
20
|
+
const _64n = BigInt(64);
|
|
21
|
+
const _256n = BigInt(256);
|
|
22
|
+
function rotl(a, b) {
|
|
23
|
+
const c = a & U64;
|
|
24
|
+
return ((c << b) | (c >> (_64n - b))) & U64;
|
|
25
|
+
}
|
|
26
|
+
function fromU8a(u8a, p, count) {
|
|
27
|
+
const bigints = new Array(count);
|
|
28
|
+
let offset = 0;
|
|
29
|
+
for (let i = 0; i < count; i++, offset += 2) {
|
|
30
|
+
bigints[i] = BigInt(u8a[p + offset] | (u8a[p + 1 + offset] << 8));
|
|
31
|
+
}
|
|
32
|
+
let result = _0n;
|
|
33
|
+
for (let i = count - 1; i >= 0; i--) {
|
|
34
|
+
result = (result << _16n) + bigints[i];
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
function init(seed, input) {
|
|
39
|
+
const state = {
|
|
40
|
+
seed,
|
|
41
|
+
u8a: new Uint8Array(32),
|
|
42
|
+
u8asize: 0,
|
|
43
|
+
v1: seed + P64_1 + P64_2,
|
|
44
|
+
v2: seed + P64_2,
|
|
45
|
+
v3: seed,
|
|
46
|
+
v4: seed - P64_1
|
|
47
|
+
};
|
|
48
|
+
if (input.length < 32) {
|
|
49
|
+
state.u8a.set(input);
|
|
50
|
+
state.u8asize = input.length;
|
|
51
|
+
return state;
|
|
52
|
+
}
|
|
53
|
+
const limit = input.length - 32;
|
|
54
|
+
let p = 0;
|
|
55
|
+
if (limit >= 0) {
|
|
56
|
+
const adjustV = (v) => P64_1 * rotl(v + P64_2 * fromU8a(input, p, 4), _31n);
|
|
57
|
+
do {
|
|
58
|
+
state.v1 = adjustV(state.v1);
|
|
59
|
+
p += 8;
|
|
60
|
+
state.v2 = adjustV(state.v2);
|
|
61
|
+
p += 8;
|
|
62
|
+
state.v3 = adjustV(state.v3);
|
|
63
|
+
p += 8;
|
|
64
|
+
state.v4 = adjustV(state.v4);
|
|
65
|
+
p += 8;
|
|
66
|
+
} while (p <= limit);
|
|
67
|
+
}
|
|
68
|
+
if (p < input.length) {
|
|
69
|
+
state.u8a.set(input.subarray(p, input.length));
|
|
70
|
+
state.u8asize = input.length - p;
|
|
71
|
+
}
|
|
72
|
+
return state;
|
|
73
|
+
}
|
|
74
|
+
export function xxhash64(input, initSeed) {
|
|
75
|
+
const { seed, u8a, u8asize, v1, v2, v3, v4 } = init(BigInt(initSeed), input);
|
|
76
|
+
let p = 0;
|
|
77
|
+
let h64 = U64 & (BigInt(input.length) + (input.length >= 32
|
|
78
|
+
? (((((((((rotl(v1, _1n) + rotl(v2, _7n) + rotl(v3, _12n) + rotl(v4, _18n)) ^ (P64_1 * rotl(v1 * P64_2, _31n))) * P64_1 + P64_4) ^ (P64_1 * rotl(v2 * P64_2, _31n))) * P64_1 + P64_4) ^ (P64_1 * rotl(v3 * P64_2, _31n))) * P64_1 + P64_4) ^ (P64_1 * rotl(v4 * P64_2, _31n))) * P64_1 + P64_4)
|
|
79
|
+
: (seed + P64_5)));
|
|
80
|
+
while (p <= (u8asize - 8)) {
|
|
81
|
+
h64 = U64 & (P64_4 + P64_1 * rotl(h64 ^ (P64_1 * rotl(P64_2 * fromU8a(u8a, p, 4), _31n)), _27n));
|
|
82
|
+
p += 8;
|
|
83
|
+
}
|
|
84
|
+
if ((p + 4) <= u8asize) {
|
|
85
|
+
h64 = U64 & (P64_3 + P64_2 * rotl(h64 ^ (P64_1 * fromU8a(u8a, p, 2)), _23n));
|
|
86
|
+
p += 4;
|
|
87
|
+
}
|
|
88
|
+
while (p < u8asize) {
|
|
89
|
+
h64 = U64 & (P64_1 * rotl(h64 ^ (P64_5 * BigInt(u8a[p++])), _11n));
|
|
90
|
+
}
|
|
91
|
+
h64 = U64 & (P64_2 * (h64 ^ (h64 >> _33n)));
|
|
92
|
+
h64 = U64 & (P64_3 * (h64 ^ (h64 >> _29n)));
|
|
93
|
+
h64 = U64 & (h64 ^ (h64 >> _32n));
|
|
94
|
+
const result = new Uint8Array(8);
|
|
95
|
+
for (let i = 7; i >= 0; i--) {
|
|
96
|
+
result[i] = Number(h64 % _256n);
|
|
97
|
+
h64 = h64 / _256n;
|
|
98
|
+
}
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# @pezkuwi/util-crypto
|
|
2
|
+
|
|
3
|
+
Various useful cyrpto utility functions that are used across all projects in the [@pezkuwi](https://pezkuwi.js.org) namespace. It provides utility functions with additional safety checks, allowing not only for consistent coding, but also reducing the general boilerplate.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
Installation -
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
yarn add @pezkuwi/util-crypto
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Functions can be imported as follows:
|
|
14
|
+
|
|
15
|
+
```js
|
|
16
|
+
import { mnemonicGenerate } from 'https://deno.land/x/pezkuwi/util-crypto/mod.ts';
|
|
17
|
+
```
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
|
|
2
|
+
import { decodeAddress } from './decode.ts';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @name addressToEvm
|
|
6
|
+
* @summary Converts an SS58 address to its corresponding EVM address.
|
|
7
|
+
*/
|
|
8
|
+
export function addressToEvm (address: string | Uint8Array, ignoreChecksum?: boolean): Uint8Array {
|
|
9
|
+
return decodeAddress(address, ignoreChecksum).subarray(0, 20);
|
|
10
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
|
|
2
|
+
import type { Prefix } from './types.ts';
|
|
3
|
+
|
|
4
|
+
import { base58Decode } from '../base58/index.ts';
|
|
5
|
+
import { checkAddressChecksum } from './checksum.ts';
|
|
6
|
+
import { defaults } from './defaults.ts';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @name checkAddress
|
|
10
|
+
* @summary Validates an ss58 address.
|
|
11
|
+
* @description
|
|
12
|
+
* From the provided input, validate that the address is a valid input.
|
|
13
|
+
*/
|
|
14
|
+
export function checkAddress (address: string, prefix: Prefix): [boolean, string | null] {
|
|
15
|
+
let decoded;
|
|
16
|
+
|
|
17
|
+
try {
|
|
18
|
+
decoded = base58Decode(address);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
return [false, (error as Error).message];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const [isValid,,, ss58Decoded] = checkAddressChecksum(decoded);
|
|
24
|
+
|
|
25
|
+
if (ss58Decoded !== prefix) {
|
|
26
|
+
return [false, `Prefix mismatch, expected ${prefix}, found ${ss58Decoded}`];
|
|
27
|
+
} else if (!defaults.allowedEncodedLengths.includes(decoded.length)) {
|
|
28
|
+
return [false, 'Invalid decoded address length'];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return [isValid, isValid ? null : 'Invalid decoded address checksum'];
|
|
32
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
|
|
2
|
+
import { sshash } from './sshash.ts';
|
|
3
|
+
|
|
4
|
+
export function checkAddressChecksum (decoded: Uint8Array): [boolean, number, number, number] {
|
|
5
|
+
const ss58Length = (decoded[0] & 0b0100_0000) ? 2 : 1;
|
|
6
|
+
const ss58Decoded = ss58Length === 1
|
|
7
|
+
? decoded[0]
|
|
8
|
+
: ((decoded[0] & 0b0011_1111) << 2) | (decoded[1] >> 6) | ((decoded[1] & 0b0011_1111) << 8);
|
|
9
|
+
|
|
10
|
+
// 32/33 bytes public + 2 bytes checksum + prefix
|
|
11
|
+
const isPublicKey = [34 + ss58Length, 35 + ss58Length].includes(decoded.length);
|
|
12
|
+
const length = decoded.length - (isPublicKey ? 2 : 1);
|
|
13
|
+
|
|
14
|
+
// calculate the hash and do the checksum byte checks
|
|
15
|
+
const hash = sshash(decoded.subarray(0, length));
|
|
16
|
+
const isValid = (decoded[0] & 0b1000_0000) === 0 && ![46, 47].includes(decoded[0]) && (
|
|
17
|
+
isPublicKey
|
|
18
|
+
? decoded[decoded.length - 2] === hash[0] && decoded[decoded.length - 1] === hash[1]
|
|
19
|
+
: decoded[decoded.length - 1] === hash[0]
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
return [isValid, length, ss58Length, ss58Decoded];
|
|
23
|
+
}
|