publishDone property

bool get publishDone

completes when all relays have responded or timed out first string is the relay url, second is the response

Implementation

bool get publishDone {
  // If no relays were registered and the engine closed the controller, it's done
  if (broadcasts.isEmpty) {
    return networkController.isClosed;
  }

  // Check if all relays have responded (success or failure)
  final allResponded = broadcasts.values.every(
    (element) => element.okReceived || element.msg.isNotEmpty,
  );
  if (allResponded) {
    return true;
  }

  final doneCount = broadcasts.values
      .where((element) => element.okReceived)
      .length
      .toDouble();
  final totalCount = broadcasts.length.toDouble();
  return doneCount / totalCount >= considerDonePercent;
}