broadcastMetadata method

Future<Metadata> broadcastMetadata(
  1. Metadata metadata,
  2. Iterable<String> broadcastRelays,
  3. EventSigner signer
)

Implementation

Future<Metadata> broadcastMetadata(Metadata metadata,
    Iterable<String> broadcastRelays, EventSigner signer) async {
  Nip01Event? event = await getSingleMetadataEvent(signer);
  if (event != null) {
    Map<String, dynamic> map = json.decode(event.content);
    map.addAll(metadata.toJson());
    event = Nip01Event(pubKey: event.pubKey,
        kind: event.kind,
        tags: event.tags,
        content: json.encode(map),
        createdAt: Helpers.now);
  } else {
    event = metadata.toEvent();
  }
  await broadcastEvent(event, broadcastRelays, signer);

  metadata.updatedAt = Helpers.now;
  metadata.refreshedTimestamp = Helpers.now;
  await cacheManager.saveMetadata(metadata);

  return metadata;
}