Skip to content

feat: Soroban contract authorization tree visualization (#850) - #1113

Open
legend-esc wants to merge 2 commits into
Nanle-code:masterfrom
legend-esc:feature/850-soroban-auth-tree
Open

legend-esc wants to merge 2 commits into
Nanle-code:masterfrom
legend-esc:feature/850-soroban-auth-tree

Conversation

@legend-esc

Copy link
Copy Markdown

Add nested authorization entry visualization to the Soroban invocation UI so developers can verify required signers and their authorized invocation trees before signing.

Changes:

  • stellar.ts: extend ContractSimulationResult with authEntries field; add serializeAuthEntry/serializeAuthInvocation helpers that convert XDR SorobanAuthorizationEntry values to plain JSON-safe objects
  • AuthorizationTree.tsx: new component rendering the auth entry tree — credentials badge (source account vs address), nonce/expiry ledger for address credentials, collapsible invocation nodes with sub-invocation counts, security notice, ARIA tree roles
  • ContractInteraction.tsx: import and render AuthorizationTree after simulation result; falls back silently when authEntries is empty
  • tests/unit/components/AuthorizationTree.test.tsx: 21 tests covering primary flow, boundary cases (empty, nested, multi-signer, unknown function types), and failure cases (null/undefined/non-array input, malformed entries)
  • docs/features/soroban-auth-tree.md: feature guide with usage, security notes, compatibility table, data model reference, and component API
  • README.md: add feature guide entry

Closes #850

How was this tested?

Merge requirements

A PR is merged only when every box below is true. See
Merge requirements for the full policy.

  • All required CI checks pass on the latest commit (not just an earlier push).
  • No required checks are failing, pending, or skipped — re-run or fix them; do not ask for a merge while any are outstanding.
  • The branch has no merge conflicts with the target branch (rebase or merge master if GitHub shows "This branch has conflicts").
  • Tests were added or updated for the change (primary flow, a boundary case, and a failure case).
  • Docs were updated where behaviour, configuration, or security posture changed.

Add nested authorization entry visualization to the Soroban invocation UI
so developers can verify required signers and their authorized invocation
trees before signing.

Changes:
- stellar.ts: extend ContractSimulationResult with authEntries field;
  add serializeAuthEntry/serializeAuthInvocation helpers that convert XDR
  SorobanAuthorizationEntry values to plain JSON-safe objects
- AuthorizationTree.tsx: new component rendering the auth entry tree —
  credentials badge (source account vs address), nonce/expiry ledger for
  address credentials, collapsible invocation nodes with sub-invocation
  counts, security notice, ARIA tree roles
- ContractInteraction.tsx: import and render AuthorizationTree after
  simulation result; falls back silently when authEntries is empty
- tests/unit/components/AuthorizationTree.test.tsx: 21 tests covering
  primary flow, boundary cases (empty, nested, multi-signer, unknown
  function types), and failure cases (null/undefined/non-array input,
  malformed entries)
- docs/features/soroban-auth-tree.md: feature guide with usage, security
  notes, compatibility table, data model reference, and component API
- README.md: add feature guide entry

Closes Nanle-code#850
@vercel

vercel Bot commented Sep 28, 2026

Copy link
Copy Markdown

@legend-esc is attempting to deploy a commit to the nanle-code's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Sep 28, 2026

Copy link
Copy Markdown

@legend-esc Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Manuelshub

Copy link
Copy Markdown
Collaborator

@legend-esc Please resolve conflicts.

@legend-esc

Copy link
Copy Markdown
Author

@legend-esc Please resolve conflicts.

Done

This branch has not been deployed

No deployments
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.

[2026 Soroban] Add contract authorization tree visualization

2 participants