UNPKG

iota-ternary

Version:

Fast utility functions for conversion between trytes, trits and bytes

37 lines (36 loc) 1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const BYTES_TO_TRITS = new Array(243); bytesToTritsLoop: for (let i = 0, trits = [0, 0, 0, 0, 0]; i < 243; ++i) { BYTES_TO_TRITS[i] = 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); if (v < 0) { v += 243; } t = 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;