iota-ternary
Version:
Fast utility functions for conversion between trytes, trits and bytes
49 lines (42 loc) • 945 B
text/typescript
import { trit } from "../types"
const TRYTES_TO_TRITS = {
"9": [ 0, 0, 0],
"A": [ 1, 0, 0],
"B": [-1, 1, 0],
"C": [ 0, 1, 0],
"D": [ 1, 1, 0],
"E": [-1, -1, 1],
"F": [ 0, -1, 1],
"G": [ 1, -1, 1],
"H": [-1, 0, 1],
"I": [ 0, 0, 1],
"J": [ 1, 0, 1],
"K": [-1, 1, 1],
"L": [ 0, 1, 1],
"M": [ 1, 1, 1],
"N": [-1, -1, -1],
"O": [ 0, -1, -1],
"P": [ 1, -1, -1],
"Q": [-1, 0, -1],
"R": [ 0, 0, -1],
"S": [ 1, 0, -1],
"T": [-1, 1, -1],
"U": [ 0, 1, -1],
"V": [ 1, 1, -1],
"W": [-1, -1, 0],
"X": [ 0, -1, 0],
"Y": [ 1, -1, 0],
"Z": [-1, 0, 0]
}
export function trytesToTrits(trytes: string): trit[] {
var i, j, t
const size = trytes.length
const trits = new Array(size * 3)
for (i = 0, j = 0; i < size; i += 1, j += 3) {
t = TRYTES_TO_TRITS[trytes[i]]
trits[j + 0] = t[0]
trits[j + 1] = t[1]
trits[j + 2] = t[2]
}
return trits
}