bnToU8a function
Implementation
Uint8List bnToU8a(
BigInt? value, {
int bitLength = -1,
Endian endian = Endian.little,
bool isNegative = false,
}) {
final BigInt valueBn = bnToBn(value);
int byteLength;
if (bitLength == -1) {
byteLength = (valueBn.bitLength / 8).ceil();
} else {
byteLength = (bitLength / 8).ceil();
}
if (value == null) {
if (bitLength == -1) {
return Uint8List.fromList([0]);
} else {
return Uint8List(byteLength);
}
}
final newU8a = encodeBigInt(
isNegative && (0x80 & valueBn.toInt()) > 0
? bitnot(valueBn, bitLength: byteLength * 8)
: valueBn,
endian: endian,
bitLength: byteLength * 8,
);
final ret = Uint8List(byteLength);
ret.setAll(0, newU8a);
return ret;
}