decode method

ReceivedTransaction decode(
  1. String base64Payload
)

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);
}