request method
Sends a single RPC request.
Implementation
@override
Future<Map<String, dynamic>> request(
String method, List<dynamic> params) async {
final requestId = ++_requestId;
final body = json.encode({
'jsonrpc': '2.0',
'id': requestId,
'method': method,
'params': params,
});
final response = await _client
.post(
Uri.parse(url),
headers: {
'Content-Type': 'application/json',
...headers,
},
body: body,
)
.timeout(timeout);
if (response.statusCode != 200) {
throw RpcError(-32000, 'HTTP error: ${response.statusCode}');
}
final result = json.decode(response.body) as Map<String, dynamic>;
if (result.containsKey('error')) {
throw RpcError.fromJson(result['error'] as Map<String, dynamic>);
}
return result;
}