fromBytes static method

Uint256 fromBytes(
  1. List<int> bytes, {
  2. Endian endian = Endian.big,
  3. int offset = 0,
})

Implementation

static Uint256 fromBytes(
  List<int> bytes, {
  Endian endian = Endian.big,
  int offset = 0,
}) {
  if (offset < 0 || bytes.length - offset < 32) {
    throw ArgumentException.invalidOperationArguments(
      "Uint256.fromBytes",
      reason: 'Need at least 32 bytes from offset.',
      details: {
        "offset": offset.toString(),
        "length": bytes.length.toString(),
      },
    );
  }
  if (endian == Endian.big) {
    final d3 = Uint64.fromBytes(bytes, endian: Endian.big, offset: offset);
    final d2 = Uint64.fromBytes(
      bytes,
      endian: Endian.big,
      offset: offset + 8,
    );
    final d1 = Uint64.fromBytes(
      bytes,
      endian: Endian.big,
      offset: offset + 16,
    );
    final d0 = Uint64.fromBytes(
      bytes,
      endian: Endian.big,
      offset: offset + 24,
    );
    return Uint256._(d3, d2, d1, d0);
  } else {
    final d0 = Uint64.fromBytes(bytes, endian: Endian.little, offset: offset);
    final d1 = Uint64.fromBytes(
      bytes,
      endian: Endian.little,
      offset: offset + 8,
    );
    final d2 = Uint64.fromBytes(
      bytes,
      endian: Endian.little,
      offset: offset + 16,
    );
    final d3 = Uint64.fromBytes(
      bytes,
      endian: Endian.little,
      offset: offset + 24,
    );
    return Uint256._(d3, d2, d1, d0);
  }
}