2.6 KiB
2.6 KiB
n_signer C Client — migrated to nostr_core_lib
The hand-rolled nsigner_client.{c,h} that previously lived in this directory
has been removed. n_signer now uses the shared, transport-pluggable client
stack that lives in nostr_core_lib:
nostr_core/nsigner_transport.{h,c}— pluggable transport vtable (unix-abstract / tcp / usb-cdc serial / fds) + discovery.nostr_core/nsigner_client.{h,c}— heap-allocated client: 4-byte length-prefixed framing, kind-27235 auth envelope (self-contained), JSON-RPC verbs, cJSON result parsing, RPC error mapping.nostr_core/nostr_signer.{h,c}— high-levelnostr_signer_tabstraction (local + remote backends, 6 verbs).
This is the single source of truth for the n_signer wire contract. See
nostr_core/NSIGNER_INTEGRATION.md
for the full integration contract.
What moved where
Old (client/) |
New (nostr_core_lib) |
|---|---|
nsigner_client_t (stack) |
nsigner_client_t* (heap) or nostr_signer_t* |
nsigner_client_init / connect_unix / close |
nsigner_transport_open_unix + nsigner_client_new / nsigner_client_free |
nsigner_client_get_public_key |
nostr_signer_get_public_key or nsigner_client_call(..., "get_public_key", ...) |
nsigner_client_sign_event |
nostr_signer_sign_event or nsigner_client_call(..., "sign_event", ...) |
nsigner_client_set_auth |
nsigner_client_set_auth or nostr_signer_nsigner_set_auth |
nsigner_client_request / request_raw |
nsigner_client_call (returns parsed cJSON result) |
Consumers (updated)
examples/get_public_key_client.c— usesnsigner_transport_open_unix+nsigner_client_new+nsigner_client_call.examples/sign_event_client.c— same pattern.tests/test_integration.c— same pattern; cJSON-based assertions.
The nsigner ... client '<json>' subcommand in src/main.c is
unaffected — it has its own raw framing pass-through and never used this directory.
Why
Per plans/nsigner_integration_plan.md
(Phase 7): retire per-project hand-rolled clients in favor of the shared module
in nostr_core_lib, so the wire contract has one implementation and downstream
projects get unix/tcp/serial/fds transports for free.