rawCall method
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');
}
}