UNPKG

@bsv/sdk

Version:

BSV Blockchain Software Development Kit

132 lines 6.11 kB
/** * @class Mnemonic * * @description * Class representing Mnemonic functionality. * This class provides methods for generating, converting, and validating mnemonic phrases * according to the BIP39 standard. It supports creating mnemonics from random entropy, * converting mnemonics to seeds, and validating mnemonic phrases. */ export default class Mnemonic { mnemonic: string; seed: number[]; Wordlist: { value: string[]; space: string; }; /** * Constructs a Mnemonic object. * @param {string} [mnemonic] - An optional mnemonic phrase. * @param {number[]} [seed] - An optional seed derived from the mnemonic. * @param {object} [wordlist=wordList] - An object containing a list of words and space character used in the mnemonic. */ constructor(mnemonic?: string, seed?: number[], wordlist?: { value: string[]; space: string; }); /** * Converts the mnemonic and seed into a binary representation. * @returns {number[]} The binary representation of the mnemonic and seed. */ toBinary(): number[]; /** * Loads a mnemonic and seed from a binary representation. * @param {number[]} bin - The binary representation of a mnemonic and seed. * @returns {this} The Mnemonic instance with loaded mnemonic and seed. */ fromBinary(bin: number[]): this; /** * Generates a random mnemonic from a given bit length. * @param {number} [bits=128] - The bit length for the random mnemonic (must be a multiple of 32 and at least 128). * @returns {this} The Mnemonic instance with the new random mnemonic. * @throws {Error} If the bit length is not a multiple of 32 or is less than 128. */ fromRandom(bits?: number): this; /** * Static method to generate a Mnemonic instance with a random mnemonic. * @param {number} [bits=128] - The bit length for the random mnemonic. * @returns {Mnemonic} A new Mnemonic instance. */ static fromRandom(bits?: number): Mnemonic; /** * Converts given entropy into a mnemonic phrase. * This method is used to generate a mnemonic from a specific entropy source. * @param {number[]} buf - The entropy buffer, must be at least 128 bits. * @returns {this} The Mnemonic instance with the mnemonic set from the given entropy. * @throws {Error} If the entropy is less than 128 bits. */ fromEntropy(buf: number[]): this; /** * Static method to create a Mnemonic instance from a given entropy. * @param {number[]} buf - The entropy buffer. * @returns {Mnemonic} A new Mnemonic instance. */ static fromEntropy(buf: number[]): Mnemonic; /** * Sets the mnemonic for the instance from a string. * @param {string} mnemonic - The mnemonic phrase as a string. * @returns {this} The Mnemonic instance with the set mnemonic. */ fromString(mnemonic: string): this; /** * Static method to create a Mnemonic instance from a mnemonic string. * @param {string} str - The mnemonic phrase. * @returns {Mnemonic} A new Mnemonic instance. */ static fromString(str: string): Mnemonic; /** * Converts the instance's mnemonic to a string representation. * @returns {string} The mnemonic phrase as a string. */ toString(): string; /** * Converts the mnemonic to a seed. * The mnemonic must pass the validity check before conversion. * @param {string} [passphrase=''] - An optional passphrase for additional security. * @returns {number[]} The generated seed. * @throws {Error} If the mnemonic is invalid. */ toSeed(passphrase?: string): number[]; /** * Converts entropy to a mnemonic phrase. * This method takes a buffer of entropy and converts it into a corresponding * mnemonic phrase based on the Mnemonic wordlist. The entropy should be at least 128 bits. * The method applies a checksum and maps the entropy to words in the wordlist. * @param {number[]} buf - The entropy buffer to convert. Must be at least 128 bits. * @returns {this} The Mnemonic instance with the mnemonic set from the entropy. * @throws {Error} If the entropy is less than 128 bits or if it's not an even multiple of 11 bits. */ entropy2Mnemonic(buf: number[]): this; /** * Validates the mnemonic phrase. * Checks for correct length, absence of invalid words, and proper checksum. * @returns {boolean} True if the mnemonic is valid, false otherwise. * @throws {Error} If the mnemonic is not an even multiple of 11 bits. */ check(): boolean; /** * Converts a mnemonic to a seed. * This method takes the instance's mnemonic phrase, combines it with a passphrase (if provided), * and uses PBKDF2 to generate a seed. It also validates the mnemonic before conversion. * This seed can then be used for generating deterministic keys. * @param {string} [passphrase=''] - An optional passphrase for added security. * @returns {this} The Mnemonic instance with the seed generated from the mnemonic. * @throws {Error} If the mnemonic does not pass validation or if the passphrase is not a string. */ mnemonic2Seed(passphrase?: string): this; /** * Determines the validity of a given passphrase with the mnemonic. * This method is useful for checking if a passphrase matches with the mnemonic. * @param {string} [passphrase=''] - The passphrase to validate. * @returns {boolean} True if the mnemonic and passphrase combination is valid, false otherwise. */ isValid(passphrase?: string): boolean; /** * Static method to check the validity of a given mnemonic and passphrase combination. * @param {string} mnemonic - The mnemonic phrase. * @param {string} [passphrase=''] - The passphrase to validate. * @returns {boolean} True if the combination is valid, false otherwise. */ static isValid(mnemonic: string, passphrase?: string): boolean; } //# sourceMappingURL=Mnemonic.d.ts.map