Skip to content

fix(security): put balance, fund, and pay routes behind the same decision gate - #291

Merged
karagozemin merged 3 commits into
Fortexa-stellar:mainfrom
larryjay007:claude/happy-hypatia-hnm5ts
Oct 1, 2026
Merged

karagozemin merged 3 commits into
Fortexa-stellar:mainfrom
larryjay007:claude/happy-hypatia-hnm5ts

Conversation

@larryjay007

Copy link
Copy Markdown
Contributor

Closes #215

What

  • balance, fund and pay require a session
  • blocklisted addresses are rejected on all three routes before any Stellar client call
  • pay verifies a matching allow decision (destination, asset, amount, memo, network)
  • new tests stub the Stellar client and assert it is never invoked on rejection

Why some unrelated files changed

main was already failing lint, tests and build (parse errors in
analyzer.ts and use-auth-session.ts from bad merges, plus type errors),
so this PR could not go green otherwise. Those fixes are minimal and
separate from the #215 logic; happy to split them out if preferred.

…klist and decision checks

Balance, fund and pay now require a session, reject blocklisted addresses,
and (pay) require a matching allow decision before any Stellar client call.
Adds tests that stub the Stellar client and assert non-invocation on rejection.

Also repairs upstream main build/lint/test breakage from bad merges
(analyzer, use-auth-session, audit export test, type errors).

Closes Fortexa-stellar#215

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EFaDMqjgRgX9rHiadu9Ndx
@drips-wave

drips-wave Bot commented Sep 30, 2026

Copy link
Copy Markdown

@larryjay007 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

…changes

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EFaDMqjgRgX9rHiadu9Ndx
@larryjay007

Copy link
Copy Markdown
Contributor Author

CI fails at the lint step on files that are not part of this PR (e.g. scripts/reset-local-demo-state.test.ts, submit-signed/route.ts, verify-payment-quote.ts, app-shell.test.tsx, activity-timeline.tsx, use-auth-session.ts). The same lint errors reproduce on current main (a799e68). The files changed here lint clean and their tests pass (route-gate.test.ts, fund/route.test.ts).

Once main is fixed I'll update this branch so CI re-runs. If you'd rather I include those lint fixes in this PR, let me know.

@karagozemin
karagozemin merged commit ad516d5 into Fortexa-stellar:main Oct 1, 2026
1 check failed
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.

Put balance, fund, and pay routes behind the same decision gate

3 participants