@pezkuwi/util-crypto 14.0.10 → 14.0.11
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/address/addressToEvm.d.ts +5 -0
- package/address/addressToEvm.js +8 -0
- package/address/check.d.ts +8 -0
- package/address/check.js +26 -0
- package/address/checksum.d.ts +1 -0
- package/address/checksum.js +16 -0
- package/address/decode.d.ts +2 -0
- package/address/decode.js +29 -0
- package/address/defaults.d.ts +6 -0
- package/address/defaults.js +8 -0
- package/address/derive.d.ts +8 -0
- package/address/derive.js +24 -0
- package/address/encode.d.ts +2 -0
- package/address/encode.js +23 -0
- package/address/encodeDerived.d.ts +9 -0
- package/address/encodeDerived.js +12 -0
- package/address/encodeMulti.d.ts +9 -0
- package/address/encodeMulti.js +11 -0
- package/address/eq.d.ts +15 -0
- package/address/eq.js +19 -0
- package/address/evmToAddress.d.ts +7 -0
- package/address/evmToAddress.js +14 -0
- package/address/index.d.ts +16 -0
- package/address/index.js +16 -0
- package/address/is.d.ts +2 -0
- package/address/is.js +9 -0
- package/address/keyDerived.d.ts +2 -0
- package/address/keyDerived.js +8 -0
- package/address/keyMulti.d.ts +2 -0
- package/address/keyMulti.js +8 -0
- package/address/setSS58Format.d.ts +6 -0
- package/address/setSS58Format.js +11 -0
- package/address/sort.d.ts +2 -0
- package/address/sort.js +7 -0
- package/address/sshash.d.ts +1 -0
- package/address/sshash.js +6 -0
- package/address/types.d.ts +1 -0
- package/address/types.js +1 -0
- package/address/util.d.ts +1 -0
- package/address/util.js +4 -0
- package/address/validate.d.ts +2 -0
- package/address/validate.js +4 -0
- package/base32/bs32.d.ts +26 -0
- package/base32/bs32.js +40 -0
- package/base32/helpers.d.ts +25 -0
- package/base32/helpers.js +61 -0
- package/base32/index.d.ts +4 -0
- package/base32/index.js +4 -0
- package/base58/bs58.d.ts +26 -0
- package/base58/bs58.js +34 -0
- package/base58/index.d.ts +4 -0
- package/base58/index.js +4 -0
- package/base64/bs64.d.ts +26 -0
- package/base64/bs64.js +34 -0
- package/base64/index.d.ts +6 -0
- package/base64/index.js +6 -0
- package/base64/pad.d.ts +5 -0
- package/base64/pad.js +7 -0
- package/base64/trim.d.ts +5 -0
- package/base64/trim.js +10 -0
- package/blake2/asU8a.d.ts +20 -0
- package/blake2/asU8a.js +32 -0
- package/blake2/index.d.ts +4 -0
- package/blake2/index.js +4 -0
- package/bn.d.ts +30 -0
- package/bn.js +8 -0
- package/bundle-pezkuwi-util-crypto.js +8251 -0
- package/bundle.d.ts +26 -0
- package/bundle.js +26 -0
- package/bundleInit.d.ts +1 -0
- package/bundleInit.js +5 -0
- package/cjs/address/addressToEvm.d.ts +5 -0
- package/cjs/address/addressToEvm.js +11 -0
- package/cjs/address/check.d.ts +8 -0
- package/cjs/address/check.js +29 -0
- package/cjs/address/checksum.d.ts +1 -0
- package/cjs/address/checksum.js +19 -0
- package/cjs/address/decode.d.ts +2 -0
- package/cjs/address/decode.js +32 -0
- package/cjs/address/defaults.d.ts +6 -0
- package/cjs/address/defaults.js +11 -0
- package/cjs/address/derive.d.ts +8 -0
- package/cjs/address/derive.js +27 -0
- package/cjs/address/encode.d.ts +2 -0
- package/cjs/address/encode.js +26 -0
- package/cjs/address/encodeDerived.d.ts +9 -0
- package/cjs/address/encodeDerived.js +15 -0
- package/cjs/address/encodeMulti.d.ts +9 -0
- package/cjs/address/encodeMulti.js +14 -0
- package/cjs/address/eq.d.ts +15 -0
- package/cjs/address/eq.js +22 -0
- package/cjs/address/evmToAddress.d.ts +7 -0
- package/cjs/address/evmToAddress.js +17 -0
- package/cjs/address/index.d.ts +16 -0
- package/cjs/address/index.js +35 -0
- package/cjs/address/is.d.ts +2 -0
- package/cjs/address/is.js +12 -0
- package/cjs/address/keyDerived.d.ts +2 -0
- package/cjs/address/keyDerived.js +11 -0
- package/cjs/address/keyMulti.d.ts +2 -0
- package/cjs/address/keyMulti.js +11 -0
- package/cjs/address/setSS58Format.d.ts +6 -0
- package/cjs/address/setSS58Format.js +14 -0
- package/cjs/address/sort.d.ts +2 -0
- package/cjs/address/sort.js +10 -0
- package/cjs/address/sshash.d.ts +1 -0
- package/cjs/address/sshash.js +9 -0
- package/cjs/address/types.d.ts +1 -0
- package/cjs/address/types.js +2 -0
- package/cjs/address/util.d.ts +1 -0
- package/cjs/address/util.js +7 -0
- package/cjs/address/validate.d.ts +2 -0
- package/cjs/address/validate.js +7 -0
- package/cjs/base32/bs32.d.ts +26 -0
- package/cjs/base32/bs32.js +43 -0
- package/cjs/base32/helpers.d.ts +25 -0
- package/cjs/base32/helpers.js +67 -0
- package/cjs/base32/index.d.ts +4 -0
- package/cjs/base32/index.js +11 -0
- package/cjs/base58/bs58.d.ts +26 -0
- package/cjs/base58/bs58.js +37 -0
- package/cjs/base58/index.d.ts +4 -0
- package/cjs/base58/index.js +11 -0
- package/cjs/base64/bs64.d.ts +26 -0
- package/cjs/base64/bs64.js +37 -0
- package/cjs/base64/index.d.ts +6 -0
- package/cjs/base64/index.js +15 -0
- package/cjs/base64/pad.d.ts +5 -0
- package/cjs/base64/pad.js +10 -0
- package/cjs/base64/trim.d.ts +5 -0
- package/cjs/base64/trim.js +13 -0
- package/cjs/blake2/asU8a.d.ts +20 -0
- package/cjs/blake2/asU8a.js +36 -0
- package/cjs/blake2/index.d.ts +4 -0
- package/cjs/blake2/index.js +9 -0
- package/cjs/bn.d.ts +30 -0
- package/cjs/bn.js +11 -0
- package/cjs/bundle.d.ts +26 -0
- package/cjs/bundle.js +31 -0
- package/cjs/bundleInit.d.ts +1 -0
- package/cjs/bundleInit.js +7 -0
- package/cjs/crypto.d.ts +3 -0
- package/cjs/crypto.js +16 -0
- package/cjs/ed25519/deriveHard.d.ts +1 -0
- package/cjs/ed25519/deriveHard.js +12 -0
- package/cjs/ed25519/index.d.ts +10 -0
- package/cjs/ed25519/index.js +20 -0
- package/cjs/ed25519/pair/fromRandom.d.ts +16 -0
- package/cjs/ed25519/pair/fromRandom.js +22 -0
- package/cjs/ed25519/pair/fromSecret.d.ts +16 -0
- package/cjs/ed25519/pair/fromSecret.js +26 -0
- package/cjs/ed25519/pair/fromSeed.d.ts +16 -0
- package/cjs/ed25519/pair/fromSeed.js +34 -0
- package/cjs/ed25519/pair/fromString.d.ts +16 -0
- package/cjs/ed25519/pair/fromString.js +23 -0
- package/cjs/ed25519/sign.d.ts +16 -0
- package/cjs/ed25519/sign.js +33 -0
- package/cjs/ed25519/verify.d.ts +15 -0
- package/cjs/ed25519/verify.js +39 -0
- package/cjs/ethereum/encode.d.ts +2 -0
- package/cjs/ethereum/encode.js +28 -0
- package/cjs/ethereum/index.d.ts +3 -0
- package/cjs/ethereum/index.js +9 -0
- package/cjs/ethereum/isAddress.d.ts +1 -0
- package/cjs/ethereum/isAddress.js +14 -0
- package/cjs/ethereum/isChecksum.d.ts +1 -0
- package/cjs/ethereum/isChecksum.js +20 -0
- package/cjs/hd/ethereum/index.d.ts +2 -0
- package/cjs/hd/ethereum/index.js +47 -0
- package/cjs/hd/index.d.ts +3 -0
- package/cjs/hd/index.js +9 -0
- package/cjs/hd/ledger/derivePrivate.d.ts +1 -0
- package/cjs/hd/ledger/derivePrivate.js +15 -0
- package/cjs/hd/ledger/index.d.ts +2 -0
- package/cjs/hd/ledger/index.js +33 -0
- package/cjs/hd/ledger/master.d.ts +1 -0
- package/cjs/hd/ledger/master.js +19 -0
- package/cjs/hd/validatePath.d.ts +2 -0
- package/cjs/hd/validatePath.js +20 -0
- package/cjs/helpers.d.ts +12 -0
- package/cjs/helpers.js +24 -0
- package/cjs/hmac/index.d.ts +1 -0
- package/cjs/hmac/index.js +7 -0
- package/cjs/hmac/shaAsU8a.d.ts +15 -0
- package/cjs/hmac/shaAsU8a.js +40 -0
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +5 -0
- package/cjs/json/constants.d.ts +6 -0
- package/cjs/json/constants.js +8 -0
- package/cjs/json/decrypt.d.ts +2 -0
- package/cjs/json/decrypt.js +16 -0
- package/cjs/json/decryptData.d.ts +2 -0
- package/cjs/json/decryptData.js +32 -0
- package/cjs/json/encrypt.d.ts +2 -0
- package/cjs/json/encrypt.js +18 -0
- package/cjs/json/encryptFormat.d.ts +2 -0
- package/cjs/json/encryptFormat.js +17 -0
- package/cjs/json/index.d.ts +4 -0
- package/cjs/json/index.js +11 -0
- package/cjs/json/types.d.ts +16 -0
- package/cjs/json/types.js +2 -0
- package/cjs/keccak/asU8a.d.ts +30 -0
- package/cjs/keccak/asU8a.js +36 -0
- package/cjs/keccak/index.d.ts +4 -0
- package/cjs/keccak/index.js +11 -0
- package/cjs/key/DeriveJunction.d.ts +12 -0
- package/cjs/key/DeriveJunction.js +62 -0
- package/cjs/key/extractPath.d.ts +9 -0
- package/cjs/key/extractPath.js +26 -0
- package/cjs/key/extractSuri.d.ts +11 -0
- package/cjs/key/extractSuri.js +25 -0
- package/cjs/key/fromPath.d.ts +3 -0
- package/cjs/key/fromPath.js +21 -0
- package/cjs/key/hdkdDerive.d.ts +3 -0
- package/cjs/key/hdkdDerive.js +11 -0
- package/cjs/key/hdkdEcdsa.d.ts +1 -0
- package/cjs/key/hdkdEcdsa.js +7 -0
- package/cjs/key/hdkdEd25519.d.ts +1 -0
- package/cjs/key/hdkdEd25519.js +6 -0
- package/cjs/key/hdkdSr25519.d.ts +3 -0
- package/cjs/key/hdkdSr25519.js +10 -0
- package/cjs/key/index.d.ts +9 -0
- package/cjs/key/index.js +18 -0
- package/cjs/mnemonic/bip39.d.ts +5 -0
- package/cjs/mnemonic/bip39.js +90 -0
- package/cjs/mnemonic/generate.d.ts +13 -0
- package/cjs/mnemonic/generate.js +23 -0
- package/cjs/mnemonic/index.d.ts +8 -0
- package/cjs/mnemonic/index.js +16 -0
- package/cjs/mnemonic/toEntropy.d.ts +1 -0
- package/cjs/mnemonic/toEntropy.js +11 -0
- package/cjs/mnemonic/toLegacySeed.d.ts +18 -0
- package/cjs/mnemonic/toLegacySeed.js +37 -0
- package/cjs/mnemonic/toMiniSecret.d.ts +1 -0
- package/cjs/mnemonic/toMiniSecret.js +20 -0
- package/cjs/mnemonic/validate.d.ts +14 -0
- package/cjs/mnemonic/validate.js +24 -0
- package/cjs/mnemonic/wordlists/en.d.ts +2 -0
- package/cjs/mnemonic/wordlists/en.js +3 -0
- package/cjs/mnemonic/wordlists/es.d.ts +2 -0
- package/cjs/mnemonic/wordlists/es.js +3 -0
- package/cjs/mnemonic/wordlists/fr.d.ts +2 -0
- package/cjs/mnemonic/wordlists/fr.js +3 -0
- package/cjs/mnemonic/wordlists/index.d.ts +8 -0
- package/cjs/mnemonic/wordlists/index.js +20 -0
- package/cjs/mnemonic/wordlists/it.d.ts +2 -0
- package/cjs/mnemonic/wordlists/it.js +3 -0
- package/cjs/mnemonic/wordlists/jp.d.ts +2 -0
- package/cjs/mnemonic/wordlists/jp.js +3 -0
- package/cjs/mnemonic/wordlists/ko.d.ts +2 -0
- package/cjs/mnemonic/wordlists/ko.js +3 -0
- package/cjs/mnemonic/wordlists/zh-s.d.ts +2 -0
- package/cjs/mnemonic/wordlists/zh-s.js +3 -0
- package/cjs/mnemonic/wordlists/zh-t.d.ts +2 -0
- package/cjs/mnemonic/wordlists/zh-t.js +3 -0
- package/cjs/nacl/decrypt.d.ts +15 -0
- package/cjs/nacl/decrypt.js +21 -0
- package/cjs/nacl/encrypt.d.ts +20 -0
- package/cjs/nacl/encrypt.js +25 -0
- package/cjs/nacl/index.d.ts +5 -0
- package/cjs/nacl/index.js +10 -0
- package/cjs/nacl/tweetnacl.d.ts +2 -0
- package/cjs/nacl/tweetnacl.js +238 -0
- package/cjs/networks.d.ts +1 -0
- package/cjs/networks.js +7 -0
- package/cjs/package.json +3 -0
- package/cjs/packageDetect.d.ts +1 -0
- package/cjs/packageDetect.js +8 -0
- package/cjs/packageInfo.d.ts +6 -0
- package/cjs/packageInfo.js +4 -0
- package/cjs/pbkdf2/encode.d.ts +7 -0
- package/cjs/pbkdf2/encode.js +19 -0
- package/cjs/pbkdf2/index.d.ts +1 -0
- package/cjs/pbkdf2/index.js +5 -0
- package/cjs/random/asNumber.d.ts +15 -0
- package/cjs/random/asNumber.js +23 -0
- package/cjs/random/asU8a.d.ts +20 -0
- package/cjs/random/asU8a.js +28 -0
- package/cjs/random/index.d.ts +5 -0
- package/cjs/random/index.js +11 -0
- package/cjs/scrypt/defaults.d.ts +3 -0
- package/cjs/scrypt/defaults.js +16 -0
- package/cjs/scrypt/encode.d.ts +8 -0
- package/cjs/scrypt/encode.js +18 -0
- package/cjs/scrypt/fromU8a.d.ts +7 -0
- package/cjs/scrypt/fromU8a.js +27 -0
- package/cjs/scrypt/index.d.ts +3 -0
- package/cjs/scrypt/index.js +9 -0
- package/cjs/scrypt/toU8a.d.ts +2 -0
- package/cjs/scrypt/toU8a.js +8 -0
- package/cjs/scrypt/types.d.ts +6 -0
- package/cjs/scrypt/types.js +2 -0
- package/cjs/secp256k1/compress.d.ts +1 -0
- package/cjs/secp256k1/compress.js +17 -0
- package/cjs/secp256k1/deriveHard.d.ts +1 -0
- package/cjs/secp256k1/deriveHard.js +13 -0
- package/cjs/secp256k1/expand.d.ts +1 -0
- package/cjs/secp256k1/expand.js +20 -0
- package/cjs/secp256k1/hasher.d.ts +2 -0
- package/cjs/secp256k1/hasher.js +10 -0
- package/cjs/secp256k1/index.d.ts +7 -0
- package/cjs/secp256k1/index.js +17 -0
- package/cjs/secp256k1/pair/fromSeed.d.ts +6 -0
- package/cjs/secp256k1/pair/fromSeed.js +34 -0
- package/cjs/secp256k1/recover.d.ts +6 -0
- package/cjs/secp256k1/recover.js +29 -0
- package/cjs/secp256k1/sign.d.ts +7 -0
- package/cjs/secp256k1/sign.js +23 -0
- package/cjs/secp256k1/tweakAdd.d.ts +1 -0
- package/cjs/secp256k1/tweakAdd.js +48 -0
- package/cjs/secp256k1/types.d.ts +1 -0
- package/cjs/secp256k1/types.js +2 -0
- package/cjs/secp256k1/verify.d.ts +6 -0
- package/cjs/secp256k1/verify.js +23 -0
- package/cjs/sha/asU8a.d.ts +15 -0
- package/cjs/sha/asU8a.js +22 -0
- package/cjs/sha/index.d.ts +4 -0
- package/cjs/sha/index.js +10 -0
- package/cjs/signature/index.d.ts +4 -0
- package/cjs/signature/index.js +8 -0
- package/cjs/signature/verify.d.ts +2 -0
- package/cjs/signature/verify.js +81 -0
- package/cjs/sr25519/agreement.d.ts +5 -0
- package/cjs/sr25519/agreement.js +20 -0
- package/cjs/sr25519/derive.d.ts +2 -0
- package/cjs/sr25519/derive.js +16 -0
- package/cjs/sr25519/deriveHard.d.ts +1 -0
- package/cjs/sr25519/deriveHard.js +7 -0
- package/cjs/sr25519/derivePublic.d.ts +1 -0
- package/cjs/sr25519/derivePublic.js +16 -0
- package/cjs/sr25519/deriveSoft.d.ts +1 -0
- package/cjs/sr25519/deriveSoft.js +7 -0
- package/cjs/sr25519/index.d.ts +9 -0
- package/cjs/sr25519/index.js +21 -0
- package/cjs/sr25519/pair/fromSeed.d.ts +6 -0
- package/cjs/sr25519/pair/fromSeed.js +22 -0
- package/cjs/sr25519/pair/fromU8a.d.ts +2 -0
- package/cjs/sr25519/pair/fromU8a.js +17 -0
- package/cjs/sr25519/pair/toU8a.d.ts +2 -0
- package/cjs/sr25519/pair/toU8a.js +7 -0
- package/cjs/sr25519/sign.d.ts +6 -0
- package/cjs/sr25519/sign.js +19 -0
- package/cjs/sr25519/verify.d.ts +5 -0
- package/cjs/sr25519/verify.js +21 -0
- package/cjs/sr25519/vrfSign.d.ts +6 -0
- package/cjs/sr25519/vrfSign.js +19 -0
- package/cjs/sr25519/vrfVerify.d.ts +5 -0
- package/cjs/sr25519/vrfVerify.js +22 -0
- package/cjs/types.d.ts +26 -0
- package/cjs/types.js +5 -0
- package/cjs/xxhash/asU8a.d.ts +20 -0
- package/cjs/xxhash/asU8a.js +39 -0
- package/cjs/xxhash/index.d.ts +4 -0
- package/cjs/xxhash/index.js +9 -0
- package/cjs/xxhash/xxhash64.d.ts +1 -0
- package/cjs/xxhash/xxhash64.js +103 -0
- package/crypto.d.ts +3 -0
- package/crypto.js +12 -0
- package/ed25519/deriveHard.d.ts +1 -0
- package/ed25519/deriveHard.js +9 -0
- package/ed25519/index.d.ts +10 -0
- package/ed25519/index.js +10 -0
- package/ed25519/pair/fromRandom.d.ts +16 -0
- package/ed25519/pair/fromRandom.js +19 -0
- package/ed25519/pair/fromSecret.d.ts +16 -0
- package/ed25519/pair/fromSecret.js +23 -0
- package/ed25519/pair/fromSeed.d.ts +16 -0
- package/ed25519/pair/fromSeed.js +31 -0
- package/ed25519/pair/fromString.d.ts +16 -0
- package/ed25519/pair/fromString.js +20 -0
- package/ed25519/sign.d.ts +16 -0
- package/ed25519/sign.js +30 -0
- package/ed25519/verify.d.ts +15 -0
- package/ed25519/verify.js +36 -0
- package/ethereum/encode.d.ts +2 -0
- package/ethereum/encode.js +25 -0
- package/ethereum/index.d.ts +3 -0
- package/ethereum/index.js +3 -0
- package/ethereum/isAddress.d.ts +1 -0
- package/ethereum/isAddress.js +11 -0
- package/ethereum/isChecksum.d.ts +1 -0
- package/ethereum/isChecksum.js +17 -0
- package/hd/ethereum/index.d.ts +2 -0
- package/hd/ethereum/index.js +44 -0
- package/hd/index.d.ts +3 -0
- package/hd/index.js +3 -0
- package/hd/ledger/derivePrivate.d.ts +1 -0
- package/hd/ledger/derivePrivate.js +12 -0
- package/hd/ledger/index.d.ts +2 -0
- package/hd/ledger/index.js +30 -0
- package/hd/ledger/master.d.ts +1 -0
- package/hd/ledger/master.js +16 -0
- package/hd/validatePath.d.ts +2 -0
- package/hd/validatePath.js +16 -0
- package/helpers.d.ts +12 -0
- package/helpers.js +19 -0
- package/hmac/index.d.ts +1 -0
- package/hmac/index.js +1 -0
- package/hmac/shaAsU8a.d.ts +15 -0
- package/hmac/shaAsU8a.js +36 -0
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/json/constants.d.ts +6 -0
- package/json/constants.js +5 -0
- package/json/decrypt.d.ts +2 -0
- package/json/decrypt.js +13 -0
- package/json/decryptData.d.ts +2 -0
- package/json/decryptData.js +29 -0
- package/json/encrypt.d.ts +2 -0
- package/json/encrypt.js +15 -0
- package/json/encryptFormat.d.ts +2 -0
- package/json/encryptFormat.js +14 -0
- package/json/index.d.ts +4 -0
- package/json/index.js +4 -0
- package/json/types.d.ts +16 -0
- package/json/types.js +1 -0
- package/keccak/asU8a.d.ts +30 -0
- package/keccak/asU8a.js +33 -0
- package/keccak/index.d.ts +4 -0
- package/keccak/index.js +4 -0
- package/key/DeriveJunction.d.ts +12 -0
- package/key/DeriveJunction.js +58 -0
- package/key/extractPath.d.ts +9 -0
- package/key/extractPath.js +23 -0
- package/key/extractSuri.d.ts +11 -0
- package/key/extractSuri.js +22 -0
- package/key/fromPath.d.ts +3 -0
- package/key/fromPath.js +18 -0
- package/key/hdkdDerive.d.ts +3 -0
- package/key/hdkdDerive.js +8 -0
- package/key/hdkdEcdsa.d.ts +1 -0
- package/key/hdkdEcdsa.js +4 -0
- package/key/hdkdEd25519.d.ts +1 -0
- package/key/hdkdEd25519.js +3 -0
- package/key/hdkdSr25519.d.ts +3 -0
- package/key/hdkdSr25519.js +7 -0
- package/key/index.d.ts +9 -0
- package/key/index.js +9 -0
- package/mnemonic/bip39.d.ts +5 -0
- package/mnemonic/bip39.js +82 -0
- package/mnemonic/generate.d.ts +13 -0
- package/mnemonic/generate.js +20 -0
- package/mnemonic/index.d.ts +8 -0
- package/mnemonic/index.js +8 -0
- package/mnemonic/toEntropy.d.ts +1 -0
- package/mnemonic/toEntropy.js +8 -0
- package/mnemonic/toLegacySeed.d.ts +18 -0
- package/mnemonic/toLegacySeed.js +34 -0
- package/mnemonic/toMiniSecret.d.ts +1 -0
- package/mnemonic/toMiniSecret.js +17 -0
- package/mnemonic/validate.d.ts +14 -0
- package/mnemonic/validate.js +21 -0
- package/mnemonic/wordlists/en.d.ts +2 -0
- package/mnemonic/wordlists/en.js +1 -0
- package/mnemonic/wordlists/es.d.ts +2 -0
- package/mnemonic/wordlists/es.js +1 -0
- package/mnemonic/wordlists/fr.d.ts +2 -0
- package/mnemonic/wordlists/fr.js +1 -0
- package/mnemonic/wordlists/index.d.ts +8 -0
- package/mnemonic/wordlists/index.js +8 -0
- package/mnemonic/wordlists/it.d.ts +2 -0
- package/mnemonic/wordlists/it.js +1 -0
- package/mnemonic/wordlists/jp.d.ts +2 -0
- package/mnemonic/wordlists/jp.js +1 -0
- package/mnemonic/wordlists/ko.d.ts +2 -0
- package/mnemonic/wordlists/ko.js +1 -0
- package/mnemonic/wordlists/zh-s.d.ts +2 -0
- package/mnemonic/wordlists/zh-s.js +1 -0
- package/mnemonic/wordlists/zh-t.d.ts +2 -0
- package/mnemonic/wordlists/zh-t.js +1 -0
- package/nacl/decrypt.d.ts +15 -0
- package/nacl/decrypt.js +18 -0
- package/nacl/encrypt.d.ts +20 -0
- package/nacl/encrypt.js +22 -0
- package/nacl/index.d.ts +5 -0
- package/nacl/index.js +5 -0
- package/nacl/tweetnacl.d.ts +2 -0
- package/nacl/tweetnacl.js +234 -0
- package/networks.d.ts +1 -0
- package/networks.js +1 -0
- package/package.json +2022 -10
- package/packageDetect.d.ts +1 -0
- package/packageDetect.js +6 -0
- package/packageInfo.d.ts +6 -0
- package/packageInfo.js +1 -0
- package/pbkdf2/encode.d.ts +7 -0
- package/pbkdf2/encode.js +16 -0
- package/pbkdf2/index.d.ts +1 -0
- package/pbkdf2/index.js +1 -0
- package/random/asNumber.d.ts +15 -0
- package/random/asNumber.js +20 -0
- package/random/asU8a.d.ts +20 -0
- package/random/asU8a.js +24 -0
- package/random/index.d.ts +5 -0
- package/random/index.js +5 -0
- package/scrypt/defaults.d.ts +3 -0
- package/scrypt/defaults.js +13 -0
- package/scrypt/encode.d.ts +8 -0
- package/scrypt/encode.js +15 -0
- package/scrypt/fromU8a.d.ts +7 -0
- package/scrypt/fromU8a.js +24 -0
- package/scrypt/index.d.ts +3 -0
- package/scrypt/index.js +3 -0
- package/scrypt/toU8a.d.ts +2 -0
- package/scrypt/toU8a.js +5 -0
- package/scrypt/types.d.ts +6 -0
- package/scrypt/types.js +1 -0
- package/secp256k1/compress.d.ts +1 -0
- package/secp256k1/compress.js +14 -0
- package/secp256k1/deriveHard.d.ts +1 -0
- package/secp256k1/deriveHard.js +10 -0
- package/secp256k1/expand.d.ts +1 -0
- package/secp256k1/expand.js +17 -0
- package/secp256k1/hasher.d.ts +2 -0
- package/secp256k1/hasher.js +7 -0
- package/secp256k1/index.d.ts +7 -0
- package/secp256k1/index.js +7 -0
- package/secp256k1/pair/fromSeed.d.ts +6 -0
- package/secp256k1/pair/fromSeed.js +31 -0
- package/secp256k1/recover.d.ts +6 -0
- package/secp256k1/recover.js +26 -0
- package/secp256k1/sign.d.ts +7 -0
- package/secp256k1/sign.js +20 -0
- package/secp256k1/tweakAdd.d.ts +1 -0
- package/secp256k1/tweakAdd.js +45 -0
- package/secp256k1/types.d.ts +1 -0
- package/secp256k1/types.js +1 -0
- package/secp256k1/verify.d.ts +6 -0
- package/secp256k1/verify.js +20 -0
- package/sha/asU8a.d.ts +15 -0
- package/sha/asU8a.js +19 -0
- package/sha/index.d.ts +4 -0
- package/sha/index.js +4 -0
- package/signature/index.d.ts +4 -0
- package/signature/index.js +4 -0
- package/signature/verify.d.ts +2 -0
- package/signature/verify.js +78 -0
- package/sr25519/agreement.d.ts +5 -0
- package/sr25519/agreement.js +17 -0
- package/sr25519/derive.d.ts +2 -0
- package/sr25519/derive.js +12 -0
- package/sr25519/deriveHard.d.ts +1 -0
- package/sr25519/deriveHard.js +3 -0
- package/sr25519/derivePublic.d.ts +1 -0
- package/sr25519/derivePublic.js +12 -0
- package/sr25519/deriveSoft.d.ts +1 -0
- package/sr25519/deriveSoft.js +3 -0
- package/sr25519/index.d.ts +9 -0
- package/sr25519/index.js +9 -0
- package/sr25519/pair/fromSeed.d.ts +6 -0
- package/sr25519/pair/fromSeed.js +18 -0
- package/sr25519/pair/fromU8a.d.ts +2 -0
- package/sr25519/pair/fromU8a.js +14 -0
- package/sr25519/pair/toU8a.d.ts +2 -0
- package/sr25519/pair/toU8a.js +4 -0
- package/sr25519/sign.d.ts +6 -0
- package/sr25519/sign.js +15 -0
- package/sr25519/verify.d.ts +5 -0
- package/sr25519/verify.js +17 -0
- package/sr25519/vrfSign.d.ts +6 -0
- package/sr25519/vrfSign.js +15 -0
- package/sr25519/vrfVerify.d.ts +5 -0
- package/sr25519/vrfVerify.js +18 -0
- package/types.d.ts +26 -0
- package/types.js +2 -0
- package/xxhash/asU8a.d.ts +20 -0
- package/xxhash/asU8a.js +35 -0
- package/xxhash/index.d.ts +4 -0
- package/xxhash/index.js +4 -0
- package/xxhash/xxhash64.d.ts +1 -0
- package/xxhash/xxhash64.js +100 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { decodeAddress } from './decode.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name addressToEvm
|
|
4
|
+
* @summary Converts an SS58 address to its corresponding EVM address.
|
|
5
|
+
*/
|
|
6
|
+
export function addressToEvm(address, ignoreChecksum) {
|
|
7
|
+
return decodeAddress(address, ignoreChecksum).subarray(0, 20);
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Prefix } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name checkAddress
|
|
4
|
+
* @summary Validates an ss58 address.
|
|
5
|
+
* @description
|
|
6
|
+
* From the provided input, validate that the address is a valid input.
|
|
7
|
+
*/
|
|
8
|
+
export declare function checkAddress(address: string, prefix: Prefix): [boolean, string | null];
|
package/address/check.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { base58Decode } from '../base58/index.js';
|
|
2
|
+
import { checkAddressChecksum } from './checksum.js';
|
|
3
|
+
import { defaults } from './defaults.js';
|
|
4
|
+
/**
|
|
5
|
+
* @name checkAddress
|
|
6
|
+
* @summary Validates an ss58 address.
|
|
7
|
+
* @description
|
|
8
|
+
* From the provided input, validate that the address is a valid input.
|
|
9
|
+
*/
|
|
10
|
+
export function checkAddress(address, prefix) {
|
|
11
|
+
let decoded;
|
|
12
|
+
try {
|
|
13
|
+
decoded = base58Decode(address);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
return [false, error.message];
|
|
17
|
+
}
|
|
18
|
+
const [isValid, , , ss58Decoded] = checkAddressChecksum(decoded);
|
|
19
|
+
if (ss58Decoded !== prefix) {
|
|
20
|
+
return [false, `Prefix mismatch, expected ${prefix}, found ${ss58Decoded}`];
|
|
21
|
+
}
|
|
22
|
+
else if (!defaults.allowedEncodedLengths.includes(decoded.length)) {
|
|
23
|
+
return [false, 'Invalid decoded address length'];
|
|
24
|
+
}
|
|
25
|
+
return [isValid, isValid ? null : 'Invalid decoded address checksum'];
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function checkAddressChecksum(decoded: Uint8Array): [boolean, number, number, number];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { sshash } from './sshash.js';
|
|
2
|
+
export function checkAddressChecksum(decoded) {
|
|
3
|
+
const ss58Length = (decoded[0] & 0b0100_0000) ? 2 : 1;
|
|
4
|
+
const ss58Decoded = ss58Length === 1
|
|
5
|
+
? decoded[0]
|
|
6
|
+
: ((decoded[0] & 0b0011_1111) << 2) | (decoded[1] >> 6) | ((decoded[1] & 0b0011_1111) << 8);
|
|
7
|
+
// 32/33 bytes public + 2 bytes checksum + prefix
|
|
8
|
+
const isPublicKey = [34 + ss58Length, 35 + ss58Length].includes(decoded.length);
|
|
9
|
+
const length = decoded.length - (isPublicKey ? 2 : 1);
|
|
10
|
+
// calculate the hash and do the checksum byte checks
|
|
11
|
+
const hash = sshash(decoded.subarray(0, length));
|
|
12
|
+
const isValid = (decoded[0] & 0b1000_0000) === 0 && ![46, 47].includes(decoded[0]) && (isPublicKey
|
|
13
|
+
? decoded[decoded.length - 2] === hash[0] && decoded[decoded.length - 1] === hash[1]
|
|
14
|
+
: decoded[decoded.length - 1] === hash[0]);
|
|
15
|
+
return [isValid, length, ss58Length, ss58Decoded];
|
|
16
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { isHex, isU8a, u8aToU8a } from '@pezkuwi/util';
|
|
2
|
+
import { base58Decode } from '../base58/index.js';
|
|
3
|
+
import { checkAddressChecksum } from './checksum.js';
|
|
4
|
+
import { defaults } from './defaults.js';
|
|
5
|
+
export function decodeAddress(encoded, ignoreChecksum, ss58Format = -1) {
|
|
6
|
+
if (!encoded) {
|
|
7
|
+
throw new Error('Invalid empty address passed');
|
|
8
|
+
}
|
|
9
|
+
if (isU8a(encoded) || isHex(encoded)) {
|
|
10
|
+
return u8aToU8a(encoded);
|
|
11
|
+
}
|
|
12
|
+
try {
|
|
13
|
+
const decoded = base58Decode(encoded);
|
|
14
|
+
if (!defaults.allowedEncodedLengths.includes(decoded.length)) {
|
|
15
|
+
throw new Error('Invalid decoded address length');
|
|
16
|
+
}
|
|
17
|
+
const [isValid, endPos, ss58Length, ss58Decoded] = checkAddressChecksum(decoded);
|
|
18
|
+
if (!isValid && !ignoreChecksum) {
|
|
19
|
+
throw new Error('Invalid decoded address checksum');
|
|
20
|
+
}
|
|
21
|
+
else if (ss58Format !== -1 && ss58Format !== ss58Decoded) {
|
|
22
|
+
throw new Error(`Expected ss58Format ${ss58Format}, received ${ss58Decoded}`);
|
|
23
|
+
}
|
|
24
|
+
return decoded.slice(ss58Length, endPos);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
throw new Error(`Decoding ${encoded}: ${error.message}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { availableNetworks } from '../networks.js';
|
|
2
|
+
export const defaults = {
|
|
3
|
+
allowedDecodedLengths: [1, 2, 4, 8, 32, 33],
|
|
4
|
+
// publicKey has prefix + 2 checksum bytes, short only prefix + 1 checksum byte
|
|
5
|
+
allowedEncodedLengths: [3, 4, 6, 10, 35, 36, 37, 38],
|
|
6
|
+
allowedPrefix: availableNetworks.map(({ prefix }) => prefix),
|
|
7
|
+
prefix: 42
|
|
8
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Prefix } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name deriveAddress
|
|
4
|
+
* @summary Creates a sr25519 derived address from the supplied and path.
|
|
5
|
+
* @description
|
|
6
|
+
* Creates a sr25519 derived address based on the input address/publicKey and the uri supplied.
|
|
7
|
+
*/
|
|
8
|
+
export declare function deriveAddress(who: string | Uint8Array, suri: string, ss58Format?: Prefix): string;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { keyExtractPath } from '../key/index.js';
|
|
2
|
+
import { sr25519DerivePublic } from '../sr25519/index.js';
|
|
3
|
+
import { decodeAddress } from './decode.js';
|
|
4
|
+
import { encodeAddress } from './encode.js';
|
|
5
|
+
function filterHard({ isHard }) {
|
|
6
|
+
return isHard;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @name deriveAddress
|
|
10
|
+
* @summary Creates a sr25519 derived address from the supplied and path.
|
|
11
|
+
* @description
|
|
12
|
+
* Creates a sr25519 derived address based on the input address/publicKey and the uri supplied.
|
|
13
|
+
*/
|
|
14
|
+
export function deriveAddress(who, suri, ss58Format) {
|
|
15
|
+
const { path } = keyExtractPath(suri);
|
|
16
|
+
if (!path.length || path.every(filterHard)) {
|
|
17
|
+
throw new Error('Expected suri to contain a combination of non-hard paths');
|
|
18
|
+
}
|
|
19
|
+
let publicKey = decodeAddress(who);
|
|
20
|
+
for (const { chainCode } of path) {
|
|
21
|
+
publicKey = sr25519DerivePublic(publicKey, chainCode);
|
|
22
|
+
}
|
|
23
|
+
return encodeAddress(publicKey, ss58Format);
|
|
24
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { u8aConcat } from '@pezkuwi/util';
|
|
2
|
+
import { base58Encode } from '../base58/index.js';
|
|
3
|
+
import { decodeAddress } from './decode.js';
|
|
4
|
+
import { defaults } from './defaults.js';
|
|
5
|
+
import { sshash } from './sshash.js';
|
|
6
|
+
export function encodeAddress(key, ss58Format = defaults.prefix) {
|
|
7
|
+
// decode it, this means we can re-encode an address
|
|
8
|
+
const u8a = decodeAddress(key);
|
|
9
|
+
if ((ss58Format < 0) || (ss58Format > 16383 && !ss58Exceptions.includes(ss58Format)) || [46, 47].includes(ss58Format)) {
|
|
10
|
+
throw new Error('Out of range ss58Format specified');
|
|
11
|
+
}
|
|
12
|
+
else if (!defaults.allowedDecodedLengths.includes(u8a.length)) {
|
|
13
|
+
throw new Error(`Expected a valid key to convert, with length ${defaults.allowedDecodedLengths.join(', ')}`);
|
|
14
|
+
}
|
|
15
|
+
const input = u8aConcat(ss58Format < 64
|
|
16
|
+
? [ss58Format]
|
|
17
|
+
: [
|
|
18
|
+
((ss58Format & 0b0000_0000_1111_1100) >> 2) | 0b0100_0000,
|
|
19
|
+
(ss58Format >> 8) | ((ss58Format & 0b0000_0000_0000_0011) << 6)
|
|
20
|
+
], u8a);
|
|
21
|
+
return base58Encode(u8aConcat(input, sshash(input).subarray(0, [32, 33].includes(u8a.length) ? 2 : 1)));
|
|
22
|
+
}
|
|
23
|
+
const ss58Exceptions = [29972];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BN } from '@pezkuwi/util';
|
|
2
|
+
import type { Prefix } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* @name encodeDerivedAddress
|
|
5
|
+
* @summary Creates a derived address as used in Substrate utility.
|
|
6
|
+
* @description
|
|
7
|
+
* Creates a Substrate derived address based on the input address/publicKey and the index supplied.
|
|
8
|
+
*/
|
|
9
|
+
export declare function encodeDerivedAddress(who: string | Uint8Array, index: bigint | BN | number, ss58Format?: Prefix): string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { decodeAddress } from './decode.js';
|
|
2
|
+
import { encodeAddress } from './encode.js';
|
|
3
|
+
import { createKeyDerived } from './keyDerived.js';
|
|
4
|
+
/**
|
|
5
|
+
* @name encodeDerivedAddress
|
|
6
|
+
* @summary Creates a derived address as used in Substrate utility.
|
|
7
|
+
* @description
|
|
8
|
+
* Creates a Substrate derived address based on the input address/publicKey and the index supplied.
|
|
9
|
+
*/
|
|
10
|
+
export function encodeDerivedAddress(who, index, ss58Format) {
|
|
11
|
+
return encodeAddress(createKeyDerived(decodeAddress(who), index), ss58Format);
|
|
12
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BN } from '@pezkuwi/util';
|
|
2
|
+
import type { Prefix } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* @name encodeMultiAddress
|
|
5
|
+
* @summary Creates a multisig address.
|
|
6
|
+
* @description
|
|
7
|
+
* Creates a Substrate multisig address based on the input address and the required threshold.
|
|
8
|
+
*/
|
|
9
|
+
export declare function encodeMultiAddress(who: (string | Uint8Array)[], threshold: bigint | BN | number, ss58Format?: Prefix): string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { encodeAddress } from './encode.js';
|
|
2
|
+
import { createKeyMulti } from './keyMulti.js';
|
|
3
|
+
/**
|
|
4
|
+
* @name encodeMultiAddress
|
|
5
|
+
* @summary Creates a multisig address.
|
|
6
|
+
* @description
|
|
7
|
+
* Creates a Substrate multisig address based on the input address and the required threshold.
|
|
8
|
+
*/
|
|
9
|
+
export function encodeMultiAddress(who, threshold, ss58Format) {
|
|
10
|
+
return encodeAddress(createKeyMulti(who, threshold), ss58Format);
|
|
11
|
+
}
|
package/address/eq.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name addressEq
|
|
3
|
+
* @summary Compares two addresses, either in ss58, Uint8Array or hex format.
|
|
4
|
+
* @description
|
|
5
|
+
* For the input values, return true is the underlying public keys do match.
|
|
6
|
+
* @example
|
|
7
|
+
* <BR>
|
|
8
|
+
*
|
|
9
|
+
* ```javascript
|
|
10
|
+
* import { u8aEq } from '@pezkuwi/util';
|
|
11
|
+
*
|
|
12
|
+
* u8aEq(new Uint8Array([0x68, 0x65]), new Uint8Array([0x68, 0x65])); // true
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare function addressEq(a: string | Uint8Array, b: string | Uint8Array): boolean;
|
package/address/eq.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { u8aEq } from '@pezkuwi/util';
|
|
2
|
+
import { decodeAddress } from './decode.js';
|
|
3
|
+
/**
|
|
4
|
+
* @name addressEq
|
|
5
|
+
* @summary Compares two addresses, either in ss58, Uint8Array or hex format.
|
|
6
|
+
* @description
|
|
7
|
+
* For the input values, return true is the underlying public keys do match.
|
|
8
|
+
* @example
|
|
9
|
+
* <BR>
|
|
10
|
+
*
|
|
11
|
+
* ```javascript
|
|
12
|
+
* import { u8aEq } from '@pezkuwi/util';
|
|
13
|
+
*
|
|
14
|
+
* u8aEq(new Uint8Array([0x68, 0x65]), new Uint8Array([0x68, 0x65])); // true
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export function addressEq(a, b) {
|
|
18
|
+
return u8aEq(decodeAddress(a), decodeAddress(b));
|
|
19
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { HashType } from '../secp256k1/types.js';
|
|
2
|
+
import type { Prefix } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* @name evmToAddress
|
|
5
|
+
* @summary Converts an EVM address to its corresponding SS58 address.
|
|
6
|
+
*/
|
|
7
|
+
export declare function evmToAddress(evmAddress: string | Uint8Array, ss58Format?: Prefix, hashType?: HashType): string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { u8aConcat } from '@pezkuwi/util';
|
|
2
|
+
import { hasher } from '../secp256k1/hasher.js';
|
|
3
|
+
import { encodeAddress } from './encode.js';
|
|
4
|
+
/**
|
|
5
|
+
* @name evmToAddress
|
|
6
|
+
* @summary Converts an EVM address to its corresponding SS58 address.
|
|
7
|
+
*/
|
|
8
|
+
export function evmToAddress(evmAddress, ss58Format, hashType = 'blake2') {
|
|
9
|
+
const message = u8aConcat('evm:', evmAddress);
|
|
10
|
+
if (message.length !== 24) {
|
|
11
|
+
throw new Error(`Converting ${evmAddress}: Invalid evm address length`);
|
|
12
|
+
}
|
|
13
|
+
return encodeAddress(hasher(hashType, message), ss58Format);
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { addressToEvm } from './addressToEvm.js';
|
|
2
|
+
export { checkAddress } from './check.js';
|
|
3
|
+
export { checkAddressChecksum } from './checksum.js';
|
|
4
|
+
export { decodeAddress } from './decode.js';
|
|
5
|
+
export { deriveAddress } from './derive.js';
|
|
6
|
+
export { encodeAddress } from './encode.js';
|
|
7
|
+
export { encodeDerivedAddress } from './encodeDerived.js';
|
|
8
|
+
export { encodeMultiAddress } from './encodeMulti.js';
|
|
9
|
+
export { addressEq } from './eq.js';
|
|
10
|
+
export { evmToAddress } from './evmToAddress.js';
|
|
11
|
+
export { isAddress } from './is.js';
|
|
12
|
+
export { createKeyDerived } from './keyDerived.js';
|
|
13
|
+
export { createKeyMulti } from './keyMulti.js';
|
|
14
|
+
export { sortAddresses } from './sort.js';
|
|
15
|
+
export { validateAddress } from './validate.js';
|
|
16
|
+
export { setSS58Format } from './setSS58Format.js';
|
package/address/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { addressToEvm } from './addressToEvm.js';
|
|
2
|
+
export { checkAddress } from './check.js';
|
|
3
|
+
export { checkAddressChecksum } from './checksum.js';
|
|
4
|
+
export { decodeAddress } from './decode.js';
|
|
5
|
+
export { deriveAddress } from './derive.js';
|
|
6
|
+
export { encodeAddress } from './encode.js';
|
|
7
|
+
export { encodeDerivedAddress } from './encodeDerived.js';
|
|
8
|
+
export { encodeMultiAddress } from './encodeMulti.js';
|
|
9
|
+
export { addressEq } from './eq.js';
|
|
10
|
+
export { evmToAddress } from './evmToAddress.js';
|
|
11
|
+
export { isAddress } from './is.js';
|
|
12
|
+
export { createKeyDerived } from './keyDerived.js';
|
|
13
|
+
export { createKeyMulti } from './keyMulti.js';
|
|
14
|
+
export { sortAddresses } from './sort.js';
|
|
15
|
+
export { validateAddress } from './validate.js';
|
|
16
|
+
export { setSS58Format } from './setSS58Format.js';
|
package/address/is.d.ts
ADDED
package/address/is.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { bnToU8a, stringToU8a, u8aConcat } from '@pezkuwi/util';
|
|
2
|
+
import { blake2AsU8a } from '../blake2/asU8a.js';
|
|
3
|
+
import { BN_LE_16_OPTS } from '../bn.js';
|
|
4
|
+
import { decodeAddress } from './decode.js';
|
|
5
|
+
const PREFIX = stringToU8a('modlpy/utilisuba');
|
|
6
|
+
export function createKeyDerived(who, index) {
|
|
7
|
+
return blake2AsU8a(u8aConcat(PREFIX, decodeAddress(who), bnToU8a(index, BN_LE_16_OPTS)));
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { bnToU8a, compactToU8a, stringToU8a, u8aConcat, u8aSorted } from '@pezkuwi/util';
|
|
2
|
+
import { blake2AsU8a } from '../blake2/asU8a.js';
|
|
3
|
+
import { BN_LE_16_OPTS } from '../bn.js';
|
|
4
|
+
import { addressToU8a } from './util.js';
|
|
5
|
+
const PREFIX = stringToU8a('modlpy/utilisuba');
|
|
6
|
+
export function createKeyMulti(who, threshold) {
|
|
7
|
+
return blake2AsU8a(u8aConcat(PREFIX, compactToU8a(who.length), ...u8aSorted(who.map(addressToU8a)), bnToU8a(threshold, BN_LE_16_OPTS)));
|
|
8
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { logger } from '@pezkuwi/util';
|
|
2
|
+
import { defaults } from './defaults.js';
|
|
3
|
+
const l = logger('setSS58Format');
|
|
4
|
+
/**
|
|
5
|
+
* @description Sets the global SS58 format to use for address encoding
|
|
6
|
+
* @deprecated Use keyring.setSS58Format
|
|
7
|
+
*/
|
|
8
|
+
export function setSS58Format(prefix) {
|
|
9
|
+
l.warn('Global setting of the ss58Format is deprecated and not recommended. Set format on the keyring (if used) or as part of the address encode function');
|
|
10
|
+
defaults.prefix = prefix;
|
|
11
|
+
}
|
package/address/sort.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { u8aSorted } from '@pezkuwi/util';
|
|
2
|
+
import { encodeAddress } from './encode.js';
|
|
3
|
+
import { addressToU8a } from './util.js';
|
|
4
|
+
export function sortAddresses(addresses, ss58Format) {
|
|
5
|
+
const u8aToAddress = (u8a) => encodeAddress(u8a, ss58Format);
|
|
6
|
+
return u8aSorted(addresses.map(addressToU8a)).map(u8aToAddress);
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function sshash(key: Uint8Array): Uint8Array;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Prefix = number;
|
package/address/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function addressToU8a(who: string | Uint8Array): Uint8Array;
|
package/address/util.js
ADDED
package/base32/bs32.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name base32Validate
|
|
3
|
+
* @summary Validates a base32 value.
|
|
4
|
+
* @description
|
|
5
|
+
* Validates that the supplied value is valid base32, throwing exceptions if not
|
|
6
|
+
*/
|
|
7
|
+
export declare const base32Validate: (value?: unknown, ipfsCompat?: boolean) => value is string;
|
|
8
|
+
/**
|
|
9
|
+
* @name isBase32
|
|
10
|
+
* @description Checks if the input is in base32, returning true/false
|
|
11
|
+
*/
|
|
12
|
+
export declare const isBase32: (value?: unknown, ipfsCompat?: boolean) => value is string;
|
|
13
|
+
/**
|
|
14
|
+
* @name base32Decode
|
|
15
|
+
* @summary Delookup a base32 value.
|
|
16
|
+
* @description
|
|
17
|
+
* From the provided input, decode the base32 and return the result as an `Uint8Array`.
|
|
18
|
+
*/
|
|
19
|
+
export declare const base32Decode: (value: string, ipfsCompat?: boolean) => Uint8Array;
|
|
20
|
+
/**
|
|
21
|
+
* @name base32Encode
|
|
22
|
+
* @summary Creates a base32 value.
|
|
23
|
+
* @description
|
|
24
|
+
* From the provided input, create the base32 and return the result as a string.
|
|
25
|
+
*/
|
|
26
|
+
export declare const base32Encode: (value: import("@pezkuwi/util/types").U8aLike, ipfsCompat?: boolean) => string;
|
package/base32/bs32.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { utils } from '@scure/base';
|
|
2
|
+
import { createDecode, createEncode, createIs, createValidate } from './helpers.js';
|
|
3
|
+
const chars = 'abcdefghijklmnopqrstuvwxyz234567';
|
|
4
|
+
const config = {
|
|
5
|
+
chars,
|
|
6
|
+
coder: utils.chain(
|
|
7
|
+
// We define our own chain, the default base32 has padding
|
|
8
|
+
utils.radix2(5), utils.alphabet(chars), {
|
|
9
|
+
decode: (input) => input.split(''),
|
|
10
|
+
encode: (input) => input.join('')
|
|
11
|
+
}),
|
|
12
|
+
ipfs: 'b',
|
|
13
|
+
type: 'base32'
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* @name base32Validate
|
|
17
|
+
* @summary Validates a base32 value.
|
|
18
|
+
* @description
|
|
19
|
+
* Validates that the supplied value is valid base32, throwing exceptions if not
|
|
20
|
+
*/
|
|
21
|
+
export const base32Validate = /*#__PURE__*/ createValidate(config);
|
|
22
|
+
/**
|
|
23
|
+
* @name isBase32
|
|
24
|
+
* @description Checks if the input is in base32, returning true/false
|
|
25
|
+
*/
|
|
26
|
+
export const isBase32 = /*#__PURE__*/ createIs(base32Validate);
|
|
27
|
+
/**
|
|
28
|
+
* @name base32Decode
|
|
29
|
+
* @summary Delookup a base32 value.
|
|
30
|
+
* @description
|
|
31
|
+
* From the provided input, decode the base32 and return the result as an `Uint8Array`.
|
|
32
|
+
*/
|
|
33
|
+
export const base32Decode = /*#__PURE__*/ createDecode(config, base32Validate);
|
|
34
|
+
/**
|
|
35
|
+
* @name base32Encode
|
|
36
|
+
* @summary Creates a base32 value.
|
|
37
|
+
* @description
|
|
38
|
+
* From the provided input, create the base32 and return the result as a string.
|
|
39
|
+
*/
|
|
40
|
+
export const base32Encode = /*#__PURE__*/ createEncode(config);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { U8aLike } from '@pezkuwi/util/types';
|
|
2
|
+
export type { U8aLike } from '@pezkuwi/util/types';
|
|
3
|
+
interface Coder {
|
|
4
|
+
decode: (value: string) => Uint8Array;
|
|
5
|
+
encode: (value: Uint8Array) => string;
|
|
6
|
+
}
|
|
7
|
+
interface Config {
|
|
8
|
+
chars: string;
|
|
9
|
+
coder: Coder;
|
|
10
|
+
ipfs?: string;
|
|
11
|
+
regex?: RegExp;
|
|
12
|
+
type: string;
|
|
13
|
+
withPadding?: boolean;
|
|
14
|
+
}
|
|
15
|
+
type DecodeFn = (value: string, ipfsCompat?: boolean) => Uint8Array;
|
|
16
|
+
type EncodeFn = (value: U8aLike, ipfsCompat?: boolean) => string;
|
|
17
|
+
type ValidateFn = (value?: unknown, ipfsCompat?: boolean) => value is string;
|
|
18
|
+
/** @internal */
|
|
19
|
+
export declare function createDecode({ coder, ipfs }: Config, validate: ValidateFn): DecodeFn;
|
|
20
|
+
/** @internal */
|
|
21
|
+
export declare function createEncode({ coder, ipfs }: Config): EncodeFn;
|
|
22
|
+
/** @internal */
|
|
23
|
+
export declare function createIs(validate: ValidateFn): ValidateFn;
|
|
24
|
+
/** @internal */
|
|
25
|
+
export declare function createValidate({ chars, ipfs, type, withPadding }: Config): ValidateFn;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { u8aToU8a } from '@pezkuwi/util';
|
|
2
|
+
/** @internal */
|
|
3
|
+
export function createDecode({ coder, ipfs }, validate) {
|
|
4
|
+
return (value, ipfsCompat) => {
|
|
5
|
+
validate(value, ipfsCompat);
|
|
6
|
+
return coder.decode(ipfs && ipfsCompat
|
|
7
|
+
? value.substring(1)
|
|
8
|
+
: value);
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
/** @internal */
|
|
12
|
+
export function createEncode({ coder, ipfs }) {
|
|
13
|
+
return (value, ipfsCompat) => {
|
|
14
|
+
const out = coder.encode(u8aToU8a(value));
|
|
15
|
+
return ipfs && ipfsCompat
|
|
16
|
+
? `${ipfs}${out}`
|
|
17
|
+
: out;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/** @internal */
|
|
21
|
+
export function createIs(validate) {
|
|
22
|
+
return (value, ipfsCompat) => {
|
|
23
|
+
try {
|
|
24
|
+
return validate(value, ipfsCompat);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/** @internal */
|
|
32
|
+
export function createValidate({ chars, ipfs, type, withPadding }) {
|
|
33
|
+
return (value, ipfsCompat) => {
|
|
34
|
+
if (typeof value !== 'string') {
|
|
35
|
+
throw new Error(`Expected ${type} string input`);
|
|
36
|
+
}
|
|
37
|
+
else if (ipfs && ipfsCompat && !value.startsWith(ipfs)) {
|
|
38
|
+
throw new Error(`Expected ipfs-compatible ${type} to start with '${ipfs}'`);
|
|
39
|
+
}
|
|
40
|
+
for (let i = (ipfsCompat ? 1 : 0), count = value.length; i < count; i++) {
|
|
41
|
+
if (chars.includes(value[i])) {
|
|
42
|
+
// all ok, character found
|
|
43
|
+
}
|
|
44
|
+
else if (withPadding && value[i] === '=') {
|
|
45
|
+
if (i === count - 1) {
|
|
46
|
+
// last character, everything ok
|
|
47
|
+
}
|
|
48
|
+
else if (value[i + 1] === '=') {
|
|
49
|
+
// next one is also padding, sequence ok
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
throw new Error(`Invalid ${type} padding sequence "${value[i]}${value[i + 1]}" at index ${i}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
throw new Error(`Invalid ${type} character "${value[i]}" (0x${value.charCodeAt(i).toString(16)}) at index ${i}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return true;
|
|
60
|
+
};
|
|
61
|
+
}
|
package/base32/index.js
ADDED