getRelayInfo method
fetches relay info once per relay for the lifetime of this manager; concurrent calls share the request and failures are not cached. Returns null when no RelayInfoRepo is configured
Implementation
Future<RelayInfo?> getRelayInfo(String url) async {
final repo = _relayInfoRepo;
if (repo == null) return null;
final key = cleanRelayUrl(url) ?? url;
final pending = _relayInfoCache[key];
if (pending != null) return pending;
final fetch = _relayInfoCache[key] = repo.getRelayInfo(key);
RelayInfo? info;
try {
info = await fetch;
return info;
} finally {
if (info == null) _relayInfoCache.remove(key);
}
}