registerRelayBroadcast method

void registerRelayBroadcast({
  1. required String relayUrl,
  2. required Nip01Event eventToPublish,
})

use this to register your broadcast against a relay,
this is needed so the response from a relay can be tracked back

Implementation

void registerRelayBroadcast({
  required String relayUrl,
  required Nip01Event eventToPublish,
}) {
  final broadcastState = globalState.inFlightBroadcasts[eventToPublish.id];
  if (broadcastState == null) {
    Logger.log.w(
        "registerRelayBroadcast: no broadcast state for ${eventToPublish.id}");
    return;
  }

  // Store the event for potential retries on auth-required
  broadcastState.event ??= eventToPublish;

  // new tracking
  if (broadcastState.broadcasts[relayUrl] == null) {
    broadcastState.broadcasts[relayUrl] = RelayBroadcastResponse(
      relayUrl: relayUrl,
    );
  } else {
    // do not overwrite
    Logger.log.w(
        "registerRelayBroadcast: relay broadcast already registered for ${eventToPublish.id} $relayUrl, skipping");
  }
}