Some checks failed
Go / build-and-release (push) Has been cancelled
- Implement NIP-NRC protocol for remote relay access through public relay tunnel - Add NRC bridge service with NIP-44 encrypted message tunneling - Add NRC client library for applications - Add session management with subscription tracking and expiry - Add URI parsing for nostr+relayconnect:// scheme with secret and CAT auth - Add NRC API endpoints for connection management (create/list/delete/get-uri) - Add RelayConnectView.svelte component for managing NRC connections in web UI - Add NRC database storage for connection secrets and labels - Add NRC CLI commands (generate, list, revoke) - Add support for Cashu Access Tokens (CAT) in NRC URIs - Add ScopeNRC constant for Cashu token scope - Add wasm build infrastructure and stub files Files modified: - app/config/config.go: NRC configuration options - app/handle-nrc.go: New API handlers for NRC connections - app/main.go: NRC bridge startup integration - app/server.go: Register NRC API routes - app/web/src/App.svelte: Add Relay Connect tab - app/web/src/RelayConnectView.svelte: New NRC management component - app/web/src/api.js: NRC API client functions - main.go: NRC CLI command handlers - pkg/bunker/acl_adapter.go: Add NRC scope mapping - pkg/cashu/token/token.go: Add ScopeNRC constant - pkg/database/nrc.go: NRC connection storage - pkg/protocol/nrc/: New NRC protocol implementation - docs/NIP-NRC.md: NIP specification document 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
25 lines
1.2 KiB
Go
25 lines
1.2 KiB
Go
package nrc
|
|
|
|
import "errors"
|
|
|
|
var (
|
|
// ErrUnauthorized is returned when a client is not authorized.
|
|
ErrUnauthorized = errors.New("unauthorized")
|
|
// ErrInvalidSession is returned when a session ID is invalid or not found.
|
|
ErrInvalidSession = errors.New("invalid session")
|
|
// ErrTooManySubscriptions is returned when a session has too many subscriptions.
|
|
ErrTooManySubscriptions = errors.New("too many subscriptions")
|
|
// ErrInvalidMessageType is returned when the message type is invalid.
|
|
ErrInvalidMessageType = errors.New("invalid message type")
|
|
// ErrSessionExpired is returned when a session has expired.
|
|
ErrSessionExpired = errors.New("session expired")
|
|
// ErrDecryptionFailed is returned when message decryption fails.
|
|
ErrDecryptionFailed = errors.New("decryption failed")
|
|
// ErrEncryptionFailed is returned when message encryption fails.
|
|
ErrEncryptionFailed = errors.New("encryption failed")
|
|
// ErrRelayConnectionFailed is returned when connection to the local relay fails.
|
|
ErrRelayConnectionFailed = errors.New("relay connection failed")
|
|
// ErrRendezvousConnectionFailed is returned when connection to the rendezvous relay fails.
|
|
ErrRendezvousConnectionFailed = errors.New("rendezvous relay connection failed")
|
|
)
|