pub async fn delete_own_dm(rumor_id: &EventId) -> Result<DeleteOutcome, String>Expand description
Delete an outbound DM from the network by publishing NIP-09
deletions against every retained gift-wrap for rumor_id.
Per-relay event-driven dispatch: the publish/delete race is closed
by listening to each wrap’s WrapPublishTracker (registered at
send time). NIP-09 fires at each relay only after that relay
has confirmed receiving the wrap — relays that haven’t received it
yet wait until they do, relays that already have it get NIP-09
immediately, relays where the publish failed get nothing (no event
there to delete).
Each per-wrap deletion runs as a background tokio task so the API returns immediately. Local UI removal happens synchronously; the caller’s UX never blocks on relay roundtrips.
Returns Err if no retained keys exist for the rumor (predates
the retention feature, sent from a different device, etc).