@bsv/sdk
Version:
BSV Blockchain Software Development Kit
132 lines • 6.11 kB
TypeScript
/**
* @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