Repository: WalletConnect/walletconnect-monorepo
Pull request #6304: fix: `ethereum-provider` in RN expo 
Author: login: ganchoradkov
Labels: name: accepted
Created: 2025-05-14T09:35:30Z | Merged: 2025-05-16T06:29:11Z

## Description
Added new dedicated build of `ethereum-provider` for React Native that doesn't import appkit.

## Type of change

- [ ] Chore (non-breaking change that addresses non-functional tasks, maintenance, or code quality improvements)
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Draft PR (breaking/non-breaking change which needs more work for having a proper functionality _[Mark this PR as ready to review only when completely ready]_)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

## How has this been tested?
EP being ran in RN expo


## Checklist

- [x] I have performed a self-review of my own code
- [x] My changes generate no new warnings
- [ ] Any dependent changes have been merged and published in downstream modules

# Additional Information (Optional)

Please include any additional information that may be useful for the reviewer.



Diff:
diff --git a/.changeset/puny-lands-say.md b/.changeset/puny-lands-say.md
index cc613d8d31..0b44454a99 100644
--- a/.changeset/puny-lands-say.md
+++ b/.changeset/puny-lands-say.md
@@ -9,4 +9,4 @@
 "@walletconnect/universal-provider": patch
 ---
 
-Implemented heartbeat connection checker to avoid cases where unreliable browser network state can cause the SDK to stay without active ws connection
+Added new dedicated build of `ethereum-provider` for `react-native` that doesn't try to import `Appkit`
diff --git a/.changeset/upset-spies-lie.md b/.changeset/upset-spies-lie.md
new file mode 100644
index 0000000000..3041f1e5a0
--- /dev/null
+++ b/.changeset/upset-spies-lie.md
@@ -0,0 +1,12 @@
+---
+"@walletconnect/ethereum-provider": patch
+"@walletconnect/utils": patch
+"@walletconnect/core": patch
+"@walletconnect/react-native-compat": patch
+"@walletconnect/sign-client": patch
+"@walletconnect/types": patch
+"@walletconnect/signer-connection": patch
+"@walletconnect/universal-provider": patch
+---
+
+Added new dedicated build of `ethereum-provider` for `react-native` that doesn't try to import `Appkit`
diff --git a/package-lock.json b/package-lock.json
index 4ff7eca43f..e49e508142 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -19,6 +19,7 @@
       "devDependencies": {
         "@changesets/changelog-github": "0.4.1",
         "@changesets/cli": "2.28.1",
+        "@rollup/plugin-alias": "^5.1.1",
         "@rollup/plugin-commonjs": "22.0.2",
         "@rollup/plugin-json": "^6.1.0",
         "@rollup/plugin-node-resolve": "13.3.0",
@@ -5460,6 +5461,24 @@
         }
       }
     },
