nearToYoctoNear static method

String nearToYoctoNear(
  1. String nearAmount
)

Implementation

static String nearToYoctoNear(String nearAmount) {
  if (nearAmount == '0') {
    return '0';
  }

  int decimalIndex = nearAmount.indexOf('.');
  if (decimalIndex == -1) {
    BigInt near = BigInt.parse(nearAmount);
    BigInt yoctoNear = near * BigInt.from(10).pow(24);
    return yoctoNear.toString();
  } else {
    String integerPart = nearAmount.substring(0, decimalIndex);
    String decimalPart = nearAmount.substring(decimalIndex + 1);
    if (decimalPart.length <= 24) {
      decimalPart = decimalPart.padRight(24, '0');
    } else {
      decimalPart = decimalPart.substring(0, 24);
    }
    BigInt near = BigInt.parse('$integerPart$decimalPart');
    BigInt yoctoNear = near * BigInt.from(10).pow(24 - decimalPart.length);
    return yoctoNear.toString();
  }
}