setCompleteSet method
Overwrites or creates a complete NIP-51 set.
Warning: This replaces the entire set. Consider using addElementToSet or removeElementFromSet for incremental updates.
set the complete set to broadcast
kind kind of the set
specificRelays optional specific relays to broadcast to
Returns the set after broadcasting.
Implementation
Future<Nip51Set> setCompleteSet({
required Nip51Set set,
required int kind,
Iterable<String>? specificRelays,
}) async {
Nip01Event event = await set.toEvent(_eventSigner);
final broadcastResponse = _broadcast.broadcast(
nostrEvent: event,
specificRelays: specificRelays,
customSigner: _eventSigner,
);
await broadcastResponse.broadcastDoneFuture;
/// update cache, remove old set and set the new one
List<Nip01Event>? events = await _cacheManager
.loadEvents(pubKeys: [_eventSigner!.getPublicKey()], kinds: [kind]);
events = events.where((event) {
if (event.getDtag() != null && event.getDtag() == set.name) {
return true;
}
return false;
}).toList();
for (final event in events) {
_cacheManager.removeEvent(event.id);
}
await _cacheManager.saveEvent(event);
return set;
}