macOS app icon = Goblin gradient; keep a contact's name across a decline
- The macOS bundle still shipped the old GRIM paw AppIcon.icns. Regenerated it from Goblin-Logo-Gradient-SMALLER.png (the yellow-gradient goblin mark) as a proper multi-resolution PNG-icns (16–512), so Finder/Dock show the Goblin icon. - Declining (or cancelling) a request never re-resolved the counterparty, so their @name could drop to a bare npub just because the request didn't go through. handle_wrap now re-resolves the counterparty after a void — cheap, authoritative via the by-pubkey reverse lookup, and a no-op for anonymous keys.
This commit is contained in:
Binary file not shown.
@@ -1235,6 +1235,11 @@ async fn handle_wrap(svc: &Arc<NostrService>, wallet: &Wallet, client: &Client,
|
||||
// counterparty inside, so a stranger can't void someone else's request.
|
||||
if let Some(void_slate_id) = protocol::extract_control(&rumor.tags) {
|
||||
handle_request_void(svc, wallet, &void_slate_id, &sender_hex);
|
||||
// A decline/cancel is still an interaction with a known counterparty —
|
||||
// (re)resolve their @name so it never drops to a bare npub just because the
|
||||
// request didn't go through. Cheap, authoritative (reverse lookup), and a
|
||||
// no-op for anonymous keys.
|
||||
svc.resolve_contact_identity(&sender_hex);
|
||||
// Record the void keyed by (slate, sender) so a payment S1 that arrives
|
||||
// AFTER its void (relays reorder; NIP-59 randomizes timestamps) is dropped.
|
||||
// Binding to the sender stops a stranger pre-voiding someone else's slate.
|
||||
|
||||
Reference in New Issue
Block a user