rchain-toolkit
Version:
Node JS utils and methods to interact with rchain's rnode api and proto interfaces
47 lines (46 loc) • 1.14 kB
JavaScript
;
// https://github.com/45678/Base58/blob/master/Base58.js
exports.__esModule = true;
exports.encode = void 0;
var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
var encode = function (buffer) {
var carry, digits, j;
if (buffer.length === 0) {
return "";
}
digits = [0];
var i = 0;
while (i < buffer.length) {
var j_1 = 0;
while (j_1 < digits.length) {
digits[j_1] <<= 8;
j_1++;
}
digits[0] += buffer[i];
carry = 0;
j_1 = 0;
while (j_1 < digits.length) {
digits[j_1] += carry;
carry = (digits[j_1] / 58) | 0;
digits[j_1] %= 58;
++j_1;
}
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("");
};
exports.encode = encode;