getNip51RelaySets method

Future<List<Nip51Set>?> getNip51RelaySets(
  1. int kind,
  2. EventSigner signer, {
  3. bool forceRefresh = false,
})

return list of all nip51 relay sets that match a given kind

Implementation

Future<List<Nip51Set>?> getNip51RelaySets(
  int kind,
  EventSigner signer, {
  bool forceRefresh = false,
}) async {
  // Nip51Set? relaySet;//  await getCachedNip51RelaySet(signer);
  // if (relaySet == null || forceRefresh) {
  Map<String, Nip51Set> newRelaySets = {};
  await for (final event in _requests.query(
    filters: [
      Filter(
        authors: [signer.getPublicKey()],
        kinds: [kind],
      )
    ],
    cacheRead: !forceRefresh,
  ).stream) {
    if (event.getDtag() != null) {
      Nip51Set? newRelaySet = newRelaySets[event.getDtag()];
      if (newRelaySet == null || newRelaySet.createdAt < event.createdAt) {
        if (event.getDtag() != null) {
          newRelaySet = await Nip51Set.fromEvent(event, signer);
        }
        if (newRelaySet != null) {
          await _cacheManager.saveEvent(event);
          newRelaySets[newRelaySet.name] = newRelaySet;
        }
      }
    }
  }
  return newRelaySets.values.toList();
  // }
  // return [];
}