bigIntToBytes method
Uint8List
bigIntToBytes
({BigInt v, bool bigEndian: true })
Implementation
static Uint8List bigIntToBytes({BigInt v, bool bigEndian = true}) {
Buffer buf = Buffer();
if (v >= BigInt.from(int8Min) && v <= BigInt.from(int8Max)) {
buf.addInt8(v.toInt());
return buf.bytes;
}
if (v >= BigInt.from(int16Min) && v <= BigInt.from(int16Max)) {
buf.addInt16(v: v.toInt(), bigEndian: bigEndian);
return buf.bytes;
}
if (v >= BigInt.from(int32Min) && v <= BigInt.from(int32Max)) {
buf.addInt32(v: v.toInt(), bigEndian: bigEndian);
return buf.bytes;
}
if (v >= BigInt.from(int64Min) && v <= BigInt.from(int64Max)) {
buf.addInt64(v: v.toInt(), bigEndian: bigEndian);
return buf.bytes;
}
assert(
v >= BigInt.from(0),
'BigInt whose size is larger then int64 must be a positive number: ' +
v.toRadixString(10));
var bytes = _encodeBigInt(v);
return bigEndian ? bytes : Uint16List.fromList(bytes.reversed.toList());
}