filterValid method

void filterValid({
  1. int? maxAge,
  2. bool requireReachable = true,
})

Filter out addresses that are too old or invalid

Implementation

void filterValid({
  int? maxAge,
  bool requireReachable = true,
}) {
  final now = DateTime.now().millisecondsSinceEpoch ~/ 1000;

  addressList.removeWhere((addr) {
    // Check age
    if (maxAge != null && now - addr.timestamp > maxAge) {
      return true;
    }

    // Check if address looks reachable
    if (requireReachable) {
      // Remove localhost addresses (except for testing)
      if (addr.isLocalhost) return true;

      // Remove zero addresses
      if (addr.isZero) return true;

      // Require standard ports for Bitcoin
      if (addr.port != 8333 && addr.port != 18333 && addr.port != 18444) {
        return true;
      }
    }

    return false;
  });
}