pub async fn send_dm(
receiver_npub: &str,
content: &str,
reply_to: Option<&str>,
config: &SendConfig,
callback: Arc<dyn SendCallback>,
) -> Result<SendResult, String>Expand description
Send a NIP-17 gift-wrapped text DM.
Flow: pending msg → callback.on_pending → build Kind 14 rumor → gift-wrap with retry → finalize → callback.on_sent → optional self-send.