ethers.js/packages/wordlists/lib/wordlist.js

59 lines
1.8 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
// This gets overriddenby gulp during bip39-XX
var exportWordlist = false;
var hash_1 = require("@ethersproject/hash");
var properties_1 = require("@ethersproject/properties");
var logger_1 = require("@ethersproject/logger");
var _version_1 = require("./_version");
var logger = new logger_1.Logger(_version_1.version);
function check(wordlist) {
var words = [];
for (var i = 0; i < 2048; i++) {
var word = wordlist.getWord(i);
if (i !== wordlist.getWordIndex(word)) {
return "0x";
}
words.push(word);
}
return hash_1.id(words.join("\n") + "\n");
}
exports.check = check;
var Wordlist = /** @class */ (function () {
function Wordlist(locale) {
var _newTarget = this.constructor;
logger.checkAbstract(_newTarget, Wordlist);
properties_1.defineReadOnly(this, "locale", locale);
}
// Subclasses may override this
Wordlist.prototype.split = function (mnemonic) {
return mnemonic.toLowerCase().split(/ +/g);
};
// Subclasses may override this
Wordlist.prototype.join = function (words) {
return words.join(" ");
};
return Wordlist;
}());
exports.Wordlist = Wordlist;
function register(lang, name) {
if (!name) {
name = lang.locale;
}
if (exportWordlist) {
var g = global;
if (!(g.wordlists)) {
properties_1.defineReadOnly(g, "wordlists", {});
}
if (!g.wordlists[name]) {
properties_1.defineReadOnly(g.wordlists, name, lang);
}
if (g.ethers && g.ethers.wordlists) {
if (!g.ethers.wordlists[name]) {
properties_1.defineReadOnly(g.ethers.wordlists, name, lang);
}
}
}
}
exports.register = register;