diff --git a/bitchat/ViewModels/Extensions/ChatViewModel+Nostr.swift b/bitchat/ViewModels/Extensions/ChatViewModel+Nostr.swift index 4159c089..9dbb8d38 100644 --- a/bitchat/ViewModels/Extensions/ChatViewModel+Nostr.swift +++ b/bitchat/ViewModels/Extensions/ChatViewModel+Nostr.swift @@ -257,6 +257,11 @@ extension ChatViewModel { let tagSummary = event.tags.map { "[" + $0.joined(separator: ",") + "]" }.joined(separator: ",") SecureLogger.debug("GeoTeleport: recv pub=\(event.pubkey.prefix(8))… tags=\(tagSummary)", category: .session) + // If this pubkey is blocked, skip mapping, participants, and timeline + if identityManager.isNostrBlocked(pubkeyHexLowercased: event.pubkey) { + return + } + // Track teleport tag for participants – only our format ["t", "teleport"] let hasTeleportTag: Bool = event.tags.contains { tag in tag.count >= 2 && tag[0].lowercased() == "t" && tag[1].lowercased() == "teleport" @@ -297,11 +302,6 @@ extension ChatViewModel { geoNicknames[event.pubkey.lowercased()] = nick } - // If this pubkey is blocked, skip mapping, participants, and timeline - if identityManager.isNostrBlocked(pubkeyHexLowercased: event.pubkey) { - return - } - // Store mapping for geohash DM initiation nostrKeyMapping[PeerID(nostr_: event.pubkey)] = event.pubkey nostrKeyMapping[PeerID(nostr: event.pubkey)] = event.pubkey