toBytes method

List<int> toBytes([
  1. Endian endian = Endian.big
])

Fixed 8-byte encoding, straight from the hi/lo limbs — no BigInt involved at any point.

Implementation

List<int> toBytes([Endian endian = Endian.big]) {
  final out = List<int>.filled(8, 0);
  if (endian == Endian.big) {
    out[0] = (_hi >>> 24) & 0xFF;
    out[1] = (_hi >>> 16) & 0xFF;
    out[2] = (_hi >>> 8) & 0xFF;
    out[3] = _hi & 0xFF;
    out[4] = (_lo >>> 24) & 0xFF;
    out[5] = (_lo >>> 16) & 0xFF;
    out[6] = (_lo >>> 8) & 0xFF;
    out[7] = _lo & 0xFF;
  } else {
    out[0] = _lo & 0xFF;
    out[1] = (_lo >>> 8) & 0xFF;
    out[2] = (_lo >>> 16) & 0xFF;
    out[3] = (_lo >>> 24) & 0xFF;
    out[4] = _hi & 0xFF;
    out[5] = (_hi >>> 8) & 0xFF;
    out[6] = (_hi >>> 16) & 0xFF;
    out[7] = (_hi >>> 24) & 0xFF;
  }
  return out;
}