getNodeList method

Future<List<Node>> getNodeList()

Query the node infos Returns a List<Node> with infos

Implementation

Future<List<Node>> getNodeList() async {
  final Completer<List<Node>> _completer = Completer<List<Node>>();
  NodesResponse nodesResponse = NodesResponse();
  List<Node> nodesList = List<Node>.empty(growable: true);
  ;
  final Map<String, String> requestHeaders = {
    'Content-type': 'application/json',
    'Accept': 'application/json',
  };

  try {
    const String _body =
        '{"query": "query {nodes {authorized available averageAvailability firstPublicKey geoPatch ip lastPublicKey networkPatch port rewardAddress}}"}';
    logger.d('getNodeList: requestHttp.body=' + _body);
    final http.Response responseHttp = await http.post(
        Uri.parse(endpoint! + '/api'),
        body: _body,
        headers: requestHeaders);
    logger.d('getNodeList: responseHttp.body=' + responseHttp.body);
    if (responseHttp.statusCode == 200) {
      nodesResponse = nodesResponseFromJson(responseHttp.body);
      if (nodesResponse.data != null) {
        nodesList = nodesResponse.data!.nodes!;
      }
    }
  } catch (e) {
    logger.d('getNodeList: error=' + e.toString());
  }

  _completer.complete(nodesList);
  return _completer.future;
}