toBase58 method
Implementation
String toBase58() {
const base58Alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
final input = utf8.encode(this);
BigInt intData = BigInt.from(0);
for (var byte in input) intData = intData * BigInt.from(256) + BigInt.from(byte);
StringBuffer result = StringBuffer();
while (intData > BigInt.zero) {
final remainder = intData % BigInt.from(58);
intData = intData ~/ BigInt.from(58);
result.write(base58Alphabet[remainder.toInt()]);
}
for (var byte in input) {
if (byte == 0)
result.write(base58Alphabet[0]);
else
break;
}
return result.toString().split('').reversed.join();
}