From 702b5c6ce126e8800ecfa3750cca4dadcab3ccef Mon Sep 17 00:00:00 2001 From: aelmanaa Date: Fri, 27 Feb 2026 17:34:10 +0000 Subject: [PATCH] Use shared-brand as single source of truth for design tokens and fix Solana tx confirmation - Replace shared-components/tokens.css with shared-brand/design-tokens.css - Add gap variables (primary-hover, primary-bg, primary-shadow, etc.) to design-tokens.css - Add corresponding constants to BRAND_COLORS in shared-brand/index.ts - Update all CSS modules to use --color-primary-bg for background tint use case - Update hardcoded #375bd2 references to #0847f7 (official Chainlink brand) - Use BRAND_COLORS.primary for RainbowKit accent in both example apps - Fix chainlink-logo.svg fill color to match brand primary - Add Chainlink favicon to shared-brand and both example apps - Rename example 03 header to "Multichain Family Bridge" - Add poll-based Solana tx confirmation utility (shared-utils/solana.ts) - Wrap Solana send+confirm in retry loop to handle blockhash expiration --- examples/02-evm-simple-bridge/index.html | 1 + examples/02-evm-simple-bridge/package.json | 1 + .../02-evm-simple-bridge/public/favicon.ico | Bin 0 -> 182137 bytes examples/02-evm-simple-bridge/src/App.tsx | 3 +- examples/03-multichain-bridge-dapp/index.html | 3 +- .../03-multichain-bridge-dapp/package.json | 1 + .../public/favicon.ico | Bin 0 -> 182137 bytes .../03-multichain-bridge-dapp/src/App.tsx | 5 +- .../transaction/TransactionHistory.module.css | 2 +- .../src/hooks/useSolanaTransfer.ts | 83 +++++-- .../shared-brand/assets/chainlink-logo.svg | 2 +- packages/shared-brand/assets/favicon.ico | Bin 0 -> 182137 bytes packages/shared-brand/package.json | 3 +- packages/shared-brand/src/design-tokens.css | 7 + packages/shared-brand/src/index.ts | 13 ++ packages/shared-components/package.json | 2 +- .../shared-components/src/ErrorBoundary.tsx | 2 +- .../src/FeeTokenOptions.module.css | 2 +- .../src/bridge/BridgeForm.module.css | 4 +- .../src/bridge/WalletConnect.module.css | 2 +- .../src/primitives/Alert.module.css | 2 +- .../shared-components/src/styles/globals.css | 16 +- .../shared-components/src/styles/tokens.css | 50 ----- packages/shared-utils/package.json | 4 + packages/shared-utils/src/index.ts | 7 + packages/shared-utils/src/solana.ts | 112 ++++++++++ pnpm-lock.yaml | 211 +++++++++--------- 27 files changed, 342 insertions(+), 196 deletions(-) create mode 100644 examples/02-evm-simple-bridge/public/favicon.ico create mode 100644 examples/03-multichain-bridge-dapp/public/favicon.ico create mode 100644 packages/shared-brand/assets/favicon.ico delete mode 100644 packages/shared-components/src/styles/tokens.css create mode 100644 packages/shared-utils/src/solana.ts diff --git a/examples/02-evm-simple-bridge/index.html b/examples/02-evm-simple-bridge/index.html index bb50d04..6ab861d 100644 --- a/examples/02-evm-simple-bridge/index.html +++ b/examples/02-evm-simple-bridge/index.html @@ -3,6 +3,7 @@ + CCIP Simple Bridge diff --git a/examples/02-evm-simple-bridge/package.json b/examples/02-evm-simple-bridge/package.json index 33de7c7..eac0f42 100644 --- a/examples/02-evm-simple-bridge/package.json +++ b/examples/02-evm-simple-bridge/package.json @@ -14,6 +14,7 @@ }, "dependencies": { "@chainlink/ccip-sdk": "1.0.0", + "@ccip-examples/shared-brand": "workspace:*", "@ccip-examples/shared-config": "workspace:*", "@ccip-examples/shared-components": "workspace:*", "@ccip-examples/shared-utils": "workspace:*", diff --git a/examples/02-evm-simple-bridge/public/favicon.ico b/examples/02-evm-simple-bridge/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7f60fe54c6daa531ef91cda3cf2076cccd44779d GIT binary patch literal 182137 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 M07*qoM6N<$g2ukc diff --git a/examples/03-multichain-bridge-dapp/index.html b/examples/03-multichain-bridge-dapp/index.html index 8d40e20..5a6f02a 100644 --- a/examples/03-multichain-bridge-dapp/index.html +++ b/examples/03-multichain-bridge-dapp/index.html @@ -3,7 +3,8 @@ - CCIP Multichain Bridge + + Multichain Family Bridge
diff --git a/examples/03-multichain-bridge-dapp/package.json b/examples/03-multichain-bridge-dapp/package.json index 828b35e..c3420ae 100644 --- a/examples/03-multichain-bridge-dapp/package.json +++ b/examples/03-multichain-bridge-dapp/package.json @@ -16,6 +16,7 @@ "@aptos-labs/ts-sdk": "^5.2.1", "@aptos-labs/wallet-adapter-react": "^3.7.2", "@chainlink/ccip-sdk": "1.0.0", + "@ccip-examples/shared-brand": "workspace:*", "@ccip-examples/shared-config": "workspace:*", "@ccip-examples/shared-components": "workspace:*", "@ccip-examples/shared-utils": "workspace:*", diff --git a/examples/03-multichain-bridge-dapp/public/favicon.ico b/examples/03-multichain-bridge-dapp/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7f60fe54c6daa531ef91cda3cf2076cccd44779d GIT binary patch literal 182137 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 M07*qoM6N<$g2ukc -
+
@@ -177,7 +178,7 @@ export default function App() { diff --git a/examples/03-multichain-bridge-dapp/src/components/transaction/TransactionHistory.module.css b/examples/03-multichain-bridge-dapp/src/components/transaction/TransactionHistory.module.css index d84fb81..c7979c3 100644 --- a/examples/03-multichain-bridge-dapp/src/components/transaction/TransactionHistory.module.css +++ b/examples/03-multichain-bridge-dapp/src/components/transaction/TransactionHistory.module.css @@ -123,7 +123,7 @@ font-size: var(--font-size-sm); font-weight: 500; color: var(--color-primary); - background-color: var(--color-primary-light); + background-color: var(--color-primary-bg); border: 1px solid var(--color-primary); border-radius: var(--radius-md); cursor: pointer; diff --git a/examples/03-multichain-bridge-dapp/src/hooks/useSolanaTransfer.ts b/examples/03-multichain-bridge-dapp/src/hooks/useSolanaTransfer.ts index 0eeef27..ba83ce5 100644 --- a/examples/03-multichain-bridge-dapp/src/hooks/useSolanaTransfer.ts +++ b/examples/03-multichain-bridge-dapp/src/hooks/useSolanaTransfer.ts @@ -9,7 +9,7 @@ import { TransactionMessage, VersionedTransaction } from "@solana/web3.js"; import type { SolanaChain } from "@chainlink/ccip-sdk"; import { networkInfo } from "@chainlink/ccip-sdk"; import { NETWORKS } from "@ccip-examples/shared-config"; -import { parseSolanaError } from "@ccip-examples/shared-utils"; +import { parseSolanaError, confirmTransaction } from "@ccip-examples/shared-utils"; import type { TransactionResult, TransferMessage } from "./transferTypes.js"; export interface UseSolanaTransferParams { @@ -53,25 +53,74 @@ export function useSolanaTransfer({ message: { ...message, fee }, }); - onStateChange("sending"); + // Retry loop covering both send AND confirm: if the user takes too long + // to sign in the wallet popup the blockhash expires. This can surface as + // either a send-time error or a confirmation-time expiration. In both + // cases we rebuild the transaction with a fresh blockhash and re-prompt. + const MAX_ATTEMPTS = 3; + let signature: string | undefined; + let confirmed = false; - // Use "confirmed" for a fresher blockhash (less likely to expire during wallet signing). - const blockhash = await solanaConnection.getLatestBlockhash("confirmed"); - const messageV0 = new TransactionMessage({ - payerKey: solanaPublicKey, - recentBlockhash: blockhash.blockhash, - instructions: unsignedTx.instructions, - }).compileToV0Message(unsignedTx.lookupTables); + for (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) { + onStateChange("sending"); - const transaction = new VersionedTransaction(messageV0); - const signature = await sendTransaction(transaction, solanaConnection, { - skipPreflight: true, - maxRetries: 5, - }); - onTxHash(signature); + const blockhash = await solanaConnection.getLatestBlockhash("confirmed"); + const messageV0 = new TransactionMessage({ + payerKey: solanaPublicKey, + recentBlockhash: blockhash.blockhash, + instructions: unsignedTx.instructions, + }).compileToV0Message(unsignedTx.lookupTables); + + const transaction = new VersionedTransaction(messageV0); + + try { + signature = await sendTransaction(transaction, solanaConnection, { + skipPreflight: true, + maxRetries: 5, + }); + } catch (sendErr: unknown) { + const isBlockheightError = + sendErr instanceof Error && + sendErr.name === "TransactionExpiredBlockheightExceededError"; + + if (isBlockheightError && attempt < MAX_ATTEMPTS) { + console.warn( + `Blockhash expired on send (attempt ${attempt}/${MAX_ATTEMPTS}), retrying…` + ); + continue; + } + throw sendErr; + } + + onTxHash(signature); + + // Poll-based confirmation — uses getSignatureStatus() so no + // blockhash is needed for the confirmation step itself. + onStateChange("confirming"); + const result = await confirmTransaction({ + connection: solanaConnection, + signature, + lastValidBlockHeight: blockhash.lastValidBlockHeight, + }); + + if (result.confirmed) { + if (!result.success) throw new Error("Solana transaction failed on-chain"); + confirmed = true; + break; + } + + // Transaction expired before confirmation — retry with fresh tx + if (attempt < MAX_ATTEMPTS) { + console.warn( + `Transaction expired during confirmation (attempt ${attempt}/${MAX_ATTEMPTS}), retrying…` + ); + continue; + } + } - onStateChange("confirming"); - await solanaConnection.confirmTransaction({ signature, ...blockhash }, "confirmed"); + if (!signature || !confirmed) { + throw new Error("Solana transaction could not be confirmed after multiple attempts"); + } onStateChange("tracking"); const tx = await chain.getTransaction(signature); diff --git a/packages/shared-brand/assets/chainlink-logo.svg b/packages/shared-brand/assets/chainlink-logo.svg index 3b9a429..5c51c01 100644 --- a/packages/shared-brand/assets/chainlink-logo.svg +++ b/packages/shared-brand/assets/chainlink-logo.svg @@ -1,3 +1,3 @@ - + diff --git a/packages/shared-brand/assets/favicon.ico b/packages/shared-brand/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7f60fe54c6daa531ef91cda3cf2076cccd44779d GIT binary patch literal 182137 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 M07*qoM6N<$g2ukc void }) style={{ padding: "0.5rem 1rem", cursor: "pointer", - backgroundColor: "var(--color-primary, #375bd2)", + backgroundColor: "var(--color-primary, #0847f7)", color: "white", border: "none", borderRadius: "4px", diff --git a/packages/shared-components/src/FeeTokenOptions.module.css b/packages/shared-components/src/FeeTokenOptions.module.css index 87a9208..0b0099c 100644 --- a/packages/shared-components/src/FeeTokenOptions.module.css +++ b/packages/shared-components/src/FeeTokenOptions.module.css @@ -62,7 +62,7 @@ font-weight: 600; text-transform: uppercase; color: var(--color-primary); - background-color: var(--color-primary-light); + background-color: var(--color-primary-bg); padding: 1px 6px; border-radius: var(--radius-sm); line-height: 1.4; diff --git a/packages/shared-components/src/bridge/BridgeForm.module.css b/packages/shared-components/src/bridge/BridgeForm.module.css index ecd58f8..087eb18 100644 --- a/packages/shared-components/src/bridge/BridgeForm.module.css +++ b/packages/shared-components/src/bridge/BridgeForm.module.css @@ -115,7 +115,7 @@ .copyButton:hover:not(:disabled) { color: var(--color-primary); border-color: var(--color-primary); - background-color: var(--color-primary-light); + background-color: var(--color-primary-bg); } .copyButton:disabled { @@ -151,7 +151,7 @@ font-size: var(--font-size-sm); font-weight: 600; color: var(--color-primary); - background-color: var(--color-primary-light); + background-color: var(--color-primary-bg); border: 1px solid var(--color-primary); border-radius: var(--radius-md); cursor: pointer; diff --git a/packages/shared-components/src/bridge/WalletConnect.module.css b/packages/shared-components/src/bridge/WalletConnect.module.css index f4a3f87..de98c23 100644 --- a/packages/shared-components/src/bridge/WalletConnect.module.css +++ b/packages/shared-components/src/bridge/WalletConnect.module.css @@ -49,7 +49,7 @@ .aptosButtonConnected { background: var(--color-background-secondary, #1a1b1f); - border-color: var(--color-primary, #375bd2); + border-color: var(--color-primary, #0847f7); color: var(--color-text-primary); } diff --git a/packages/shared-components/src/primitives/Alert.module.css b/packages/shared-components/src/primitives/Alert.module.css index 059d00c..fbbeaf5 100644 --- a/packages/shared-components/src/primitives/Alert.module.css +++ b/packages/shared-components/src/primitives/Alert.module.css @@ -23,7 +23,7 @@ } .info { - background-color: var(--color-primary-light); + background-color: var(--color-primary-bg); border: 1px solid var(--color-primary); color: var(--color-primary); } diff --git a/packages/shared-components/src/styles/globals.css b/packages/shared-components/src/styles/globals.css index 60b997c..8221e1a 100644 --- a/packages/shared-components/src/styles/globals.css +++ b/packages/shared-components/src/styles/globals.css @@ -1,13 +1,12 @@ /** * Global styles for CCIP example frontends. - * Import tokens from same package. + * Import design tokens from shared-brand (single source of truth). */ -@import "./tokens.css"; +@import "@ccip-examples/shared-brand/design-tokens.css"; :root { --color-metamask: #f6851b; --color-metamask-hover: #e2761b; - --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace; } /* Global Reset */ @@ -41,14 +40,3 @@ body { transform: rotate(360deg); } } - -/* Reduced Motion Support */ -@media (prefers-reduced-motion: reduce) { - *, - *::before, - *::after { - animation-duration: 0.01ms !important; - animation-iteration-count: 1 !important; - transition-duration: 0.01ms !important; - } -} diff --git a/packages/shared-components/src/styles/tokens.css b/packages/shared-components/src/styles/tokens.css deleted file mode 100644 index 1d75014..0000000 --- a/packages/shared-components/src/styles/tokens.css +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Design tokens for CCIP examples. - * Import this once in your app (e.g. in main.tsx or globals.css) so all shared-components and app CSS use the same variables. - */ -:root { - --color-primary: #375bd2; - --color-primary-hover: #2a4ab3; - --color-primary-light: #e3f2fd; - --color-success: #2e7d32; - --color-success-hover: #256d27; - --color-success-bg: #e8f5e9; - --color-success-border: #a5d6a7; - --color-warning: #ed6c02; - --color-warning-hover: #d65c02; - --color-warning-bg: #fff3e0; - --color-warning-border: #ffcc80; - --color-error: #d32f2f; - --color-error-bg: #ffebee; - --color-error-border: #ef9a9a; - --color-text-primary: #1a1a1a; - --color-text-secondary: #666666; - --color-text-muted: #999999; - --color-background: #ffffff; - --color-background-secondary: #f9f9f9; - --color-background-tertiary: #f0f0f0; - --color-border: #dddddd; - --color-border-light: #eeeeee; - --spacing-1: 0.25rem; - --spacing-2: 0.5rem; - --spacing-3: 0.75rem; - --spacing-4: 1rem; - --spacing-5: 1.25rem; - --spacing-6: 1.5rem; - --spacing-8: 2rem; - --radius-sm: 4px; - --radius-md: 8px; - --radius-lg: 12px; - --font-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; - --font-size-xs: 0.75rem; - --font-size-sm: 0.875rem; - --font-size-base: 1rem; - --font-size-lg: 1.125rem; - --font-size-xl: 1.25rem; - --font-size-2xl: 1.5rem; - --transition-fast: 150ms ease; - --transition-normal: 250ms ease; - --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05); - --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1); - --color-primary-shadow: rgba(55, 91, 210, 0.2); -} diff --git a/packages/shared-utils/package.json b/packages/shared-utils/package.json index 337a316..0d2e2e4 100644 --- a/packages/shared-utils/package.json +++ b/packages/shared-utils/package.json @@ -41,6 +41,10 @@ "./hooks": { "types": "./dist/hooks/index.d.ts", "import": "./dist/hooks/index.js" + }, + "./solana": { + "types": "./dist/solana.d.ts", + "import": "./dist/solana.js" } }, "files": [ diff --git a/packages/shared-utils/src/index.ts b/packages/shared-utils/src/index.ts index 2441b34..6727418 100644 --- a/packages/shared-utils/src/index.ts +++ b/packages/shared-utils/src/index.ts @@ -76,6 +76,13 @@ export { type TransferState, } from "./types/transfer.js"; +// Solana transaction utilities (poll-based confirmation, retry helpers) +export { + confirmTransaction, + type ConfirmTransactionOptions, + type ConfirmTransactionResult, +} from "./solana.js"; + // NOTE: Wallet utilities (createWallet, createSolanaWallet, etc.) use Node.js // built-ins (fs, os, path) and are NOT re-exported here to keep the main // entry point browser-safe. Import them from "@ccip-examples/shared-utils/wallet". diff --git a/packages/shared-utils/src/solana.ts b/packages/shared-utils/src/solana.ts new file mode 100644 index 0000000..59630e8 --- /dev/null +++ b/packages/shared-utils/src/solana.ts @@ -0,0 +1,112 @@ +/** + * Solana transaction utilities. + * + * Reusable helpers for sending and confirming Solana transactions + * with robust handling of blockhash expiration. + */ + +import { type TransactionSignature, type Commitment } from "@solana/web3.js"; + +/* ─── Types ──────────────────────────────────────────────────────── */ + +/** + * Minimal interface for the Solana Connection methods we need. + * Using a structural type instead of the concrete Connection class + * avoids version-mismatch errors across workspace packages. + */ +export interface SolanaConnectionLike { + getSignatureStatus(signature: TransactionSignature): Promise<{ + value: { confirmationStatus?: string; err: unknown } | null; + }>; + getBlockHeight(commitment?: Commitment): Promise; +} + +export interface ConfirmTransactionOptions { + /** Solana RPC connection (or any object matching SolanaConnectionLike). */ + connection: SolanaConnectionLike; + /** Transaction signature (base-58 hash) returned by sendTransaction. */ + signature: TransactionSignature; + /** Block height after which the transaction is considered expired. */ + lastValidBlockHeight: number; + /** Commitment level to check against. @default "confirmed" */ + commitment?: Commitment; + /** Milliseconds between each poll. @default 2000 */ + pollIntervalMs?: number; + /** Maximum total time (ms) before giving up. @default 60000 */ + timeoutMs?: number; +} + +export interface ConfirmTransactionResult { + /** Whether the transaction was confirmed on-chain. */ + confirmed: boolean; + /** If confirmed, whether it succeeded (no on-chain error). */ + success: boolean; +} + +/* ─── Implementation ─────────────────────────────────────────────── */ + +/** + * Poll-based transaction confirmation for Solana. + * + * Unlike `connection.confirmTransaction()`, this approach does **not** require + * a blockhash, avoiding the common "block height exceeded" failure when the + * blockhash used for confirmation is stale. + * + * The loop polls `getSignatureStatus()` until one of: + * - The signature reaches the desired commitment level → **confirmed** + * - The current block height exceeds `lastValidBlockHeight` → **expired** + * - The timeout is reached → throws + * + * @example + * ```ts + * const { blockhash, lastValidBlockHeight } = + * await connection.getLatestBlockhash("confirmed"); + * // … build, sign, send transaction … + * const result = await confirmTransaction({ + * connection, + * signature, + * lastValidBlockHeight, + * }); + * if (!result.confirmed) throw new Error("Transaction expired"); + * if (!result.success) throw new Error("Transaction failed on-chain"); + * ``` + */ +export async function confirmTransaction( + opts: ConfirmTransactionOptions +): Promise { + const { + connection, + signature, + lastValidBlockHeight, + commitment = "confirmed", + pollIntervalMs = 2_000, + timeoutMs = 60_000, + } = opts; + + const DESIRED_LEVELS: string[] = + commitment === "finalized" ? ["finalized"] : ["confirmed", "finalized"]; + + const start = Date.now(); + + while (Date.now() - start < timeoutMs) { + // 1. Check signature status (no blockhash needed) + const { value } = await connection.getSignatureStatus(signature); + + if (value?.confirmationStatus && DESIRED_LEVELS.includes(value.confirmationStatus)) { + return { confirmed: true, success: value.err === null }; + } + + // 2. Check if the transaction's block height window has passed + const currentBlockHeight = await connection.getBlockHeight(commitment); + if (currentBlockHeight > lastValidBlockHeight) { + return { confirmed: false, success: false }; + } + + // 3. Wait before next poll + await new Promise((resolve) => setTimeout(resolve, pollIntervalMs)); + } + + throw new Error( + `Transaction confirmation timed out after ${timeoutMs}ms (signature: ${signature})` + ); +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7c094dd..50b90da 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,6 +83,9 @@ importers: examples/02-evm-simple-bridge: dependencies: + "@ccip-examples/shared-brand": + specifier: workspace:* + version: link:../../packages/shared-brand "@ccip-examples/shared-components": specifier: workspace:* version: link:../../packages/shared-components @@ -94,10 +97,10 @@ importers: version: link:../../packages/shared-utils "@chainlink/ccip-sdk": specifier: 1.0.0 - version: 1.0.0(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) + version: 1.0.0(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6))(zod@4.3.6) "@rainbow-me/rainbowkit": specifier: ^2.2.10 - version: 2.2.10(@tanstack/react-query@5.90.21(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76)) + version: 2.2.10(@tanstack/react-query@5.90.21(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6))(wagmi@2.19.5(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6))(zod@4.3.6)) "@tanstack/react-query": specifier: ^5.62.0 version: 5.90.21(react@18.3.1) @@ -109,10 +112,10 @@ importers: version: 18.3.1(react@18.3.1) viem: specifier: ^2.21.0 - version: 2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + version: 2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) wagmi: specifier: ^2.14.0 - version: 2.19.5(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) + version: 2.19.5(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6))(zod@4.3.6) devDependencies: "@types/react": specifier: ^18.3.12 @@ -147,6 +150,9 @@ importers: "@aptos-labs/wallet-adapter-react": specifier: ^3.7.2 version: 3.8.0(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.4.0(graphql@16.12.0)))(@mizuwallet-sdk/protocol@0.0.6)(@telegram-apps/bridge@1.9.2)(@types/react@18.3.28)(@wallet-standard/core@1.1.1)(aptos@1.22.1(got@11.8.6))(axios@1.13.5)(got@11.8.6)(react@18.3.1) + "@ccip-examples/shared-brand": + specifier: workspace:* + version: link:../../packages/shared-brand "@ccip-examples/shared-components": specifier: workspace:* version: link:../../packages/shared-components @@ -158,10 +164,10 @@ importers: version: link:../../packages/shared-utils "@chainlink/ccip-sdk": specifier: 1.0.0 - version: 1.0.0(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6))(zod@4.3.6) + version: 1.0.0(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) "@rainbow-me/rainbowkit": specifier: ^2.2.10 - version: 2.2.10(@tanstack/react-query@5.90.21(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6))(wagmi@2.19.5(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6))(zod@4.3.6)) + version: 2.2.10(@tanstack/react-query@5.90.21(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.19.5(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76)) "@solana/wallet-adapter-base": specifier: 0.9.23 version: 0.9.23(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) @@ -173,7 +179,7 @@ importers: version: 0.9.35(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(bs58@5.0.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-dom@18.3.1(react@18.3.1))(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3) "@solana/wallet-adapter-wallets": specifier: 0.19.32 - version: 0.19.32(@babel/runtime@7.28.6)(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bs58@5.0.0)(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-dom@18.3.1(react@18.3.1))(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.6) + version: 0.19.32(@babel/runtime@7.28.6)(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bs58@5.0.0)(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-dom@18.3.1(react@18.3.1))(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@3.25.76) "@solana/web3.js": specifier: 1.98.0 version: 1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) @@ -188,10 +194,10 @@ importers: version: 18.3.1(react@18.3.1) viem: specifier: ^2.21.0 - version: 2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + version: 2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) wagmi: specifier: ^2.14.0 - version: 2.19.5(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6))(zod@4.3.6) + version: 2.19.5(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.21(react@18.3.1))(@types/react@18.3.28)(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) devDependencies: "@types/react": specifier: ^18.3.12 @@ -226,6 +232,9 @@ importers: packages/shared-components: dependencies: + "@ccip-examples/shared-brand": + specifier: workspace:* + version: link:../shared-brand "@ccip-examples/shared-config": specifier: workspace:* version: link:../shared-config @@ -12764,11 +12773,11 @@ snapshots: - utf-8-validate - zod - "@reown/appkit-common@1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6)": + "@reown/appkit-common@1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)": dependencies: big.js: 6.2.2 dayjs: 1.11.13 - viem: 2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + viem: 2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - bufferutil - typescript @@ -12808,13 +12817,13 @@ snapshots: - utf-8-validate - zod - "@reown/appkit-controllers@1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6)": + "@reown/appkit-controllers@1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)": dependencies: - "@reown/appkit-common": 1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@reown/appkit-common": 1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) "@reown/appkit-wallet": 1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10) - "@walletconnect/universal-provider": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@walletconnect/universal-provider": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - viem: 2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + viem: 2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - "@azure/app-configuration" - "@azure/cosmos" @@ -12993,12 +13002,12 @@ snapshots: dependencies: buffer: 6.0.3 - "@reown/appkit-scaffold-ui@1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@4.3.6)": + "@reown/appkit-scaffold-ui@1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76)": dependencies: - "@reown/appkit-common": 1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) - "@reown/appkit-controllers": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) - "@reown/appkit-ui": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) - "@reown/appkit-utils": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@4.3.6) + "@reown/appkit-common": 1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + "@reown/appkit-controllers": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + "@reown/appkit-ui": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + "@reown/appkit-utils": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) "@reown/appkit-wallet": 1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10) lit: 3.1.0 transitivePeerDependencies: @@ -13104,10 +13113,10 @@ snapshots: - valtio - zod - "@reown/appkit-ui@1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6)": + "@reown/appkit-ui@1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)": dependencies: - "@reown/appkit-common": 1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) - "@reown/appkit-controllers": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@reown/appkit-common": 1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + "@reown/appkit-controllers": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) "@reown/appkit-wallet": 1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10) lit: 3.1.0 qrcode: 1.5.3 @@ -13209,16 +13218,16 @@ snapshots: - utf-8-validate - zod - "@reown/appkit-utils@1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@4.3.6)": + "@reown/appkit-utils@1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76)": dependencies: - "@reown/appkit-common": 1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) - "@reown/appkit-controllers": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@reown/appkit-common": 1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + "@reown/appkit-controllers": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) "@reown/appkit-polyfills": 1.7.2 "@reown/appkit-wallet": 1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10) "@walletconnect/logger": 2.1.2 - "@walletconnect/universal-provider": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@walletconnect/universal-provider": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - viem: 2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + viem: 2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - "@azure/app-configuration" - "@azure/cosmos" @@ -13345,20 +13354,20 @@ snapshots: - typescript - utf-8-validate - "@reown/appkit@1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6)": + "@reown/appkit@1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)": dependencies: - "@reown/appkit-common": 1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) - "@reown/appkit-controllers": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@reown/appkit-common": 1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + "@reown/appkit-controllers": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) "@reown/appkit-polyfills": 1.7.2 - "@reown/appkit-scaffold-ui": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@4.3.6) - "@reown/appkit-ui": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) - "@reown/appkit-utils": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@4.3.6) + "@reown/appkit-scaffold-ui": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) + "@reown/appkit-ui": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + "@reown/appkit-utils": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) "@reown/appkit-wallet": 1.7.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10) "@walletconnect/types": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))) - "@walletconnect/universal-provider": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@walletconnect/universal-provider": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) bs58: 6.0.0 valtio: 1.13.2(@types/react@18.3.28)(react@18.3.1) - viem: 2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + viem: 2.45.3(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - "@azure/app-configuration" - "@azure/cosmos" @@ -13729,30 +13738,30 @@ snapshots: - react-native - typescript - "@solana-program/compute-budget@0.8.0(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)))": + "@solana-program/compute-budget@0.8.0(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)))": dependencies: - "@solana/kit": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + "@solana/kit": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) - "@solana-program/stake@0.2.1(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)))": + "@solana-program/stake@0.2.1(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)))": dependencies: - "@solana/kit": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + "@solana/kit": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana-program/system@0.10.0(@solana/kit@5.5.1(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10))": dependencies: "@solana/kit": 5.5.1(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10) - "@solana-program/system@0.7.0(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)))": + "@solana-program/system@0.7.0(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)))": dependencies: - "@solana/kit": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + "@solana/kit": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) - "@solana-program/token-2022@0.4.2(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)))(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))": + "@solana-program/token-2022@0.4.2(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)))(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))": dependencies: - "@solana/kit": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + "@solana/kit": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana/sysvars": 5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) - "@solana-program/token@0.5.1(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)))": + "@solana-program/token@0.5.1(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)))": dependencies: - "@solana/kit": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + "@solana/kit": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana-program/token@0.9.0(@solana/kit@5.5.1(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(utf-8-validate@5.0.10))": dependencies: @@ -14057,7 +14066,7 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder - "@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))": + "@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))": dependencies: "@solana/accounts": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/addresses": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) @@ -14070,11 +14079,11 @@ snapshots: "@solana/rpc": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/rpc-parsed-types": 2.3.0(typescript@5.9.3) "@solana/rpc-spec-types": 2.3.0(typescript@5.9.3) - "@solana/rpc-subscriptions": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + "@solana/rpc-subscriptions": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana/rpc-types": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/signers": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/sysvars": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) - "@solana/transaction-confirmation": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + "@solana/transaction-confirmation": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana/transaction-messages": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/transactions": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) typescript: 5.9.3 @@ -14290,14 +14299,14 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder - "@solana/rpc-subscriptions-channel-websocket@2.3.0(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))": + "@solana/rpc-subscriptions-channel-websocket@2.3.0(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))": dependencies: "@solana/errors": 2.3.0(typescript@5.9.3) "@solana/functional": 2.3.0(typescript@5.9.3) "@solana/rpc-subscriptions-spec": 2.3.0(typescript@5.9.3) "@solana/subscribable": 2.3.0(typescript@5.9.3) typescript: 5.9.3 - ws: 8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) "@solana/rpc-subscriptions-channel-websocket@5.5.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)": dependencies: @@ -14329,7 +14338,7 @@ snapshots: optionalDependencies: typescript: 5.9.3 - "@solana/rpc-subscriptions@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))": + "@solana/rpc-subscriptions@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))": dependencies: "@solana/errors": 2.3.0(typescript@5.9.3) "@solana/fast-stable-stringify": 2.3.0(typescript@5.9.3) @@ -14337,7 +14346,7 @@ snapshots: "@solana/promises": 2.3.0(typescript@5.9.3) "@solana/rpc-spec-types": 2.3.0(typescript@5.9.3) "@solana/rpc-subscriptions-api": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) - "@solana/rpc-subscriptions-channel-websocket": 2.3.0(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + "@solana/rpc-subscriptions-channel-websocket": 2.3.0(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana/rpc-subscriptions-spec": 2.3.0(typescript@5.9.3) "@solana/rpc-transformers": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/rpc-types": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) @@ -14556,7 +14565,7 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder - "@solana/transaction-confirmation@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))": + "@solana/transaction-confirmation@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))": dependencies: "@solana/addresses": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/codecs-strings": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) @@ -14564,7 +14573,7 @@ snapshots: "@solana/keys": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/promises": 2.3.0(typescript@5.9.3) "@solana/rpc": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) - "@solana/rpc-subscriptions": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + "@solana/rpc-subscriptions": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana/rpc-types": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/transaction-messages": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@solana/transactions": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) @@ -14907,11 +14916,11 @@ snapshots: - supports-color - utf-8-validate - "@solana/wallet-adapter-trezor@0.1.6(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))": + "@solana/wallet-adapter-trezor@0.1.6(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))": dependencies: "@solana/wallet-adapter-base": 0.9.27(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana/web3.js": 1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) - "@trezor/connect-web": 9.7.1(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + "@trezor/connect-web": 9.7.1(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) buffer: 6.0.3 transitivePeerDependencies: - "@solana/sysvars" @@ -14941,11 +14950,11 @@ snapshots: "@solana/wallet-standard-util": 1.1.2 "@solana/web3.js": 1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) - "@solana/wallet-adapter-walletconnect@0.1.21(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6)": + "@solana/wallet-adapter-walletconnect@0.1.21(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)": dependencies: "@solana/wallet-adapter-base": 0.9.27(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana/web3.js": 1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) - "@walletconnect/solana-adapter": 0.0.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@walletconnect/solana-adapter": 0.0.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - "@azure/app-configuration" - "@azure/cosmos" @@ -14974,7 +14983,7 @@ snapshots: - utf-8-validate - zod - "@solana/wallet-adapter-wallets@0.19.32(@babel/runtime@7.28.6)(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bs58@5.0.0)(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-dom@18.3.1(react@18.3.1))(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@4.3.6)": + "@solana/wallet-adapter-wallets@0.19.32(@babel/runtime@7.28.6)(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bs58@5.0.0)(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-dom@18.3.1(react@18.3.1))(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(zod@3.25.76)": dependencies: "@solana/wallet-adapter-alpha": 0.1.14(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana/wallet-adapter-avana": 0.1.17(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) @@ -15007,10 +15016,10 @@ snapshots: "@solana/wallet-adapter-tokenary": 0.1.16(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana/wallet-adapter-tokenpocket": 0.4.23(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana/wallet-adapter-torus": 0.11.32(@babel/runtime@7.28.6)(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(utf-8-validate@5.0.10) - "@solana/wallet-adapter-trezor": 0.1.6(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + "@solana/wallet-adapter-trezor": 0.1.6(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana/wallet-adapter-trust": 0.1.17(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana/wallet-adapter-unsafe-burner": 0.1.11(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) - "@solana/wallet-adapter-walletconnect": 0.1.21(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@solana/wallet-adapter-walletconnect": 0.1.21(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) "@solana/wallet-adapter-xdefi": 0.1.11(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana/web3.js": 1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) transitivePeerDependencies: @@ -15405,13 +15414,13 @@ snapshots: - react-native - utf-8-validate - "@trezor/blockchain-link@2.6.1(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))": + "@trezor/blockchain-link@2.6.1(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))": dependencies: - "@solana-program/compute-budget": 0.8.0(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))) - "@solana-program/stake": 0.2.1(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))) - "@solana-program/token": 0.5.1(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))) - "@solana-program/token-2022": 0.4.2(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)))(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)) - "@solana/kit": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + "@solana-program/compute-budget": 0.8.0(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))) + "@solana-program/stake": 0.2.1(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))) + "@solana-program/token": 0.5.1(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))) + "@solana-program/token-2022": 0.4.2(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)))(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)) + "@solana/kit": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana/rpc-types": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3) "@stellar/stellar-sdk": 14.2.0 "@trezor/blockchain-link-types": 1.5.0(tslib@2.8.1) @@ -15459,9 +15468,9 @@ snapshots: - expo-localization - react-native - "@trezor/connect-web@9.7.1(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))": + "@trezor/connect-web@9.7.1(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))": dependencies: - "@trezor/connect": 9.7.1(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + "@trezor/connect": 9.7.1(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@trezor/connect-common": 0.5.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) "@trezor/utils": 9.5.0(tslib@2.8.1) "@trezor/websocket-client": 1.3.0(bufferutil@4.1.0)(tslib@2.8.1)(utf-8-validate@5.0.10) @@ -15480,7 +15489,7 @@ snapshots: - utf-8-validate - ws - "@trezor/connect@9.7.1(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))": + "@trezor/connect@9.7.1(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))": dependencies: "@ethereumjs/common": 10.1.1 "@ethereumjs/tx": 10.1.1 @@ -15488,12 +15497,12 @@ snapshots: "@mobily/ts-belt": 3.13.1 "@noble/hashes": 1.8.0 "@scure/bip39": 1.6.0 - "@solana-program/compute-budget": 0.8.0(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))) - "@solana-program/system": 0.7.0(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))) - "@solana-program/token": 0.5.1(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10))) - "@solana-program/token-2022": 0.4.2(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)))(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)) - "@solana/kit": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) - "@trezor/blockchain-link": 2.6.1(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + "@solana-program/compute-budget": 0.8.0(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))) + "@solana-program/system": 0.7.0(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))) + "@solana-program/token": 0.5.1(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))) + "@solana-program/token-2022": 0.4.2(@solana/kit@2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)))(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)) + "@solana/kit": 2.3.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) + "@trezor/blockchain-link": 2.6.1(@solana/sysvars@5.5.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.3))(bufferutil@4.1.0)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@trezor/blockchain-link-types": 1.5.0(tslib@2.8.1) "@trezor/blockchain-link-utils": 1.5.1(bufferutil@4.1.0)(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1)(utf-8-validate@5.0.10) "@trezor/connect-analytics": 1.4.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))(tslib@2.8.1) @@ -16047,7 +16056,7 @@ snapshots: dependencies: "@wallet-standard/base": 1.1.0 - "@walletconnect/core@2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6)": + "@walletconnect/core@2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)": dependencies: "@walletconnect/heartbeat": 1.2.2 "@walletconnect/jsonrpc-provider": 1.0.14 @@ -16061,7 +16070,7 @@ snapshots: "@walletconnect/safe-json": 1.0.2 "@walletconnect/time": 1.0.2 "@walletconnect/types": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))) - "@walletconnect/utils": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@walletconnect/utils": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) "@walletconnect/window-getters": 1.0.1 events: 3.3.0 lodash.isequal: 4.5.0 @@ -16091,7 +16100,7 @@ snapshots: - utf-8-validate - zod - "@walletconnect/core@2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6)": + "@walletconnect/core@2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)": dependencies: "@walletconnect/heartbeat": 1.2.2 "@walletconnect/jsonrpc-provider": 1.0.14 @@ -16105,7 +16114,7 @@ snapshots: "@walletconnect/safe-json": 1.0.2 "@walletconnect/time": 1.0.2 "@walletconnect/types": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))) - "@walletconnect/utils": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@walletconnect/utils": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) "@walletconnect/window-getters": 1.0.1 es-toolkit: 1.33.0 events: 3.3.0 @@ -16492,16 +16501,16 @@ snapshots: dependencies: tslib: 1.14.1 - "@walletconnect/sign-client@2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6)": + "@walletconnect/sign-client@2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)": dependencies: - "@walletconnect/core": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@walletconnect/core": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) "@walletconnect/events": 1.0.1 "@walletconnect/heartbeat": 1.2.2 "@walletconnect/jsonrpc-utils": 1.0.8 "@walletconnect/logger": 2.1.2 "@walletconnect/time": 1.0.2 "@walletconnect/types": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))) - "@walletconnect/utils": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@walletconnect/utils": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) events: 3.3.0 transitivePeerDependencies: - "@azure/app-configuration" @@ -16528,16 +16537,16 @@ snapshots: - utf-8-validate - zod - "@walletconnect/sign-client@2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6)": + "@walletconnect/sign-client@2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)": dependencies: - "@walletconnect/core": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@walletconnect/core": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) "@walletconnect/events": 1.0.1 "@walletconnect/heartbeat": 1.2.2 "@walletconnect/jsonrpc-utils": 1.0.8 "@walletconnect/logger": 2.1.2 "@walletconnect/time": 1.0.2 "@walletconnect/types": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))) - "@walletconnect/utils": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@walletconnect/utils": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) events: 3.3.0 transitivePeerDependencies: - "@azure/app-configuration" @@ -16708,13 +16717,13 @@ snapshots: - utf-8-validate - zod - "@walletconnect/solana-adapter@0.0.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6)": + "@walletconnect/solana-adapter@0.0.8(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@solana/wallet-adapter-base@0.9.27(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)": dependencies: - "@reown/appkit": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@reown/appkit": 1.7.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) "@solana/wallet-adapter-base": 0.9.27(@solana/web3.js@1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)) "@solana/web3.js": 1.98.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) - "@walletconnect/universal-provider": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) - "@walletconnect/utils": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@walletconnect/universal-provider": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) + "@walletconnect/utils": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) bs58: 6.0.0 transitivePeerDependencies: - "@azure/app-configuration" @@ -16864,7 +16873,7 @@ snapshots: - ioredis - uploadthing - "@walletconnect/universal-provider@2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6)": + "@walletconnect/universal-provider@2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)": dependencies: "@walletconnect/events": 1.0.1 "@walletconnect/jsonrpc-http-connection": 1.0.8 @@ -16873,9 +16882,9 @@ snapshots: "@walletconnect/jsonrpc-utils": 1.0.8 "@walletconnect/keyvaluestorage": 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))) "@walletconnect/logger": 2.1.2 - "@walletconnect/sign-client": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@walletconnect/sign-client": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) "@walletconnect/types": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))) - "@walletconnect/utils": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@walletconnect/utils": 2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) events: 3.3.0 lodash: 4.17.21 transitivePeerDependencies: @@ -16904,7 +16913,7 @@ snapshots: - utf-8-validate - zod - "@walletconnect/universal-provider@2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6)": + "@walletconnect/universal-provider@2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)": dependencies: "@walletconnect/events": 1.0.1 "@walletconnect/jsonrpc-http-connection": 1.0.8 @@ -16913,9 +16922,9 @@ snapshots: "@walletconnect/jsonrpc-utils": 1.0.8 "@walletconnect/keyvaluestorage": 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))) "@walletconnect/logger": 2.1.2 - "@walletconnect/sign-client": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@walletconnect/sign-client": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) "@walletconnect/types": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10))) - "@walletconnect/utils": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + "@walletconnect/utils": 2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) es-toolkit: 1.33.0 events: 3.3.0 transitivePeerDependencies: @@ -17104,7 +17113,7 @@ snapshots: - utf-8-validate - zod - "@walletconnect/utils@2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6)": + "@walletconnect/utils@2.19.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)": dependencies: "@noble/ciphers": 1.2.1 "@noble/curves": 1.8.1 @@ -17122,7 +17131,7 @@ snapshots: elliptic: 6.6.1 query-string: 7.1.3 uint8arrays: 3.1.0 - viem: 2.23.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + viem: 2.23.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - "@azure/app-configuration" - "@azure/cosmos" @@ -17148,7 +17157,7 @@ snapshots: - utf-8-validate - zod - "@walletconnect/utils@2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6)": + "@walletconnect/utils@2.19.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.84.0(@babel/core@7.29.0)(@types/react@18.3.28)(bufferutil@4.1.0)(react@18.3.1)(utf-8-validate@5.0.10)))(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76)": dependencies: "@noble/ciphers": 1.2.1 "@noble/curves": 1.8.1 @@ -17167,7 +17176,7 @@ snapshots: elliptic: 6.6.1 query-string: 7.1.3 uint8arrays: 3.1.0 - viem: 2.23.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.6) + viem: 2.23.2(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - "@azure/app-configuration" - "@azure/cosmos"