chore: remove Mask Wallet - #12433
Merged
Merged
Conversation
Removes the built-in Mask-native wallet (mnemonic/private-key management, keystore, payment password, lock/unlock, HD derivation, and all related create/import/export UI) while keeping external wallet connections (MetaMask, WalletConnect, etc.) and all other Web3 features intact. - Firefly/Privy embedded wallets are re-architected onto their own ProviderType.Firefly, backed by the already-independent Firefly REST API, instead of piggy-backing on Mask Wallet's local-key storage. - The dApp-facing injected wallet identity (EIP-6963 announcement and the entry-sdk/mask-sdk RPC bridge, both hardcoded to the built-in wallet) is removed entirely; web pages no longer see "Mask Wallet" as a selectable provider. - Background wallet services (mnemonic/keystore crypto, password vault, lock timer, legacy wallet migration, per-origin permission grants) are deleted; wallet-related backup/restore paths become no-ops while preserving backward-compatible parsing of old backup files. - Popup/dashboard UI: wallet creation/import/derive/lock/settings screens are removed; the Wallet tab gate is rewritten to be provider-agnostic (shows a "connect a wallet" empty state instead of mnemonic onboarding when nothing is connected). - Cleanup: dead routes, the MaskWallet provider descriptor/icon, the @dimensiondev/mask-wallet-core dependency, and orphaned locale strings are removed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ly4aKgVW1wnPu2LfzTQuJi
Running \`tsc -b\` for verification during the Mask Wallet removal incidentally emitted .d.ts/.d.ts.map declaration files in-place under packages/scripts/src and packages/mask/.webpack, which got swept up by git add. These are build output, not source, and don't exist on develop. Also fixes a lingering type-only-import lint warning in popup-opener.ts. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ly4aKgVW1wnPu2LfzTQuJi
…hooseTokenModal Introduced by the wallet-removal cleanup of this file: SingletonModal's generic order is <OpenProps, CloseProps> everywhere else, but these two got swapped to <CloseProps, OpenProps> while removing the adjacent deleted-wallet-modal declarations. Fixes the type-check CI failure. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ly4aKgVW1wnPu2LfzTQuJi
…oval - PluginID.SmartPay and its SmartPayDialogEvent had zero remaining callers already (the SmartPay account-abstraction plugin was removed before this change); leaves the SmartPay ABI/transaction-history strings intact for decoding old transactions. - PluginID.Wallet, PluginID.WalletService, and WalletSettingsDialogEvent became dead as a direct result of this PR's own deletions (the wallet database and WalletSettings UI) and were missed in the original pass. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ly4aKgVW1wnPu2LfzTQuJi
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ProviderType.Firefly, backed entirely by the already-independent Firefly REST API — no more piggy-backing on Mask Wallet's local-key storage/provider. Existing Firefly users lose no data (the wallet list was always fetched fresh from Firefly's backend; only an internal account-pointer cache is rebuilt on first load).packages/mask-sdkandpackages/mask/entry-sdk(EIP-6963announceProviderself-registration + the RPC bridge hardcoded to the built-in wallet, including its own per-origin permission-grant model) are deleted wholesale — confirmed dead/dev-only-flagged beyond that one purpose. Web pages no longer see "Mask Wallet" as a selectable provider.@dimensiondev/mask-wallet-core, password vault, lock timer, legacy wallet migration, per-origin permission grants) are deleted. The silent-transaction-signing path (services/wallet/services/send.ts) is rewritten to sign via the Firefly REST client instead.WalletGuard) is rewritten to be provider-agnostic, showing a "connect a wallet" empty state instead of mnemonic onboarding when nothing is connected; several dead-code clusters that depended on the removed entry-sdk permission model (Connected Sites, a legacy full-page Gas Setting flow) were also cleaned up.PopupRoutes/DashboardRoutesmembers, theMaskWalletprovider descriptor/icon, the@dimensiondev/mask-wallet-coredependency (3 package.json files), and orphaned locale strings are removed.Test plan
tsc -b --forceclean across the whole monorepo (20 remaining errors are pre-existing/unrelated — aGasSettingModal/ChooseTokenModalgeneric-parameter-order bug present ondevelopbefore this change, in files this PR never touches).eslintclean on all touched files.ProviderType.MaskWallet,MaskWalletProvider,mask-wallet-core,entry-sdk,@masknet/sdk,PluginID.Wallet, deletedServices.Wallet.*methods) returns zero hits.pnpm run build) succeeds; verified the builtbuild/output contains zero references to the deletedmask-sdk/entry-sdk.Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
🤖 Generated with Claude Code
https://claude.ai/code/session_01Ly4aKgVW1wnPu2LfzTQuJi