sendMessage method
Sends a direct message to recipientPubKey.
NDK creates a message rumor, wraps it once for the recipient and once for the sender, and broadcasts each wrapped copy to the corresponding DM relays.
Throws if either side has no published DM relay list.
Implementation
Future<void> sendMessage({
required String recipientPubKey,
required String content,
List<List<String>> additionalTags = const [],
Iterable<String>? recipientDmRelayDiscoveryRelays,
}) async {
final senderPubKey = _requireLoggedPubKey();
final rumor = await _giftWrap.createRumor(
content: content,
kind: kMessageKind,
tags: [
['p', recipientPubKey],
...additionalTags,
],
);
await _sendRumor(
rumor: rumor,
recipientPubKey: recipientPubKey,
senderPubKey: senderPubKey,
recipientDmRelayDiscoveryRelays: recipientDmRelayDiscoveryRelays,
);
}