JsonRpcMessage.fromJson constructor

JsonRpcMessage.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory JsonRpcMessage.fromJson(Map<String, dynamic> json) {
  // Ensure params is properly typed as Map<String, dynamic>
  Map<String, dynamic>? params;
  if (json['params'] != null) {
    if (json['params'] is Map) {
      params =
          (json['params'] as Map<dynamic, dynamic>).cast<String, dynamic>();
    } else {
      throw FormatException(
        'Invalid params: expected a Map, got ${json['params'].runtimeType}',
      );
    }
  }

  // Ensure error is properly typed as Map<String, dynamic>
  Map<String, dynamic>? error;
  if (json['error'] != null) {
    if (json['error'] is Map) {
      error =
          (json['error'] as Map<dynamic, dynamic>).cast<String, dynamic>();
    } else {
      throw FormatException(
        'Invalid error: expected a Map, got ${json['error'].runtimeType}',
      );
    }
  }

  return JsonRpcMessage(
    jsonrpc: json['jsonrpc'] as String,
    id: json['id'],
    method: json['method'] as String?,
    params: params,
    result: json['result'],
    error: error,
  );
}