mirror of
https://github.com/dergigi/boris.git
synced 2025-12-30 13:04:57 +01:00
debug: add detailed [bunker] logs for bookmark decryption
- Log account properties and nip04/nip44 availability - Log signer fallback logic - Log each decryption attempt (nip44 and nip04) - Log success/failure for hidden tags and content decryption - Helps diagnose why bunker decryption isn't working
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user