thor-devkit
Version:
Typescript library to aid DApp development on VeChain Thor
36 lines • 2.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mnemonic = void 0;
const ethers_1 = require("ethers");
const crypto_1 = require("crypto");
const hdnode_1 = require("./hdnode");
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 : (() => (0, crypto_1.randomBytes)(128 / 8));
return ethers_1.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 ethers_1.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_1.HDNode.fromMnemonic(words).derive(0).privateKey;
}
mnemonic.derivePrivateKey = derivePrivateKey;
})(mnemonic || (exports.mnemonic = mnemonic = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW5lbW9uaWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbW5lbW9uaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQWlDO0FBQ2pDLG1DQUFvQztBQUNwQyxxQ0FBaUM7QUFFakMsSUFBaUIsUUFBUSxDQTBCeEI7QUExQkQsV0FBaUIsUUFBUTtJQUNyQjs7OztPQUlHO0lBQ0gsU0FBZ0IsUUFBUSxDQUFDLEdBQWtCO1FBQ3ZDLEdBQUcsR0FBRyxHQUFHLGFBQUgsR0FBRyxjQUFILEdBQUcsR0FBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUEsb0JBQVcsRUFBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN6QyxPQUFPLGlCQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDekUsQ0FBQztJQUhlLGlCQUFRLFdBR3ZCLENBQUE7SUFFRDs7O09BR0c7SUFDSCxTQUFnQixRQUFRLENBQUMsS0FBZTtRQUNwQyxPQUFPLGlCQUFRLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNwRCxDQUFDO0lBRmUsaUJBQVEsV0FFdkIsQ0FBQTtJQUVEOzs7T0FHRztJQUNILFNBQWdCLGdCQUFnQixDQUFDLEtBQWU7UUFDNUMsT0FBTyxlQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFXLENBQUE7SUFDM0QsQ0FBQztJQUZlLHlCQUFnQixtQkFFL0IsQ0FBQTtBQUNMLENBQUMsRUExQmdCLFFBQVEsd0JBQVIsUUFBUSxRQTBCeEIifQ==