Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
| > | ||
| Simulate error | ||
| </button> | ||
| </div> |
There was a problem hiding this comment.
Temporary simulate buttons committed in production components
High Severity
LinkWalletConnecting and LinkWalletSignVerify both include "Simulate success" and "Simulate error" buttons marked with TODO: remove -- temporary test buttons. These are visible to end users and allow bypassing the wallet connection and signature verification steps entirely — advancing through the link-wallet flow without any real wallet interaction.
Additional Locations (1)
| const externalButtons = useMemo(() => { | ||
| if (walletDiscoverySupported && !walletSearch && !isShowAllWallets) return defaultButtons; | ||
| return filteredButtons; | ||
| }, [walletDiscoverySupported, walletSearch, filteredButtons, defaultButtons, isShowAllWallets]); |
There was a problem hiding this comment.
Missing auto-expand effect from duplicated wallet logic
Low Severity
LinkWallet duplicates the wallet discovery logic from ConnectWallet but omits the useEffect that auto-sets isShowAllWallets to true when totalExternalWalletsCount <= 15. In ConnectWallet, this effect ensures small wallet lists are fully expanded immediately. Without it, LinkWallet always starts with only the "default" subset visible and shows a "More Wallets" button — even when there are only a handful of wallets — creating a UX inconsistency. Extracting the shared filtering/sorting logic into a common hook would prevent such drift.
8495951 to
3a4d360
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 3 total unresolved issues (including 2 from previous reviews).
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
| const initialWalletCount = useMemo(() => { | ||
| if (isShowAllWallets) return totalExternalWalletsCount; | ||
| return walletDiscoverySupported ? defaultButtons.length : installedWalletButtons.length; | ||
| }, [walletDiscoverySupported, defaultButtons, installedWalletButtons, isShowAllWallets, totalExternalWalletsCount]); |
There was a problem hiding this comment.
Extensive duplicated wallet filtering logic across components
Medium Severity
LinkWallet.tsx duplicates nine memoized wallet filtering/sorting computations (~70 lines) nearly verbatim from ConnectWallet.tsx: walletDiscoverySupported, allUniqueButtons, defaultButtonKeys, defaultButtons, installedWalletButtons, filteredButtons, externalButtons, totalExternalWalletsCount, and initialWalletCount. No shared hook exists for this logic. A bug fix in one location risks being missed in the other, which is especially concerning given the complexity of the filtering/sorting chains.


Motivation and Context
Jira Link:
Description
How has this been tested?
Screenshots (if appropriate):
Types of changes
Checklist:
Note
Medium Risk
Introduces a new public
linkWallet()API and a new modal page/flow, which can affect client integrations and modal state transitions. Linking is currently UI-driven (with simulated steps), so incomplete or incorrect wiring could confuse users or surface runtime errors when invoked while not connected.Overview
Adds an account linking entrypoint to the modal SDK via
IWeb3AuthModal.linkWallet()andWeb3Auth.linkWallet(), which opens a newPAGES.LINK_WALLETscreen after enforcing that the user is already connected.Implements a new Link Wallet UI container with a multi-step flow (wallet selection → connecting → sign/verify → success) and wires it into the modal
RootplusLoginModal.openLinkWallet().Exposes the feature to Vue apps through a new
useLinkWalletcomposable and updates the demo dashboard to include a Link Wallet button; also fixes several Vue button:loadingbindings to use.value.Written by Cursor Bugbot for commit 3a4d360. This will update automatically on new commits. Configure here.