diff --git a/package-lock.json b/package-lock.json index 62efc2221..8e941319b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -96,7 +96,6 @@ "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", @@ -1769,7 +1768,6 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -2001,7 +1999,6 @@ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "dev": true, "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } @@ -4523,7 +4520,6 @@ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -4687,7 +4683,6 @@ "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", "license": "MIT", - "peer": true, "engines": { "node": "^14.21.3 || >=16" }, @@ -5759,7 +5754,6 @@ "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -6391,7 +6385,6 @@ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10.0.0" }, @@ -6807,7 +6800,6 @@ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10.0.0" }, @@ -7162,7 +7154,6 @@ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10.0.0" }, @@ -8656,7 +8647,6 @@ "integrity": "sha512-CEEhCDmkvztd1zbgADsEQhmj9GyWOOGeW1hZD+gtwbBSF5YN1uofS/pex5MIh/VIqKRj+A2UnYWI1V+9+q/lyQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@solana/accounts": "3.0.3", "@solana/addresses": "3.0.3", @@ -10024,7 +10014,6 @@ "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -10190,6 +10179,7 @@ "integrity": "sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "remove-accents": "0.5.0" }, @@ -10207,6 +10197,7 @@ "integrity": "sha512-6PN65csiuTNfBMXqQUxQhCNdtm1rV+9kC9YwWAIKcaxAauq3Wu7p18j3gQY3YIBJU70jT/wzCCZ2uqto/vQgiQ==", "dev": true, "license": "MIT", + "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" @@ -10218,6 +10209,7 @@ "integrity": "sha512-wAHc/cgKzW7LZNFloThyHnV/AX9gTg3w5yAv0gvQHPZoCnepwqCMtzbuPbb2UvfvO32XZ46e8bPOYbfZhzVnnQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@tanstack/query-core": "5.90.7" }, @@ -11091,7 +11083,6 @@ "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -11201,7 +11192,6 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.0.tgz", "integrity": "sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==", "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~7.16.0" } @@ -11333,7 +11323,6 @@ "integrity": "sha512-6m1I5RmHBGTnUGS113G04DMu3CpSdxCAU/UvtjNWL4Nuf3MW9tQhiJqRlHzChIkhy6kZSAQmc+I1bcGjE3yNKg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.46.3", "@typescript-eslint/types": "8.46.3", @@ -11938,7 +11927,8 @@ "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@vue/eslint-config-typescript": { "version": "14.6.0", @@ -12228,7 +12218,6 @@ "integrity": "sha512-cG/xwQWsBEcKgRTkQVhH29cbpbs/TdcUJVFXCyri3ZknxhMyGv0YEjTcrNpRgt2SaswL1KrvslSNYKKo+5YEAg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "eventemitter3": "5.0.1", "mipd": "0.0.7", @@ -12788,7 +12777,6 @@ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10.0.0" }, @@ -13586,7 +13574,6 @@ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10.0.0" }, @@ -14349,7 +14336,6 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -14448,7 +14434,6 @@ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -15193,7 +15178,6 @@ "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", @@ -15759,6 +15743,16 @@ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", "license": "MIT" }, + "node_modules/brotli-wasm": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/brotli-wasm/-/brotli-wasm-3.0.1.tgz", + "integrity": "sha512-U3K72/JAi3jITpdhZBqzSUq+DUY697tLxOuFXB+FpAE/Ug+5C3VZrv4uA674EUZHxNAuQ9wETXNqQkxZD6oL4A==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=v18.0.0" + } + }, "node_modules/browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", @@ -15872,7 +15866,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.19", "caniuse-lite": "^1.0.30001751", @@ -16658,7 +16651,6 @@ "resolved": "https://registry.npmjs.org/color/-/color-5.0.3.tgz", "integrity": "sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==", "license": "MIT", - "peer": true, "dependencies": { "color-convert": "^3.1.3", "color-string": "^2.1.3" @@ -17337,7 +17329,6 @@ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==", "license": "MIT", - "peer": true, "dependencies": { "node-fetch": "^2.7.0" } @@ -18398,7 +18389,6 @@ "resolved": "https://registry.npmjs.org/eciesjs/-/eciesjs-0.4.16.tgz", "integrity": "sha512-dS5cbA9rA2VR4Ybuvhg6jvdmp46ubLn3E+px8cG/35aEDNclrqoCjg6mt0HYZ/M+OoESS3jSkCrqk1kWAEhWAw==", "license": "MIT", - "peer": true, "dependencies": { "@ecies/ciphers": "^0.2.4", "@noble/ciphers": "^1.3.0", @@ -18945,7 +18935,6 @@ "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -19035,7 +19024,6 @@ "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", - "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -19431,7 +19419,6 @@ "integrity": "sha512-SbR9ZBUFKgvWAbq3RrdCtWaW0IKm6wwUiApxf3BVTNfqUIo4IQQmreMg2iHFJJ6C/0wss3LXURBJ1OwS/MhFcQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "natural-compare": "^1.4.0", @@ -19977,8 +19964,7 @@ "version": "6.4.9", "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/eventemitter3": { "version": "5.0.1", @@ -23864,6 +23850,7 @@ "integrity": "sha512-uuPNLJkKN8NXAlZlQ6kmUF9qO+T6Kyd7oV4+/7yy8Jz6+MZNyhPq8EdLpdfnPVzUC8qSf1b4j1azKaGnFsjmsw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "acorn": "^8.5.0", "eslint-visitor-keys": "^3.0.0", @@ -23883,6 +23870,7 @@ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -23896,6 +23884,7 @@ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -23914,6 +23903,7 @@ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -26945,6 +26935,7 @@ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -27169,7 +27160,6 @@ "dev": true, "hasInstallScript": true, "license": "MIT", - "peer": true, "dependencies": { "@napi-rs/wasm-runtime": "0.2.4", "@yarnpkg/lockfile": "^1.1.0", @@ -28052,44 +28042,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ox": { - "version": "0.8.9", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.8.9.tgz", - "integrity": "sha512-8pDZzrfZ3EE/ubomc57Nf+ZEQzvtdDjJaW8/ygI8O026V8oVWV4+WwBRCaSP0IYc3Pi0fQCgpg9WDQjl9qN3yQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@adraffy/ens-normalize": "^1.11.0", - "@noble/ciphers": "^1.3.0", - "@noble/curves": "^1.9.1", - "@noble/hashes": "^1.8.0", - "@scure/bip32": "^1.7.0", - "@scure/bip39": "^1.6.0", - "abitype": "^1.0.8", - "eventemitter3": "5.0.1" - }, - "peerDependencies": { - "typescript": ">=5.4.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/ox/node_modules/@adraffy/ens-normalize": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.1.tgz", - "integrity": "sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==", - "license": "MIT", - "optional": true - }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -29219,7 +29171,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -30193,7 +30144,6 @@ "integrity": "sha512-yEPsovQfpxYfgWNhCfECjG5AQaO+K3dp6XERmOepyPDVqcJm+bjyCVO3pmU+nAPe0N5dDvekfGezt/EIiRe1TA==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -30870,6 +30820,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -31475,7 +31426,6 @@ "integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/auth-token": "^6.0.0", "@octokit/graphql": "^9.0.3", @@ -31895,7 +31845,8 @@ "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/remove-trailing-separator": { "version": "1.1.0", @@ -32278,7 +32229,6 @@ "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -32677,7 +32627,8 @@ "version": "0.26.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/schema-utils": { "version": "4.3.3", @@ -32705,7 +32656,6 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -33360,7 +33310,6 @@ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", "license": "MIT", - "peer": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", @@ -34351,7 +34300,6 @@ "integrity": "sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -34461,7 +34409,6 @@ "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "dev": true, "license": "MIT", - "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -35122,7 +35069,6 @@ "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -35516,7 +35462,6 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -35810,7 +35755,6 @@ "dev": true, "hasInstallScript": true, "license": "MIT", - "peer": true, "dependencies": { "napi-postinstall": "^0.3.0" }, @@ -36210,7 +36154,6 @@ "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", "dev": true, "license": "MIT", - "peer": true, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } @@ -36305,7 +36248,6 @@ "integrity": "sha512-Qik0o+DSy741TmkqmRfjq+0xpZBXi/Y6+fXZLn0xNF1z/waFMbE3rkivv5Zcf9RrMUp6zswf2J7sbh2KBlba5A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "derive-valtio": "0.1.0", "proxy-compare": "2.6.0", @@ -36348,7 +36290,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@noble/curves": "1.9.1", "@noble/hashes": "1.8.0", @@ -36455,7 +36396,6 @@ "integrity": "sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.25", "@vue/compiler-sfc": "3.5.25", @@ -36505,7 +36445,6 @@ "integrity": "sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "debug": "^4.4.0", "eslint-scope": "^8.2.0", @@ -36912,7 +36851,6 @@ "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", "dev": true, "license": "MIT", - "peer": true, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } @@ -37039,7 +36977,6 @@ "integrity": "sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -37934,7 +37871,6 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=8.3.0" }, @@ -38165,6 +38101,7 @@ "integrity": "sha512-E/+VitOorXSLiAqtTd7Yqax0/pAS3xaYMP+AUUJGOK1OZG3rhcj9fcJOM5HJ2VrP1FrStVCWr1muTfQCdj4tAA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "eslint-visitor-keys": "^3.0.0", "yaml": "^2.0.0" @@ -38182,6 +38119,7 @@ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -38429,7 +38367,6 @@ "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", "devOptional": true, "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } @@ -38730,7 +38667,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -38854,7 +38790,6 @@ "integrity": "sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.26", "@vue/compiler-sfc": "3.5.26", @@ -38915,6 +38850,7 @@ "xrpl": "^2.14.0" }, "devDependencies": { + "@base-org/account": "^2.5.1", "@coinbase/wallet-sdk": "^4.3.7", "@types/elliptic": "6.4.18", "@types/json-rpc-random-id": "^1.0.3", @@ -38932,12 +38868,16 @@ }, "peerDependencies": { "@babel/runtime": "^7.x", + "@base-org/account": "^2.5.1", "@coinbase/wallet-sdk": "^4.3.x", "react": ">=18", "viem": ">=2.29", "vue": "^3.x" }, "peerDependenciesMeta": { + "@base-org/account": { + "optional": true + }, "@coinbase/wallet-sdk": { "optional": true }, @@ -38952,6 +38892,24 @@ } } }, + "packages/no-modal/node_modules/@base-org/account": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@base-org/account/-/account-2.5.1.tgz", + "integrity": "sha512-3VhLcpuUByIXO1elzMSl6Hhn8ac4AKZaEjtHCLppN28Wq5nqWNiWxi1L6koSO8Obtebc6gq7lVVbJkv4X63p/g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@coinbase/cdp-sdk": "^1.0.0", + "brotli-wasm": "^3.0.0", + "clsx": "1.2.1", + "eventemitter3": "5.0.1", + "idb-keyval": "6.2.1", + "ox": "0.6.9", + "preact": "10.24.2", + "viem": "^2.31.7", + "zustand": "5.0.3" + } + }, "packages/no-modal/node_modules/@metamask/sdk": { "version": "0.34.0", "resolved": "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.34.0.tgz", @@ -39009,6 +38967,16 @@ "csstype": "^3.2.2" } }, + "packages/no-modal/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "packages/no-modal/node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -39032,12 +39000,52 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "license": "MIT" }, + "packages/no-modal/node_modules/ox": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.9.tgz", + "integrity": "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "packages/no-modal/node_modules/preact": { + "version": "10.24.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.2.tgz", + "integrity": "sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, "packages/no-modal/node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "license": "MIT", - "peer": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -39064,6 +39072,36 @@ "bin": { "uuid": "dist/bin/uuid" } + }, + "packages/no-modal/node_modules/zustand": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz", + "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } } } } diff --git a/packages/modal/src/assets/base-logo.svg b/packages/modal/src/assets/base-logo.svg new file mode 100644 index 000000000..3f5e94cd2 --- /dev/null +++ b/packages/modal/src/assets/base-logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/modal/src/connectors/base-account-connector/index.ts b/packages/modal/src/connectors/base-account-connector/index.ts new file mode 100644 index 000000000..ce015014c --- /dev/null +++ b/packages/modal/src/connectors/base-account-connector/index.ts @@ -0,0 +1 @@ +export * from "@web3auth/no-modal/connectors/base-account-connector"; diff --git a/packages/modal/src/ui/constants.ts b/packages/modal/src/ui/constants.ts index 56215d626..cb79aa26d 100644 --- a/packages/modal/src/ui/constants.ts +++ b/packages/modal/src/ui/constants.ts @@ -17,6 +17,8 @@ export const DEFAULT_LOGO_DARK = "https://images.web3auth.io/web3auth-logo-w-lig export const WALLET_CONNECT_LOGO = "https://images.web3auth.io/login-wallet-connect.svg"; +export const BASE_ACCOUNT_LOGO = "https://images.web3auth.io/login-base-account.svg"; + export const DEFAULT_PRIMARY_COLOR = "#0364FF"; export const DEFAULT_ON_PRIMARY_COLOR = "#FFFFFF"; diff --git a/packages/no-modal/package.json b/packages/no-modal/package.json index 7525cd346..c4978372a 100644 --- a/packages/no-modal/package.json +++ b/packages/no-modal/package.json @@ -33,12 +33,16 @@ ], "peerDependencies": { "@babel/runtime": "^7.x", + "@base-org/account": "^2.5.1", "@coinbase/wallet-sdk": "^4.3.x", "react": ">=18", "viem": ">=2.29", "vue": "^3.x" }, "peerDependenciesMeta": { + "@base-org/account": { + "optional": true + }, "@coinbase/wallet-sdk": { "optional": true }, @@ -92,6 +96,7 @@ "xrpl": "^2.14.0" }, "devDependencies": { + "@base-org/account": "^2.5.1", "@coinbase/wallet-sdk": "^4.3.7", "@types/elliptic": "6.4.18", "@types/json-rpc-random-id": "^1.0.3", @@ -139,6 +144,11 @@ "require": "./dist/lib.cjs/vue/wagmi/index.js", "types": "./dist/lib.cjs/types/vue/wagmi/index.d.ts" }, + "./connectors/base-account-connector": { + "import": "./dist/lib.esm/connectors/base-account-connector/index.js", + "require": "./dist/lib.cjs/connectors/base-account-connector/index.js", + "types": "./dist/lib.cjs/types/connectors/base-account-connector/index.d.ts" + }, "./connectors/coinbase-connector": { "import": "./dist/lib.esm/connectors/coinbase-connector/index.js", "require": "./dist/lib.cjs/connectors/coinbase-connector/index.js", @@ -172,6 +182,9 @@ "vue/solana": [ "./dist/lib.cjs/types/vue/solana/index.d.ts" ], + "connectors/base-account-connector": [ + "./dist/lib.cjs/types/connectors/base-account-connector/index.d.ts" + ], "connectors/coinbase-connector": [ "./dist/lib.cjs/types/connectors/coinbase-connector/index.d.ts" ], diff --git a/packages/no-modal/src/base/wallet/index.ts b/packages/no-modal/src/base/wallet/index.ts index e2c762d09..84aace0d6 100644 --- a/packages/no-modal/src/base/wallet/index.ts +++ b/packages/no-modal/src/base/wallet/index.ts @@ -10,6 +10,7 @@ export const SOLANA_CONNECTORS = { export const EVM_CONNECTORS = { COINBASE: "coinbase", + BASE_ACCOUNT: "base-account", ...MULTI_CHAIN_CONNECTORS, } as const; @@ -27,5 +28,6 @@ export const CONNECTOR_NAMES = { [MULTI_CHAIN_CONNECTORS.AUTH]: "Auth", [MULTI_CHAIN_CONNECTORS.WALLET_CONNECT_V2]: "Wallet Connect v2", [EVM_CONNECTORS.COINBASE]: "Coinbase Smart Wallet", + [EVM_CONNECTORS.BASE_ACCOUNT]: "Base Account", [EVM_CONNECTORS.METAMASK]: "MetaMask", }; diff --git a/packages/no-modal/src/connectors/base-account-connector/baseAccountConnector.ts b/packages/no-modal/src/connectors/base-account-connector/baseAccountConnector.ts new file mode 100644 index 000000000..4428b1ca6 --- /dev/null +++ b/packages/no-modal/src/connectors/base-account-connector/baseAccountConnector.ts @@ -0,0 +1,236 @@ +import type { AppMetadata, Preference } from "@base-org/account"; + +import { + BaseConnectorLoginParams, + BaseConnectorSettings, + CHAIN_NAMESPACES, + ChainNamespaceType, + CONNECTED_EVENT_DATA, + CONNECTOR_CATEGORY, + CONNECTOR_CATEGORY_TYPE, + CONNECTOR_EVENTS, + CONNECTOR_NAMESPACES, + CONNECTOR_STATUS, + CONNECTOR_STATUS_TYPE, + ConnectorFn, + ConnectorInitOptions, + ConnectorNamespaceType, + ConnectorParams, + IdentityTokenInfo, + IProvider, + UserInfo, + WALLET_CONNECTOR_TYPE, + WALLET_CONNECTORS, + WalletLoginError, + Web3AuthError, +} from "../../base"; +import { BaseEvmConnector } from "../base-evm-connector"; +import { getSiteIcon, getSiteName } from "../utils"; + +export type BaseAccountSDKOptions = Partial }>; + +export interface BaseAccountConnectorOptions extends BaseConnectorSettings { + connectorSettings?: BaseAccountSDKOptions; +} + +interface BaseAccountProvider { + request(args: { method: string; params?: unknown[] }): Promise; + on(event: string, listener: (...args: unknown[]) => void): void; + once(event: string, listener: (...args: unknown[]) => void): void; + removeAllListeners(): void; +} + +interface ProviderRpcError extends Error { + code: number; +} + +class BaseAccountConnector extends BaseEvmConnector { + readonly connectorNamespace: ConnectorNamespaceType = CONNECTOR_NAMESPACES.EIP155; + + readonly currentChainNamespace: ChainNamespaceType = CHAIN_NAMESPACES.EIP155; + + readonly type: CONNECTOR_CATEGORY_TYPE = CONNECTOR_CATEGORY.EXTERNAL; + + readonly name: WALLET_CONNECTOR_TYPE = WALLET_CONNECTORS.BASE_ACCOUNT; + + public status: CONNECTOR_STATUS_TYPE = CONNECTOR_STATUS.NOT_READY; + + private baseAccountProvider: BaseAccountProvider | null = null; + + private baseAccountOptions: BaseAccountSDKOptions = { appName: "Web3Auth" }; + + constructor(connectorOptions: BaseAccountConnectorOptions) { + super(connectorOptions); + this.baseAccountOptions = { ...this.baseAccountOptions, ...connectorOptions.connectorSettings }; + } + + get provider(): IProvider | null { + if (this.status !== CONNECTOR_STATUS.NOT_READY && this.baseAccountProvider) { + return this.baseAccountProvider as unknown as IProvider; + } + return null; + } + + set provider(_: IProvider | null) { + throw new Error("Not implemented"); + } + + async init(options: ConnectorInitOptions): Promise { + await super.init(options); + const chainConfig = this.coreOptions.chains.find((x) => x.chainId === options.chainId); + super.checkInitializationRequirements({ chainConfig }); + + const { createBaseAccountSDK } = await import("@base-org/account"); + + // Derive defaults from site metadata if available + let appName = this.baseAccountOptions.appName || "Web3Auth"; + let appLogoUrl = this.baseAccountOptions.appLogoUrl || ""; + + if (typeof window !== "undefined") { + if (!this.baseAccountOptions.appName) { + appName = getSiteName(window) || "Web3Auth"; + } + if (!this.baseAccountOptions.appLogoUrl) { + appLogoUrl = (await getSiteIcon(window)) || ""; + } + } + + // Derive appChainIds from all EIP155 chains + const appChainIds = this.coreOptions.chains + .filter((x) => x.chainNamespace === CHAIN_NAMESPACES.EIP155) + .map((x) => Number.parseInt(x.chainId, 16)); + + const sdk = createBaseAccountSDK({ + ...this.baseAccountOptions, + appName, + appLogoUrl: appLogoUrl || null, + appChainIds: this.baseAccountOptions.appChainIds || appChainIds, + }); + + this.baseAccountProvider = sdk.getProvider() as unknown as BaseAccountProvider; + this.status = CONNECTOR_STATUS.READY; + this.emit(CONNECTOR_EVENTS.READY, WALLET_CONNECTORS.BASE_ACCOUNT); + + try { + if (options.autoConnect) { + this.rehydrated = true; + const provider = await this.connect({ chainId: options.chainId, getIdentityToken: options.getIdentityToken }); + if (!provider) { + this.rehydrated = false; + throw WalletLoginError.connectionError("Failed to rehydrate."); + } + } + } catch (error) { + this.emit(CONNECTOR_EVENTS.REHYDRATION_ERROR, error as Web3AuthError); + } + } + + async connect({ chainId, getIdentityToken }: BaseConnectorLoginParams): Promise { + super.checkConnectionRequirements(); + if (!this.baseAccountProvider) throw WalletLoginError.notConnectedError("Connector is not initialized"); + + this.status = CONNECTOR_STATUS.CONNECTING; + this.emit(CONNECTOR_EVENTS.CONNECTING, { connector: WALLET_CONNECTORS.BASE_ACCOUNT }); + + try { + const chainConfig = this.coreOptions.chains.find((x) => x.chainId === chainId); + if (!chainConfig) throw WalletLoginError.connectionError("Chain config is not available"); + + await this.baseAccountProvider.request({ method: "eth_requestAccounts" }); + const currentChainId = await this.baseAccountProvider.request({ method: "eth_chainId" }); + + if (currentChainId !== chainConfig.chainId) { + await this.switchChain(chainConfig, true); + } + + this.status = CONNECTOR_STATUS.CONNECTED; + if (!this.provider) throw WalletLoginError.notConnectedError("Failed to connect with provider"); + + this.provider.once("disconnect", () => { + this.disconnect(); + }); + + let identityTokenInfo: IdentityTokenInfo | undefined; + + this.emit(CONNECTOR_EVENTS.CONNECTED, { + connector: WALLET_CONNECTORS.BASE_ACCOUNT, + reconnected: this.rehydrated, + provider: this.provider, + identityTokenInfo, + } as CONNECTED_EVENT_DATA); + + if (getIdentityToken) { + identityTokenInfo = await this.getIdentityToken(); + } + + return this.provider; + } catch (error) { + this.status = CONNECTOR_STATUS.READY; + if (!this.rehydrated) this.emit(CONNECTOR_EVENTS.ERRORED, error as Web3AuthError); + this.rehydrated = false; + if (error instanceof Web3AuthError) throw error; + throw WalletLoginError.connectionError("Failed to login with Base Account", error); + } + } + + async disconnect(options: { cleanup: boolean } = { cleanup: false }): Promise { + await super.disconnectSession(); + this.provider?.removeAllListeners(); + if (options.cleanup) { + this.status = CONNECTOR_STATUS.NOT_READY; + this.baseAccountProvider = null; + } else { + this.status = CONNECTOR_STATUS.READY; + } + await super.disconnect(); + } + + async getUserInfo(): Promise> { + if (!this.canAuthorize) throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first"); + return {}; + } + + public async switchChain(params: { chainId: string }, init = false): Promise { + super.checkSwitchChainRequirements(params, init); + try { + await this.baseAccountProvider?.request({ method: "wallet_switchEthereumChain", params: [{ chainId: params.chainId }] }); + } catch (switchError: unknown) { + if ((switchError as ProviderRpcError).code === 4902) { + const chainConfig = this.coreOptions.chains.find((x) => x.chainId === params.chainId); + if (!chainConfig) throw WalletLoginError.connectionError("Chain config is not available"); + await this.baseAccountProvider?.request({ + method: "wallet_addEthereumChain", + params: [ + { + chainId: chainConfig.chainId, + rpcUrls: [chainConfig.rpcTarget], + chainName: chainConfig.displayName, + nativeCurrency: { name: chainConfig.tickerName, symbol: chainConfig.ticker, decimals: chainConfig.decimals || 18 }, + blockExplorerUrls: [chainConfig.blockExplorerUrl], + iconUrls: [chainConfig.logo], + }, + ], + }); + return; + } + throw switchError; + } + } + + public async enableMFA(): Promise { + throw new Error("Method Not implemented"); + } + + public async manageMFA(): Promise { + throw new Error("Method Not implemented"); + } +} + +export const baseAccountConnector = (params?: BaseAccountSDKOptions): ConnectorFn => { + return ({ coreOptions }: ConnectorParams) => { + return new BaseAccountConnector({ + connectorSettings: params, + coreOptions, + }); + }; +}; diff --git a/packages/no-modal/src/connectors/base-account-connector/index.ts b/packages/no-modal/src/connectors/base-account-connector/index.ts new file mode 100644 index 000000000..3495a651e --- /dev/null +++ b/packages/no-modal/src/connectors/base-account-connector/index.ts @@ -0,0 +1 @@ +export * from "./baseAccountConnector"; diff --git a/packages/no-modal/src/connectors/index.ts b/packages/no-modal/src/connectors/index.ts index eb7b052dc..87b640ed8 100644 --- a/packages/no-modal/src/connectors/index.ts +++ b/packages/no-modal/src/connectors/index.ts @@ -1,4 +1,5 @@ export * from "./auth-connector"; +export * from "./base-account-connector"; export * from "./base-evm-connector"; export * from "./base-solana-connector"; export * from "./injected-evm-connector"; diff --git a/packages/no-modal/src/noModal.ts b/packages/no-modal/src/noModal.ts index 698608c00..0cae4d173 100644 --- a/packages/no-modal/src/noModal.ts +++ b/packages/no-modal/src/noModal.ts @@ -865,7 +865,11 @@ export class Web3AuthNoModal extends SafeEventEmitter imp const isAaSupportedForCurrentChain = this.currentChain?.chainNamespace === CHAIN_NAMESPACES.EIP155 && accountAbstractionConfig?.chains?.some((chain) => chain.chainId === this.currentChain?.chainId); - if (isAaSupportedForCurrentChain && (data.connector === WALLET_CONNECTORS.AUTH || this.coreOptions.useAAWithExternalWallet)) { + // Skip AA wrapping for Base Account connector as it's already a smart account provider + const shouldApplyAA = + data.connector === WALLET_CONNECTORS.AUTH || + (this.coreOptions.useAAWithExternalWallet && data.connector !== WALLET_CONNECTORS.BASE_ACCOUNT); + if (isAaSupportedForCurrentChain && shouldApplyAA) { const { accountAbstractionProvider, toEoaProvider } = await import("./providers/account-abstraction-provider"); // for embedded wallets, we use ws-embed provider which is AA provider, need to derive EOA provider const eoaProvider: IProvider = data.connector === WALLET_CONNECTORS.AUTH ? await toEoaProvider(provider) : provider;