remoteRequest method

Future<String> remoteRequest({
  1. required BunkerRequest request,
})

Implementation

Future<String> remoteRequest({required BunkerRequest request}) async {
  final completer = Completer<String>();
  _pendingRequests[request.id] = completer;

  final encryptedRequest = await localEventSigner.encryptNip44(
    plaintext: jsonEncode(request),
    recipientPubKey: connection.remotePubkey,
  );

  final requestEvent = Nip01Event(
    pubKey: localEventSigner.publicKey,
    kind: BunkerRequest.kKind,
    tags: [
      ["p", connection.remotePubkey],
    ],
    content: encryptedRequest!,
  );

  await localEventSigner.sign(requestEvent);
  broadcast.broadcast(
    nostrEvent: requestEvent,
    specificRelays: connection.relays,
  );

  return completer.future;
}