diff --git a/apps/web-app/package.json b/apps/web-app/package.json index 73e5477..2a43926 100644 --- a/apps/web-app/package.json +++ b/apps/web-app/package.json @@ -3,24 +3,24 @@ "private": true, "type": "module", "dependencies": { - "@i18next-selector/vite-plugin": "^0.0.18", + "@i18next-selector/vite-plugin": "0.0.18", "@privy-io/react-auth": "3.0.1", "@privy-io/wagmi": "2.0.0", - "@radix-ui/react-checkbox": "^1.3.3", - "@radix-ui/react-collapsible": "^1.1.12", - "@radix-ui/react-dialog": "^1.1.15", - "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-checkbox": "1.3.3", + "@radix-ui/react-collapsible": "1.1.12", + "@radix-ui/react-dialog": "1.1.15", + "@radix-ui/react-dropdown-menu": "2.1.16", "@radix-ui/react-label": "2.1.7", "@radix-ui/react-select": "2.2.6", "@radix-ui/react-slider": "1.3.6", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-switch": "1.2.6", - "@radix-ui/react-tabs": "^1.1.13", - "@radix-ui/react-tooltip": "^1.2.8", + "@radix-ui/react-tabs": "1.1.13", + "@radix-ui/react-tooltip": "1.2.8", "@sovryn/slayer-sdk": "workspace:*", "@sovryn/slayer-shared": "workspace:*", "@tailwindcss/vite": "4.1.13", - "@tanstack/devtools-vite": "^0.3.3", + "@tanstack/devtools-vite": "0.3.3", "@tanstack/react-devtools": "0.7.0", "@tanstack/react-form": "1.23.0", "@tanstack/react-query": "5.90.2", @@ -30,27 +30,29 @@ "@tanstack/router-plugin": "1.131.50", "class-variance-authority": "0.7.1", "clsx": "2.1.1", - "debug": "^4.4.3", + "debug": "4.4.3", "envalid": "8.1.0", - "i18next": "^25.5.2", - "i18next-browser-languagedetector": "^8.2.0", - "i18next-http-backend": "^3.0.2", + "i18next": "25.5.2", + "i18next-browser-languagedetector": "8.2.0", + "i18next-http-backend": "3.0.2", "lucide-react": "0.544.0", - "next-themes": "^0.4.6", + "next-themes": "0.4.6", "react": "19.1.1", "react-dom": "19.1.1", - "react-i18next": "^15.7.3", - "recharts": "^3.2.1", - "sonner": "^2.0.7", + "react-i18next": "15.7.3", + "recharts": "3.2.1", + "sonner": "2.0.7", "tailwind-merge": "3.3.1", "tailwindcss": "4.1.13", "tw-animate-css": "1.3.8", - "viem": "2.37.8", - "wagmi": "2.17.2", - "zod": "4.1.11" + "use-sync-external-store": "1.6.0", + "viem": "2.38.6", + "wagmi": "2.19.2", + "zod": "4.1.11", + "zustand": "5.0.8" }, "devDependencies": { - "@types/debug": "^4.1.12", + "@types/debug": "4.1.12", "vite": "7.1.7", "vite-plugin-node-polyfills": "0.24.0", "web-vitals": "5.1.0" diff --git a/apps/web-app/public/locales/en/common.json b/apps/web-app/public/locales/en/common.json index 4359588..ac7cf82 100644 --- a/apps/web-app/public/locales/en/common.json +++ b/apps/web-app/public/locales/en/common.json @@ -1,5 +1,9 @@ { "accept": "Accept", "cancel": "Cancel", - "close": "Close" + "close": "Close", + "confirm": "Confirm", + "continue": "Continue", + "abort": "Abort", + "loading": "Loading..." } diff --git a/apps/web-app/public/locales/en/tx.json b/apps/web-app/public/locales/en/tx.json new file mode 100644 index 0000000..5fb412a --- /dev/null +++ b/apps/web-app/public/locales/en/tx.json @@ -0,0 +1,10 @@ +{ + "title": "Transaction Confirmation", + "description": "Please review and confirm transactions in your wallet", + "preparing": "Preparing transaction...", + "connectWallet": "Connect your wallet to proceed.", + "switchNetwork": "Switch to {{name}} network", + "signMessage": "Sign Message", + "signTypedData": "Sign Typed Data", + "sendTransaction": "Send Transaction" +} diff --git a/apps/web-app/src/@types/i18next.d.ts b/apps/web-app/src/@types/i18next.d.ts index 41141d0..4d75bb1 100644 --- a/apps/web-app/src/@types/i18next.d.ts +++ b/apps/web-app/src/@types/i18next.d.ts @@ -1,5 +1,6 @@ import type { resources as common } from 'public/locales/en/common'; import type { resources as glossary } from 'public/locales/en/glossary'; +import type { resources as tx } from 'public/locales/en/tx'; import type { resources as validation } from 'public/locales/en/validation'; import { defaultNS } from '../i18n'; @@ -11,6 +12,7 @@ declare module 'i18next' { common: typeof common; glossary: typeof glossary; validation: typeof validation; + tx: typeof tx; }; } } diff --git a/apps/web-app/src/components/LinkToExplorer/LinkToExplorer.tsx b/apps/web-app/src/components/LinkToExplorer/LinkToExplorer.tsx new file mode 100644 index 0000000..e2ffad3 --- /dev/null +++ b/apps/web-app/src/components/LinkToExplorer/LinkToExplorer.tsx @@ -0,0 +1,65 @@ +import { useMemo } from 'react'; +import type { Address, Chain, Hash } from 'viem'; +import { useChains } from 'wagmi'; + +type ChainProps = + | { + chainId: number; + } + | { + chain: Chain; + }; + +type ValueProps = + | { + address: Address; + } + | { + txHash: Hash; + }; + +type LinkToExplorerProps = ValueProps & + ChainProps & { + className?: string; + }; + +export const LinkToExplorer = (props: LinkToExplorerProps) => { + const chains = useChains(); + + const chain = useMemo(() => { + if ('chain' in props) { + return props.chain; + } + return chains.find((c) => c.id === props.chainId); + }, [props, chains]); + + const path = useMemo(() => { + if ('address' in props) { + return `/address/${props.address}`; + } + if ('txHash' in props) { + return `/tx/${props.txHash}`; + } + return '/'; + }, [props]); + + const title = useMemo(() => { + if ('address' in props) { + return props.address; + } + if ('txHash' in props) { + return props.txHash; + } + }, [props, chain]); + + return ( + + {title?.slice(0, 6)}...{title?.slice(-4)} + + ); +}; diff --git a/apps/web-app/src/components/MoneyMarket/components/BorrowAssetsList/components/AssetsTable/AssetsTable.tsx b/apps/web-app/src/components/MoneyMarket/components/BorrowAssetsList/components/AssetsTable/AssetsTable.tsx index 9ef39ed..4678d52 100644 --- a/apps/web-app/src/components/MoneyMarket/components/BorrowAssetsList/components/AssetsTable/AssetsTable.tsx +++ b/apps/web-app/src/components/MoneyMarket/components/BorrowAssetsList/components/AssetsTable/AssetsTable.tsx @@ -12,11 +12,8 @@ import { AmountRenderer } from '@/components/ui/amount-renderer'; import { Button } from '@/components/ui/button'; import { InfoButton } from '@/components/ui/info-button'; import { sdk } from '@/lib/sdk'; -import { - BorrowRateMode, - type MoneyMarketPoolReserve, - type Token, -} from '@sovryn/slayer-sdk'; +import { useSlayerTx } from '@/lib/transactions'; +import { type MoneyMarketPoolReserve, type Token } from '@sovryn/slayer-sdk'; import { Decimal } from '@sovryn/slayer-shared'; import { useAccount, useWriteContract } from 'wagmi'; @@ -35,22 +32,31 @@ export const AssetsTable: FC = ({ assets }) => { const { writeContractAsync } = useWriteContract(); + const { begin } = useSlayerTx(); + const handleBorrow = async (token: Token) => { - const msg = await sdk.moneyMarket.borrow( - token, - Decimal.from(1), - BorrowRateMode.stable, - { + begin(async () => { + const s = await sdk.moneyMarket.borrow(token, Decimal.from(1), 1, { account: address!, - }, - ); - console.log('Transaction Request:', msg); + }); + console.log('Transaction Request:', s); + return s; + }); + + // const msg = await sdk.moneyMarket.borrow( + // token, + // Decimal.from(1), + // BorrowRateMode.stable, + // { + // account: address!, + // }, + // ); + // console.log('Transaction Request:', msg); - if (msg.length) { - const { chain, ...contractParams } = msg[0]; - const data = await writeContractAsync(contractParams); - console.log('Transaction Response:', data); - } + // if (msg.length) { + // // const data = await writeContractAsync(msg[0]); + // // console.log('Transaction Response:', data); + // } // const d = await signMessageAsync(msg); // console.warn('Signature:', { data, d }); }; diff --git a/apps/web-app/src/components/TransactionDialog/TransactionDialog.tsx b/apps/web-app/src/components/TransactionDialog/TransactionDialog.tsx new file mode 100644 index 0000000..19d08cb --- /dev/null +++ b/apps/web-app/src/components/TransactionDialog/TransactionDialog.tsx @@ -0,0 +1,61 @@ +import { txStore } from '@/lib/transactions/store'; +import clsx from 'clsx'; +import { Loader2Icon } from 'lucide-react'; +import { useTranslation } from 'react-i18next'; +import { useStoreWithEqualityFn } from 'zustand/traditional'; +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, +} from '../ui/dialog'; +import { TxList } from './TxList'; + +export const TransactionDialogProvider = () => { + const { t } = useTranslation('tx'); + + const [isOpen, isReady] = useStoreWithEqualityFn( + txStore, + (state) => [state.isFetching || state.isReady, state.isReady] as const, + ); + + const onClose = (open: boolean) => { + if (!open) { + txStore.getState().reset(); + } + }; + + const handleEscapes = (e: Event) => { + if (!isReady) { + txStore.getState().reset(); + return; + } + e.preventDefault(); + }; + + return ( + + + {isReady ? ( + + ) : ( + <> + + {t(($) => $.title)} + {t(($) => $.description)} + + + + {t(($) => $.preparing)} + + > + )} + + + ); +}; diff --git a/apps/web-app/src/components/TransactionDialog/TransactionItem.tsx b/apps/web-app/src/components/TransactionDialog/TransactionItem.tsx new file mode 100644 index 0000000..bc99b4d --- /dev/null +++ b/apps/web-app/src/components/TransactionDialog/TransactionItem.tsx @@ -0,0 +1,63 @@ +import { TRANSACTION_STATE, type SlayerTx } from '@/lib/transactions/store'; +import { isTransactionRequest } from '@sovryn/slayer-sdk'; +import { + CircleCheckBig, + CircleDashed, + CircleX, + ExternalLink, + Loader2Icon, +} from 'lucide-react'; +import { useMemo, type FC } from 'react'; +import { useChains } from 'wagmi'; +import { LinkToExplorer } from '../LinkToExplorer/LinkToExplorer'; + +type TransactionItemProps = { + index: number; + item: SlayerTx; +}; + +export const TransactionItem: FC = ({ item, index }) => { + const isTx = isTransactionRequest(item); + const chains = useChains(); + const chain = useMemo(() => { + if (isTx) { + const chainId = item.request.data.chain?.id; + return chains.find((c) => c.id === chainId); + } + return undefined; + }, [chains, isTx, item.request.data]); + + return ( + + + + {item.state === TRANSACTION_STATE.idle && } + {item.state === TRANSACTION_STATE.pending && ( + + )} + {item.state === TRANSACTION_STATE.success && ( + + )} + {item.state === TRANSACTION_STATE.error && ( + + )} + #{index + 1} + + + + {item.title} + {item.description} + {isTx && chain && item.res?.transactionHash && ( + + + + + )} + + {item.error && ( + {item.error} + )} + + + ); +}; diff --git a/apps/web-app/src/components/TransactionDialog/TxList.tsx b/apps/web-app/src/components/TransactionDialog/TxList.tsx new file mode 100644 index 0000000..1d5ad72 --- /dev/null +++ b/apps/web-app/src/components/TransactionDialog/TxList.tsx @@ -0,0 +1,146 @@ +import { txStore } from '@/lib/transactions/store'; +import { + isMessageRequest, + isTransactionRequest, + isTypedDataRequest, +} from '@sovryn/slayer-sdk'; +import clsx from 'clsx'; +import { Loader2Icon } from 'lucide-react'; +import { useCallback, useMemo } from 'react'; +import { useTranslation } from 'react-i18next'; +import { toast } from 'sonner'; +import { useAccount, useConfig, useSwitchChain } from 'wagmi'; +import { useStore } from 'zustand'; +import { useStoreWithEqualityFn } from 'zustand/traditional'; +import { Button } from '../ui/button'; +import { + DialogClose, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, +} from '../ui/dialog'; +import { useInternalTxHandler } from './hooks/use-internal-tx-handler'; +import { TransactionItem } from './TransactionItem'; + +export const TxList = () => { + const { t } = useTranslation(['tx', 'common']); + const { switchChain } = useSwitchChain(); + const config = useConfig(); + const { isConnected, chainId } = useAccount(); + + const items = useStoreWithEqualityFn(txStore, (state) => state.items); + const handlers = useStore(txStore, (state) => state.handlers); + + const { confirm, currentTx, isPending } = useInternalTxHandler({ + // Default handlers with toasts + onError: (_, message) => { + if (!handlers.onError) { + toast.error(message); + } + }, + onCompleted: (count) => { + if (!handlers.onCompleted) { + toast.success( + count > 1 + ? `${count} transactions completed` + : `Transaction completed`, + ); + } + }, + }); + + const currentChain = useMemo( + () => config.chains.find((c) => c.id === chainId), + [chainId, config.chains], + ); + + const requiredChain = useMemo(() => { + let id: number | undefined = undefined; + if (currentTx && isTransactionRequest(currentTx)) { + id = currentTx.request.data.chain?.id; + } + + if (currentTx && isTypedDataRequest(currentTx)) { + id = currentTx.request.data.domain?.chainId + ? Number(currentTx.request.data.domain.chainId) + : undefined; + } + + return id !== undefined + ? config.chains.find((c) => c.id === id) + : undefined; + }, [currentTx, config.chains]); + + const confirmLabel = useMemo(() => { + if (currentTx) { + if (isMessageRequest(currentTx)) { + return t(($) => $.signMessage, { ns: 'tx' }); + } else if (isTransactionRequest(currentTx)) { + return t(($) => $.sendTransaction, { ns: 'tx' }); + } else if (isTypedDataRequest(currentTx)) { + return t(($) => $.signTypedData, { ns: 'tx' }); + } + } + return t(($) => $.confirm, { ns: 'common' }); + }, [currentTx]); + + const handleSwitchChain = useCallback(() => { + if (!requiredChain) return; + switchChain({ + chainId: requiredChain.id, + addEthereumChainParameter: { + nativeCurrency: requiredChain.nativeCurrency, + rpcUrls: requiredChain.rpcUrls.default.http, + chainName: requiredChain.name, + }, + }); + }, [requiredChain, switchChain]); + + return ( + <> + + {t(($) => $.title, { ns: 'tx' })} + + {t(($) => $.description, { ns: 'tx' })} + + + {items.map((tx, index) => ( + + ))} + + {!isConnected && {t(($) => $.connectWallet)}} + + + + + {t(($) => (currentTx ? $.abort : $.continue), { ns: 'common' })} + + + + {currentTx && ( + <> + {chainId && + requiredChain !== undefined && + currentChain?.id !== requiredChain?.id ? ( + + {t(($) => $.switchNetwork, { + ns: 'tx', + name: requiredChain.name, + })} + + ) : ( + + + {confirmLabel} + + )} + > + )} + + > + ); +}; diff --git a/apps/web-app/src/components/TransactionDialog/hooks/use-internal-tx-handler.ts b/apps/web-app/src/components/TransactionDialog/hooks/use-internal-tx-handler.ts new file mode 100644 index 0000000..1b61753 --- /dev/null +++ b/apps/web-app/src/components/TransactionDialog/hooks/use-internal-tx-handler.ts @@ -0,0 +1,247 @@ +import { + TRANSACTION_STATE, + txStore, + type TxHandlers, +} from '@/lib/transactions/store'; +import { + isMessageRequest, + isTransactionRequest, + isTypedDataRequest, +} from '@sovryn/slayer-sdk'; +import { useCallback, useEffect, useState } from 'react'; +import { prepareTransactionRequest } from 'viem/actions'; +import { + useConfig, + useSendTransaction, + useSignMessage, + useSignTypedData, + useWaitForTransactionReceipt, +} from 'wagmi'; +import { useStore } from 'zustand'; +import { useStoreWithEqualityFn } from 'zustand/traditional'; +import { handleErrorMessage } from '../utils'; + +export function useInternalTxHandler( + props: Pick = {}, +) { + const [isPreparing, setIsPreparing] = useState(false); + + const currentTx = useStoreWithEqualityFn(txStore, (state) => + state.items.find((t) => t.state !== TRANSACTION_STATE.success), + ); + const pendingTxs = useStoreWithEqualityFn(txStore, (state) => + state.items.filter((t) => t.state !== TRANSACTION_STATE.success).slice(1), + ); + + const updateItem = useStore(txStore, (state) => state.updateItem); + const setItemError = useStore(txStore, (state) => state.setItemError); + const updateItemState = useStore(txStore, (state) => state.updateItemState); + const handlers = useStore(txStore, (state) => state.handlers); + + const config = useConfig(); + + const { signMessage, isPending: isSigning } = useSignMessage({ + mutation: { + onError(error) { + if (!currentTx) return; + const msg = handleErrorMessage(error); + setItemError(currentTx.id, msg); + props.onError?.(currentTx!, msg, error); + handlers.onError?.(currentTx!, msg, error); + }, + onSuccess(data) { + if (!currentTx) return; + updateItem(currentTx.id, TRANSACTION_STATE.success, { + transactionHash: data, + }); + handlers.onAfterSign?.( + currentTx, + { transactionHash: data }, + pendingTxs, + ); + handlers.onSuccess?.(currentTx, { transactionHash: data }); + }, + }, + }); + + const { signTypedData, isPending: isSigningTypedData } = useSignTypedData({ + mutation: { + onError(error) { + if (!currentTx) return; + const msg = handleErrorMessage(error); + setItemError(currentTx?.id || '', msg); + props.onError?.(currentTx!, msg, error); + handlers.onError?.(currentTx!, msg, error); + }, + onSuccess(data) { + if (!currentTx) return; + updateItem(currentTx?.id || '', TRANSACTION_STATE.success, { + transactionHash: data, + }); + handlers.onAfterSign?.( + currentTx, + { transactionHash: data }, + pendingTxs, + ); + handlers.onSuccess?.(currentTx, { transactionHash: data }); + }, + }, + }); + + const { + sendTransaction, + data: pendingTxHash, + isPending: isSending, + } = useSendTransaction({ + mutation: { + onSettled(data, error) { + if (!currentTx) return; + if (data) { + updateItem(currentTx.id, TRANSACTION_STATE.pending, { + transactionHash: data, + }); + handlers.onAfterSign?.( + currentTx, + { transactionHash: data }, + pendingTxs, + ); + } else if (error) { + const msg = handleErrorMessage(error); + setItemError(currentTx.id, msg); + props.onError?.(currentTx, msg, error); + handlers.onError?.(currentTx, msg, error); + } + }, + }, + }); + + const { + data: receipt, + status: receiptStatus, + isLoading: isReceiptPending, + error: receiptError, + } = useWaitForTransactionReceipt({ + chainId: + currentTx && isTransactionRequest(currentTx) + ? // eslint-disable-next-line @typescript-eslint/no-explicit-any + (currentTx.request.data.chain?.id as any) + : undefined, + hash: + currentTx && isTransactionRequest(currentTx) + ? currentTx.res?.transactionHash + : undefined, + onReplaced: (tx) => { + if (!currentTx) return; + if (tx.reason === 'cancelled') { + updateItemState(currentTx.id, TRANSACTION_STATE.idle); + props.onError?.( + currentTx, + 'Transaction was cancelled', + new Error('Transaction was cancelled'), + ); + handlers.onError?.( + currentTx, + 'Transaction was cancelled', + new Error('Transaction was cancelled'), + ); + return; + } + updateItem( + currentTx.id, + tx.transactionReceipt.status === 'success' + ? TRANSACTION_STATE.success + : TRANSACTION_STATE.error, + tx.transactionReceipt, + ); + }, + }); + + useEffect(() => { + if (!currentTx || !receipt) return; + if (receiptStatus === 'success') { + updateItem(currentTx.id, TRANSACTION_STATE.success, receipt); + handlers.onSuccess?.(currentTx, receipt); + } else if (receiptStatus === 'error') { + updateItem(currentTx.id, TRANSACTION_STATE.error, receipt); + setItemError( + currentTx.id, + `Transaction failed with status: ${receipt.status}`, + ); + props.onError?.( + currentTx, + `Transaction failed with status: ${receipt.status}`, + receiptError, + ); + handlers.onError?.( + currentTx, + `Transaction failed with status: ${receipt.status}`, + receiptError, + ); + } + }, [currentTx, receipt, receiptStatus, receiptError]); + + const handleConfirm = useCallback(async () => { + if (!currentTx) return; + try { + setIsPreparing(true); + updateItemState(currentTx.id, TRANSACTION_STATE.pending); + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const modifiedData: any = + (await handlers.onBeforeSign?.(currentTx, txStore.getState().items)) ?? + currentTx.request.data; + + if (isMessageRequest(currentTx)) { + signMessage(modifiedData); + } else if (isTypedDataRequest(currentTx)) { + signTypedData(modifiedData); + } else if (isTransactionRequest(currentTx)) { + const prepared = await prepareTransactionRequest( + config.getClient(), + modifiedData, + ); + sendTransaction(prepared); + } else { + throw new Error('Unknown transaction request type'); + } + } catch (e) { + const msg = handleErrorMessage(e); + setItemError(currentTx.id, msg); + props.onError?.(currentTx, msg, e); + handlers.onError?.(currentTx, msg, e); + } finally { + setIsPreparing(false); + } + }, [ + currentTx, + config, + sendTransaction, + setItemError, + signMessage, + signTypedData, + updateItemState, + ]); + + const isPending = + isPreparing || + isSending || + isSigning || + isSigningTypedData || + (pendingTxHash && isReceiptPending) || + currentTx?.state === TRANSACTION_STATE.pending; + + useEffect(() => { + const count = txStore.getState().items.length; + if (!isPending && !currentTx && count > 0) { + props.onCompleted?.(count); + handlers.onCompleted?.(count); + } + }, [isPending, currentTx, props]); + + return { + currentTx, + pendingTxs, + isPending, + confirm: handleConfirm, + }; +} diff --git a/apps/web-app/src/components/TransactionDialog/utils.ts b/apps/web-app/src/components/TransactionDialog/utils.ts new file mode 100644 index 0000000..353948a --- /dev/null +++ b/apps/web-app/src/components/TransactionDialog/utils.ts @@ -0,0 +1,17 @@ +export function handleErrorMessage(error: unknown): string { + if (error instanceof Error) { + if (error.cause) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const cause: any = error.cause; + return ( + cause.details?.detail ?? + cause.details ?? + cause.shortMessage ?? + error.message ?? + 'An unknown error occurred' + ); + } + return error.message || 'An unknown error occurred'; + } + return 'An unknown error occurred'; +} diff --git a/apps/web-app/src/integrations/privy/connector.tsx b/apps/web-app/src/integrations/privy/connector.tsx index 5b51543..7446b06 100644 --- a/apps/web-app/src/integrations/privy/connector.tsx +++ b/apps/web-app/src/integrations/privy/connector.tsx @@ -1,16 +1,9 @@ import { Button } from '@/components/ui/button'; +import { useSlayerTx } from '@/lib/transactions'; import { usePrivy, useWallets } from '@privy-io/react-auth'; import { useSetActiveWallet } from '@privy-io/wagmi'; -import { parseEther } from 'viem/utils'; -import { - useAccount, - useDisconnect, - useSendTransaction, - useSignMessage, - useSwitchChain, - type Config, -} from 'wagmi'; -import type { SendTransactionVariables } from 'wagmi/query'; +import { bobSepolia, rootstockTestnet } from 'viem/chains'; +import { useAccount, useDisconnect, useSwitchChain } from 'wagmi'; export const PrivyConnector = () => { // Privy hooks @@ -26,7 +19,8 @@ export const PrivyConnector = () => { const { wallets, ready: walletsReady } = useWallets(); // WAGMI hooks - const { address, isConnected, isConnecting, isDisconnected } = useAccount(); + const { address, isConnected, isConnecting, isDisconnected, chainId } = + useAccount(); const { disconnect } = useDisconnect(); const { setActiveWallet } = useSetActiveWallet(); const { switchChain } = useSwitchChain(); @@ -55,7 +49,7 @@ export const PrivyConnector = () => { return ( {wallet.address} { - switchChain({ chainId: 31 })}> + Switch to another network: {chainId} + + switchChain({ chainId: rootstockTestnet.id })} + > Switch to rootstock testnet + + switchChain({ chainId: bobSepolia.id })}> + Switch to bobSepolia + > )} @@ -122,57 +124,97 @@ export const PrivyConnector = () => { const SignMessage = () => { const { address } = useAccount(); - const { data, isPending, isSuccess, isError, signMessage } = useSignMessage({ - mutation: { - onSuccess: () => { - alert('Sign Message Success'); - }, + + const { begin } = useSlayerTx({ + async onBeforeSign(tx) { + console.log('onBeforeSign', tx); + return tx.request.data; + }, + onAfterSign(tx, res, next) { + console.log('onAfterSign', tx, res, next); + }, + onError(tx, error) { + console.error('onError', tx, error); + }, + onSuccess(tx, res) { + console.log('onSuccess', tx, res); + }, + onCompleted(count) { + console.log('onCompleted', count); }, }); + + const onClick = async () => { + begin(async () => { + return [ + { + id: 'sign-message-1', + title: 'Sign Message 1', + description: 'Please sign message 1', + request: { + type: 'message', + data: { + message: 'This is message 1', + account: address!, + }, + }, + }, + ]; + }); + }; + return ( <> useSignMessage - { - signMessage({ - message: `Signing with WAGMI\nWAGMI address: ${address}`, - }); - }} - > - Sign! - - {isSuccess && Signature: {data}} - {isError && Error signing message} + Sign! > ); }; const SendTransaction = () => { - const transactionRequest: SendTransactionVariables = { - to: '0x2bD2201BFE156A71EB0D02837172ffc237218505'.toLowerCase() as `0x${string}`, - value: parseEther('0.001'), - // type: 'eip1559', // does not work for rootstock - }; + const { address } = useAccount(); + + const { begin } = useSlayerTx(); - const { data, isPending, isSuccess, sendTransaction, error } = - useSendTransaction(); + const onClick = async () => { + begin(async () => { + return [ + { + id: 'tx1', + title: 'Send on rootstock testnet', + description: 'Send transaction to self on rootstock testnet', + request: { + type: 'transaction', + data: { + to: address!, + value: 1n, + chain: rootstockTestnet, + account: address!, + }, + }, + }, + { + id: 'tx2', + title: 'Send on bob sepolia testnet', + description: 'Send transaction to self on bob sepolia testnet', + request: { + type: 'transaction', + data: { + to: address!, + value: 1n, + chain: bobSepolia, + account: address!, + }, + }, + }, + ]; + }); + }; return ( <> - useSendTransaction - - We recommend doing this on rootstock testnet (chainId 31). - - sendTransaction(transactionRequest as any)} - disabled={!sendTransaction} - > - Send to victor - - {isPending && Check wallet} - {isSuccess && Transaction: {JSON.stringify(data)}} - {error && Error: {error.message}} + Send Transactions + Send to self > ); }; diff --git a/apps/web-app/src/integrations/privy/root-provider.tsx b/apps/web-app/src/integrations/privy/root-provider.tsx index c95888d..e55608e 100644 --- a/apps/web-app/src/integrations/privy/root-provider.tsx +++ b/apps/web-app/src/integrations/privy/root-provider.tsx @@ -1,7 +1,13 @@ 'use client'; import { PrivyProvider, type PrivyClientConfig } from '@privy-io/react-auth'; -import { rootstockTestnet } from 'viem/chains'; +import { + bobSepolia, + mainnet, + rootstock, + rootstockTestnet, + sepolia, +} from 'viem/chains'; const privyConfig: PrivyClientConfig = { embeddedWallets: { @@ -13,7 +19,7 @@ const privyConfig: PrivyClientConfig = { appearance: { showWalletLoginFirst: true, }, - supportedChains: [rootstockTestnet], + supportedChains: [mainnet, bobSepolia, sepolia, rootstock, rootstockTestnet], }; export function Provider({ children }: { children: React.ReactNode }) { diff --git a/apps/web-app/src/integrations/wagmi/config.ts b/apps/web-app/src/integrations/wagmi/config.ts index ec6c9e6..5909633 100644 --- a/apps/web-app/src/integrations/wagmi/config.ts +++ b/apps/web-app/src/integrations/wagmi/config.ts @@ -1,13 +1,21 @@ import { createConfig } from '@privy-io/wagmi'; import { http } from 'viem'; -import { bobSepolia } from 'viem/chains'; +import { + bobSepolia, + mainnet, + rootstock, + rootstockTestnet, + sepolia, +} from 'viem/chains'; export const config = createConfig({ - chains: [bobSepolia], + chains: [mainnet, sepolia, bobSepolia, rootstock, rootstockTestnet], transports: { - // [rootstock.id]: slayer(), + [mainnet.id]: http(), + [sepolia.id]: http(), [bobSepolia.id]: http(), - // [rootstockTestnet.id]: slayer(), + [rootstock.id]: http(), + [rootstockTestnet.id]: http(), }, }); diff --git a/apps/web-app/src/integrations/wagmi/root-provider.tsx b/apps/web-app/src/integrations/wagmi/root-provider.tsx index d37eb4d..b7d5593 100644 --- a/apps/web-app/src/integrations/wagmi/root-provider.tsx +++ b/apps/web-app/src/integrations/wagmi/root-provider.tsx @@ -1,20 +1,10 @@ -import { Dialog } from '@/components/ui/dialog'; +import { TransactionDialogProvider } from '@/components/TransactionDialog/TransactionDialog'; import { WagmiProvider } from '@privy-io/wagmi'; import { config } from './config'; export const Provider = ({ children }: { children: React.ReactNode }) => ( {children} - + ); - -export const runTx = async (tx: any) => { - console.log('Running tx:', tx); - await new Promise((resolve) => setTimeout(resolve, 20_000)); - console.log('Tx done', tx); -}; - -const Tx = () => { - return Transaction; -}; diff --git a/apps/web-app/src/lib/sdk.ts b/apps/web-app/src/lib/sdk.ts index fd84d6c..8ec5e30 100644 --- a/apps/web-app/src/lib/sdk.ts +++ b/apps/web-app/src/lib/sdk.ts @@ -14,7 +14,7 @@ const sdks = new Map>(); export function makeSdkClient( client: PublicClient, ): SDK { - let sdk = sdks.get(client.chain.id) as SDK; + let sdk = sdks.get(client.chain.id) as unknown as SDK; if (sdk) { return sdk as SDK; } @@ -24,7 +24,7 @@ export function makeSdkClient( ENV.VITE_MODE === 'custom' ? ENV.VITE_INDEXER_BASE_URL : undefined, publicClient: client, }); - sdks.set(client.chain.id, sdk as SDK); + sdks.set(client.chain.id, sdk as unknown as SDK); return sdk as SDK; } diff --git a/apps/web-app/src/lib/transactions/index.ts b/apps/web-app/src/lib/transactions/index.ts new file mode 100644 index 0000000..02c9078 --- /dev/null +++ b/apps/web-app/src/lib/transactions/index.ts @@ -0,0 +1,33 @@ +import type { SdkTransactionRequest } from '@sovryn/slayer-sdk'; +import { useCallback, useEffect } from 'react'; +import type { Account, Chain } from 'viem'; +import { useStore } from 'zustand'; +import { txStore, type TxHandlers } from './store'; + +export const useSlayerTx = ( + handlers: TxHandlers = {}, +) => { + const { setItems, setIsFetching, reset, setHandlers } = useStore(txStore); + + const begin = useCallback( + async ( + waitFor?: () => Promise[]>, + ) => { + setIsFetching(true); + if (waitFor) { + const txs = await waitFor(); + setItems(txs); + setHandlers(handlers); + } + // const result = await send(); + // return result; + }, + [setIsFetching, setItems, setHandlers, handlers], + ); + + useEffect(() => { + return () => reset(); + }, [reset]); + + return { begin, abort: reset }; +}; diff --git a/apps/web-app/src/lib/transactions/store.ts b/apps/web-app/src/lib/transactions/store.ts new file mode 100644 index 0000000..31bf19b --- /dev/null +++ b/apps/web-app/src/lib/transactions/store.ts @@ -0,0 +1,126 @@ +import type { SdkTransactionRequest } from '@sovryn/slayer-sdk'; +import type { TransactionReceipt } from 'viem'; +import { createStore } from 'zustand'; +import { combine } from 'zustand/middleware'; + +export const TRANSACTION_STATE = { + idle: 'idle', + pending: 'pending', + success: 'success', + error: 'error', +} as const; + +export type TxState = + (typeof TRANSACTION_STATE)[keyof typeof TRANSACTION_STATE]; + +export type SlayerTx = SdkTransactionRequest & { + state: TxState; + res: Partial | undefined; + error?: string; +}; + +export type TxHandlers = { + // can be used to modify the tx request before signing/sending + onBeforeSign?: ( + tx: SlayerTx, + /** All transactions in the queue */ + items: SlayerTx[], + ) => Promise; + // can be used to handle the response after signing/sending of the particular tx + onAfterSign?: (tx: SlayerTx, res: SlayerTx['res'], next: SlayerTx[]) => void; + // called when a transaction is successfully processed + onSuccess?: (tx: SlayerTx, res: SlayerTx['res']) => void; + // called when an error occurs during processing of a tx + onError?: (tx: SlayerTx, message: string, error: unknown) => void; + // called when all transactions are completed + onCompleted?: (count: number) => void; +}; + +type State = { + isFetching: boolean; + isReady: boolean; + items: SlayerTx[]; + handlers: TxHandlers; +}; + +type Actions = { + setIsFetching: (isFetching: boolean) => void; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + setItems: (items: SdkTransactionRequest[]) => void; + updateItemState: (id: string, state: TxState) => void; + updateItem: ( + id: string, + state: TxState, + res: Partial | undefined, + ) => void; + setItemError: (id: string, error: string) => void; + setHandlers: (handlers: TxHandlers) => void; + reset: () => void; +}; + +type Store = State & Actions; + +export const txStore = createStore( + combine( + { + isFetching: false, + isReady: false, + items: [] as SlayerTx[], + handlers: {}, + }, + (set) => ({ + setIsFetching: (isFetching: boolean) => set({ isFetching }), + // eslint-disable-next-line @typescript-eslint/no-explicit-any + setItems: (items: SdkTransactionRequest[]) => + set({ + items: items.map(toTx), + isFetching: false, + isReady: true, + }), + updateItemState: (id: string, state: TxState) => + set((store) => ({ + items: store.items.map((item) => + item.id === id ? { ...item, state } : item, + ), + })), + updateItem: ( + id: string, + status: TxState, + res: Partial | undefined, + ) => + set((state) => ({ + items: state.items.map((item) => + item.id === id + ? { ...item, state: status, res, error: undefined } + : item, + ), + })), + setItemError: (id: string, error: string) => + set((state) => ({ + ...state, + items: state.items.map((item) => + item.id === id + ? { ...item, state: TRANSACTION_STATE.error, error } + : item, + ), + })), + reset: () => + set({ + isFetching: false, + isReady: false, + items: [], + handlers: {}, + }), + setHandlers: (handlers: TxHandlers) => + set({ + handlers, + }), + }), + ), +); + +const toTx = (item: SdkTransactionRequest): SlayerTx => ({ + ...item, + state: TRANSACTION_STATE.idle, + res: undefined, +}); diff --git a/eslint.config.mjs b/eslint.config.mjs index 7b3b32c..1a353d9 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -29,7 +29,16 @@ export default [ }, ], '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-explicit-any': 'warn', 'no-constant-binary-expression': 'off', + 'no-restricted-syntax': [ + 'error', + { + selector: 'TSEnumDeclaration', + message: + 'Avoid using TypeScript enums. Use `as const` objects instead.', + }, + ], }, }, ]; diff --git a/nx.json b/nx.json index 4c993a0..8d4164f 100644 --- a/nx.json +++ b/nx.json @@ -3,7 +3,7 @@ "targetDefaults": { "dev": { "continuous": true, - "dependsOn": ["^watch-deps", "^dev"] + "dependsOn": ["^watch-deps", "^build-deps", "^dev"] }, "serve": { "continuous": true, diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 22aa344..7227008 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -17,9 +17,9 @@ }, "dependencies": { "@sovryn/slayer-shared": "workspace:*", - "debug": "^4.4.3", + "debug": "4.4.3", "tslib": "2.8.1", - "viem": "2.37.8" + "viem": "2.38.6" }, "devDependencies": { "@types/debug": "^4.1.12" diff --git a/packages/sdk/src/index.ts b/packages/sdk/src/index.ts index 34dfa27..9f0b8ca 100644 --- a/packages/sdk/src/index.ts +++ b/packages/sdk/src/index.ts @@ -1,4 +1,5 @@ export * from './constants.js'; export * from './lib/context.js'; export * from './lib/sdk.js'; +export * from './lib/transaction.js'; export * from './types.js'; diff --git a/packages/sdk/src/lib/helpers.ts b/packages/sdk/src/lib/helpers.ts index e965db9..a288502 100644 --- a/packages/sdk/src/lib/helpers.ts +++ b/packages/sdk/src/lib/helpers.ts @@ -1,3 +1,4 @@ +import { Account, Address } from 'viem'; import { DEFAULT_PAGE_LIMIT } from '../constants.js'; import { SdkPaginatedQuery } from '../types.js'; @@ -14,3 +15,9 @@ export const buildQuery = (params: QueryParams = {}) => { search: params.search ?? undefined, }; }; + +export const toAddress = (address: Address | Account): Address => + (typeof address === 'string' + ? address + : address.address + ).toLowerCase() as Address; diff --git a/packages/sdk/src/lib/transaction.ts b/packages/sdk/src/lib/transaction.ts index 7877ef5..0946243 100644 --- a/packages/sdk/src/lib/transaction.ts +++ b/packages/sdk/src/lib/transaction.ts @@ -1,7 +1,110 @@ -export interface TransactionRequest { - from: string; - to: string; - value: string; - gasLimit: string; - data: string; +import type { + Account, + Chain, + SignMessageParameters, + SignTransactionParameters, + SignTypedDataParameters, +} from 'viem'; + +export interface SdkTransactionRequest< + chain extends Chain = any, + account extends Account = any, +> { + // A unique identifier for the transaction request + id: string; + // A human-readable title for the transaction request + title: string; + // A detailed description of the transaction request + description: string; + // The actual request data, which can be a message, typed data, or transaction + request: SdkRequest; +} + +export type SdkRequest< + chain extends Chain = any, + account extends Account = any, +> = + | { + type: 'message'; + data: SignMessageParameters; + } + | { + type: 'typed_data'; + data: SignTypedDataParameters; + } + | { + type: 'transaction'; + data: SignTransactionParameters; + }; + +export function isTransactionRequest< + chain extends Chain = any, + account extends Account = any, +>( + tx: SdkTransactionRequest, +): tx is SdkTransactionRequest & { + request: { + type: 'transaction'; + data: SignTransactionParameters; + }; +} { + return tx.request.type === 'transaction'; +} + +export function isMessageRequest< + chain extends Chain = any, + account extends Account = any, +>( + tx: SdkTransactionRequest, +): tx is SdkTransactionRequest & { + request: { + type: 'message'; + data: SignMessageParameters; + }; +} { + return tx.request.type === 'message'; +} + +export function isTypedDataRequest< + chain extends Chain = any, + account extends Account = any, +>( + tx: SdkTransactionRequest, +): tx is SdkTransactionRequest & { + request: { + type: 'typed_data'; + data: SignTypedDataParameters; + }; +} { + return tx.request.type === 'typed_data'; +} + +export function makeTransactionRequest< + chain extends Chain = any, + account extends Account = any, +>(tx: SignTransactionParameters): SdkRequest { + return { + type: 'transaction', + data: tx, + }; +} + +export function makeMessageRequest< + chain extends Chain = any, + account extends Account = any, +>(msg: SignMessageParameters): SdkRequest { + return { + type: 'message', + data: msg, + }; +} + +export function makeTypedDataRequest< + chain extends Chain = any, + account extends Account = any, +>(typedData: SignTypedDataParameters): SdkRequest { + return { + type: 'typed_data', + data: typedData, + }; } diff --git a/packages/sdk/src/managers/money-market.manager.ts b/packages/sdk/src/managers/money-market.manager.ts index 11853f1..af658a7 100644 --- a/packages/sdk/src/managers/money-market.manager.ts +++ b/packages/sdk/src/managers/money-market.manager.ts @@ -1,7 +1,13 @@ import { Decimal } from '@sovryn/slayer-shared'; -import { zeroAddress, type Chain, type WriteContractParameters } from 'viem'; +import { Account, zeroAddress, type Chain } from 'viem'; import { BaseClient, type SdkRequestOptions } from '../lib/context.js'; -import { buildQuery } from '../lib/helpers.js'; +import { buildQuery, toAddress } from '../lib/helpers.js'; +import { + makeMessageRequest, + makeTransactionRequest, + makeTypedDataRequest, + SdkTransactionRequest, +} from '../lib/transaction.js'; import { BorrowRateMode, MoneyMarketPool, @@ -12,31 +18,31 @@ import { TransactionOpts, } from '../types.js'; -const poolAbi = [ - { - type: 'function', - name: 'borrow', - stateMutability: 'nonpayable', - inputs: [ - { type: 'address', name: 'asset' }, - { type: 'uint256', name: 'amount' }, - { type: 'uint256', name: 'interestRateMode' }, - { type: 'uint16', name: 'referralCode' }, - { type: 'address', name: 'onBehalfOf' }, - ], - outputs: [], - }, - { - type: 'function', - name: 'swapBorrowRateMode', - stateMutability: 'nonpayable', - inputs: [ - { type: 'address', name: 'asset' }, - { type: 'uint256', name: 'rateMode' }, - ], - outputs: [], - }, -] as const; +// const poolAbi = [ +// { +// type: 'function', +// name: 'borrow', +// stateMutability: 'nonpayable', +// inputs: [ +// { type: 'address', name: 'asset' }, +// { type: 'uint256', name: 'amount' }, +// { type: 'uint256', name: 'interestRateMode' }, +// { type: 'uint16', name: 'referralCode' }, +// { type: 'address', name: 'onBehalfOf' }, +// ], +// outputs: [], +// }, +// { +// type: 'function', +// name: 'swapBorrowRateMode', +// stateMutability: 'nonpayable', +// inputs: [ +// { type: 'address', name: 'asset' }, +// { type: 'uint256', name: 'rateMode' }, +// ], +// outputs: [], +// }, +// ] as const; export class MoneyMarketManager extends BaseClient { listReserves(opts: SdkRequestOptions = {}) { @@ -57,15 +63,13 @@ export class MoneyMarketManager extends BaseClient { return this.#poolInfo; } - async borrow( + async borrow( asset: Token, amount: Decimal, rateMode: BorrowRateMode, - opts: TransactionOpts, - ): Promise { - const pool = await this.getPoolInfo(); - - console.log('Borrowing from pool:', pool); + opts: TransactionOpts, + ): Promise[]> { + // const pool = await this.getPoolInfo(); if (asset.isNative || asset.address.toLowerCase() === zeroAddress) { return [ @@ -74,21 +78,88 @@ export class MoneyMarketManager extends BaseClient { } return [ + // testing purpose signatures + { + id: 'sign-message', + title: 'Agree to Terms', + description: `Agree to the money market borrowing terms and conditions`, + request: makeMessageRequest({ + message: `I agree to borrow ${amount.toString()} ${asset.symbol} from the Money Market according to the terms and conditions.`, + account: opts.account, + }), + }, + // testing purpose signatures + { + id: 'sign-typed-data', + title: 'Accept Interest Rate', + description: `Accept the current interest rate for borrowing ${asset.symbol}`, + request: makeTypedDataRequest({ + domain: { + name: 'Ether Mail', + version: '1', + chainId: this.ctx.publicClient.chain.id, + verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC', + }, + types: { + Person: [ + { name: 'name', type: 'string' }, + { name: 'wallet', type: 'address' }, + ], + Mail: [ + { name: 'from', type: 'Person' }, + { name: 'to', type: 'Person' }, + { name: 'contents', type: 'string' }, + ], + }, + primaryType: 'Mail', + message: { + from: { + name: 'Cow', + wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826', + }, + to: { + name: 'Bob', + wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB', + }, + contents: 'Hello, Bob!', + }, + account: opts.account, + }), + }, + // todo: test tx { - account: opts.account, - abi: poolAbi, - address: pool.data.pool, - functionName: 'borrow', - value: 0n, - chain: this.ctx.publicClient.chain, - args: [ - asset.address, - amount.toBigInt(), - rateMode, - 0, // referralCode - String(opts.account).toLowerCase(), - ], + id: 'borrow-1', + title: 'TEST: send 1 wei', + description: `Sending 1 wei to self as a test transaction`, + request: makeTransactionRequest({ + to: toAddress(opts.account), + value: 1n, + chain: this.ctx.publicClient.chain, + account: opts.account, + }), }, + // { + // id: 'borrow-2', + // title: 'Borrow Asset', + // description: `Borrowing ${amount.toString()} ${asset.symbol} from Money Market`, + // request: makeTransactionRequest({ + // to: pool.data.pool, + // value: 0n, + // chain: this.ctx.publicClient.chain, + // account: opts.account, + // data: encodeFunctionData({ + // abi: poolAbi, + // functionName: 'borrow', + // args: [ + // asset.address, + // amount.toBigInt(), + // rateMode, + // 0, // referralCode + // toAddress(opts.account), + // ], + // }), + // }), + // }, ]; } } diff --git a/packages/sdk/src/types.ts b/packages/sdk/src/types.ts index 667a30d..ba972e9 100644 --- a/packages/sdk/src/types.ts +++ b/packages/sdk/src/types.ts @@ -16,8 +16,8 @@ export interface SdkPaginatedQuery { search?: string; } -export type TransactionOpts = { - account: Account | Address; +export type TransactionOpts = { + account: account | Address; }; export interface Token { @@ -43,7 +43,10 @@ export interface MoneyMarketPool { addressProvider: Address; } -export enum BorrowRateMode { - stable = 1, - variable = 2, -} +export const borrowRateModes = { + stable: 1n, + variable: 2n, +} as const; + +export type BorrowRateMode = + (typeof borrowRateModes)[keyof typeof borrowRateModes]; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c7e1bc7..f97eabe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -238,25 +238,25 @@ importers: apps/web-app: dependencies: '@i18next-selector/vite-plugin': - specifier: ^0.0.18 + specifier: 0.0.18 version: 0.0.18(vite@7.1.7(@types/node@20.19.9)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1)) '@privy-io/react-auth': specifier: 3.0.1 - version: 3.0.1(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.1.3)(ioredis@5.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11) + version: 3.0.1(@solana-program/system@0.8.1(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))))(@solana-program/token@0.6.0(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))))(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.2.0)(ioredis@5.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.6.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11) '@privy-io/wagmi': specifier: 2.0.0 - version: 2.0.0(@privy-io/react-auth@3.0.1(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.1.3)(ioredis@5.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11))(react@19.1.1)(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(wagmi@2.17.2(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.3)(ioredis@5.8.0)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(zod@4.1.11)) + version: 2.0.0(aa00d93f89864799f5a8366bea17b807) '@radix-ui/react-checkbox': - specifier: ^1.3.3 + specifier: 1.3.3 version: 1.3.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-collapsible': - specifier: ^1.1.12 + specifier: 1.1.12 version: 1.1.12(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-dialog': - specifier: ^1.1.15 + specifier: 1.1.15 version: 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-dropdown-menu': - specifier: ^2.1.16 + specifier: 2.1.16 version: 2.1.16(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-label': specifier: 2.1.7 @@ -274,10 +274,10 @@ importers: specifier: 1.2.6 version: 1.2.6(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-tabs': - specifier: ^1.1.13 + specifier: 1.1.13 version: 1.1.13(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-tooltip': - specifier: ^1.2.8 + specifier: 1.2.8 version: 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@sovryn/slayer-sdk': specifier: workspace:* @@ -289,7 +289,7 @@ importers: specifier: 4.1.13 version: 4.1.13(vite@7.1.7(@types/node@20.19.9)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1)) '@tanstack/devtools-vite': - specifier: ^0.3.3 + specifier: 0.3.3 version: 0.3.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)(vite@7.1.7(@types/node@20.19.9)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1)) '@tanstack/react-devtools': specifier: 0.7.0 @@ -319,25 +319,25 @@ importers: specifier: 2.1.1 version: 2.1.1 debug: - specifier: ^4.4.3 + specifier: 4.4.3 version: 4.4.3 envalid: specifier: 8.1.0 version: 8.1.0 i18next: - specifier: ^25.5.2 + specifier: 25.5.2 version: 25.5.2(typescript@5.9.2) i18next-browser-languagedetector: - specifier: ^8.2.0 + specifier: 8.2.0 version: 8.2.0 i18next-http-backend: - specifier: ^3.0.2 + specifier: 3.0.2 version: 3.0.2(encoding@0.1.13) lucide-react: specifier: 0.544.0 version: 0.544.0(react@19.1.1) next-themes: - specifier: ^0.4.6 + specifier: 0.4.6 version: 0.4.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: specifier: 19.1.1 @@ -346,13 +346,13 @@ importers: specifier: 19.1.1 version: 19.1.1(react@19.1.1) react-i18next: - specifier: ^15.7.3 + specifier: 15.7.3 version: 15.7.3(i18next@25.5.2(typescript@5.9.2))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2) recharts: - specifier: ^3.2.1 + specifier: 3.2.1 version: 3.2.1(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react-is@18.3.1)(react@19.1.1)(redux@5.0.1) sonner: - specifier: ^2.0.7 + specifier: 2.0.7 version: 2.0.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1) tailwind-merge: specifier: 3.3.1 @@ -363,18 +363,24 @@ importers: tw-animate-css: specifier: 1.3.8 version: 1.3.8 + use-sync-external-store: + specifier: 1.6.0 + version: 1.6.0(react@19.1.1) viem: - specifier: 2.37.8 - version: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + specifier: 2.38.6 + version: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) wagmi: - specifier: 2.17.2 - version: 2.17.2(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.3)(ioredis@5.8.0)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(zod@4.1.11) + specifier: 2.19.2 + version: 2.19.2(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@types/react@19.1.13)(bufferutil@4.0.9)(debug@4.4.3)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(immer@10.2.0)(ioredis@5.8.0)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@4.1.11) zod: specifier: 4.1.11 version: 4.1.11 + zustand: + specifier: 5.0.8 + version: 5.0.8(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(use-sync-external-store@1.6.0(react@19.1.1)) devDependencies: '@types/debug': - specifier: ^4.1.12 + specifier: 4.1.12 version: 4.1.12 vite: specifier: 7.1.7 @@ -392,14 +398,14 @@ importers: specifier: workspace:* version: link:../shared debug: - specifier: ^4.4.3 + specifier: 4.4.3 version: 4.4.3 tslib: specifier: 2.8.1 version: 2.8.1 viem: - specifier: 2.37.8 - version: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + specifier: 2.38.6 + version: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) devDependencies: '@types/debug': specifier: ^4.1.12 @@ -1100,6 +1106,9 @@ packages: '@base-org/account@1.1.1': resolution: {integrity: sha512-IfVJPrDPhHfqXRDb89472hXkpvJuQQR7FDI9isLPHEqSYt/45whIoBxSPgZ0ssTt379VhQo4+87PWI1DoLSfAQ==} + '@base-org/account@2.4.0': + resolution: {integrity: sha512-A4Umpi8B9/pqR78D1Yoze4xHyQaujioVRqqO3d6xuDFw9VRtjg6tK3bPlwE0aW+nVH/ntllCpPa2PbI8Rnjcug==} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -1121,6 +1130,9 @@ packages: '@bull-board/ui@6.13.0': resolution: {integrity: sha512-63I6b3nZnKWI5ok6mw/Tk2rIObuzMTY/tLGyO51p0GW4rAImdXxrK6mT7j4SgEuP2B+tt/8L1jU7sLu8MMcCNw==} + '@coinbase/cdp-sdk@1.38.5': + resolution: {integrity: sha512-j8mvx1wMox/q2SjB7C09HtdRXVOpGpfkP7nG4+OjdowPj8pmQ03rigzycd86L8mawl6TUPXdm41YSQVmtc8SzQ==} + '@coinbase/wallet-sdk@3.9.3': resolution: {integrity: sha512-N/A2DRIf0Y3PHc1XAMvbBUu4zisna6qAdqABMZwBMNEfWrXpAwx16pZGkYCLGE+Rvv1edbcB2LYDRnACNcmCiw==} @@ -1980,8 +1992,8 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@gemini-wallet/core@0.2.0': - resolution: {integrity: sha512-vv9aozWnKrrPWQ3vIFcWk7yta4hQW1Ie0fsNNPeXnjAxkbXr2hqMagEptLuMxpEP2W3mnRu05VDNKzcvAuuZDw==} + '@gemini-wallet/core@0.3.1': + resolution: {integrity: sha512-XP+/NRAaRV7Adlt6aFxrF/3a0i3qpxFTSVm/dzG+mceXTSgIGOUUT65w69ttLQ/GWEcAEQL/hKoV6PFAJA/DmQ==} peerDependencies: viem: '>=2.0.0' @@ -3655,6 +3667,267 @@ packages: '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + '@solana-program/system@0.8.1': + resolution: {integrity: sha512-71U9Mzdpw8HQtfgfJSL5xKZbLMRnza2Llsfk7gGnmg2waqK+o8MMH4YNma8xXS1UmOBptXIiNvoZ3p7cmOVktg==} + peerDependencies: + '@solana/kit': ^3.0 + + '@solana-program/token@0.6.0': + resolution: {integrity: sha512-omkZh4Tt9rre4wzWHNOhOEHyenXQku3xyc/UrKvShexA/Qlhza67q7uRwmwEDUs4QqoDBidSZPooOmepnA/jig==} + peerDependencies: + '@solana/kit': ^3.0 + + '@solana/accounts@3.0.3': + resolution: {integrity: sha512-KqlePrlZaHXfu8YQTCxN204ZuVm9o68CCcUr6l27MG2cuRUtEM1Ta0iR8JFkRUAEfZJC4Cu0ZDjK/v49loXjZQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/addresses@3.0.3': + resolution: {integrity: sha512-AuMwKhJI89ANqiuJ/fawcwxNKkSeHH9CApZd2xelQQLS7X8uxAOovpcmEgiObQuiVP944s9ScGUT62Bdul9qYg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/assertions@3.0.3': + resolution: {integrity: sha512-2qspxdbWp2y62dfCIlqeWQr4g+hE8FYSSwcaP6itwMwGRb8393yDGCJfI/znuzJh6m/XVWhMHIgFgsBwnevCmg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/buffer-layout@4.0.1': + resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} + engines: {node: '>=5.10'} + + '@solana/codecs-core@2.3.0': + resolution: {integrity: sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/codecs-core@3.0.3': + resolution: {integrity: sha512-emKykJ3h1DmnDOY29Uv9eJXP8E/FHzvlUBJ6te+5EbKdFjj7vdlKYPfDxOI6iGdXTY+YC/ELtbNBh6QwF2uEDQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/codecs-data-structures@3.0.3': + resolution: {integrity: sha512-R15cLp8riJvToXziW8lP6AMSwsztGhEnwgyGmll32Mo0Yjq+hduW2/fJrA/TJs6tA/OgTzMQjlxgk009EqZHCw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/codecs-numbers@2.3.0': + resolution: {integrity: sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/codecs-numbers@3.0.3': + resolution: {integrity: sha512-pfXkH9J0glrM8qj6389GAn30+cJOxzXLR2FsPOHCUMXrqLhGjMMZAWhsQkpOQ37SGc/7EiQsT/gmyGC7gxHqJQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/codecs-strings@3.0.3': + resolution: {integrity: sha512-VHBXnnTVtcQ1j+7Vrz+qSYo38no+jiHRdGnhFspRXEHNJbllzwKqgBE7YN3qoIXH+MKxgJUcwO5KHmdzf8Wn2A==} + engines: {node: '>=20.18.0'} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + typescript: '>=5.3.3' + + '@solana/codecs@3.0.3': + resolution: {integrity: sha512-GOHwTlIQsCoJx9Ryr6cEf0FHKAQ7pY4aO4xgncAftrv0lveTQ1rPP2inQ1QT0gJllsIa8nwbfXAADs9nNJxQDA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/errors@2.3.0': + resolution: {integrity: sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==} + engines: {node: '>=20.18.0'} + hasBin: true + peerDependencies: + typescript: '>=5.3.3' + + '@solana/errors@3.0.3': + resolution: {integrity: sha512-1l84xJlHNva6io62PcYfUamwWlc0eM95nHgCrKX0g0cLoC6D6QHYPCEbEVkR+C5UtP9JDgyQM8MFiv+Ei5tO9Q==} + engines: {node: '>=20.18.0'} + hasBin: true + peerDependencies: + typescript: '>=5.3.3' + + '@solana/fast-stable-stringify@3.0.3': + resolution: {integrity: sha512-ED0pxB6lSEYvg+vOd5hcuQrgzEDnOrURFgp1ZOY+lQhJkQU6xo+P829NcJZQVP1rdU2/YQPAKJKEseyfe9VMIw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/functional@3.0.3': + resolution: {integrity: sha512-2qX1kKANn8995vOOh5S9AmF4ItGZcfbny0w28Eqy8AFh+GMnSDN4gqpmV2LvxBI9HibXZptGH3RVOMk82h1Mpw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/instruction-plans@3.0.3': + resolution: {integrity: sha512-eqoaPtWtmLTTpdvbt4BZF5H6FIlJtXi9H7qLOM1dLYonkOX2Ncezx5NDCZ9tMb2qxVMF4IocYsQnNSnMfjQF1w==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/instructions@3.0.3': + resolution: {integrity: sha512-4csIi8YUDb5j/J+gDzmYtOvq7ZWLbCxj4t0xKn+fPrBk/FD2pK29KVT3Fu7j4Lh1/ojunQUP9X4NHwUexY3PnA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/keys@3.0.3': + resolution: {integrity: sha512-tp8oK9tMadtSIc4vF4aXXWkPd4oU5XPW8nf28NgrGDWGt25fUHIydKjkf2hPtMt9i1WfRyQZ33B5P3dnsNqcPQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/kit@3.0.3': + resolution: {integrity: sha512-CEEhCDmkvztd1zbgADsEQhmj9GyWOOGeW1hZD+gtwbBSF5YN1uofS/pex5MIh/VIqKRj+A2UnYWI1V+9+q/lyQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/nominal-types@3.0.3': + resolution: {integrity: sha512-aZavCiexeUAoMHRQg4s1AHkH3wscbOb70diyfjhwZVgFz1uUsFez7csPp9tNFkNolnadVb2gky7yBk3IImQJ6A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/options@3.0.3': + resolution: {integrity: sha512-jarsmnQ63RN0JPC5j9sgUat07NrL9PC71XU7pUItd6LOHtu4+wJMio3l5mT0DHVfkfbFLL6iI6+QmXSVhTNF3g==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/programs@3.0.3': + resolution: {integrity: sha512-JZlVE3/AeSNDuH3aEzCZoDu8GTXkMpGXxf93zXLzbxfxhiQ/kHrReN4XE/JWZ/uGWbaFZGR5B3UtdN2QsoZL7w==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/promises@3.0.3': + resolution: {integrity: sha512-K+UflGBVxj30XQMHTylHHZJdKH5QG3oj5k2s42GrZ/Wbu72oapVJySMBgpK45+p90t8/LEqV6rRPyTXlet9J+Q==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/rpc-api@3.0.3': + resolution: {integrity: sha512-Yym9/Ama62OY69rAZgbOCAy1QlqaWAyb0VlqFuwSaZV1pkFCCFSwWEJEsiN1n8pb2ZP+RtwNvmYixvWizx9yvA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/rpc-parsed-types@3.0.3': + resolution: {integrity: sha512-/koM05IM2fU91kYDQxXil3VBNlOfcP+gXE0js1sdGz8KonGuLsF61CiKB5xt6u1KEXhRyDdXYLjf63JarL4Ozg==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/rpc-spec-types@3.0.3': + resolution: {integrity: sha512-A6Jt8SRRetnN3CeGAvGJxigA9zYRslGgWcSjueAZGvPX+MesFxEUjSWZCfl+FogVFvwkqfkgQZQbPAGZQFJQ6Q==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/rpc-spec@3.0.3': + resolution: {integrity: sha512-MZn5/8BebB6MQ4Gstw6zyfWsFAZYAyLzMK+AUf/rSfT8tPmWiJ/mcxnxqOXvFup/l6D67U8pyGpIoFqwCeZqqA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/rpc-subscriptions-api@3.0.3': + resolution: {integrity: sha512-MGgVK3PUS15qsjuhimpzGZrKD/CTTvS0mAlQ0Jw84zsr1RJVdQJK/F0igu07BVd172eTZL8d90NoAQ3dahW5pA==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/rpc-subscriptions-channel-websocket@3.0.3': + resolution: {integrity: sha512-zUzUlb8Cwnw+SHlsLrSqyBRtOJKGc+FvSNJo/vWAkLShoV0wUDMPv7VvhTngJx3B/3ANfrOZ4i08i9QfYPAvpQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + ws: ^8.18.0 + + '@solana/rpc-subscriptions-spec@3.0.3': + resolution: {integrity: sha512-9KpQ32OBJWS85mn6q3gkM0AjQe1LKYlMU7gpJRrla/lvXxNLhI95tz5K6StctpUreVmRWTVkNamHE69uUQyY8A==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/rpc-subscriptions@3.0.3': + resolution: {integrity: sha512-LRvz6NaqvtsYFd32KwZ+rwYQ9XCs+DWjV8BvBLsJpt9/NWSuHf/7Sy/vvP6qtKxut692H/TMvHnC4iulg0WmiQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/rpc-transformers@3.0.3': + resolution: {integrity: sha512-lzdaZM/dG3s19Tsk4mkJA5JBoS1eX9DnD7z62gkDwrwJDkDBzkAJT9aLcsYFfTmwTfIp6uU2UPgGYc97i1wezw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/rpc-transport-http@3.0.3': + resolution: {integrity: sha512-bIXFwr2LR5A97Z46dI661MJPbHnPfcShBjFzOS/8Rnr8P4ho3j/9EUtjDrsqoxGJT3SLWj5OlyXAlaDAvVTOUQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/rpc-types@3.0.3': + resolution: {integrity: sha512-petWQ5xSny9UfmC3Qp2owyhNU0w9SyBww4+v7tSVyXMcCC9v6j/XsqTeimH1S0qQUllnv0/FY83ohFaxofmZ6Q==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/rpc@3.0.3': + resolution: {integrity: sha512-3oukAaLK78GegkKcm6iNmRnO4mFeNz+BMvA8T56oizoBNKiRVEq/6DFzVX/LkmZ+wvD601pAB3uCdrTPcC0YKQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/signers@3.0.3': + resolution: {integrity: sha512-UwCd/uPYTZiwd283JKVyOWLLN5sIgMBqGDyUmNU3vo9hcmXKv5ZGm/9TvwMY2z35sXWuIOcj7etxJ8OoWc/ObQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/subscribable@3.0.3': + resolution: {integrity: sha512-FJ27LKGHLQ5GGttPvTOLQDLrrOZEgvaJhB7yYaHAhPk25+p+erBaQpjePhfkMyUbL1FQbxn1SUJmS6jUuaPjlQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/sysvars@3.0.3': + resolution: {integrity: sha512-GnHew+QeKCs2f9ow+20swEJMH4mDfJA/QhtPgOPTYQx/z69J4IieYJ7fZenSHnA//lJ45fVdNdmy1trypvPLBQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/transaction-confirmation@3.0.3': + resolution: {integrity: sha512-dXx0OLtR95LMuARgi2dDQlL1QYmk56DOou5q9wKymmeV3JTvfDExeWXnOgjRBBq/dEfj4ugN1aZuTaS18UirFw==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/transaction-messages@3.0.3': + resolution: {integrity: sha512-s+6NWRnBhnnjFWV4x2tzBzoWa6e5LiIxIvJlWwVQBFkc8fMGY04w7jkFh0PM08t/QFKeXBEWkyBDa/TFYdkWug==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/transactions@3.0.3': + resolution: {integrity: sha512-iMX+n9j4ON7H1nKlWEbMqMOpKYC6yVGxKKmWHT1KdLRG7v+03I4DnDeFoI+Zmw56FA+7Bbne8jwwX60Q1vk/MQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + typescript: '>=5.3.3' + + '@solana/web3.js@1.98.4': + resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==} + '@solid-primitives/event-listener@2.4.3': resolution: {integrity: sha512-h4VqkYFv6Gf+L7SQj+Y6puigL/5DIi7x5q07VZET7AWcS+9/G3WfIE9WheniHWJs51OEkRB43w6lDys5YeFceg==} peerDependencies: @@ -4186,6 +4459,9 @@ packages: '@types/chai@5.2.2': resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + '@types/d3-array@3.2.2': resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} @@ -4268,6 +4544,9 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + '@types/node@20.19.9': resolution: {integrity: sha512-cuVNgarYWZqxRJDQHEB58GEONhOK79QVR/qYx4S7kcUObQvUwvFnYxJuuHUKm2aieN9X3yZB4LZsuYNU1Qphsw==} @@ -4303,6 +4582,15 @@ packages: '@types/use-sync-external-store@0.0.6': resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} + '@types/uuid@8.3.4': + resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + + '@types/ws@7.4.7': + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} @@ -4515,18 +4803,18 @@ packages: '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} - '@wagmi/connectors@5.10.2': - resolution: {integrity: sha512-qyXO1poEeJtCIuJGDd5FlmqZ9JHXepDxKxoPAptqHampPLastWPnNZTAH616/ITmysRiNQ4AzeSUcbsNE46uyg==} + '@wagmi/connectors@6.1.3': + resolution: {integrity: sha512-Rx3/4Rug3SrBC/WSuNUC0XEpWC/yP71BhQzz3u064ueemIWtvrIxXZxH2byWd0dF3osarjuHBr904bm3L6eNHg==} peerDependencies: - '@wagmi/core': 2.21.1 + '@wagmi/core': 2.22.1 typescript: '>=5.0.4' viem: 2.x peerDependenciesMeta: typescript: optional: true - '@wagmi/core@2.21.1': - resolution: {integrity: sha512-uG0Cujm24acrFYqbi1RGw9MRMLTGVKvyv5OAJT+2pkcasM9PP8eJCzhlvUxK9IYVXXnbaAT8JX/rXEurOSM6mg==} + '@wagmi/core@2.22.1': + resolution: {integrity: sha512-cG/xwQWsBEcKgRTkQVhH29cbpbs/TdcUJVFXCyri3ZknxhMyGv0YEjTcrNpRgt2SaswL1KrvslSNYKKo+5YEAg==} peerDependencies: '@tanstack/query-core': '>=5.0.0' typescript: '>=5.0.4' @@ -4754,6 +5042,17 @@ packages: resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} hasBin: true + abitype@1.0.6: + resolution: {integrity: sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.22.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + abitype@1.0.8: resolution: {integrity: sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==} peerDependencies: @@ -4819,6 +5118,10 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} + engines: {node: '>= 8.0.0'} + ajv-formats@2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -5010,6 +5313,11 @@ packages: resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} engines: {node: '>=4'} + axios-retry@4.5.0: + resolution: {integrity: sha512-aR99oXhpEDGo0UuAlYcn2iGRds30k366Zfa05XWScR9QaQD4JYiP3/1Qt1u7YlefUOK+cn0CcwoL1oefavQUlQ==} + peerDependencies: + axios: 0.x || 1.x + axios@1.12.2: resolution: {integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==} @@ -5092,6 +5400,9 @@ packages: bare-events@2.7.0: resolution: {integrity: sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==} + base-x@3.0.11: + resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==} + base-x@4.0.1: resolution: {integrity: sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==} @@ -5152,6 +5463,9 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + borsh@0.7.0: + resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} + bowser@2.12.1: resolution: {integrity: sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==} @@ -5196,6 +5510,9 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + bs58@4.0.1: + resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} + bs58@5.0.0: resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==} @@ -5415,6 +5732,14 @@ packages: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} + commander@14.0.0: + resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==} + engines: {node: '>=20'} + + commander@14.0.2: + resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} + engines: {node: '>=20'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -5834,6 +6159,10 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + delay@5.0.0: + resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} + engines: {node: '>=10'} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -6196,6 +6525,12 @@ packages: es-toolkit@1.39.3: resolution: {integrity: sha512-Qb/TCFCldgOy8lZ5uC7nLGdqJwSabkQiYQShmw4jyiPk1pZzaYWTwaYKYP7EgLccWYgZocMrtItrwh683voaww==} + es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + + es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} + esbuild-register@3.6.0: resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} peerDependencies: @@ -6447,6 +6782,10 @@ packages: resolution: {integrity: sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==} engines: {node: '>=12.0.0'} + eyes@0.1.8: + resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} + engines: {node: '> 0.1.90'} + fast-copy@3.0.2: resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} @@ -6485,9 +6824,15 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + fast-stable-stringify@1.0.0: + resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} + fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + fastestsmallesttextencoderdecoder@1.0.22: + resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==} + fastify-plugin@5.0.1: resolution: {integrity: sha512-HCxs+YnRaWzCl+cWRYFnHmeRFyR5GVnJTAaCJQiYzQSDwK9MgJdyAsuL3nh0EWRCYMgQ5MeziymvmAhUHYHDUQ==} @@ -6866,6 +7211,10 @@ packages: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} + hono@4.10.4: + resolution: {integrity: sha512-YG/fo7zlU3KwrBL5vDpWKisLYiM+nVstBQqfr7gCPbSYURnNEP9BDxEMz8KfsDR9JX0lJWDRNc6nXX31v7ZEyg==} + engines: {node: '>=16.9.0'} + hosted-git-info@7.0.2: resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} engines: {node: ^16.14.0 || >=18.0.0} @@ -6931,6 +7280,9 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + i18next-browser-languagedetector@8.2.0: resolution: {integrity: sha512-P+3zEKLnOF0qmiesW383vsLdtQVyKtCNA9cjSoKCppTKPQVfKd2W8hbVo5ZhNJKDqeM7BOcvNoKJOjpHh4Js9g==} @@ -6983,8 +7335,8 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} - immer@10.1.3: - resolution: {integrity: sha512-tmjF/k8QDKydUlm3mZU+tjM6zeq9/fFpPqH9SzWmBnVVKsPBg/V66qsMwb3/Bo90cgUN+ghdVBess+hPsxUyRw==} + immer@10.2.0: + resolution: {integrity: sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==} import-cwd@3.0.0: resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} @@ -7170,6 +7522,10 @@ packages: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} + is-retry-allowed@2.2.0: + resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==} + engines: {node: '>=10'} + is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} @@ -7242,6 +7598,11 @@ packages: resolution: {integrity: sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==} engines: {node: '>=10'} + isomorphic-ws@4.0.1: + resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} + peerDependencies: + ws: '*' + isomorphic-ws@5.0.0: resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} peerDependencies: @@ -7293,6 +7654,11 @@ packages: engines: {node: '>=10'} hasBin: true + jayson@4.2.0: + resolution: {integrity: sha512-VfJ9t1YLwacIubLhONk0KFeosUBwstRWQ0IRT1KDjEjnVnSOVHC3uwugyV7L0c7R9lpVyrUGT2XWiBA1UTtpyg==} + engines: {node: '>=8'} + hasBin: true + jest-circus@30.1.3: resolution: {integrity: sha512-Yf3dnhRON2GJT4RYzM89t/EXIWNxKTpWTL9BfF3+geFetWP4XSvJjiU1vrWplOiUkmq8cHLiwuhz+XuUp9DscA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -7412,6 +7778,9 @@ packages: jose@4.15.9: resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} + jose@6.1.0: + resolution: {integrity: sha512-TTQJyoEoKcC1lscpVDCSsVgYzUDg/0Bt3WE//WiTPK6uOCQC2KZS4MpugbMWt/zyjkopgZoXhZuCi00gLudfUA==} + joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} @@ -7485,6 +7854,9 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true @@ -8424,6 +8796,38 @@ packages: resolution: {integrity: sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==} engines: {node: '>= 10.12'} + porto@0.2.35: + resolution: {integrity: sha512-gu9FfjjvvYBgQXUHWTp6n3wkTxVtEcqFotM7i3GEZeoQbvLGbssAicCz6hFZ8+xggrJWwi/RLmbwNra50SMmUQ==} + hasBin: true + peerDependencies: + '@tanstack/react-query': '>=5.59.0' + '@wagmi/core': '>=2.16.3' + expo-auth-session: '>=7.0.8' + expo-crypto: '>=15.0.7' + expo-web-browser: '>=15.0.8' + react: '>=18' + react-native: '>=0.81.4' + typescript: '>=5.4.0' + viem: '>=2.37.0' + wagmi: '>=2.0.0' + peerDependenciesMeta: + '@tanstack/react-query': + optional: true + expo-auth-session: + optional: true + expo-crypto: + optional: true + expo-web-browser: + optional: true + react: + optional: true + react-native: + optional: true + typescript: + optional: true + wagmi: + optional: true + possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} @@ -9109,6 +9513,9 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rpc-websockets@9.3.1: + resolution: {integrity: sha512-bY6a+i/lEtBJ/mUxwsCTgevoV1P0foXTVA7UoThzaIWbM+3NDqorf8NBWs5DmqKTFeA1IoNzgvkWjFCPgnzUiQ==} + rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} @@ -9412,9 +9819,15 @@ packages: stream-browserify@3.0.0: resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + stream-chain@2.2.5: + resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==} + stream-http@3.2.0: resolution: {integrity: sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==} + stream-json@1.9.1: + resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==} + stream-shift@1.0.3: resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} @@ -9546,6 +9959,10 @@ packages: resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==} engines: {node: '>=14.0.0'} + superstruct@2.0.2: + resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} + engines: {node: '>=14.0.0'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -9642,6 +10059,9 @@ packages: text-decoder@1.2.3: resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + text-encoding-utf-8@1.0.2: + resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} + thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -9899,6 +10319,9 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} @@ -10050,8 +10473,8 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - use-sync-external-store@1.5.0: - resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -10139,6 +10562,14 @@ packages: typescript: optional: true + viem@2.38.6: + resolution: {integrity: sha512-aqO6P52LPXRjdnP6rl5Buab65sYa4cZ6Cpn+k4OLOzVJhGIK8onTVoKMFMT04YjDfyDICa/DZyV9HmvLDgcjkw==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + vite-node@3.2.4: resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -10316,8 +10747,8 @@ packages: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} - wagmi@2.17.2: - resolution: {integrity: sha512-r5yf2Nwzs469aT066tsGAuRt38z4RpQ2YZ09Kaxhd8q0IhLvw0aWBBgzXXbPqcGNEAJHtHAkXzum3wkqoHLgmA==} + wagmi@2.19.2: + resolution: {integrity: sha512-UN8CQKNsUgQD2Lr2ybjAi07ZKq1SV4T/Pb9IN77t3oSXANr9C9tI3mijLNyINeA5ET4hJxIny3C2dWJ48zrFiA==} peerDependencies: '@tanstack/react-query': '>=5.0.0' react: '>=18' @@ -11498,24 +11929,49 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@base-org/account@1.1.1(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.1.3)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11)': + '@base-org/account@1.1.1(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.2.0)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.6.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11)': + dependencies: + '@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.2)(zod@4.1.11) + preact: 10.24.2 + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + zustand: 5.0.3(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(use-sync-external-store@1.6.0(react@19.1.1)) + transitivePeerDependencies: + - '@types/react' + - bufferutil + - immer + - react + - typescript + - use-sync-external-store + - utf-8-validate + - zod + + '@base-org/account@2.4.0(@types/react@19.1.13)(bufferutil@4.0.9)(debug@4.4.3)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(immer@10.2.0)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@4.1.11)': dependencies: + '@coinbase/cdp-sdk': 1.38.5(bufferutil@4.0.9)(debug@4.4.3)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(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.2)(zod@4.1.11) preact: 10.24.2 - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) - zustand: 5.0.3(@types/react@19.1.13)(immer@10.1.3)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + zustand: 5.0.3(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)) transitivePeerDependencies: - '@types/react' - bufferutil + - debug + - encoding + - fastestsmallesttextencoderdecoder - immer - react - typescript - use-sync-external-store - utf-8-validate + - ws - zod '@bcoe/v8-coverage@0.2.3': {} @@ -11541,6 +11997,29 @@ snapshots: dependencies: '@bull-board/api': 6.13.0(@bull-board/ui@6.13.0) + '@coinbase/cdp-sdk@1.38.5(bufferutil@4.0.9)(debug@4.4.3)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana-program/system': 0.8.1(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))) + '@solana-program/token': 0.6.0(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))) + '@solana/kit': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/web3.js': 1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10) + abitype: 1.0.6(typescript@5.9.2)(zod@3.25.76) + axios: 1.12.2(debug@4.4.3) + axios-retry: 4.5.0(axios@1.12.2(debug@4.4.3)) + jose: 6.1.0 + md5: 2.3.0 + uncrypto: 0.1.3 + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + zod: 3.25.76 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + - ws + '@coinbase/wallet-sdk@3.9.3': dependencies: bn.js: 5.2.2 @@ -11562,7 +12041,7 @@ snapshots: eventemitter3: 5.0.1 preact: 10.27.2 - '@coinbase/wallet-sdk@4.3.6(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.1.3)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11)': + '@coinbase/wallet-sdk@4.3.6(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.2.0)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11)': dependencies: '@noble/hashes': 1.4.0 clsx: 1.2.1 @@ -11570,8 +12049,8 @@ snapshots: idb-keyval: 6.2.1 ox: 0.6.9(typescript@5.9.2)(zod@4.1.11) preact: 10.24.2 - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) - zustand: 5.0.3(@types/react@19.1.13)(immer@10.1.3)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + zustand: 5.0.3(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)) transitivePeerDependencies: - '@types/react' - bufferutil @@ -12288,11 +12767,11 @@ snapshots: '@floating-ui/utils@0.2.10': {} - '@gemini-wallet/core@0.2.0(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))': + '@gemini-wallet/core@0.3.1(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))': dependencies: '@metamask/rpc-errors': 7.0.2 eventemitter3: 5.0.1 - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) transitivePeerDependencies: - supports-color @@ -12304,7 +12783,7 @@ snapshots: '@tanstack/react-virtual': 3.13.12(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - use-sync-external-store: 1.5.0(react@19.1.1) + use-sync-external-store: 1.6.0(react@19.1.1) '@heroicons/react@2.2.0(react@19.1.1)': dependencies: @@ -12838,7 +13317,7 @@ snapshots: '@module-federation/third-party-dts-extractor': 0.18.4 adm-zip: 0.5.16 ansi-colors: 4.1.3 - axios: 1.12.2 + axios: 1.12.2(debug@4.4.3) chalk: 3.0.0 fs-extra: 9.1.0 isomorphic-ws: 5.0.0(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) @@ -12863,7 +13342,7 @@ snapshots: '@module-federation/third-party-dts-extractor': 0.19.1 adm-zip: 0.5.16 ansi-colors: 4.1.3 - axios: 1.12.2 + axios: 1.12.2(debug@4.4.3) chalk: 3.0.0 fs-extra: 9.1.0 isomorphic-ws: 5.0.0(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) @@ -13693,11 +14172,11 @@ snapshots: '@privy-io/chains@0.0.2': {} - '@privy-io/ethereum@0.0.2(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))': + '@privy-io/ethereum@0.0.2(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))': dependencies: - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) - '@privy-io/js-sdk-core@0.55.2(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))': + '@privy-io/js-sdk-core@0.55.2(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))': dependencies: '@ethersproject/abstract-signer': 5.8.0 '@ethersproject/bignumber': 5.8.0 @@ -13717,7 +14196,7 @@ snapshots: set-cookie-parser: 2.7.1 uuid: 9.0.1 optionalDependencies: - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) transitivePeerDependencies: - bufferutil - typescript @@ -13728,16 +14207,16 @@ snapshots: '@privy-io/api-base': 1.7.0 bs58: 5.0.0 libphonenumber-js: 1.12.17 - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76) zod: 3.25.76 transitivePeerDependencies: - bufferutil - typescript - utf-8-validate - '@privy-io/react-auth@3.0.1(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.1.3)(ioredis@5.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11)': + '@privy-io/react-auth@3.0.1(@solana-program/system@0.8.1(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))))(@solana-program/token@0.6.0(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))))(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.2.0)(ioredis@5.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.6.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11)': dependencies: - '@base-org/account': 1.1.1(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.1.3)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11) + '@base-org/account': 1.1.1(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.2.0)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.6.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11) '@coinbase/wallet-sdk': 4.3.2 '@floating-ui/react': 0.26.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@headlessui/react': 2.2.8(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -13746,8 +14225,8 @@ snapshots: '@metamask/eth-sig-util': 6.0.2 '@privy-io/api-base': 1.7.0 '@privy-io/chains': 0.0.2 - '@privy-io/ethereum': 0.0.2(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11)) - '@privy-io/js-sdk-core': 0.55.2(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11)) + '@privy-io/ethereum': 0.0.2(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11)) + '@privy-io/js-sdk-core': 0.55.2(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11)) '@privy-io/public-api': 2.45.2(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10) '@scure/base': 1.2.6 '@simplewebauthn/browser': 9.0.1 @@ -13776,8 +14255,12 @@ snapshots: stylis: 4.3.6 tinycolor2: 1.6.0 uuid: 9.0.1 - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) - zustand: 5.0.8(@types/react@19.1.13)(immer@10.1.3)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + zustand: 5.0.8(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(use-sync-external-store@1.6.0(react@19.1.1)) + optionalDependencies: + '@solana-program/system': 0.8.1(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))) + '@solana-program/token': 0.6.0(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))) + '@solana/kit': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -13807,12 +14290,12 @@ snapshots: - utf-8-validate - zod - '@privy-io/wagmi@2.0.0(@privy-io/react-auth@3.0.1(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.1.3)(ioredis@5.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11))(react@19.1.1)(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(wagmi@2.17.2(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.3)(ioredis@5.8.0)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(zod@4.1.11))': + '@privy-io/wagmi@2.0.0(aa00d93f89864799f5a8366bea17b807)': dependencies: - '@privy-io/react-auth': 3.0.1(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.1.3)(ioredis@5.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11) + '@privy-io/react-auth': 3.0.1(@solana-program/system@0.8.1(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))))(@solana-program/token@0.6.0(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))))(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.2.0)(ioredis@5.8.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.6.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11) react: 19.1.1 - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) - wagmi: 2.17.2(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.3)(ioredis@5.8.0)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(zod@4.1.11) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + wagmi: 2.19.2(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@types/react@19.1.13)(bufferutil@4.0.9)(debug@4.4.3)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(immer@10.2.0)(ioredis@5.8.0)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@4.1.11) '@radix-ui/number@1.1.1': {} @@ -14286,7 +14769,7 @@ snapshots: dependencies: '@standard-schema/spec': 1.0.0 '@standard-schema/utils': 0.3.0 - immer: 10.1.3 + immer: 10.2.0 redux: 5.0.1 redux-thunk: 3.1.0(redux@5.0.1) reselect: 5.1.1 @@ -14298,7 +14781,7 @@ snapshots: dependencies: big.js: 6.2.2 dayjs: 1.11.13 - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.22.4) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.22.4) transitivePeerDependencies: - bufferutil - typescript @@ -14309,7 +14792,7 @@ snapshots: dependencies: big.js: 6.2.2 dayjs: 1.11.13 - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) transitivePeerDependencies: - bufferutil - typescript @@ -14322,7 +14805,7 @@ snapshots: '@reown/appkit-wallet': 1.7.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10) '@walletconnect/universal-provider': 2.21.0(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.8.0)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) valtio: 1.13.2(@types/react@19.1.13)(react@19.1.1) - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -14472,7 +14955,7 @@ snapshots: '@walletconnect/logger': 2.1.2 '@walletconnect/universal-provider': 2.21.0(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.8.0)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) valtio: 1.13.2(@types/react@19.1.13)(react@19.1.1) - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -14526,7 +15009,7 @@ snapshots: '@walletconnect/universal-provider': 2.21.0(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.8.0)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) bs58: 6.0.0 valtio: 1.13.2(@types/react@19.1.13)(react@19.1.1) - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -14763,7 +15246,7 @@ snapshots: '@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11)': dependencies: '@safe-global/safe-gateway-typescript-sdk': 3.23.1 - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) transitivePeerDependencies: - bufferutil - typescript @@ -14829,6 +15312,422 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} + '@solana-program/system@0.8.1(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)))': + dependencies: + '@solana/kit': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + + '@solana-program/token@0.6.0(@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)))': + dependencies: + '@solana/kit': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + + '@solana/accounts@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/addresses': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/codecs-core': 3.0.3(typescript@5.9.2) + '@solana/codecs-strings': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/rpc-spec': 3.0.3(typescript@5.9.2) + '@solana/rpc-types': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/addresses@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/assertions': 3.0.3(typescript@5.9.2) + '@solana/codecs-core': 3.0.3(typescript@5.9.2) + '@solana/codecs-strings': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/nominal-types': 3.0.3(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/assertions@3.0.3(typescript@5.9.2)': + dependencies: + '@solana/errors': 3.0.3(typescript@5.9.2) + typescript: 5.9.2 + + '@solana/buffer-layout@4.0.1': + dependencies: + buffer: 6.0.3 + + '@solana/codecs-core@2.3.0(typescript@5.9.2)': + dependencies: + '@solana/errors': 2.3.0(typescript@5.9.2) + typescript: 5.9.2 + + '@solana/codecs-core@3.0.3(typescript@5.9.2)': + dependencies: + '@solana/errors': 3.0.3(typescript@5.9.2) + typescript: 5.9.2 + + '@solana/codecs-data-structures@3.0.3(typescript@5.9.2)': + dependencies: + '@solana/codecs-core': 3.0.3(typescript@5.9.2) + '@solana/codecs-numbers': 3.0.3(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + typescript: 5.9.2 + + '@solana/codecs-numbers@2.3.0(typescript@5.9.2)': + dependencies: + '@solana/codecs-core': 2.3.0(typescript@5.9.2) + '@solana/errors': 2.3.0(typescript@5.9.2) + typescript: 5.9.2 + + '@solana/codecs-numbers@3.0.3(typescript@5.9.2)': + dependencies: + '@solana/codecs-core': 3.0.3(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + typescript: 5.9.2 + + '@solana/codecs-strings@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/codecs-core': 3.0.3(typescript@5.9.2) + '@solana/codecs-numbers': 3.0.3(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + fastestsmallesttextencoderdecoder: 1.0.22 + typescript: 5.9.2 + + '@solana/codecs@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/codecs-core': 3.0.3(typescript@5.9.2) + '@solana/codecs-data-structures': 3.0.3(typescript@5.9.2) + '@solana/codecs-numbers': 3.0.3(typescript@5.9.2) + '@solana/codecs-strings': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/options': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/errors@2.3.0(typescript@5.9.2)': + dependencies: + chalk: 5.6.2 + commander: 14.0.2 + typescript: 5.9.2 + + '@solana/errors@3.0.3(typescript@5.9.2)': + dependencies: + chalk: 5.6.2 + commander: 14.0.0 + typescript: 5.9.2 + + '@solana/fast-stable-stringify@3.0.3(typescript@5.9.2)': + dependencies: + typescript: 5.9.2 + + '@solana/functional@3.0.3(typescript@5.9.2)': + dependencies: + typescript: 5.9.2 + + '@solana/instruction-plans@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/instructions': 3.0.3(typescript@5.9.2) + '@solana/promises': 3.0.3(typescript@5.9.2) + '@solana/transaction-messages': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/transactions': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/instructions@3.0.3(typescript@5.9.2)': + dependencies: + '@solana/codecs-core': 3.0.3(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + typescript: 5.9.2 + + '@solana/keys@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/assertions': 3.0.3(typescript@5.9.2) + '@solana/codecs-core': 3.0.3(typescript@5.9.2) + '@solana/codecs-strings': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/nominal-types': 3.0.3(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/kit@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/accounts': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/addresses': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/codecs': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/functional': 3.0.3(typescript@5.9.2) + '@solana/instruction-plans': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/instructions': 3.0.3(typescript@5.9.2) + '@solana/keys': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/programs': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/rpc': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/rpc-parsed-types': 3.0.3(typescript@5.9.2) + '@solana/rpc-spec-types': 3.0.3(typescript@5.9.2) + '@solana/rpc-subscriptions': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/rpc-types': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/signers': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/sysvars': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/transaction-confirmation': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/transaction-messages': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/transactions': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - ws + + '@solana/nominal-types@3.0.3(typescript@5.9.2)': + dependencies: + typescript: 5.9.2 + + '@solana/options@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/codecs-core': 3.0.3(typescript@5.9.2) + '@solana/codecs-data-structures': 3.0.3(typescript@5.9.2) + '@solana/codecs-numbers': 3.0.3(typescript@5.9.2) + '@solana/codecs-strings': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/programs@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/addresses': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/promises@3.0.3(typescript@5.9.2)': + dependencies: + typescript: 5.9.2 + + '@solana/rpc-api@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/addresses': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/codecs-core': 3.0.3(typescript@5.9.2) + '@solana/codecs-strings': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/keys': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/rpc-parsed-types': 3.0.3(typescript@5.9.2) + '@solana/rpc-spec': 3.0.3(typescript@5.9.2) + '@solana/rpc-transformers': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/rpc-types': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/transaction-messages': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/transactions': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-parsed-types@3.0.3(typescript@5.9.2)': + dependencies: + typescript: 5.9.2 + + '@solana/rpc-spec-types@3.0.3(typescript@5.9.2)': + dependencies: + typescript: 5.9.2 + + '@solana/rpc-spec@3.0.3(typescript@5.9.2)': + dependencies: + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/rpc-spec-types': 3.0.3(typescript@5.9.2) + typescript: 5.9.2 + + '@solana/rpc-subscriptions-api@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/addresses': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/keys': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/rpc-subscriptions-spec': 3.0.3(typescript@5.9.2) + '@solana/rpc-transformers': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/rpc-types': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/transaction-messages': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/transactions': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-subscriptions-channel-websocket@3.0.3(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/functional': 3.0.3(typescript@5.9.2) + '@solana/rpc-subscriptions-spec': 3.0.3(typescript@5.9.2) + '@solana/subscribable': 3.0.3(typescript@5.9.2) + typescript: 5.9.2 + ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) + + '@solana/rpc-subscriptions-spec@3.0.3(typescript@5.9.2)': + dependencies: + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/promises': 3.0.3(typescript@5.9.2) + '@solana/rpc-spec-types': 3.0.3(typescript@5.9.2) + '@solana/subscribable': 3.0.3(typescript@5.9.2) + typescript: 5.9.2 + + '@solana/rpc-subscriptions@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/fast-stable-stringify': 3.0.3(typescript@5.9.2) + '@solana/functional': 3.0.3(typescript@5.9.2) + '@solana/promises': 3.0.3(typescript@5.9.2) + '@solana/rpc-spec-types': 3.0.3(typescript@5.9.2) + '@solana/rpc-subscriptions-api': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/rpc-subscriptions-channel-websocket': 3.0.3(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/rpc-subscriptions-spec': 3.0.3(typescript@5.9.2) + '@solana/rpc-transformers': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/rpc-types': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/subscribable': 3.0.3(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - ws + + '@solana/rpc-transformers@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/functional': 3.0.3(typescript@5.9.2) + '@solana/nominal-types': 3.0.3(typescript@5.9.2) + '@solana/rpc-spec-types': 3.0.3(typescript@5.9.2) + '@solana/rpc-types': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc-transport-http@3.0.3(typescript@5.9.2)': + dependencies: + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/rpc-spec': 3.0.3(typescript@5.9.2) + '@solana/rpc-spec-types': 3.0.3(typescript@5.9.2) + typescript: 5.9.2 + undici-types: 7.16.0 + + '@solana/rpc-types@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/addresses': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/codecs-core': 3.0.3(typescript@5.9.2) + '@solana/codecs-numbers': 3.0.3(typescript@5.9.2) + '@solana/codecs-strings': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/nominal-types': 3.0.3(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/rpc@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/fast-stable-stringify': 3.0.3(typescript@5.9.2) + '@solana/functional': 3.0.3(typescript@5.9.2) + '@solana/rpc-api': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/rpc-spec': 3.0.3(typescript@5.9.2) + '@solana/rpc-spec-types': 3.0.3(typescript@5.9.2) + '@solana/rpc-transformers': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/rpc-transport-http': 3.0.3(typescript@5.9.2) + '@solana/rpc-types': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/signers@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/addresses': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/codecs-core': 3.0.3(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/instructions': 3.0.3(typescript@5.9.2) + '@solana/keys': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/nominal-types': 3.0.3(typescript@5.9.2) + '@solana/transaction-messages': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/transactions': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/subscribable@3.0.3(typescript@5.9.2)': + dependencies: + '@solana/errors': 3.0.3(typescript@5.9.2) + typescript: 5.9.2 + + '@solana/sysvars@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/accounts': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/codecs': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/rpc-types': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transaction-confirmation@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/addresses': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/codecs-strings': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/keys': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/promises': 3.0.3(typescript@5.9.2) + '@solana/rpc': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/rpc-subscriptions': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/rpc-types': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/transaction-messages': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/transactions': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - ws + + '@solana/transaction-messages@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/addresses': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/codecs-core': 3.0.3(typescript@5.9.2) + '@solana/codecs-data-structures': 3.0.3(typescript@5.9.2) + '@solana/codecs-numbers': 3.0.3(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/functional': 3.0.3(typescript@5.9.2) + '@solana/instructions': 3.0.3(typescript@5.9.2) + '@solana/nominal-types': 3.0.3(typescript@5.9.2) + '@solana/rpc-types': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/transactions@3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2)': + dependencies: + '@solana/addresses': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/codecs-core': 3.0.3(typescript@5.9.2) + '@solana/codecs-data-structures': 3.0.3(typescript@5.9.2) + '@solana/codecs-numbers': 3.0.3(typescript@5.9.2) + '@solana/codecs-strings': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/errors': 3.0.3(typescript@5.9.2) + '@solana/functional': 3.0.3(typescript@5.9.2) + '@solana/instructions': 3.0.3(typescript@5.9.2) + '@solana/keys': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/nominal-types': 3.0.3(typescript@5.9.2) + '@solana/rpc-types': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + '@solana/transaction-messages': 3.0.3(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.9.2) + typescript: 5.9.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/web3.js@1.98.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.9.2)(utf-8-validate@5.0.10)': + dependencies: + '@babel/runtime': 7.28.4 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + '@solana/buffer-layout': 4.0.1 + '@solana/codecs-numbers': 2.3.0(typescript@5.9.2) + agentkeepalive: 4.6.0 + bn.js: 5.2.2 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + node-fetch: 2.7.0(encoding@0.1.13) + rpc-websockets: 9.3.1 + superstruct: 2.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + '@solid-primitives/event-listener@2.4.3(solid-js@1.9.9)': dependencies: '@solid-primitives/utils': 6.3.2(solid-js@1.9.9) @@ -15241,7 +16140,7 @@ snapshots: '@tanstack/store': 0.7.5 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - use-sync-external-store: 1.5.0(react@19.1.1) + use-sync-external-store: 1.6.0(react@19.1.1) '@tanstack/react-virtual@3.13.12(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: @@ -15405,6 +16304,10 @@ snapshots: dependencies: '@types/deep-eql': 4.0.2 + '@types/connect@3.4.38': + dependencies: + '@types/node': 20.19.9 + '@types/d3-array@3.2.2': {} '@types/d3-color@3.1.3': {} @@ -15486,6 +16389,8 @@ snapshots: '@types/ms@2.1.0': {} + '@types/node@12.20.55': {} + '@types/node@20.19.9': dependencies: undici-types: 6.21.0 @@ -15518,6 +16423,16 @@ snapshots: '@types/use-sync-external-store@0.0.6': {} + '@types/uuid@8.3.4': {} + + '@types/ws@7.4.7': + dependencies: + '@types/node': 20.19.9 + + '@types/ws@8.18.1': + dependencies: + '@types/node': 20.19.9 + '@types/yargs-parser@21.0.3': {} '@types/yargs@17.0.33': @@ -15770,18 +16685,19 @@ snapshots: loupe: 3.2.1 tinyrainbow: 2.0.0 - '@wagmi/connectors@5.10.2(@types/react@19.1.13)(@wagmi/core@2.21.1(@tanstack/query-core@5.90.2)(@types/react@19.1.13)(immer@10.1.3)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11)))(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.3)(ioredis@5.8.0)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(zod@4.1.11)': + '@wagmi/connectors@6.1.3(e2df5ec3edd1d01c0c5b6685ed869aa8)': dependencies: - '@base-org/account': 1.1.1(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.1.3)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11) - '@coinbase/wallet-sdk': 4.3.6(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.1.3)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11) - '@gemini-wallet/core': 0.2.0(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11)) + '@base-org/account': 2.4.0(@types/react@19.1.13)(bufferutil@4.0.9)(debug@4.4.3)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(immer@10.2.0)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@4.1.11) + '@coinbase/wallet-sdk': 4.3.6(@types/react@19.1.13)(bufferutil@4.0.9)(immer@10.2.0)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@4.1.11) + '@gemini-wallet/core': 0.3.1(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11)) '@metamask/sdk': 0.33.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@safe-global/safe-apps-provider': 0.18.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) - '@wagmi/core': 2.21.1(@tanstack/query-core@5.90.2)(@types/react@19.1.13)(immer@10.1.3)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11)) + '@wagmi/core': 2.22.1(@tanstack/query-core@5.90.2)(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.6.0(react@19.1.1))(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11)) '@walletconnect/ethereum-provider': 2.21.1(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.8.0)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) cbw-sdk: '@coinbase/wallet-sdk@3.9.3' - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + porto: 0.2.35(@tanstack/react-query@5.90.2(react@19.1.1))(@types/react@19.1.13)(@wagmi/core@2.22.1(@tanstack/query-core@5.90.2)(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11)))(immer@10.2.0)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(wagmi@2.19.2(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@types/react@19.1.13)(bufferutil@4.0.9)(debug@4.4.3)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(immer@10.2.0)(ioredis@5.8.0)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@4.1.11)) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) optionalDependencies: typescript: 5.9.2 transitivePeerDependencies: @@ -15796,6 +16712,7 @@ snapshots: - '@netlify/blobs' - '@planetscale/database' - '@react-native-async-storage/async-storage' + - '@tanstack/react-query' - '@types/react' - '@upstash/redis' - '@vercel/blob' @@ -15804,22 +16721,30 @@ snapshots: - aws4fetch - bufferutil - db0 + - debug - encoding + - expo-auth-session + - expo-crypto + - expo-web-browser + - fastestsmallesttextencoderdecoder - immer - ioredis - react + - react-native - supports-color - uploadthing - use-sync-external-store - utf-8-validate + - wagmi + - ws - zod - '@wagmi/core@2.21.1(@tanstack/query-core@5.90.2)(@types/react@19.1.13)(immer@10.1.3)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))': + '@wagmi/core@2.22.1(@tanstack/query-core@5.90.2)(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.6.0(react@19.1.1))(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))': dependencies: eventemitter3: 5.0.1 mipd: 0.0.7(typescript@5.9.2) - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) - zustand: 5.0.0(@types/react@19.1.13)(immer@10.1.3)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + zustand: 5.0.0(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(use-sync-external-store@1.6.0(react@19.1.1)) optionalDependencies: '@tanstack/query-core': 5.90.2 typescript: 5.9.2 @@ -16789,6 +17714,11 @@ snapshots: dependencies: argparse: 2.0.1 + abitype@1.0.6(typescript@5.9.2)(zod@3.25.76): + optionalDependencies: + typescript: 5.9.2 + zod: 3.25.76 + abitype@1.0.8(typescript@5.9.2)(zod@4.1.11): optionalDependencies: typescript: 5.9.2 @@ -16840,6 +17770,10 @@ snapshots: agent-base@7.1.4: {} + agentkeepalive@4.6.0: + dependencies: + humanize-ms: 1.2.1 + ajv-formats@2.1.1(ajv@8.17.1): optionalDependencies: ajv: 8.17.1 @@ -17044,7 +17978,12 @@ snapshots: axe-core@4.10.3: {} - axios@1.12.2: + axios-retry@4.5.0(axios@1.12.2(debug@4.4.3)): + dependencies: + axios: 1.12.2(debug@4.4.3) + is-retry-allowed: 2.2.0 + + axios@1.12.2(debug@4.4.3): dependencies: follow-redirects: 1.15.11(debug@4.4.3) form-data: 4.0.4 @@ -17170,6 +18109,10 @@ snapshots: bare-events@2.7.0: optional: true + base-x@3.0.11: + dependencies: + safe-buffer: 5.2.1 + base-x@4.0.1: {} base-x@5.0.1: {} @@ -17236,6 +18179,12 @@ snapshots: boolbase@1.0.0: {} + borsh@0.7.0: + dependencies: + bn.js: 5.2.2 + bs58: 4.0.1 + text-encoding-utf-8: 1.0.2 + bowser@2.12.1: {} brace-expansion@1.1.12: @@ -17310,6 +18259,10 @@ snapshots: node-releases: 2.0.21 update-browserslist-db: 1.1.3(browserslist@4.26.2) + bs58@4.0.1: + dependencies: + base-x: 3.0.11 + bs58@5.0.0: dependencies: base-x: 4.0.1 @@ -17524,6 +18477,10 @@ snapshots: commander@11.1.0: {} + commander@14.0.0: {} + + commander@14.0.2: {} + commander@2.20.3: {} commander@4.1.1: {} @@ -17944,6 +18901,8 @@ snapshots: defu@6.1.4: {} + delay@5.0.0: {} + delayed-stream@1.0.0: {} delegates@1.0.0: {} @@ -18281,6 +19240,12 @@ snapshots: es-toolkit@1.39.3: {} + es6-promise@4.2.8: {} + + es6-promisify@5.0.0: + dependencies: + es6-promise: 4.2.8 + esbuild-register@3.6.0(esbuild@0.25.0): dependencies: debug: 4.4.3 @@ -18734,6 +19699,8 @@ snapshots: readable-stream: 4.7.0 webextension-polyfill: 0.10.0 + eyes@0.1.8: {} + fast-copy@3.0.2: {} fast-decode-uri-component@1.0.1: {} @@ -18773,8 +19740,12 @@ snapshots: fast-safe-stringify@2.1.1: {} + fast-stable-stringify@1.0.0: {} + fast-uri@3.1.0: {} + fastestsmallesttextencoderdecoder@1.0.22: {} + fastify-plugin@5.0.1: {} fastify-type-provider-zod@6.0.0(@fastify/swagger@9.5.1)(fastify@5.6.1)(openapi-types@12.1.3)(zod@4.1.11): @@ -19216,6 +20187,8 @@ snapshots: dependencies: parse-passwd: 1.0.0 + hono@4.10.4: {} + hosted-git-info@7.0.2: dependencies: lru-cache: 10.4.3 @@ -19318,6 +20291,10 @@ snapshots: human-signals@2.1.0: {} + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + i18next-browser-languagedetector@8.2.0: dependencies: '@babel/runtime': 7.28.4 @@ -19362,7 +20339,7 @@ snapshots: ignore@7.0.5: {} - immer@10.1.3: {} + immer@10.2.0: {} import-cwd@3.0.0: dependencies: @@ -19539,6 +20516,8 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 + is-retry-allowed@2.2.0: {} + is-set@2.0.3: {} is-shared-array-buffer@1.0.4: @@ -19599,6 +20578,10 @@ snapshots: isomorphic-timers-promises@1.0.1: {} + isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)): + dependencies: + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + isomorphic-ws@5.0.0(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -19671,6 +20654,24 @@ snapshots: filelist: 1.0.4 picocolors: 1.1.1 + jayson@4.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@types/connect': 3.4.38 + '@types/node': 12.20.55 + '@types/ws': 7.4.7 + commander: 2.20.3 + delay: 5.0.0 + es6-promisify: 5.0.0 + eyes: 0.1.8 + isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + json-stringify-safe: 5.0.1 + stream-json: 1.9.1 + uuid: 8.3.2 + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + jest-circus@30.1.3(babel-plugin-macros@3.1.0): dependencies: '@jest/environment': 30.1.2 @@ -19953,6 +20954,8 @@ snapshots: jose@4.15.9: {} + jose@6.1.0: {} + joycon@3.1.1: {} js-cookie@3.0.5: {} @@ -20033,6 +21036,8 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} + json-stringify-safe@5.0.1: {} + json5@1.0.2: dependencies: minimist: 1.2.8 @@ -20571,7 +21576,7 @@ snapshots: '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.2 '@zkochan/js-yaml': 0.0.7 - axios: 1.12.2 + axios: 1.12.2(debug@4.4.3) chalk: 4.1.2 cli-cursor: 3.1.0 cli-spinners: 2.6.1 @@ -21080,6 +22085,26 @@ snapshots: transitivePeerDependencies: - supports-color + porto@0.2.35(@tanstack/react-query@5.90.2(react@19.1.1))(@types/react@19.1.13)(@wagmi/core@2.22.1(@tanstack/query-core@5.90.2)(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11)))(immer@10.2.0)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(wagmi@2.19.2(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@types/react@19.1.13)(bufferutil@4.0.9)(debug@4.4.3)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(immer@10.2.0)(ioredis@5.8.0)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@4.1.11)): + dependencies: + '@wagmi/core': 2.22.1(@tanstack/query-core@5.90.2)(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.6.0(react@19.1.1))(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11)) + hono: 4.10.4 + idb-keyval: 6.2.2 + mipd: 0.0.7(typescript@5.9.2) + ox: 0.9.6(typescript@5.9.2)(zod@4.1.11) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + zod: 4.1.11 + zustand: 5.0.8(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)) + optionalDependencies: + '@tanstack/react-query': 5.90.2(react@19.1.1) + react: 19.1.1 + typescript: 5.9.2 + wagmi: 2.19.2(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@types/react@19.1.13)(bufferutil@4.0.9)(debug@4.4.3)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(immer@10.2.0)(ioredis@5.8.0)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@4.1.11) + transitivePeerDependencies: + - '@types/react' + - immer + - use-sync-external-store + possible-typed-array-names@1.1.0: {} postcss-calc@8.2.4(postcss@8.4.38): @@ -21496,7 +22521,7 @@ snapshots: dependencies: '@types/use-sync-external-store': 0.0.6 react: 19.1.1 - use-sync-external-store: 1.5.0(react@19.1.1) + use-sync-external-store: 1.6.0(react@19.1.1) optionalDependencies: '@types/react': 19.1.13 redux: 5.0.1 @@ -21585,14 +22610,14 @@ snapshots: decimal.js-light: 2.5.1 es-toolkit: 1.39.3 eventemitter3: 5.0.1 - immer: 10.1.3 + immer: 10.2.0 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) react-is: 18.3.1 react-redux: 9.2.0(@types/react@19.1.13)(react@19.1.1)(redux@5.0.1) reselect: 5.1.1 tiny-invariant: 1.3.3 - use-sync-external-store: 1.5.0(react@19.1.1) + use-sync-external-store: 1.6.0(react@19.1.1) victory-vendor: 37.3.6 transitivePeerDependencies: - '@types/react' @@ -21791,6 +22816,19 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.50.2 fsevents: 2.3.3 + rpc-websockets@9.3.1: + dependencies: + '@swc/helpers': 0.5.17 + '@types/uuid': 8.3.4 + '@types/ws': 8.18.1 + buffer: 6.0.3 + eventemitter3: 5.0.1 + uuid: 8.3.2 + ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + rrweb-cssom@0.8.0: {} rslog@1.2.11: {} @@ -22113,6 +23151,8 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + stream-chain@2.2.5: {} + stream-http@3.2.0: dependencies: builtin-status-codes: 3.0.0 @@ -22120,6 +23160,10 @@ snapshots: readable-stream: 3.6.2 xtend: 4.0.2 + stream-json@1.9.1: + dependencies: + stream-chain: 2.2.5 + stream-shift@1.0.3: {} streamroller@3.1.5: @@ -22291,6 +23335,8 @@ snapshots: superstruct@1.0.4: {} + superstruct@2.0.2: {} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -22433,6 +23479,8 @@ snapshots: transitivePeerDependencies: - react-native-b4a + text-encoding-utf-8@1.0.2: {} + thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -22691,6 +23739,8 @@ snapshots: undici-types@6.21.0: {} + undici-types@7.16.0: {} + unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: @@ -22799,7 +23849,7 @@ snapshots: dependencies: react: 19.1.1 - use-sync-external-store@1.5.0(react@19.1.1): + use-sync-external-store@1.6.0(react@19.1.1): dependencies: react: 19.1.1 @@ -22899,7 +23949,24 @@ snapshots: - utf-8-validate - zod - viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.22.4): + viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11): + dependencies: + '@noble/curves': 1.9.1 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.1.0(typescript@5.9.2)(zod@4.1.11) + isows: 1.0.7(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + ox: 0.9.6(typescript@5.9.2)(zod@4.1.11) + ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + typescript: 5.9.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + + viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.22.4): dependencies: '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 @@ -22916,7 +23983,7 @@ snapshots: - utf-8-validate - zod - viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76): + viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@3.25.76): dependencies: '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 @@ -22933,7 +24000,7 @@ snapshots: - utf-8-validate - zod - viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11): + viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11): dependencies: '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 @@ -23192,14 +24259,14 @@ snapshots: dependencies: xml-name-validator: 5.0.0 - wagmi@2.17.2(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.3)(ioredis@5.8.0)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(zod@4.1.11): + wagmi@2.19.2(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@types/react@19.1.13)(bufferutil@4.0.9)(debug@4.4.3)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(immer@10.2.0)(ioredis@5.8.0)(react@19.1.1)(typescript@5.9.2)(utf-8-validate@5.0.10)(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@4.1.11): dependencies: '@tanstack/react-query': 5.90.2(react@19.1.1) - '@wagmi/connectors': 5.10.2(@types/react@19.1.13)(@wagmi/core@2.21.1(@tanstack/query-core@5.90.2)(@types/react@19.1.13)(immer@10.1.3)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11)))(bufferutil@4.0.9)(encoding@0.1.13)(immer@10.1.3)(ioredis@5.8.0)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11))(zod@4.1.11) - '@wagmi/core': 2.21.1(@tanstack/query-core@5.90.2)(@types/react@19.1.13)(immer@10.1.3)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11)) + '@wagmi/connectors': 6.1.3(e2df5ec3edd1d01c0c5b6685ed869aa8) + '@wagmi/core': 2.22.1(@tanstack/query-core@5.90.2)(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(typescript@5.9.2)(use-sync-external-store@1.6.0(react@19.1.1))(viem@2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11)) react: 19.1.1 use-sync-external-store: 1.4.0(react@19.1.1) - viem: 2.37.8(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) + viem: 2.38.6(bufferutil@4.0.9)(typescript@5.9.2)(utf-8-validate@5.0.10)(zod@4.1.11) optionalDependencies: typescript: 5.9.2 transitivePeerDependencies: @@ -23223,12 +24290,19 @@ snapshots: - aws4fetch - bufferutil - db0 + - debug - encoding + - expo-auth-session + - expo-crypto + - expo-web-browser + - fastestsmallesttextencoderdecoder - immer - ioredis + - react-native - supports-color - uploadthing - utf-8-validate + - ws - zod walker@1.0.8: @@ -23482,23 +24556,37 @@ snapshots: zod@4.1.11: {} - zustand@5.0.0(@types/react@19.1.13)(immer@10.1.3)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)): + zustand@5.0.0(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(use-sync-external-store@1.6.0(react@19.1.1)): optionalDependencies: '@types/react': 19.1.13 - immer: 10.1.3 + immer: 10.2.0 react: 19.1.1 - use-sync-external-store: 1.4.0(react@19.1.1) + use-sync-external-store: 1.6.0(react@19.1.1) - zustand@5.0.3(@types/react@19.1.13)(immer@10.1.3)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)): + zustand@5.0.3(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)): optionalDependencies: '@types/react': 19.1.13 - immer: 10.1.3 + immer: 10.2.0 react: 19.1.1 use-sync-external-store: 1.4.0(react@19.1.1) - zustand@5.0.8(@types/react@19.1.13)(immer@10.1.3)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)): + zustand@5.0.3(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(use-sync-external-store@1.6.0(react@19.1.1)): + optionalDependencies: + '@types/react': 19.1.13 + immer: 10.2.0 + react: 19.1.1 + use-sync-external-store: 1.6.0(react@19.1.1) + + zustand@5.0.8(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)): optionalDependencies: '@types/react': 19.1.13 - immer: 10.1.3 + immer: 10.2.0 react: 19.1.1 use-sync-external-store: 1.4.0(react@19.1.1) + + zustand@5.0.8(@types/react@19.1.13)(immer@10.2.0)(react@19.1.1)(use-sync-external-store@1.6.0(react@19.1.1)): + optionalDependencies: + '@types/react': 19.1.13 + immer: 10.2.0 + react: 19.1.1 + use-sync-external-store: 1.6.0(react@19.1.1)
{t(($) => $.preparing)}
{item.title}
{item.description}
+ + +
{item.error}
{t(($) => $.connectWallet)}
Switch to another network: {chainId}