fromBase58 method
Implementation
String fromBase58() {
const base58Alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
BigInt intData = BigInt.zero;
for (var char in this.split('')) {
final index = base58Alphabet.indexOf(char);
if (index < 0) throw FormatException('Invalid Base58 character: $char');
intData = intData * BigInt.from(58) + BigInt.from(index);
}
List<int> bytes = [];
while (intData > BigInt.zero) {
bytes.insert(0, (intData % BigInt.from(256)).toInt());
intData = intData ~/ BigInt.from(256);
}
for (var char in this.split('')) {
if (char == '1')
bytes.insert(0, 0);
else
break;
}
return utf8.decode(bytes);
}