TokenAmount.fromEtherString constructor
TokenAmount.fromEtherString(
- String ether
Full precision from a decimal string (e.g. "1.5").
Implementation
factory TokenAmount.fromEtherString(String ether) {
final parts = ether.split('.');
final wholePart = BigInt.parse(parts[0]) * _etherScale;
if (parts.length == 1) return TokenAmount._(wholePart);
var fracStr = parts[1];
if (fracStr.length > 18) {
fracStr = fracStr.substring(0, 18);
}
fracStr = fracStr.padRight(18, '0');
final fracPart = BigInt.parse(fracStr);
final sign = ether.startsWith('-') ? -BigInt.one : BigInt.one;
return TokenAmount._(wholePart.abs() * sign + fracPart * sign);
}