broadcastMetadata method
Future<Metadata>
broadcastMetadata(
- Metadata metadata,
- Iterable<
String> broadcastRelays, - EventSigner eventSigner
Implementation
Future<Metadata> broadcastMetadata(Metadata metadata,
Iterable<String> broadcastRelays, EventSigner eventSigner) async {
Nip01Event? event = await _refreshMetadataEvent(eventSigner);
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 _relayManager.broadcastEvent(event, broadcastRelays, eventSigner);
metadata.updatedAt = Helpers.now;
metadata.refreshedTimestamp = Helpers.now;
await _cacheManager.saveMetadata(metadata);
return metadata;
}