registerSubscription method

void registerSubscription({
  1. required String subscriptionId,
  2. required List<NostrFilter> filters,
  3. required List<String> relays,
  4. Duration? autoCloseAfter,
})

Register a new subscription.

Implementation

void registerSubscription({
  required String subscriptionId,
  required List<NostrFilter> filters,
  required List<String> relays,
  Duration? autoCloseAfter,
}) {
  final metadata = SubscriptionMetadata(
    subscriptionId: subscriptionId,
    filters: filters,
    relays: relays,
    createdAt: DateTime.now(),
    eventCount: 0,
    lastEventAt: null,
  );

  _activeSubscriptions[subscriptionId] = metadata;

  logger.log(
    'Subscription registered: $subscriptionId on ${relays.length} relays',
  );

  // Auto-cleanup if specified
  if (autoCloseAfter != null) {
    _setAutoCleanupTimer(subscriptionId, autoCloseAfter);
  }
}