diff --git a/src/services/bookmarkProcessing.ts b/src/services/bookmarkProcessing.ts index 888699c0..4b1df2f7 100644 --- a/src/services/bookmarkProcessing.ts +++ b/src/services/bookmarkProcessing.ts @@ -75,38 +75,57 @@ export async function collectBookmarksFromEvents( try { if (Helpers.hasHiddenTags(evt) && !Helpers.isHiddenTagsUnlocked(evt) && signerCandidate) { + console.log('[bunker] 🔓 Attempting to unlock hidden tags:', { + eventId: evt.id?.slice(0, 8), + kind: evt.kind, + hasHiddenTags: true + }) try { await Helpers.unlockHiddenTags(evt, signerCandidate as HiddenContentSigner) - } catch { + console.log('[bunker] ✅ Unlocked hidden tags with nip04') + } catch (err) { + console.log('[bunker] ⚠️ nip04 unlock failed, trying nip44:', err) try { await Helpers.unlockHiddenTags(evt, signerCandidate as HiddenContentSigner, 'nip44' as UnlockMode) - } catch { - // ignore + console.log('[bunker] ✅ Unlocked hidden tags with nip44') + } catch (err2) { + console.log('[bunker] ❌ nip44 unlock failed:', err2) } } } else if (evt.content && evt.content.length > 0 && signerCandidate) { + console.log('[bunker] 🔓 Attempting to decrypt content:', { + eventId: evt.id?.slice(0, 8), + kind: evt.kind, + contentLength: evt.content.length, + contentPreview: evt.content.slice(0, 20) + '...' + }) + let decryptedContent: string | undefined try { if (hasNip44Decrypt(signerCandidate)) { + console.log('[bunker] Trying nip44 decrypt...') decryptedContent = await (signerCandidate as { nip44: { decrypt: DecryptFn } }).nip44.decrypt( evt.pubkey, evt.content ) + console.log('[bunker] ✅ nip44 decrypt succeeded') } - } catch { - // ignore + } catch (err) { + console.log('[bunker] ⚠️ nip44 decrypt failed:', err) } if (!decryptedContent) { try { if (hasNip04Decrypt(signerCandidate)) { + console.log('[bunker] Trying nip04 decrypt...') decryptedContent = await (signerCandidate as { nip04: { decrypt: DecryptFn } }).nip04.decrypt( evt.pubkey, evt.content ) + console.log('[bunker] ✅ nip04 decrypt succeeded') } - } catch { - // ignore + } catch (err) { + console.log('[bunker] ❌ nip04 decrypt failed:', err) } } diff --git a/src/services/bookmarkService.ts b/src/services/bookmarkService.ts index 9d8a594d..8b549818 100644 --- a/src/services/bookmarkService.ts +++ b/src/services/bookmarkService.ts @@ -85,10 +85,10 @@ export const fetchBookmarks = async ( } // Aggregate across events const maybeAccount = activeAccount as AccountWithExtension - console.log('🔐 Account object:', { + console.log('[bunker] 🔐 Account object:', { hasSignEvent: typeof maybeAccount?.signEvent === 'function', hasSigner: !!maybeAccount?.signer, - accountType: typeof maybeAccount, + accountType: maybeAccount?.type || typeof maybeAccount, accountKeys: maybeAccount ? Object.keys(maybeAccount) : [] }) @@ -97,16 +97,35 @@ export const fetchBookmarks = async ( let signerCandidate: unknown = maybeAccount const hasNip04Prop = (signerCandidate as { nip04?: unknown })?.nip04 !== undefined const hasNip44Prop = (signerCandidate as { nip44?: unknown })?.nip44 !== undefined + + console.log('[bunker] 🔍 Account nip04/nip44 check:', { + hasNip04Prop, + hasNip44Prop, + nip04Type: typeof (signerCandidate as { nip04?: unknown })?.nip04, + nip44Type: typeof (signerCandidate as { nip44?: unknown })?.nip44 + }) + if (signerCandidate && !hasNip04Prop && !hasNip44Prop && maybeAccount?.signer) { // Fallback to the raw signer if account doesn't have nip04/nip44 + console.log('[bunker] ⚠️ Account missing nip04/nip44, falling back to signer') signerCandidate = maybeAccount.signer + + const signerHasNip04 = (signerCandidate as { nip04?: unknown })?.nip04 !== undefined + const signerHasNip44 = (signerCandidate as { nip44?: unknown })?.nip44 !== undefined + console.log('[bunker] 🔍 Signer nip04/nip44 check:', { + signerHasNip04, + signerHasNip44, + nip04Type: typeof (signerCandidate as { nip04?: unknown })?.nip04, + nip44Type: typeof (signerCandidate as { nip44?: unknown })?.nip44 + }) } - console.log('🔑 Signer candidate:', !!signerCandidate, typeof signerCandidate) - if (signerCandidate) { - console.log('🔑 Signer has nip04:', hasNip04Decrypt(signerCandidate)) - console.log('🔑 Signer has nip44:', hasNip44Decrypt(signerCandidate)) - } + console.log('[bunker] 🔑 Final signer candidate:', { + exists: !!signerCandidate, + type: typeof signerCandidate, + hasNip04: hasNip04Decrypt(signerCandidate), + hasNip44: hasNip44Decrypt(signerCandidate) + }) const { publicItemsAll, privateItemsAll, newestCreatedAt, latestContent, allTags } = await collectBookmarksFromEvents( bookmarkListEvents, activeAccount,