Skip to content

feat: add Stellar Soroban bridge service, Freighter wallet connect, and table saved views - #1364

Merged
yusuftomilola merged 2 commits into
DistinctCodes:mainfrom
authenticeasy-sys:feature/stellar-integration-and-table-views
Aug 26, 2026
Merged

feat: add Stellar Soroban bridge service, Freighter wallet connect, and table saved views#1364
yusuftomilola merged 2 commits into
DistinctCodes:mainfrom
authenticeasy-sys:feature/stellar-integration-and-table-views

Conversation

@authenticeasy-sys

@authenticeasy-sys authenticeasy-sys commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR introduces the Stellar blockchain integration foundation and a table saved views feature:

SC-01: Build backend Soroban bridge service

  • Created StellarModule with SorobanService that provides a typed bridge to the AssetsUp Soroban contracts
  • Supports register_asset, getAsset, and healthCheck methods
  • Configurable via env vars: STELLAR_NETWORK, SOROBAN_RPC_URL, ASSETSUP_CONTRACT_ID, STELLAR_SECRET_KEY
  • Degrades gracefully to disabled mode when Stellar env vars are absent — app remains fully functional

SC-03: Integrate Freighter wallet connect in the frontend

  • Created WalletButton component in the topbar with connect/disconnect functionality
  • Shows truncated address with copy and disconnect dropdown
  • Validates wallet network matches app network (testnet/futurenet/mainnet)
  • "Install Freighter" fallback link when extension not detected
  • Created useWalletStore Zustand store following existing auth store conventions

FE-24: Add table saved views infrastructure

  • Created table-views.ts utility library for column preferences, saved views, and URL filter serialization
  • Created useTableView hook for managing column visibility, reorder, named views, and default view selection
  • Supports shareable URLs via query parameter serialization

Closes #1113
Closes #1115
Closes #1112
Closes #1114

…nd table saved views

- SC-01: Created StellarModule with SorobanService that provides a typed bridge to the AssetsUp Soroban contracts; supports register_asset, getAsset, and healthCheck; degrades gracefully when Stellar env vars are absent
- SC-03: Integrated Freighter wallet connect in the frontend; created WalletButton component in topbar with connect/disconnect, truncated address display, network validation, and Stellar Expert link
- FE-24: Added table saved views infrastructure with column preferences, named views, and shareable URL filters; created useTableView hook and table-views utility library

Closes DistinctCodes#1113
Closes DistinctCodes#1115
Closes DistinctCodes#1112
@vercel

vercel Bot commented Aug 25, 2026

Copy link
Copy Markdown

@authenticeasy-sys is attempting to deploy a commit to the naijabuz's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Aug 25, 2026

Copy link
Copy Markdown

@authenticeasy-sys 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

@yusuftomilola yusuftomilola left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed. Good work:

  • Freighter wallet integration: correctly checks extension availability before connecting, verifies the wallet's active network matches the app's configured network (NEXT_PUBLIC_STELLAR_NETWORK) and refuses to proceed on a mismatch rather than silently continuing — that's the right call, since signing on the wrong network is a real footgun. Signing is delegated entirely to the Freighter extension, so no key material ever touches the app.
  • SorobanService is honestly a stub (registerAsset/getAsset return no-op success with a clear // TODO: Implement actual Soroban contract invocation and a literal 'pending-implementation' tx hash) and has no controller wired to it yet, so nothing in the UI could currently misrepresent an on-chain action as having happened.
  • Table-views hook/lib: clean localStorage-backed column preferences and saved views, sensible defaults fallback.

Approving.

Resolve additive conflicts against DistinctCodes#1358 (DepreciationModule/
ReservationsModule) in app.module.ts and against DistinctCodes#1359 (theme
provider) in topbar.tsx - both sets of imports/JSX are needed side
by side, so combined them.
@yusuftomilola
yusuftomilola merged commit 451d9da into DistinctCodes:main Aug 26, 2026
6 of 11 checks passed
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