123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Base58 = exports.Base32 = exports.BaseX = void 0;
- var bytes_1 = require("@ethersproject/bytes");
- var properties_1 = require("@ethersproject/properties");
- var BaseX = (function () {
- function BaseX(alphabet) {
- (0, properties_1.defineReadOnly)(this, "alphabet", alphabet);
- (0, properties_1.defineReadOnly)(this, "base", alphabet.length);
- (0, properties_1.defineReadOnly)(this, "_alphabetMap", {});
- (0, properties_1.defineReadOnly)(this, "_leader", alphabet.charAt(0));
-
- for (var i = 0; i < alphabet.length; i++) {
- this._alphabetMap[alphabet.charAt(i)] = i;
- }
- }
- BaseX.prototype.encode = function (value) {
- var source = (0, bytes_1.arrayify)(value);
- if (source.length === 0) {
- return "";
- }
- var digits = [0];
- for (var i = 0; i < source.length; ++i) {
- var carry = source[i];
- for (var j = 0; j < digits.length; ++j) {
- carry += digits[j] << 8;
- digits[j] = carry % this.base;
- carry = (carry / this.base) | 0;
- }
- while (carry > 0) {
- digits.push(carry % this.base);
- carry = (carry / this.base) | 0;
- }
- }
- var string = "";
-
- for (var k = 0; source[k] === 0 && k < source.length - 1; ++k) {
- string += this._leader;
- }
-
- for (var q = digits.length - 1; q >= 0; --q) {
- string += this.alphabet[digits[q]];
- }
- return string;
- };
- BaseX.prototype.decode = function (value) {
- if (typeof (value) !== "string") {
- throw new TypeError("Expected String");
- }
- var bytes = [];
- if (value.length === 0) {
- return new Uint8Array(bytes);
- }
- bytes.push(0);
- for (var i = 0; i < value.length; i++) {
- var byte = this._alphabetMap[value[i]];
- if (byte === undefined) {
- throw new Error("Non-base" + this.base + " character");
- }
- var carry = byte;
- for (var j = 0; j < bytes.length; ++j) {
- carry += bytes[j] * this.base;
- bytes[j] = carry & 0xff;
- carry >>= 8;
- }
- while (carry > 0) {
- bytes.push(carry & 0xff);
- carry >>= 8;
- }
- }
-
- for (var k = 0; value[k] === this._leader && k < value.length - 1; ++k) {
- bytes.push(0);
- }
- return (0, bytes_1.arrayify)(new Uint8Array(bytes.reverse()));
- };
- return BaseX;
- }());
- exports.BaseX = BaseX;
- var Base32 = new BaseX("abcdefghijklmnopqrstuvwxyz234567");
- exports.Base32 = Base32;
- var Base58 = new BaseX("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");
- exports.Base58 = Base58;
|