Add NIP-46 remote signer (external signing)
Add a remote-signer (bunker) role so other Nostr apps can delegate signing to this app's active profile keys via nostrconnect:// links. Backend: new src/signer.rs implementing the NIP-46 protocol (kind 24133 events encrypted with NIP-44 v2 conversation keys). It parses nostrconnect:// connect URIs, spawns an async task in the serve process that reads relay requests, auto-approves once the handshake completes, signs delegate events, and publishes responses. Exposes status, connect, and disconnect via IPC and CLI (signer status / signer connect). Other: ipc.rs serve/handle now share Arc<Mutex<App>>; main.rs adds the signer CLI commands; Cargo.toml enables nostr nip46 feature. Frontend: new Signer screen (nav item + sidebar entry with key icon) to paste a nostrconnect:// link, connect/disconnect, and show the connected peer and relays; wires signer_connect/_disconnect/_status through api.ts and AppProvider; adds tests and test mocks.
This commit is contained in:
parent
13efee6b4b
commit
73cb08d856
17 changed files with 1125 additions and 7 deletions
|
|
@ -1481,3 +1481,31 @@ select {
|
|||
font-size: 13px;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.signer-badge {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.signer-status {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 14px;
|
||||
}
|
||||
|
||||
.signer-relay {
|
||||
display: inline-block;
|
||||
margin-right: 8px;
|
||||
padding: 2px 8px;
|
||||
background: var(--surface-2);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius-sm);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.signer-actions {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 12px;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue