broadcastAddNip65Relay method

Future<UserRelayList> broadcastAddNip65Relay(
  1. String relayUrl,
  2. ReadWriteMarker marker,
  3. Iterable<String> broadcastRelays,
  4. EventSigner signer,
)

Implementation

Future<UserRelayList> broadcastAddNip65Relay(String relayUrl,
    ReadWriteMarker marker,
    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);
  }
  userRelayList.relays[relayUrl] = marker;
  await Future.wait([
    broadcastEvent(
        userRelayList.toNip65().toEvent(), broadcastRelays, signer),
    cacheManager.saveUserRelayList(userRelayList)
  ]);
  return userRelayList;
}