toUnit static method

BigInt toUnit({
  1. required String amount,
  2. required int decimals,
  3. bool enforceMaxDecimals = true,
})

Converts a decimal string to a base unit (BigInt) value.

Implementation

static BigInt toUnit({
  required String amount,
  required int decimals,
  bool enforceMaxDecimals = true,
}) {
  BigRational? dec = BigRational.tryParseDecimaal(amount);
  if (dec == null) {
    throw AmountConverterException(
        'Invalid amount format: cannot parse the input string.',
        details: {"amount": amount});
  }
  if (enforceMaxDecimals && dec.scale > decimals) {
    throw AmountConverterException(
        'Invalid amount format: too many decimal places.');
  }
  dec = dec * _AmountConverterConstants.fromDecimalNumber(decimals);

  return dec.toBigInt();
}