| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | 
							- /**
 
-  *  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]
 
-  */
 
- import { getBytes } from "./data.js";
 
- import { assertArgument } from "./errors.js";
 
- import { toBigInt } from "./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];
 
-     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.
 
-  */
 
- export function encodeBase58(_value) {
 
-     const bytes = getBytes(_value);
 
-     let value = 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;
 
- }
 
- /**
 
-  *  Decode the Base58-encoded %%value%%.
 
-  */
 
- export function decodeBase58(value) {
 
-     let result = BN_0;
 
-     for (let i = 0; i < value.length; i++) {
 
-         result *= BN_58;
 
-         result += getAlpha(value[i]);
 
-     }
 
-     return result;
 
- }
 
- //# sourceMappingURL=base58.js.map
 
 
  |