diff --git a/package.json b/package.json index fba59e7..0226bfd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nostr_quantum_preparation", - "version": "0.0.35", + "version": "0.0.36", "description": "A migration strategy for bringing post-quantum security to Nostr without breaking the social graph, without requiring consensus on a single post-quantum algorithm, and without forcing existing users to abandon their identities.", "main": "index.js", "scripts": { diff --git a/www/index.html b/www/index.html index 642af9d..52b78d4 100644 --- a/www/index.html +++ b/www/index.html @@ -549,9 +549,6 @@
-
- -
Relays to publish to:
diff --git a/www/js/index-app.mjs b/www/js/index-app.mjs index ddd29d0..710f7b8 100644 --- a/www/js/index-app.mjs +++ b/www/js/index-app.mjs @@ -1050,16 +1050,6 @@ if (e.key === 'Enter') { e.preventDefault(); document.getElementById('pqRelayAddBtn').click(); } }); - // Copy Proof Carrier Event button - document.getElementById('pqCopyProofCarrierBtn').addEventListener('click', () => { - if (!pqEvent) return; - navigator.clipboard.writeText(JSON.stringify(pqEvent, null, 2)).then(() => { - const btn = document.getElementById('pqCopyProofCarrierBtn'); - btn.textContent = 'Copied!'; - setTimeout(() => { btn.textContent = 'Copy Proof Carrier Event'; }, 2000); - }); - }); - // Sign out button const pqSignOutBtn = document.getElementById('pqSignOutBtn'); pqSignOutBtn.addEventListener('click', async () => { diff --git a/www/js/pq-crypto.mjs b/www/js/pq-crypto.mjs index e63179f..554f8f7 100644 --- a/www/js/pq-crypto.mjs +++ b/www/js/pq-crypto.mjs @@ -638,7 +638,8 @@ Post-quantum public keys in tags: Each post-quantum key has cryptographically signed this attestation. This event is pending timestamp on the Bitcoin blockchain via OpenTimestamps. -Verify this attestation: https://laantungir.net/quantum-prep/verify.html +Verify this attestation: https://laantungir.net/quantum-prep/verify.html?npub=${npub} + Created at: https://laantungir.net/quantum-prep/`; const statementBytes = new TextEncoder().encode(content); diff --git a/www/js/verify-app.mjs b/www/js/verify-app.mjs index 5b12c60..3c66840 100644 --- a/www/js/verify-app.mjs +++ b/www/js/verify-app.mjs @@ -49,7 +49,6 @@ const resultsWrap = document.getElementById('pqResultsWrap'); const resultList = document.getElementById('pqResultList'); const eventJsonWrap = document.getElementById('pqEventJsonWrap'); - const downloadEventBtn = document.getElementById('pqDownloadEventBtn'); const eventJsonEl = document.getElementById('pqEventJson'); const otsBadge = document.getElementById('pqOtsBadge'); const otsUpgradeWrap = document.getElementById('pqOtsUpgradeWrap'); @@ -496,22 +495,6 @@ }); } - /* ================================================================ - DOWNLOAD EVENT JSON - ================================================================ */ - downloadEventBtn.addEventListener('click', () => { - if (!currentEvent) return; - const blob = new Blob([JSON.stringify(currentEvent, null, 2)], { type: 'application/json' }); - const url = URL.createObjectURL(blob); - const a = document.createElement('a'); - a.href = url; - a.download = (currentEvent.id ? currentEvent.id.substring(0, 16) : 'event') + '.json'; - document.body.appendChild(a); - a.click(); - document.body.removeChild(a); - URL.revokeObjectURL(url); - }); - /* ================================================================ OTS UPGRADE (from verify page) ================================================================ */ @@ -750,12 +733,30 @@ }); /* ================================================================ - AUTO-DETECT SIGNED-IN USER - On page load, check for a NIP-07 signer / nostr-login-lite. If the - user is already signed in, pre-fill the pubkey field and auto-query - relays for their kind 9999 event. + URL ?npub= PARAMETER + AUTO-DETECT SIGNED-IN USER + On page load, first check for a ?npub= query parameter (used by the + "Verify this attestation" link in the kind 1 event). If present, + pre-fill the pubkey field and auto-query relays for that pubkey's + kind 9999 event. Otherwise, fall back to detecting a NIP-07 signer / + nostr-login-lite session and auto-query for the signed-in user. ================================================================ */ async function initAutoDetect() { + // 1. Check for ?npub= (or ?pubkey=) URL parameter first + const params = new URLSearchParams(window.location.search); + const npubParam = params.get('npub') || params.get('pubkey'); + if (npubParam) { + const pubkeyHex = normalizePubkey(npubParam); + if (pubkeyHex) { + console.log('[verify] URL parameter pubkey:', pubkeyHex); + const pubkeyInput = document.getElementById('pqPubkeyInput'); + const npub = hexToNpub(pubkeyHex); + pubkeyInput.value = npub || pubkeyHex; + queryBtn.click(); + return; + } + } + + // 2. Fall back to signed-in user detection if (window.NOSTR_LOGIN_LITE) { try { await initNostrLoginLite(); diff --git a/www/js/version.json b/www/js/version.json index f6ea5d0..535ba4f 100644 --- a/www/js/version.json +++ b/www/js/version.json @@ -1,5 +1,5 @@ { - "VERSION": "v0.0.35", - "VERSION_NUMBER": "0.0.35", - "BUILD_DATE": "2026-07-27T17:03:35.968Z" + "VERSION": "v0.0.36", + "VERSION_NUMBER": "0.0.36", + "BUILD_DATE": "2026-07-27T20:31:02.763Z" } diff --git a/www/pq-crypto.bundle.js b/www/pq-crypto.bundle.js index ed172be..0afe58f 100644 --- a/www/pq-crypto.bundle.js +++ b/www/pq-crypto.bundle.js @@ -9929,7 +9929,8 @@ Post-quantum public keys in tags: Each post-quantum key has cryptographically signed this attestation. This event is pending timestamp on the Bitcoin blockchain via OpenTimestamps. -Verify this attestation: https://laantungir.net/quantum-prep/verify.html +Verify this attestation: https://laantungir.net/quantum-prep/verify.html?npub=${npub} + Created at: https://laantungir.net/quantum-prep/`; const statementBytes = new TextEncoder().encode(content); const mlDsa44Sig = signWithMLDSA44(statementBytes, pqKeys.mlDsa44.secretKey); diff --git a/www/verify.html b/www/verify.html index 6d45493..0e88290 100644 --- a/www/verify.html +++ b/www/verify.html @@ -326,9 +326,6 @@