networkContainerLoadFromInternet function

Future<XchgNetwork> networkContainerLoadFromInternet()

Implementation

Future<XchgNetwork> networkContainerLoadFromInternet() async {
  // Load local static network
  var network = networkContainerLoadStaticDefault();
  network.debugSource = "local static";

  List<XchgNetwork> networks = [];

  for (var initialPoint in network.initialPoints) {
    try {
      var resp = await httpCall(initialPoint);
      XchgNetwork n = networkContainerLoadDefault(resp);
      n.debugSource = initialPoint;
      networks.add(n);
    } catch (ex) {}
  }

  // No fresh networks - use default static network
  if (networks.isEmpty) {
    return network;
  }

  for (var n in networks) {
    if (n.timestamp >= network.timestamp) {
      network = n;
    }
  }

  return network;
}