| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | "use strict";/** *  The [Base58 Encoding](link-base58) scheme allows a **numeric** value *  to be encoded as a compact string using a radix of 58 using only *  alpha-numeric characters. Confusingly similar characters are omitted *  (i.e. ``"l0O"``). * *  Note that Base58 encodes a **numeric** value, not arbitrary bytes, *  since any zero-bytes on the left would get removed. To mitigate this *  issue most schemes that use Base58 choose specific high-order values *  to ensure non-zero prefixes. * *  @_subsection: api/utils:Base58 Encoding [about-base58] */Object.defineProperty(exports, "__esModule", { value: true });exports.decodeBase58 = exports.encodeBase58 = void 0;const data_js_1 = require("./data.js");const errors_js_1 = require("./errors.js");const maths_js_1 = require("./maths.js");const Alphabet = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";let Lookup = null;function getAlpha(letter) {    if (Lookup == null) {        Lookup = {};        for (let i = 0; i < Alphabet.length; i++) {            Lookup[Alphabet[i]] = BigInt(i);        }    }    const result = Lookup[letter];    (0, errors_js_1.assertArgument)(result != null, `invalid base58 value`, "letter", letter);    return result;}const BN_0 = BigInt(0);const BN_58 = BigInt(58);/** *  Encode %%value%% as a Base58-encoded string. */function encodeBase58(_value) {    const bytes = (0, data_js_1.getBytes)(_value);    let value = (0, maths_js_1.toBigInt)(bytes);    let result = "";    while (value) {        result = Alphabet[Number(value % BN_58)] + result;        value /= BN_58;    }    // Account for leading padding zeros    for (let i = 0; i < bytes.length; i++) {        if (bytes[i]) {            break;        }        result = Alphabet[0] + result;    }    return result;}exports.encodeBase58 = encodeBase58;/** *  Decode the Base58-encoded %%value%%. */function decodeBase58(value) {    let result = BN_0;    for (let i = 0; i < value.length; i++) {        result *= BN_58;        result += getAlpha(value[i]);    }    return result;}exports.decodeBase58 = decodeBase58;//# sourceMappingURL=base58.js.map
 |