From 9fe9da75e03a48bdf72488ed848190896b98cdf0 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Fri, 12 Jun 2026 14:46:52 -0700 Subject: [PATCH] Add url routing --- AGENTS.md | 4 +- PROTOCOL.md | 2 +- README.md | 2 +- src/Layout.tsx | 41 +++----------- src/components/Npub.tsx | 53 ++++++++++++++++++ src/components/QuoraLanding.tsx | 95 +++++++++++++++++++++++++++++++++ src/lib/pubkey.ts | 25 +++++++++ src/store.ts | 63 +++++++++++++++++----- 8 files changed, 232 insertions(+), 53 deletions(-) create mode 100644 src/components/Npub.tsx create mode 100644 src/components/QuoraLanding.tsx create mode 100644 src/lib/pubkey.ts diff --git a/AGENTS.md b/AGENTS.md index d416847..b386247 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,8 +1,8 @@ The user logs in via NIP-07, NIP-46, or private key. See https://gitea.coracle.social/coracle/caravel/raw/branch/master/frontend/src/views/Login.tsx for an example login component. -The app has a sidebar with an "inbox", a list of existing quorums, and a "create quorum" button. The bottom shows the user's profile name/nip05 and a logout button. On mobile, an icon opens a quorum list in a drawer, and a plus button opens the quorum creation form. +The app has a sidebar with an "inbox", a list of existing quora, and a "create quorum" button. The bottom shows the user's profile name/nip05 and a logout button. On mobile, an icon opens a quorum list in a drawer, and a plus button opens the quorum creation form. -The inbox shows all events pending signature across all quorums, including events the user has not yet signed. Each event shows x/y signed. Events not yet signed by the user have options for signing and declining, each with an optional message posted to the NIP-17 quorum chat. The inbox also lists quorum invitations with options to join or decline, each with a message. +The inbox shows all events pending signature across all quora, including events the user has not yet signed. Each event shows x/y signed. Events not yet signed by the user have options for signing and declining, each with an optional message posted to the NIP-17 quorum chat. The inbox also lists quorum invitations with options to join or decline, each with a message. Create quorum opens a modal for selecting quorum members and threshold, the quorum's outbox relays, and the quorum's kind 0 profile information. diff --git a/PROTOCOL.md b/PROTOCOL.md index 2561e35..ea7a3d2 100644 --- a/PROTOCOL.md +++ b/PROTOCOL.md @@ -8,7 +8,7 @@ FROST Multisig Quorum Protocol ## Abstract -This NIP defines a protocol for creating and operating FROST threshold signature quorums over Nostr keys. A quorum is a group of n participants who collectively control a shared Nostr keypair via a (t,n) threshold signing scheme, where any t members can produce a valid signature but no fewer. The quorum's private key is never known to any single party. +This NIP defines a protocol for creating and operating FROST threshold signature quora over Nostr keys. A quorum is a group of n participants who collectively control a shared Nostr keypair via a (t,n) threshold signing scheme, where any t members can produce a valid signature but no fewer. The quorum's private key is never known to any single party. ## Participant Indexing diff --git a/README.md b/README.md index cb8bfe3..cc8ce83 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # nq -This is a web application which allows for creating, rotating, and signing under multisig quorums for nostr keys. +This is a web application which allows for creating, rotating, and signing under multisig quora for nostr keys. # Protocol diff --git a/src/Layout.tsx b/src/Layout.tsx index d713d17..d49c00e 100644 --- a/src/Layout.tsx +++ b/src/Layout.tsx @@ -7,6 +7,7 @@ import AccountPage from "./components/AccountPage" import { ProposeQuorum } from "./components/forms/DkgForms" import { ProposeResharing } from "./components/forms/ResharingForms" import { ProposeSign } from "./components/forms/SigningForms" +import QuoraLanding from "./components/QuoraLanding" import Avatar from "./components/Avatar" import Modal from "./components/Modal" import { displayProfile } from "@welshman/util" @@ -62,7 +63,7 @@ export default function Layout() { {/* Desktop sidebar */} @@ -78,7 +79,7 @@ export default function Layout() { {/* Mobile drawer — always mounted, slides in/out via transform */}