in lib/src/server.dart [243:298]
void _validateRequest(request) {
if (request is! Map) {
throw RpcException(
error_code.INVALID_REQUEST,
'Request must be '
'an Array or an Object.');
}
if (strictProtocolChecks && !request.containsKey('jsonrpc')) {
throw RpcException(
error_code.INVALID_REQUEST,
'Request must '
'contain a "jsonrpc" key.');
}
if ((strictProtocolChecks || request.containsKey('jsonrpc')) &&
request['jsonrpc'] != '2.0') {
throw RpcException(
error_code.INVALID_REQUEST,
'Invalid JSON-RPC '
'version ${jsonEncode(request['jsonrpc'])}, expected "2.0".');
}
if (!request.containsKey('method')) {
throw RpcException(
error_code.INVALID_REQUEST,
'Request must '
'contain a "method" key.');
}
var method = request['method'];
if (request['method'] is! String) {
throw RpcException(
error_code.INVALID_REQUEST,
'Request method must '
'be a string, but was ${jsonEncode(method)}.');
}
if (request.containsKey('params')) {
var params = request['params'];
if (params is! List && params is! Map) {
throw RpcException(
error_code.INVALID_REQUEST,
'Request params must '
'be an Array or an Object, but was ${jsonEncode(params)}.');
}
}
var id = request['id'];
if (id != null && id is! String && id is! num) {
throw RpcException(
error_code.INVALID_REQUEST,
'Request id must be a '
'string, number, or null, but was ${jsonEncode(id)}.');
}
}