decodeCheck static method
Decodes a Base58Check string to payload bytes.
Returns the payload without version byte and checksum. Throws if checksum is invalid.
Implementation
static Uint8List decodeCheck(String input) {
final decoded = decode(input);
if (decoded.length < 5) {
throw FormatException('Base58Check string too short');
}
final data = decoded.sublist(0, decoded.length - 4);
final checksum = decoded.sublist(decoded.length - 4);
final expectedChecksum = _doubleSha256(data).sublist(0, 4);
for (var i = 0; i < 4; i++) {
if (checksum[i] != expectedChecksum[i]) {
throw FormatException('Invalid Base58Check checksum');
}
}
// Return payload without version byte
return data.sublist(1);
}