Summary
apps/docs/architecture/frontend.md still describes wallet connection as calling connectFreighter() directly. That function no longer exists in the codebase.
Motivation
The feat(web): extract wallet abstraction layer from Freighter flow commit replaced direct Freighter calls with a WalletAdapter interface (apps/web/src/lib/wallet.ts). useWalletConnect now calls wallet.connect() against a FreighterWallet implementation of that interface. No doc anywhere mentions this abstraction, so the architecture doc is both factually wrong (connectFreighter() doesn't exist) and missing the part of the design that matters most: this is exactly the seam the queued multi-wallet issues (xBull, LOBSTR) are meant to plug into.
Proposed Solution
Update the "Wallet store" section of frontend.md to describe the actual flow: useWalletConnect calls wallet.connect()/wallet.isInstalled()/wallet.isAuthorized() against the WalletAdapter interface, currently implemented only by FreighterWallet. Briefly note that adding a wallet means adding a new WalletAdapter implementation and selecting it, not touching callers.
Scope
| Field |
Value |
| Area |
Docs |
| Protocol affected |
None |
| Network |
both |
| Breaking change? |
No |
Alternatives Considered
None, this is a factual correction plus a missing-content gap, not a design decision.
Acceptance Criteria
Additional Context
Found while auditing docs for staleness after recent PR/issue activity. connectFreighter() is confirmed absent from apps/web/src entirely, replaced by apps/web/src/lib/wallet.ts's WalletAdapter/FreighterWallet.
Summary
apps/docs/architecture/frontend.mdstill describes wallet connection as callingconnectFreighter()directly. That function no longer exists in the codebase.Motivation
The
feat(web): extract wallet abstraction layer from Freighter flowcommit replaced direct Freighter calls with aWalletAdapterinterface (apps/web/src/lib/wallet.ts).useWalletConnectnow callswallet.connect()against aFreighterWalletimplementation of that interface. No doc anywhere mentions this abstraction, so the architecture doc is both factually wrong (connectFreighter()doesn't exist) and missing the part of the design that matters most: this is exactly the seam the queued multi-wallet issues (xBull, LOBSTR) are meant to plug into.Proposed Solution
Update the "Wallet store" section of
frontend.mdto describe the actual flow:useWalletConnectcallswallet.connect()/wallet.isInstalled()/wallet.isAuthorized()against theWalletAdapterinterface, currently implemented only byFreighterWallet. Briefly note that adding a wallet means adding a newWalletAdapterimplementation and selecting it, not touching callers.Scope
Alternatives Considered
None, this is a factual correction plus a missing-content gap, not a design decision.
Acceptance Criteria
frontend.md's wallet section reflectswallet.connect()viaWalletAdapter, notconnectFreighter()WalletAdapterinterface and how a new wallet gets addedconnectFreighter()Additional Context
Found while auditing docs for staleness after recent PR/issue activity.
connectFreighter()is confirmed absent fromapps/web/srcentirely, replaced byapps/web/src/lib/wallet.ts'sWalletAdapter/FreighterWallet.