diff --git a/.changeset/upset-trains-lick.md b/.changeset/upset-trains-lick.md new file mode 100644 index 0000000000..35d06b2f24 --- /dev/null +++ b/.changeset/upset-trains-lick.md @@ -0,0 +1,93 @@ +--- +"@wagmi/connectors": major +--- + +Migrated MetaMask connector from `@metamask/sdk` to the new `@metamask/connect-evm` package. + +## Breaking Changes + +### New Peer Dependency + +You must install `@metamask/connect-evm` as a peer dependency: + +```bash +npm install @metamask/connect-evm +# or +pnpm add @metamask/connect-evm +``` + +### Parameter Changes + +The connector parameters have been simplified and changed to align with the new SDK. + +**Removed options:** + +- `dappMetadata` - Use `dapp` instead +- `logging` - Use `debug` instead +- `headless` - Use `ui.headless` instead +- `checkInstallationImmediately` +- `checkInstallationOnAllCalls` +- `preferDesktop` - Use `ui.preferExtension` instead +- `openDeeplink` - Use `mobile.preferredOpenLink` instead +- `extensionOnly` +- `infuraAPIKey` +- `communicationLayerPreference` +- `communicationServerUrl` +- `enableAnalytics` +- `shouldShimWeb3` +- `storage` +- `timer` +- `i18nOptions` +- `modals` +- All communication layer options + +**New options:** + +- `dapp` - Dapp identification (`{ name: string, url?: string, iconUrl?: string }`) +- `debug` - Enable debug logging (boolean) +- `mobile` - Mobile-specific options: + - `preferredOpenLink` - Custom function to open deeplinks (required for React Native) + - `useDeeplink` - Use `metamask://` deeplink vs `https://metamask.app.link` universal link +- `ui` - UI configuration options: + - `headless` - Disable built-in UI + - `preferExtension` - Prefer browser extension over mobile + - `showInstallModal` - Show install modal when MetaMask is not installed +- `transport` - Transport configuration: + - `extensionId` - Extension ID for browser extension transport + +**Preserved options:** + +- `connectAndSign` - Shortcut to connect and sign a message +- `connectWith` - Connect with any RPC method + +### Migration Example + +**Before:** + +```ts +import { metaMask } from 'wagmi/connectors' + +metaMask({ + dappMetadata: { + name: 'My DApp', + url: 'https://mydapp.com', + iconUrl: 'https://mydapp.com/icon.png', + }, + logging: { sdk: true }, +}) +``` + +**After:** + +```ts +import { metaMask } from 'wagmi/connectors' + +metaMask({ + dapp: { + name: 'My DApp', + url: 'https://mydapp.com', + iconUrl: 'https://mydapp.com/icon.png', + }, + debug: true, +}) +``` diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 9c8e90839e..fb8066b725 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,6 +1,6 @@ @tmm @jxom /packages/connectors/src/gemini @mikelxc -/packages/connectors/src/metaMask @ecp4224 @omridan159 @abretonc7s @elefantel @BjornGunnarsson @EdouardBougon +/packages/connectors/src/metaMask @wenfix @ffmcgee725 @jiexi @adonesky1 @chakra-guy /packages/connectors/src/safe @DaniSomoza @dasanra @mikhailxyz @yagopv /packages/connectors/src/walletConnect @ganchoradkov @glitch-txs @ignaciosantise @tomiir diff --git a/package.json b/package.json index 59f93c31d3..b52396c010 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,7 @@ "ignoreDependencies": [ "@base-org/account", "@coinbase/wallet-sdk", - "@metamask/sdk", + "@metamask/connect-evm", "@safe-global/safe-apps-provider", "@safe-global/safe-apps-sdk", "@wagmi/core", diff --git a/packages/connectors/package.json b/packages/connectors/package.json index 04ade1fb01..46dfb8f414 100644 --- a/packages/connectors/package.json +++ b/packages/connectors/package.json @@ -37,7 +37,7 @@ "peerDependencies": { "@base-org/account": "^2.5.1", "@coinbase/wallet-sdk": "^4.3.6", - "@metamask/sdk": "~0.33.1", + "@metamask/connect-evm": "~0.8.0", "@safe-global/safe-apps-provider": "~0.18.6", "@safe-global/safe-apps-sdk": "^9.1.0", "@wagmi/core": "workspace:*", @@ -53,7 +53,7 @@ "@coinbase/wallet-sdk": { "optional": true }, - "@metamask/sdk": { + "@metamask/connect-evm": { "optional": true }, "@safe-global/safe-apps-provider": { @@ -75,7 +75,7 @@ "devDependencies": { "@base-org/account": "catalog:", "@coinbase/wallet-sdk": "catalog:", - "@metamask/sdk": "catalog:", + "@metamask/connect-evm": "catalog:", "@safe-global/safe-apps-provider": "catalog:", "@safe-global/safe-apps-sdk": "catalog:", "@wagmi/core": "workspace:*", diff --git a/packages/connectors/src/metaMask.ts b/packages/connectors/src/metaMask.ts index dd046c03e0..8dc8916e42 100644 --- a/packages/connectors/src/metaMask.ts +++ b/packages/connectors/src/metaMask.ts @@ -1,32 +1,15 @@ import type { - MetaMaskSDK, - MetaMaskSDKOptions, - RPC_URLS_MAP, - SDKProvider, -} from '@metamask/sdk' + createEVMClient, + EIP1193Provider, + MetamaskConnectEVM, +} from '@metamask/connect-evm' +import { ChainNotConfiguredError, createConnector } from '@wagmi/core' +import type { ExactPartial, OneOf, UnionCompute } from '@wagmi/core/internal' import { - ChainNotConfiguredError, - type Connector, - createConnector, - extractRpcUrls, - ProviderNotFoundError, -} from '@wagmi/core' -import type { - Compute, - ExactPartial, - OneOf, - RemoveUndefined, - UnionCompute, -} from '@wagmi/core/internal' -import { - type AddEthereumChainParameter, type Address, getAddress, - type Hex, - hexToNumber, numberToHex, type ProviderConnectInfo, - type ProviderRpcError, ResourceUnavailableRpcError, type RpcError, SwitchChainError, @@ -36,7 +19,7 @@ import { } from 'viem' export type MetaMaskParameters = UnionCompute< - WagmiMetaMaskSDKOptions & + ExactPartial> & OneOf< | { /* Shortcut to connect and sign a message */ @@ -50,66 +33,28 @@ export type MetaMaskParameters = UnionCompute< > > -type WagmiMetaMaskSDKOptions = Compute< - ExactPartial< - Omit< - MetaMaskSDKOptions, - | '_source' - | 'forceDeleteProvider' - | 'forceInjectProvider' - | 'injectProvider' - | 'useDeeplink' - | 'readonlyRPCMap' - > - > -> +type CreateEVMClientParameters = Parameters[0] metaMask.type = 'metaMask' as const export function metaMask(parameters: MetaMaskParameters = {}) { - type Provider = SDKProvider + type Provider = EIP1193Provider type Properties = { onConnect(connectInfo: ProviderConnectInfo): void onDisplayUri(uri: string): void + getInstance(): Promise } - type Listener = Parameters[1] - - let sdk: MetaMaskSDK - let provider: Provider | undefined - let providerPromise: Promise - let accountsChanged: Connector['onAccountsChanged'] | undefined - let chainChanged: Connector['onChainChanged'] | undefined - let connect: Connector['onConnect'] | undefined - let displayUri: ((uri: string) => void) | undefined - let disconnect: Connector['onDisconnect'] | undefined + let metamask: MetamaskConnectEVM | undefined + let metamaskPromise: Promise | undefined return createConnector((config) => ({ id: 'metaMaskSDK', name: 'MetaMask', rdns: ['io.metamask', 'io.metamask.mobile'], type: metaMask.type, - async setup() { - const provider = await this.getProvider() - if (provider?.on) { - if (!connect) { - connect = this.onConnect.bind(this) - provider.on('connect', connect as Listener) - } - - // We shouldn't need to listen for `'accountsChanged'` here since the `'connect'` event should suffice (and wallet shouldn't be connected yet). - // Some wallets, like MetaMask, do not implement the `'connect'` event and overload `'accountsChanged'` instead. - if (!accountsChanged) { - accountsChanged = this.onAccountsChanged.bind(this) - provider.on('accountsChanged', accountsChanged as Listener) - } - } - }, - async connect({ chainId, isReconnecting, withCapabilities } = {}) { - const provider = await this.getProvider() - if (!displayUri) { - displayUri = this.onDisplayUri - provider.on('display_uri', displayUri as Listener) - } + async connect({ chainId = 1, isReconnecting, withCapabilities } = {}) { + const instance = await this.getInstance() + const provider = instance.getProvider() let accounts: readonly Address[] = [] if (isReconnecting) accounts = await this.getAccounts().catch(() => []) @@ -118,25 +63,28 @@ export function metaMask(parameters: MetaMaskParameters = {}) { let signResponse: string | undefined let connectWithResponse: unknown | undefined if (!accounts?.length) { + const chainIds = config.chains.map((chain) => numberToHex(chain.id)) if (parameters.connectAndSign || parameters.connectWith) { if (parameters.connectAndSign) - signResponse = await sdk.connectAndSign({ - msg: parameters.connectAndSign, + signResponse = await instance.connectAndSign({ + chainIds, + message: parameters.connectAndSign, }) else if (parameters.connectWith) - connectWithResponse = await sdk.connectWith({ + connectWithResponse = await instance.connectWith({ + chainIds, method: parameters.connectWith.method, params: parameters.connectWith.params, }) accounts = await this.getAccounts() } else { - const requestedAccounts = (await sdk.connect()) as string[] - accounts = requestedAccounts.map((x) => getAddress(x)) + const result = await instance.connect({ chainIds }) + accounts = result.accounts.map((x) => getAddress(x)) } } // Switch to chain if provided - let currentChainId = (await this.getChainId()) as number + let currentChainId = await this.getChainId() if (chainId && currentChainId !== chainId) { const chain = await this.switchChain!({ chainId }).catch((error) => { if (error.code === UserRejectedRequestError.code) throw error @@ -145,43 +93,19 @@ export function metaMask(parameters: MetaMaskParameters = {}) { currentChainId = chain?.id ?? currentChainId } - if (displayUri) { - provider.removeListener('display_uri', displayUri) - displayUri = undefined - } - if (signResponse) provider.emit('connectAndSign', { accounts, - chainId: currentChainId, + chainId: numberToHex(currentChainId), signResponse, }) else if (connectWithResponse) provider.emit('connectWith', { accounts, - chainId: currentChainId, + chainId: numberToHex(currentChainId), connectWithResponse, }) - // Manage EIP-1193 event listeners - // https://eips.ethereum.org/EIPS/eip-1193#events - if (connect) { - provider.removeListener('connect', connect) - connect = undefined - } - if (!accountsChanged) { - accountsChanged = this.onAccountsChanged.bind(this) - provider.on('accountsChanged', accountsChanged as Listener) - } - if (!chainChanged) { - chainChanged = this.onChainChanged.bind(this) - provider.on('chainChanged', chainChanged as Listener) - } - if (!disconnect) { - disconnect = this.onDisconnect.bind(this) - provider.on('disconnect', disconnect as Listener) - } - return { // TODO(v3): Make `withCapabilities: true` default behavior accounts: (withCapabilities @@ -199,140 +123,82 @@ export function metaMask(parameters: MetaMaskParameters = {}) { } }, async disconnect() { - const provider = await this.getProvider() - - // Manage EIP-1193 event listeners - if (chainChanged) { - provider.removeListener('chainChanged', chainChanged) - chainChanged = undefined - } - if (disconnect) { - provider.removeListener('disconnect', disconnect) - disconnect = undefined - } - if (!connect) { - connect = this.onConnect.bind(this) - provider.on('connect', connect as Listener) - } - - await sdk.terminate() + const instance = await this.getInstance() + return instance.disconnect() }, async getAccounts() { - const provider = await this.getProvider() + const instance = await this.getInstance() + if (instance.accounts.length) + return instance.accounts.map((x) => getAddress(x)) + // Fallback to provider if SDK doesn't return accounts + const provider = instance.getProvider() const accounts = (await provider.request({ method: 'eth_accounts', })) as string[] return accounts.map((x) => getAddress(x)) }, async getChainId() { - const provider = await this.getProvider() - const chainId = - provider.getChainId() || - (await provider?.request({ method: 'eth_chainId' })) + const instance = await this.getInstance() + if (instance.getChainId()) return Number(instance.getChainId()) + // Fallback to provider if SDK doesn't return chainId + const provider = instance.getProvider() + const chainId = await provider.request({ method: 'eth_chainId' }) return Number(chainId) }, async getProvider() { - async function initProvider() { - // Unwrapping import for Vite compatibility. - // See: https://github.com/vitejs/vite/issues/9703 - const MetaMaskSDK = await (async () => { - const { default: SDK } = await (() => { - // safe webpack optional peer dependency dynamic import - try { - return import('@metamask/sdk') - } catch { - throw new Error('dependency "@metamask/sdk" not found') - } - })() - if (typeof SDK !== 'function' && typeof SDK.default === 'function') - return SDK.default - return SDK as unknown as typeof SDK.default - })() - - const readonlyRPCMap: RPC_URLS_MAP = {} - for (const chain of config.chains) - readonlyRPCMap[numberToHex(chain.id)] = extractRpcUrls({ - chain, - transports: config.transports, - })?.[0] - - sdk = new MetaMaskSDK({ - // Workaround cast since MetaMask SDK does not support `'exactOptionalPropertyTypes'` - ...(parameters as RemoveUndefined), - _source: 'wagmi', - forceDeleteProvider: false, - forceInjectProvider: false, - injectProvider: false, - readonlyRPCMap, - dappMetadata: { - ...parameters.dappMetadata, - // Test if name and url are set AND not empty - name: parameters.dappMetadata?.name - ? parameters.dappMetadata?.name - : 'wagmi', - url: parameters.dappMetadata?.url - ? parameters.dappMetadata?.url - : typeof window !== 'undefined' - ? window.location.origin - : 'https://wagmi.sh', - }, - useDeeplink: true, - }) - const result = await sdk.init() - // On initial load, sometimes `sdk.getProvider` does not return provider. - // https://github.com/wevm/wagmi/issues/4367 - // Use result of `init` call if available. - const provider = (() => { - if (result?.activeProvider) return result.activeProvider - return sdk.getProvider() - })() - if (!provider) throw new ProviderNotFoundError() - return provider - } - - if (!provider) { - if (!providerPromise) providerPromise = initProvider() - provider = await providerPromise - } - return provider! + const instance = await this.getInstance() + return instance.getProvider() }, async isAuthorized() { try { // MetaMask mobile provider sometimes fails to immediately resolve // JSON-RPC requests on page load - const timeout = 200 + const timeout = 10 const accounts = await withRetry( - () => withTimeout(() => this.getAccounts(), { timeout }), - { - delay: timeout + 1, - retryCount: 3, - }, + async () => + withTimeout( + async () => { + const accounts = await this.getAccounts() + if (!accounts.length) throw new Error('try again') + return accounts + }, + { timeout }, + ), + { delay: timeout + 1, retryCount: 3 }, ) - return !!accounts.length + return Boolean(accounts.length) } catch { return false } }, async switchChain({ addEthereumChainParameter, chainId }) { - const provider = await this.getProvider() - - const chain = config.chains.find((x) => x.id === chainId) + const chain = config.chains.find(({ id }) => id === Number(chainId)) if (!chain) throw new SwitchChainError(new ChainNotConfiguredError()) + const hexChainId = numberToHex(chainId) + try { - await provider.request({ - method: 'wallet_switchEthereumChain', - params: [{ chainId: numberToHex(chainId) }], + const instance = await this.getInstance() + await instance.switchChain({ + chainId: hexChainId, + chainConfiguration: { + blockExplorerUrls: addEthereumChainParameter?.blockExplorerUrls + ? [...addEthereumChainParameter.blockExplorerUrls] + : chain.blockExplorers?.default.url + ? [chain.blockExplorers.default.url] + : undefined, + chainId: hexChainId, + chainName: addEthereumChainParameter?.chainName ?? chain.name, + iconUrls: addEthereumChainParameter?.iconUrls, + nativeCurrency: + addEthereumChainParameter?.nativeCurrency ?? chain.nativeCurrency, + rpcUrls: addEthereumChainParameter?.rpcUrls + ? [...addEthereumChainParameter.rpcUrls] + : chain.rpcUrls.default?.http + ? [...chain.rpcUrls.default.http] + : undefined, + }, }) - - // During `'wallet_switchEthereumChain'`, MetaMask makes a `'net_version'` RPC call to the target chain. - // If this request fails, MetaMask does not emit the `'chainChanged'` event, but will still switch the chain. - // To counter this behavior, we request and emit the current chain ID to confirm the chain switch either via - // this callback or an externally emitted `'chainChanged'` event. - // https://github.com/MetaMask/metamask-extension/issues/24247 - await waitForChainIdToSync() - await sendAndWaitForChangeEvent(chainId) - return chain } catch (err) { const error = err as RpcError @@ -340,113 +206,13 @@ export function metaMask(parameters: MetaMaskParameters = {}) { if (error.code === UserRejectedRequestError.code) throw new UserRejectedRequestError(error) - // Indicates chain is not added to provider - if ( - error.code === 4902 || - // Unwrapping for MetaMask Mobile - // https://github.com/MetaMask/metamask-mobile/issues/2944#issuecomment-976988719 - (error as ProviderRpcError<{ originalError?: { code: number } }>) - ?.data?.originalError?.code === 4902 - ) { - try { - await provider.request({ - method: 'wallet_addEthereumChain', - params: [ - { - blockExplorerUrls: (() => { - const { default: blockExplorer, ...blockExplorers } = - chain.blockExplorers ?? {} - if (addEthereumChainParameter?.blockExplorerUrls) - return addEthereumChainParameter.blockExplorerUrls - if (blockExplorer) - return [ - blockExplorer.url, - ...Object.values(blockExplorers).map((x) => x.url), - ] - return - })(), - chainId: numberToHex(chainId), - chainName: addEthereumChainParameter?.chainName ?? chain.name, - iconUrls: addEthereumChainParameter?.iconUrls, - nativeCurrency: - addEthereumChainParameter?.nativeCurrency ?? - chain.nativeCurrency, - rpcUrls: (() => { - if (addEthereumChainParameter?.rpcUrls?.length) - return addEthereumChainParameter.rpcUrls - return [chain.rpcUrls.default?.http[0] ?? ''] - })(), - } satisfies AddEthereumChainParameter, - ], - }) - - await waitForChainIdToSync() - await sendAndWaitForChangeEvent(chainId) - - return chain - } catch (err) { - const error = err as RpcError - if (error.code === UserRejectedRequestError.code) - throw new UserRejectedRequestError(error) - throw new SwitchChainError(error) - } - } - throw new SwitchChainError(error) } - - async function waitForChainIdToSync() { - // On mobile, there is a race condition between the result of `'wallet_addEthereumChain'` and `'eth_chainId'`. - // To avoid this, we wait for `'eth_chainId'` to return the expected chain ID with a retry loop. - await withRetry( - async () => { - const value = hexToNumber( - // `'eth_chainId'` is cached by the MetaMask SDK side to avoid unnecessary deeplinks - (await provider.request({ method: 'eth_chainId' })) as Hex, - ) - // `value` doesn't match expected `chainId`, throw to trigger retry - if (value !== chainId) - throw new Error('User rejected switch after adding network.') - return value - }, - { - delay: 50, - retryCount: 20, // android device encryption is slower - }, - ) - } - - async function sendAndWaitForChangeEvent(chainId: number) { - await new Promise((resolve) => { - const listener = ((data) => { - if ('chainId' in data && data.chainId === chainId) { - config.emitter.off('change', listener) - resolve() - } - }) satisfies Parameters[1] - config.emitter.on('change', listener) - config.emitter.emit('change', { chainId }) - }) - } }, async onAccountsChanged(accounts) { - // Disconnect if there are no accounts - if (accounts.length === 0) { - // ... and using browser extension - if (sdk.isExtensionActive()) this.onDisconnect() - // FIXME(upstream): Mobile app sometimes emits invalid `accountsChanged` event with empty accounts array - else return - } - // Connect if emitter is listening for connect event (e.g. is disconnected and connects through wallet interface) - else if (config.emitter.listenerCount('connect')) { - const chainId = (await this.getChainId()).toString() - this.onConnect({ chainId }) - } - // Regular change event - else - config.emitter.emit('change', { - accounts: accounts.map((x) => getAddress(x)), - }) + config.emitter.emit('change', { + accounts: accounts.map((account) => getAddress(account)), + }) }, onChainChanged(chain) { const chainId = Number(chain) @@ -458,52 +224,67 @@ export function metaMask(parameters: MetaMaskParameters = {}) { const chainId = Number(connectInfo.chainId) config.emitter.emit('connect', { accounts, chainId }) - - const provider = await this.getProvider() - if (connect) { - provider.removeListener('connect', connect) - connect = undefined - } - if (!accountsChanged) { - accountsChanged = this.onAccountsChanged.bind(this) - provider.on('accountsChanged', accountsChanged as Listener) - } - if (!chainChanged) { - chainChanged = this.onChainChanged.bind(this) - provider.on('chainChanged', chainChanged as Listener) - } - if (!disconnect) { - disconnect = this.onDisconnect.bind(this) - provider.on('disconnect', disconnect as Listener) - } }, async onDisconnect(error) { - const provider = await this.getProvider() - // If MetaMask emits a `code: 1013` error, wait for reconnection before disconnecting // https://github.com/MetaMask/providers/pull/120 if (error && (error as RpcError<1013>).code === 1013) { - if (provider && !!(await this.getAccounts()).length) return + const provider = await this.getProvider() + if (provider && Boolean((await this.getAccounts()).length)) return } config.emitter.emit('disconnect') - - // Manage EIP-1193 event listeners - if (chainChanged) { - provider.removeListener('chainChanged', chainChanged) - chainChanged = undefined - } - if (disconnect) { - provider.removeListener('disconnect', disconnect) - disconnect = undefined - } - if (!connect) { - connect = this.onConnect.bind(this) - provider.on('connect', connect as Listener) - } }, onDisplayUri(uri) { config.emitter.emit('message', { type: 'display_uri', data: uri }) }, + async getInstance() { + if (!metamask) { + if (!metamaskPromise) { + const { createEVMClient } = await (async () => { + try { + return import('@metamask/connect-evm') + } catch { + throw new Error('dependency "@metamask/connect-evm" not found') + } + })() + const defaultDappParams = + typeof window === 'undefined' + ? { + name: 'wagmi', + } + : { + name: window.location.hostname, + url: window.location.href, + } + + metamaskPromise = createEVMClient({ + ...parameters, + api: { + supportedNetworks: Object.fromEntries( + config.chains.map((chain) => [ + numberToHex(chain.id), + chain.rpcUrls.default?.http[0] ?? '', + ]), + ), + }, + dapp: parameters.dapp ?? defaultDappParams, + eventHandlers: { + accountsChanged: this.onAccountsChanged.bind(this), + chainChanged: this.onChainChanged.bind(this), + connect: this.onConnect.bind(this), + disconnect: this.onDisconnect.bind(this), + displayUri: this.onDisplayUri.bind(this), + }, + analytics: { + integrationType: 'wagmi', + }, + ...(parameters.mobile && { mobile: parameters.mobile }), + }) + } + metamask = await metamaskPromise + } + return metamask + }, })) } diff --git a/playgrounds/tanstack-start/package.json b/playgrounds/tanstack-start/package.json index 88206577e6..99be4bb3bf 100644 --- a/playgrounds/tanstack-start/package.json +++ b/playgrounds/tanstack-start/package.json @@ -31,6 +31,6 @@ "@vitejs/plugin-react": "catalog:", "typescript": "^5.9.3", "vite": "catalog:", - "wrangler": "^4.57.0" + "wrangler": "^4.59.1" } } diff --git a/playgrounds/vite-react/package.json b/playgrounds/vite-react/package.json index f3064865ef..3a42912937 100644 --- a/playgrounds/vite-react/package.json +++ b/playgrounds/vite-react/package.json @@ -11,6 +11,7 @@ "@tanstack/query-sync-storage-persister": "^5.90.12", "@tanstack/react-query": "catalog:", "@tanstack/react-query-persist-client": "^5.90.12", + "cuer": "^0.0.3", "idb-keyval": "^6.2.1", "react": "catalog:", "react-dom": "catalog:", diff --git a/playgrounds/vite-react/src/App.tsx b/playgrounds/vite-react/src/App.tsx index c517157a20..2928afd39b 100644 --- a/playgrounds/vite-react/src/App.tsx +++ b/playgrounds/vite-react/src/App.tsx @@ -1,4 +1,5 @@ -import type { FormEvent } from 'react' +import { Cuer } from 'cuer' +import { type FormEvent, useState } from 'react' import { formatEther, type Hex, parseAbi, parseEther, stringify } from 'viem' import { type BaseError, @@ -86,8 +87,33 @@ function Connection() { function Connect() { const chainId = useChainId() - const connect = useConnect() const connectors = useConnectors() + const [qrUri, setQrUri] = useState() + + const connect = useConnect({ + mutation: { + onMutate(variables) { + const connector = variables.connector + if (connector && typeof connector !== 'function') { + if (connector.id === 'walletConnect') + connector.emitter.on('message', (message) => { + if (message.type !== 'display_uri') return + if (typeof message.data !== 'string') return + setQrUri(message.data) + }) + if (connector.id === 'metaMaskSDK') + connector.emitter.on('message', (message) => { + if (message.type !== 'display_uri') return + if (typeof message.data !== 'string') return + setQrUri(message.data) + }) + } + }, + onSettled() { + setQrUri(undefined) + }, + }, + }) return (
@@ -113,6 +139,23 @@ function Connect() { ))}
{connect.status}
{connect.error?.message}
+ + {qrUri && ( +
+ +
+ )}
) } diff --git a/playgrounds/vite-react/src/wagmi.ts b/playgrounds/vite-react/src/wagmi.ts index 20bb9fe1e7..0252f1595c 100644 --- a/playgrounds/vite-react/src/wagmi.ts +++ b/playgrounds/vite-react/src/wagmi.ts @@ -24,7 +24,7 @@ export const config = createConfig({ }), porto(), baseAccount(), - metaMask(), + metaMask({ ui: { headless: true } }), ], transports: { [mainnet.id]: http(), diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d01798bd5..5a6f68f735 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,9 +12,9 @@ catalogs: '@coinbase/wallet-sdk': specifier: 4.3.6 version: 4.3.6 - '@metamask/sdk': - specifier: 0.33.1 - version: 0.33.1 + '@metamask/connect-evm': + specifier: 0.8.0 + version: 0.8.0 '@nuxt/schema': specifier: 4.2.1 version: 4.2.1 @@ -189,7 +189,7 @@ importers: version: 5.9.3 viem: specifier: ^2.46.0 - version: 2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.1.11) + version: 2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.1.11) vite-plugin-react-fallback-throttle: specifier: ^0.1.1 version: 0.1.1(react-dom@19.2.0(react@19.2.0))(vite@7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1)) @@ -283,13 +283,13 @@ importers: devDependencies: '@base-org/account': specifier: 'catalog:' - version: 2.4.0(@types/react@19.2.3)(bufferutil@4.0.8)(react@19.2.0)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.0))(utf-8-validate@5.0.10)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(zod@3.25.76) + version: 2.4.0(@types/react@19.2.3)(bufferutil@4.0.8)(immer@9.0.21)(react@19.2.0)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.0))(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(zod@3.25.76) '@coinbase/wallet-sdk': specifier: 'catalog:' - version: 4.3.6(@types/react@19.2.3)(bufferutil@4.0.8)(react@19.2.0)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.0))(utf-8-validate@5.0.10)(zod@3.25.76) - '@metamask/sdk': + version: 4.3.6(@types/react@19.2.3)(bufferutil@4.0.8)(immer@9.0.21)(react@19.2.0)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.0))(utf-8-validate@5.0.10)(zod@3.25.76) + '@metamask/connect-evm': specifier: 'catalog:' - version: 0.33.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 0.8.0(@babel/runtime@7.28.4)(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@safe-global/safe-apps-provider': specifier: 'catalog:' version: 0.18.6(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) @@ -307,7 +307,7 @@ importers: version: 2.4.9(typescript@5.9.3) porto: specifier: 'catalog:' - version: 0.2.35(@types/react@19.2.3)(@wagmi/core@packages+core)(react@19.2.0)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.0))(viem@2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@packages+react) + version: 0.2.35(@types/react@19.2.3)(@wagmi/core@packages+core)(immer@9.0.21)(react@19.2.0)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.0))(viem@2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@packages+react) packages/core: dependencies: @@ -319,7 +319,7 @@ importers: version: 0.0.7(typescript@5.9.3) zustand: specifier: 5.0.0 - version: 5.0.0(@types/react@19.2.3)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)) + version: 5.0.0(@types/react@19.2.3)(immer@9.0.21)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)) devDependencies: '@tanstack/query-core': specifier: 'catalog:' @@ -523,7 +523,7 @@ importers: version: 5.49.2(react@19.2.0) next: specifier: ^16.1.5 - version: 16.1.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 16.1.6(@babel/core@7.28.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: specifier: 'catalog:' version: 19.2.0 @@ -572,7 +572,7 @@ importers: dependencies: '@solidjs/start': specifier: ^1.1.0 - version: 1.2.1(solid-js@1.9.10)(vinxi@0.5.10(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1))(vite@7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1)) + version: 1.2.1(solid-js@1.9.10)(vinxi@0.5.11(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1))(vite@7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1)) '@tanstack/solid-query': specifier: 'catalog:' version: 5.49.1(solid-js@1.9.10) @@ -587,7 +587,7 @@ importers: version: 2.44.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.1.11) vinxi: specifier: ^0.5.7 - version: 0.5.10(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1) + version: 0.5.11(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1) playgrounds/tanstack-start: dependencies: @@ -653,7 +653,7 @@ importers: specifier: 'catalog:' version: 7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1) wrangler: - specifier: '>=4.59.1' + specifier: ^4.59.1 version: 4.60.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) playgrounds/vite-core: @@ -701,6 +701,9 @@ importers: '@tanstack/react-query-persist-client': specifier: ^5.90.12 version: 5.90.12(@tanstack/react-query@5.49.2(react@19.2.0))(react@19.2.0) + cuer: + specifier: ^0.0.3 + version: 0.0.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) idb-keyval: specifier: ^6.2.1 version: 6.2.1 @@ -838,7 +841,7 @@ importers: version: 66.5.6(vite@7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1)) viem: specifier: ~2.46.0 - version: 2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + version: 2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) vitepress: specifier: 1.6.3 version: 1.6.3(@algolia/client-search@5.42.0)(@types/node@24.6.2)(@types/react@19.2.3)(axios@1.13.5)(change-case@5.4.4)(fuse.js@7.1.0)(idb-keyval@6.2.1)(postcss@8.5.6)(qrcode@1.5.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(terser@5.31.0)(typescript@5.9.3) @@ -863,9 +866,6 @@ packages: '@adraffy/ens-normalize@1.11.0': resolution: {integrity: sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==} - '@adraffy/ens-normalize@1.11.1': - resolution: {integrity: sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==} - '@algolia/abtesting@1.8.0': resolution: {integrity: sha512-Hb4BkGNnvgCj3F9XzqjiFTpA5IGkjOXwGAOV13qtc27l2qNF8X9rzSp1H5hu8XewlC0DzYtQtZZIOYzRZDyuXg==} engines: {node: '>= 14.0.0'} @@ -1284,6 +1284,14 @@ packages: resolution: {integrity: sha512-+IjbpMoyBKTuv2eqqz+wVCJRAFoBKj15z5oNE+Ycltsf4lpHaV6hQG7ZwMZdiT/K45E52VleEeXV3W0/ZmqDdA==} engines: {node: '>=18.0.0'} + '@cloudflare/kv-asset-handler@0.4.0': + resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} + engines: {node: '>=18.0.0'} + + '@cloudflare/kv-asset-handler@0.4.1': + resolution: {integrity: sha512-Nu8ahitGFFJztxUml9oD/DLb7Z28C8cd8F46IVQ7y5Btz575pvMY8AqZsXkX7Gds29eCKdMgIHjIvzskHgPSFg==} + engines: {node: '>=18.0.0'} + '@cloudflare/kv-asset-handler@0.4.2': resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} engines: {node: '>=18.0.0'} @@ -1425,8 +1433,8 @@ packages: '@dxup/unimport@0.1.2': resolution: {integrity: sha512-/B8YJGPzaYq1NbsQmwgP8EZqg40NpTw4ZB3suuI0TplbxKHeK94jeaawLmVhCv+YwUnOpiWEz9U6SeThku/8JQ==} - '@ecies/ciphers@0.2.1': - resolution: {integrity: sha512-ezMihhjW24VNK/2qQR7lH8xCQY24nk0XHF/kwJ1OuiiY5iEwQXOcKVSy47fSoHPRG8gVGXcK5SgtONDk5xMwtQ==} + '@ecies/ciphers@0.2.5': + resolution: {integrity: sha512-GalEZH4JgOMHYYcYmVqnFirFsjZHeoGMDt9IxEnM9F7GRUUyUksJ7Ou53L83WHJq3RWKD3AcBpo0iQh0oMpf8A==} engines: {bun: '>=1', deno: '>=2', node: '>=16'} peerDependencies: '@noble/ciphers': ^1.0.0 @@ -2624,53 +2632,105 @@ packages: engines: {node: '>=18'} hasBin: true - '@metamask/json-rpc-engine@8.0.2': - resolution: {integrity: sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==} - engines: {node: '>=16.0.0'} + '@metamask/analytics@0.4.0': + resolution: {integrity: sha512-QKjVu8RsbjeSfXXhRLvOVdWJ0jUrVdXFwa4I1VyoI7LapWS6T0apTSjM8nLJKN1NADbpSYm7ctyuTyaHlG/0yA==} + engines: {node: '>=20.19.0'} + + '@metamask/api-specs@0.14.0': + resolution: {integrity: sha512-pL3FADJcw/CA5Nsq6k4ePYxrNyscqVJh0XYXStvGPkw9yPdgIRAc+DuMuMMpaahYpKsmWWHpTAuvwVo9DuFXyg==} + engines: {node: ^18.20 || ^20.17 || >=22} + + '@metamask/approval-controller@8.0.0': + resolution: {integrity: sha512-ShuTSnPWJmvDNJc2uerrxRo2/eRsy+0kPxTCQYJ7AfW655LQ7YCazJfZbAhnCGjjxnjHcoIXu9ttdFxJ6384/g==} + engines: {node: ^18.18 || >=20} + + '@metamask/base-controller@9.0.0': + resolution: {integrity: sha512-uwGBb3bIFvfWPEBrRk+avV05eRLZKG0ouskKCiwfdRlFse4njpGGLLD0pO42iOLF7N3yUQ28+lO8reIrXwFP8A==} + engines: {node: ^18.18 || >=20} + + '@metamask/chain-agnostic-permission@1.4.0': + resolution: {integrity: sha512-807Y6JxqeY3tckSRDse96RmHV6atDsSPLD/x9KIync8ccFjOwSZlv0n4NA5Bsi0znjOogU0jEe5hPNIDTFzFRg==} + engines: {node: ^18.18 || >=20} + + '@metamask/connect-evm@0.8.0': + resolution: {integrity: sha512-pGBAXWvpCwyAhAy9eROeNJh299MdnKWMeknVQ63VouU8HrZEOLd8P+Lqk0zqdP2YB15NI7FLnTw4AHvHe8sTCg==} + engines: {node: '>=20.19.0'} + + '@metamask/connect-multichain@0.10.0': + resolution: {integrity: sha512-3n6MyNoY0J3gzdS846mIkpfawwP4eXF3BXwsYy/VA/lG4psJaTTblxVgp9DAivnkfxUE/SL1qTZh5j6SHDcZSQ==} + engines: {node: '>=20.19.0'} + peerDependencies: + '@react-native-async-storage/async-storage': ^1.23 - '@metamask/json-rpc-middleware-stream@7.0.2': - resolution: {integrity: sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg==} + '@metamask/controller-utils@11.18.0': + resolution: {integrity: sha512-V2BSgcG0nzHqqh53hL613XB+8K7ON3tmSWXAWZC/HUQ+X6SW6D3Z9qO3WNN1slUhGI2C+PhTrvnMzLyoGgv9ew==} + engines: {node: ^18.18 || >=20} + peerDependencies: + '@babel/runtime': ^7.0.0 + + '@metamask/eth-query@4.0.0': + resolution: {integrity: sha512-j2yPO2axYGyxwdqXRRhk2zBijt1Nd/xKCIXQkzvfWac0sKP0L9mSt1ZxMOe/sOF1SwS2R+NSaq+gsQDsQvrC4Q==} engines: {node: '>=16.0.0'} - '@metamask/object-multiplex@2.0.0': - resolution: {integrity: sha512-+ItrieVZie3j2LfYE0QkdW3dsEMfMEp419IGx1zyeLqjRZ14iQUPRO0H6CGgfAAoC0x6k2PfCAGRwJUA9BMrqA==} - engines: {node: ^16.20 || ^18.16 || >=20} + '@metamask/ethjs-unit@0.3.0': + resolution: {integrity: sha512-HZtg69ODXYS9+ovKUYofZuIAwq4fc2/MGazD4vBQRKWMhPu4ySdmgR0EuzbxEK4uhr18KA4pbL+mCYjyjGxY7w==} + engines: {node: '>=8.17.0', npm: '>=6'} + peerDependencies: + '@babel/runtime': ^7.0.0 + + '@metamask/json-rpc-engine@10.2.0': + resolution: {integrity: sha512-/aJrBeT3RblRRpESgNjHqXMLZPFPl14g6oVJnek5F1yW6iA7n/eeCd0smgKOJ95uYlFtGNzyxzX7Qy3IlpBv5w==} + engines: {node: ^18.18 || >=20} + + '@metamask/messenger@0.3.0': + resolution: {integrity: sha512-Wa9ctLwtD2B3ut9bJW0OLhoM4X2J7y7kuiWZbl+s8cuUBPmTS5IoUUUpvCDWOkucUsJ+6ZiqWMl2d5oSqLN28g==} + engines: {node: ^18.18 || >=20} + + '@metamask/mobile-wallet-protocol-core@0.4.0': + resolution: {integrity: sha512-rB1wMogvSUsFaxyH/eVUCczIkTxVaPPETlD/wgm+gw7EbWP0LlZPY7Bh+DICSfUCJ0zqnoFuwr77WNJvZ6ZiWw==} + engines: {node: '>=20'} + + '@metamask/mobile-wallet-protocol-dapp-client@0.3.0': + resolution: {integrity: sha512-rXStrvIa57a8OaeM+3HeR6Z9ETHOvmQi/9s6CLplDwH2hn2MWjI6WW3EUrxq2KGmGuhbO5Oo21ANnD23QKfduw==} + engines: {node: '>=20'} + + '@metamask/multichain-api-client@0.10.1': + resolution: {integrity: sha512-LsqO2SiDcTgOuXyVYEB0zgBaVNhryhP2tYI3L7tLa7PoeDqMkNIreFhDeu8jM5tPWkCimQvMwCkG3DF4P5dD3A==} + engines: {node: ^18.20 || ^20.17 || >=22} + + '@metamask/multichain-ui@0.4.0': + resolution: {integrity: sha512-CaUyPssiJ5bXP5YXBLadAbRwJ+c//cpzYCFS8P8Nq53Qa4lUVhViAzqvM4667SS3YClGNjNY0tWGyGbXkCmWHg==} + engines: {node: '>=20.19.0'} + + '@metamask/number-to-bn@1.7.1': + resolution: {integrity: sha512-qCN+Au4amvcVii2LdOJNndYhdmk5Lk9tlStJhKpZ8tGeYQDJTghqYXJuSUVPHvfl6FUfKY1i1Or2j2EbnEerSQ==} + engines: {node: '>=8.17.0', npm: '>=6'} '@metamask/onboarding@1.0.1': resolution: {integrity: sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ==} - '@metamask/providers@16.1.0': - resolution: {integrity: sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==} + '@metamask/permission-controller@12.2.0': + resolution: {integrity: sha512-QalBUyIuNBSFJ+Ra/GymTwW7msToxpBEhCY2Xa3Y03QkAYF4MqeFbyPMMNKyebf1gCvE9ps3Y8JGjaI7d17Q6g==} engines: {node: ^18.18 || >=20} - '@metamask/rpc-errors@6.2.1': - resolution: {integrity: sha512-VTgWkjWLzb0nupkFl1duQi9Mk8TGT9rsdnQg6DeRrYEFxtFOh0IF8nAwxM/4GWqDl6uIB06lqUBgUrAVWl62Bw==} - engines: {node: '>=16.0.0'} + '@metamask/rpc-errors@7.0.3': + resolution: {integrity: sha512-nrEaeBawm8yFU7hetJKok/CUs0tQsWtTqp3OLbFhPUMXYqU7uI5LAV5vi9o7rTjFkUyof7Nzbw5bea5+1ou+dg==} + engines: {node: ^18.20 || ^20.17 || >=22} '@metamask/safe-event-emitter@3.1.1': resolution: {integrity: sha512-ihb3B0T/wJm1eUuArYP4lCTSEoZsClHhuWyfo/kMX3m/odpqNcPfsz5O2A3NT7dXCAgWPGDQGPqygCpgeniKMw==} engines: {node: '>=12.0.0'} - '@metamask/sdk-analytics@0.0.5': - resolution: {integrity: sha512-fDah+keS1RjSUlC8GmYXvx6Y26s3Ax1U9hGpWb6GSY5SAdmTSIqp2CvYy6yW0WgLhnYhW+6xERuD0eVqV63QIQ==} - - '@metamask/sdk-communication-layer@0.33.1': - resolution: {integrity: sha512-0bI9hkysxcfbZ/lk0T2+aKVo1j0ynQVTuB3sJ5ssPWlz+Z3VwveCkP1O7EVu1tsVVCb0YV5WxK9zmURu2FIiaA==} - peerDependencies: - cross-fetch: ^4.0.0 - eciesjs: '*' - eventemitter2: ^6.4.9 - readable-stream: ^3.6.2 - socket.io-client: ^4.5.1 - - '@metamask/sdk-install-modal-web@0.32.1': - resolution: {integrity: sha512-MGmAo6qSjf1tuYXhCu2EZLftq+DSt5Z7fsIKr2P+lDgdTPWgLfZB1tJKzNcwKKOdf6q9Qmmxn7lJuI/gq5LrKw==} + '@metamask/superstruct@3.2.1': + resolution: {integrity: sha512-fLgJnDOXFmuVlB38rUN5SmU7hAFQcCjrg3Vrxz67KTY7YHFnSNEKvX4avmEBdOI0yTCxZjwMCFEqsC8k2+Wd3g==} + engines: {node: '>=16.0.0'} - '@metamask/sdk@0.33.1': - resolution: {integrity: sha512-1mcOQVGr9rSrVcbKPNVzbZ8eCl1K0FATsYH3WJ/MH4WcZDWGECWrXJPNMZoEAkLxWiMe8jOQBumg2pmcDa9zpQ==} + '@metamask/utils@11.9.0': + resolution: {integrity: sha512-wRnoSDD9jTWOge/+reFviJQANhS+uy8Y+OEwRanp5mQeGTjBFmK1r2cTOnei2UCZRV1crXHzeJVSFEoDDcgRbA==} + engines: {node: ^18.18 || ^20.14 || >=22} - '@metamask/utils@8.4.0': - resolution: {integrity: sha512-dbIc3C7alOe0agCuBHM1h71UaEaEqOk2W8rAtEn8QGz4haH2Qq7MoK6i7v2guzvkJVVh79c+QCzIqphC3KvrJg==} + '@metamask/utils@9.3.0': + resolution: {integrity: sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g==} engines: {node: '>=16.0.0'} '@mswjs/interceptors@0.35.9': @@ -3827,6 +3887,9 @@ packages: '@poppinss/colors@4.1.5': resolution: {integrity: sha512-FvdDqtcRCtz6hThExcFOgW0cWX+xwSMWcRuQe5ZEb2m7cVQOAVZOIMt+/v9RxGiD9/OY16qJBXK4CVKWAPalBw==} + '@poppinss/dumper@0.6.4': + resolution: {integrity: sha512-iG0TIdqv8xJ3Lt9O8DrPRxw1MRLjNpoqiSGU03P/wNLP/s0ra0udPJ1J2Tx5M0J3H/cVyEgpbn8xUKRY9j59kQ==} + '@poppinss/dumper@0.6.5': resolution: {integrity: sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==} @@ -4269,9 +4332,6 @@ packages: resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} - '@socket.io/component-emitter@3.1.2': - resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} - '@solana-program/system@0.8.1': resolution: {integrity: sha512-71U9Mzdpw8HQtfgfJSL5xKZbLMRnza2Llsfk7gGnmg2waqK+o8MMH4YNma8xXS1UmOBptXIiNvoZ3p7cmOVktg==} peerDependencies: @@ -4581,6 +4641,12 @@ packages: '@speed-highlight/core@1.2.12': resolution: {integrity: sha512-uilwrK0Ygyri5dToHYdZSjcvpS2ZwX0w5aSt3GCEN9hrjxWCoeV4Z2DTXuxjwbntaLQIEEAlCeNQss5SoHvAEA==} + '@speed-highlight/core@1.2.7': + resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==} + + '@spruceid/siwe-parser@2.1.0': + resolution: {integrity: sha512-tFQwY2oQLa4qvHE6npKsVgVdVLQOCGP1zJM3yjZOHut43LqCwdSwitZndFLrJHZLpqru9FnmYHRakvsPvrI+qA==} + '@standard-schema/spec@1.0.0': resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} @@ -4854,6 +4920,9 @@ packages: '@types/babel__traverse@7.20.2': resolution: {integrity: sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==} + '@types/bn.js@5.2.0': + resolution: {integrity: sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==} + '@types/braces@3.0.5': resolution: {integrity: sha512-SQFof9H+LXeWNz8wDe7oN5zu7ket0qwMu5vZubW4GCJ8Kkeh6nBWUz87+KTz/G3Kqsrp0j/W253XJb3KMEeg3w==} @@ -4878,6 +4947,9 @@ packages: '@types/deep-eql@4.0.2': resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + '@types/deep-freeze-strict@1.1.2': + resolution: {integrity: sha512-VvMETBojHvhX4f+ocYTySQlXMZfxKV3Jyb7iCWlWaC+exbedkv6Iv2bZZqI736qXjVguH6IH7bzwMBMfTT+zuQ==} + '@types/docker-modem@3.0.6': resolution: {integrity: sha512-yKpAGEuKRSS8wwx0joknWxsmLha78wNMe9R2S3UNsVOkZded8UqOrV8KoeDXoXsjndxwyF3eIhyClGbO1SEhEg==} @@ -4893,6 +4965,9 @@ packages: '@types/linkify-it@5.0.0': resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + '@types/lodash@4.17.23': + resolution: {integrity: sha512-RDvF6wTulMPjrNdCoYRC8gNR880JNGT8uB+REUpC2Ns4pRqQJhGz90wh7rgdXDPpCczF3VGktDuFGVnz8zP7HA==} + '@types/markdown-it@14.1.2': resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} @@ -5237,15 +5312,9 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@vue/compiler-core@3.5.24': - resolution: {integrity: sha512-eDl5H57AOpNakGNAkFDH+y7kTqrQpJkZFXhWZQGyx/5Wh7B1uQYvcWkvZi11BDhscPgj8N7XV3oRwiPnx1Vrig==} - '@vue/compiler-core@3.5.25': resolution: {integrity: sha512-vay5/oQJdsNHmliWoZfHPoVZZRmnSWhug0BYT34njkYTPqClh3DNWLkZNJBVSjsNMrg0CCrBfoKkjZQPM/QVUw==} - '@vue/compiler-dom@3.5.24': - resolution: {integrity: sha512-1QHGAvs53gXkWdd3ZMGYuvQFXHW4ksKWPG8HP8/2BscrbZ0brw183q2oNWjMrSWImYLHxHrx1ItBQr50I/q2zw==} - '@vue/compiler-dom@3.5.25': resolution: {integrity: sha512-4We0OAcMZsKgYoGlMjzYvaoErltdFI2/25wqanuTu+S4gismOTRTBPi4IASOjxWdzIwrYSjnqONfKvuqkXzE2Q==} @@ -5322,9 +5391,6 @@ packages: '@vue/shared@3.5.22': resolution: {integrity: sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==} - '@vue/shared@3.5.24': - resolution: {integrity: sha512-9cwHL2EsJBdi8NY22pngYYWzkTDhld6fAD6jlaeloNGciNSJL6bLpbxVgXl96X00Jtc6YWQv96YA/0sxex/k1A==} - '@vue/shared@3.5.25': resolution: {integrity: sha512-AbOPdQQnAnzs58H2FrrDxYj/TJfmeS2jdfEEhgiKINy+bnOANmVizIEgq1r+C5zsbs6l1CCQxtcj71rwNQ4jWg==} @@ -5658,6 +5724,9 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + apg-js@4.4.0: + resolution: {integrity: sha512-fefmXFknJmtgtNEXfPwZKYkMFX4Fyeyz+fNF6JWp87biGOPslJbCBVU158zvKRZfHBKnJDy8CMM40oLFGkXT8Q==} + archiver-utils@5.0.2: resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} engines: {node: '>= 14'} @@ -5726,6 +5795,9 @@ packages: async-lock@1.4.1: resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} + async-mutex@0.5.0: + resolution: {integrity: sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==} + async-sema@3.1.1: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} @@ -5746,10 +5818,6 @@ packages: peerDependencies: postcss: ^8.1.0 - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - axios-retry@4.5.0: resolution: {integrity: sha512-aR99oXhpEDGo0UuAlYcn2iGRds30k366Zfa05XWScR9QaQD4JYiP3/1Qt1u7YlefUOK+cn0CcwoL1oefavQUlQ==} peerDependencies: @@ -5841,6 +5909,9 @@ packages: big.js@6.2.2: resolution: {integrity: sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==} + bignumber.js@9.3.1: + resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -5956,14 +6027,6 @@ packages: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -5981,6 +6044,9 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + centrifuge@5.5.3: + resolution: {integrity: sha512-LPkWnsAxu7JaE5S738XiREzJIko3Pf/qnWb3kd0q/OR0OJONUbSdnZ5pKsEI2yFi/odQ89SYsHPhLuEeZFhp/g==} + chai@6.2.1: resolution: {integrity: sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==} engines: {node: '>=18'} @@ -6105,6 +6171,10 @@ packages: resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} engines: {node: '>=0.10.0'} + cockatiel@3.2.1: + resolution: {integrity: sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q==} + engines: {node: '>=16'} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -6228,13 +6298,21 @@ packages: cross-fetch@3.1.5: resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==} - cross-fetch@4.0.0: - resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} + cross-fetch@4.1.0: + resolution: {integrity: sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==} cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + crossws@0.2.4: + resolution: {integrity: sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg==} + peerDependencies: + uWebSockets.js: '*' + peerDependenciesMeta: + uWebSockets.js: + optional: true + crossws@0.3.5: resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} @@ -6308,13 +6386,19 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + cuer@0.0.3: + resolution: {integrity: sha512-f/UNxRMRCYtfLEGECAViByA3JNflZImOk11G9hwSd+44jvzrc99J35u5l+fbdQ2+ZG441GvOpaeGYBmWquZsbQ==} + peerDependencies: + react: '>=18' + react-dom: '>=18' + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + dataloader@1.4.0: resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} - date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} - dax-sh@0.43.2: resolution: {integrity: sha512-uULa1sSIHgXKGCqJ/pA0zsnzbHlVnuq7g8O2fkHokWFNwEGIhh5lAJlxZa1POG5En5ba7AU4KcBAvGQWMMf8rg==} deprecated: This package has moved to simply be 'dax' instead of 'dax-sh' @@ -6382,24 +6466,6 @@ packages: supports-color: optional: true - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -6423,6 +6489,9 @@ packages: dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + deep-freeze-strict@1.1.1: + resolution: {integrity: sha512-QemROZMM2IvhAcCFvahdX2Vbm4S/txeq5rFYU9fh4mQP79WTMW5c/HkQ2ICl1zuzcDZdPZ6zarDxQeQMsVYoNA==} + deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -6435,10 +6504,6 @@ packages: resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} engines: {node: '>=18'} - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} @@ -6599,8 +6664,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - eciesjs@0.4.12: - resolution: {integrity: sha512-DGejvMCihsRAmKRFQiL6KZDE34vWVd0gvXlykFq1aEzJy/rD65AVyAIUZKZOvgvaP9ATQRcHGEZV5DfgrgjA4w==} + eciesjs@0.4.17: + resolution: {integrity: sha512-TOOURki4G7sD1wDCjj7NfLaXZZ49dFOeEb5y39IXpb8p0hRzVvfvzZHOi5JcT+PpyAbi/Y+lxPb8eTag2WYH8w==} engines: {bun: '>=1', deno: '>=2', node: '>=16'} editorconfig@1.0.4: @@ -6642,13 +6707,6 @@ packages: end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - engine.io-client@6.5.3: - resolution: {integrity: sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==} - - engine.io-parser@5.2.2: - resolution: {integrity: sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==} - engines: {node: '>=10.0.0'} - enhanced-resolve@5.17.1: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} @@ -6765,8 +6823,8 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} - eth-rpc-errors@4.0.3: - resolution: {integrity: sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==} + eth-ens-namehash@2.0.8: + resolution: {integrity: sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==} ethereum-cryptography@2.2.1: resolution: {integrity: sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==} @@ -6775,9 +6833,6 @@ packages: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} - eventemitter2@6.4.9: - resolution: {integrity: sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==} - eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} @@ -6824,10 +6879,6 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - extension-port-stream@3.0.0: - resolution: {integrity: sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==} - engines: {node: '>=12.0.0'} - external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} @@ -6942,10 +6993,6 @@ packages: debug: optional: true - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} @@ -7152,9 +7199,6 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} @@ -7254,6 +7298,10 @@ packages: idb-keyval@6.2.1: resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==} + idna-uts46-hx@2.3.1: + resolution: {integrity: sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==} + engines: {node: '>=4.0.0'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -7278,6 +7326,9 @@ packages: image-meta@0.2.2: resolution: {integrity: sha512-3MOLanc3sb3LNGWQl1RlQlNWURE5g32aUphrDyFeCsxBTk08iE3VNe4CwsUZ0Qs1X+EfX0+r29Sxdpza4B+yRA==} + immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} @@ -7309,10 +7360,6 @@ packages: iron-webcrypto@1.2.1: resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} - is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} - is-arrayish@0.3.4: resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} @@ -7323,10 +7370,6 @@ packages: is-buffer@1.1.6: resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} @@ -7356,14 +7399,14 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-hex-prefixed@1.0.0: + resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} + engines: {node: '>=6.5.0', npm: '>=3'} + is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} @@ -7417,10 +7460,6 @@ packages: resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} engines: {node: '>=18'} - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - is-unicode-supported@2.1.0: resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} @@ -7523,6 +7562,9 @@ packages: resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} engines: {node: '>=14'} + js-sha3@0.5.7: + resolution: {integrity: sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -7542,6 +7584,9 @@ packages: engines: {node: '>=6'} hasBin: true + json-rpc-random-id@1.0.1: + resolution: {integrity: sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==} + json-stream-stringify@3.1.6: resolution: {integrity: sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==} engines: {node: '>=7.10.1'} @@ -7923,8 +7968,8 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - minimatch@10.1.1: - resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} + minimatch@10.0.3: + resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} engines: {node: 20 || >=22} minimatch@3.1.2: @@ -7996,9 +8041,6 @@ packages: ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -8301,9 +8343,6 @@ packages: engines: {node: ^14.16.0 || >=16.10.0} hasBin: true - obj-multiplex@1.0.0: - resolution: {integrity: sha512-0GNJAOsHoBHeNTvl5Vt6IWnpUEcc3uSRxzBri7EDyIcMgYvnY2JL2qdeV5zTMjWQX5OHcD5amcW2HFfDh0gjIA==} - object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -8394,8 +8433,8 @@ packages: typescript: optional: true - ox@0.12.1: - resolution: {integrity: sha512-uU0llpthaaw4UJoXlseCyBHmQ3bLrQmz9rRLIAUHqv46uHuae9SE+ukYBRIPVCnlEnHKuWjDUcDFHWx9gbGNoA==} + ox@0.12.4: + resolution: {integrity: sha512-+P+C7QzuwPV8lu79dOwjBKfB2CbnbEXe/hfyyrff1drrO1nOOj3Hc87svHfcW1yneRr3WXaKr6nz11nq+/DF9Q==} peerDependencies: typescript: '>=5.4.0' peerDependenciesMeta: @@ -8488,6 +8527,9 @@ packages: package-manager-detector@1.3.0: resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==} + pako@2.1.0: + resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + parse-ms@4.0.0: resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} engines: {node: '>=18'} @@ -8680,10 +8722,6 @@ packages: wagmi: optional: true - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - postcss-calc@10.1.1: resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==} engines: {node: ^18.12 || ^20.9 || >=22.0} @@ -9003,10 +9041,25 @@ packages: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} + punycode@2.1.0: + resolution: {integrity: sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==} + engines: {node: '>=6'} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + qr-code-styling@1.9.2: + resolution: {integrity: sha512-RgJaZJ1/RrXJ6N0j7a+pdw3zMBmzZU4VN2dtAZf8ZggCfRB5stEQ3IoDNGaNhYY3nnZKYlYSLl5YkfWN5dPutg==} + engines: {node: '>=18.18.0'} + + qr@0.5.4: + resolution: {integrity: sha512-gjVMHOt7CX+BQd7JLQ9fnS4kJK4Lj4u+Conq52tcCbW7YH3mATTtBbTMA+7cQ1rKOkDo61olFHJReawe+XFxIA==} + engines: {node: '>= 20.19.0'} + + qrcode-generator@1.5.2: + resolution: {integrity: sha512-pItrW0Z9HnDBnFmgiNrY1uxRdri32Uh9EjNYLPVC2zZ3ZRIIEqBoDgm4DkvDwNNDHTK7FNkmr8zAa77BYc9xNw==} + qrcode@1.5.3: resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==} engines: {node: '>=10.13.0'} @@ -9308,10 +9361,6 @@ packages: set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -9435,14 +9484,6 @@ packages: resolution: {integrity: sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g==} engines: {node: '>= 18'} - socket.io-client@4.7.5: - resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} - engines: {node: '>=10.0.0'} - - socket.io-parser@4.2.4: - resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} - engines: {node: '>=10.0.0'} - solid-js@1.9.10: resolution: {integrity: sha512-Coz956cos/EPDlhs6+jsdTxKuJDPT7B5SVIWgABwROyxjY7Xbr8wkzD68Et+NxnV7DLJ3nJdAC2r9InuV/4Jew==} @@ -9507,11 +9548,6 @@ packages: engines: {node: '>=20.16.0'} hasBin: true - srvx@0.10.1: - resolution: {integrity: sha512-A//xtfak4eESMWWydSRFUVvCTQbSwivnGCEf8YGPe2eHU0+Z6znfUTCPF0a7oV3sObSOcrXHlL6Bs9vVctfXdg==} - engines: {node: '>=20.16.0'} - hasBin: true - srvx@0.9.6: resolution: {integrity: sha512-5L4rT6qQqqb+xcoDoklUgCNdmzqJ6vbcDRwPVGRXewF55IJH0pqh0lQlrJ266ZWTKJ4mfeioqHQJeAYesS+RrQ==} engines: {node: '>=20.16.0'} @@ -9615,6 +9651,10 @@ packages: resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} engines: {node: '>=18'} + strip-hex-prefix@1.0.0: + resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} + engines: {node: '>=6.5.0', npm: '>=3'} + strip-json-comments@5.0.2: resolution: {integrity: sha512-4X2FR3UwhNUE9G49aIsJW5hRRR3GXGTBTZRMfv568O60ojM8HcWjV/VxAxCDW3SUND33O6ZY66ZuRcdkj73q2g==} engines: {node: '>=14.16'} @@ -9651,10 +9691,6 @@ packages: resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==} engines: {node: '>=16'} - superstruct@1.0.3: - resolution: {integrity: sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==} - engines: {node: '>=14.0.0'} - superstruct@2.0.2: resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} engines: {node: '>=14.0.0'} @@ -9711,6 +9747,7 @@ packages: tar@7.5.7: resolution: {integrity: sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==} engines: {node: '>=18'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me temp-dir@1.0.0: resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} @@ -9790,8 +9827,8 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} - tokenx@1.3.0: - resolution: {integrity: sha512-NLdXTEZkKiO0gZuLtMoZKjCXTREXeZZt8nnnNeyoXtNZAfG/GKGSbQtLU5STspc0rMSwcA+UJfWZkbNU01iKmQ==} + tokenx@1.1.0: + resolution: {integrity: sha512-KCjtiC2niPwTSuz4ktM82Ki5bjqBwYpssiHDsGr5BpejN/B3ksacRvrsdoxljdMIh2nCX78alnDkeemBmYUmTA==} totalist@3.0.1: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} @@ -9920,6 +9957,9 @@ packages: unenv@1.10.0: resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} + unenv@2.0.0-rc.21: + resolution: {integrity: sha512-Wj7/AMtE9MRnAXa6Su3Lk0LNCfqDYgfwVjwRFVum9U7wsto1imuHqk4kTm7Jni+5A0Hn7dttL6O/zjvUvoo+8A==} + unenv@2.0.0-rc.24: resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} @@ -10013,6 +10053,7 @@ packages: unplugin-vue-router@0.16.2: resolution: {integrity: sha512-lE6ZjnHaXfS2vFI/PSEwdKcdOo5RwAbCKUnPBIN9YwLgSWas3x+qivzQvJa/uxhKzJldE6WK43aDKjGj9Rij9w==} + deprecated: 'Merged into vuejs/router. Migrate: https://router.vuejs.org/guide/migration/v4-to-v5.html' peerDependencies: '@vue/compiler-sfc': ^3.5.17 vue-router: ^4.6.0 @@ -10168,6 +10209,9 @@ packages: uqr@0.1.2: resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -10193,13 +10237,14 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - uuid@10.0.0: resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} hasBin: true + uuid@11.1.0: + resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} + hasBin: true + uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -10208,6 +10253,9 @@ packages: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true + valid-url@1.0.9: + resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==} + validate-npm-package-name@5.0.1: resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -10262,16 +10310,16 @@ packages: typescript: optional: true - viem@2.46.0: - resolution: {integrity: sha512-6RSRSe41WneE7zouAALGzHSOx4uQn6ISJjswKeLxyOd+k/3gqvVm8K4J43ubAJPNSy9ZU8ygG7nKU+EhYf5RdQ==} + viem@2.46.3: + resolution: {integrity: sha512-2LJS+Hyh2sYjHXQtzfv1kU9pZx9dxFzvoU/ZKIcn0FNtOU0HQuIICuYdWtUDFHaGXbAdVo8J1eCvmjkL9JVGwg==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: typescript: optional: true - vinxi@0.5.10: - resolution: {integrity: sha512-qdxevpdm6ZhI4FPXyVpaMOnz0WfyeC0WWj4XUKjRetSNkPj0D45VHep5iv4nBxdc/2XLPBRMW3CNkn/yUMsYIg==} + vinxi@0.5.11: + resolution: {integrity: sha512-82Qm+EG/b2PRFBvXBbz1lgWBGcd9totIL6SJhnrZYfakjloTVG9+5l6gfO6dbCCtztm5pqWFzLY0qpZ3H3ww/w==} hasBin: true vite-dev-rpc@1.1.0: @@ -10660,9 +10708,6 @@ packages: resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} engines: {node: 20 || >=22} - webextension-polyfill@0.10.0: - resolution: {integrity: sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==} - webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -10693,10 +10738,6 @@ packages: which-module@2.0.0: resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} - which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} - engines: {node: '>= 0.4'} - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -10808,18 +10849,6 @@ packages: utf-8-validate: optional: true - ws@8.19.0: - resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - wsl-utils@0.1.0: resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} engines: {node: '>=18'} @@ -10828,9 +10857,9 @@ packages: resolution: {integrity: sha512-bx8Q1STctnNaaDymWnkfQLKofs0mGNN7rLLapJlGuV3VlvegD7Ls4ggMjE3aUSWItCCzU0PEv45lI87iSigiCA==} engines: {node: '>=20.0'} - xmlhttprequest-ssl@2.0.0: - resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} - engines: {node: '>=0.4.0'} + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} @@ -10893,6 +10922,9 @@ packages: youch@4.1.0-beta.10: resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} + youch@4.1.0-beta.11: + resolution: {integrity: sha512-sQi6PERyO/mT8w564ojOVeAlYTtVQmC2GaktQAf+IdI75/GKIggosBuvyVXvEV+FATAT6RbLdIjFoiIId4ozoQ==} + youch@4.1.0-beta.13: resolution: {integrity: sha512-3+AG1Xvt+R7M7PSDudhbfbwiyveW6B8PLBIwTyEC598biEYIjHhC89i6DBEvR0EZUjGY3uGSnC429HpIa2Z09g==} @@ -10954,8 +10986,6 @@ snapshots: '@adraffy/ens-normalize@1.11.0': {} - '@adraffy/ens-normalize@1.11.1': {} - '@algolia/abtesting@1.8.0': dependencies: '@algolia/client-common': 5.42.0 @@ -11293,14 +11323,14 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.5)': @@ -11365,17 +11395,17 @@ snapshots: '@balena/dockerignore@1.0.2': {} - '@base-org/account@2.4.0(@types/react@19.2.3)(bufferutil@4.0.8)(react@19.2.0)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.0))(utf-8-validate@5.0.10)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(zod@3.25.76)': + '@base-org/account@2.4.0(@types/react@19.2.3)(bufferutil@4.0.8)(immer@9.0.21)(react@19.2.0)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.0))(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(zod@3.25.76)': dependencies: - '@coinbase/cdp-sdk': 1.38.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@coinbase/cdp-sdk': 1.38.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@noble/hashes': 1.4.0 clsx: 1.2.1 eventemitter3: 5.0.1 idb-keyval: 6.2.1 ox: 0.6.9(typescript@5.9.3)(zod@3.25.76) preact: 10.24.2 - viem: 2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) - zustand: 5.0.3(@types/react@19.2.3)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)) + viem: 2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + zustand: 5.0.3(@types/react@19.2.3)(immer@9.0.21)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)) transitivePeerDependencies: - '@types/react' - bufferutil @@ -11575,6 +11605,14 @@ snapshots: human-id: 4.1.1 prettier: 2.8.8 + '@cloudflare/kv-asset-handler@0.4.0': + dependencies: + mime: 3.0.0 + + '@cloudflare/kv-asset-handler@0.4.1': + dependencies: + mime: 3.0.0 + '@cloudflare/kv-asset-handler@0.4.2': {} '@cloudflare/unenv-preset@2.11.0(unenv@2.0.0-rc.24)(workerd@1.20260120.0)': @@ -11637,11 +11675,11 @@ snapshots: '@cloudflare/workerd-windows-64@1.20260120.0': optional: true - '@coinbase/cdp-sdk@1.38.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + '@coinbase/cdp-sdk@1.38.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: - '@solana-program/system': 0.8.1(@solana/kit@3.0.3(typescript@5.9.3)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))) - '@solana-program/token': 0.6.0(@solana/kit@3.0.3(typescript@5.9.3)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))) - '@solana/kit': 3.0.3(typescript@5.9.3)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@solana-program/system': 0.8.1(@solana/kit@3.0.3(typescript@5.9.3)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))) + '@solana-program/token': 0.6.0(@solana/kit@3.0.3(typescript@5.9.3)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))) + '@solana/kit': 3.0.3(typescript@5.9.3)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) abitype: 1.0.6(typescript@5.9.3)(zod@3.25.76) axios: 1.13.5 @@ -11649,7 +11687,7 @@ snapshots: jose: 6.1.0 md5: 2.3.0 uncrypto: 0.1.3 - viem: 2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) zod: 3.25.76 transitivePeerDependencies: - bufferutil @@ -11660,7 +11698,7 @@ snapshots: - utf-8-validate - ws - '@coinbase/wallet-sdk@4.3.6(@types/react@19.2.3)(bufferutil@4.0.8)(react@19.2.0)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.0))(utf-8-validate@5.0.10)(zod@3.25.76)': + '@coinbase/wallet-sdk@4.3.6(@types/react@19.2.3)(bufferutil@4.0.8)(immer@9.0.21)(react@19.2.0)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.0))(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@noble/hashes': 1.4.0 clsx: 1.2.1 @@ -11668,8 +11706,8 @@ snapshots: idb-keyval: 6.2.1 ox: 0.6.9(typescript@5.9.3)(zod@3.25.76) preact: 10.24.2 - viem: 2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) - zustand: 5.0.3(@types/react@19.2.3)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)) + viem: 2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + zustand: 5.0.3(@types/react@19.2.3)(immer@9.0.21)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)) transitivePeerDependencies: - '@types/react' - bufferutil @@ -11734,7 +11772,7 @@ snapshots: '@dxup/unimport@0.1.2': {} - '@ecies/ciphers@0.2.1(@noble/ciphers@1.3.0)': + '@ecies/ciphers@0.2.5(@noble/ciphers@1.3.0)': dependencies: '@noble/ciphers': 1.3.0 @@ -12517,120 +12555,207 @@ snapshots: - encoding - supports-color - '@metamask/json-rpc-engine@8.0.2': + '@metamask/analytics@0.4.0': dependencies: - '@metamask/rpc-errors': 6.2.1 - '@metamask/safe-event-emitter': 3.1.1 - '@metamask/utils': 8.4.0 + openapi-fetch: 0.13.8 + + '@metamask/api-specs@0.14.0': {} + + '@metamask/approval-controller@8.0.0': + dependencies: + '@metamask/base-controller': 9.0.0 + '@metamask/messenger': 0.3.0 + '@metamask/rpc-errors': 7.0.3 + '@metamask/utils': 11.9.0 + nanoid: 3.3.11 transitivePeerDependencies: - supports-color - '@metamask/json-rpc-middleware-stream@7.0.2': + '@metamask/base-controller@9.0.0': dependencies: - '@metamask/json-rpc-engine': 8.0.2 - '@metamask/safe-event-emitter': 3.1.1 - '@metamask/utils': 8.4.0 - readable-stream: 3.6.2 + '@metamask/messenger': 0.3.0 + '@metamask/utils': 11.9.0 + immer: 9.0.21 transitivePeerDependencies: - supports-color - '@metamask/object-multiplex@2.0.0': + '@metamask/chain-agnostic-permission@1.4.0(@babel/runtime@7.28.4)': dependencies: - once: 1.4.0 - readable-stream: 3.6.2 + '@metamask/api-specs': 0.14.0 + '@metamask/controller-utils': 11.18.0(@babel/runtime@7.28.4) + '@metamask/permission-controller': 12.2.0(@babel/runtime@7.28.4) + '@metamask/rpc-errors': 7.0.3 + '@metamask/utils': 11.9.0 + lodash: 4.17.23 + transitivePeerDependencies: + - '@babel/runtime' + - supports-color - '@metamask/onboarding@1.0.1': + '@metamask/connect-evm@0.8.0(@babel/runtime@7.28.4)(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: + '@metamask/analytics': 0.4.0 + '@metamask/chain-agnostic-permission': 1.4.0(@babel/runtime@7.28.4) + '@metamask/connect-multichain': 0.10.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@metamask/utils': 11.9.0 + transitivePeerDependencies: + - '@babel/runtime' + - '@react-native-async-storage/async-storage' + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@metamask/connect-multichain@0.10.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@metamask/analytics': 0.4.0 + '@metamask/mobile-wallet-protocol-core': 0.4.0 + '@metamask/mobile-wallet-protocol-dapp-client': 0.3.0 + '@metamask/multichain-api-client': 0.10.1 + '@metamask/multichain-ui': 0.4.0 + '@metamask/onboarding': 1.0.1 + '@metamask/rpc-errors': 7.0.3 + '@metamask/utils': 11.9.0 + '@paulmillr/qr': 0.2.1 bowser: 2.11.0 + buffer: 6.0.3 + cross-fetch: 4.1.0 + eciesjs: 0.4.17 + eventemitter3: 5.0.1 + pako: 2.1.0 + uuid: 11.1.0 + ws: 8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate - '@metamask/providers@16.1.0': + '@metamask/controller-utils@11.18.0(@babel/runtime@7.28.4)': dependencies: - '@metamask/json-rpc-engine': 8.0.2 - '@metamask/json-rpc-middleware-stream': 7.0.2 - '@metamask/object-multiplex': 2.0.0 - '@metamask/rpc-errors': 6.2.1 - '@metamask/safe-event-emitter': 3.1.1 - '@metamask/utils': 8.4.0 - detect-browser: 5.3.0 - extension-port-stream: 3.0.0 + '@babel/runtime': 7.28.4 + '@metamask/eth-query': 4.0.0 + '@metamask/ethjs-unit': 0.3.0(@babel/runtime@7.28.4) + '@metamask/utils': 11.9.0 + '@spruceid/siwe-parser': 2.1.0 + '@types/bn.js': 5.2.0 + bignumber.js: 9.3.1 + bn.js: 5.2.1 + cockatiel: 3.2.1 + eth-ens-namehash: 2.0.8 fast-deep-equal: 3.1.3 - is-stream: 2.0.1 - readable-stream: 3.6.2 - webextension-polyfill: 0.10.0 + lodash: 4.17.23 transitivePeerDependencies: - supports-color - '@metamask/rpc-errors@6.2.1': + '@metamask/eth-query@4.0.0': dependencies: - '@metamask/utils': 8.4.0 - fast-safe-stringify: 2.1.1 + json-rpc-random-id: 1.0.1 + xtend: 4.0.2 + + '@metamask/ethjs-unit@0.3.0(@babel/runtime@7.28.4)': + dependencies: + '@babel/runtime': 7.28.4 + '@metamask/number-to-bn': 1.7.1 + bn.js: 5.2.1 + + '@metamask/json-rpc-engine@10.2.0': + dependencies: + '@metamask/rpc-errors': 7.0.3 + '@metamask/safe-event-emitter': 3.1.1 + '@metamask/utils': 11.9.0 + '@types/deep-freeze-strict': 1.1.2 + deep-freeze-strict: 1.1.1 + klona: 2.0.6 transitivePeerDependencies: - supports-color - '@metamask/safe-event-emitter@3.1.1': {} + '@metamask/messenger@0.3.0': {} - '@metamask/sdk-analytics@0.0.5': + '@metamask/mobile-wallet-protocol-core@0.4.0': dependencies: - openapi-fetch: 0.13.8 + async-mutex: 0.5.0 + centrifuge: 5.5.3 + eventemitter3: 5.0.1 + uuid: 11.1.0 - '@metamask/sdk-communication-layer@0.33.1(cross-fetch@4.0.0)(eciesjs@0.4.12)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + '@metamask/mobile-wallet-protocol-dapp-client@0.3.0': dependencies: - '@metamask/sdk-analytics': 0.0.5 - bufferutil: 4.0.8 - cross-fetch: 4.0.0 - date-fns: 2.30.0 - debug: 4.3.4 - eciesjs: 0.4.12 - eventemitter2: 6.4.9 - readable-stream: 3.6.2 - socket.io-client: 4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) - utf-8-validate: 5.0.10 - uuid: 8.3.2 + '@metamask/mobile-wallet-protocol-core': 0.4.0 + '@metamask/utils': 9.3.0 + uuid: 11.1.0 transitivePeerDependencies: - supports-color - '@metamask/sdk-install-modal-web@0.32.1': + '@metamask/multichain-api-client@0.10.1': {} + + '@metamask/multichain-ui@0.4.0': dependencies: '@paulmillr/qr': 0.2.1 + qr-code-styling: 1.9.2 - '@metamask/sdk@0.33.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@metamask/number-to-bn@1.7.1': + dependencies: + bn.js: 5.2.1 + strip-hex-prefix: 1.0.0 + + '@metamask/onboarding@1.0.1': dependencies: - '@babel/runtime': 7.28.4 - '@metamask/onboarding': 1.0.1 - '@metamask/providers': 16.1.0 - '@metamask/sdk-analytics': 0.0.5 - '@metamask/sdk-communication-layer': 0.33.1(cross-fetch@4.0.0)(eciesjs@0.4.12)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - '@metamask/sdk-install-modal-web': 0.32.1 - '@paulmillr/qr': 0.2.1 bowser: 2.11.0 - cross-fetch: 4.0.0 - debug: 4.3.4 - eciesjs: 0.4.12 - eth-rpc-errors: 4.0.3 - eventemitter2: 6.4.9 - obj-multiplex: 1.0.0 - pump: 3.0.0 - readable-stream: 3.6.2 - socket.io-client: 4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) - tslib: 2.8.1 - util: 0.12.5 - uuid: 8.3.2 + + '@metamask/permission-controller@12.2.0(@babel/runtime@7.28.4)': + dependencies: + '@metamask/approval-controller': 8.0.0 + '@metamask/base-controller': 9.0.0 + '@metamask/controller-utils': 11.18.0(@babel/runtime@7.28.4) + '@metamask/json-rpc-engine': 10.2.0 + '@metamask/messenger': 0.3.0 + '@metamask/rpc-errors': 7.0.3 + '@metamask/utils': 11.9.0 + '@types/deep-freeze-strict': 1.1.2 + deep-freeze-strict: 1.1.1 + immer: 9.0.21 + nanoid: 3.3.11 + transitivePeerDependencies: + - '@babel/runtime' + - supports-color + + '@metamask/rpc-errors@7.0.3': + dependencies: + '@metamask/utils': 11.9.0 + fast-safe-stringify: 2.1.1 + transitivePeerDependencies: + - supports-color + + '@metamask/safe-event-emitter@3.1.1': {} + + '@metamask/superstruct@3.2.1': {} + + '@metamask/utils@11.9.0': + dependencies: + '@ethereumjs/tx': 4.2.0 + '@metamask/superstruct': 3.2.1 + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 + '@types/debug': 4.1.7 + '@types/lodash': 4.17.23 + debug: 4.4.3 + lodash: 4.17.23 + pony-cause: 2.1.11 + semver: 7.7.3 + uuid: 9.0.1 transitivePeerDependencies: - - bufferutil - - encoding - supports-color - - utf-8-validate - '@metamask/utils@8.4.0': + '@metamask/utils@9.3.0': dependencies: '@ethereumjs/tx': 4.2.0 + '@metamask/superstruct': 3.2.1 '@noble/hashes': 1.8.0 '@scure/base': 1.2.6 '@types/debug': 4.1.7 debug: 4.4.3 pony-cause: 2.1.11 semver: 7.7.3 - superstruct: 1.0.3 uuid: 9.0.1 transitivePeerDependencies: - supports-color @@ -12868,9 +12993,10 @@ snapshots: std-env: 3.10.0 tinyexec: 1.0.2 ufo: 1.6.1 - youch: 4.1.0-beta.13 + youch: 4.1.0-beta.11 transitivePeerDependencies: - magicast + - uWebSockets.js '@nuxt/cli@3.30.0(magicast@0.5.1)': dependencies: @@ -12896,10 +13022,11 @@ snapshots: srvx: 0.9.6 std-env: 3.10.0 tinyexec: 1.0.2 - ufo: 1.6.1 + ufo: 1.6.3 youch: 4.1.0-beta.13 transitivePeerDependencies: - magicast + - uWebSockets.js '@nuxt/devalue@2.0.2': {} @@ -12975,7 +13102,7 @@ snapshots: vite-plugin-inspect: 11.3.3(@nuxt/kit@3.19.2(magicast@0.3.5))(vite@7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1)) vite-plugin-vue-tracer: 1.0.1(vite@7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.25(typescript@5.9.3)) which: 5.0.0 - ws: 8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color @@ -13016,7 +13143,7 @@ snapshots: vite-plugin-inspect: 11.3.3(@nuxt/kit@4.2.1(magicast@0.5.1))(vite@7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1)) vite-plugin-vue-tracer: 1.1.3(vite@7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.25(typescript@5.9.3)) which: 5.0.0 - ws: 8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color @@ -13098,7 +13225,7 @@ snapshots: scule: 1.3.0 semver: 7.7.3 tinyglobby: 0.2.15 - ufo: 1.6.1 + ufo: 1.6.3 unctx: 2.4.1 untyped: 2.0.0 transitivePeerDependencies: @@ -13127,7 +13254,7 @@ snapshots: pkg-types: 2.3.0 radix3: 1.1.2 std-env: 3.10.0 - ufo: 1.6.1 + ufo: 1.6.3 unctx: 2.4.1 unstorage: 1.17.2(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2) vue: 3.5.25(typescript@5.9.3) @@ -13164,6 +13291,7 @@ snapshots: - sqlite3 - supports-color - typescript + - uWebSockets.js - uploadthing - xml2js @@ -13248,7 +13376,7 @@ snapshots: rollup-plugin-visualizer: 6.0.3(rollup@4.53.3) std-env: 3.10.0 ufo: 1.6.1 - unenv: 2.0.0-rc.24 + unenv: 2.0.0-rc.21 vite: 7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1) vite-node: 3.2.4(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1) vite-plugin-checker: 0.10.3(@biomejs/biome@2.2.4)(typescript@5.9.3)(vite@7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.3(typescript@5.9.3)) @@ -13306,7 +13434,7 @@ snapshots: rollup-plugin-visualizer: 6.0.5(rollup@4.53.3) seroval: 1.4.2 std-env: 3.10.0 - ufo: 1.6.1 + ufo: 1.6.3 unenv: 2.0.0-rc.24 vite: 7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1) vite-node: 5.2.0(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1) @@ -13788,6 +13916,12 @@ snapshots: dependencies: kleur: 4.1.5 + '@poppinss/dumper@0.6.4': + dependencies: + '@poppinss/colors': 4.1.5 + '@sindresorhus/is': 7.1.0 + supports-color: 10.2.2 + '@poppinss/dumper@0.6.5': dependencies: '@poppinss/colors': 4.1.5 @@ -13834,7 +13968,7 @@ snapshots: dependencies: big.js: 6.2.2 dayjs: 1.11.13 - viem: 2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.22.4) + viem: 2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.22.4) transitivePeerDependencies: - bufferutil - typescript @@ -13845,7 +13979,7 @@ snapshots: dependencies: big.js: 6.2.2 dayjs: 1.11.13 - viem: 2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - bufferutil - typescript @@ -13858,7 +13992,7 @@ snapshots: '@reown/appkit-wallet': 1.7.8(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) '@walletconnect/universal-provider': 2.21.0(bufferutil@4.0.8)(db0@0.3.4)(ioredis@5.8.2)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) valtio: 1.13.2(@types/react@19.2.3)(react@19.2.0) - viem: 2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -14007,7 +14141,7 @@ snapshots: '@walletconnect/logger': 2.1.2 '@walletconnect/universal-provider': 2.21.0(bufferutil@4.0.8)(db0@0.3.4)(ioredis@5.8.2)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) valtio: 1.13.2(@types/react@19.2.3)(react@19.2.0) - viem: 2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -14061,7 +14195,7 @@ snapshots: '@walletconnect/universal-provider': 2.21.0(bufferutil@4.0.8)(db0@0.3.4)(ioredis@5.8.2)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) bs58: 6.0.0 valtio: 1.13.2(@types/react@19.2.3)(react@19.2.0) - viem: 2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -14276,7 +14410,7 @@ snapshots: '@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@safe-global/safe-gateway-typescript-sdk': 3.8.0 - viem: 2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - bufferutil - encoding @@ -14483,15 +14617,13 @@ snapshots: '@sindresorhus/merge-streams@4.0.0': {} - '@socket.io/component-emitter@3.1.2': {} - - '@solana-program/system@0.8.1(@solana/kit@3.0.3(typescript@5.9.3)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)))': + '@solana-program/system@0.8.1(@solana/kit@3.0.3(typescript@5.9.3)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)))': dependencies: - '@solana/kit': 3.0.3(typescript@5.9.3)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@solana/kit': 3.0.3(typescript@5.9.3)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - '@solana-program/token@0.6.0(@solana/kit@3.0.3(typescript@5.9.3)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)))': + '@solana-program/token@0.6.0(@solana/kit@3.0.3(typescript@5.9.3)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)))': dependencies: - '@solana/kit': 3.0.3(typescript@5.9.3)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@solana/kit': 3.0.3(typescript@5.9.3)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/accounts@3.0.3(typescript@5.9.3)': dependencies: @@ -14620,7 +14752,7 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/kit@3.0.3(typescript@5.9.3)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + '@solana/kit@3.0.3(typescript@5.9.3)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: '@solana/accounts': 3.0.3(typescript@5.9.3) '@solana/addresses': 3.0.3(typescript@5.9.3) @@ -14634,11 +14766,11 @@ snapshots: '@solana/rpc': 3.0.3(typescript@5.9.3) '@solana/rpc-parsed-types': 3.0.3(typescript@5.9.3) '@solana/rpc-spec-types': 3.0.3(typescript@5.9.3) - '@solana/rpc-subscriptions': 3.0.3(typescript@5.9.3)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@solana/rpc-subscriptions': 3.0.3(typescript@5.9.3)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/rpc-types': 3.0.3(typescript@5.9.3) '@solana/signers': 3.0.3(typescript@5.9.3) '@solana/sysvars': 3.0.3(typescript@5.9.3) - '@solana/transaction-confirmation': 3.0.3(typescript@5.9.3)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@solana/transaction-confirmation': 3.0.3(typescript@5.9.3)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/transaction-messages': 3.0.3(typescript@5.9.3) '@solana/transactions': 3.0.3(typescript@5.9.3) typescript: 5.9.3 @@ -14717,14 +14849,14 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/rpc-subscriptions-channel-websocket@3.0.3(typescript@5.9.3)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + '@solana/rpc-subscriptions-channel-websocket@3.0.3(typescript@5.9.3)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: '@solana/errors': 3.0.3(typescript@5.9.3) '@solana/functional': 3.0.3(typescript@5.9.3) '@solana/rpc-subscriptions-spec': 3.0.3(typescript@5.9.3) '@solana/subscribable': 3.0.3(typescript@5.9.3) typescript: 5.9.3 - ws: 8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@solana/rpc-subscriptions-spec@3.0.3(typescript@5.9.3)': dependencies: @@ -14734,7 +14866,7 @@ snapshots: '@solana/subscribable': 3.0.3(typescript@5.9.3) typescript: 5.9.3 - '@solana/rpc-subscriptions@3.0.3(typescript@5.9.3)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + '@solana/rpc-subscriptions@3.0.3(typescript@5.9.3)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: '@solana/errors': 3.0.3(typescript@5.9.3) '@solana/fast-stable-stringify': 3.0.3(typescript@5.9.3) @@ -14742,7 +14874,7 @@ snapshots: '@solana/promises': 3.0.3(typescript@5.9.3) '@solana/rpc-spec-types': 3.0.3(typescript@5.9.3) '@solana/rpc-subscriptions-api': 3.0.3(typescript@5.9.3) - '@solana/rpc-subscriptions-channel-websocket': 3.0.3(typescript@5.9.3)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@solana/rpc-subscriptions-channel-websocket': 3.0.3(typescript@5.9.3)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/rpc-subscriptions-spec': 3.0.3(typescript@5.9.3) '@solana/rpc-transformers': 3.0.3(typescript@5.9.3) '@solana/rpc-types': 3.0.3(typescript@5.9.3) @@ -14827,7 +14959,7 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/transaction-confirmation@3.0.3(typescript@5.9.3)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + '@solana/transaction-confirmation@3.0.3(typescript@5.9.3)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: '@solana/addresses': 3.0.3(typescript@5.9.3) '@solana/codecs-strings': 3.0.3(typescript@5.9.3) @@ -14835,7 +14967,7 @@ snapshots: '@solana/keys': 3.0.3(typescript@5.9.3) '@solana/promises': 3.0.3(typescript@5.9.3) '@solana/rpc': 3.0.3(typescript@5.9.3) - '@solana/rpc-subscriptions': 3.0.3(typescript@5.9.3)(ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@solana/rpc-subscriptions': 3.0.3(typescript@5.9.3)(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@solana/rpc-types': 3.0.3(typescript@5.9.3) '@solana/transaction-messages': 3.0.3(typescript@5.9.3) '@solana/transactions': 3.0.3(typescript@5.9.3) @@ -14934,11 +15066,11 @@ snapshots: dependencies: solid-js: 1.9.10 - '@solidjs/start@1.2.1(solid-js@1.9.10)(vinxi@0.5.10(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1))(vite@7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1))': + '@solidjs/start@1.2.1(solid-js@1.9.10)(vinxi@0.5.11(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1))(vite@7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@tanstack/server-functions-plugin': 1.121.21(vite@7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1)) - '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.10(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1)) - '@vinxi/server-components': 0.5.1(vinxi@0.5.10(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1)) + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1)) + '@vinxi/server-components': 0.5.1(vinxi@0.5.11(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1)) cookie-es: 2.0.0 defu: 6.1.4 error-stack-parser: 2.1.4 @@ -14950,7 +15082,7 @@ snapshots: source-map-js: 1.2.1 terracotta: 1.1.0(solid-js@1.9.10) tinyglobby: 0.2.15 - vinxi: 0.5.10(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1) + vinxi: 0.5.11(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1) vite-plugin-solid: 2.11.10(solid-js@1.9.10)(vite@7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1)) transitivePeerDependencies: - '@testing-library/jest-dom' @@ -14965,6 +15097,15 @@ snapshots: '@speed-highlight/core@1.2.12': {} + '@speed-highlight/core@1.2.7': {} + + '@spruceid/siwe-parser@2.1.0': + dependencies: + '@noble/hashes': 1.8.0 + apg-js: 4.4.0 + uri-js: 4.4.1 + valid-url: 1.0.9 + '@standard-schema/spec@1.0.0': {} '@streamparser/json-node@0.0.22': @@ -14990,7 +15131,7 @@ snapshots: '@tanstack/devtools-event-bus@0.4.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - ws: 8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -15386,6 +15527,10 @@ snapshots: dependencies: '@babel/types': 7.28.5 + '@types/bn.js@5.2.0': + dependencies: + '@types/node': 24.6.2 + '@types/braces@3.0.5': {} '@types/chai@5.2.2': @@ -15410,6 +15555,8 @@ snapshots: '@types/deep-eql@4.0.2': {} + '@types/deep-freeze-strict@1.1.2': {} + '@types/docker-modem@3.0.6': dependencies: '@types/node': 24.6.2 @@ -15429,6 +15576,8 @@ snapshots: '@types/linkify-it@5.0.0': {} + '@types/lodash@4.17.23': {} + '@types/markdown-it@14.1.2': dependencies: '@types/linkify-it': 5.0.0 @@ -15768,7 +15917,7 @@ snapshots: untun: 0.1.3 uqr: 0.1.2 - '@vinxi/plugin-directives@0.5.1(vinxi@0.5.10(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1))': + '@vinxi/plugin-directives@0.5.1(vinxi@0.5.11(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@babel/parser': 7.28.5 acorn: 8.15.0 @@ -15779,24 +15928,24 @@ snapshots: magicast: 0.2.11 recast: 0.23.11 tslib: 2.8.1 - vinxi: 0.5.10(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1) + vinxi: 0.5.11(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1) - '@vinxi/server-components@0.5.1(vinxi@0.5.10(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1))': + '@vinxi/server-components@0.5.1(vinxi@0.5.11(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1))': dependencies: - '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.10(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1)) + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1)) acorn: 8.15.0 acorn-loose: 8.5.2 acorn-typescript: 1.4.13(acorn@8.15.0) astring: 1.9.0 magicast: 0.2.11 recast: 0.23.11 - vinxi: 0.5.10(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1) + vinxi: 0.5.11(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1) '@vitejs/plugin-react@4.7.0(vite@7.2.2(@types/node@24.6.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1))': dependencies: - '@babel/core': 7.28.4 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.5) '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 @@ -15977,14 +16126,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vue/compiler-core@3.5.24': - dependencies: - '@babel/parser': 7.28.5 - '@vue/shared': 3.5.24 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - '@vue/compiler-core@3.5.25': dependencies: '@babel/parser': 7.28.5 @@ -15993,11 +16134,6 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.24': - dependencies: - '@vue/compiler-core': 3.5.24 - '@vue/shared': 3.5.24 - '@vue/compiler-dom@3.5.25': dependencies: '@vue/compiler-core': 3.5.25 @@ -16101,8 +16237,8 @@ snapshots: '@vue/language-core@3.1.3(typescript@5.9.3)': dependencies: '@volar/language-core': 2.4.23 - '@vue/compiler-dom': 3.5.24 - '@vue/shared': 3.5.24 + '@vue/compiler-dom': 3.5.25 + '@vue/shared': 3.5.25 alien-signals: 3.1.0 muggle-string: 0.4.1 path-browserify: 1.0.1 @@ -16134,8 +16270,6 @@ snapshots: '@vue/shared@3.5.22': {} - '@vue/shared@3.5.24': {} - '@vue/shared@3.5.25': {} '@vue/test-utils@2.4.6': @@ -16853,6 +16987,8 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 + apg-js@4.4.0: {} + archiver-utils@5.0.2: dependencies: glob: 10.5.0 @@ -16941,6 +17077,10 @@ snapshots: async-lock@1.4.1: {} + async-mutex@0.5.0: + dependencies: + tslib: 2.8.1 + async-sema@3.1.1: {} async@3.2.5: {} @@ -16959,10 +17099,6 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - axios-retry@4.5.0(axios@1.13.5): dependencies: axios: 1.13.5 @@ -17058,6 +17194,8 @@ snapshots: big.js@6.2.2: {} + bignumber.js@9.3.1: {} + binary-extensions@2.3.0: {} bindings@1.5.0: @@ -17145,6 +17283,7 @@ snapshots: bufferutil@4.0.8: dependencies: node-gyp-build: 4.6.0 + optional: true buildcheck@0.0.7: optional: true @@ -17218,18 +17357,6 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - camelcase@5.3.1: {} camelcase@8.0.0: {} @@ -17245,6 +17372,11 @@ snapshots: ccount@2.0.1: {} + centrifuge@5.5.3: + dependencies: + events: 3.3.0 + protobufjs: 7.5.4 + chai@6.2.1: {} chalk@4.1.2: @@ -17378,6 +17510,8 @@ snapshots: cluster-key-slot@1.1.2: {} + cockatiel@3.2.1: {} + color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -17482,7 +17616,7 @@ snapshots: transitivePeerDependencies: - encoding - cross-fetch@4.0.0: + cross-fetch@4.1.0: dependencies: node-fetch: 2.7.0 transitivePeerDependencies: @@ -17494,6 +17628,8 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + crossws@0.2.4: {} + crossws@0.3.5: dependencies: uncrypto: 0.1.3 @@ -17618,11 +17754,15 @@ snapshots: csstype@3.1.3: {} - dataloader@1.4.0: {} - - date-fns@2.30.0: + cuer@0.0.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3): dependencies: - '@babel/runtime': 7.28.4 + qr: 0.5.4 + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + optionalDependencies: + typescript: 5.9.3 + + dataloader@1.4.0: {} dax-sh@0.43.2: dependencies: @@ -17643,14 +17783,6 @@ snapshots: dependencies: ms: 2.0.0 - debug@4.3.4: - dependencies: - ms: 2.1.2 - - debug@4.3.7: - dependencies: - ms: 2.1.3 - debug@4.4.3: dependencies: ms: 2.1.3 @@ -17665,6 +17797,8 @@ snapshots: dedent@0.7.0: {} + deep-freeze-strict@1.1.1: {} + deepmerge@4.3.1: {} default-browser-id@5.0.0: {} @@ -17674,12 +17808,6 @@ snapshots: bundle-name: 4.1.0 default-browser-id: 5.0.0 - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - define-lazy-prop@2.0.0: {} define-lazy-prop@3.0.0: {} @@ -17820,9 +17948,9 @@ snapshots: eastasianwidth@0.2.0: {} - eciesjs@0.4.12: + eciesjs@0.4.17: dependencies: - '@ecies/ciphers': 0.2.1(@noble/ciphers@1.3.0) + '@ecies/ciphers': 0.2.5(@noble/ciphers@1.3.0) '@noble/ciphers': 1.3.0 '@noble/curves': 1.9.7 '@noble/hashes': 1.8.0 @@ -17861,20 +17989,6 @@ snapshots: dependencies: once: 1.4.0 - engine.io-client@6.5.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): - dependencies: - '@socket.io/component-emitter': 3.1.2 - debug: 4.3.7 - engine.io-parser: 5.2.2 - ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) - xmlhttprequest-ssl: 2.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - engine.io-parser@5.2.2: {} - enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 @@ -18087,9 +18201,10 @@ snapshots: etag@1.8.1: {} - eth-rpc-errors@4.0.3: + eth-ens-namehash@2.0.8: dependencies: - fast-safe-stringify: 2.1.1 + idna-uts46-hx: 2.3.1 + js-sha3: 0.5.7 ethereum-cryptography@2.2.1: dependencies: @@ -18100,8 +18215,6 @@ snapshots: event-target-shim@5.0.1: {} - eventemitter2@6.4.9: {} - eventemitter3@4.0.7: {} eventemitter3@5.0.1: {} @@ -18157,11 +18270,6 @@ snapshots: extend@3.0.2: {} - extension-port-stream@3.0.0: - dependencies: - readable-stream: 4.5.2 - webextension-polyfill: 0.10.0 - external-editor@3.1.0: dependencies: chardet: 0.7.0 @@ -18267,10 +18375,6 @@ snapshots: follow-redirects@1.15.11: {} - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - foreground-child@3.1.1: dependencies: cross-spawn: 7.0.6 @@ -18495,7 +18599,7 @@ snapshots: h3@2.0.1-rc.7: dependencies: rou3: 0.7.12 - srvx: 0.10.1 + srvx: 0.10.0 happy-dom@20.0.10: dependencies: @@ -18531,10 +18635,6 @@ snapshots: has-flag@4.0.0: {} - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - has-symbols@1.1.0: {} has-tostringtag@1.0.2: @@ -18643,6 +18743,10 @@ snapshots: idb-keyval@6.2.1: {} + idna-uts46-hx@2.3.1: + dependencies: + punycode: 2.1.0 + ieee754@1.2.1: {} ignore-walk@5.0.1: @@ -18659,6 +18763,8 @@ snapshots: image-meta@0.2.2: {} + immer@9.0.21: {} + import-meta-resolve@4.2.0: {} impound@1.0.0: @@ -18710,11 +18816,6 @@ snapshots: iron-webcrypto@1.2.1: {} - is-arguments@1.1.1: - dependencies: - call-bind: 1.0.8 - has-tostringtag: 1.0.2 - is-arrayish@0.3.4: {} is-binary-path@2.1.0: @@ -18723,8 +18824,6 @@ snapshots: is-buffer@1.1.6: {} - is-callable@1.2.7: {} - is-core-module@2.13.1: dependencies: hasown: 2.0.2 @@ -18743,14 +18842,12 @@ snapshots: is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.0.10: - dependencies: - has-tostringtag: 1.0.2 - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 + is-hex-prefixed@1.0.0: {} + is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 @@ -18788,10 +18885,6 @@ snapshots: is-stream@4.0.1: {} - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.19 - is-unicode-supported@2.1.0: {} is-what@4.1.16: {} @@ -18895,6 +18988,8 @@ snapshots: js-cookie@3.0.5: {} + js-sha3@0.5.7: {} + js-tokens@4.0.0: {} js-tokens@9.0.1: {} @@ -18910,6 +19005,8 @@ snapshots: jsesc@3.1.0: {} + json-rpc-random-id@1.0.1: {} + json-stream-stringify@3.1.6: {} json-stringify-safe@5.0.1: {} @@ -18985,7 +19082,7 @@ snapshots: citty: 0.1.6 clipboardy: 4.0.0 consola: 3.4.2 - crossws: 0.3.5 + crossws: 0.2.4 defu: 6.1.4 get-port-please: 3.2.0 h3: 1.15.5 @@ -18998,6 +19095,8 @@ snapshots: ufo: 1.6.3 untun: 0.1.3 uqr: 0.1.2 + transitivePeerDependencies: + - uWebSockets.js lit-element@4.2.0: dependencies: @@ -19058,7 +19157,7 @@ snapshots: mlly: 1.8.0 regexp-tree: 0.1.27 type-level-regexp: 0.1.17 - ufo: 1.6.3 + ufo: 1.6.1 unplugin: 2.3.10 magic-string-ast@1.0.2: @@ -19482,7 +19581,7 @@ snapshots: - bufferutil - utf-8-validate - minimatch@10.1.1: + minimatch@10.0.3: dependencies: '@isaacs/brace-expansion': 5.0.1 @@ -19539,8 +19638,6 @@ snapshots: ms@2.0.0: {} - ms@2.1.2: {} - ms@2.1.3: {} msw@2.4.9(typescript@5.9.3): @@ -19592,7 +19689,7 @@ snapshots: nanotar@0.2.0: {} - next@16.1.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + next@16.1.6(@babel/core@7.28.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: '@next/env': 16.1.6 '@swc/helpers': 0.5.15 @@ -19601,7 +19698,7 @@ snapshots: postcss: 8.4.31 react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - styled-jsx: 5.1.6(react@19.2.0) + styled-jsx: 5.1.6(@babel/core@7.28.5)(react@19.2.0) optionalDependencies: '@next/swc-darwin-arm64': 16.1.6 '@next/swc-darwin-x64': 16.1.6 @@ -19618,7 +19715,7 @@ snapshots: nitropack@2.12.6(idb-keyval@6.2.1): dependencies: - '@cloudflare/kv-asset-handler': 0.4.2 + '@cloudflare/kv-asset-handler': 0.4.0 '@rollup/plugin-alias': 5.1.1(rollup@4.53.3) '@rollup/plugin-commonjs': 28.0.6(rollup@4.53.3) '@rollup/plugin-inject': 5.0.5(rollup@4.53.3) @@ -19680,13 +19777,13 @@ snapshots: ultrahtml: 1.6.0 uncrypto: 0.1.3 unctx: 2.4.1 - unenv: 2.0.0-rc.24 + unenv: 2.0.0-rc.21 unimport: 5.5.0 unplugin-utils: 0.3.0 unstorage: 1.17.1(db0@0.3.2)(idb-keyval@6.2.1)(ioredis@5.8.0) untyped: 2.0.0 unwasm: 0.3.11 - youch: 4.1.0-beta.13 + youch: 4.1.0-beta.11 youch-core: 0.3.3 transitivePeerDependencies: - '@azure/app-configuration' @@ -19715,11 +19812,12 @@ snapshots: - rolldown - sqlite3 - supports-color + - uWebSockets.js - uploadthing nitropack@2.12.9(idb-keyval@6.2.1): dependencies: - '@cloudflare/kv-asset-handler': 0.4.2 + '@cloudflare/kv-asset-handler': 0.4.1 '@rollup/plugin-alias': 5.1.1(rollup@4.53.3) '@rollup/plugin-commonjs': 28.0.9(rollup@4.53.3) '@rollup/plugin-inject': 5.0.5(rollup@4.53.3) @@ -19761,7 +19859,7 @@ snapshots: mime: 4.1.0 mlly: 1.8.0 node-fetch-native: 1.6.7 - node-mock-http: 1.0.3 + node-mock-http: 1.0.4 ofetch: 1.5.1 ohash: 2.0.11 pathe: 2.0.3 @@ -19777,7 +19875,7 @@ snapshots: serve-static: 2.2.0 source-map: 0.7.6 std-env: 3.10.0 - ufo: 1.6.1 + ufo: 1.6.3 ultrahtml: 1.6.0 uncrypto: 0.1.3 unctx: 2.4.1 @@ -19816,6 +19914,7 @@ snapshots: - rolldown - sqlite3 - supports-color + - uWebSockets.js - uploadthing node-addon-api@7.0.0: {} @@ -20004,6 +20103,7 @@ snapshots: - terser - tsx - typescript + - uWebSockets.js - uploadthing - utf-8-validate - vite @@ -20062,7 +20162,7 @@ snapshots: semver: 7.7.3 std-env: 3.10.0 tinyglobby: 0.2.15 - ufo: 1.6.1 + ufo: 1.6.3 ultrahtml: 1.6.0 uncrypto: 0.1.3 unctx: 2.4.1 @@ -20124,6 +20224,7 @@ snapshots: - terser - tsx - typescript + - uWebSockets.js - uploadthing - utf-8-validate - vite @@ -20141,12 +20242,6 @@ snapshots: pkg-types: 2.3.0 tinyexec: 1.0.2 - obj-multiplex@1.0.0: - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - readable-stream: 2.3.8 - object-assign@4.1.1: {} obug@2.1.1: {} @@ -20245,7 +20340,7 @@ snapshots: ox@0.11.3(typescript@5.9.3)(zod@4.1.11): dependencies: - '@adraffy/ens-normalize': 1.11.1 + '@adraffy/ens-normalize': 1.11.0 '@noble/ciphers': 1.3.0 '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 @@ -20258,9 +20353,9 @@ snapshots: transitivePeerDependencies: - zod - ox@0.12.1(typescript@5.9.3)(zod@3.22.4): + ox@0.12.4(typescript@5.9.3)(zod@3.22.4): dependencies: - '@adraffy/ens-normalize': 1.11.1 + '@adraffy/ens-normalize': 1.11.0 '@noble/ciphers': 1.3.0 '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 @@ -20273,9 +20368,9 @@ snapshots: transitivePeerDependencies: - zod - ox@0.12.1(typescript@5.9.3)(zod@3.25.76): + ox@0.12.4(typescript@5.9.3)(zod@3.25.76): dependencies: - '@adraffy/ens-normalize': 1.11.1 + '@adraffy/ens-normalize': 1.11.0 '@noble/ciphers': 1.3.0 '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 @@ -20288,9 +20383,9 @@ snapshots: transitivePeerDependencies: - zod - ox@0.12.1(typescript@5.9.3)(zod@4.1.11): + ox@0.12.4(typescript@5.9.3)(zod@4.1.11): dependencies: - '@adraffy/ens-normalize': 1.11.1 + '@adraffy/ens-normalize': 1.11.0 '@noble/ciphers': 1.3.0 '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 @@ -20305,7 +20400,7 @@ snapshots: ox@0.6.7(typescript@5.9.3)(zod@3.25.76): dependencies: - '@adraffy/ens-normalize': 1.11.1 + '@adraffy/ens-normalize': 1.11.0 '@noble/curves': 1.9.7 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 @@ -20514,6 +20609,8 @@ snapshots: package-manager-detector@1.3.0: {} + pako@2.1.0: {} + parse-ms@4.0.0: {} parse-path@7.0.0: @@ -20652,16 +20749,16 @@ snapshots: pony-cause@2.1.11: {} - porto@0.2.35(@types/react@19.2.3)(@wagmi/core@packages+core)(react@19.2.0)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.0))(viem@2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@packages+react): + porto@0.2.35(@types/react@19.2.3)(@wagmi/core@packages+core)(immer@9.0.21)(react@19.2.0)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.0))(viem@2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@packages+react): dependencies: '@wagmi/core': link:packages/core hono: 4.11.7 idb-keyval: 6.2.1 mipd: 0.0.7(typescript@5.9.3) ox: 0.9.6(typescript@5.9.3)(zod@4.1.11) - viem: 2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) zod: 4.1.11 - zustand: 5.0.3(@types/react@19.2.3)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)) + zustand: 5.0.3(@types/react@19.2.3)(immer@9.0.21)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)) optionalDependencies: react: 19.2.0 typescript: 5.9.3 @@ -20671,8 +20768,6 @@ snapshots: - immer - use-sync-external-store - possible-typed-array-names@1.1.0: {} - postcss-calc@10.1.1(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -20983,8 +21078,18 @@ snapshots: punycode.js@2.3.1: {} + punycode@2.1.0: {} + punycode@2.3.1: {} + qr-code-styling@1.9.2: + dependencies: + qrcode-generator: 1.5.2 + + qr@0.5.4: {} + + qrcode-generator@1.5.2: {} + qrcode@1.5.3: dependencies: dijkstrajs: 1.0.2 @@ -21344,15 +21449,6 @@ snapshots: set-blocking@2.0.0: {} - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - setprototypeof@1.2.0: {} sharp@0.33.5: @@ -21536,24 +21632,6 @@ snapshots: smol-toml@1.4.2: {} - socket.io-client@4.7.5(bufferutil@4.0.8)(utf-8-validate@5.0.10): - dependencies: - '@socket.io/component-emitter': 3.1.2 - debug: 4.3.7 - engine.io-client: 6.5.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) - socket.io-parser: 4.2.4 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - socket.io-parser@4.2.4: - dependencies: - '@socket.io/component-emitter': 3.1.2 - debug: 4.3.7 - transitivePeerDependencies: - - supports-color - solid-js@1.9.10: dependencies: csstype: 3.1.3 @@ -21611,8 +21689,6 @@ snapshots: srvx@0.10.0: {} - srvx@0.10.1: {} - srvx@0.9.6: {} ssh-remote-port-forward@1.0.4: @@ -21711,6 +21787,10 @@ snapshots: strip-final-newline@4.0.0: {} + strip-hex-prefix@1.0.0: + dependencies: + is-hex-prefixed: 1.0.0 + strip-json-comments@5.0.2: {} strip-literal@3.0.0: @@ -21723,10 +21803,12 @@ snapshots: structured-clone-es@1.0.0: {} - styled-jsx@5.1.6(react@19.2.0): + styled-jsx@5.1.6(@babel/core@7.28.5)(react@19.2.0): dependencies: client-only: 0.0.1 react: 19.2.0 + optionalDependencies: + '@babel/core': 7.28.5 stylehacks@7.0.6(postcss@8.5.6): dependencies: @@ -21738,8 +21820,6 @@ snapshots: dependencies: copy-anything: 3.0.5 - superstruct@1.0.3: {} - superstruct@2.0.2: {} supports-color@10.2.2: {} @@ -21903,7 +21983,7 @@ snapshots: toidentifier@1.0.1: {} - tokenx@1.3.0: {} + tokenx@1.1.0: {} totalist@3.0.1: {} @@ -22026,6 +22106,14 @@ snapshots: node-fetch-native: 1.6.7 pathe: 1.1.2 + unenv@2.0.0-rc.21: + dependencies: + defu: 6.1.4 + exsolve: 1.0.8 + ohash: 2.0.11 + pathe: 2.0.3 + ufo: 1.6.3 + unenv@2.0.0-rc.24: dependencies: pathe: 2.0.3 @@ -22261,7 +22349,7 @@ snapshots: lru-cache: 10.4.3 node-fetch-native: 1.6.7 ofetch: 1.5.1 - ufo: 1.6.1 + ufo: 1.6.3 optionalDependencies: db0: 0.3.4 idb-keyval: 6.2.1 @@ -22298,6 +22386,10 @@ snapshots: uqr@0.1.2: {} + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + url-parse@1.5.10: dependencies: querystringify: 2.2.0 @@ -22318,23 +22410,20 @@ snapshots: utf-8-validate@5.0.10: dependencies: node-gyp-build: 4.6.0 + optional: true util-deprecate@1.0.2: {} - util@0.12.5: - dependencies: - inherits: 2.0.4 - is-arguments: 1.1.1 - is-generator-function: 1.0.10 - is-typed-array: 1.1.15 - which-typed-array: 1.1.19 - uuid@10.0.0: {} + uuid@11.1.0: {} + uuid@8.3.2: {} uuid@9.0.1: {} + valid-url@1.0.9: {} + validate-npm-package-name@5.0.1: {} valtio@1.13.2(@types/react@19.2.3)(react@19.2.0): @@ -22442,7 +22531,7 @@ snapshots: - utf-8-validate - zod - viem@2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.22.4): + viem@2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.22.4): dependencies: '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 @@ -22450,7 +22539,7 @@ snapshots: '@scure/bip39': 1.6.0 abitype: 1.2.3(typescript@5.9.3)(zod@3.22.4) isows: 1.0.7(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - ox: 0.12.1(typescript@5.9.3)(zod@3.22.4) + ox: 0.12.4(typescript@5.9.3)(zod@3.22.4) ws: 8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) optionalDependencies: typescript: 5.9.3 @@ -22459,7 +22548,7 @@ snapshots: - utf-8-validate - zod - viem@2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76): + viem@2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76): dependencies: '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 @@ -22467,7 +22556,7 @@ snapshots: '@scure/bip39': 1.6.0 abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) isows: 1.0.7(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - ox: 0.12.1(typescript@5.9.3)(zod@3.25.76) + ox: 0.12.4(typescript@5.9.3)(zod@3.25.76) ws: 8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) optionalDependencies: typescript: 5.9.3 @@ -22476,7 +22565,7 @@ snapshots: - utf-8-validate - zod - viem@2.46.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.1.11): + viem@2.46.3(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.1.11): dependencies: '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 @@ -22484,7 +22573,7 @@ snapshots: '@scure/bip39': 1.6.0 abitype: 1.2.3(typescript@5.9.3)(zod@4.1.11) isows: 1.0.7(ws@8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - ox: 0.12.1(typescript@5.9.3)(zod@4.1.11) + ox: 0.12.4(typescript@5.9.3)(zod@4.1.11) ws: 8.18.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) optionalDependencies: typescript: 5.9.3 @@ -22493,7 +22582,7 @@ snapshots: - utf-8-validate - zod - vinxi@0.5.10(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1): + vinxi@0.5.11(@types/node@24.6.2)(db0@0.3.4)(idb-keyval@6.2.1)(ioredis@5.8.2)(jiti@2.6.1)(terser@5.31.0)(tsx@4.20.6)(yaml@2.8.1): dependencies: '@babel/core': 7.28.5 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) @@ -22569,6 +22658,7 @@ snapshots: - supports-color - terser - tsx + - uWebSockets.js - uploadthing - xml2js - yaml @@ -22792,13 +22882,13 @@ snapshots: markdown-title: 1.0.2 mdast-util-from-markdown: 2.0.2 millify: 6.1.0 - minimatch: 10.1.1 + minimatch: 10.0.3 path-to-regexp: 8.3.0 picocolors: 1.1.1 pretty-bytes: 7.1.0 remark: 15.0.1 remark-frontmatter: 5.0.0 - tokenx: 1.3.0 + tokenx: 1.1.0 unist-util-remove: 4.0.0 unist-util-visit: 5.0.0 transitivePeerDependencies: @@ -22958,8 +23048,6 @@ snapshots: walk-up-path@4.0.0: {} - webextension-polyfill@0.10.0: {} - webidl-conversions@3.0.1: {} webpack-bundle-analyzer@4.10.1(bufferutil@4.0.8)(utf-8-validate@5.0.10): @@ -22998,16 +23086,6 @@ snapshots: which-module@2.0.0: {} - which-typed-array@1.1.19: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - which@2.0.2: dependencies: isexe: 2.0.0 @@ -23107,11 +23185,6 @@ snapshots: bufferutil: 4.0.8 utf-8-validate: 5.0.10 - ws@8.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 5.0.10 - wsl-utils@0.1.0: dependencies: is-wsl: 3.1.0 @@ -23123,7 +23196,7 @@ snapshots: '@oozcitak/util': 10.0.0 js-yaml: 4.1.1 - xmlhttprequest-ssl@2.0.0: {} + xtend@4.0.2: {} y18n@4.0.3: {} @@ -23197,6 +23270,14 @@ snapshots: cookie: 1.0.2 youch-core: 0.3.3 + youch@4.1.0-beta.11: + dependencies: + '@poppinss/colors': 4.1.5 + '@poppinss/dumper': 0.6.4 + '@speed-highlight/core': 1.2.7 + cookie: 1.0.2 + youch-core: 0.3.3 + youch@4.1.0-beta.13: dependencies: '@poppinss/colors': 4.1.5 @@ -23217,15 +23298,17 @@ snapshots: zod@4.1.11: {} - zustand@5.0.0(@types/react@19.2.3)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)): + zustand@5.0.0(@types/react@19.2.3)(immer@9.0.21)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)): optionalDependencies: '@types/react': 19.2.3 + immer: 9.0.21 react: 19.2.0 use-sync-external-store: 1.6.0(react@19.2.0) - zustand@5.0.3(@types/react@19.2.3)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)): + zustand@5.0.3(@types/react@19.2.3)(immer@9.0.21)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)): optionalDependencies: '@types/react': 19.2.3 + immer: 9.0.21 react: 19.2.0 use-sync-external-store: 1.6.0(react@19.2.0) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b9f93867bc..fa72991864 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -22,6 +22,7 @@ autoInstallPeers: false catalog: '@base-org/account': 2.4.0 '@coinbase/wallet-sdk': 4.3.6 + '@metamask/connect-evm': 0.8.0 '@metamask/sdk': 0.33.1 '@nuxt/schema': 4.2.1 '@safe-global/safe-apps-provider': 0.18.6 @@ -79,7 +80,7 @@ overrides: happy-dom@<20.0.2: '>=20.0.2' hono@<4.11.7: 4.11.7 lodash@>=4.0.0 <=4.17.22: '>=4.17.23' - markdown-it@>=13.0.0 <14.1.1: '14.1.1' + markdown-it@>=13.0.0 <14.1.1: 14.1.1 mdast-util-to-hast@<13.2.1: '>=13.2.1' nanoid@<3.3.8: 3.3.8 node-forge@<1.3.2: '>=1.3.2' diff --git a/site/core/api/connectors/metaMask.md b/site/core/api/connectors/metaMask.md index 9e3f8c2c25..7b3ce84458 100644 --- a/site/core/api/connectors/metaMask.md +++ b/site/core/api/connectors/metaMask.md @@ -9,7 +9,7 @@ import packageJson from '../../../../packages/connectors/package.json' const docsPath = 'core' const packageName = '@wagmi/core' const connectorsPackageName = '@wagmi/connectors' -const connectorDependencyVersion = packageJson.peerDependencies['@metamask/sdk'] +const connectorDependencyVersion = packageJson.peerDependencies['@metamask/connect-evm'] diff --git a/site/react/api/connectors/metaMask.md b/site/react/api/connectors/metaMask.md index 3adde04360..83b3b2a814 100644 --- a/site/react/api/connectors/metaMask.md +++ b/site/react/api/connectors/metaMask.md @@ -9,7 +9,7 @@ import packageJson from '../../../../packages/connectors/package.json' const docsPath = 'react' const packageName = 'wagmi' const connectorsPackageName = 'wagmi/connectors' -const connectorDependencyVersion = packageJson.peerDependencies['@metamask/sdk'] +const connectorDependencyVersion = packageJson.peerDependencies['@metamask/connect-evm'] diff --git a/site/shared/connectors/metaMask.md b/site/shared/connectors/metaMask.md index 31fdda16df..636ddf8f03 100644 --- a/site/shared/connectors/metaMask.md +++ b/site/shared/connectors/metaMask.md @@ -6,7 +6,7 @@ const connectorDependencyVersion = 'x.y.z' # metaMask -Connector for [MetaMask SDK](https://github.com/MetaMask/metamask-sdk). +Connector for [MetaMask Connect](https://github.com/MetaMask/connect-monorepo). ## Import @@ -16,23 +16,23 @@ import { metaMask } from '{{connectorsPackageName}}' ## Install - + ::: code-group ```bash-vue [pnpm] -pnpm add @metamask/sdk@{{connectorDependencyVersion}} +pnpm add @metamask/connect-evm@{{connectorDependencyVersion}} ``` ```bash-vue [npm] -npm install @metamask/sdk@{{connectorDependencyVersion}} +npm install @metamask/connect-evm@{{connectorDependencyVersion}} ``` ```bash-vue [yarn] -yarn add @metamask/sdk@{{connectorDependencyVersion}} +yarn add @metamask/connect-evm@{{connectorDependencyVersion}} ``` ```bash-vue [bun] -bun add @metamask/sdk@{{connectorDependencyVersion}} +bun add @metamask/connect-evm@{{connectorDependencyVersion}} ``` ::: @@ -59,9 +59,9 @@ export const config = createConfig({ import { type MetaMaskParameters } from '{{connectorsPackageName}}' ``` -Check out the [MetaMask SDK docs](https://docs.metamask.io/wallet/connect/3rd-party-libraries/wagmi/) for more info. A few options are omitted that Wagmi manages internally. +Check out the [MetaMask Connect docs](https://docs.metamask.io/wallet/connect/3rd-party-libraries/wagmi/) for more info. A few options are omitted that Wagmi manages internally. -### dappMetadata +### dapp `DappMetadata | undefined` @@ -71,11 +71,13 @@ Metadata is used to fill details for the UX on confirmation screens in MetaMask, - `url`: `string` - URL of the dapp (defaults to `window.location.origin`). - `iconUrl`: `string` - URL to the dapp's favicon or icon. +Defaults to `{ name: window.location.hostname }`. + ```ts-vue import { metaMask } from '{{connectorsPackageName}}' const connector = metaMask({ - dappMetadata: { // [!code focus] + dapp: { // [!code focus] name: 'My Wagmi App', // [!code focus] url: 'https://example.com', // [!code focus] iconUrl: 'https://example.com/favicon.ico', // [!code focus] @@ -83,53 +85,52 @@ const connector = metaMask({ }) ``` -### logging +### debug -`SDKLoggingOptions | undefined` +`boolean | undefined` -Enables SDK-side logging to provide visibility into: +Enables debug mode for the MetaMask SDK. When enabled, provides additional logging and debugging information. -- RPC methods being called. -- Events received for syncing the chain or active account. -- Raw RPC responses. +```ts-vue +import { metaMask } from '{{connectorsPackageName}}' -In this context, this is especially useful to observe what calls are made through Wagmi hooks. +const connector = metaMask({ + debug: true // [!code focus] +}) +``` -Relevant options: +### connectAndSign -```ts -{ - developerMode: boolean, // Enables developer mode logs - sdk: boolean // Enables SDK-specific logs -} -``` +`string | undefined` -```ts +Shortcut to connect and sign a message in a single operation. When provided, the connector will connect to MetaMask and immediately prompt the user to sign the specified message. + +This parameter is mutually exclusive with `connectWith` - only one can be used at a time. + +```ts-vue import { metaMask } from '{{connectorsPackageName}}' const connector = metaMask({ - logging: { developerMode: true, sdk: true } // [!code focus] + connectAndSign: 'Sign this message to connect', // [!code focus] }) ``` -### headless +### connectWith -`boolean | undefined` +`{ method: string; params: unknown[] } | undefined` -- Enables headless mode, disabling MetaMask's built-in modal. -- Allows developers to create their own modal, such as for displaying a QR code. +Allows connecting with any RPC method. When provided, the connector will connect to MetaMask and immediately call the specified RPC method with the given parameters. -This is particularly relevant for web-only setups using Wagmi, where developers want complete control over the UI. - -To get the deeplink to display in the QR code, listen to the `display_uri` event. - -The default is `false`. +This parameter is mutually exclusive with `connectAndSign` - only one can be used at a time. ```ts-vue import { metaMask } from '{{connectorsPackageName}}' const connector = metaMask({ - headless: true // [!code focus] + connectWith: { // [!code focus] + method: 'eth_requestAccounts', // [!code focus] + params: [], // [!code focus] + } }) ``` @@ -139,6 +140,5 @@ By default, if the EIP-6963 MetaMask injected provider is detected, this connect EIP-6963 defines a standard way for dapps to interact with multiple wallets simultaneously by injecting providers into the browser. Wallets that implement this standard can make their presence known to dapps in a consistent and predictable manner. -When MetaMask SDK detects an EIP-6963-compliant provider (such as MetaMask itself), the connector will automatically replace the default injected provider (like `window.ethereum`) with the one provided by MetaMask SDK. See the [`rdns` property](https://wagmi.sh/dev/creating-connectors#properties) for more information. diff --git a/site/vue/api/connectors/metaMask.md b/site/vue/api/connectors/metaMask.md index 516b79340a..7d3a0c5c56 100644 --- a/site/vue/api/connectors/metaMask.md +++ b/site/vue/api/connectors/metaMask.md @@ -9,7 +9,7 @@ import packageJson from '../../../../packages/connectors/package.json' const docsPath = 'vue' const packageName = '@wagmi/vue' const connectorsPackageName = '@wagmi/vue/connectors' -const connectorDependencyVersion = packageJson.peerDependencies['@metamask/sdk'] +const connectorDependencyVersion = packageJson.peerDependencies['@metamask/connect-evm']