mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2025-01-31 06:35:53 +00:00
fix monero onion node test
This commit is contained in:
parent
c2d6b84129
commit
237eb5cd8e
1 changed files with 39 additions and 5 deletions
|
@ -58,8 +58,39 @@ Future<MoneroNodeConnectionResponse> testMoneroNodeConnection(
|
||||||
);
|
);
|
||||||
await socket.connect();
|
await socket.connect();
|
||||||
await socket.connectTo(uri.host, uri.port);
|
await socket.connectTo(uri.host, uri.port);
|
||||||
// assume success as connect did not fail
|
|
||||||
return MoneroNodeConnectionResponse(null, null, null, true);
|
final body = jsonEncode({
|
||||||
|
"jsonrpc": "2.0",
|
||||||
|
"id": "0",
|
||||||
|
"method": "get_info",
|
||||||
|
});
|
||||||
|
|
||||||
|
final request = 'POST /json_rpc HTTP/1.1\r\n'
|
||||||
|
'Host: ${uri.host}\r\n'
|
||||||
|
'Content-Type: application/json\r\n'
|
||||||
|
'Content-Length: ${body.length}\r\n'
|
||||||
|
'\r\n'
|
||||||
|
'$body';
|
||||||
|
|
||||||
|
socket.write(request);
|
||||||
|
print("Request sent: $request");
|
||||||
|
|
||||||
|
final buffer = StringBuffer();
|
||||||
|
await for (var response in socket.inputStream) {
|
||||||
|
buffer.write(utf8.decode(response));
|
||||||
|
if (buffer.toString().contains("\r\n\r\n")) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
final result = buffer.toString();
|
||||||
|
print("Response received: $result");
|
||||||
|
|
||||||
|
// Check if the response contains "results" and does not contain "error"
|
||||||
|
final success =
|
||||||
|
result.contains('"result":') && !result.contains('"error"');
|
||||||
|
|
||||||
|
return MoneroNodeConnectionResponse(null, null, null, success);
|
||||||
} catch (e, s) {
|
} catch (e, s) {
|
||||||
Logging.instance.log("$e\n$s", level: LogLevel.Warning);
|
Logging.instance.log("$e\n$s", level: LogLevel.Warning);
|
||||||
return MoneroNodeConnectionResponse(null, null, null, false);
|
return MoneroNodeConnectionResponse(null, null, null, false);
|
||||||
|
@ -119,9 +150,12 @@ Future<MoneroNodeConnectionResponse> testMoneroNodeConnection(
|
||||||
|
|
||||||
final response = await request.close();
|
final response = await request.close();
|
||||||
final result = await response.transform(utf8.decoder).join();
|
final result = await response.transform(utf8.decoder).join();
|
||||||
// TODO: json decoded without error so assume connection exists?
|
print("HTTP Response: $result");
|
||||||
// or we can check for certain values in the response to decide
|
|
||||||
return MoneroNodeConnectionResponse(null, null, null, true);
|
final success =
|
||||||
|
result.contains('"result":') && !result.contains('"error"');
|
||||||
|
|
||||||
|
return MoneroNodeConnectionResponse(null, null, null, success);
|
||||||
} catch (e, s) {
|
} catch (e, s) {
|
||||||
if (badCertResponse != null) {
|
if (badCertResponse != null) {
|
||||||
return badCertResponse!;
|
return badCertResponse!;
|
||||||
|
|
Loading…
Reference in a new issue