iota-ternary
Version:
Fast utility functions for conversion between trytes, trits and bytes
35 lines (34 loc) • 998 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BYTES_TO_TRITS = {};
bytesToTritsLoop: for (let i = 0, trits = [0, 0, 0, 0, 0]; i < 243; ++i) {
let index = i <= 121 ? i : i - 243;
exports.BYTES_TO_TRITS[index] = trits.slice();
for (let j = 0; j < 5; ++j) {
if (++trits[j] > 1) {
trits[j] = -1;
}
else {
continue bytesToTritsLoop;
}
}
}
function bytesToTrits(bytes) {
var i, j, v, t;
const size = bytes.byteLength;
const trits = new Array(size * 5);
for (i = 0; i < size; ++i) {
v = bytes.readInt8(i);
t = exports.BYTES_TO_TRITS[v];
if (!t) {
throw new Error(`Incorrect byte ${bytes.readInt8(i)}!`);
}
trits[i * 5 + 0] = t[0];
trits[i * 5 + 1] = t[1];
trits[i * 5 + 2] = t[2];
trits[i * 5 + 3] = t[3];
trits[i * 5 + 4] = t[4];
}
return trits;
}
exports.bytesToTrits = bytesToTrits;