@taquito/signer 17.3.1 → 17.3.2

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.
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  // IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
5
5
  exports.VERSION = {
6
- "commitHash": "9e27326dabf764c55402c50be4d78681f2c78cca",
7
- "version": "17.3.1"
6
+ "commitHash": "a97e506efd61b86e39ae30db588401b8fda46553",
7
+ "version": "17.3.2"
8
8
  };
9
9
  //# sourceMappingURL=version.js.map
@@ -613,8 +613,8 @@ function importKey(toolkit, privateKeyOrEmail, passphrase, mnemonic, secret) {
613
613
 
614
614
  // IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
615
615
  const VERSION = {
616
- "commitHash": "9e27326dabf764c55402c50be4d78681f2c78cca",
617
- "version": "17.3.1"
616
+ "commitHash": "a97e506efd61b86e39ae30db588401b8fda46553",
617
+ "version": "17.3.2"
618
618
  };
619
619
 
620
620
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taquito-signer.es6.js","sources":["../src/ed-key.ts","../src/ec-key.ts","../src/derivation-tools/utils.ts","../src/errors.ts","../src/derivation-tools/ecdsa.ts","../src/derivation-tools/index.ts","../src/derivation-tools/ed25519.ts","../src/helpers.ts","../src/import-key.ts","../src/version.ts","../src/taquito-signer.ts"],"sourcesContent":["import { hash } from '@stablelib/blake2b';\nimport { generateKeyPairFromSeed, sign } from '@stablelib/ed25519';\nimport {\n b58cencode,\n b58cdecode,\n prefix,\n buf2hex,\n isValidPrefix,\n Prefix,\n invalidDetail,\n ValidationResult,\n} from '@taquito/utils';\nimport toBuffer from 'typedarray-to-buffer';\nimport { InvalidKeyError } from '@taquito/core';\n\n/**\n * @description Provide signing logic for ed25519 curve based key (tz1)\n */\nexport class Tz1 {\n private _key: Uint8Array;\n private _publicKey: Uint8Array;\n private isInit: Promise<boolean>;\n\n /**\n *\n * @param key Encoded private key\n * @param encrypted Is the private key encrypted\n * @param decrypt Decrypt function\n * @throws {@link InvalidKeyError}\n */\n constructor(private key: string, encrypted: boolean, decrypt: (k: any) => any) {\n const keyPrefix = key.substring(0, encrypted ? 5 : 4);\n if (!isValidPrefix(keyPrefix)) {\n throw new InvalidKeyError(\n `${invalidDetail(ValidationResult.NO_PREFIX_MATCHED)} expecting either '${\n Prefix.EDESK\n }' or '${Prefix.EDSK}'.`\n );\n }\n\n this._key = decrypt(b58cdecode(this.key, prefix[keyPrefix]));\n this._publicKey = this._key.slice(32);\n\n if (!this._key) {\n throw new InvalidKeyError('unable to decode');\n }\n\n this.isInit = this.init();\n }\n\n private async init() {\n if (this._key.length !== 64) {\n const { publicKey, secretKey } = generateKeyPairFromSeed(new Uint8Array(this._key));\n this._publicKey = publicKey;\n this._key = secretKey;\n }\n return true;\n }\n\n /**\n *\n * @param bytes Bytes to sign\n * @param bytesHash Blake2b hash of the bytes to sign\n */\n async sign(bytes: string, bytesHash: Uint8Array) {\n await this.isInit;\n const signature = sign(new Uint8Array(this._key), new Uint8Array(bytesHash));\n const signatureBuffer = toBuffer(signature);\n const sbytes = bytes + buf2hex(signatureBuffer);\n\n return {\n bytes,\n sig: b58cencode(signature, prefix.sig),\n prefixSig: b58cencode(signature, prefix.edsig),\n sbytes,\n };\n }\n\n /**\n * @returns Encoded public key\n */\n async publicKey(): Promise<string> {\n await this.isInit;\n return b58cencode(this._publicKey, prefix['edpk']);\n }\n\n /**\n * @returns Encoded public key hash\n */\n async publicKeyHash(): Promise<string> {\n await this.isInit;\n return b58cencode(hash(new Uint8Array(this._publicKey), 20), prefix.tz1);\n }\n\n /**\n * @returns Encoded private key\n */\n async secretKey(): Promise<string> {\n await this.isInit;\n let key = this._key;\n const { secretKey } = generateKeyPairFromSeed(new Uint8Array(key).slice(0, 32));\n key = toBuffer(secretKey);\n\n return b58cencode(key, prefix[`edsk`]);\n }\n}\n","import { hash } from '@stablelib/blake2b';\nimport {\n b58cencode,\n b58cdecode,\n prefix,\n isValidPrefix,\n invalidDetail,\n Prefix,\n ValidationResult,\n} from '@taquito/utils';\nimport toBuffer from 'typedarray-to-buffer';\nimport elliptic from 'elliptic';\nimport { InvalidKeyError } from '@taquito/core';\n\nconst pref = {\n p256: {\n pk: prefix['p2pk'],\n sk: prefix['p2sk'],\n pkh: prefix.tz3,\n sig: prefix.p2sig,\n },\n secp256k1: {\n pk: prefix['sppk'],\n sk: prefix['spsk'],\n pkh: prefix.tz2,\n sig: prefix.spsig,\n },\n};\n\n/**\n * @description Provide signing logic for elliptic curve based key (tz2, tz3)\n */\nexport class ECKey {\n private _key: Uint8Array;\n private _publicKey: Uint8Array;\n\n /**\n *\n * @param curve Curve to use with the key\n * @param key Encoded private key\n * @param encrypted Is the private key encrypted\n * @param decrypt Decrypt function\n * @throws {@link InvalidKeyError}\n */\n constructor(\n private curve: 'p256' | 'secp256k1',\n private key: string,\n encrypted: boolean,\n decrypt: (k: any) => any\n ) {\n const keyPrefix = key.substring(0, encrypted ? 5 : 4);\n if (!isValidPrefix(keyPrefix)) {\n throw new InvalidKeyError(\n invalidDetail(ValidationResult.NO_PREFIX_MATCHED) +\n ` expecting one of the following prefix '${Prefix.SPSK}', '${Prefix.SPESK}', '${Prefix.P2SK}' or '${Prefix.P2ESK}'.`\n );\n }\n\n this._key = decrypt(b58cdecode(this.key, prefix[keyPrefix]));\n const keyPair = new elliptic.ec(this.curve).keyFromPrivate(this._key);\n const keyPairY = keyPair.getPublic().getY().toArray();\n const parityByte = keyPairY.length < 32 ? keyPairY[keyPairY.length - 1] : keyPairY[31];\n const pref = parityByte % 2 ? 3 : 2;\n const pad = new Array(32).fill(0);\n this._publicKey = toBuffer(\n new Uint8Array([pref].concat(pad.concat(keyPair.getPublic().getX().toArray()).slice(-32)))\n );\n }\n\n /**\n *\n * @param bytes Bytes to sign\n * @param bytesHash Blake2b hash of the bytes to sign\n */\n async sign(bytes: string, bytesHash: Uint8Array) {\n const key = new elliptic.ec(this.curve).keyFromPrivate(this._key);\n const sig = key.sign(bytesHash, { canonical: true });\n const signature = sig.r.toString('hex', 64) + sig.s.toString('hex', 64);\n\n const sbytes = bytes + signature;\n return {\n bytes,\n sig: b58cencode(signature, prefix.sig),\n prefixSig: b58cencode(signature, pref[this.curve].sig),\n sbytes,\n };\n }\n\n /**\n * @returns Encoded public key\n */\n async publicKey(): Promise<string> {\n return b58cencode(this._publicKey, pref[this.curve].pk);\n }\n\n /**\n * @returns Encoded public key hash\n */\n async publicKeyHash(): Promise<string> {\n return b58cencode(hash(new Uint8Array(this._publicKey), 20), pref[this.curve].pkh);\n }\n\n /**\n * @returns Encoded private key\n */\n async secretKey(): Promise<string> {\n const key = this._key;\n\n return b58cencode(key, pref[this.curve].sk);\n }\n}\n\n/**\n * @description Tz3 key class using the p256 curve\n */\nexport const Tz3 = ECKey.bind(null, 'p256');\n\n/**\n * @description Tz2 key class using the secp256k1 curve\n */\nexport const Tz2 = ECKey.bind(null, 'secp256k1');\n","import { InvalidHexStringError } from '@taquito/core';\n\nexport function parseHex(s: string): Uint8Array {\n const res: number[] = [];\n for (let i = 0; i < s.length; i += 2) {\n const ss = s.slice(i, i + 2);\n const x = parseInt(ss, 16);\n if (Number.isNaN(x)) {\n throw new InvalidHexStringError(ss);\n }\n res.push(x);\n }\n return new Uint8Array(res);\n}\n","import { ParameterValidationError, UnsupportedActionError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error that indicates an invalid Mnemonic being passed or used\n */\nexport class InvalidMnemonicError extends ParameterValidationError {\n constructor(public readonly mnemonic: string) {\n super();\n this.name = 'InvalidMnemonicError';\n this.message = `Invalid mnemonic \"${mnemonic}\"`;\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a curve with incorrect bit size being passed or used\n */\nexport class InvalidBitSize extends ParameterValidationError {\n constructor(public readonly message: string) {\n super();\n this.name = 'InvalidBitSize';\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an unsupported cureve being passed or used\n */\nexport class InvalidCurveError extends ParameterValidationError {\n constructor(public readonly message: string) {\n super();\n this.name = 'InvalidCurveError';\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a seed with invalid length being passed or used\n */\nexport class InvalidSeedLengthError extends ParameterValidationError {\n constructor(public readonly seedLength: number) {\n super();\n this.name = 'InvalidSeedLengthError';\n this.message = `Invalid seed length \"${seedLength}\" expecting length between 16 to 64.`;\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a feature still under developement\n */\nexport class ToBeImplemented extends UnsupportedActionError {\n constructor() {\n super();\n this.name = 'ToBeImplemented';\n this.message = 'This feature is under developement';\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid passphrase being passed or used\n */\nexport class InvalidPassphraseError extends ParameterValidationError {\n constructor(public readonly message: string) {\n super();\n this.name = 'InvalidPassphraseError';\n }\n}\n","/* eslint-disable @typescript-eslint/no-this-alias */\nimport { ec, curve } from 'elliptic';\nimport { Hard, ExtendedPrivateKey } from './index';\nimport { HMAC } from '@stablelib/hmac';\nimport { SHA512 } from '@stablelib/sha512';\nimport BN from 'bn.js';\nimport { parseHex } from './utils';\nimport { InvalidBitSize, InvalidCurveError, InvalidSeedLengthError } from '../errors';\nimport { InvalidKeyError } from '@taquito/core';\n\nexport type CurveName = 'p256' | 'secp256k1';\n\nconst seedKey: Record<CurveName, string> = {\n p256: 'Nist256p1 seed',\n secp256k1: 'Bitcoin seed',\n};\n\ninterface KeyPair extends ec.KeyPair {\n priv: BN | null;\n pub: curve.base.BasePoint | null;\n}\n\n// MinSeedSize is the minimal allowed seed byte length\nconst minSeedSize = 16;\n// MaxSeedSize is the maximal allowed seed byte length\nconst maxSeedSize = 64;\n\nexport class PrivateKey implements ExtendedPrivateKey {\n readonly keyPair: KeyPair;\n /**\n *\n * @param priv key pair priv (BN) pub (curve.base.BasePint) if applicable\n * @param chainCode slice 32->n HMAC hash key and seedkey (first instance curve default seedKey. after hmac value slice 32->n)\n */\n constructor(priv: ec.KeyPair, public readonly chainCode: Uint8Array) {\n this.keyPair = <KeyPair>priv;\n }\n /**\n * @param seedSrc result of Bip39.mnemonicToSeed\n * @param curve known supported curve p256 or secp256k1\n * @returns instance of PrivateKey non-HD keys derived\n * @throws {@link InvalidBitSize} | {@link InvalidCurveError} | {@link InvalidSeedLengthError}\n */\n static fromSeed(seedSrc: Uint8Array | string, curve: CurveName): PrivateKey {\n let seed = typeof seedSrc === 'string' ? parseHex(seedSrc) : seedSrc;\n if (seed.length < minSeedSize || seed.length > maxSeedSize) {\n throw new InvalidSeedLengthError(seed.length);\n }\n if (!Object.prototype.hasOwnProperty.call(seedKey, curve)) {\n throw new InvalidCurveError(\n `Unsupported curve \"${curve}\" expecting either \"p256\" or \"secp256k1\"`\n );\n }\n const c = new ec(curve);\n if (c.n?.bitLength() !== 256) {\n throw new InvalidBitSize(\n `Invalid curve \"${curve}\" with bit size \"${c.n?.bitLength()}\" expecting bit size \"256\"`\n );\n }\n\n const key = new TextEncoder().encode(seedKey[curve]);\n let d: BN | null = null;\n let chain: Uint8Array = new Uint8Array();\n let i = 0;\n while (i === 0) {\n const sum = new HMAC(SHA512, key).update(seed).digest();\n d = new BN(sum.subarray(0, 32));\n chain = sum.subarray(32);\n if (d.isZero() || d.cmp(c.n as BN) >= 0) {\n seed = sum;\n } else {\n i++;\n }\n }\n\n const keyPair = <KeyPair>c.keyPair({});\n keyPair.priv = d;\n return new PrivateKey(keyPair, chain);\n }\n /**\n *\n * @param index derivation path item pre-hardened if applicable ie: 44' -> 2^31 + 44\n * @returns child PrivateKey of the current PrivateKey\n */\n derive(index: number): PrivateKey {\n const data = new Uint8Array(37);\n if ((index & Hard) !== 0) {\n // hardened derivation\n data.set(this.keyPair.getPrivate().toArray(), 1);\n } else {\n data.set(this.keyPair.getPublic().encodeCompressed(), 0);\n }\n new DataView(data.buffer).setUint32(33, index);\n\n let d: BN = new BN(0);\n let chain: Uint8Array = new Uint8Array();\n let i = 0;\n while (i === 0) {\n const sum = new HMAC(SHA512, this.chainCode).update(data).digest();\n d = new BN(sum.subarray(0, 32));\n chain = sum.subarray(32);\n if (this.keyPair.ec.n && d.cmp(this.keyPair.ec.n as BN) < 0) {\n d = d.add(this.keyPair.getPrivate() as BN).mod(this.keyPair.ec.n as BN);\n if (!d.isZero()) {\n i++;\n }\n }\n data.set(chain, 1);\n data[0] = 1;\n }\n const keyPair = <KeyPair>this.keyPair.ec.keyPair({});\n keyPair.priv = d;\n return new PrivateKey(keyPair, chain);\n }\n /**\n *\n * @param path pre-hardened (if applicable) derivation path items ie 44'/1729'/0/0 -> 2^31 + 44/2^31 + 1729/0/0\n * @returns final child of the full HD keys derivation\n */\n derivePath(path: Iterable<number>): PrivateKey {\n let key: PrivateKey = this;\n for (const x of path) {\n key = key.derive(x);\n }\n return key;\n }\n /**\n *\n * @returns Uint8Array (if contains a private key)\n * @throws {@link InvalidKeyError}\n */\n bytes(): Uint8Array {\n if (!this.keyPair.priv) {\n throw new InvalidKeyError('missing private key');\n }\n // pad to 32 bytes as toArray() length argument seems to be ignored (BN bug)\n const src = this.keyPair.priv.toArray();\n const out = new Uint8Array(32);\n out.set(src, out.length - src.length);\n return out;\n }\n}\n","import { InvalidDerivationPathError } from '@taquito/core';\n\nexport * as ECDSA from './ecdsa';\nexport * as Ed25519 from './ed25519';\n\nexport const Hard = 0x80000000;\n\nexport interface ExtendedKey {\n readonly chainCode: Uint8Array;\n derive(index: number): ExtendedKey;\n derivePath(path: Iterable<number>): ExtendedKey;\n}\n\nexport interface ExtendedPrivateKey extends ExtendedKey {\n derive(index: number): ExtendedPrivateKey;\n derivePath(path: number[]): ExtendedPrivateKey;\n}\n\nexport class Path extends Array<number> {\n static from(iterable: Iterable<number> | ArrayLike<number>): Path {\n return super.from(iterable).map((x) => x >>> 0);\n }\n /**\n *\n * @param s derivation path eg: 44'/1729'/0'/0'\n * @returns applied hardened values\n */\n static fromString(s: string): Path {\n if (s.length === 0) {\n return new Path();\n }\n let parts = s.split('/');\n const out: number[] = [];\n if (parts[0] === 'm') {\n parts = parts.slice(1);\n }\n for (let p of parts) {\n if (p.length === 0) {\n throw new InvalidDerivationPathError(s, `: Invalid BIP32 path`);\n }\n let h = 0;\n const last = p[p.length - 1];\n if (last === \"'\" || last === 'h' || last === 'H') {\n h = Hard;\n p = p.slice(0, p.length - 1);\n }\n const index = (parseInt(p, 10) | h) >>> 0;\n out.push(index);\n }\n return Path.from(out);\n }\n}\n","/* eslint-disable @typescript-eslint/no-this-alias */\nimport { HMAC } from '@stablelib/hmac';\nimport { SHA512 } from '@stablelib/sha512';\nimport { generateKeyPairFromSeed } from '@stablelib/ed25519';\nimport { ExtendedPrivateKey, Hard } from './index';\nimport { parseHex } from './utils';\nimport { InvalidSeedLengthError } from '../errors';\nimport { InvalidDerivationPathError } from '@taquito/core';\n\n// MinSeedSize is the minimal allowed seed byte length\nconst minSeedSize = 16;\n// MaxSeedSize is the maximal allowed seed byte length\nconst maxSeedSize = 64;\n\nconst ed25519Key = 'ed25519 seed';\n\nexport class PrivateKey implements ExtendedPrivateKey {\n /**\n *\n * @param priv generated keypair 0->32 private key 32->n public key\n * @param chainCode new HMAC hash with new key\n */\n constructor(readonly priv: Uint8Array, readonly chainCode: Uint8Array) {}\n\n /**\n *\n * @param seedSrc result of Bip39.mnemonicToSeed\n * @returns instance of PrivateKey\n * @throws {@link InvalidSeedLengthError}\n */\n static fromSeed(seedSrc: Uint8Array | string): PrivateKey {\n const seed = typeof seedSrc === 'string' ? parseHex(seedSrc) : seedSrc;\n if (seed.length < minSeedSize || seed.length > maxSeedSize) {\n throw new InvalidSeedLengthError(seed.length);\n }\n const key = new TextEncoder().encode(ed25519Key);\n const sum = new HMAC(SHA512, key).update(seed).digest();\n return new PrivateKey(generateKeyPairFromSeed(sum.subarray(0, 32)).secretKey, sum.subarray(32));\n }\n /**\n *\n * @returns slice(0, 32) of current priv for new seed for next derived priv\n */\n seed(): Uint8Array {\n return this.priv.subarray(0, 32);\n }\n /**\n * @index current derivation path item ie: 1729'\n * @returns derivation path child of original private key pair\n */\n derive(index: number): PrivateKey {\n if ((index & Hard) === 0) {\n throw new InvalidDerivationPathError(index.toString(), ': Non-hardened derivation path.');\n }\n const data = new Uint8Array(37);\n data.set(this.seed(), 1);\n new DataView(data.buffer).setUint32(33, index);\n const sum = new HMAC(SHA512, this.chainCode).update(data).digest();\n return new PrivateKey(generateKeyPairFromSeed(sum.subarray(0, 32)).secretKey, sum.subarray(32));\n }\n /**\n * @param path array of numbers pre adjusted for hardened paths ie: 44' -> 2^31 + 44\n * @returns final child of full derivation path private key pair\n */\n derivePath(path: Iterable<number>): PrivateKey {\n let key: PrivateKey = this;\n for (const index of path) {\n key = key.derive(index);\n }\n return key;\n }\n}\n","import { b58cencode, prefix } from '@taquito/utils';\nimport { PrivateKey as PrivateKeyEd } from './derivation-tools/ed25519';\nimport { PrivateKey as PrivateKeyEc } from './derivation-tools/ecdsa';\nimport { Path } from './derivation-tools';\nimport { InvalidCurveError, ToBeImplemented } from './errors';\n\nexport type Curves = 'ed25519' | 'secp256k1' | 'p256' | 'bip25519';\n\n// bip32 when supported add to @param curve bip25519\n/**\n *\n * @param seed bip39.mnemonicToSeed\n * @param derivationPath Tezos Requirement 44'/1729' for HD key address default 44'/1729'/0'/0'\n * @param curve 'ed25519' | 'secp256k1' | 'p256''\n * @returns final Derivation of HD keys tezos Secret key\n * @throws {@link InvalidCurveError} | {@link ToBeImplemented}\n */\nexport const generateSecretKey = (seed: Uint8Array, derivationPath: string, curve: Curves) => {\n const path = Path.fromString(derivationPath);\n let node: PrivateKeyEc | PrivateKeyEd;\n\n switch (curve) {\n case 'ed25519': {\n node = PrivateKeyEd.fromSeed(seed).derivePath(path);\n const sk = b58cencode(node.seed().slice(0, 32), prefix.edsk2);\n return sk;\n }\n case 'secp256k1':\n case 'p256': {\n const prefixType = curve === 'secp256k1' ? prefix.spsk : prefix.p2sk;\n let privKey = PrivateKeyEc.fromSeed(seed, curve);\n privKey = privKey.derivePath(path);\n const uint8arr = new Uint8Array(privKey.keyPair.getPrivate().toArray());\n const sk = b58cencode(uint8arr, prefixType);\n return sk;\n }\n case 'bip25519': {\n throw new ToBeImplemented();\n }\n default: {\n throw new InvalidCurveError(\n `Unsupported curve \"${curve}\" expecting one of the following \"ed25519\", \"secp256k1\", \"p256\"`\n );\n }\n }\n};\n","import { InMemorySigner } from './taquito-signer';\nimport { TezosToolkit } from '@taquito/taquito';\n\n/**\n *\n * @description Import a key to sign operation with the side-effect of setting the Tezos instance to use the InMemorySigner provider\n *\n * @warn The JSON faucets are no longer available on https://teztnets.xyz/\n * @param toolkit The toolkit instance to attach a signer\n * @param privateKeyOrEmail Key to load in memory\n * @param passphrase If the key is encrypted passphrase to decrypt it\n * @param mnemonic Faucet mnemonic\n * @param secret Faucet secret\n */\nexport async function importKey(\n toolkit: TezosToolkit,\n privateKeyOrEmail: string,\n passphrase?: string,\n mnemonic?: string,\n secret?: string\n) {\n if (privateKeyOrEmail && passphrase && mnemonic && secret) {\n const signer = InMemorySigner.fromFundraiser(privateKeyOrEmail, passphrase, mnemonic);\n toolkit.setProvider({ signer });\n const pkh = await signer.publicKeyHash();\n let op;\n try {\n op = await toolkit.tz.activate(pkh, secret);\n } catch (ex: any) {\n const isInvalidActivationError = ex && ex.body && /Invalid activation/.test(ex.body);\n if (!isInvalidActivationError) {\n throw ex;\n }\n }\n if (op) {\n await op.confirmation();\n }\n } else {\n // Fallback to regular import\n const signer = await InMemorySigner.fromSecretKey(privateKeyOrEmail, passphrase);\n toolkit.setProvider({ signer });\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"9e27326dabf764c55402c50be4d78681f2c78cca\",\n \"version\": \"17.3.1\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/signer\n */\nimport { openSecretBox } from '@stablelib/nacl';\nimport { hash } from '@stablelib/blake2b';\nimport {\n hex2buf,\n mergebuf,\n b58cencode,\n prefix,\n Prefix,\n invalidDetail,\n ValidationResult,\n} from '@taquito/utils';\nimport toBuffer from 'typedarray-to-buffer';\nimport { Tz1 } from './ed-key';\nimport { Tz2, ECKey, Tz3 } from './ec-key';\nimport pbkdf2 from 'pbkdf2';\nimport * as Bip39 from 'bip39';\nimport { Curves, generateSecretKey } from './helpers';\nimport { InvalidMnemonicError, InvalidPassphraseError } from './errors';\nimport { InvalidKeyError } from '@taquito/core';\n\nexport * from './import-key';\nexport { VERSION } from './version';\nexport * from './derivation-tools';\nexport * from './helpers';\nexport { InvalidPassphraseError } from './errors';\n\nexport interface FromMnemonicParams {\n mnemonic: string;\n password?: string;\n derivationPath?: string;\n curve?: Curves;\n}\n\n/**\n * @description A local implementation of the signer. Will represent a Tezos account and be able to produce signature in its behalf\n *\n * @warn If running in production and dealing with tokens that have real value, it is strongly recommended to use a HSM backed signer so that private key material is not stored in memory or on disk\n * @throws {@link InvalidMnemonicError}\n */\nexport class InMemorySigner {\n private _key!: Tz1 | ECKey;\n\n static fromFundraiser(email: string, password: string, mnemonic: string) {\n if (!Bip39.validateMnemonic(mnemonic)) {\n throw new InvalidMnemonicError(mnemonic);\n }\n const seed = Bip39.mnemonicToSeedSync(mnemonic, `${email}${password}`);\n const key = b58cencode(seed.slice(0, 32), prefix.edsk2);\n return new InMemorySigner(key);\n }\n\n static async fromSecretKey(key: string, passphrase?: string) {\n return new InMemorySigner(key, passphrase);\n }\n\n /**\n *\n * @description Instantiation of an InMemorySigner instance from a mnemonic\n * @param mnemonic 12-24 word mnemonic\n * @param password password used to encrypt the mnemonic to seed value\n * @param derivationPath default 44'/1729'/0'/0' (44'/1729' mandatory)\n * @param curve currently only supported for tz1, tz2, tz3 addresses. soon bip25519\n * @returns InMemorySigner\n * @throws {@link InvalidMnemonicError}\n */\n static fromMnemonic({\n mnemonic,\n password = '',\n derivationPath = \"44'/1729'/0'/0'\",\n curve = 'ed25519',\n }: FromMnemonicParams) {\n // check if curve is defined if not default tz1\n if (!Bip39.validateMnemonic(mnemonic)) {\n // avoiding exposing mnemonic again in case of mistake making invalid\n throw new InvalidMnemonicError(mnemonic);\n }\n const seed = Bip39.mnemonicToSeedSync(mnemonic, password);\n\n const sk = generateSecretKey(seed, derivationPath, curve);\n\n return new InMemorySigner(sk);\n }\n /**\n *\n * @param key Encoded private key\n * @param passphrase Passphrase to decrypt the private key if it is encrypted\n * @throws {@link InvalidKeyError}\n *\n */\n constructor(key: string, passphrase?: string) {\n const encrypted = key.substring(2, 3) === 'e';\n\n let decrypt = (k: any) => k;\n\n if (encrypted) {\n if (!passphrase) {\n throw new InvalidPassphraseError('No passphrase provided to decrypt encrypted key');\n }\n\n decrypt = (constructedKey: Uint8Array) => {\n const salt = toBuffer(constructedKey.slice(0, 8));\n const encryptedSk = constructedKey.slice(8);\n const encryptionKey = pbkdf2.pbkdf2Sync(passphrase, salt, 32768, 32, 'sha512');\n\n return openSecretBox(\n new Uint8Array(encryptionKey),\n new Uint8Array(24),\n new Uint8Array(encryptedSk)\n );\n };\n }\n\n switch (key.substring(0, 4)) {\n case 'edes':\n case 'edsk':\n this._key = new Tz1(key, encrypted, decrypt);\n break;\n case 'spsk':\n case 'spes':\n this._key = new Tz2(key, encrypted, decrypt);\n break;\n case 'p2sk':\n case 'p2es':\n this._key = new Tz3(key, encrypted, decrypt);\n break;\n default:\n throw new InvalidKeyError(\n `${invalidDetail(ValidationResult.NO_PREFIX_MATCHED)} expecting one of the following '${\n Prefix.EDESK\n }', '${Prefix.EDSK}', '${Prefix.SPSK}', '${Prefix.SPESK}', '${Prefix.P2SK}' or '${\n Prefix.P2ESK\n }'.`\n );\n }\n }\n\n /**\n *\n * @param bytes Bytes to sign\n * @param watermark Watermark to append to the bytes\n */\n async sign(bytes: string, watermark?: Uint8Array) {\n let bb = hex2buf(bytes);\n if (typeof watermark !== 'undefined') {\n bb = mergebuf(watermark, bb);\n }\n\n const bytesHash = hash(bb, 32);\n\n return this._key.sign(bytes, bytesHash);\n }\n\n /**\n * @returns Encoded public key\n */\n async publicKey(): Promise<string> {\n return this._key.publicKey();\n }\n\n /**\n * @returns Encoded public key hash\n */\n async publicKeyHash(): Promise<string> {\n return this._key.publicKeyHash();\n }\n\n /**\n * @returns Encoded private key\n */\n async secretKey(): Promise<string> {\n return this._key.secretKey();\n }\n}\n"],"names":["minSeedSize","maxSeedSize","PrivateKey","PrivateKeyEd","PrivateKeyEc"],"mappings":"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"}
1
+ {"version":3,"file":"taquito-signer.es6.js","sources":["../src/ed-key.ts","../src/ec-key.ts","../src/derivation-tools/utils.ts","../src/errors.ts","../src/derivation-tools/ecdsa.ts","../src/derivation-tools/index.ts","../src/derivation-tools/ed25519.ts","../src/helpers.ts","../src/import-key.ts","../src/version.ts","../src/taquito-signer.ts"],"sourcesContent":["import { hash } from '@stablelib/blake2b';\nimport { generateKeyPairFromSeed, sign } from '@stablelib/ed25519';\nimport {\n b58cencode,\n b58cdecode,\n prefix,\n buf2hex,\n isValidPrefix,\n Prefix,\n invalidDetail,\n ValidationResult,\n} from '@taquito/utils';\nimport toBuffer from 'typedarray-to-buffer';\nimport { InvalidKeyError } from '@taquito/core';\n\n/**\n * @description Provide signing logic for ed25519 curve based key (tz1)\n */\nexport class Tz1 {\n private _key: Uint8Array;\n private _publicKey: Uint8Array;\n private isInit: Promise<boolean>;\n\n /**\n *\n * @param key Encoded private key\n * @param encrypted Is the private key encrypted\n * @param decrypt Decrypt function\n * @throws {@link InvalidKeyError}\n */\n constructor(private key: string, encrypted: boolean, decrypt: (k: any) => any) {\n const keyPrefix = key.substring(0, encrypted ? 5 : 4);\n if (!isValidPrefix(keyPrefix)) {\n throw new InvalidKeyError(\n `${invalidDetail(ValidationResult.NO_PREFIX_MATCHED)} expecting either '${\n Prefix.EDESK\n }' or '${Prefix.EDSK}'.`\n );\n }\n\n this._key = decrypt(b58cdecode(this.key, prefix[keyPrefix]));\n this._publicKey = this._key.slice(32);\n\n if (!this._key) {\n throw new InvalidKeyError('unable to decode');\n }\n\n this.isInit = this.init();\n }\n\n private async init() {\n if (this._key.length !== 64) {\n const { publicKey, secretKey } = generateKeyPairFromSeed(new Uint8Array(this._key));\n this._publicKey = publicKey;\n this._key = secretKey;\n }\n return true;\n }\n\n /**\n *\n * @param bytes Bytes to sign\n * @param bytesHash Blake2b hash of the bytes to sign\n */\n async sign(bytes: string, bytesHash: Uint8Array) {\n await this.isInit;\n const signature = sign(new Uint8Array(this._key), new Uint8Array(bytesHash));\n const signatureBuffer = toBuffer(signature);\n const sbytes = bytes + buf2hex(signatureBuffer);\n\n return {\n bytes,\n sig: b58cencode(signature, prefix.sig),\n prefixSig: b58cencode(signature, prefix.edsig),\n sbytes,\n };\n }\n\n /**\n * @returns Encoded public key\n */\n async publicKey(): Promise<string> {\n await this.isInit;\n return b58cencode(this._publicKey, prefix['edpk']);\n }\n\n /**\n * @returns Encoded public key hash\n */\n async publicKeyHash(): Promise<string> {\n await this.isInit;\n return b58cencode(hash(new Uint8Array(this._publicKey), 20), prefix.tz1);\n }\n\n /**\n * @returns Encoded private key\n */\n async secretKey(): Promise<string> {\n await this.isInit;\n let key = this._key;\n const { secretKey } = generateKeyPairFromSeed(new Uint8Array(key).slice(0, 32));\n key = toBuffer(secretKey);\n\n return b58cencode(key, prefix[`edsk`]);\n }\n}\n","import { hash } from '@stablelib/blake2b';\nimport {\n b58cencode,\n b58cdecode,\n prefix,\n isValidPrefix,\n invalidDetail,\n Prefix,\n ValidationResult,\n} from '@taquito/utils';\nimport toBuffer from 'typedarray-to-buffer';\nimport elliptic from 'elliptic';\nimport { InvalidKeyError } from '@taquito/core';\n\nconst pref = {\n p256: {\n pk: prefix['p2pk'],\n sk: prefix['p2sk'],\n pkh: prefix.tz3,\n sig: prefix.p2sig,\n },\n secp256k1: {\n pk: prefix['sppk'],\n sk: prefix['spsk'],\n pkh: prefix.tz2,\n sig: prefix.spsig,\n },\n};\n\n/**\n * @description Provide signing logic for elliptic curve based key (tz2, tz3)\n */\nexport class ECKey {\n private _key: Uint8Array;\n private _publicKey: Uint8Array;\n\n /**\n *\n * @param curve Curve to use with the key\n * @param key Encoded private key\n * @param encrypted Is the private key encrypted\n * @param decrypt Decrypt function\n * @throws {@link InvalidKeyError}\n */\n constructor(\n private curve: 'p256' | 'secp256k1',\n private key: string,\n encrypted: boolean,\n decrypt: (k: any) => any\n ) {\n const keyPrefix = key.substring(0, encrypted ? 5 : 4);\n if (!isValidPrefix(keyPrefix)) {\n throw new InvalidKeyError(\n invalidDetail(ValidationResult.NO_PREFIX_MATCHED) +\n ` expecting one of the following prefix '${Prefix.SPSK}', '${Prefix.SPESK}', '${Prefix.P2SK}' or '${Prefix.P2ESK}'.`\n );\n }\n\n this._key = decrypt(b58cdecode(this.key, prefix[keyPrefix]));\n const keyPair = new elliptic.ec(this.curve).keyFromPrivate(this._key);\n const keyPairY = keyPair.getPublic().getY().toArray();\n const parityByte = keyPairY.length < 32 ? keyPairY[keyPairY.length - 1] : keyPairY[31];\n const pref = parityByte % 2 ? 3 : 2;\n const pad = new Array(32).fill(0);\n this._publicKey = toBuffer(\n new Uint8Array([pref].concat(pad.concat(keyPair.getPublic().getX().toArray()).slice(-32)))\n );\n }\n\n /**\n *\n * @param bytes Bytes to sign\n * @param bytesHash Blake2b hash of the bytes to sign\n */\n async sign(bytes: string, bytesHash: Uint8Array) {\n const key = new elliptic.ec(this.curve).keyFromPrivate(this._key);\n const sig = key.sign(bytesHash, { canonical: true });\n const signature = sig.r.toString('hex', 64) + sig.s.toString('hex', 64);\n\n const sbytes = bytes + signature;\n return {\n bytes,\n sig: b58cencode(signature, prefix.sig),\n prefixSig: b58cencode(signature, pref[this.curve].sig),\n sbytes,\n };\n }\n\n /**\n * @returns Encoded public key\n */\n async publicKey(): Promise<string> {\n return b58cencode(this._publicKey, pref[this.curve].pk);\n }\n\n /**\n * @returns Encoded public key hash\n */\n async publicKeyHash(): Promise<string> {\n return b58cencode(hash(new Uint8Array(this._publicKey), 20), pref[this.curve].pkh);\n }\n\n /**\n * @returns Encoded private key\n */\n async secretKey(): Promise<string> {\n const key = this._key;\n\n return b58cencode(key, pref[this.curve].sk);\n }\n}\n\n/**\n * @description Tz3 key class using the p256 curve\n */\nexport const Tz3 = ECKey.bind(null, 'p256');\n\n/**\n * @description Tz2 key class using the secp256k1 curve\n */\nexport const Tz2 = ECKey.bind(null, 'secp256k1');\n","import { InvalidHexStringError } from '@taquito/core';\n\nexport function parseHex(s: string): Uint8Array {\n const res: number[] = [];\n for (let i = 0; i < s.length; i += 2) {\n const ss = s.slice(i, i + 2);\n const x = parseInt(ss, 16);\n if (Number.isNaN(x)) {\n throw new InvalidHexStringError(ss);\n }\n res.push(x);\n }\n return new Uint8Array(res);\n}\n","import { ParameterValidationError, UnsupportedActionError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error that indicates an invalid Mnemonic being passed or used\n */\nexport class InvalidMnemonicError extends ParameterValidationError {\n constructor(public readonly mnemonic: string) {\n super();\n this.name = 'InvalidMnemonicError';\n this.message = `Invalid mnemonic \"${mnemonic}\"`;\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a curve with incorrect bit size being passed or used\n */\nexport class InvalidBitSize extends ParameterValidationError {\n constructor(public readonly message: string) {\n super();\n this.name = 'InvalidBitSize';\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an unsupported cureve being passed or used\n */\nexport class InvalidCurveError extends ParameterValidationError {\n constructor(public readonly message: string) {\n super();\n this.name = 'InvalidCurveError';\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a seed with invalid length being passed or used\n */\nexport class InvalidSeedLengthError extends ParameterValidationError {\n constructor(public readonly seedLength: number) {\n super();\n this.name = 'InvalidSeedLengthError';\n this.message = `Invalid seed length \"${seedLength}\" expecting length between 16 to 64.`;\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a feature still under developement\n */\nexport class ToBeImplemented extends UnsupportedActionError {\n constructor() {\n super();\n this.name = 'ToBeImplemented';\n this.message = 'This feature is under developement';\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid passphrase being passed or used\n */\nexport class InvalidPassphraseError extends ParameterValidationError {\n constructor(public readonly message: string) {\n super();\n this.name = 'InvalidPassphraseError';\n }\n}\n","/* eslint-disable @typescript-eslint/no-this-alias */\nimport { ec, curve } from 'elliptic';\nimport { Hard, ExtendedPrivateKey } from './index';\nimport { HMAC } from '@stablelib/hmac';\nimport { SHA512 } from '@stablelib/sha512';\nimport BN from 'bn.js';\nimport { parseHex } from './utils';\nimport { InvalidBitSize, InvalidCurveError, InvalidSeedLengthError } from '../errors';\nimport { InvalidKeyError } from '@taquito/core';\n\nexport type CurveName = 'p256' | 'secp256k1';\n\nconst seedKey: Record<CurveName, string> = {\n p256: 'Nist256p1 seed',\n secp256k1: 'Bitcoin seed',\n};\n\ninterface KeyPair extends ec.KeyPair {\n priv: BN | null;\n pub: curve.base.BasePoint | null;\n}\n\n// MinSeedSize is the minimal allowed seed byte length\nconst minSeedSize = 16;\n// MaxSeedSize is the maximal allowed seed byte length\nconst maxSeedSize = 64;\n\nexport class PrivateKey implements ExtendedPrivateKey {\n readonly keyPair: KeyPair;\n /**\n *\n * @param priv key pair priv (BN) pub (curve.base.BasePint) if applicable\n * @param chainCode slice 32->n HMAC hash key and seedkey (first instance curve default seedKey. after hmac value slice 32->n)\n */\n constructor(priv: ec.KeyPair, public readonly chainCode: Uint8Array) {\n this.keyPair = <KeyPair>priv;\n }\n /**\n * @param seedSrc result of Bip39.mnemonicToSeed\n * @param curve known supported curve p256 or secp256k1\n * @returns instance of PrivateKey non-HD keys derived\n * @throws {@link InvalidBitSize} | {@link InvalidCurveError} | {@link InvalidSeedLengthError}\n */\n static fromSeed(seedSrc: Uint8Array | string, curve: CurveName): PrivateKey {\n let seed = typeof seedSrc === 'string' ? parseHex(seedSrc) : seedSrc;\n if (seed.length < minSeedSize || seed.length > maxSeedSize) {\n throw new InvalidSeedLengthError(seed.length);\n }\n if (!Object.prototype.hasOwnProperty.call(seedKey, curve)) {\n throw new InvalidCurveError(\n `Unsupported curve \"${curve}\" expecting either \"p256\" or \"secp256k1\"`\n );\n }\n const c = new ec(curve);\n if (c.n?.bitLength() !== 256) {\n throw new InvalidBitSize(\n `Invalid curve \"${curve}\" with bit size \"${c.n?.bitLength()}\" expecting bit size \"256\"`\n );\n }\n\n const key = new TextEncoder().encode(seedKey[curve]);\n let d: BN | null = null;\n let chain: Uint8Array = new Uint8Array();\n let i = 0;\n while (i === 0) {\n const sum = new HMAC(SHA512, key).update(seed).digest();\n d = new BN(sum.subarray(0, 32));\n chain = sum.subarray(32);\n if (d.isZero() || d.cmp(c.n as BN) >= 0) {\n seed = sum;\n } else {\n i++;\n }\n }\n\n const keyPair = <KeyPair>c.keyPair({});\n keyPair.priv = d;\n return new PrivateKey(keyPair, chain);\n }\n /**\n *\n * @param index derivation path item pre-hardened if applicable ie: 44' -> 2^31 + 44\n * @returns child PrivateKey of the current PrivateKey\n */\n derive(index: number): PrivateKey {\n const data = new Uint8Array(37);\n if ((index & Hard) !== 0) {\n // hardened derivation\n data.set(this.keyPair.getPrivate().toArray(), 1);\n } else {\n data.set(this.keyPair.getPublic().encodeCompressed(), 0);\n }\n new DataView(data.buffer).setUint32(33, index);\n\n let d: BN = new BN(0);\n let chain: Uint8Array = new Uint8Array();\n let i = 0;\n while (i === 0) {\n const sum = new HMAC(SHA512, this.chainCode).update(data).digest();\n d = new BN(sum.subarray(0, 32));\n chain = sum.subarray(32);\n if (this.keyPair.ec.n && d.cmp(this.keyPair.ec.n as BN) < 0) {\n d = d.add(this.keyPair.getPrivate() as BN).mod(this.keyPair.ec.n as BN);\n if (!d.isZero()) {\n i++;\n }\n }\n data.set(chain, 1);\n data[0] = 1;\n }\n const keyPair = <KeyPair>this.keyPair.ec.keyPair({});\n keyPair.priv = d;\n return new PrivateKey(keyPair, chain);\n }\n /**\n *\n * @param path pre-hardened (if applicable) derivation path items ie 44'/1729'/0/0 -> 2^31 + 44/2^31 + 1729/0/0\n * @returns final child of the full HD keys derivation\n */\n derivePath(path: Iterable<number>): PrivateKey {\n let key: PrivateKey = this;\n for (const x of path) {\n key = key.derive(x);\n }\n return key;\n }\n /**\n *\n * @returns Uint8Array (if contains a private key)\n * @throws {@link InvalidKeyError}\n */\n bytes(): Uint8Array {\n if (!this.keyPair.priv) {\n throw new InvalidKeyError('missing private key');\n }\n // pad to 32 bytes as toArray() length argument seems to be ignored (BN bug)\n const src = this.keyPair.priv.toArray();\n const out = new Uint8Array(32);\n out.set(src, out.length - src.length);\n return out;\n }\n}\n","import { InvalidDerivationPathError } from '@taquito/core';\n\nexport * as ECDSA from './ecdsa';\nexport * as Ed25519 from './ed25519';\n\nexport const Hard = 0x80000000;\n\nexport interface ExtendedKey {\n readonly chainCode: Uint8Array;\n derive(index: number): ExtendedKey;\n derivePath(path: Iterable<number>): ExtendedKey;\n}\n\nexport interface ExtendedPrivateKey extends ExtendedKey {\n derive(index: number): ExtendedPrivateKey;\n derivePath(path: number[]): ExtendedPrivateKey;\n}\n\nexport class Path extends Array<number> {\n static from(iterable: Iterable<number> | ArrayLike<number>): Path {\n return super.from(iterable).map((x) => x >>> 0);\n }\n /**\n *\n * @param s derivation path eg: 44'/1729'/0'/0'\n * @returns applied hardened values\n */\n static fromString(s: string): Path {\n if (s.length === 0) {\n return new Path();\n }\n let parts = s.split('/');\n const out: number[] = [];\n if (parts[0] === 'm') {\n parts = parts.slice(1);\n }\n for (let p of parts) {\n if (p.length === 0) {\n throw new InvalidDerivationPathError(s, `: Invalid BIP32 path`);\n }\n let h = 0;\n const last = p[p.length - 1];\n if (last === \"'\" || last === 'h' || last === 'H') {\n h = Hard;\n p = p.slice(0, p.length - 1);\n }\n const index = (parseInt(p, 10) | h) >>> 0;\n out.push(index);\n }\n return Path.from(out);\n }\n}\n","/* eslint-disable @typescript-eslint/no-this-alias */\nimport { HMAC } from '@stablelib/hmac';\nimport { SHA512 } from '@stablelib/sha512';\nimport { generateKeyPairFromSeed } from '@stablelib/ed25519';\nimport { ExtendedPrivateKey, Hard } from './index';\nimport { parseHex } from './utils';\nimport { InvalidSeedLengthError } from '../errors';\nimport { InvalidDerivationPathError } from '@taquito/core';\n\n// MinSeedSize is the minimal allowed seed byte length\nconst minSeedSize = 16;\n// MaxSeedSize is the maximal allowed seed byte length\nconst maxSeedSize = 64;\n\nconst ed25519Key = 'ed25519 seed';\n\nexport class PrivateKey implements ExtendedPrivateKey {\n /**\n *\n * @param priv generated keypair 0->32 private key 32->n public key\n * @param chainCode new HMAC hash with new key\n */\n constructor(readonly priv: Uint8Array, readonly chainCode: Uint8Array) {}\n\n /**\n *\n * @param seedSrc result of Bip39.mnemonicToSeed\n * @returns instance of PrivateKey\n * @throws {@link InvalidSeedLengthError}\n */\n static fromSeed(seedSrc: Uint8Array | string): PrivateKey {\n const seed = typeof seedSrc === 'string' ? parseHex(seedSrc) : seedSrc;\n if (seed.length < minSeedSize || seed.length > maxSeedSize) {\n throw new InvalidSeedLengthError(seed.length);\n }\n const key = new TextEncoder().encode(ed25519Key);\n const sum = new HMAC(SHA512, key).update(seed).digest();\n return new PrivateKey(generateKeyPairFromSeed(sum.subarray(0, 32)).secretKey, sum.subarray(32));\n }\n /**\n *\n * @returns slice(0, 32) of current priv for new seed for next derived priv\n */\n seed(): Uint8Array {\n return this.priv.subarray(0, 32);\n }\n /**\n * @index current derivation path item ie: 1729'\n * @returns derivation path child of original private key pair\n */\n derive(index: number): PrivateKey {\n if ((index & Hard) === 0) {\n throw new InvalidDerivationPathError(index.toString(), ': Non-hardened derivation path.');\n }\n const data = new Uint8Array(37);\n data.set(this.seed(), 1);\n new DataView(data.buffer).setUint32(33, index);\n const sum = new HMAC(SHA512, this.chainCode).update(data).digest();\n return new PrivateKey(generateKeyPairFromSeed(sum.subarray(0, 32)).secretKey, sum.subarray(32));\n }\n /**\n * @param path array of numbers pre adjusted for hardened paths ie: 44' -> 2^31 + 44\n * @returns final child of full derivation path private key pair\n */\n derivePath(path: Iterable<number>): PrivateKey {\n let key: PrivateKey = this;\n for (const index of path) {\n key = key.derive(index);\n }\n return key;\n }\n}\n","import { b58cencode, prefix } from '@taquito/utils';\nimport { PrivateKey as PrivateKeyEd } from './derivation-tools/ed25519';\nimport { PrivateKey as PrivateKeyEc } from './derivation-tools/ecdsa';\nimport { Path } from './derivation-tools';\nimport { InvalidCurveError, ToBeImplemented } from './errors';\n\nexport type Curves = 'ed25519' | 'secp256k1' | 'p256' | 'bip25519';\n\n// bip32 when supported add to @param curve bip25519\n/**\n *\n * @param seed bip39.mnemonicToSeed\n * @param derivationPath Tezos Requirement 44'/1729' for HD key address default 44'/1729'/0'/0'\n * @param curve 'ed25519' | 'secp256k1' | 'p256''\n * @returns final Derivation of HD keys tezos Secret key\n * @throws {@link InvalidCurveError} | {@link ToBeImplemented}\n */\nexport const generateSecretKey = (seed: Uint8Array, derivationPath: string, curve: Curves) => {\n const path = Path.fromString(derivationPath);\n let node: PrivateKeyEc | PrivateKeyEd;\n\n switch (curve) {\n case 'ed25519': {\n node = PrivateKeyEd.fromSeed(seed).derivePath(path);\n const sk = b58cencode(node.seed().slice(0, 32), prefix.edsk2);\n return sk;\n }\n case 'secp256k1':\n case 'p256': {\n const prefixType = curve === 'secp256k1' ? prefix.spsk : prefix.p2sk;\n let privKey = PrivateKeyEc.fromSeed(seed, curve);\n privKey = privKey.derivePath(path);\n const uint8arr = new Uint8Array(privKey.keyPair.getPrivate().toArray());\n const sk = b58cencode(uint8arr, prefixType);\n return sk;\n }\n case 'bip25519': {\n throw new ToBeImplemented();\n }\n default: {\n throw new InvalidCurveError(\n `Unsupported curve \"${curve}\" expecting one of the following \"ed25519\", \"secp256k1\", \"p256\"`\n );\n }\n }\n};\n","import { InMemorySigner } from './taquito-signer';\nimport { TezosToolkit } from '@taquito/taquito';\n\n/**\n *\n * @description Import a key to sign operation with the side-effect of setting the Tezos instance to use the InMemorySigner provider\n *\n * @warn The JSON faucets are no longer available on https://teztnets.xyz/\n * @param toolkit The toolkit instance to attach a signer\n * @param privateKeyOrEmail Key to load in memory\n * @param passphrase If the key is encrypted passphrase to decrypt it\n * @param mnemonic Faucet mnemonic\n * @param secret Faucet secret\n */\nexport async function importKey(\n toolkit: TezosToolkit,\n privateKeyOrEmail: string,\n passphrase?: string,\n mnemonic?: string,\n secret?: string\n) {\n if (privateKeyOrEmail && passphrase && mnemonic && secret) {\n const signer = InMemorySigner.fromFundraiser(privateKeyOrEmail, passphrase, mnemonic);\n toolkit.setProvider({ signer });\n const pkh = await signer.publicKeyHash();\n let op;\n try {\n op = await toolkit.tz.activate(pkh, secret);\n } catch (ex: any) {\n const isInvalidActivationError = ex && ex.body && /Invalid activation/.test(ex.body);\n if (!isInvalidActivationError) {\n throw ex;\n }\n }\n if (op) {\n await op.confirmation();\n }\n } else {\n // Fallback to regular import\n const signer = await InMemorySigner.fromSecretKey(privateKeyOrEmail, passphrase);\n toolkit.setProvider({ signer });\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"a97e506efd61b86e39ae30db588401b8fda46553\",\n \"version\": \"17.3.2\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/signer\n */\nimport { openSecretBox } from '@stablelib/nacl';\nimport { hash } from '@stablelib/blake2b';\nimport {\n hex2buf,\n mergebuf,\n b58cencode,\n prefix,\n Prefix,\n invalidDetail,\n ValidationResult,\n} from '@taquito/utils';\nimport toBuffer from 'typedarray-to-buffer';\nimport { Tz1 } from './ed-key';\nimport { Tz2, ECKey, Tz3 } from './ec-key';\nimport pbkdf2 from 'pbkdf2';\nimport * as Bip39 from 'bip39';\nimport { Curves, generateSecretKey } from './helpers';\nimport { InvalidMnemonicError, InvalidPassphraseError } from './errors';\nimport { InvalidKeyError } from '@taquito/core';\n\nexport * from './import-key';\nexport { VERSION } from './version';\nexport * from './derivation-tools';\nexport * from './helpers';\nexport { InvalidPassphraseError } from './errors';\n\nexport interface FromMnemonicParams {\n mnemonic: string;\n password?: string;\n derivationPath?: string;\n curve?: Curves;\n}\n\n/**\n * @description A local implementation of the signer. Will represent a Tezos account and be able to produce signature in its behalf\n *\n * @warn If running in production and dealing with tokens that have real value, it is strongly recommended to use a HSM backed signer so that private key material is not stored in memory or on disk\n * @throws {@link InvalidMnemonicError}\n */\nexport class InMemorySigner {\n private _key!: Tz1 | ECKey;\n\n static fromFundraiser(email: string, password: string, mnemonic: string) {\n if (!Bip39.validateMnemonic(mnemonic)) {\n throw new InvalidMnemonicError(mnemonic);\n }\n const seed = Bip39.mnemonicToSeedSync(mnemonic, `${email}${password}`);\n const key = b58cencode(seed.slice(0, 32), prefix.edsk2);\n return new InMemorySigner(key);\n }\n\n static async fromSecretKey(key: string, passphrase?: string) {\n return new InMemorySigner(key, passphrase);\n }\n\n /**\n *\n * @description Instantiation of an InMemorySigner instance from a mnemonic\n * @param mnemonic 12-24 word mnemonic\n * @param password password used to encrypt the mnemonic to seed value\n * @param derivationPath default 44'/1729'/0'/0' (44'/1729' mandatory)\n * @param curve currently only supported for tz1, tz2, tz3 addresses. soon bip25519\n * @returns InMemorySigner\n * @throws {@link InvalidMnemonicError}\n */\n static fromMnemonic({\n mnemonic,\n password = '',\n derivationPath = \"44'/1729'/0'/0'\",\n curve = 'ed25519',\n }: FromMnemonicParams) {\n // check if curve is defined if not default tz1\n if (!Bip39.validateMnemonic(mnemonic)) {\n // avoiding exposing mnemonic again in case of mistake making invalid\n throw new InvalidMnemonicError(mnemonic);\n }\n const seed = Bip39.mnemonicToSeedSync(mnemonic, password);\n\n const sk = generateSecretKey(seed, derivationPath, curve);\n\n return new InMemorySigner(sk);\n }\n /**\n *\n * @param key Encoded private key\n * @param passphrase Passphrase to decrypt the private key if it is encrypted\n * @throws {@link InvalidKeyError}\n *\n */\n constructor(key: string, passphrase?: string) {\n const encrypted = key.substring(2, 3) === 'e';\n\n let decrypt = (k: any) => k;\n\n if (encrypted) {\n if (!passphrase) {\n throw new InvalidPassphraseError('No passphrase provided to decrypt encrypted key');\n }\n\n decrypt = (constructedKey: Uint8Array) => {\n const salt = toBuffer(constructedKey.slice(0, 8));\n const encryptedSk = constructedKey.slice(8);\n const encryptionKey = pbkdf2.pbkdf2Sync(passphrase, salt, 32768, 32, 'sha512');\n\n return openSecretBox(\n new Uint8Array(encryptionKey),\n new Uint8Array(24),\n new Uint8Array(encryptedSk)\n );\n };\n }\n\n switch (key.substring(0, 4)) {\n case 'edes':\n case 'edsk':\n this._key = new Tz1(key, encrypted, decrypt);\n break;\n case 'spsk':\n case 'spes':\n this._key = new Tz2(key, encrypted, decrypt);\n break;\n case 'p2sk':\n case 'p2es':\n this._key = new Tz3(key, encrypted, decrypt);\n break;\n default:\n throw new InvalidKeyError(\n `${invalidDetail(ValidationResult.NO_PREFIX_MATCHED)} expecting one of the following '${\n Prefix.EDESK\n }', '${Prefix.EDSK}', '${Prefix.SPSK}', '${Prefix.SPESK}', '${Prefix.P2SK}' or '${\n Prefix.P2ESK\n }'.`\n );\n }\n }\n\n /**\n *\n * @param bytes Bytes to sign\n * @param watermark Watermark to append to the bytes\n */\n async sign(bytes: string, watermark?: Uint8Array) {\n let bb = hex2buf(bytes);\n if (typeof watermark !== 'undefined') {\n bb = mergebuf(watermark, bb);\n }\n\n const bytesHash = hash(bb, 32);\n\n return this._key.sign(bytes, bytesHash);\n }\n\n /**\n * @returns Encoded public key\n */\n async publicKey(): Promise<string> {\n return this._key.publicKey();\n }\n\n /**\n * @returns Encoded public key hash\n */\n async publicKeyHash(): Promise<string> {\n return this._key.publicKeyHash();\n }\n\n /**\n * @returns Encoded private key\n */\n async secretKey(): Promise<string> {\n return this._key.secretKey();\n }\n}\n"],"names":["minSeedSize","maxSeedSize","PrivateKey","PrivateKeyEd","PrivateKeyEc"],"mappings":"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"}
@@ -632,8 +632,8 @@
632
632
 
633
633
  // IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
634
634
  const VERSION = {
635
- "commitHash": "9e27326dabf764c55402c50be4d78681f2c78cca",
636
- "version": "17.3.1"
635
+ "commitHash": "a97e506efd61b86e39ae30db588401b8fda46553",
636
+ "version": "17.3.2"
637
637
  };
638
638
 
639
639
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taquito-signer.umd.js","sources":["../src/ed-key.ts","../src/ec-key.ts","../src/derivation-tools/utils.ts","../src/errors.ts","../src/derivation-tools/ecdsa.ts","../src/derivation-tools/index.ts","../src/derivation-tools/ed25519.ts","../src/helpers.ts","../src/import-key.ts","../src/version.ts","../src/taquito-signer.ts"],"sourcesContent":["import { hash } from '@stablelib/blake2b';\nimport { generateKeyPairFromSeed, sign } from '@stablelib/ed25519';\nimport {\n b58cencode,\n b58cdecode,\n prefix,\n buf2hex,\n isValidPrefix,\n Prefix,\n invalidDetail,\n ValidationResult,\n} from '@taquito/utils';\nimport toBuffer from 'typedarray-to-buffer';\nimport { InvalidKeyError } from '@taquito/core';\n\n/**\n * @description Provide signing logic for ed25519 curve based key (tz1)\n */\nexport class Tz1 {\n private _key: Uint8Array;\n private _publicKey: Uint8Array;\n private isInit: Promise<boolean>;\n\n /**\n *\n * @param key Encoded private key\n * @param encrypted Is the private key encrypted\n * @param decrypt Decrypt function\n * @throws {@link InvalidKeyError}\n */\n constructor(private key: string, encrypted: boolean, decrypt: (k: any) => any) {\n const keyPrefix = key.substring(0, encrypted ? 5 : 4);\n if (!isValidPrefix(keyPrefix)) {\n throw new InvalidKeyError(\n `${invalidDetail(ValidationResult.NO_PREFIX_MATCHED)} expecting either '${\n Prefix.EDESK\n }' or '${Prefix.EDSK}'.`\n );\n }\n\n this._key = decrypt(b58cdecode(this.key, prefix[keyPrefix]));\n this._publicKey = this._key.slice(32);\n\n if (!this._key) {\n throw new InvalidKeyError('unable to decode');\n }\n\n this.isInit = this.init();\n }\n\n private async init() {\n if (this._key.length !== 64) {\n const { publicKey, secretKey } = generateKeyPairFromSeed(new Uint8Array(this._key));\n this._publicKey = publicKey;\n this._key = secretKey;\n }\n return true;\n }\n\n /**\n *\n * @param bytes Bytes to sign\n * @param bytesHash Blake2b hash of the bytes to sign\n */\n async sign(bytes: string, bytesHash: Uint8Array) {\n await this.isInit;\n const signature = sign(new Uint8Array(this._key), new Uint8Array(bytesHash));\n const signatureBuffer = toBuffer(signature);\n const sbytes = bytes + buf2hex(signatureBuffer);\n\n return {\n bytes,\n sig: b58cencode(signature, prefix.sig),\n prefixSig: b58cencode(signature, prefix.edsig),\n sbytes,\n };\n }\n\n /**\n * @returns Encoded public key\n */\n async publicKey(): Promise<string> {\n await this.isInit;\n return b58cencode(this._publicKey, prefix['edpk']);\n }\n\n /**\n * @returns Encoded public key hash\n */\n async publicKeyHash(): Promise<string> {\n await this.isInit;\n return b58cencode(hash(new Uint8Array(this._publicKey), 20), prefix.tz1);\n }\n\n /**\n * @returns Encoded private key\n */\n async secretKey(): Promise<string> {\n await this.isInit;\n let key = this._key;\n const { secretKey } = generateKeyPairFromSeed(new Uint8Array(key).slice(0, 32));\n key = toBuffer(secretKey);\n\n return b58cencode(key, prefix[`edsk`]);\n }\n}\n","import { hash } from '@stablelib/blake2b';\nimport {\n b58cencode,\n b58cdecode,\n prefix,\n isValidPrefix,\n invalidDetail,\n Prefix,\n ValidationResult,\n} from '@taquito/utils';\nimport toBuffer from 'typedarray-to-buffer';\nimport elliptic from 'elliptic';\nimport { InvalidKeyError } from '@taquito/core';\n\nconst pref = {\n p256: {\n pk: prefix['p2pk'],\n sk: prefix['p2sk'],\n pkh: prefix.tz3,\n sig: prefix.p2sig,\n },\n secp256k1: {\n pk: prefix['sppk'],\n sk: prefix['spsk'],\n pkh: prefix.tz2,\n sig: prefix.spsig,\n },\n};\n\n/**\n * @description Provide signing logic for elliptic curve based key (tz2, tz3)\n */\nexport class ECKey {\n private _key: Uint8Array;\n private _publicKey: Uint8Array;\n\n /**\n *\n * @param curve Curve to use with the key\n * @param key Encoded private key\n * @param encrypted Is the private key encrypted\n * @param decrypt Decrypt function\n * @throws {@link InvalidKeyError}\n */\n constructor(\n private curve: 'p256' | 'secp256k1',\n private key: string,\n encrypted: boolean,\n decrypt: (k: any) => any\n ) {\n const keyPrefix = key.substring(0, encrypted ? 5 : 4);\n if (!isValidPrefix(keyPrefix)) {\n throw new InvalidKeyError(\n invalidDetail(ValidationResult.NO_PREFIX_MATCHED) +\n ` expecting one of the following prefix '${Prefix.SPSK}', '${Prefix.SPESK}', '${Prefix.P2SK}' or '${Prefix.P2ESK}'.`\n );\n }\n\n this._key = decrypt(b58cdecode(this.key, prefix[keyPrefix]));\n const keyPair = new elliptic.ec(this.curve).keyFromPrivate(this._key);\n const keyPairY = keyPair.getPublic().getY().toArray();\n const parityByte = keyPairY.length < 32 ? keyPairY[keyPairY.length - 1] : keyPairY[31];\n const pref = parityByte % 2 ? 3 : 2;\n const pad = new Array(32).fill(0);\n this._publicKey = toBuffer(\n new Uint8Array([pref].concat(pad.concat(keyPair.getPublic().getX().toArray()).slice(-32)))\n );\n }\n\n /**\n *\n * @param bytes Bytes to sign\n * @param bytesHash Blake2b hash of the bytes to sign\n */\n async sign(bytes: string, bytesHash: Uint8Array) {\n const key = new elliptic.ec(this.curve).keyFromPrivate(this._key);\n const sig = key.sign(bytesHash, { canonical: true });\n const signature = sig.r.toString('hex', 64) + sig.s.toString('hex', 64);\n\n const sbytes = bytes + signature;\n return {\n bytes,\n sig: b58cencode(signature, prefix.sig),\n prefixSig: b58cencode(signature, pref[this.curve].sig),\n sbytes,\n };\n }\n\n /**\n * @returns Encoded public key\n */\n async publicKey(): Promise<string> {\n return b58cencode(this._publicKey, pref[this.curve].pk);\n }\n\n /**\n * @returns Encoded public key hash\n */\n async publicKeyHash(): Promise<string> {\n return b58cencode(hash(new Uint8Array(this._publicKey), 20), pref[this.curve].pkh);\n }\n\n /**\n * @returns Encoded private key\n */\n async secretKey(): Promise<string> {\n const key = this._key;\n\n return b58cencode(key, pref[this.curve].sk);\n }\n}\n\n/**\n * @description Tz3 key class using the p256 curve\n */\nexport const Tz3 = ECKey.bind(null, 'p256');\n\n/**\n * @description Tz2 key class using the secp256k1 curve\n */\nexport const Tz2 = ECKey.bind(null, 'secp256k1');\n","import { InvalidHexStringError } from '@taquito/core';\n\nexport function parseHex(s: string): Uint8Array {\n const res: number[] = [];\n for (let i = 0; i < s.length; i += 2) {\n const ss = s.slice(i, i + 2);\n const x = parseInt(ss, 16);\n if (Number.isNaN(x)) {\n throw new InvalidHexStringError(ss);\n }\n res.push(x);\n }\n return new Uint8Array(res);\n}\n","import { ParameterValidationError, UnsupportedActionError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error that indicates an invalid Mnemonic being passed or used\n */\nexport class InvalidMnemonicError extends ParameterValidationError {\n constructor(public readonly mnemonic: string) {\n super();\n this.name = 'InvalidMnemonicError';\n this.message = `Invalid mnemonic \"${mnemonic}\"`;\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a curve with incorrect bit size being passed or used\n */\nexport class InvalidBitSize extends ParameterValidationError {\n constructor(public readonly message: string) {\n super();\n this.name = 'InvalidBitSize';\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an unsupported cureve being passed or used\n */\nexport class InvalidCurveError extends ParameterValidationError {\n constructor(public readonly message: string) {\n super();\n this.name = 'InvalidCurveError';\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a seed with invalid length being passed or used\n */\nexport class InvalidSeedLengthError extends ParameterValidationError {\n constructor(public readonly seedLength: number) {\n super();\n this.name = 'InvalidSeedLengthError';\n this.message = `Invalid seed length \"${seedLength}\" expecting length between 16 to 64.`;\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a feature still under developement\n */\nexport class ToBeImplemented extends UnsupportedActionError {\n constructor() {\n super();\n this.name = 'ToBeImplemented';\n this.message = 'This feature is under developement';\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid passphrase being passed or used\n */\nexport class InvalidPassphraseError extends ParameterValidationError {\n constructor(public readonly message: string) {\n super();\n this.name = 'InvalidPassphraseError';\n }\n}\n","/* eslint-disable @typescript-eslint/no-this-alias */\nimport { ec, curve } from 'elliptic';\nimport { Hard, ExtendedPrivateKey } from './index';\nimport { HMAC } from '@stablelib/hmac';\nimport { SHA512 } from '@stablelib/sha512';\nimport BN from 'bn.js';\nimport { parseHex } from './utils';\nimport { InvalidBitSize, InvalidCurveError, InvalidSeedLengthError } from '../errors';\nimport { InvalidKeyError } from '@taquito/core';\n\nexport type CurveName = 'p256' | 'secp256k1';\n\nconst seedKey: Record<CurveName, string> = {\n p256: 'Nist256p1 seed',\n secp256k1: 'Bitcoin seed',\n};\n\ninterface KeyPair extends ec.KeyPair {\n priv: BN | null;\n pub: curve.base.BasePoint | null;\n}\n\n// MinSeedSize is the minimal allowed seed byte length\nconst minSeedSize = 16;\n// MaxSeedSize is the maximal allowed seed byte length\nconst maxSeedSize = 64;\n\nexport class PrivateKey implements ExtendedPrivateKey {\n readonly keyPair: KeyPair;\n /**\n *\n * @param priv key pair priv (BN) pub (curve.base.BasePint) if applicable\n * @param chainCode slice 32->n HMAC hash key and seedkey (first instance curve default seedKey. after hmac value slice 32->n)\n */\n constructor(priv: ec.KeyPair, public readonly chainCode: Uint8Array) {\n this.keyPair = <KeyPair>priv;\n }\n /**\n * @param seedSrc result of Bip39.mnemonicToSeed\n * @param curve known supported curve p256 or secp256k1\n * @returns instance of PrivateKey non-HD keys derived\n * @throws {@link InvalidBitSize} | {@link InvalidCurveError} | {@link InvalidSeedLengthError}\n */\n static fromSeed(seedSrc: Uint8Array | string, curve: CurveName): PrivateKey {\n let seed = typeof seedSrc === 'string' ? parseHex(seedSrc) : seedSrc;\n if (seed.length < minSeedSize || seed.length > maxSeedSize) {\n throw new InvalidSeedLengthError(seed.length);\n }\n if (!Object.prototype.hasOwnProperty.call(seedKey, curve)) {\n throw new InvalidCurveError(\n `Unsupported curve \"${curve}\" expecting either \"p256\" or \"secp256k1\"`\n );\n }\n const c = new ec(curve);\n if (c.n?.bitLength() !== 256) {\n throw new InvalidBitSize(\n `Invalid curve \"${curve}\" with bit size \"${c.n?.bitLength()}\" expecting bit size \"256\"`\n );\n }\n\n const key = new TextEncoder().encode(seedKey[curve]);\n let d: BN | null = null;\n let chain: Uint8Array = new Uint8Array();\n let i = 0;\n while (i === 0) {\n const sum = new HMAC(SHA512, key).update(seed).digest();\n d = new BN(sum.subarray(0, 32));\n chain = sum.subarray(32);\n if (d.isZero() || d.cmp(c.n as BN) >= 0) {\n seed = sum;\n } else {\n i++;\n }\n }\n\n const keyPair = <KeyPair>c.keyPair({});\n keyPair.priv = d;\n return new PrivateKey(keyPair, chain);\n }\n /**\n *\n * @param index derivation path item pre-hardened if applicable ie: 44' -> 2^31 + 44\n * @returns child PrivateKey of the current PrivateKey\n */\n derive(index: number): PrivateKey {\n const data = new Uint8Array(37);\n if ((index & Hard) !== 0) {\n // hardened derivation\n data.set(this.keyPair.getPrivate().toArray(), 1);\n } else {\n data.set(this.keyPair.getPublic().encodeCompressed(), 0);\n }\n new DataView(data.buffer).setUint32(33, index);\n\n let d: BN = new BN(0);\n let chain: Uint8Array = new Uint8Array();\n let i = 0;\n while (i === 0) {\n const sum = new HMAC(SHA512, this.chainCode).update(data).digest();\n d = new BN(sum.subarray(0, 32));\n chain = sum.subarray(32);\n if (this.keyPair.ec.n && d.cmp(this.keyPair.ec.n as BN) < 0) {\n d = d.add(this.keyPair.getPrivate() as BN).mod(this.keyPair.ec.n as BN);\n if (!d.isZero()) {\n i++;\n }\n }\n data.set(chain, 1);\n data[0] = 1;\n }\n const keyPair = <KeyPair>this.keyPair.ec.keyPair({});\n keyPair.priv = d;\n return new PrivateKey(keyPair, chain);\n }\n /**\n *\n * @param path pre-hardened (if applicable) derivation path items ie 44'/1729'/0/0 -> 2^31 + 44/2^31 + 1729/0/0\n * @returns final child of the full HD keys derivation\n */\n derivePath(path: Iterable<number>): PrivateKey {\n let key: PrivateKey = this;\n for (const x of path) {\n key = key.derive(x);\n }\n return key;\n }\n /**\n *\n * @returns Uint8Array (if contains a private key)\n * @throws {@link InvalidKeyError}\n */\n bytes(): Uint8Array {\n if (!this.keyPair.priv) {\n throw new InvalidKeyError('missing private key');\n }\n // pad to 32 bytes as toArray() length argument seems to be ignored (BN bug)\n const src = this.keyPair.priv.toArray();\n const out = new Uint8Array(32);\n out.set(src, out.length - src.length);\n return out;\n }\n}\n","import { InvalidDerivationPathError } from '@taquito/core';\n\nexport * as ECDSA from './ecdsa';\nexport * as Ed25519 from './ed25519';\n\nexport const Hard = 0x80000000;\n\nexport interface ExtendedKey {\n readonly chainCode: Uint8Array;\n derive(index: number): ExtendedKey;\n derivePath(path: Iterable<number>): ExtendedKey;\n}\n\nexport interface ExtendedPrivateKey extends ExtendedKey {\n derive(index: number): ExtendedPrivateKey;\n derivePath(path: number[]): ExtendedPrivateKey;\n}\n\nexport class Path extends Array<number> {\n static from(iterable: Iterable<number> | ArrayLike<number>): Path {\n return super.from(iterable).map((x) => x >>> 0);\n }\n /**\n *\n * @param s derivation path eg: 44'/1729'/0'/0'\n * @returns applied hardened values\n */\n static fromString(s: string): Path {\n if (s.length === 0) {\n return new Path();\n }\n let parts = s.split('/');\n const out: number[] = [];\n if (parts[0] === 'm') {\n parts = parts.slice(1);\n }\n for (let p of parts) {\n if (p.length === 0) {\n throw new InvalidDerivationPathError(s, `: Invalid BIP32 path`);\n }\n let h = 0;\n const last = p[p.length - 1];\n if (last === \"'\" || last === 'h' || last === 'H') {\n h = Hard;\n p = p.slice(0, p.length - 1);\n }\n const index = (parseInt(p, 10) | h) >>> 0;\n out.push(index);\n }\n return Path.from(out);\n }\n}\n","/* eslint-disable @typescript-eslint/no-this-alias */\nimport { HMAC } from '@stablelib/hmac';\nimport { SHA512 } from '@stablelib/sha512';\nimport { generateKeyPairFromSeed } from '@stablelib/ed25519';\nimport { ExtendedPrivateKey, Hard } from './index';\nimport { parseHex } from './utils';\nimport { InvalidSeedLengthError } from '../errors';\nimport { InvalidDerivationPathError } from '@taquito/core';\n\n// MinSeedSize is the minimal allowed seed byte length\nconst minSeedSize = 16;\n// MaxSeedSize is the maximal allowed seed byte length\nconst maxSeedSize = 64;\n\nconst ed25519Key = 'ed25519 seed';\n\nexport class PrivateKey implements ExtendedPrivateKey {\n /**\n *\n * @param priv generated keypair 0->32 private key 32->n public key\n * @param chainCode new HMAC hash with new key\n */\n constructor(readonly priv: Uint8Array, readonly chainCode: Uint8Array) {}\n\n /**\n *\n * @param seedSrc result of Bip39.mnemonicToSeed\n * @returns instance of PrivateKey\n * @throws {@link InvalidSeedLengthError}\n */\n static fromSeed(seedSrc: Uint8Array | string): PrivateKey {\n const seed = typeof seedSrc === 'string' ? parseHex(seedSrc) : seedSrc;\n if (seed.length < minSeedSize || seed.length > maxSeedSize) {\n throw new InvalidSeedLengthError(seed.length);\n }\n const key = new TextEncoder().encode(ed25519Key);\n const sum = new HMAC(SHA512, key).update(seed).digest();\n return new PrivateKey(generateKeyPairFromSeed(sum.subarray(0, 32)).secretKey, sum.subarray(32));\n }\n /**\n *\n * @returns slice(0, 32) of current priv for new seed for next derived priv\n */\n seed(): Uint8Array {\n return this.priv.subarray(0, 32);\n }\n /**\n * @index current derivation path item ie: 1729'\n * @returns derivation path child of original private key pair\n */\n derive(index: number): PrivateKey {\n if ((index & Hard) === 0) {\n throw new InvalidDerivationPathError(index.toString(), ': Non-hardened derivation path.');\n }\n const data = new Uint8Array(37);\n data.set(this.seed(), 1);\n new DataView(data.buffer).setUint32(33, index);\n const sum = new HMAC(SHA512, this.chainCode).update(data).digest();\n return new PrivateKey(generateKeyPairFromSeed(sum.subarray(0, 32)).secretKey, sum.subarray(32));\n }\n /**\n * @param path array of numbers pre adjusted for hardened paths ie: 44' -> 2^31 + 44\n * @returns final child of full derivation path private key pair\n */\n derivePath(path: Iterable<number>): PrivateKey {\n let key: PrivateKey = this;\n for (const index of path) {\n key = key.derive(index);\n }\n return key;\n }\n}\n","import { b58cencode, prefix } from '@taquito/utils';\nimport { PrivateKey as PrivateKeyEd } from './derivation-tools/ed25519';\nimport { PrivateKey as PrivateKeyEc } from './derivation-tools/ecdsa';\nimport { Path } from './derivation-tools';\nimport { InvalidCurveError, ToBeImplemented } from './errors';\n\nexport type Curves = 'ed25519' | 'secp256k1' | 'p256' | 'bip25519';\n\n// bip32 when supported add to @param curve bip25519\n/**\n *\n * @param seed bip39.mnemonicToSeed\n * @param derivationPath Tezos Requirement 44'/1729' for HD key address default 44'/1729'/0'/0'\n * @param curve 'ed25519' | 'secp256k1' | 'p256''\n * @returns final Derivation of HD keys tezos Secret key\n * @throws {@link InvalidCurveError} | {@link ToBeImplemented}\n */\nexport const generateSecretKey = (seed: Uint8Array, derivationPath: string, curve: Curves) => {\n const path = Path.fromString(derivationPath);\n let node: PrivateKeyEc | PrivateKeyEd;\n\n switch (curve) {\n case 'ed25519': {\n node = PrivateKeyEd.fromSeed(seed).derivePath(path);\n const sk = b58cencode(node.seed().slice(0, 32), prefix.edsk2);\n return sk;\n }\n case 'secp256k1':\n case 'p256': {\n const prefixType = curve === 'secp256k1' ? prefix.spsk : prefix.p2sk;\n let privKey = PrivateKeyEc.fromSeed(seed, curve);\n privKey = privKey.derivePath(path);\n const uint8arr = new Uint8Array(privKey.keyPair.getPrivate().toArray());\n const sk = b58cencode(uint8arr, prefixType);\n return sk;\n }\n case 'bip25519': {\n throw new ToBeImplemented();\n }\n default: {\n throw new InvalidCurveError(\n `Unsupported curve \"${curve}\" expecting one of the following \"ed25519\", \"secp256k1\", \"p256\"`\n );\n }\n }\n};\n","import { InMemorySigner } from './taquito-signer';\nimport { TezosToolkit } from '@taquito/taquito';\n\n/**\n *\n * @description Import a key to sign operation with the side-effect of setting the Tezos instance to use the InMemorySigner provider\n *\n * @warn The JSON faucets are no longer available on https://teztnets.xyz/\n * @param toolkit The toolkit instance to attach a signer\n * @param privateKeyOrEmail Key to load in memory\n * @param passphrase If the key is encrypted passphrase to decrypt it\n * @param mnemonic Faucet mnemonic\n * @param secret Faucet secret\n */\nexport async function importKey(\n toolkit: TezosToolkit,\n privateKeyOrEmail: string,\n passphrase?: string,\n mnemonic?: string,\n secret?: string\n) {\n if (privateKeyOrEmail && passphrase && mnemonic && secret) {\n const signer = InMemorySigner.fromFundraiser(privateKeyOrEmail, passphrase, mnemonic);\n toolkit.setProvider({ signer });\n const pkh = await signer.publicKeyHash();\n let op;\n try {\n op = await toolkit.tz.activate(pkh, secret);\n } catch (ex: any) {\n const isInvalidActivationError = ex && ex.body && /Invalid activation/.test(ex.body);\n if (!isInvalidActivationError) {\n throw ex;\n }\n }\n if (op) {\n await op.confirmation();\n }\n } else {\n // Fallback to regular import\n const signer = await InMemorySigner.fromSecretKey(privateKeyOrEmail, passphrase);\n toolkit.setProvider({ signer });\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"9e27326dabf764c55402c50be4d78681f2c78cca\",\n \"version\": \"17.3.1\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/signer\n */\nimport { openSecretBox } from '@stablelib/nacl';\nimport { hash } from '@stablelib/blake2b';\nimport {\n hex2buf,\n mergebuf,\n b58cencode,\n prefix,\n Prefix,\n invalidDetail,\n ValidationResult,\n} from '@taquito/utils';\nimport toBuffer from 'typedarray-to-buffer';\nimport { Tz1 } from './ed-key';\nimport { Tz2, ECKey, Tz3 } from './ec-key';\nimport pbkdf2 from 'pbkdf2';\nimport * as Bip39 from 'bip39';\nimport { Curves, generateSecretKey } from './helpers';\nimport { InvalidMnemonicError, InvalidPassphraseError } from './errors';\nimport { InvalidKeyError } from '@taquito/core';\n\nexport * from './import-key';\nexport { VERSION } from './version';\nexport * from './derivation-tools';\nexport * from './helpers';\nexport { InvalidPassphraseError } from './errors';\n\nexport interface FromMnemonicParams {\n mnemonic: string;\n password?: string;\n derivationPath?: string;\n curve?: Curves;\n}\n\n/**\n * @description A local implementation of the signer. Will represent a Tezos account and be able to produce signature in its behalf\n *\n * @warn If running in production and dealing with tokens that have real value, it is strongly recommended to use a HSM backed signer so that private key material is not stored in memory or on disk\n * @throws {@link InvalidMnemonicError}\n */\nexport class InMemorySigner {\n private _key!: Tz1 | ECKey;\n\n static fromFundraiser(email: string, password: string, mnemonic: string) {\n if (!Bip39.validateMnemonic(mnemonic)) {\n throw new InvalidMnemonicError(mnemonic);\n }\n const seed = Bip39.mnemonicToSeedSync(mnemonic, `${email}${password}`);\n const key = b58cencode(seed.slice(0, 32), prefix.edsk2);\n return new InMemorySigner(key);\n }\n\n static async fromSecretKey(key: string, passphrase?: string) {\n return new InMemorySigner(key, passphrase);\n }\n\n /**\n *\n * @description Instantiation of an InMemorySigner instance from a mnemonic\n * @param mnemonic 12-24 word mnemonic\n * @param password password used to encrypt the mnemonic to seed value\n * @param derivationPath default 44'/1729'/0'/0' (44'/1729' mandatory)\n * @param curve currently only supported for tz1, tz2, tz3 addresses. soon bip25519\n * @returns InMemorySigner\n * @throws {@link InvalidMnemonicError}\n */\n static fromMnemonic({\n mnemonic,\n password = '',\n derivationPath = \"44'/1729'/0'/0'\",\n curve = 'ed25519',\n }: FromMnemonicParams) {\n // check if curve is defined if not default tz1\n if (!Bip39.validateMnemonic(mnemonic)) {\n // avoiding exposing mnemonic again in case of mistake making invalid\n throw new InvalidMnemonicError(mnemonic);\n }\n const seed = Bip39.mnemonicToSeedSync(mnemonic, password);\n\n const sk = generateSecretKey(seed, derivationPath, curve);\n\n return new InMemorySigner(sk);\n }\n /**\n *\n * @param key Encoded private key\n * @param passphrase Passphrase to decrypt the private key if it is encrypted\n * @throws {@link InvalidKeyError}\n *\n */\n constructor(key: string, passphrase?: string) {\n const encrypted = key.substring(2, 3) === 'e';\n\n let decrypt = (k: any) => k;\n\n if (encrypted) {\n if (!passphrase) {\n throw new InvalidPassphraseError('No passphrase provided to decrypt encrypted key');\n }\n\n decrypt = (constructedKey: Uint8Array) => {\n const salt = toBuffer(constructedKey.slice(0, 8));\n const encryptedSk = constructedKey.slice(8);\n const encryptionKey = pbkdf2.pbkdf2Sync(passphrase, salt, 32768, 32, 'sha512');\n\n return openSecretBox(\n new Uint8Array(encryptionKey),\n new Uint8Array(24),\n new Uint8Array(encryptedSk)\n );\n };\n }\n\n switch (key.substring(0, 4)) {\n case 'edes':\n case 'edsk':\n this._key = new Tz1(key, encrypted, decrypt);\n break;\n case 'spsk':\n case 'spes':\n this._key = new Tz2(key, encrypted, decrypt);\n break;\n case 'p2sk':\n case 'p2es':\n this._key = new Tz3(key, encrypted, decrypt);\n break;\n default:\n throw new InvalidKeyError(\n `${invalidDetail(ValidationResult.NO_PREFIX_MATCHED)} expecting one of the following '${\n Prefix.EDESK\n }', '${Prefix.EDSK}', '${Prefix.SPSK}', '${Prefix.SPESK}', '${Prefix.P2SK}' or '${\n Prefix.P2ESK\n }'.`\n );\n }\n }\n\n /**\n *\n * @param bytes Bytes to sign\n * @param watermark Watermark to append to the bytes\n */\n async sign(bytes: string, watermark?: Uint8Array) {\n let bb = hex2buf(bytes);\n if (typeof watermark !== 'undefined') {\n bb = mergebuf(watermark, bb);\n }\n\n const bytesHash = hash(bb, 32);\n\n return this._key.sign(bytes, bytesHash);\n }\n\n /**\n * @returns Encoded public key\n */\n async publicKey(): Promise<string> {\n return this._key.publicKey();\n }\n\n /**\n * @returns Encoded public key hash\n */\n async publicKeyHash(): Promise<string> {\n return this._key.publicKeyHash();\n }\n\n /**\n * @returns Encoded private key\n */\n async secretKey(): Promise<string> {\n return this._key.secretKey();\n }\n}\n"],"names":["isValidPrefix","InvalidKeyError","invalidDetail","ValidationResult","Prefix","b58cdecode","prefix","generateKeyPairFromSeed","sign","toBuffer","buf2hex","b58cencode","hash","elliptic","InvalidHexStringError","ParameterValidationError","UnsupportedActionError","minSeedSize","maxSeedSize","PrivateKey","ec","HMAC","SHA512","BN","InvalidDerivationPathError","PrivateKeyEd","PrivateKeyEc","pbkdf2","openSecretBox","Bip39","hex2buf","mergebuf"],"mappings":"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"}
1
+ {"version":3,"file":"taquito-signer.umd.js","sources":["../src/ed-key.ts","../src/ec-key.ts","../src/derivation-tools/utils.ts","../src/errors.ts","../src/derivation-tools/ecdsa.ts","../src/derivation-tools/index.ts","../src/derivation-tools/ed25519.ts","../src/helpers.ts","../src/import-key.ts","../src/version.ts","../src/taquito-signer.ts"],"sourcesContent":["import { hash } from '@stablelib/blake2b';\nimport { generateKeyPairFromSeed, sign } from '@stablelib/ed25519';\nimport {\n b58cencode,\n b58cdecode,\n prefix,\n buf2hex,\n isValidPrefix,\n Prefix,\n invalidDetail,\n ValidationResult,\n} from '@taquito/utils';\nimport toBuffer from 'typedarray-to-buffer';\nimport { InvalidKeyError } from '@taquito/core';\n\n/**\n * @description Provide signing logic for ed25519 curve based key (tz1)\n */\nexport class Tz1 {\n private _key: Uint8Array;\n private _publicKey: Uint8Array;\n private isInit: Promise<boolean>;\n\n /**\n *\n * @param key Encoded private key\n * @param encrypted Is the private key encrypted\n * @param decrypt Decrypt function\n * @throws {@link InvalidKeyError}\n */\n constructor(private key: string, encrypted: boolean, decrypt: (k: any) => any) {\n const keyPrefix = key.substring(0, encrypted ? 5 : 4);\n if (!isValidPrefix(keyPrefix)) {\n throw new InvalidKeyError(\n `${invalidDetail(ValidationResult.NO_PREFIX_MATCHED)} expecting either '${\n Prefix.EDESK\n }' or '${Prefix.EDSK}'.`\n );\n }\n\n this._key = decrypt(b58cdecode(this.key, prefix[keyPrefix]));\n this._publicKey = this._key.slice(32);\n\n if (!this._key) {\n throw new InvalidKeyError('unable to decode');\n }\n\n this.isInit = this.init();\n }\n\n private async init() {\n if (this._key.length !== 64) {\n const { publicKey, secretKey } = generateKeyPairFromSeed(new Uint8Array(this._key));\n this._publicKey = publicKey;\n this._key = secretKey;\n }\n return true;\n }\n\n /**\n *\n * @param bytes Bytes to sign\n * @param bytesHash Blake2b hash of the bytes to sign\n */\n async sign(bytes: string, bytesHash: Uint8Array) {\n await this.isInit;\n const signature = sign(new Uint8Array(this._key), new Uint8Array(bytesHash));\n const signatureBuffer = toBuffer(signature);\n const sbytes = bytes + buf2hex(signatureBuffer);\n\n return {\n bytes,\n sig: b58cencode(signature, prefix.sig),\n prefixSig: b58cencode(signature, prefix.edsig),\n sbytes,\n };\n }\n\n /**\n * @returns Encoded public key\n */\n async publicKey(): Promise<string> {\n await this.isInit;\n return b58cencode(this._publicKey, prefix['edpk']);\n }\n\n /**\n * @returns Encoded public key hash\n */\n async publicKeyHash(): Promise<string> {\n await this.isInit;\n return b58cencode(hash(new Uint8Array(this._publicKey), 20), prefix.tz1);\n }\n\n /**\n * @returns Encoded private key\n */\n async secretKey(): Promise<string> {\n await this.isInit;\n let key = this._key;\n const { secretKey } = generateKeyPairFromSeed(new Uint8Array(key).slice(0, 32));\n key = toBuffer(secretKey);\n\n return b58cencode(key, prefix[`edsk`]);\n }\n}\n","import { hash } from '@stablelib/blake2b';\nimport {\n b58cencode,\n b58cdecode,\n prefix,\n isValidPrefix,\n invalidDetail,\n Prefix,\n ValidationResult,\n} from '@taquito/utils';\nimport toBuffer from 'typedarray-to-buffer';\nimport elliptic from 'elliptic';\nimport { InvalidKeyError } from '@taquito/core';\n\nconst pref = {\n p256: {\n pk: prefix['p2pk'],\n sk: prefix['p2sk'],\n pkh: prefix.tz3,\n sig: prefix.p2sig,\n },\n secp256k1: {\n pk: prefix['sppk'],\n sk: prefix['spsk'],\n pkh: prefix.tz2,\n sig: prefix.spsig,\n },\n};\n\n/**\n * @description Provide signing logic for elliptic curve based key (tz2, tz3)\n */\nexport class ECKey {\n private _key: Uint8Array;\n private _publicKey: Uint8Array;\n\n /**\n *\n * @param curve Curve to use with the key\n * @param key Encoded private key\n * @param encrypted Is the private key encrypted\n * @param decrypt Decrypt function\n * @throws {@link InvalidKeyError}\n */\n constructor(\n private curve: 'p256' | 'secp256k1',\n private key: string,\n encrypted: boolean,\n decrypt: (k: any) => any\n ) {\n const keyPrefix = key.substring(0, encrypted ? 5 : 4);\n if (!isValidPrefix(keyPrefix)) {\n throw new InvalidKeyError(\n invalidDetail(ValidationResult.NO_PREFIX_MATCHED) +\n ` expecting one of the following prefix '${Prefix.SPSK}', '${Prefix.SPESK}', '${Prefix.P2SK}' or '${Prefix.P2ESK}'.`\n );\n }\n\n this._key = decrypt(b58cdecode(this.key, prefix[keyPrefix]));\n const keyPair = new elliptic.ec(this.curve).keyFromPrivate(this._key);\n const keyPairY = keyPair.getPublic().getY().toArray();\n const parityByte = keyPairY.length < 32 ? keyPairY[keyPairY.length - 1] : keyPairY[31];\n const pref = parityByte % 2 ? 3 : 2;\n const pad = new Array(32).fill(0);\n this._publicKey = toBuffer(\n new Uint8Array([pref].concat(pad.concat(keyPair.getPublic().getX().toArray()).slice(-32)))\n );\n }\n\n /**\n *\n * @param bytes Bytes to sign\n * @param bytesHash Blake2b hash of the bytes to sign\n */\n async sign(bytes: string, bytesHash: Uint8Array) {\n const key = new elliptic.ec(this.curve).keyFromPrivate(this._key);\n const sig = key.sign(bytesHash, { canonical: true });\n const signature = sig.r.toString('hex', 64) + sig.s.toString('hex', 64);\n\n const sbytes = bytes + signature;\n return {\n bytes,\n sig: b58cencode(signature, prefix.sig),\n prefixSig: b58cencode(signature, pref[this.curve].sig),\n sbytes,\n };\n }\n\n /**\n * @returns Encoded public key\n */\n async publicKey(): Promise<string> {\n return b58cencode(this._publicKey, pref[this.curve].pk);\n }\n\n /**\n * @returns Encoded public key hash\n */\n async publicKeyHash(): Promise<string> {\n return b58cencode(hash(new Uint8Array(this._publicKey), 20), pref[this.curve].pkh);\n }\n\n /**\n * @returns Encoded private key\n */\n async secretKey(): Promise<string> {\n const key = this._key;\n\n return b58cencode(key, pref[this.curve].sk);\n }\n}\n\n/**\n * @description Tz3 key class using the p256 curve\n */\nexport const Tz3 = ECKey.bind(null, 'p256');\n\n/**\n * @description Tz2 key class using the secp256k1 curve\n */\nexport const Tz2 = ECKey.bind(null, 'secp256k1');\n","import { InvalidHexStringError } from '@taquito/core';\n\nexport function parseHex(s: string): Uint8Array {\n const res: number[] = [];\n for (let i = 0; i < s.length; i += 2) {\n const ss = s.slice(i, i + 2);\n const x = parseInt(ss, 16);\n if (Number.isNaN(x)) {\n throw new InvalidHexStringError(ss);\n }\n res.push(x);\n }\n return new Uint8Array(res);\n}\n","import { ParameterValidationError, UnsupportedActionError } from '@taquito/core';\n\n/**\n * @category Error\n * @description Error that indicates an invalid Mnemonic being passed or used\n */\nexport class InvalidMnemonicError extends ParameterValidationError {\n constructor(public readonly mnemonic: string) {\n super();\n this.name = 'InvalidMnemonicError';\n this.message = `Invalid mnemonic \"${mnemonic}\"`;\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a curve with incorrect bit size being passed or used\n */\nexport class InvalidBitSize extends ParameterValidationError {\n constructor(public readonly message: string) {\n super();\n this.name = 'InvalidBitSize';\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an unsupported cureve being passed or used\n */\nexport class InvalidCurveError extends ParameterValidationError {\n constructor(public readonly message: string) {\n super();\n this.name = 'InvalidCurveError';\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a seed with invalid length being passed or used\n */\nexport class InvalidSeedLengthError extends ParameterValidationError {\n constructor(public readonly seedLength: number) {\n super();\n this.name = 'InvalidSeedLengthError';\n this.message = `Invalid seed length \"${seedLength}\" expecting length between 16 to 64.`;\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a feature still under developement\n */\nexport class ToBeImplemented extends UnsupportedActionError {\n constructor() {\n super();\n this.name = 'ToBeImplemented';\n this.message = 'This feature is under developement';\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid passphrase being passed or used\n */\nexport class InvalidPassphraseError extends ParameterValidationError {\n constructor(public readonly message: string) {\n super();\n this.name = 'InvalidPassphraseError';\n }\n}\n","/* eslint-disable @typescript-eslint/no-this-alias */\nimport { ec, curve } from 'elliptic';\nimport { Hard, ExtendedPrivateKey } from './index';\nimport { HMAC } from '@stablelib/hmac';\nimport { SHA512 } from '@stablelib/sha512';\nimport BN from 'bn.js';\nimport { parseHex } from './utils';\nimport { InvalidBitSize, InvalidCurveError, InvalidSeedLengthError } from '../errors';\nimport { InvalidKeyError } from '@taquito/core';\n\nexport type CurveName = 'p256' | 'secp256k1';\n\nconst seedKey: Record<CurveName, string> = {\n p256: 'Nist256p1 seed',\n secp256k1: 'Bitcoin seed',\n};\n\ninterface KeyPair extends ec.KeyPair {\n priv: BN | null;\n pub: curve.base.BasePoint | null;\n}\n\n// MinSeedSize is the minimal allowed seed byte length\nconst minSeedSize = 16;\n// MaxSeedSize is the maximal allowed seed byte length\nconst maxSeedSize = 64;\n\nexport class PrivateKey implements ExtendedPrivateKey {\n readonly keyPair: KeyPair;\n /**\n *\n * @param priv key pair priv (BN) pub (curve.base.BasePint) if applicable\n * @param chainCode slice 32->n HMAC hash key and seedkey (first instance curve default seedKey. after hmac value slice 32->n)\n */\n constructor(priv: ec.KeyPair, public readonly chainCode: Uint8Array) {\n this.keyPair = <KeyPair>priv;\n }\n /**\n * @param seedSrc result of Bip39.mnemonicToSeed\n * @param curve known supported curve p256 or secp256k1\n * @returns instance of PrivateKey non-HD keys derived\n * @throws {@link InvalidBitSize} | {@link InvalidCurveError} | {@link InvalidSeedLengthError}\n */\n static fromSeed(seedSrc: Uint8Array | string, curve: CurveName): PrivateKey {\n let seed = typeof seedSrc === 'string' ? parseHex(seedSrc) : seedSrc;\n if (seed.length < minSeedSize || seed.length > maxSeedSize) {\n throw new InvalidSeedLengthError(seed.length);\n }\n if (!Object.prototype.hasOwnProperty.call(seedKey, curve)) {\n throw new InvalidCurveError(\n `Unsupported curve \"${curve}\" expecting either \"p256\" or \"secp256k1\"`\n );\n }\n const c = new ec(curve);\n if (c.n?.bitLength() !== 256) {\n throw new InvalidBitSize(\n `Invalid curve \"${curve}\" with bit size \"${c.n?.bitLength()}\" expecting bit size \"256\"`\n );\n }\n\n const key = new TextEncoder().encode(seedKey[curve]);\n let d: BN | null = null;\n let chain: Uint8Array = new Uint8Array();\n let i = 0;\n while (i === 0) {\n const sum = new HMAC(SHA512, key).update(seed).digest();\n d = new BN(sum.subarray(0, 32));\n chain = sum.subarray(32);\n if (d.isZero() || d.cmp(c.n as BN) >= 0) {\n seed = sum;\n } else {\n i++;\n }\n }\n\n const keyPair = <KeyPair>c.keyPair({});\n keyPair.priv = d;\n return new PrivateKey(keyPair, chain);\n }\n /**\n *\n * @param index derivation path item pre-hardened if applicable ie: 44' -> 2^31 + 44\n * @returns child PrivateKey of the current PrivateKey\n */\n derive(index: number): PrivateKey {\n const data = new Uint8Array(37);\n if ((index & Hard) !== 0) {\n // hardened derivation\n data.set(this.keyPair.getPrivate().toArray(), 1);\n } else {\n data.set(this.keyPair.getPublic().encodeCompressed(), 0);\n }\n new DataView(data.buffer).setUint32(33, index);\n\n let d: BN = new BN(0);\n let chain: Uint8Array = new Uint8Array();\n let i = 0;\n while (i === 0) {\n const sum = new HMAC(SHA512, this.chainCode).update(data).digest();\n d = new BN(sum.subarray(0, 32));\n chain = sum.subarray(32);\n if (this.keyPair.ec.n && d.cmp(this.keyPair.ec.n as BN) < 0) {\n d = d.add(this.keyPair.getPrivate() as BN).mod(this.keyPair.ec.n as BN);\n if (!d.isZero()) {\n i++;\n }\n }\n data.set(chain, 1);\n data[0] = 1;\n }\n const keyPair = <KeyPair>this.keyPair.ec.keyPair({});\n keyPair.priv = d;\n return new PrivateKey(keyPair, chain);\n }\n /**\n *\n * @param path pre-hardened (if applicable) derivation path items ie 44'/1729'/0/0 -> 2^31 + 44/2^31 + 1729/0/0\n * @returns final child of the full HD keys derivation\n */\n derivePath(path: Iterable<number>): PrivateKey {\n let key: PrivateKey = this;\n for (const x of path) {\n key = key.derive(x);\n }\n return key;\n }\n /**\n *\n * @returns Uint8Array (if contains a private key)\n * @throws {@link InvalidKeyError}\n */\n bytes(): Uint8Array {\n if (!this.keyPair.priv) {\n throw new InvalidKeyError('missing private key');\n }\n // pad to 32 bytes as toArray() length argument seems to be ignored (BN bug)\n const src = this.keyPair.priv.toArray();\n const out = new Uint8Array(32);\n out.set(src, out.length - src.length);\n return out;\n }\n}\n","import { InvalidDerivationPathError } from '@taquito/core';\n\nexport * as ECDSA from './ecdsa';\nexport * as Ed25519 from './ed25519';\n\nexport const Hard = 0x80000000;\n\nexport interface ExtendedKey {\n readonly chainCode: Uint8Array;\n derive(index: number): ExtendedKey;\n derivePath(path: Iterable<number>): ExtendedKey;\n}\n\nexport interface ExtendedPrivateKey extends ExtendedKey {\n derive(index: number): ExtendedPrivateKey;\n derivePath(path: number[]): ExtendedPrivateKey;\n}\n\nexport class Path extends Array<number> {\n static from(iterable: Iterable<number> | ArrayLike<number>): Path {\n return super.from(iterable).map((x) => x >>> 0);\n }\n /**\n *\n * @param s derivation path eg: 44'/1729'/0'/0'\n * @returns applied hardened values\n */\n static fromString(s: string): Path {\n if (s.length === 0) {\n return new Path();\n }\n let parts = s.split('/');\n const out: number[] = [];\n if (parts[0] === 'm') {\n parts = parts.slice(1);\n }\n for (let p of parts) {\n if (p.length === 0) {\n throw new InvalidDerivationPathError(s, `: Invalid BIP32 path`);\n }\n let h = 0;\n const last = p[p.length - 1];\n if (last === \"'\" || last === 'h' || last === 'H') {\n h = Hard;\n p = p.slice(0, p.length - 1);\n }\n const index = (parseInt(p, 10) | h) >>> 0;\n out.push(index);\n }\n return Path.from(out);\n }\n}\n","/* eslint-disable @typescript-eslint/no-this-alias */\nimport { HMAC } from '@stablelib/hmac';\nimport { SHA512 } from '@stablelib/sha512';\nimport { generateKeyPairFromSeed } from '@stablelib/ed25519';\nimport { ExtendedPrivateKey, Hard } from './index';\nimport { parseHex } from './utils';\nimport { InvalidSeedLengthError } from '../errors';\nimport { InvalidDerivationPathError } from '@taquito/core';\n\n// MinSeedSize is the minimal allowed seed byte length\nconst minSeedSize = 16;\n// MaxSeedSize is the maximal allowed seed byte length\nconst maxSeedSize = 64;\n\nconst ed25519Key = 'ed25519 seed';\n\nexport class PrivateKey implements ExtendedPrivateKey {\n /**\n *\n * @param priv generated keypair 0->32 private key 32->n public key\n * @param chainCode new HMAC hash with new key\n */\n constructor(readonly priv: Uint8Array, readonly chainCode: Uint8Array) {}\n\n /**\n *\n * @param seedSrc result of Bip39.mnemonicToSeed\n * @returns instance of PrivateKey\n * @throws {@link InvalidSeedLengthError}\n */\n static fromSeed(seedSrc: Uint8Array | string): PrivateKey {\n const seed = typeof seedSrc === 'string' ? parseHex(seedSrc) : seedSrc;\n if (seed.length < minSeedSize || seed.length > maxSeedSize) {\n throw new InvalidSeedLengthError(seed.length);\n }\n const key = new TextEncoder().encode(ed25519Key);\n const sum = new HMAC(SHA512, key).update(seed).digest();\n return new PrivateKey(generateKeyPairFromSeed(sum.subarray(0, 32)).secretKey, sum.subarray(32));\n }\n /**\n *\n * @returns slice(0, 32) of current priv for new seed for next derived priv\n */\n seed(): Uint8Array {\n return this.priv.subarray(0, 32);\n }\n /**\n * @index current derivation path item ie: 1729'\n * @returns derivation path child of original private key pair\n */\n derive(index: number): PrivateKey {\n if ((index & Hard) === 0) {\n throw new InvalidDerivationPathError(index.toString(), ': Non-hardened derivation path.');\n }\n const data = new Uint8Array(37);\n data.set(this.seed(), 1);\n new DataView(data.buffer).setUint32(33, index);\n const sum = new HMAC(SHA512, this.chainCode).update(data).digest();\n return new PrivateKey(generateKeyPairFromSeed(sum.subarray(0, 32)).secretKey, sum.subarray(32));\n }\n /**\n * @param path array of numbers pre adjusted for hardened paths ie: 44' -> 2^31 + 44\n * @returns final child of full derivation path private key pair\n */\n derivePath(path: Iterable<number>): PrivateKey {\n let key: PrivateKey = this;\n for (const index of path) {\n key = key.derive(index);\n }\n return key;\n }\n}\n","import { b58cencode, prefix } from '@taquito/utils';\nimport { PrivateKey as PrivateKeyEd } from './derivation-tools/ed25519';\nimport { PrivateKey as PrivateKeyEc } from './derivation-tools/ecdsa';\nimport { Path } from './derivation-tools';\nimport { InvalidCurveError, ToBeImplemented } from './errors';\n\nexport type Curves = 'ed25519' | 'secp256k1' | 'p256' | 'bip25519';\n\n// bip32 when supported add to @param curve bip25519\n/**\n *\n * @param seed bip39.mnemonicToSeed\n * @param derivationPath Tezos Requirement 44'/1729' for HD key address default 44'/1729'/0'/0'\n * @param curve 'ed25519' | 'secp256k1' | 'p256''\n * @returns final Derivation of HD keys tezos Secret key\n * @throws {@link InvalidCurveError} | {@link ToBeImplemented}\n */\nexport const generateSecretKey = (seed: Uint8Array, derivationPath: string, curve: Curves) => {\n const path = Path.fromString(derivationPath);\n let node: PrivateKeyEc | PrivateKeyEd;\n\n switch (curve) {\n case 'ed25519': {\n node = PrivateKeyEd.fromSeed(seed).derivePath(path);\n const sk = b58cencode(node.seed().slice(0, 32), prefix.edsk2);\n return sk;\n }\n case 'secp256k1':\n case 'p256': {\n const prefixType = curve === 'secp256k1' ? prefix.spsk : prefix.p2sk;\n let privKey = PrivateKeyEc.fromSeed(seed, curve);\n privKey = privKey.derivePath(path);\n const uint8arr = new Uint8Array(privKey.keyPair.getPrivate().toArray());\n const sk = b58cencode(uint8arr, prefixType);\n return sk;\n }\n case 'bip25519': {\n throw new ToBeImplemented();\n }\n default: {\n throw new InvalidCurveError(\n `Unsupported curve \"${curve}\" expecting one of the following \"ed25519\", \"secp256k1\", \"p256\"`\n );\n }\n }\n};\n","import { InMemorySigner } from './taquito-signer';\nimport { TezosToolkit } from '@taquito/taquito';\n\n/**\n *\n * @description Import a key to sign operation with the side-effect of setting the Tezos instance to use the InMemorySigner provider\n *\n * @warn The JSON faucets are no longer available on https://teztnets.xyz/\n * @param toolkit The toolkit instance to attach a signer\n * @param privateKeyOrEmail Key to load in memory\n * @param passphrase If the key is encrypted passphrase to decrypt it\n * @param mnemonic Faucet mnemonic\n * @param secret Faucet secret\n */\nexport async function importKey(\n toolkit: TezosToolkit,\n privateKeyOrEmail: string,\n passphrase?: string,\n mnemonic?: string,\n secret?: string\n) {\n if (privateKeyOrEmail && passphrase && mnemonic && secret) {\n const signer = InMemorySigner.fromFundraiser(privateKeyOrEmail, passphrase, mnemonic);\n toolkit.setProvider({ signer });\n const pkh = await signer.publicKeyHash();\n let op;\n try {\n op = await toolkit.tz.activate(pkh, secret);\n } catch (ex: any) {\n const isInvalidActivationError = ex && ex.body && /Invalid activation/.test(ex.body);\n if (!isInvalidActivationError) {\n throw ex;\n }\n }\n if (op) {\n await op.confirmation();\n }\n } else {\n // Fallback to regular import\n const signer = await InMemorySigner.fromSecretKey(privateKeyOrEmail, passphrase);\n toolkit.setProvider({ signer });\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"a97e506efd61b86e39ae30db588401b8fda46553\",\n \"version\": \"17.3.2\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/signer\n */\nimport { openSecretBox } from '@stablelib/nacl';\nimport { hash } from '@stablelib/blake2b';\nimport {\n hex2buf,\n mergebuf,\n b58cencode,\n prefix,\n Prefix,\n invalidDetail,\n ValidationResult,\n} from '@taquito/utils';\nimport toBuffer from 'typedarray-to-buffer';\nimport { Tz1 } from './ed-key';\nimport { Tz2, ECKey, Tz3 } from './ec-key';\nimport pbkdf2 from 'pbkdf2';\nimport * as Bip39 from 'bip39';\nimport { Curves, generateSecretKey } from './helpers';\nimport { InvalidMnemonicError, InvalidPassphraseError } from './errors';\nimport { InvalidKeyError } from '@taquito/core';\n\nexport * from './import-key';\nexport { VERSION } from './version';\nexport * from './derivation-tools';\nexport * from './helpers';\nexport { InvalidPassphraseError } from './errors';\n\nexport interface FromMnemonicParams {\n mnemonic: string;\n password?: string;\n derivationPath?: string;\n curve?: Curves;\n}\n\n/**\n * @description A local implementation of the signer. Will represent a Tezos account and be able to produce signature in its behalf\n *\n * @warn If running in production and dealing with tokens that have real value, it is strongly recommended to use a HSM backed signer so that private key material is not stored in memory or on disk\n * @throws {@link InvalidMnemonicError}\n */\nexport class InMemorySigner {\n private _key!: Tz1 | ECKey;\n\n static fromFundraiser(email: string, password: string, mnemonic: string) {\n if (!Bip39.validateMnemonic(mnemonic)) {\n throw new InvalidMnemonicError(mnemonic);\n }\n const seed = Bip39.mnemonicToSeedSync(mnemonic, `${email}${password}`);\n const key = b58cencode(seed.slice(0, 32), prefix.edsk2);\n return new InMemorySigner(key);\n }\n\n static async fromSecretKey(key: string, passphrase?: string) {\n return new InMemorySigner(key, passphrase);\n }\n\n /**\n *\n * @description Instantiation of an InMemorySigner instance from a mnemonic\n * @param mnemonic 12-24 word mnemonic\n * @param password password used to encrypt the mnemonic to seed value\n * @param derivationPath default 44'/1729'/0'/0' (44'/1729' mandatory)\n * @param curve currently only supported for tz1, tz2, tz3 addresses. soon bip25519\n * @returns InMemorySigner\n * @throws {@link InvalidMnemonicError}\n */\n static fromMnemonic({\n mnemonic,\n password = '',\n derivationPath = \"44'/1729'/0'/0'\",\n curve = 'ed25519',\n }: FromMnemonicParams) {\n // check if curve is defined if not default tz1\n if (!Bip39.validateMnemonic(mnemonic)) {\n // avoiding exposing mnemonic again in case of mistake making invalid\n throw new InvalidMnemonicError(mnemonic);\n }\n const seed = Bip39.mnemonicToSeedSync(mnemonic, password);\n\n const sk = generateSecretKey(seed, derivationPath, curve);\n\n return new InMemorySigner(sk);\n }\n /**\n *\n * @param key Encoded private key\n * @param passphrase Passphrase to decrypt the private key if it is encrypted\n * @throws {@link InvalidKeyError}\n *\n */\n constructor(key: string, passphrase?: string) {\n const encrypted = key.substring(2, 3) === 'e';\n\n let decrypt = (k: any) => k;\n\n if (encrypted) {\n if (!passphrase) {\n throw new InvalidPassphraseError('No passphrase provided to decrypt encrypted key');\n }\n\n decrypt = (constructedKey: Uint8Array) => {\n const salt = toBuffer(constructedKey.slice(0, 8));\n const encryptedSk = constructedKey.slice(8);\n const encryptionKey = pbkdf2.pbkdf2Sync(passphrase, salt, 32768, 32, 'sha512');\n\n return openSecretBox(\n new Uint8Array(encryptionKey),\n new Uint8Array(24),\n new Uint8Array(encryptedSk)\n );\n };\n }\n\n switch (key.substring(0, 4)) {\n case 'edes':\n case 'edsk':\n this._key = new Tz1(key, encrypted, decrypt);\n break;\n case 'spsk':\n case 'spes':\n this._key = new Tz2(key, encrypted, decrypt);\n break;\n case 'p2sk':\n case 'p2es':\n this._key = new Tz3(key, encrypted, decrypt);\n break;\n default:\n throw new InvalidKeyError(\n `${invalidDetail(ValidationResult.NO_PREFIX_MATCHED)} expecting one of the following '${\n Prefix.EDESK\n }', '${Prefix.EDSK}', '${Prefix.SPSK}', '${Prefix.SPESK}', '${Prefix.P2SK}' or '${\n Prefix.P2ESK\n }'.`\n );\n }\n }\n\n /**\n *\n * @param bytes Bytes to sign\n * @param watermark Watermark to append to the bytes\n */\n async sign(bytes: string, watermark?: Uint8Array) {\n let bb = hex2buf(bytes);\n if (typeof watermark !== 'undefined') {\n bb = mergebuf(watermark, bb);\n }\n\n const bytesHash = hash(bb, 32);\n\n return this._key.sign(bytes, bytesHash);\n }\n\n /**\n * @returns Encoded public key\n */\n async publicKey(): Promise<string> {\n return this._key.publicKey();\n }\n\n /**\n * @returns Encoded public key hash\n */\n async publicKeyHash(): Promise<string> {\n return this._key.publicKeyHash();\n }\n\n /**\n * @returns Encoded private key\n */\n async secretKey(): Promise<string> {\n return this._key.secretKey();\n }\n}\n"],"names":["isValidPrefix","InvalidKeyError","invalidDetail","ValidationResult","Prefix","b58cdecode","prefix","generateKeyPairFromSeed","sign","toBuffer","buf2hex","b58cencode","hash","elliptic","InvalidHexStringError","ParameterValidationError","UnsupportedActionError","minSeedSize","maxSeedSize","PrivateKey","ec","HMAC","SHA512","BN","InvalidDerivationPathError","PrivateKeyEd","PrivateKeyEc","pbkdf2","openSecretBox","Bip39","hex2buf","mergebuf"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taquito/signer",
3
- "version": "17.3.1",
3
+ "version": "17.3.2",
4
4
  "description": "Provide signing functionality to be with taquito",
5
5
  "keywords": [
6
6
  "tezos",
@@ -73,8 +73,9 @@
73
73
  "@stablelib/nacl": "^1.0.4",
74
74
  "@stablelib/pbkdf2": "^1.0.1",
75
75
  "@stablelib/sha512": "^1.0.1",
76
- "@taquito/taquito": "^17.3.1",
77
- "@taquito/utils": "^17.3.1",
76
+ "@taquito/core": "^17.3.2",
77
+ "@taquito/taquito": "^17.3.2",
78
+ "@taquito/utils": "^17.3.2",
78
79
  "@types/bn.js": "^5.1.1",
79
80
  "bip39": "3.0.4",
80
81
  "elliptic": "^6.5.4",
@@ -112,5 +113,5 @@
112
113
  "typedoc": "^0.20.36",
113
114
  "typescript": "~4.1.5"
114
115
  },
115
- "gitHead": "3eac9219d501eb9c1334ee8d8aaf9f195e8300cb"
116
+ "gitHead": "a8dac9c64a1511b398fb8acb88cc8fb593d5d0f3"
116
117
  }