iota-ternary
Version:
Fast utility functions for conversion between trytes, trits and bytes
48 lines (47 loc) • 993 B
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const NUMBERS_TO_TRYTES = {
[]: "9",
[]: "A",
[]: "B",
[]: "C",
[]: "D",
[]: "E",
[]: "F",
[]: "G",
[]: "H",
[]: "I",
[]: "J",
[]: "K",
[]: "L",
[]: "M",
[-13]: "N",
[-12]: "O",
[-11]: "P",
[-10]: "Q",
[-9]: "R",
[-8]: "S",
[-7]: "T",
[-6]: "U",
[-5]: "V",
[-4]: "W",
[-3]: "X",
[-2]: "Y",
[-1]: "Z",
};
function tritsToTrytes(trits) {
var i, j, m, v;
const trytesSize = Math.ceil(trits.length / 3);
const tritsSize = trytesSize * 3;
const trytesArray = new Array(trytesSize);
for (i = 0, j = 0, v = 0; i < tritsSize; ++i) {
m = i % 3;
v += (trits[i] || 0) * (3 ** m);
if (m === 2) {
trytesArray[j++] = NUMBERS_TO_TRYTES[v];
v = 0;
}
}
return trytesArray.join('');
}
exports.tritsToTrytes = tritsToTrytes;