rawCall method

  1. @override
Future<String> rawCall({
  1. required String chainId,
  2. required Map params,
})
override

Implementation

@override
Future<String> rawCall({
  required String chainId,
  required Map 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': 1,
    'method': 'eth_call',
    'params': [params, 'latest']
  });
  final response = await http.post(
    url,
    headers: _requiredHeaders,
    body: body,
  );
  _core.logger.i('[$runtimeType] rawCall $url, $body => ${response.body}');
  if (response.statusCode == 200 && response.body.isNotEmpty) {
    try {
      return jsonDecode(response.body)['result'] as String;
    } on JsonRpcError catch (e) {
      _core.logger.e('[$runtimeType] rawCall, parse error => $e');
      rethrow;
    } catch (e) {
      _core.logger.e('[$runtimeType] rawCall, parse error => $e');
      throw Exception('Requested failed');
    }
  } else {
    throw Exception('Requested failed');
  }
}