broadcastRemoveNip65Relay method

Future<UserRelayList?> broadcastRemoveNip65Relay(
  1. String relayUrl,
  2. Iterable<String> broadcastRelays,
  3. EventSigner signer
)

Implementation

Future<UserRelayList?> broadcastRemoveNip65Relay(String relayUrl,
    Iterable<String> broadcastRelays, EventSigner signer) async {
  UserRelayList? userRelayList = await ensureUpToDateUserRelayList(signer);
  if (userRelayList == null) {
    int now = DateTime
        .now()
        .millisecondsSinceEpoch ~/ 1000;
    userRelayList = UserRelayList(
        pubKey: signer.getPublicKey(),
        relays: {
          for (String url in broadcastRelays) url: ReadWriteMarker.readWrite
        },
        createdAt: now,
        refreshedTimestamp: now);
  }
  if (userRelayList.relays.keys.contains(relayUrl)) {
    userRelayList.relays.remove(relayUrl);
    userRelayList.refreshedTimestamp = Helpers.now;
    await Future.wait([
      broadcastEvent(
          userRelayList.toNip65().toEvent(), broadcastRelays, signer),
      cacheManager.saveUserRelayList(userRelayList)
    ]);
  }
  return userRelayList;
}