mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-02-11 17:55:51 +00:00
102 lines
2.0 KiB
JavaScript
102 lines
2.0 KiB
JavaScript
// Generated by CoffeeScript 1.8.0
|
|
|
|
// == Changed for ES6 modules == //
|
|
const Base58 = {};
|
|
|
|
const ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
|
|
|
|
const ALPHABET_MAP = {};
|
|
|
|
let i = 0;
|
|
|
|
while (i < ALPHABET.length) {
|
|
ALPHABET_MAP[ALPHABET.charAt(i)] = i;
|
|
i++;
|
|
}
|
|
|
|
Base58.encode = function (buffer) {
|
|
buffer = new Uint8Array(buffer);
|
|
var carry, digits, j;
|
|
if (buffer.length === 0) {
|
|
return "";
|
|
}
|
|
i = void 0;
|
|
j = void 0;
|
|
digits = [0];
|
|
i = 0;
|
|
while (i < buffer.length) {
|
|
j = 0;
|
|
while (j < digits.length) {
|
|
digits[j] <<= 8;
|
|
j++;
|
|
}
|
|
digits[0] += buffer[i];
|
|
carry = 0;
|
|
j = 0;
|
|
while (j < digits.length) {
|
|
digits[j] += carry;
|
|
carry = (digits[j] / 58) | 0;
|
|
digits[j] %= 58;
|
|
++j;
|
|
}
|
|
while (carry) {
|
|
digits.push(carry % 58);
|
|
carry = (carry / 58) | 0;
|
|
}
|
|
i++;
|
|
}
|
|
i = 0;
|
|
while (buffer[i] === 0 && i < buffer.length - 1) {
|
|
digits.push(0);
|
|
i++;
|
|
}
|
|
return digits.reverse().map(function (digit) {
|
|
return ALPHABET[digit];
|
|
}).join("");
|
|
};
|
|
|
|
Base58.decode = function (string) {
|
|
var bytes, c, carry, j;
|
|
if (string.length === 0) {
|
|
return new (typeof Uint8Array !== "undefined" && Uint8Array !== null ? Uint8Array : Buffer)(0);
|
|
}
|
|
i = void 0;
|
|
j = void 0;
|
|
bytes = [0];
|
|
i = 0;
|
|
while (i < string.length) {
|
|
c = string[i];
|
|
if (!(c in ALPHABET_MAP)) {
|
|
throw "Base58.decode received unacceptable input. Character '" + c + "' is not in the Base58 alphabet.";
|
|
}
|
|
j = 0;
|
|
while (j < bytes.length) {
|
|
bytes[j] *= 58;
|
|
j++;
|
|
}
|
|
bytes[0] += ALPHABET_MAP[c];
|
|
carry = 0;
|
|
j = 0;
|
|
while (j < bytes.length) {
|
|
bytes[j] += carry;
|
|
carry = bytes[j] >> 8;
|
|
bytes[j] &= 0xff;
|
|
++j;
|
|
}
|
|
while (carry) {
|
|
bytes.push(carry & 0xff);
|
|
carry >>= 8;
|
|
}
|
|
i++;
|
|
}
|
|
i = 0;
|
|
while (string[i] === "1" && i < string.length - 1) {
|
|
bytes.push(0);
|
|
i++;
|
|
}
|
|
return new (typeof Uint8Array !== "undefined" && Uint8Array !== null ? Uint8Array : Buffer)(bytes.reverse());
|
|
};
|
|
|
|
// == Changed for ES6 modules == //
|
|
export default Base58;
|