Skip to content

feat: add Stellar account tools and audited transfer-risk review - #310

Merged
BigDella merged 2 commits into
Parcel-Protocol:mainfrom
0takuc0mrade:fix/0takuc0mrade-assigned-issues
Oct 19, 2026
Merged

BigDella merged 2 commits into
Parcel-Protocol:mainfrom
0takuc0mrade:fix/0takuc0mrade-assigned-issues

Conversation

@0takuc0mrade

Copy link
Copy Markdown
Contributor

Summary

Adds three read-only Stellar tools and a risk/review workflow for ticket transfers. Implements all four assigned issues:

Scope proof

The three tools are complete, independent slices in features/offer-inspector/, features/multisig-analyzer/ and features/sponsorship-planner/ (26 files each). Transfer-risk logic lives in core/transfer-risk/ with integration in core/invariants/. No generated registry output or shared route/navigation lists are included.

Also removes three existing compile blockers (duplicate claimable-balance formatting, duplicate faucet hook declarations, malformed scanner copy) and restores Tailwind scanning of core/ and features/, needed to render the tools in the existing app.

How to test

npm ci
npx vitest run features/offer-inspector features/sponsorship-planner features/multisig-analyzer core/transfer-risk core/invariants/__tests__/mutations.concurrency.test.ts --maxWorkers=2
npm run verify:features -- offer-inspector sponsorship-planner multisig-analyzer
npm run verify:boundaries
npx playwright test --config=features/offer-inspector/playwright.config.ts
npx playwright test --config=features/multisig-analyzer/playwright.config.ts
npx playwright test --config=features/sponsorship-planner/playwright.config.ts

The completed focused run passes 121 tests in 21 files. Scoped ESLint is clean; all three feature-contract checks and the boundary check pass. axe passes on idle/result markup. Six desktop/mobile browser checks pass, exercising request failure, recovery, successful results and no document overflow. Both networks are supported; transport tests use deterministic mocked Horizon responses.

For manual UI review, start npm run dev and visit /tools/offer-inspector, /tools/multisig-analyzer and /tools/sponsorship-planner. Supply public fixture inputs from each slice's fixtures/; verify a valid result, an invalid-address error and a mocked 503/retry. Secret keys are rejected before requests and cleared instead of echoed. These tools never sign or submit transactions.

Integration status

This is a draft against the currently available default branch, main. The issue templates require dev, but upstream currently has no dev branch. Retarget to dev when that integration branch is available.

Full repository checks remain blocked by baseline failures: npm run check reports 36 existing lint errors, and production bundling compiles before type checking fails on the missing Role export in core/admin-config/store.ts:23. Unrelated domain-test failures were reproduced against the untouched baseline. The completed verification above covers the changed paths.

Multisig results describe current envelope authorization, not complete transaction validity or Soroban contract auth. Sponsorship estimates exclude fees and new trading liabilities. Transfer review extends the existing server-domain library; its state/audit must be committed with ownership and nonces through the transactional/CAS adapter, with principals, device evidence, policy and clock supplied by trusted server context. No new public mutation endpoint or persistence service is introduced.

Evidence

Verification details. Screenshots use deterministic public fixture data.

#121 — Account Offers Inspector: idle, loading, error and result
Idle Loading Error Result
Account Offers Inspector: idle state Account Offers Inspector: loading state Account Offers Inspector: error state Account Offers Inspector: result state

Mobile result

#125 — Multisig Signature Weight Analyzer: idle, loading, error and result
Idle Loading Error Result
Multisig Signature Weight Analyzer: idle state Multisig Signature Weight Analyzer: loading state Multisig Signature Weight Analyzer: error state Multisig Signature Weight Analyzer: result state

Mobile result

#128 — Sponsorship and Reserve Planner: idle, loading, error and result
Idle Loading Error Result
Sponsorship and Reserve Planner: idle state Sponsorship and Reserve Planner: loading state Sponsorship and Reserve Planner: error state Sponsorship and Reserve Planner: result state

Mobile result

Checklist

  • All four fixed issues are explicitly linked above.
  • Idle, loading, success and error states are implemented.
  • Typed expected failures and actionable error copy are present.
  • Network requests are tested with MSW; a11y covers idle/result states.
  • Amount arithmetic uses strings/BigInt; no secret keys are accepted or echoed.
  • Each slice documents non-obvious behavior and limits.
  • Repository-wide npm run check passes (baseline failures described above).
  • Retarget to the required dev integration branch when available.

Refs Parcel-Protocol#121, Parcel-Protocol#125, Parcel-Protocol#128 and Parcel-Protocol#173. Independent local issue branches retain one-issue scope; the integration branch also includes existing compile and stylesheet repairs.
@drips-wave

drips-wave Bot commented Oct 19, 2026

Copy link
Copy Markdown

@0takuc0mrade 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

@0takuc0mrade
0takuc0mrade marked this pull request as ready for review October 19, 2026 19:33
@BigDella
BigDella merged commit b654cee into Parcel-Protocol:main Oct 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants