rawCall method

  1. @override
Future<JsonRpcResponse> rawCall({
  1. required String chainId,
  2. required String method,
  3. required List params,
})
override

Implementation

@override
Future<JsonRpcResponse> rawCall({
  required String chainId,
  required String method,
  required List<dynamic> params,
}) async {
  final uri = Uri.parse(_baseUrl);
  final queryParams = {..._requiredParams, 'chainId': chainId};
  final url = uri.replace(queryParameters: queryParams);
  final body = jsonEncode({
    'jsonrpc': '2.0',
    'id': JsonRpcUtils.payloadId(),
    'method': method,
    'params': params,
  });
  final response = await http.post(
    url,
    headers: _requiredHeaders,
    body: body,
  );
  _core.logger.i('[$runtimeType] rawCall $url, $body => ${response.body}');
  try {
    final bodyResponse = response.body;
    final parsedResponse = jsonDecode(bodyResponse) as Map<String, dynamic>;
    final jsonRpcResponse = JsonRpcResponse.fromJson(parsedResponse);

    return jsonRpcResponse;
  } catch (e) {
    rethrow;
  }
}