decode method
Decodes a base64-encoded transaction payload string.
Throws FormatException if the payload cannot be decoded or parsed.
Implementation
ReceivedTransaction decode(String base64Payload) {
if (base64Payload.isEmpty) {
throw const FormatException('Transaction payload is empty');
}
final String jsonString;
try {
jsonString = utf8.decode(base64Decode(base64Payload));
} catch (e) {
throw FormatException('Failed to decode base64 payload: $e');
}
final Map<String, dynamic> json;
try {
json = jsonDecode(jsonString) as Map<String, dynamic>;
} catch (e) {
throw FormatException('Failed to parse JSON from decoded payload: $e');
}
return ReceivedTransaction.fromJson(json);
}