+    "node_modules/@rollup/plugin-alias": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-5.1.1.tgz",
+      "integrity": "sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=14.0.0"
+      },
+      "peerDependencies": {
+        "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+      },
+      "peerDependenciesMeta": {
+        "rollup": {
+          "optional": true
+        }
+      }
+    },
     "node_modules/@rollup/plugin-commonjs": {
       "version": "22.0.2",
       "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz",
@@ -29126,6 +29145,7 @@
         "events": "3.3.0"
       },
       "devDependencies": {
+        "@rollup/plugin-alias": "^5.1.1",
         "ethereum-test-network": "0.1.6",
         "ethers": "5.6.9",
         "uint8arrays": "3.1.0",
diff --git a/package.json b/package.json
index b223b12d4a..a53a7a0333 100644
--- a/package.json
+++ b/package.json
@@ -57,6 +57,7 @@
   "devDependencies": {
     "@changesets/changelog-github": "0.4.1",
     "@changesets/cli": "2.28.1",
+    "@rollup/plugin-alias": "^5.1.1",
     "@rollup/plugin-commonjs": "22.0.2",
     "@rollup/plugin-json": "^6.1.0",
     "@rollup/plugin-node-resolve": "13.3.0",
diff --git a/providers/ethereum-provider/package.json b/providers/ethereum-provider/package.json
index b3aa0a9832..2e78917c47 100644
--- a/providers/ethereum-provider/package.json
+++ b/providers/ethereum-provider/package.json
@@ -14,6 +14,7 @@
   "module": "dist/index.es.js",
   "unpkg": "dist/index.umd.js",
   "types": "dist/types/index.d.ts",
+  "react-native": "dist/index.native.js",
   "sideEffects": false,
   "exports": {
     ".": {
@@ -56,6 +57,7 @@
     "events": "3.3.0"
   },
   "devDependencies": {
+    "@rollup/plugin-alias": "^5.1.1",
     "ethereum-test-network": "0.1.6",
     "ethers": "5.6.9",
     "uint8arrays": "3.1.0",
diff --git a/providers/ethereum-provider/rollup.config.js b/providers/ethereum-provider/rollup.config.js
index 04e978f1f4..53321fd7ad 100644
--- a/providers/ethereum-provider/rollup.config.js
+++ b/providers/ethereum-provider/rollup.config.js
@@ -1,10 +1,38 @@
 import { name, dependencies, peerDependencies } from "./package.json";
-import createConfig from "../../rollup.config";
-// @walletconnect/modal has dynamic imports, so we need to enable inlineDynamicImports
-export default createConfig(
-  name,
-  Object.keys({ ...dependencies, ...peerDependencies }),
-  { inlineDynamicImports: true },
-  { inlineDynamicImports: true },
-  { inlineDynamicImports: true },
+import createConfig, { input, plugins } from "../../rollup.config";
+import alias from "@rollup/plugin-alias";
+import path from "path";
+
+// `ethereum-provider` has dynamic imports, so we need to enable inlineDynamicImports
+const options = { inlineDynamicImports: true };
+
+// keep `@reown/appkit/core` in the external dependencies, else the builds will balloon in size
+const externalDependencies = Object.keys({ ...dependencies, ...peerDependencies }).concat(
+  "@reown/appkit/core",
 );
+export default createConfig(name, externalDependencies, options, options, options, [
+  {
+    input,
+    plugins: [
+      alias({
+        entries: [
+          {
+            // this config allows separate files to be used for the browser and native builds
+            find: "./utils/appkit",
+            replacement: path.resolve(__dirname, `src/utils/appkit.native.ts`),
+          },
+        ],
+      }),
+      ...plugins,
+    ],
+    external: externalDependencies,
+    output: {
+      file: "./dist/index.native.js",
+      format: "cjs",
+      exports: "named",
+      name,
+      sourcemap: true,
+      ...options,
+    },
+  },
+]);
diff --git a/providers/ethereum-provider/src/EthereumProvider.ts b/providers/ethereum-provider/src/EthereumProvider.ts
index 218beef412..0e468a8a23 100644
--- a/providers/ethereum-provider/src/EthereumProvider.ts
+++ b/providers/ethereum-provider/src/EthereumProvider.ts
@@ -24,6 +24,7 @@ import {
   OPTIONAL_METHODS,
   OPTIONAL_EVENTS,
 } from "./constants";
+import { getAppkit } from "./utils/appkit";
 
 export type RpcMethod =
   | "personal_sign"
@@ -602,7 +603,7 @@ export class EthereumProvider implements IEthereumProvider {
     if (this.rpc.showQrModal) {
       let appKit;
       try {
-        const { createAppKit } = await import("@reown/appkit/core");
+        const createAppKit = await getAppkit();
         const { convertWCMToAppKitOptions } = await import("./wcmToAppKit");
         const options = convertWCMToAppKitOptions({
           ...this.rpc.qrModalOptions,
@@ -621,6 +622,7 @@ export class EthereumProvider implements IEthereumProvider {
           manualWCControl: true,
         });
       } catch (e) {
+        console.warn(e);
         throw new Error("To use QR modal, please install @reown/appkit package");
       }
       if (appKit) {
diff --git a/providers/ethereum-provider/src/utils/appkit.native.ts b/providers/ethereum-provider/src/utils/appkit.native.ts
new file mode 100644
index 0000000000..3eff807732
--- /dev/null
+++ b/providers/ethereum-provider/src/utils/appkit.native.ts
@@ -0,0 +1,3 @@
+export const getAppkit = () => {
+  throw new Error("@reown/appkit is not supported on native");
+};
diff --git a/providers/ethereum-provider/src/utils/appkit.ts b/providers/ethereum-provider/src/utils/appkit.ts
new file mode 100644
index 0000000000..461f72021e
--- /dev/null
+++ b/providers/ethereum-provider/src/utils/appkit.ts
@@ -0,0 +1,4 @@
+export const getAppkit = async () => {
+  const { createAppKit } = await import("@reown/appkit/core");
+  return createAppKit;
+};
diff --git a/providers/ethereum-provider/src/wcmToAppKit.ts b/providers/ethereum-provider/src/wcmToAppKit.ts
index e2fb7986d7..e1ef00d80f 100644
--- a/providers/ethereum-provider/src/wcmToAppKit.ts
+++ b/providers/ethereum-provider/src/wcmToAppKit.ts
@@ -1,8 +1,8 @@
 import type { AppKitOptions, CaipNetwork, CaipNetworkId } from "@reown/appkit";
 import type { WalletConnectModalConfig } from "./types";
-import { defineChain } from "@reown/appkit/networks";
 import type { AppKitNetwork } from "@reown/appkit/networks";
 import type { EthereumProviderOptions } from "./EthereumProvider";
+import type { Assign, ChainFormatters, Prettify } from "viem";
 
 function convertThemeVariables(
   wcmTheme?: WalletConnectModalConfig["themeVariables"],
@@ -132,3 +132,15 @@ export function convertWCMToAppKitOptions(
 
   return appKitOptions;
 }
+
+export function defineChain<
+  formatters extends ChainFormatters,
+  const chain extends CaipNetwork<formatters>,
+>(chain: chain): Prettify<Assign<CaipNetwork<undefined>, chain>> {
+  return {
+    formatters: undefined,
+    fees: undefined,
+    serializers: undefined,
+    ...chain,
+  } as Assign<CaipNetwork<undefined>, chain>;
+}
diff --git a/rollup.config.js b/rollup.config.js
index a51b7a32c8..49b6ce7156 100644
--- a/rollup.config.js
+++ b/rollup.config.js
@@ -4,8 +4,8 @@ import commonjs from "@rollup/plugin-commonjs";
 import json from "@rollup/plugin-json";
 import visualizer from "rollup-plugin-visualizer";
 
-const input = "./src/index.ts";
-const plugins = [
+export const input = "./src/index.ts";
+export const plugins = [
   nodeResolve({ preferBuiltins: false, browser: true }),
   json(),
   commonjs(),
@@ -25,6 +25,7 @@ export default function createConfig(
   umd = {},
   cjs = {},
   es = {},
+  extraBuilds = [],
 ) {
   return [
     {
@@ -62,5 +63,6 @@ export default function createConfig(
         },
       ],
     },
+    ...extraBuilds,
   ];
 }


Reviews:
user: login: ganchoradkov
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-14T09:41:05Z
user: login: tomiir
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-14T09:42:02Z
user: login: ganchoradkov
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-14T09:42:28Z
user: login: ganchoradkov
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-14T09:43:47Z
user: login: tomiir
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-14T09:44:52Z
user: login: ignaciosantise
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-14T12:56:40Z
user: login: ganchoradkov
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-14T14:58:47Z
user: login: tomiir
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-15T07:06:14Z
user: login: ganchoradkov
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-15T07:11:19Z
user: login: ganchoradkov
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-15T07:11:44Z
user: login: ganchoradkov
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-15T07:12:18Z
user: login: ganchoradkov
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-15T07:17:22Z
user: login: ignaciosantise
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-15T18:29:03Z
user: login: ignaciosantise
body: working good on RN 👏 
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-15T18:30:15Z
user: login: ganchoradkov
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-16T06:29:06Z

Review comments:
diff_hunk: @@ -10,7 +10,7 @@ const plugins = [
   json(),
   commonjs(),
   esbuild({
-    minify: true,
+    minify: false,
path: rollup.config.js
user: login: tomiir
body: Is this correct for all envs / frameworks? 
created_at: 2025-05-14T09:40:42Z
author_association: CONTRIBUTOR
diff_hunk: @@ -10,7 +10,7 @@ const plugins = [
   json(),
   commonjs(),
   esbuild({
-    minify: true,
+    minify: false,
path: rollup.config.js
user: login: ganchoradkov
body: ```suggestion
    minify: true,
```
created_at: 2025-05-14T09:41:04Z
author_association: MEMBER
diff_hunk: @@ -602,25 +608,28 @@ export class EthereumProvider implements IEthereumProvider {
     if (this.rpc.showQrModal) {
       let appKit;
       try {
-        const { createAppKit } = await import("@reown/appkit/core");
-        const { convertWCMToAppKitOptions } = await import("./wcmToAppKit");
-        const options = convertWCMToAppKitOptions({
-          ...this.rpc.qrModalOptions,
-          chains: [...new Set([...this.rpc.chains, ...this.rpc.optionalChains])],
-          metadata: this.rpc.metadata,
-          projectId: this.rpc.projectId,
-        });
+        if (isBrowser()) {
path: providers/ethereum-provider/src/EthereumProvider.ts
user: login: tomiir
body: What happens on mobile? 
Does this affect mobile apps with web views? Or are web views considered in is browser? 
created_at: 2025-05-14T09:41:56Z
author_association: CONTRIBUTOR
diff_hunk: @@ -10,7 +10,7 @@ const plugins = [
   json(),
   commonjs(),
   esbuild({
-    minify: true,
+    minify: false,
path: rollup.config.js
user: login: ganchoradkov
body: fixed
created_at: 2025-05-14T09:42:28Z
author_association: MEMBER
diff_hunk: @@ -602,25 +608,28 @@ export class EthereumProvider implements IEthereumProvider {
     if (this.rpc.showQrModal) {
       let appKit;
       try {
-        const { createAppKit } = await import("@reown/appkit/core");
-        const { convertWCMToAppKitOptions } = await import("./wcmToAppKit");
-        const options = convertWCMToAppKitOptions({
-          ...this.rpc.qrModalOptions,
-          chains: [...new Set([...this.rpc.chains, ...this.rpc.optionalChains])],
-          metadata: this.rpc.metadata,
-          projectId: this.rpc.projectId,
-        });
+        if (isBrowser()) {
path: providers/ethereum-provider/src/EthereumProvider.ts
user: login: ganchoradkov
body: it works fine on mobile, its widely used around the SDK
created_at: 2025-05-14T09:43:47Z
author_association: MEMBER
diff_hunk: @@ -1,8 +1,8 @@
 import type { AppKitOptions, CaipNetwork, CaipNetworkId } from "@reown/appkit";
 import type { WalletConnectModalConfig } from "./types";
-import { defineChain } from "@reown/appkit/networks";
 import type { AppKitNetwork } from "@reown/appkit/networks";
 import type { EthereumProviderOptions } from "./EthereumProvider";
+import type { Assign, ChainFormatters, Prettify } from "viem";
path: providers/ethereum-provider/src/wcmToAppKit.ts
user: login: ignaciosantise
body: is viem a dependency of the EP now?
created_at: 2025-05-14T12:56:39Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,8 +1,8 @@
 import type { AppKitOptions, CaipNetwork, CaipNetworkId } from "@reown/appkit";
 import type { WalletConnectModalConfig } from "./types";
-import { defineChain } from "@reown/appkit/networks";
 import type { AppKitNetwork } from "@reown/appkit/networks";
 import type { EthereumProviderOptions } from "./EthereumProvider";
+import type { Assign, ChainFormatters, Prettify } from "viem";
path: providers/ethereum-provider/src/wcmToAppKit.ts
user: login: ganchoradkov
body: it is already dep of `utils`
created_at: 2025-05-14T14:58:46Z
author_association: MEMBER
diff_hunk: @@ -1,10 +1,38 @@
 import { name, dependencies, peerDependencies } from "./package.json";
-import createConfig from "../../rollup.config";
-// @walletconnect/modal has dynamic imports, so we need to enable inlineDynamicImports
-export default createConfig(
-  name,
-  Object.keys({ ...dependencies, ...peerDependencies }),
-  { inlineDynamicImports: true },
-  { inlineDynamicImports: true },
-  { inlineDynamicImports: true },
+import createConfig, { input, plugins } from "../../rollup.config";
+import alias from "@rollup/plugin-alias";
+import path from "path";
+
+const options = { inlineDynamicImports: true };
+
+// keep `@reown/appkit/core` in the external dependencies, else the builds will balloon in size
+const externalDependencies = Object.keys({ ...dependencies, ...peerDependencies }).concat(
path: providers/ethereum-provider/rollup.config.js
user: login: tomiir
body: What impact does this have for web builds?
created_at: 2025-05-15T07:04:15Z
author_association: CONTRIBUTOR
diff_hunk: @@ -3,14 +3,16 @@ import { nodeResolve } from "@rollup/plugin-node-resolve";
 import commonjs from "@rollup/plugin-commonjs";
 import json from "@rollup/plugin-json";
 import visualizer from "rollup-plugin-visualizer";
+import alias from "@rollup/plugin-alias";
+import path from "path";
 
-const input = "./src/index.ts";
-const plugins = [
+export const input = "./src/index.ts";
+export const plugins = [
   nodeResolve({ preferBuiltins: false, browser: true }),
   json(),
   commonjs(),
   esbuild({
-    minify: true,
+    minify: false,
path: rollup.config.js
user: login: tomiir
body: Do we still need this?
created_at: 2025-05-15T07:06:05Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,10 +1,38 @@
 import { name, dependencies, peerDependencies } from "./package.json";
-import createConfig from "../../rollup.config";
-// @walletconnect/modal has dynamic imports, so we need to enable inlineDynamicImports
-export default createConfig(
-  name,
-  Object.keys({ ...dependencies, ...peerDependencies }),
-  { inlineDynamicImports: true },
-  { inlineDynamicImports: true },
-  { inlineDynamicImports: true },
+import createConfig, { input, plugins } from "../../rollup.config";
+import alias from "@rollup/plugin-alias";
+import path from "path";
+
+const options = { inlineDynamicImports: true };
+
+// keep `@reown/appkit/core` in the external dependencies, else the builds will balloon in size
+const externalDependencies = Object.keys({ ...dependencies, ...peerDependencies }).concat(
path: providers/ethereum-provider/rollup.config.js
user: login: ganchoradkov
body: none, setting all deps as `external` has always been the case but appkit was incorrectly included because the package is called `@reown/appkit` while the import internally was `@reown/appkit/core` thus being bundled
created_at: 2025-05-15T07:11:19Z
author_association: MEMBER
diff_hunk: @@ -3,14 +3,16 @@ import { nodeResolve } from "@rollup/plugin-node-resolve";
 import commonjs from "@rollup/plugin-commonjs";
 import json from "@rollup/plugin-json";
 import visualizer from "rollup-plugin-visualizer";
+import alias from "@rollup/plugin-alias";
+import path from "path";
 
-const input = "./src/index.ts";
-const plugins = [
+export const input = "./src/index.ts";
+export const plugins = [
   nodeResolve({ preferBuiltins: false, browser: true }),
   json(),
   commonjs(),
   esbuild({
-    minify: true,
+    minify: false,
path: rollup.config.js
user: login: ganchoradkov
body: good catch
created_at: 2025-05-15T07:11:44Z
author_association: MEMBER
diff_hunk: @@ -3,14 +3,16 @@ import { nodeResolve } from "@rollup/plugin-node-resolve";
 import commonjs from "@rollup/plugin-commonjs";
 import json from "@rollup/plugin-json";
 import visualizer from "rollup-plugin-visualizer";
+import alias from "@rollup/plugin-alias";
+import path from "path";
 
-const input = "./src/index.ts";
-const plugins = [
+export const input = "./src/index.ts";
+export const plugins = [
   nodeResolve({ preferBuiltins: false, browser: true }),
   json(),
   commonjs(),
   esbuild({
-    minify: true,
+    minify: false,
path: rollup.config.js
user: login: ganchoradkov
body: ```suggestion
    minify: true,
```
created_at: 2025-05-15T07:12:17Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,12 @@
+---
+"@walletconnect/ethereum-provider": patch
+"@walletconnect/utils": patch
+"@walletconnect/core": patch
+"@walletconnect/react-native-compat": patch
+"@walletconnect/sign-client": patch
+"@walletconnect/types": patch
+"@walletconnect/signer-connection": patch
+"@walletconnect/universal-provider": patch
+---
+
+Added polyfills so `ethereum-provider` can be used in React Native expo environments. The polyfills are required because `@reown/appkit` is now part of the bundle in place of the deprecated WCM
path: .changeset/upset-spies-lie.md
user: login: ganchoradkov
body: ```suggestion
Added new dedicated build of `ethereum-provider` for `react-native` that doesn't try to import `Appkit`
```
created_at: 2025-05-15T07:17:21Z
author_association: MEMBER
diff_hunk: @@ -621,6 +622,7 @@ export class EthereumProvider implements IEthereumProvider {
           manualWCControl: true,
         });
       } catch (e) {
+        console.warn(e);
path: providers/ethereum-provider/src/EthereumProvider.ts
user: login: ignaciosantise
body: is this console.warn ok?
created_at: 2025-05-15T18:29:03Z
author_association: CONTRIBUTOR
diff_hunk: @@ -621,6 +622,7 @@ export class EthereumProvider implements IEthereumProvider {
           manualWCControl: true,
         });
       } catch (e) {
+        console.warn(e);
path: providers/ethereum-provider/src/EthereumProvider.ts
user: login: ganchoradkov
body: yes, its ok
created_at: 2025-05-16T06:29:06Z
author_association: MEMBER

PR comments:
user: login: tomiir
created_at: 2025-05-14T09:45:08Z
body: Changeset? 
author_association: CONTRIBUTOR
user: login: ganchoradkov
created_at: 2025-05-14T09:46:07Z
body: > Changeset?

waiting for Nacho's 👍 
author_association: MEMBER
user: login: socket-security[bot]
created_at: 2025-05-15T06:17:16Z
body: **Review the following changes in direct dependencies.** Learn more about [Socket for GitHub](https://socket.dev?utm_medium=gh).

<table>
<thead>
<tr>
<th>Diff</th>
<th width="200px">Package</th>
<th align="center" width="100px">Supply Chain<br/>Security</th>
<th align="center" width="100px">Vulnerability</th>
<th align="center" width="100px">Quality</th>
<th align="center" width="100px">Maintenance</th>
<th align="center" width="100px">License</th>
</tr>
</thead>
<tbody>
<tr><td align="center"><a href="https://socket.dev/dashboard/org/WalletConnect/diff/11626090-f170-4f62-a9dd-74dfbb72a46b/b958ff70-3790-4333-8a76-ff6388bcca2d?tab=dependencies&dependency_item_key=15892463307"><img src="https://github-app-statics.socket.dev/diff-added.svg" title="Added" alt="Added" width="20" height="20"></a></td><td><a href="https://socket.dev/dashboard/org/WalletConnect/diff/11626090-f170-4f62-a9dd-74dfbb72a46b/b958ff70-3790-4333-8a76-ff6388bcca2d?tab=dependencies&dependency_item_key=15892463307">@​rollup/​plugin-alias@​5.1.1</a></td><td align="center"><a href="https://socket.dev/dashboard/org/WalletConnect/diff/11626090-f170-4f62-a9dd-74dfbb72a46b/b958ff70-3790-4333-8a76-ff6388bcca2d?tab=dependencies&dependency_item_key=15892463307"><img src="https://github-app-statics.socket.dev/score-100.svg" title="Supply Chain Security" width="40" height="40" alt="100"></a></td><td align="center"><a href="https://socket.dev/dashboard/org/WalletConnect/diff/11626090-f170-4f62-a9dd-74dfbb72a46b/b958ff70-3790-4333-8a76-ff6388bcca2d?tab=dependencies&dependency_item_key=15892463307"><img src="https://github-app-statics.socket.dev/score-100.svg" title="Vulnerability" width="40" height="40" alt="100"></a></td><td align="center"><a href="https://socket.dev/dashboard/org/WalletConnect/diff/11626090-f170-4f62-a9dd-74dfbb72a46b/b958ff70-3790-4333-8a76-ff6388bcca2d?tab=dependencies&dependency_item_key=15892463307"><img src="https://github-app-statics.socket.dev/score-100.svg" title="Quality" width="40" height="40" alt="100"></a></td><td align="center"><a href="https://socket.dev/dashboard/org/WalletConnect/diff/11626090-f170-4f62-a9dd-74dfbb72a46b/b958ff70-3790-4333-8a76-ff6388bcca2d?tab=dependencies&dependency_item_key=15892463307"><img src="https://github-app-statics.socket.dev/score-82.svg" title="Maintenance" width="40" height="40" alt="82"></a></td><td align="center"><a href="https://socket.dev/dashboard/org/WalletConnect/diff/11626090-f170-4f62-a9dd-74dfbb72a46b/b958ff70-3790-4333-8a76-ff6388bcca2d?tab=dependencies&dependency_item_key=15892463307"><img src="https://github-app-statics.socket.dev/score-100.svg" title="License" width="40" height="40" alt="100"></a></td></tr>
</tbody>
</table>

[View full report](https://socket.dev/dashboard/org/WalletConnect/diff/11626090-f170-4f62-a9dd-74dfbb72a46b/b958ff70-3790-4333-8a76-ff6388bcca2d?tab=dependencies)

<!-- overview-comment -->
author_association: NONE