thor-devkit
Version:
Typescript library to aid DApp development on VeChain Thor
33 lines • 2.46 kB
JavaScript
import { Mnemonic } from 'ethers';
import { randomBytes } from 'crypto';
import { HDNode } from './hdnode';
export var mnemonic;
(function (mnemonic) {
/**
* generate BIP39 mnemonic words
* @param rng the optional random number generator, which generates 16~32 (step 4) random bytes.
* Every 4 bytes produce 3 words.
*/
function generate(rng) {
rng = rng !== null && rng !== void 0 ? rng : (() => randomBytes(128 / 8));
return Mnemonic.fromEntropy(Uint8Array.from(rng())).phrase.split(' ');
}
mnemonic.generate = generate;
/**
* check if the given mnemonic words have valid checksum
* @param words mnemonic words
*/
function validate(words) {
return Mnemonic.isValidMnemonic(words.join(' '));
}
mnemonic.validate = validate;
/**
* derive private key at index 0 from mnemonic words according to BIP32.
* the derivation path is defined at https://github.com/satoshilabs/slips/blob/master/slip-0044.md
*/
function derivePrivateKey(words) {
return HDNode.fromMnemonic(words).derive(0).privateKey;
}
mnemonic.derivePrivateKey = derivePrivateKey;
})(mnemonic || (mnemonic = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW5lbW9uaWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbW5lbW9uaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFakMsTUFBTSxLQUFXLFFBQVEsQ0EwQnhCO0FBMUJELFdBQWlCLFFBQVE7SUFDckI7Ozs7T0FJRztJQUNILFNBQWdCLFFBQVEsQ0FBQyxHQUFrQjtRQUN2QyxHQUFHLEdBQUcsR0FBRyxhQUFILEdBQUcsY0FBSCxHQUFHLEdBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDekMsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDekUsQ0FBQztJQUhlLGlCQUFRLFdBR3ZCLENBQUE7SUFFRDs7O09BR0c7SUFDSCxTQUFnQixRQUFRLENBQUMsS0FBZTtRQUNwQyxPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ3BELENBQUM7SUFGZSxpQkFBUSxXQUV2QixDQUFBO0lBRUQ7OztPQUdHO0lBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBZTtRQUM1QyxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVcsQ0FBQTtJQUMzRCxDQUFDO0lBRmUseUJBQWdCLG1CQUUvQixDQUFBO0FBQ0wsQ0FBQyxFQTFCZ0IsUUFBUSxLQUFSLFFBQVEsUUEwQnhCIn0=