sdk

Radroots SDK and bindings
git clone https://radroots.dev/git/sdk.git
Log | Files | Refs | README

commit c178b9495109c530abea18e0d489ae2e57d3da7a
parent 0477bfd5b0cd2d6f0e6a54e7325c6dad06cd9ea6
Author: triesap <tyson@radroots.org>
Date:   Tue, 30 Jun 2026 21:17:58 +0000

docs: clarify trade feature split

- document runtime trade read and seller inbox APIs
- document signer-gated buyer and seller trade writes
- state that runtime-only builds expose no buyer write handle
- align signer-adapters feature text with product write APIs

Diffstat:
Mcrates/sdk/README | 21++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/crates/sdk/README b/crates/sdk/README @@ -41,12 +41,18 @@ transport owns signing. `push_outbox_with_adapter(...)` remains available for te adapter-level substrate checks. `radrootsd-proxy` adds daemon-resolved publishing through `publish.event`. -`sdk.trades()` exposes local trade evidence ingestion, status projection, and grouped product workflow -handles. Product workflow actions use `sdk.trades().buyer()`, `sdk.trades().seller()`, and -`sdk.trades().resync()`. `sdk.trades().status(...)` accepts `TradeStatusRequest` and reads local -projections; it returns typed source, event count, limit state, event IDs, ambiguity candidates, -eligibility, next-action, and reducer issue data. Status is not a network fetch. DVM proof requests and -validation receipt ingestion use `sdk.dvm()`. +`sdk.trades()` exposes the local trade runtime surface. With `runtime`, callers can ingest local trade +evidence, ingest DVM validation receipts through `sdk.dvm()`, read `sdk.trades().status(...)`, resync +through `sdk.trades().resync()`, and read seller inbox projections through `sdk.trades().seller()`. +`sdk.trades().status(...)` accepts `TradeStatusRequest` and reads local projections; it returns typed +source, event count, limit state, event IDs, ambiguity candidates, eligibility, next-action, and +reducer issue data. Status is not a network fetch. + +Configured-signer trade writes compile when both `runtime` and `signer-adapters` are enabled. Buyer +write workflows use `sdk.trades().buyer()` for propose, cancel, and revision-decision actions. +Seller write workflows use `sdk.trades().seller()` for accept, decline, and revision-proposal +actions. Runtime-only builds intentionally expose no buyer write handle and no trade mutation request +DTOs. DVM proof requests and validation receipt ingestion use `sdk.dvm()`. The `local-runtime` feature is the curated feature bundle for local product runtime consumers. It enables `std`, `serde`, `serde_json`, `runtime`, `signer-adapters`, `relay-runtime`, and @@ -96,7 +102,8 @@ Optional advanced substrate is explicitly feature-scoped: - `identity-storage`: encrypted identity-file helpers - `signing`: Nostr builder and local signing adapters - `relay-client`: relay client and publish adapters -- `signer-adapters`: SDK local-key and Myc NIP-46 signer providers +- `signer-adapters`: SDK local-key and Myc NIP-46 signer providers plus configured-signer product + write APIs The crate is licensed as `MIT OR Apache-2.0`. Its manifest is configured for a future crates.io release, but a public release still requires the full SDK check lane, generated artifact