-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(connectors): filter mipd by connector rdns #4343
Conversation
🦋 Changeset detectedLatest commit: f490398 The changes in this PR will be included in the next version bump. This PR includes changesets to release 4 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Size Change: 0 B Total Size: 796 kB ℹ️ View Unchanged
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #4343 +/- ##
===========================================
- Coverage 93.51% 70.37% -23.14%
===========================================
Files 278 259 -19
Lines 7091 6606 -485
Branches 807 545 -262
===========================================
- Hits 6631 4649 -1982
- Misses 448 1934 +1486
- Partials 12 23 +11 ☔ View full report in Codecov by Sentry. |
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Open thoughts:
|
c2f1c6d
to
618be64
Compare
I totally get the concern about setting an invalid rdns. To reduce that risk, we can limit the use of rdns to default built-in connectors... A simple validation check could ensure that only valid or registered rdns values are used, which would prevent any issues with third-party connectors while keeping things stable for the built-ins. As for hardcoded values, the rdns for well-known connectors like MetaMask and Coinbase is stable and specific to those connectors, so it’s not really arbitrary or prone to errors. For third-party connectors, developers could handle these identifiers however they want. Wagmi could also expose the mechanism used for the default connectors so developers have the option to extend it if needed, without messing with the core code. |
hey @tmm, thanks for drafting this up. To clarify, we are specifically addressing scenarios where developers are integrating the MetaMask SDK[it's opt-in], aiming to offer a more feature-rich experience, including mobile wallet support. The core package is focused on supporting the most widely used and popular connectors, including MetaMask. As such, hardcoding the reverse DNS (RDNS) for these specific connectors is a logical approach. This would not disrupt downstream libraries but would instead enhance the core functionality by not adding extra filtering logic there where you have already made a decision on the wagmi/connector level. |
@@ -257,7 +263,7 @@ export function metaMask(parameters: MetaMaskParameters = {}) { | |||
parameters.dappMetadata ?? | |||
(typeof window !== 'undefined' | |||
? { url: window.location.origin } | |||
: { name: 'wagmi' }), | |||
: { name: 'wagmi', url: 'https://wagmi.sh' }), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
error spamming SSR (e.g. Next.js) without a URL set
Wagmi, with its latest version, has directly implemented connector deduplication. If a custom provider (MetaMask or Coinbase Wallet) is added to the configuration, it will automatically replace the equivalent EIP-6963 connector if detected. Therefore, there is no longer a need to detect and filter them beforehand. Link: wevm/wagmi#4343
Wagmi, with its latest version, has directly implemented connector deduplication. If a custom provider (MetaMask or Coinbase Wallet) is added to the configuration, it will automatically replace the equivalent EIP-6963 connector if detected. Therefore, there is no longer a need to detect and filter them beforehand. Link: wevm/wagmi#4343
* fix: wevm#4140 * chore: update mipd * chore: version packages (wevm#4141) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * feat: `useWatchAsset` hook (wevm#4128) * feat: `useWatchAsset` hook * test: add tests * docs: add docs * nit: use `getConnectorClient` * fix: types * test: fix * test: fix * test: fix * chore: tweaks * chore: changeset --------- Co-authored-by: Tom Meagher <tom@meagher.co> * feat(vue): useBytecode (wevm#4145) * feat: useBytecode * docs: tweak the composable example for vue * docs: use missing code highlighting for the TSQ Vue examples * chore: fix tests * chore: changeset --------- Co-authored-by: Skas Merkushin <skas.merkushin@gmail.com> * chore: version packages (wevm#4144) * chore: version packages * chore: correct version --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Tom Meagher <tom@meagher.co> * chore: update `@safe-global/safe-apps-sdk` (wevm#4146) chore: update safe * chore: version packages (wevm#4147) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * docs: update write-to-contract.md (wevm#4148) This section talk about minting using tokenId input name but the example code switch to using address as input name * fix: wevm#4118 * fix: wevm#4150 * chore: format * close: wevm#4151 * chore: types * chore: version packages (wevm#4152) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * FIX: useConnectorClient to be enabled only when connected or reconnecting (wevm#4124) * update enabled param for useConnectorClient and add a test * bring updated hook * change set * apply review * chore: version packages (wevm#4155) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Update useEstimateGas.md (wevm#4156) * feat: propagate transport rpc urls to connectors (wevm#4162) * feat: propagate transport rpc urls to connectors * tests: update snaps * chore: tweak changeset * chore: version packages (wevm#4163) * chore: version packages * Update package.json * Update CHANGELOG.md * Update version.ts --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: jxom <jakemoxey@gmail.com> * chore: add sponsor * fix: wevm#4169 * chore: format * test: chore * chore: format * chore: version packages (wevm#4170) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * test: createConfig restore unconfigured chainId * chore: bump deps * chore: bump deps * chore: version packages (wevm#4182) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Update AppKit guide link (wevm#4190) * fix: wevm#4097 * chore: version packages (wevm#4191) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * feat: validate internal state for persisted chainId * chore: version packages (wevm#4192) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * chore: gg21 * chore: format * chore: add sponsor * docs: tweak * fix: wevm#4196 * chore: version packages (wevm#4197) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Fixed the wrong input boxes. (wevm#4199) Removed input boxes with input of Address and Value. Added input boxes with input of tokenId. * docs: tweaks * chore: update ethereum provider to 2.15.0 (wevm#4208) * chore: update ethereum provider to 2.15.0 * chore: add changeset file * Update .changeset/neat-pants-care.md --------- Co-authored-by: awkweb <tom@meagher.co> * fix: metaMask dappMetadata add default value (wevm#4203) * fix: add name for mm connector (wevm#4211) * fix: metaMask dappMetadata add default value * chore: changeset --------- Co-authored-by: rich.eth <troubledealer1996@outlook.com> * chore: version packages (wevm#4212) * Update @walletconnect/ethereum-provider to 2.15.1 (wevm#4213) * chore: update @walletconnect/ethereum-provider to 2.15.1 * chore: ammend changeset to match convention * chore: version packages (wevm#4214) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * chore: remove gc banner * chore: sponsors * chore: sponsor * chore(connectors): bump wc provider * chore: version packages (wevm#4232) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * docs: up * chore: update @walletconnect/ethehreum-provider to version 2.15.3 (wevm#4243) * chore: updates @walletconnect/ethehreum-provider to version 2.15.3 * Update .changeset/slow-moose-unite.md --------- Co-authored-by: awkweb <tom@meagher.co> * test: setup connector * test: remove * chore: bump mm sdk (wevm#4251) * feat: update sdk * chore: format * chore: tweaks * chore: changeset --------- Co-authored-by: abretonc7s <arthur.breton@consensys.net> Co-authored-by: abretonc7s <abretonc7s@users.noreply.github.com> Co-authored-by: abretonc7s <107169956+abretonc7s@users.noreply.github.com> * chore: version packages (wevm#4250) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * feat(vue): useWatchContractEvent (wevm#4252) * feat(vue): useWatchContractEvent * chore: snaps * test: boost * chore: format * chore: tweaks * chore: version packages (wevm#4253) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: guard (get|use)ConnectorClient when reconnecting (wevm#4259) * feat: connector client reconnection * chore: changeset * chore: snaps * fix(react,vue): useReadContract deployless reads (wevm#4260) * fix(react,vue): deployless reads * chore: changeset * chore: Update ethereum-provider to version 2.16.1 (wevm#4255) * chore: update @walletconnect/ethereum-provider to 2.16.1 * chore: add changeset * Update .changeset/empty-falcons-approve.md --------- Co-authored-by: awkweb <tom@meagher.co> * chore: version packages (wevm#4261) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Add experimental actions export to react package (wevm#4262) * Add experimental actions export to react package * chore: add vue entrypoint * chore: changeset --------- Co-authored-by: Tom Meagher <tom@meagher.co> * chore: fix exports * chore: version packages (wevm#4263) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * docs: fix typos (wevm#4264) * fix typo * fix typos * fix typos * fix typo * fix typo * feat: update the 'metamask-sdk' package to version '0.28.4' (wevm#4271) * feat: update metamask-sdk package to version 0.28.4 * chore: changeset --------- Co-authored-by: Tom Meagher <tom@meagher.co> * fix: allow detection of hardhat when using bun (wevm#4224) * fix: allow detection of hardhat when using bun - added the user agent check now that bun supports it when finding the package manager - since bun does not have an ls command similar to the others, we check all installed packaged (--all is needed in monorepos) and check it it contains hardhat * chore: tweaks --------- Co-authored-by: Tom Meagher <tom@meagher.co> * Fix the switchChain error encountered when using the "metaMask" connector (wevm#4227) * fix: metaMask switchChain * chore: changeset --------- Co-authored-by: Tom Meagher <tom@meagher.co> * chore: version packages (wevm#4278) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * chore: remove duplicate extend in getWalletClient (wevm#4286) * chore: remove duplicate extend * chore: changeset --------- Co-authored-by: Tom Meagher <tom@meagher.co> * chore: version packages (wevm#4289) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: guard against missing provider.on * chore: version packages (wevm#4294) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: prevent component re-rendering with the same account snapshot (wevm#4229) * fix: prevent component re-rendering with the same account snapshot * test: check component re-rendering caused by useSyncExternalStoreWithTracked * test: update * chore: changeset --------- Co-authored-by: Tom Meagher <tom@meagher.co> * test: boost coverage * chore: version packages (wevm#4299) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Fix race condition in injected.ts (wevm#4207) * Fix race condition in injected.ts It can hangs if "once" catches an event with unexpected chainId * chore: tweaks --------- Co-authored-by: Tom Meagher <tom@meagher.co> * chore: version packages (wevm#4300) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * chore: bump dev deps (wevm#4302) * chore: bump dev deps * chore: bump vitest * chore: format * chore: bump * chore: tweaks --------- Co-authored-by: tmm <tmm@users.noreply.github.com> * test: up * test: cov * chore: format * test: skip * chore: bump deps * chore: snaps * chore: fix script * chore: version packages (wevm#4315) * docs: tweaks * feat: bump mm sdk (wevm#4337) * feat: update metamask sdk and implement connectSign * feat: cleanup * feat: cleanup * sdk 0.29.1 * feat: cleanup * feat: url default * feat: prevent breaking changes * feat: cleanup * chore: tweaks * chore: tweaks * chore: format * chore: changeset --------- Co-authored-by: abretonc7s <arthur.breton@consensys.net> Co-authored-by: tmm <tmm@users.noreply.github.com> * test: snaps * chore: version packages (wevm#4342) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * chore: bump mm (wevm#4345) * chore: bump mm sdk * chore: changeset * chore: version packages (wevm#4346) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: uniswap wallet trying to make itself look like MetaMask (wevm#4336) * fix: uniswap wallet trying to make itself look like MetaMask * chore: changeset --------- Co-authored-by: Tom Meagher <tom@meagher.co> * test: mock reconnect * chore: format * chore: viem tweaks * chore: up viem * chore: up snaps * fix: MetaMask disconnecting during the connection process. (wevm#4347) * fix: disconnection during the connection process. * fix: disconnection during the connection process. * chore: tweaks * chore: changeset * chore: comment --------- Co-authored-by: Tom Meagher <tom@meagher.co> * chore: add codeowners * feat: bump metamask 0.30.0 (wevm#4350) * feat: bump metamask 0.30.0 * feat: add changeset * Update .changeset/tasty-clouds-kiss.md Co-authored-by: awkweb <tom@meagher.co> * Update .changeset/tasty-clouds-kiss.md --------- Co-authored-by: awkweb <tom@meagher.co> * chore: version packages (wevm#4348) * feat(connectors): filter mipd by connector rdns (wevm#4343) * feat(connectors): filter mipd by connector rdns * feat: add connect listeners * test: boost coverage * test(core): eip 6963 announce * test: tweaks * chore: format * chore: changeset * feat: works with ssr flag * chore: changeset * chore: tweaks --------- Co-authored-by: tmm <tmm@users.noreply.github.com> * chore: skip * chore: version packages (wevm#4354) * chore: version packages * chore: fix version --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Tom Meagher <tom@meagher.co> * chore: up version * chore(core): bump internal deps (wevm#4349) chore: bump deps * feat(core): mock defaultConnected * chore: version packages (wevm#4355) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * test: tweak * chore: clean up deps (wevm#4357) * chore: clean up deps * chore: types * chore: changeset * chore: bump deps * chore: version packages (wevm#4359) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * chore: boost coverage * ci: protected push * feat: export type * chore: version packages (wevm#4361) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: MetaMask readonlyRPCMap type (wevm#4362) * fix: MetaMask readonlyRPCMap type * chore: tweaks * chore: changeset --------- Co-authored-by: Tom Meagher <tom@meagher.co> * chore: version packages (wevm#4363) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * test: up * chore: add sponsor * docs: bump deps * chore(cli): bump chokidar (wevm#4370) * chore: bump chokidar * chore: fmt * chore: changeset --------- Co-authored-by: Tom Meagher <tom@meagher.co> * chore: version packages (wevm#4378) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * chore: add sponsor * fix: Safe connector not working in some Vite apps (wevm#4371) * Fix Safe connector not working in some Vite apps * Fix Safe connector not working in some Vite apps * chore: tweaks --------- Co-authored-by: Tom Meagher <tom@meagher.co> * fix: waitForTransactionReceipt proper eth_call usage (wevm#4339) * fix: waitForTransactionReceipt proper eth_call usage * chore: tweaks --------- Co-authored-by: Tom Meagher <tom@meagher.co> * docs(cli/create-wagmi): template selection (wevm#4356) * docs(cli/create-wagmi): template selection Explain how to select the template when you don't specify `--template` or `-t`, and what each option means. * docs: up --------- Co-authored-by: Tom Meagher <tom@meagher.co> * chore: snaps * fix: wevm#4353 * docs: close wevm#4344 * chore: snaps * chore: version packages (wevm#4380) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * docs: rpc * fix: wevm#4310 * fix: wevm#4367 * chore: version packages (wevm#4383) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * chore: pnpm catalogs * chore: tweaks * chore: bump dependencies (wevm#4385) * chore: bump dependencies * Update .changeset/four-pens-collect.md --------- Co-authored-by: Jake <=> Co-authored-by: awkweb <tom@meagher.co> * chore: fix types * chore: version packages (wevm#4387) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * chore: snaps * fix: injected connector throws error after switching to a chain that was just added via `'wallet_addEthereumChain'`. (wevm#4311) * fix: injected connector throwing error after switching to a chain that was just added via `'wallet_addEthereumChain'`. * chore: changeset * chore: tweaks --------- Co-authored-by: Tom Meagher <tom@meagher.co> * test: tweaks * chore: version packages (wevm#4388) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> --------- Co-authored-by: Tom Meagher <tom@meagher.co> Co-authored-by: jxom <jakemoxey@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Vladyslav Dalechyn <vladyslav@spilnota.xyz> Co-authored-by: Skas Merkushin <skas.merkushin@gmail.com> Co-authored-by: Samson Adesanoye <adesanoye.samson1@gmail.com> Co-authored-by: tmm <tmm@users.noreply.github.com> Co-authored-by: t0rbik <90512605+t0rbik@users.noreply.github.com> Co-authored-by: wy <48370746+AxyLm@users.noreply.github.com> Co-authored-by: Radek Sienkiewicz <mail@velvetshark.com> Co-authored-by: Vedant-asati <114929867+Vedant-asati@users.noreply.github.com> Co-authored-by: tomiir <rocchitomas@gmail.com> Co-authored-by: rich.eth <135575128+0xRichBot@users.noreply.github.com> Co-authored-by: rich.eth <troubledealer1996@outlook.com> Co-authored-by: abretonc7s <arthur.breton@consensys.net> Co-authored-by: abretonc7s <abretonc7s@users.noreply.github.com> Co-authored-by: abretonc7s <107169956+abretonc7s@users.noreply.github.com> Co-authored-by: Łukasz Stankiewicz <stankiewicz1998@gmail.com> Co-authored-by: omahs <73983677+omahs@users.noreply.github.com> Co-authored-by: Omri Dan <61094771+omridan159@users.noreply.github.com> Co-authored-by: Roderik van der Veer <roderik@settlemint.com> Co-authored-by: 闲尘 <william.g9211@gmail.com> Co-authored-by: Kevin Ingersoll <kingersoll@gmail.com> Co-authored-by: Weil Liao <74590513+weilliao05621@users.noreply.github.com> Co-authored-by: Dmitry Blues <dmitri.blyus@gmail.com> Co-authored-by: Edouard Bougon <15703023+EdouardBougon@users.noreply.github.com> Co-authored-by: v1rtl <hi@v1rtl.site> Co-authored-by: Ice and dust <138901341+iceanddust@users.noreply.github.com> Co-authored-by: insomnia.exe <31802208+AndriyAntonenko@users.noreply.github.com> Co-authored-by: Ori Pomerantz <qbzzt1@gmail.com> Co-authored-by: cb-jake <95890768+cb-jake@users.noreply.github.com> Co-authored-by: Eugene Chybisov <18644653+chybisov@users.noreply.github.com>
Wagmi, with its latest version, has directly implemented connector deduplication. If a custom provider (MetaMask or Coinbase Wallet) is added to the configuration, it will automatically replace the equivalent EIP-6963 connector if detected. Therefore, there is no longer a need to detect and filter them beforehand. Link: wevm/wagmi#4343
Allows connectors to specify
rdns
property and filters out matching EIP 6963 connectors from being created.Related #4328