combineU256FromU64Parts static method
Implementation
static BigInt combineU256FromU64Parts(List<BigInt> parts,
{Endian order = Endian.big}) {
if (parts.length != 4) {
throw ArgumentException('Expected exactly 4 parts for UInt256.',
details: {'parts': parts.toString()});
}
BigInt result = BigInt.zero;
if (order == Endian.little) {
// Little-endian: [loLo, loHi, hiLo, hiHi]
result =
(parts[3] << 192) | (parts[2] << 128) | (parts[1] << 64) | parts[0];
} else {
// Big-endian: [hiHi, hiLo, loHi, loLo]
result =
(parts[0] << 192) | (parts[1] << 128) | (parts[2] << 64) | parts[3];
}
return result;
}