Skip to main content

delete_own_dm

Function delete_own_dm 

Source
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).