wordlist.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.Wordlist = exports.logger = void 0;
  4. // This gets overridden by rollup
  5. var exportWordlist = false;
  6. var hash_1 = require("@ethersproject/hash");
  7. var properties_1 = require("@ethersproject/properties");
  8. var logger_1 = require("@ethersproject/logger");
  9. var _version_1 = require("./_version");
  10. exports.logger = new logger_1.Logger(_version_1.version);
  11. var Wordlist = /** @class */ (function () {
  12. function Wordlist(locale) {
  13. var _newTarget = this.constructor;
  14. exports.logger.checkAbstract(_newTarget, Wordlist);
  15. (0, properties_1.defineReadOnly)(this, "locale", locale);
  16. }
  17. // Subclasses may override this
  18. Wordlist.prototype.split = function (mnemonic) {
  19. return mnemonic.toLowerCase().split(/ +/g);
  20. };
  21. // Subclasses may override this
  22. Wordlist.prototype.join = function (words) {
  23. return words.join(" ");
  24. };
  25. Wordlist.check = function (wordlist) {
  26. var words = [];
  27. for (var i = 0; i < 2048; i++) {
  28. var word = wordlist.getWord(i);
  29. /* istanbul ignore if */
  30. if (i !== wordlist.getWordIndex(word)) {
  31. return "0x";
  32. }
  33. words.push(word);
  34. }
  35. return (0, hash_1.id)(words.join("\n") + "\n");
  36. };
  37. Wordlist.register = function (lang, name) {
  38. if (!name) {
  39. name = lang.locale;
  40. }
  41. /* istanbul ignore if */
  42. if (exportWordlist) {
  43. try {
  44. var anyGlobal = window;
  45. if (anyGlobal._ethers && anyGlobal._ethers.wordlists) {
  46. if (!anyGlobal._ethers.wordlists[name]) {
  47. (0, properties_1.defineReadOnly)(anyGlobal._ethers.wordlists, name, lang);
  48. }
  49. }
  50. }
  51. catch (error) { }
  52. }
  53. };
  54. return Wordlist;
  55. }());
  56. exports.Wordlist = Wordlist;
  57. //# sourceMappingURL=wordlist.js.map