Skip to content

Fix/network browse seller 596#597

Open
twfhyr wants to merge 1 commit into
AntSeed:mainfrom
twfhyr:fix/network-browse-seller-596
Open

Fix/network browse seller 596#597
twfhyr wants to merge 1 commit into
AntSeed:mainfrom
twfhyr:fix/network-browse-seller-596

Conversation

@twfhyr
Copy link
Copy Markdown
Contributor

@twfhyr twfhyr commented May 22, 2026

What

Adds explicit on-chain seller distinction to antseed network browse and antseed network peer CLI commands. When a peer operates as a delegated/proxy seller (i.e. metadata.sellerContract differs from peerId), the actual on-chain seller address is now surfaced separately from the peer/operator identity.

Changes

antseed network browse

  • New "On-chain seller" column appears when any displayed peer has a sellerContract that differs from its peerId
  • Non-delegated peers show in the column; column is hidden entirely when no delegated sellers are present
  • Footer note explains the distinction when the column is shown
  • Both compact and expanded (--services) tables include the column
  • JSON output (--json) adds sellerAddress and isDelegatedSeller per peer

antseed network peer <id>

  • New "On-chain seller" line in the Peer section:
    • Delegated: shows seller contract address with attribution note — "delegated/proxy seller — channel stats and payments are attributed to the seller address"
    • Non-delegated: shows "same as peer"
  • JSON output adds top-level sellerAddress and isDelegatedSeller fields

All pin/connect semantics (--peer, x-antseed-pin-peer) remain tied to peer.peerId — unchanged.

Why

Issue #596antseed network browse previously displayed peer.peerId as the visible seller identity. For delegated/proxy sellers (e.g. Venice-style setups), peerId is the operator EOA/node identity, while the actual on-chain seller is carried in peer.metadata.sellerContract. This made delegated sellers look visually wrong: the browse table showed the operator wallet as the seller, even though channel accounting and payments correctly used the seller contract address. The CLI presentation hid that distinction, making delegated/proxy sellers appear misconfigured.

Testing

  • pnpm --filter @antseed/cli run typecheck passes
  • pnpm --filter @antseed/cli run build passes
  • Manual testing against live buyer daemon (49 peers):
Test Result
network browse — no delegated sellers in top 5 Column hidden, table compact
network browse — Venice.ai Proxy in results "On-chain seller" column shown, Venice row shows 1f228613…dedf18c9, others show
network browse --services Seller column present in expanded table
network browse --json sellerAddress and isDelegatedSeller present on all peers; Venice has isDelegatedSeller: true
network peer <venice-id> Shows "On-chain seller: 1f228613…" with attribution note
network peer <non-delegated-id> Shows "On-chain seller: same as peer"
network peer <id> --json sellerAddress and isDelegatedSeller at top level
Pin/connect hints Still reference peer.peerId, unchanged

No new unit tests added — the network commands currently have no unit test coverage (pre-existing).

Checklist

  • pnpm run build passes (@antseed/cli typecheck + build verified; full repo build fails on pre-existing native module issue unrelated to this change)
  • pnpm run test passes (CLI has no test suite; other packages pass)
  • Breaking changes documented — no breaking changes

…rowse

- Add 'On-chain seller' column to browse table when any peer has a
  sellerContract that differs from its peerId (delegated/proxy sellers)
- Column is conditionally shown only when relevant, preserving compact
  layout for non-delegated sellers
- Add sellerAddress and isDelegatedSeller to JSON output for both
  browse and peer commands
- In peer detail view, show 'On-chain seller' with attribution note
  explaining that channel stats/payments go to the seller address
- Preserve all pin/connect semantics around peer.peerId

Closes AntSeed#596
@kotevcode kotevcode force-pushed the fix/network-browse-seller-596 branch from 74876e3 to 9219568 Compare May 27, 2026 09:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant