From 0eec2c39f50950726e58a0fdd74734228de5641a Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Wed, 22 Oct 2025 14:24:20 +0200 Subject: [PATCH 01/14] test custom connector --- package.json | 2 +- ui/marketplace/useMarketplaceWallet.tsx | 31 ++++++++++++++----------- ui/pages/MarketplaceApp.tsx | 16 +++++++++---- yarn.lock | 12 +++++----- 4 files changed, 37 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index c73435f4a6..81de343f1d 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "brotli-compress": "1.3.3", "crypto-js": "^4.2.0", "d3": "^7.6.1", - "dappscout-iframe": "0.3.2", + "dappscout-iframe": "0.4.0-alpha.4", "dayjs": "^1.11.5", "dom-to-image": "^2.6.0", "es-toolkit": "1.39.10", diff --git a/ui/marketplace/useMarketplaceWallet.tsx b/ui/marketplace/useMarketplaceWallet.tsx index 94cde177db..d1cde1a1a2 100644 --- a/ui/marketplace/useMarketplaceWallet.tsx +++ b/ui/marketplace/useMarketplaceWallet.tsx @@ -3,7 +3,7 @@ import { useCallback } from 'react'; import type { Account, SignTypedDataParameters } from 'viem'; import { useAccount, useSendTransaction, useSwitchChain, useSignMessage, useSignTypedData } from 'wagmi'; -import config from 'configs/app'; +// import config from 'configs/app'; import useRewardsActivity from 'lib/hooks/useRewardsActivity'; import * as mixpanel from 'lib/mixpanel/index'; @@ -37,14 +37,13 @@ export default function useMarketplaceWallet(appId: string) { ); }, [ address, appId ]); - const switchNetwork = useCallback(async() => { - if (Number(config.chain.id) !== chainId) { - await switchChainAsync?.({ chainId: Number(config.chain.id) }); - } - }, [ chainId, switchChainAsync ]); + // const switchNetwork = useCallback(async() => { + // if (Number(config.chain.id) !== chainId) { + // await switchChainAsync?.({ chainId: Number(config.chain.id) }); + // } + // }, [ chainId, switchChainAsync ]); const sendTransaction = useCallback(async(transaction: SendTransactionArgs) => { - await switchNetwork(); const activityResponse = await trackTransaction(address ?? '', transaction.to ?? ''); const tx = await sendTransactionAsync(transaction); if (activityResponse?.token) { @@ -52,29 +51,35 @@ export default function useMarketplaceWallet(appId: string) { } logEvent('Send Transaction'); return tx; - }, [ sendTransactionAsync, switchNetwork, logEvent, trackTransaction, trackTransactionConfirm, address ]); + }, [ sendTransactionAsync, logEvent, trackTransaction, trackTransactionConfirm, address ]); const signMessage = useCallback(async(message: string) => { - await switchNetwork(); const signature = await signMessageAsync({ message }); logEvent('Sign Message'); return signature; - }, [ signMessageAsync, switchNetwork, logEvent ]); + }, [ signMessageAsync, logEvent ]); const signTypedData = useCallback(async(typedData: SignTypedDataArgs) => { - await switchNetwork(); if (typedData.domain) { - typedData.domain.chainId = Number(typedData.domain.chainId); + const chainId = Number(typedData.domain.chainId); + await switchChainAsync({ chainId }); + typedData.domain.chainId = chainId; } const signature = await signTypedDataAsync(typedData); logEvent('Sign Typed Data'); return signature; - }, [ signTypedDataAsync, switchNetwork, logEvent ]); + }, [ signTypedDataAsync, switchChainAsync, logEvent ]); + + const switchChain = useCallback((chainId: number) => { + return switchChainAsync({ chainId }); + }, [ switchChainAsync ]); return { address, + chainId, sendTransaction, signMessage, signTypedData, + switchChain, }; } diff --git a/ui/pages/MarketplaceApp.tsx b/ui/pages/MarketplaceApp.tsx index d04fff145b..d1370c5204 100644 --- a/ui/pages/MarketplaceApp.tsx +++ b/ui/pages/MarketplaceApp.tsx @@ -9,6 +9,7 @@ import type { MarketplaceApp } from 'types/client/marketplace'; import { route } from 'nextjs-routes'; import config from 'configs/app'; +import essentialDappsChainsConfig from 'configs/essential-dapps-chains'; import type { ResourceError } from 'lib/api/resources'; import useApiFetch from 'lib/api/useApiFetch'; import { useMarketplaceContext } from 'lib/contexts/marketplace'; @@ -23,7 +24,7 @@ import useIsAuth from 'ui/snippets/auth/useIsAuth'; import MarketplaceAppTopBar from '../marketplace/MarketplaceAppTopBar'; import useAutoConnectWallet from '../marketplace/useAutoConnectWallet'; import useMarketplaceWallet from '../marketplace/useMarketplaceWallet'; -import { getAppUrl } from '../marketplace/utils'; +// import { getAppUrl } from '../marketplace/utils'; const feature = config.features.marketplace; @@ -105,7 +106,7 @@ export default function MarketplaceApp() { const apiFetch = useApiFetch(); const router = useRouter(); const id = getQueryParamString(router.query.id); - const { address, sendTransaction, signMessage, signTypedData } = useMarketplaceWallet(id); + const { address, chainId, sendTransaction, signMessage, signTypedData, switchChain } = useMarketplaceWallet(id); const isAuth = useIsAuth(); useAutoConnectWallet(); @@ -138,7 +139,8 @@ export default function MarketplaceApp() { const { setIsAutoConnectDisabled } = useMarketplaceContext(); - const appUrl = useMemo(() => getAppUrl(data?.url, router), [ data?.url, router ]); + // const appUrl = useMemo(() => getAppUrl(data?.url, router), [ data?.url, router ]); + const appUrl = 'https://swapscout-git-test-custom-connector-blockscout.vercel.app'; useEffect(() => { if (data) { @@ -152,6 +154,11 @@ export default function MarketplaceApp() { throwOnResourceLoadError(query); + const rpcUrl = useMemo(() => { + const chainConfig = essentialDappsChainsConfig()?.chains.find((chain) => chain.config.chain.id === String(chainId)); + return chainConfig?.config.chain.rpcUrls[0] || config.chain.rpcUrls[0]; + }, [ chainId ]); + return ( diff --git a/yarn.lock b/yarn.lock index 0fd067497d..89a0ffb3b3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13080,13 +13080,13 @@ damerau-levenshtein@^1.0.8: resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== -dappscout-iframe@0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/dappscout-iframe/-/dappscout-iframe-0.3.2.tgz#a338a69a23ca1f4abe45566659c733afa1db0f13" - integrity sha512-YZN/GTCUKm+gTi9FkFeRxmNqvh3FY3pQS+JFUuCcK7aTFmfPzohJFG1ILZafZbI44V2mJAc63PEBfdiNbwJYiQ== +dappscout-iframe@0.4.0-alpha.4: + version "0.4.0-alpha.4" + resolved "https://registry.yarnpkg.com/dappscout-iframe/-/dappscout-iframe-0.4.0-alpha.4.tgz#30f8f2bdebd6ce8829a870e4543fc1cdab2012c6" + integrity sha512-SmVK3ZnnnDXC3T8MyHRK7wyEntRUMryyvTU6FTixcBxmmpIGiN96cmdgLRh1zcFdd1aDEjLME3kv2LjgD7Jufw== dependencies: - react "19.1.2" - react-dom "19.1.2" + react "19.1.0" + react-dom "19.1.0" viem "^1.20.3" data-uri-to-buffer@^4.0.0: From 9d9b0a2e6d1122cbc76d42558b08acf7a58fdad6 Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Wed, 3 Dec 2025 18:47:40 +0100 Subject: [PATCH 02/14] move swap to iframe --- configs/envs/.env.eth | 2 +- deploy/tools/envs-validator/schema.ts | 4 +- .../envs-validator/test/.env.marketplace | 2 +- docs/ENVS.md | 2 +- package.json | 11 +- types/client/marketplace.ts | 1 + ui/marketplace/MarketplaceAppIframe.tsx | 138 ++ ui/marketplace/essentialDapps/swap/Swap.tsx | 167 +-- ui/marketplace/useMarketplaceWallet.tsx | 49 +- ui/pages/MarketplaceApp.tsx | 120 +- ui/pages/MarketplaceEssentialDapp.tsx | 4 +- yarn.lock | 1235 +---------------- 12 files changed, 275 insertions(+), 1460 deletions(-) create mode 100644 ui/marketplace/MarketplaceAppIframe.tsx diff --git a/configs/envs/.env.eth b/configs/envs/.env.eth index 00093c7b54..e006d8afd7 100644 --- a/configs/envs/.env.eth +++ b/configs/envs/.env.eth @@ -42,7 +42,7 @@ NEXT_PUBLIC_MARKETPLACE_BANNER_CONTENT_URL=https://gist.githubusercontent.com/ma NEXT_PUBLIC_MARKETPLACE_BANNER_LINK_URL=https://eth.blockscout.com/apps/revokescout?chainId=1 NEXT_PUBLIC_MARKETPLACE_CATEGORIES_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-categories/default.json NEXT_PUBLIC_MARKETPLACE_ENABLED=true -NEXT_PUBLIC_MARKETPLACE_ESSENTIAL_DAPPS_CONFIG={'swap': {'chains': ['1', '10', '30', '100', '122', '130', '137', '324', '480', '1135', '1514', '1868', '8453', '13371', '42161', '42220', '57073', '534352', '11155111', '1313161554', '1923', '42793', '59144'], 'fee': '0.004', 'integrator': 'blockscout'}, 'multisend': {'chains': ['1', '10', '30', '100', '122', '130', '137', '324', '480', '1135', '1514', '1868', '8453', '13371', '42161', '42220', '57073', '534352', '11155111', '1313161554', '59144', '7000'], 'posthogKey': 'phc_7O4WGsecqqDO1PeaKayHAxUWN1PjheOmQCiDxEMcmkx', 'posthogHost': 'https://us.i.posthog.com'}} +NEXT_PUBLIC_MARKETPLACE_ESSENTIAL_DAPPS_CONFIG={'swap': {'url': 'https://swapscout-git-test-custom-connector-blockscout.vercel.app', 'chains': ['1', '10', '30', '100', '122', '130', '137', '324', '480', '1135', '1514', '1868', '8453', '13371', '42161', '42220', '57073', '534352', '11155111', '1313161554'], 'fee': '0.004', 'integrator': 'blockscout'}, 'revoke': {'chains': ['1', '10', '30', '100', '122', '130', '137', '324', '480', '1135', '1514', '1868', '8453', '13371', '42161', '42220', '57073', '534352', '11155111', '1313161554']}, 'multisend': {'chains': ['1', '10', '30', '100', '122', '130', '137', '324', '480', '1135', '1514', '1868', '8453', '13371', '42161', '42220', '57073', '534352', '11155111', '1313161554']}} NEXT_PUBLIC_MARKETPLACE_SUBMIT_FORM=https://airtable.com/appiy5yijZpMMSKjT/shr6uMGPKjj1DK7NL NEXT_PUBLIC_MARKETPLACE_SUGGEST_IDEAS_FORM=https://airtable.com/appiy5yijZpMMSKjT/pag3t82DUCyhGRZZO/form NEXT_PUBLIC_METADATA_SERVICE_API_HOST=https://metadata.services.blockscout.com diff --git a/deploy/tools/envs-validator/schema.ts b/deploy/tools/envs-validator/schema.ts index 031ff784f9..7a11f8042d 100644 --- a/deploy/tools/envs-validator/schema.ts +++ b/deploy/tools/envs-validator/schema.ts @@ -56,11 +56,11 @@ const schema = yup NEXT_PUBLIC_APP_PROTOCOL: yup.string().oneOf(protocols), NEXT_PUBLIC_APP_PORT: yup.number().positive().integer(), NEXT_PUBLIC_APP_ENV: yup.string(), - NEXT_PUBLIC_APP_INSTANCE: yup.string(), + NEXT_PUBLIC_APP_INSTANCE: yup.string(), // Features configuration - // NOTE: As a rule of thumb, only include features that require a single ENV variable here. + // NOTE: As a rule of thumb, only include features that require a single ENV variable here. // Otherwise, consider placing them in the corresponding schema file in the "./schemas/features" directory. NEXT_PUBLIC_WEB3_WALLETS: yup .mixed() diff --git a/deploy/tools/envs-validator/test/.env.marketplace b/deploy/tools/envs-validator/test/.env.marketplace index eefabb2521..280d887184 100644 --- a/deploy/tools/envs-validator/test/.env.marketplace +++ b/deploy/tools/envs-validator/test/.env.marketplace @@ -7,6 +7,6 @@ NEXT_PUBLIC_ADMIN_SERVICE_API_HOST=https://example.com NEXT_PUBLIC_MARKETPLACE_FEATURED_APP=aave NEXT_PUBLIC_MARKETPLACE_BANNER_CONTENT_URL=https://gist.githubusercontent.com/maxaleks/36f779fd7d74877b57ec7a25a9a3a6c9/raw/746a8a59454c0537235ee44616c4690ce3bbf3c8/banner.html NEXT_PUBLIC_MARKETPLACE_BANNER_LINK_URL=https://www.basename.app -NEXT_PUBLIC_MARKETPLACE_ESSENTIAL_DAPPS_CONFIG={'swap': {'chains': ['1', '10', '100', '11155111'], 'fee': '0.004', 'integrator': 'blockscout'}, 'revoke': {'chains': ['1', '10', '100', '11155111']}, 'multisend': {'chains': ['1', '10', '100', '11155111'], 'posthogKey': '123', 'posthogHost': 'https://example.com'}} +NEXT_PUBLIC_MARKETPLACE_ESSENTIAL_DAPPS_CONFIG={'swap': {'url': 'https://example.com', 'chains': ['1', '10', '100', '11155111'], 'fee': '0.004', 'integrator': 'blockscout'}, 'revoke': {'chains': ['1', '10', '100', '11155111']}, 'multisend': {'chains': ['1', '10', '100', '11155111'], 'posthogKey': '123', 'posthogHost': 'https://example.com'}} NEXT_PUBLIC_MARKETPLACE_TITLES={'menu_item': 'Dapps', 'title': 'Dappscout'} NEXT_PUBLIC_MARKETPLACE_ESSENTIAL_DAPPS_AD_ENABLED=true diff --git a/docs/ENVS.md b/docs/ENVS.md index b7995c763e..7f49757aec 100644 --- a/docs/ENVS.md +++ b/docs/ENVS.md @@ -622,7 +622,7 @@ Essential dapps are built-in dapps that are displayed on the Marketplace page in | Property | Type | Description | Compulsoriness | Example value | | --- | --- | --- | --- | --- | -| swap | `{ chains: Array, fee: string, integrator: string }` | Swap config | - | `{'chains': ['1'], 'fee': '0.004', 'integrator': 'blockscout'}` | +| swap | `{ url: string, chains: Array, fee: string, integrator: string }` | Swap config | - | `{'url': 'https://example.com', 'chains': ['1'], 'fee': '0.004', 'integrator': 'blockscout'}` | | revoke | `{ chains: Array }` | Revoke config | - | `{'chains': ['100']}` | | multisend | `{ chains: Array }` | Multisend config | - | `{'chains': ['1', '10']}` | diff --git a/package.json b/package.json index 81de343f1d..498659f482 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,6 @@ "postinstall": "chakra typegen ./toolkit/theme/theme.ts" }, "dependencies": { - "@bigmi/react": "0.5.2", "@blockscout/bens-types": "1.4.1", "@blockscout/multichain-aggregator-types": "1.6.3-alpha.3", "@blockscout/points-types": "1.4.0-alpha.1", @@ -54,13 +53,10 @@ "@emotion/react": "11.14.0", "@growthbook/growthbook-react": "0.21.0", "@helia/verified-fetch": "2.6.12", - "@lifi/wallet-management": "3.6.1", - "@lifi/widget": "3.25.0", "@metamask/post-message-stream": "^7.0.0", "@metamask/providers": "^10.2.1", "@monaco-editor/react": "^4.7.0", "@multisender.app/multisender-react-widget": "0.2.3", - "@mysten/dapp-kit": "0.17.6", "@next/bundle-analyzer": "15.5.2", "@nouns/assets": "^0.10.0", "@nouns/sdk": "^1.2.0", @@ -79,7 +75,6 @@ "@rollbar/react": "0.12.1", "@scure/base": "1.1.9", "@slise/embed-react": "^2.2.0", - "@solana/wallet-adapter-react": "0.15.39", "@specify-sh/sdk": "0.4.2", "@tanstack/react-query": "5.55.4", "@tanstack/react-query-devtools": "5.55.4", @@ -92,7 +87,7 @@ "brotli-compress": "1.3.3", "crypto-js": "^4.2.0", "d3": "^7.6.1", - "dappscout-iframe": "0.4.0-alpha.4", + "dappscout-iframe": "0.4.0-alpha.7", "dayjs": "^1.11.5", "dom-to-image": "^2.6.0", "es-toolkit": "1.39.10", @@ -203,10 +198,6 @@ "resolutions": { "@types/react": "18.3.12", "@types/react-dom": "18.3.1", - "@lifi/widget": "3.25.0", - "@lifi/wallet-management": "3.6.1", - "@lifi/wallet-management/**/valibot": "1.2.0", - "@lifi/widget/**/valibot": "1.2.0", "wagmi/**/ws": "8.17.1", "@helia/verified-fetch/**/axios": "1.12.0", "@helia/verified-fetch/**/tar-fs": "2.1.4", diff --git a/types/client/marketplace.ts b/types/client/marketplace.ts index 01467be05f..f57e021207 100644 --- a/types/client/marketplace.ts +++ b/types/client/marketplace.ts @@ -49,6 +49,7 @@ export interface EssentialDappsChainConfig extends ExternalChain { export type EssentialDappsConfig = { swap?: { + url: string; chains: Array; fee: string; integrator: string; diff --git a/ui/marketplace/MarketplaceAppIframe.tsx b/ui/marketplace/MarketplaceAppIframe.tsx new file mode 100644 index 0000000000..a24454614c --- /dev/null +++ b/ui/marketplace/MarketplaceAppIframe.tsx @@ -0,0 +1,138 @@ +import { Center, chakra } from '@chakra-ui/react'; +import { DappscoutIframeProvider, useDappscoutIframe } from 'dappscout-iframe'; +import React, { useCallback, useEffect, useState, useMemo } from 'react'; + +import config from 'configs/app'; +import essentialDappsChainsConfig from 'configs/essential-dapps-chains'; +import ContentLoader from 'ui/shared/ContentLoader'; + +import useMarketplaceWallet from '../marketplace/useMarketplaceWallet'; + +const IFRAME_SANDBOX_ATTRIBUTE = 'allow-forms allow-orientation-lock ' + +'allow-pointer-lock allow-popups-to-escape-sandbox ' + +'allow-same-origin allow-scripts ' + +'allow-top-navigation-by-user-activation allow-popups'; + +const IFRAME_ALLOW_ATTRIBUTE = 'clipboard-read; clipboard-write;'; + +type ContentProps = { + appUrl?: string; + address?: string; + message?: Record; + isAdaptiveHeight?: boolean; +}; + +const Content = ({ appUrl, address, message, isAdaptiveHeight }: ContentProps) => { + const { iframeRef, isReady } = useDappscoutIframe(); + + const [ iframeKey, setIframeKey ] = useState(0); + const [ isFrameLoading, setIsFrameLoading ] = useState(true); + const [ iframeHeight, setIframeHeight ] = useState(0); + + useEffect(() => { + setIframeKey((key) => key + 1); + }, [ address ]); + + const handleIframeLoad = useCallback(() => { + setIsFrameLoading(false); + }, []); + + useEffect(() => { + if (!isFrameLoading && message && appUrl) { + iframeRef?.current?.contentWindow?.postMessage(message, appUrl); + } + }, [ isFrameLoading, appUrl, iframeRef, message ]); + + useEffect(() => { + const handleMessage = (event: MessageEvent) => { + if (event.origin !== appUrl) { + return; + } + if (event.data?.type === 'window-height' && isAdaptiveHeight) { + setIframeHeight(Number(event.data.height)); + } + }; + + window.addEventListener('message', handleMessage); + return () => window.removeEventListener('message', handleMessage); + }, [ appUrl, isAdaptiveHeight ]); + + return ( +
+ { (isFrameLoading) && ( + + ) } + + { isReady && ( + + ) } +
+ ); +}; + +type Props = { + appId: string; + appUrl?: string; + message?: Record; + isFixedChainId?: boolean; + isAdaptiveHeight?: boolean; +}; + +export default function MarketplaceAppIframe({ appId, appUrl, message, isFixedChainId, isAdaptiveHeight }: Props) { + const { + address, + chainId: connectedChainId, + sendTransaction, + signMessage, + signTypedData, + switchChain, + } = useMarketplaceWallet(appId, isFixedChainId); + + const [ chainId, rpcUrl ] = useMemo(() => { + let data: [ number?, string? ] = [ Number(config.chain.id), config.chain.rpcUrls[0] ]; + + if (!isFixedChainId) { + const chainConfig = essentialDappsChainsConfig()?.chains.find( + (chain) => chain.config.chain.id === String(connectedChainId), + ); + if (chainConfig?.config.chain.rpcUrls[0]) { + data = [ connectedChainId, chainConfig.config.chain.rpcUrls[0] ]; + } + } + + return data; + }, [ isFixedChainId, connectedChainId ]); + + return ( + + + + ); +}; diff --git a/ui/marketplace/essentialDapps/swap/Swap.tsx b/ui/marketplace/essentialDapps/swap/Swap.tsx index b78f08a789..f9b5e82f42 100644 --- a/ui/marketplace/essentialDapps/swap/Swap.tsx +++ b/ui/marketplace/essentialDapps/swap/Swap.tsx @@ -1,152 +1,47 @@ -import { Box, Flex, useToken } from '@chakra-ui/react'; -import type { RouteExecutionUpdate, WidgetConfig } from '@lifi/widget'; -import { LiFiWidget, useWidgetEvents, WidgetEvent } from '@lifi/widget'; -import { useEffect, useMemo, useRef } from 'react'; - -import { getFeaturePayload } from 'configs/app/features/types'; +import { useToken } from '@chakra-ui/react'; +import React, { useMemo } from 'react'; import config from 'configs/app'; import essentialDappsChainsConfig from 'configs/essential-dapps-chains'; -import useIsMobile from 'lib/hooks/useIsMobile'; -import useRewardsActivity from 'lib/hooks/useRewardsActivity'; -import * as mixpanel from 'lib/mixpanel/index'; -import useWeb3Wallet from 'lib/web3/useWallet'; import { useColorMode } from 'toolkit/chakra/color-mode'; import { BODY_TYPEFACE } from 'toolkit/theme/foundations/typography'; -import AdBanner from 'ui/shared/ad/AdBanner'; - -const feature = getFeaturePayload(config.features.marketplace); -const dappConfig = feature?.essentialDapps?.swap; +import MarketplaceAppIframe from 'ui/marketplace/MarketplaceAppIframe'; -const defaultChainId = Number( - dappConfig?.chains.includes(config.chain.id as string) ? - config.chain.id : - dappConfig?.chains[0], -); +const feature = config.features.marketplace; +const dappConfig = feature.isEnabled ? feature.essentialDapps?.swap : undefined; -function getUrls(isRpc = false) { +function getExplorerUrls() { return Object.fromEntries(dappConfig?.chains.map((chainId) => { - const chainConfig = essentialDappsChainsConfig()?.chains.find((chain) => chain.id === chainId); - const url = isRpc ? `${ chainConfig?.app_config?.apis?.general?.endpoint }/api/eth-rpc` : chainConfig?.explorer_url; - return [ Number(chainId), [ url ] ]; + const chainConfig = essentialDappsChainsConfig()?.chains.find( + (chain) => chain.id === chainId, + ); + return [ Number(chainId), [ chainConfig?.explorer_url ] ]; }) || []); } -const Widget = () => { - const web3Wallet = useWeb3Wallet({ source: 'Essential dapps' }); +export default function Swap() { const { colorMode } = useColorMode(); - const [ color ] = useToken('colors', 'blue.600'); - - const config = useMemo( - () => - ({ - fee: Number(dappConfig?.fee), - variant: 'compact', - subvariant: 'default', - appearance: colorMode, - theme: { - typography: { fontFamily: BODY_TYPEFACE }, - shape: { - borderRadius: 12, - borderRadiusSecondary: 8, - }, - palette: { - primary: { main: color }, - secondary: { main: color }, - }, - }, - hiddenUI: [ 'appearance' ], - fromChain: defaultChainId, - fromToken: '0x0000000000000000000000000000000000000000', - chains: { - allow: dappConfig?.chains.map((chainId) => Number(chainId)), - }, - sdkConfig: { - rpcUrls: getUrls(true), - }, - explorerUrls: getUrls(), - walletConfig: { - onConnect: web3Wallet.connect, - }, - } as Partial), - [ web3Wallet.connect, colorMode, color ], - ); + const [ mainColor ] = useToken('colors', 'blue.600'); + const [ borderColor ] = useToken('colors', colorMode === 'light' ? 'blackAlpha.100' : 'whiteAlpha.100'); + + const message = useMemo(() => ({ + type: 'config', + integrator: dappConfig?.integrator, + fee: Number(dappConfig?.fee), + chains: dappConfig?.chains.map((chainId) => Number(chainId)), + explorerUrls: getExplorerUrls(), + mainColor, + borderColor, + fontFamily: BODY_TYPEFACE, + initialChainId: Number(config.chain.id), + }), [ mainColor, borderColor ]); return ( - - - + ); }; - -const Swap = () => { - const isMobile = useIsMobile(); - const { trackTransaction, trackTransactionConfirm } = useRewardsActivity(); - const widgetEvents = useWidgetEvents(); - const eventParams = useRef<{ - activityToken?: string; - routeId?: string; - from?: string; - chainId?: string; - }>({}); - - useEffect(() => { - const onRouteExecutionUpdated = async(update: RouteExecutionUpdate) => { - try { - if (eventParams.current.routeId !== update.route.id) { - const { chainId, from, to } = update.route.steps.at(-1)?.transactionRequest ?? {}; - if (chainId && from && to) { - const response = await trackTransaction(from, to, String(chainId)); - eventParams.current = { - activityToken: response?.token, - routeId: update.route.id, - from, - chainId: String(chainId), - }; - } - } else if ([ 'SWAP', 'CROSS_CHAIN' ].includes(update.process.type) && update.process.txHash) { - mixpanel.logEvent(mixpanel.EventTypes.WALLET_ACTION, { - Action: 'Send Transaction', - Address: eventParams.current.from, - AppId: 'swap', - Source: 'Essential dapps', - ChainId: eventParams.current.chainId, - }); - if (eventParams.current.activityToken) { - await trackTransactionConfirm(update.process.txHash, eventParams.current.activityToken); - } - eventParams.current = {}; - } - } catch {} - }; - - widgetEvents.on(WidgetEvent.RouteExecutionUpdated, onRouteExecutionUpdated); - - return () => widgetEvents.all.clear(); - }, [ widgetEvents, trackTransaction, trackTransactionConfirm ]); - - return ( - - - { (feature?.essentialDappsAdEnabled && !isMobile) && ( - - ) } - - ); -}; - -export default Swap; diff --git a/ui/marketplace/useMarketplaceWallet.tsx b/ui/marketplace/useMarketplaceWallet.tsx index d1cde1a1a2..ce839b9bf5 100644 --- a/ui/marketplace/useMarketplaceWallet.tsx +++ b/ui/marketplace/useMarketplaceWallet.tsx @@ -3,7 +3,7 @@ import { useCallback } from 'react'; import type { Account, SignTypedDataParameters } from 'viem'; import { useAccount, useSendTransaction, useSwitchChain, useSignMessage, useSignTypedData } from 'wagmi'; -// import config from 'configs/app'; +import config from 'configs/app'; import useRewardsActivity from 'lib/hooks/useRewardsActivity'; import * as mixpanel from 'lib/mixpanel/index'; @@ -22,7 +22,7 @@ export type SignTypedDataArgs< TPrimaryType extends string = string, > = SignTypedDataParameters; -export default function useMarketplaceWallet(appId: string) { +export default function useMarketplaceWallet(appId: string, isFixedChainId = false) { const { address, chainId } = useAccount(); const { sendTransactionAsync } = useSendTransaction(); const { signMessageAsync } = useSignMessage(); @@ -31,19 +31,28 @@ export default function useMarketplaceWallet(appId: string) { const { trackTransaction, trackTransactionConfirm } = useRewardsActivity(); const logEvent = useCallback((event: mixpanel.EventPayload['Action']) => { - mixpanel.logEvent( - mixpanel.EventTypes.WALLET_ACTION, - { Action: event, Address: address, AppId: appId, Source: 'Dappscout' }, - ); - }, [ address, appId ]); + mixpanel.logEvent(mixpanel.EventTypes.WALLET_ACTION, { + Action: event, + Address: address, + AppId: appId, + Source: isFixedChainId ? 'Dappscout' : 'Essential dapps', + ChainId: isFixedChainId ? undefined : String(chainId), + }); + }, [ address, appId, chainId, isFixedChainId ]); - // const switchNetwork = useCallback(async() => { - // if (Number(config.chain.id) !== chainId) { - // await switchChainAsync?.({ chainId: Number(config.chain.id) }); - // } - // }, [ chainId, switchChainAsync ]); + const switchChain = useCallback( + (chainId: number) => switchChainAsync({ chainId }), + [ switchChainAsync ], + ); + + const checkAndSwitchChain = useCallback(async() => { + if (isFixedChainId && Number(config.chain.id) !== chainId) { + await switchChain(Number(config.chain.id)); + } + }, [ chainId, switchChain, isFixedChainId ]); const sendTransaction = useCallback(async(transaction: SendTransactionArgs) => { + await checkAndSwitchChain(); const activityResponse = await trackTransaction(address ?? '', transaction.to ?? ''); const tx = await sendTransactionAsync(transaction); if (activityResponse?.token) { @@ -51,28 +60,24 @@ export default function useMarketplaceWallet(appId: string) { } logEvent('Send Transaction'); return tx; - }, [ sendTransactionAsync, logEvent, trackTransaction, trackTransactionConfirm, address ]); + }, [ sendTransactionAsync, logEvent, trackTransaction, trackTransactionConfirm, address, checkAndSwitchChain ]); const signMessage = useCallback(async(message: string) => { + await checkAndSwitchChain(); const signature = await signMessageAsync({ message }); logEvent('Sign Message'); return signature; - }, [ signMessageAsync, logEvent ]); + }, [ signMessageAsync, logEvent, checkAndSwitchChain ]); const signTypedData = useCallback(async(typedData: SignTypedDataArgs) => { + await checkAndSwitchChain(); if (typedData.domain) { - const chainId = Number(typedData.domain.chainId); - await switchChainAsync({ chainId }); - typedData.domain.chainId = chainId; + typedData.domain.chainId = Number(typedData.domain.chainId); } const signature = await signTypedDataAsync(typedData); logEvent('Sign Typed Data'); return signature; - }, [ signTypedDataAsync, switchChainAsync, logEvent ]); - - const switchChain = useCallback((chainId: number) => { - return switchChainAsync({ chainId }); - }, [ switchChainAsync ]); + }, [ signTypedDataAsync, logEvent, checkAndSwitchChain ]); return { address, diff --git a/ui/pages/MarketplaceApp.tsx b/ui/pages/MarketplaceApp.tsx index d1370c5204..7d904f5133 100644 --- a/ui/pages/MarketplaceApp.tsx +++ b/ui/pages/MarketplaceApp.tsx @@ -1,15 +1,13 @@ -import { Center, chakra, Flex } from '@chakra-ui/react'; +import { Flex } from '@chakra-ui/react'; import { useQuery } from '@tanstack/react-query'; -import { DappscoutIframeProvider, useDappscoutIframe } from 'dappscout-iframe'; import { useRouter } from 'next/router'; -import React, { useCallback, useEffect, useState, useMemo } from 'react'; +import React, { useEffect, useMemo } from 'react'; import type { MarketplaceApp } from 'types/client/marketplace'; import { route } from 'nextjs-routes'; import config from 'configs/app'; -import essentialDappsChainsConfig from 'configs/essential-dapps-chains'; import type { ResourceError } from 'lib/api/resources'; import useApiFetch from 'lib/api/useApiFetch'; import { useMarketplaceContext } from 'lib/contexts/marketplace'; @@ -18,96 +16,22 @@ import useFetch from 'lib/hooks/useFetch'; import * as metadata from 'lib/metadata'; import getQueryParamString from 'lib/router/getQueryParamString'; import { useColorMode } from 'toolkit/chakra/color-mode'; -import { ContentLoader } from 'toolkit/components/loaders/ContentLoader'; import useIsAuth from 'ui/snippets/auth/useIsAuth'; +import MarketplaceAppIframe from '../marketplace/MarketplaceAppIframe'; import MarketplaceAppTopBar from '../marketplace/MarketplaceAppTopBar'; import useAutoConnectWallet from '../marketplace/useAutoConnectWallet'; -import useMarketplaceWallet from '../marketplace/useMarketplaceWallet'; -// import { getAppUrl } from '../marketplace/utils'; +import { getAppUrl } from '../marketplace/utils'; const feature = config.features.marketplace; -const IFRAME_SANDBOX_ATTRIBUTE = 'allow-forms allow-orientation-lock ' + -'allow-pointer-lock allow-popups-to-escape-sandbox ' + -'allow-same-origin allow-scripts ' + -'allow-top-navigation-by-user-activation allow-popups'; - -const IFRAME_ALLOW_ATTRIBUTE = 'clipboard-read; clipboard-write;'; - -type Props = { - address: string | undefined; - data: MarketplaceApp | undefined; - isPending: boolean; - appUrl?: string; -}; - -const MarketplaceAppContent = ({ address, data, isPending, appUrl }: Props) => { - const { iframeRef, isReady } = useDappscoutIframe(); - - const [ iframeKey, setIframeKey ] = useState(0); - const [ isFrameLoading, setIsFrameLoading ] = useState(isPending); - const { colorMode } = useColorMode(); - - useEffect(() => { - setIframeKey((key) => key + 1); - }, [ address ]); - - const handleIframeLoad = useCallback(() => { - setIsFrameLoading(false); - }, []); - - useEffect(() => { - if (data && !isFrameLoading) { - const message = { - blockscoutColorMode: colorMode, - blockscoutRootUrl: config.app.baseUrl + route({ pathname: '/' }), - blockscoutAddressExplorerUrl: config.app.baseUrl + route({ pathname: '/address/[hash]', query: { hash: '' } }), - blockscoutTransactionExplorerUrl: config.app.baseUrl + route({ pathname: '/tx/[hash]', query: { hash: '' } }), - blockscoutNetworkName: config.chain.name, - blockscoutNetworkId: Number(config.chain.id), - blockscoutNetworkCurrency: config.chain.currency, - blockscoutNetworkRpc: config.chain.rpcUrls[0], - }; - - iframeRef?.current?.contentWindow?.postMessage(message, data.url); - } - }, [ isFrameLoading, data, colorMode, iframeRef ]); - - return ( -
- { (isFrameLoading) && ( - - ) } - - { (data && isReady) && ( - - ) } -
- ); -}; - export default function MarketplaceApp() { const fetch = useFetch(); const apiFetch = useApiFetch(); const router = useRouter(); const id = getQueryParamString(router.query.id); - const { address, chainId, sendTransaction, signMessage, signTypedData, switchChain } = useMarketplaceWallet(id); const isAuth = useIsAuth(); + const { colorMode } = useColorMode(); useAutoConnectWallet(); const query = useQuery, MarketplaceApp>({ @@ -139,8 +63,18 @@ export default function MarketplaceApp() { const { setIsAutoConnectDisabled } = useMarketplaceContext(); - // const appUrl = useMemo(() => getAppUrl(data?.url, router), [ data?.url, router ]); - const appUrl = 'https://swapscout-git-test-custom-connector-blockscout.vercel.app'; + const appUrl = useMemo(() => getAppUrl(data?.url, router), [ data?.url, router ]); + + const message = useMemo(() => ({ + blockscoutColorMode: colorMode, + blockscoutRootUrl: config.app.baseUrl + route({ pathname: '/' }), + blockscoutAddressExplorerUrl: config.app.baseUrl + route({ pathname: '/address/[hash]', query: { hash: '' } }), + blockscoutTransactionExplorerUrl: config.app.baseUrl + route({ pathname: '/tx/[hash]', query: { hash: '' } }), + blockscoutNetworkName: config.chain.name, + blockscoutNetworkId: Number(config.chain.id), + blockscoutNetworkCurrency: config.chain.currency, + blockscoutNetworkRpc: config.chain.rpcUrls[0], + }), [ colorMode ]); useEffect(() => { if (data) { @@ -154,11 +88,6 @@ export default function MarketplaceApp() { throwOnResourceLoadError(query); - const rpcUrl = useMemo(() => { - const chainConfig = essentialDappsChainsConfig()?.chains.find((chain) => chain.config.chain.id === String(chainId)); - return chainConfig?.config.chain.rpcUrls[0] || config.chain.rpcUrls[0]; - }, [ chainId ]); - return ( - - - + message={ message } + isFixedChainId + /> ); }; diff --git a/ui/pages/MarketplaceEssentialDapp.tsx b/ui/pages/MarketplaceEssentialDapp.tsx index a63f1ff258..cc2ecc9ae3 100644 --- a/ui/pages/MarketplaceEssentialDapp.tsx +++ b/ui/pages/MarketplaceEssentialDapp.tsx @@ -43,8 +43,8 @@ const EssentialDapp = () => { } return ( - - + + { content } ); diff --git a/yarn.lock b/yarn.lock index 89a0ffb3b3..1397d6a017 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,19 +2,6 @@ # yarn lockfile v1 -"@0no-co/graphql.web@^1.0.5": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@0no-co/graphql.web/-/graphql.web-1.2.0.tgz#296d00581bfaaabfda1e976849d927824aaea81b" - integrity sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw== - -"@0no-co/graphqlsp@^1.12.13": - version "1.15.0" - resolved "https://registry.yarnpkg.com/@0no-co/graphqlsp/-/graphqlsp-1.15.0.tgz#c5d4592981e2df6b2e0cdcca33684199eed38bf7" - integrity sha512-SReJAGmOeXrHGod+9Odqrz4s43liK0b2DFUetb/jmYvxFpWmeNfFYo0seCh0jz8vG3p1pnYMav0+Tm7XwWtOJw== - dependencies: - "@gql.tada/internal" "^1.0.0" - graphql "^15.5.0 || ^16.0.0 || ^17.0.0" - "@achingbrain/http-parser-js@^0.5.8": version "0.5.9" resolved "https://registry.yarnpkg.com/@achingbrain/http-parser-js/-/http-parser-js-0.5.9.tgz#708aab4a46f7369f9f33d2a836fb37f5027f0038" @@ -52,11 +39,16 @@ resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz#d2a39395c587e092d77cbbc80acf956a54f38bf7" integrity sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q== -"@adraffy/ens-normalize@^1.10.1", "@adraffy/ens-normalize@^1.11.0": +"@adraffy/ens-normalize@^1.10.1": version "1.11.0" resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz#42cc67c5baa407ac25059fcd7d405cc5ecdb0c33" integrity sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg== +"@adraffy/ens-normalize@^1.11.0": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.11.1.tgz#6c2d657d4b2dfb37f8ea811dcb3e60843d4ac24a" + integrity sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ== + "@ampproject/remapping@^2.1.0", "@ampproject/remapping@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" @@ -1444,23 +1436,18 @@ dependencies: core-js-pure "^3.43.0" -"@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.21.0", "@babel/runtime@^7.23.5", "@babel/runtime@^7.26.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": +"@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.21.0", "@babel/runtime@^7.23.5", "@babel/runtime@^7.26.0", "@babel/runtime@^7.8.4": version "7.27.0" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.0.tgz#fbee7cf97c709518ecc1f590984481d5460d4762" integrity "sha1-++58+XxwlRjswfWQmESB1UYNR2I= sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==" dependencies: regenerator-runtime "^0.14.0" -"@babel/runtime@^7.18.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.26.10", "@babel/runtime@^7.28.3", "@babel/runtime@^7.28.4": +"@babel/runtime@^7.18.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.25.0", "@babel/runtime@^7.28.4": version "7.28.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== -"@babel/runtime@^7.25.0", "@babel/runtime@^7.27.6": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.3.tgz#75c5034b55ba868121668be5d5bb31cc64e6e61a" - integrity sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA== - "@babel/template@^7.18.10", "@babel/template@^7.3.3": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" @@ -1608,95 +1595,6 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@bigmi/client@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@bigmi/client/-/client-0.1.1.tgz#cc9113257ef40279c83cd23aad0062a6d434d2c4" - integrity sha512-Z5r4HiHqHMzTw4k/LzM6IM21tTqlWqEOKbdbNuYQpUWvgQxeHY7Bj9pXkWtUlF1BIRyy7FZOmSkQZ69Br9kyIA== - dependencies: - "@bigmi/core" "^0.1.1" - "@wagmi/core" "^2.16.3" - viem "^2.22.21" - -"@bigmi/client@^0.4.2": - version "0.4.5" - resolved "https://registry.yarnpkg.com/@bigmi/client/-/client-0.4.5.tgz#9c169a8093288c8003cf2fbb142f9e72e3c39429" - integrity sha512-5qmC7FyA/r4VulEdvK5iZC9HQuCxeUbs8lHofBcFwMsvVtVK3ySndpOB7iOx72SqJAxhU0OwN7pFT+z9x/IIdw== - dependencies: - "@bigmi/core" "^0.4.5" - eventemitter3 "^5.0.1" - zustand "^5.0.8" - -"@bigmi/client@^0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@bigmi/client/-/client-0.5.2.tgz#3666786e653e46dbaa61f81322826e6f47678dee" - integrity sha512-7OgINnpLXIYeaF+qTd4Cd5wbRlrz7vO+vmidTQMzhERRUnKbsVPdzK4cZOvo7bg6dsaNmAvWj2HYpsuZUG0YgA== - dependencies: - "@bigmi/core" "^0.5.2" - eventemitter3 "^5.0.1" - zustand "^5.0.8" - -"@bigmi/core@^0.1.0", "@bigmi/core@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@bigmi/core/-/core-0.1.1.tgz#9f3af4692b6ffa61e420168e4d0f3f6a080940d3" - integrity sha512-BxHY7jszH4OU4d5sbfuyUfJY2FkkSFAFVf234va9JH/v6/V3wsiCYGXfK2sa7JSOIfPITIs3NUHYYTWHPgL0hw== - dependencies: - "@noble/hashes" "^1.7.1" - bech32 "^2.0.0" - bitcoinjs-lib "^7.0.0-rc.0" - bs58 "^6.0.0" - viem "^2.22.21" - -"@bigmi/core@^0.4.2", "@bigmi/core@^0.4.5": - version "0.4.5" - resolved "https://registry.yarnpkg.com/@bigmi/core/-/core-0.4.5.tgz#579e4a534598d9db3ad0a7c38c7b874b3785fe26" - integrity sha512-BfVvwWpPg7Kt/GJi7s5DvEs5uqnCUQDvq0IFCY43UZKe9u83uFO+ymVb2LhbsgJrwxF7X6H0c2ZC8W0fZsfq3w== - dependencies: - "@noble/hashes" "^1.8.0" - bech32 "^2.0.0" - bitcoinjs-lib "^7.0.0-rc.0" - bs58 "^6.0.0" - eventemitter3 "^5.0.1" - zustand "^5.0.8" - -"@bigmi/core@^0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@bigmi/core/-/core-0.5.2.tgz#7ffde89fbf7638ef91549f61af6af89e7483edbc" - integrity sha512-CeKFAApN1Roh5eJldwpYrsIkstWdS53qoKFqSODuSjXW10ciyIxUnTsLiNcB+r5VnNBlxqJshsnK5n1cZW79rQ== - dependencies: - "@noble/hashes" "^1.8.0" - bech32 "^2.0.0" - bitcoinjs-lib "^7.0.0-rc.0" - bs58 "^6.0.0" - eventemitter3 "^5.0.1" - zustand "^5.0.8" - -"@bigmi/core@^0.5.3": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@bigmi/core/-/core-0.5.3.tgz#376b4f682f173b8779dea2b1fc6f73e05e5c7b72" - integrity sha512-PbNUya9Nc8SxijGG36oWbg5ArxAvzVA1CsXdUCUNsFaT0vzIj/vEPTNQt/Vf3uPB2zVv9A74DPzQKqNIr3rpng== - dependencies: - "@noble/hashes" "^1.8.0" - bech32 "^2.0.0" - bitcoinjs-lib "^7.0.0-rc.0" - bs58 "^6.0.0" - eventemitter3 "^5.0.1" - zustand "^5.0.8" - -"@bigmi/react@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@bigmi/react/-/react-0.5.2.tgz#d63a979e2598e82af697c479a0df1991f7ad0fe3" - integrity sha512-oF95TEuTOuAPRaPGZkl9D//t1H/Cv00LN8tcgUgorsuMi7ZIjLaWZMF1P24YcbXiq2jV4QFmnEAMsvwTiRszWQ== - dependencies: - "@bigmi/client" "^0.5.2" - "@bigmi/core" "^0.5.2" - -"@bitcoinerlab/secp256k1@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@bitcoinerlab/secp256k1/-/secp256k1-1.2.0.tgz#429d043ef4218b9c71915b50172e9aa4a2a8fea4" - integrity sha512-jeujZSzb3JOZfmJYI0ph1PVpCRV5oaexCgy+RvCXV8XlY+XFB/2n3WOcvBsKLsOw78KYgnQrQWb2HrKE4be88Q== - dependencies: - "@noble/curves" "^1.7.0" - "@blockscout/bens-types@1.4.1": version "1.4.1" resolved "https://registry.yarnpkg.com/@blockscout/bens-types/-/bens-types-1.4.1.tgz#9182a79d9015b7fa2339edf0bfa3cd0c32045e66" @@ -2018,7 +1916,7 @@ source-map "^0.5.7" stylis "4.2.0" -"@emotion/cache@^11.13.5", "@emotion/cache@^11.14.0": +"@emotion/cache@^11.14.0": version "11.14.0" resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.14.0.tgz#ee44b26986eeb93c8be82bb92f1f7a9b21b2ed76" integrity sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA== @@ -2029,17 +1927,12 @@ "@emotion/weak-memoize" "^0.4.0" stylis "4.2.0" -"@emotion/hash@^0.9.0": - version "0.9.0" - resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.0.tgz#c5153d50401ee3c027a57a177bc269b16d889cb7" - integrity sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ== - "@emotion/hash@^0.9.2": version "0.9.2" resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.2.tgz#ff9221b9f58b4dfe61e619a7788734bd63f6898b" integrity sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g== -"@emotion/is-prop-valid@1.3.1", "@emotion/is-prop-valid@^1.3.0": +"@emotion/is-prop-valid@1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz#8d5cf1132f836d7adbe42cf0b49df7816fc88240" integrity sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw== @@ -2051,7 +1944,7 @@ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.9.0.tgz#745969d649977776b43fc7648c556aaa462b4102" integrity sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ== -"@emotion/react@11.14.0", "@emotion/react@^11.14.0": +"@emotion/react@11.14.0": version "11.14.0" resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.14.0.tgz#cfaae35ebc67dd9ef4ea2e9acc6cd29e157dd05d" integrity sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA== @@ -2081,18 +1974,6 @@ resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.4.0.tgz#c9299c34d248bc26e82563735f78953d2efca83c" integrity sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg== -"@emotion/styled@^11.14.0", "@emotion/styled@^11.14.1": - version "11.14.1" - resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.14.1.tgz#8c34bed2948e83e1980370305614c20955aacd1c" - integrity sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw== - dependencies: - "@babel/runtime" "^7.18.3" - "@emotion/babel-plugin" "^11.13.5" - "@emotion/is-prop-valid" "^1.3.0" - "@emotion/serialize" "^1.3.3" - "@emotion/use-insertion-effect-with-fallbacks" "^1.2.0" - "@emotion/utils" "^1.4.2" - "@emotion/unitless@^0.10.0": version "0.10.0" resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.10.0.tgz#2af2f7c7e5150f497bdabd848ce7b218a27cf745" @@ -2638,22 +2519,6 @@ "@metamask/rpc-errors" "7.0.2" eventemitter3 "5.0.1" -"@gql.tada/cli-utils@1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@gql.tada/cli-utils/-/cli-utils-1.7.1.tgz#2e849c4c5d7e0d4914b34d167a74e3022d0a79d1" - integrity sha512-wg5ysZNQxtNQm67T3laVWmZzLpGb7QfyYWZdaUD2r1OjDj5Bgftq7eQlplmH+hsdffjuUyhJw/b5XAjeE2mJtg== - dependencies: - "@0no-co/graphqlsp" "^1.12.13" - "@gql.tada/internal" "1.0.8" - graphql "^15.5.0 || ^16.0.0 || ^17.0.0" - -"@gql.tada/internal@1.0.8", "@gql.tada/internal@^1.0.0": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@gql.tada/internal/-/internal-1.0.8.tgz#3ba9fa6534809788bbbe103492f70b8e9d754027" - integrity sha512-XYdxJhtHC5WtZfdDqtKjcQ4d7R1s0d1rnlSs3OcBEUbYiPoJJfZU7tWsVXuv047Z6msvmr4ompJ7eLSK5Km57g== - dependencies: - "@0no-co/graphql.web" "^1.0.5" - "@graphiql/plugin-doc-explorer@^0.2.2": version "0.2.2" resolved "https://registry.yarnpkg.com/@graphiql/plugin-doc-explorer/-/plugin-doc-explorer-0.2.2.tgz#fe1449b4b3547a15eb5f3973b1c90415c1d470d3" @@ -2705,11 +2570,6 @@ "@n1ru4l/push-pull-async-iterable-iterator" "^3.1.0" meros "^1.1.4" -"@graphql-typed-document-node/core@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" - integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== - "@growthbook/growthbook-react@0.21.0": version "0.21.0" resolved "https://registry.yarnpkg.com/@growthbook/growthbook-react/-/growthbook-react-0.21.0.tgz#e3aee1bda7faf3ea036badfbca09e2230884b7f7" @@ -4247,83 +4107,6 @@ race-signal "^1.1.2" ws "^8.18.0" -"@lifi/sdk@^3.5.2", "@lifi/sdk@^3.8.7": - version "3.12.11" - resolved "https://registry.yarnpkg.com/@lifi/sdk/-/sdk-3.12.11.tgz#01297fd2d0efd4307ef7c0755cdc0833060cc01f" - integrity sha512-shjb2fxP7I9gtAqJ+ZuIyAPUpIy4G+iDl1J2FZN6R/I2Dj3Gp62utM3RqxBXIMTCo4qg6HOg7PverTRDa3PKSA== - dependencies: - "@bigmi/core" "^0.5.3" - "@bitcoinerlab/secp256k1" "^1.2.0" - "@lifi/types" "^17.38.0" - "@mysten/sui" "^1.38.0" - "@mysten/wallet-standard" "^0.17.0" - "@noble/curves" "^1.9.7" - "@solana/wallet-adapter-base" "^0.9.27" - "@solana/web3.js" "^1.98.4" - bech32 "^2.0.0" - bitcoinjs-lib "^7.0.0-rc.0" - bs58 "^6.0.0" - viem "^2.37.8" - -"@lifi/types@^17.38.0": - version "17.38.0" - resolved "https://registry.yarnpkg.com/@lifi/types/-/types-17.38.0.tgz#b884bc25518a0d5c225ed9c0e93de284eb404863" - integrity sha512-dZFy/cVCr6WyBjbqpXFol9Fyo0U+mR6FlWK4URgvTQwhH0E6e+aBn6ivPndxYvLPccAiNKJlQzQvSh6ort0+rw== - dependencies: - viem "^2.33.2" - -"@lifi/wallet-management@3.6.1", "@lifi/wallet-management@^3.13.0": - version "3.6.1" - resolved "https://registry.yarnpkg.com/@lifi/wallet-management/-/wallet-management-3.6.1.tgz#b804b088893b8baab6684a3e04c252fd2d3dcd95" - integrity sha512-gSCVhGdTiVt+mEon7S4CDZblcygxb0L87K4mtW+40JUIu+wFyqeWc53BaxghD7OCorjdQGY442tY7vo/xmUEkw== - dependencies: - "@bigmi/client" "^0.1.0" - "@bigmi/core" "^0.1.0" - "@emotion/react" "^11.14.0" - "@emotion/styled" "^11.14.0" - "@lifi/sdk" "^3.5.2" - "@mui/icons-material" "6.0.2" - "@mui/material" "^6.4.2" - "@mui/system" "^6.4.2" - "@solana/wallet-adapter-base" "^0.9.23" - "@solana/web3.js" "^1.98.0" - "@wagmi/core" "^2.16.3" - i18next "^24.2.2" - mitt "^3.0.1" - react-i18next "^15.4.0" - use-sync-external-store "^1.4.0" - viem "^2.22.17" - zustand "^5.0.3" - -"@lifi/widget@3.25.0": - version "3.25.0" - resolved "https://registry.yarnpkg.com/@lifi/widget/-/widget-3.25.0.tgz#90016b865ee6be26d2bda9b94df52bd53157df06" - integrity sha512-Iaz2yFtfJCIja7lvNIOBB5926XCqURXr5zO6cTJPvtxjV+KZv9H7vPJ0LuDDUD16A7Ed4Gaf4J0IU+BRwi/POA== - dependencies: - "@bigmi/client" "^0.4.2" - "@bigmi/core" "^0.4.2" - "@emotion/react" "^11.14.0" - "@emotion/styled" "^11.14.1" - "@lifi/sdk" "^3.8.7" - "@lifi/wallet-management" "^3.13.0" - "@mui/icons-material" "^7.2.0" - "@mui/material" "^7.2.0" - "@mui/system" "^7.2.0" - "@mysten/sui" "^1.36.2" - "@solana/wallet-adapter-base" "^0.9.27" - "@solana/wallet-adapter-coinbase" "^0.1.23" - "@solana/web3.js" "^1.98.2" - "@tanstack/react-virtual" "^3.13.12" - i18next "^25.3.0" - microdiff "^1.5.0" - mitt "^3.0.1" - react-i18next "^15.6.1" - react-intersection-observer "^9.16.0" - react-router-dom "^6.30.0" - react-transition-group "^4.4.5" - viem "^2.33.0" - zustand "^5.0.6" - "@lit-labs/ssr-dom-shim@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.4.0.tgz#55eb80ab5ef6e188f7e541c1e2bea1ef582413b8" @@ -4617,172 +4400,6 @@ resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-3.1.2.tgz#fdd25cc2202297519798bbaf4689152ad9609e19" integrity sha512-JEW4DEtBzfe8HvUYecLU9e6+XJnKDlUAIve8FvPzF3Kzs6Xo/KuZkZJsDH0wJXl/qEZbeeE7edxDNY3kMs39hQ== -"@mui/core-downloads-tracker@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-6.5.0.tgz#e9f7049d7e7bb1ee05839f7a0ce813755f137432" - integrity sha512-LGb8t8i6M2ZtS3Drn3GbTI1DVhDY6FJ9crEey2lZ0aN2EMZo8IZBZj9wRf4vqbZHaWjsYgtbOnJw5V8UWbmK2Q== - -"@mui/core-downloads-tracker@^7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-7.3.2.tgz#896a7890864d619093dc79541ec1ecfa3b507ad2" - integrity sha512-AOyfHjyDKVPGJJFtxOlept3EYEdLoar/RvssBTWVAvDJGIE676dLi2oT/Kx+FoVXFoA/JdV7DEMq/BVWV3KHRw== - -"@mui/icons-material@6.0.2": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-6.0.2.tgz#fc0fba40421eb6d44f1266b53f9d5e51b67df42b" - integrity sha512-WaTPSvKcx8X7NdWAHzJWDZv+YXvK0MUY8+JI/r4/q2GgIa5RW+n4+08CGX6jB7sWhU1R3zy28NfsDUwwQjOThw== - dependencies: - "@babel/runtime" "^7.25.0" - -"@mui/icons-material@^7.2.0": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-7.3.2.tgz#050049cd6195b815e85888aaebd436e8e95084b8" - integrity sha512-TZWazBjWXBjR6iGcNkbKklnwodcwj0SrChCNHc9BhD9rBgET22J1eFhHsEmvSvru9+opDy3umqAimQjokhfJlQ== - dependencies: - "@babel/runtime" "^7.28.3" - -"@mui/material@^6.4.2": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-6.5.0.tgz#c7eccfe260030433c51b7aec17574bae4504cacc" - integrity sha512-yjvtXoFcrPLGtgKRxFaH6OQPtcLPhkloC0BML6rBG5UeldR0nPULR/2E2BfXdo5JNV7j7lOzrrLX2Qf/iSidow== - dependencies: - "@babel/runtime" "^7.26.0" - "@mui/core-downloads-tracker" "^6.5.0" - "@mui/system" "^6.5.0" - "@mui/types" "~7.2.24" - "@mui/utils" "^6.4.9" - "@popperjs/core" "^2.11.8" - "@types/react-transition-group" "^4.4.12" - clsx "^2.1.1" - csstype "^3.1.3" - prop-types "^15.8.1" - react-is "^19.0.0" - react-transition-group "^4.4.5" - -"@mui/material@^7.2.0": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-7.3.2.tgz#21ad66bba695e2cd36e4a93e2e4ff5e04d8636a1" - integrity sha512-qXvbnawQhqUVfH1LMgMaiytP+ZpGoYhnGl7yYq2x57GYzcFL/iPzSZ3L30tlbwEjSVKNYcbiKO8tANR1tadjUg== - dependencies: - "@babel/runtime" "^7.28.3" - "@mui/core-downloads-tracker" "^7.3.2" - "@mui/system" "^7.3.2" - "@mui/types" "^7.4.6" - "@mui/utils" "^7.3.2" - "@popperjs/core" "^2.11.8" - "@types/react-transition-group" "^4.4.12" - clsx "^2.1.1" - csstype "^3.1.3" - prop-types "^15.8.1" - react-is "^19.1.1" - react-transition-group "^4.4.5" - -"@mui/private-theming@^6.4.9": - version "6.4.9" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-6.4.9.tgz#0c1d65a638a1740aad0eb715d79e76471abe8175" - integrity sha512-LktcVmI5X17/Q5SkwjCcdOLBzt1hXuc14jYa7NPShog0GBDCDvKtcnP0V7a2s6EiVRlv7BzbWEJzH6+l/zaCxw== - dependencies: - "@babel/runtime" "^7.26.0" - "@mui/utils" "^6.4.9" - prop-types "^15.8.1" - -"@mui/private-theming@^7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-7.3.2.tgz#9b883ac9ec9288327de038da6ddf8ffa179be831" - integrity sha512-ha7mFoOyZGJr75xeiO9lugS3joRROjc8tG1u4P50dH0KR7bwhHznVMcYg7MouochUy0OxooJm/OOSpJ7gKcMvg== - dependencies: - "@babel/runtime" "^7.28.3" - "@mui/utils" "^7.3.2" - prop-types "^15.8.1" - -"@mui/styled-engine@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-6.5.0.tgz#cf9b3e706517f5f2989df92d2aea0d2917a77c8a" - integrity sha512-8woC2zAqF4qUDSPIBZ8v3sakj+WgweolpyM/FXf8jAx6FMls+IE4Y8VDZc+zS805J7PRz31vz73n2SovKGaYgw== - dependencies: - "@babel/runtime" "^7.26.0" - "@emotion/cache" "^11.13.5" - "@emotion/serialize" "^1.3.3" - "@emotion/sheet" "^1.4.0" - csstype "^3.1.3" - prop-types "^15.8.1" - -"@mui/styled-engine@^7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-7.3.2.tgz#cac6acb9480d6eaf60d9c99a7d24503e53236b32" - integrity sha512-PkJzW+mTaek4e0nPYZ6qLnW5RGa0KN+eRTf5FA2nc7cFZTeM+qebmGibaTLrgQBy3UpcpemaqfzToBNkzuxqew== - dependencies: - "@babel/runtime" "^7.28.3" - "@emotion/cache" "^11.14.0" - "@emotion/serialize" "^1.3.3" - "@emotion/sheet" "^1.4.0" - csstype "^3.1.3" - prop-types "^15.8.1" - -"@mui/system@^6.4.2", "@mui/system@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-6.5.0.tgz#52751ac4e3a546f53bc34fd2ef2731c28a824b92" - integrity sha512-XcbBYxDS+h/lgsoGe78ExXFZXtuIlSBpn/KsZq8PtZcIkUNJInkuDqcLd2rVBQrDC1u+rvVovdaWPf2FHKJf3w== - dependencies: - "@babel/runtime" "^7.26.0" - "@mui/private-theming" "^6.4.9" - "@mui/styled-engine" "^6.5.0" - "@mui/types" "~7.2.24" - "@mui/utils" "^6.4.9" - clsx "^2.1.1" - csstype "^3.1.3" - prop-types "^15.8.1" - -"@mui/system@^7.2.0", "@mui/system@^7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-7.3.2.tgz#e838097fc6cb0a2e4c1822478950db89affb116a" - integrity sha512-9d8JEvZW+H6cVkaZ+FK56R53vkJe3HsTpcjMUtH8v1xK6Y1TjzHdZ7Jck02mGXJsE6MQGWVs3ogRHTQmS9Q/rA== - dependencies: - "@babel/runtime" "^7.28.3" - "@mui/private-theming" "^7.3.2" - "@mui/styled-engine" "^7.3.2" - "@mui/types" "^7.4.6" - "@mui/utils" "^7.3.2" - clsx "^2.1.1" - csstype "^3.1.3" - prop-types "^15.8.1" - -"@mui/types@^7.4.6": - version "7.4.6" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.4.6.tgz#1432e0814cf155287283f6bbd1e95976a148ef07" - integrity sha512-NVBbIw+4CDMMppNamVxyTccNv0WxtDb7motWDlMeSC8Oy95saj1TIZMGynPpFLePt3yOD8TskzumeqORCgRGWw== - dependencies: - "@babel/runtime" "^7.28.3" - -"@mui/types@~7.2.24": - version "7.2.24" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.24.tgz#5eff63129d9c29d80bbf2d2e561bd0690314dec2" - integrity sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw== - -"@mui/utils@^6.4.9": - version "6.4.9" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-6.4.9.tgz#b0df01daa254c7c32a1a30b30a5179e19ef071a7" - integrity sha512-Y12Q9hbK9g+ZY0T3Rxrx9m2m10gaphDuUMgWxyV5kNJevVxXYCLclYUCC9vXaIk1/NdNDTcW2Yfr2OGvNFNmHg== - dependencies: - "@babel/runtime" "^7.26.0" - "@mui/types" "~7.2.24" - "@types/prop-types" "^15.7.14" - clsx "^2.1.1" - prop-types "^15.8.1" - react-is "^19.0.0" - -"@mui/utils@^7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-7.3.2.tgz#361775d72c557a03115150e8aec4329c7ef14563" - integrity sha512-4DMWQGenOdLnM3y/SdFQFwKsCLM+mqxzvoWp9+x2XdEzXapkznauHLiXtSohHs/mc0+5/9UACt1GdugCX2te5g== - dependencies: - "@babel/runtime" "^7.28.3" - "@mui/types" "^7.4.6" - "@types/prop-types" "^15.7.15" - clsx "^2.1.1" - prop-types "^15.8.1" - react-is "^19.1.1" - "@multiformats/dns@^1.0.3", "@multiformats/dns@^1.0.6": version "1.0.6" resolved "https://registry.yarnpkg.com/@multiformats/dns/-/dns-1.0.6.tgz#b8c7de11459a02a5f4e609d35d3cdb95cb6ad152" @@ -4882,127 +4499,6 @@ posthog-js "^1.246.0" react-papaparse "^4.4.0" -"@mysten/bcs@1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@mysten/bcs/-/bcs-1.7.0.tgz#efe765d3ba13febd26a51c2fde2575758656c0c8" - integrity sha512-8zE2Jzj2ai55RlVXx2pEMbbq+X3vB+uPGBvZr0F79IdTwuwcu4QdFG3PT/zHsytsvATkn+z0f2YDWhM5916u2A== - dependencies: - "@mysten/utils" "0.1.1" - "@scure/base" "^1.2.6" - -"@mysten/bcs@1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@mysten/bcs/-/bcs-1.8.0.tgz#2d04dfc36e014cd09263d407964caf3080be3dda" - integrity sha512-bDoLN1nN+XPONsvpNyNyqYHndM3PKWS419GLeRnbLoWyNm4bnyD1X4luEpJLLDq400hBuXiCan4RWjofvyTUIQ== - dependencies: - "@mysten/utils" "0.2.0" - "@scure/base" "^1.2.6" - -"@mysten/dapp-kit@0.17.6": - version "0.17.6" - resolved "https://registry.yarnpkg.com/@mysten/dapp-kit/-/dapp-kit-0.17.6.tgz#f61da1da9c4ea0bad10f7f034fe894e2a87b693b" - integrity sha512-iHguiCflE3MxTI0Oknv/Onzbu/9H3oKS/3szw72zDe7wh9skfM+OC21sUPR/KHrzESCdVtC1sPmGXbUhscqFKw== - dependencies: - "@mysten/slush-wallet" "0.1.23" - "@mysten/sui" "1.37.5" - "@mysten/utils" "0.1.1" - "@mysten/wallet-standard" "0.16.13" - "@radix-ui/react-dialog" "^1.1.14" - "@radix-ui/react-dropdown-menu" "^2.1.15" - "@radix-ui/react-slot" "^1.2.3" - "@vanilla-extract/css" "^1.17.4" - "@vanilla-extract/dynamic" "^2.1.5" - "@vanilla-extract/recipes" "^0.5.7" - clsx "^2.1.1" - zustand "^4.5.4" - -"@mysten/slush-wallet@0.1.23": - version "0.1.23" - resolved "https://registry.yarnpkg.com/@mysten/slush-wallet/-/slush-wallet-0.1.23.tgz#a049f9330b94d76c5173bec43b89cff597a3add2" - integrity sha512-zE1HsrNJZktmpAobFifYeg75e7rb/oMJpBt/5azcqdfRcB8ujAhQ+NQgCWvJDENa+NO/uqhw2Rf6o2Lk/U8w/Q== - dependencies: - "@mysten/sui" "1.37.5" - "@mysten/utils" "0.1.1" - "@mysten/wallet-standard" "0.16.13" - "@mysten/window-wallet-core" "0.0.6" - mitt "^3.0.1" - valibot "^0.36.0" - -"@mysten/sui@1.37.5": - version "1.37.5" - resolved "https://registry.yarnpkg.com/@mysten/sui/-/sui-1.37.5.tgz#5a6b401c689cc119db34cf36d7d247c767b0fff5" - integrity sha512-kAKizRUdhC/gwQ7UkubbmwTno5UoA1a7Ps8R6GlPVWpCfpVM2HytmwFDOKVMA+51Qji4BaNxyq25SRpJw76fPw== - dependencies: - "@graphql-typed-document-node/core" "^3.2.0" - "@mysten/bcs" "1.7.0" - "@mysten/utils" "0.1.1" - "@noble/curves" "^1.9.4" - "@noble/hashes" "^1.8.0" - "@scure/base" "^1.2.6" - "@scure/bip32" "^1.7.0" - "@scure/bip39" "^1.6.0" - gql.tada "^1.8.12" - graphql "^16.11.0" - poseidon-lite "^0.2.0" - valibot "^0.36.0" - -"@mysten/sui@1.38.0", "@mysten/sui@^1.36.2", "@mysten/sui@^1.38.0": - version "1.38.0" - resolved "https://registry.yarnpkg.com/@mysten/sui/-/sui-1.38.0.tgz#2ca46e0d45ac7624d653e3ace3a4c856864102b0" - integrity sha512-tH6V4BJsYi5d97MOiLoOhyldrYxkm/cu8dYV52asqh1i88HrSVMbPAJ9sVoeWN2Ju+QsJ/Go4ldSjdCkaBCyJQ== - dependencies: - "@graphql-typed-document-node/core" "^3.2.0" - "@mysten/bcs" "1.8.0" - "@mysten/utils" "0.2.0" - "@noble/curves" "^1.9.4" - "@noble/hashes" "^1.8.0" - "@scure/base" "^1.2.6" - "@scure/bip32" "^1.7.0" - "@scure/bip39" "^1.6.0" - gql.tada "^1.8.13" - graphql "^16.11.0" - poseidon-lite "0.2.1" - valibot "^0.36.0" - -"@mysten/utils@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@mysten/utils/-/utils-0.1.1.tgz#4f2e24234bcf8b6977e47fd5469f46af57de5575" - integrity sha512-jvhJC6/2la1QHltukQXzfyTZ+VVHxe187JjPx+mEXRUWyAo6jCSdioOQJIfaGu4K4i+37KeiydXRwV/bq/7UJQ== - dependencies: - "@scure/base" "^1.2.6" - -"@mysten/utils@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@mysten/utils/-/utils-0.2.0.tgz#8c4fa3858284de84c333bc7ae09510cf54d55a54" - integrity sha512-CM6kJcJHX365cK6aXfFRLBiuyXc5WSBHQ43t94jqlCAIRw8umgNcTb5EnEA9n31wPAQgLDGgbG/rCUISCTJ66w== - dependencies: - "@scure/base" "^1.2.6" - -"@mysten/wallet-standard@0.16.13": - version "0.16.13" - resolved "https://registry.yarnpkg.com/@mysten/wallet-standard/-/wallet-standard-0.16.13.tgz#d25eda014cff5276a2b460e975935fd32fb15e82" - integrity sha512-hoWcqD2CEtzwdGm2V40n3j1rfkJboiFiaiMdrnxjGqbZvsHYb/T31pPNmXlFq+8fi292E3NASSFjmnjiOCd5vw== - dependencies: - "@mysten/sui" "1.37.5" - "@wallet-standard/core" "1.1.1" - -"@mysten/wallet-standard@^0.17.0": - version "0.17.0" - resolved "https://registry.yarnpkg.com/@mysten/wallet-standard/-/wallet-standard-0.17.0.tgz#4ca2b0bf3d0701b3cfe13525a4d8470e1a44609d" - integrity sha512-UQ6tvqQ/lDKZhQm2d3ajky/xl+NgpYpNXYIpWfYGOLvGe4GyK6GHysMNHsRpFa+xA2yVa6w3nWO2RQ8WIy7ivA== - dependencies: - "@mysten/sui" "1.38.0" - "@wallet-standard/core" "1.1.1" - -"@mysten/window-wallet-core@0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@mysten/window-wallet-core/-/window-wallet-core-0.0.6.tgz#797512996afa41c3cc0b079014515514dfad9a86" - integrity sha512-uYjdUVok0pAaMGMxAdZfmW+2SCXgdQok9YtKmno5Tj8zlRQGv9Qet7EuCnDcBKquSbtqid3yhug7fcD+t8/KmA== - dependencies: - "@mysten/utils" "0.1.1" - jose "^6.0.11" - valibot "^0.36.0" - "@n1ru4l/push-pull-async-iterable-iterator@^3.1.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@n1ru4l/push-pull-async-iterable-iterator/-/push-pull-async-iterable-iterator-3.2.0.tgz#c15791112db68dd9315d329d652b7e797f737655" @@ -5131,13 +4627,6 @@ dependencies: "@noble/hashes" "1.8.0" -"@noble/curves@1.9.6": - version "1.9.6" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.6.tgz#b45ebedca85bb75782f6be7e7f120f0c423c99e0" - integrity sha512-GIKz/j99FRthB8icyJQA51E8Uk5hXmdyThjgQXRKiv9h0zeRlzSCLIzFw6K1LotZ3XuB7yzlf76qk7uBmTdFqA== - dependencies: - "@noble/hashes" "1.8.0" - "@noble/curves@^1.4.0", "@noble/curves@^1.6.0", "@noble/curves@~1.6.0": version "1.6.0" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.6.0.tgz#be5296ebcd5a1730fccea4786d420f87abfeb40b" @@ -5145,7 +4634,7 @@ dependencies: "@noble/hashes" "1.5.0" -"@noble/curves@^1.4.2", "@noble/curves@^1.8.0", "@noble/curves@^1.9.1", "@noble/curves@^1.9.4", "@noble/curves@^1.9.7", "@noble/curves@~1.9.0": +"@noble/curves@^1.4.2", "@noble/curves@~1.9.0": version "1.9.7" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== @@ -5189,7 +4678,7 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.7.1.tgz#5738f6d765710921e7a751e00c20ae091ed8db0f" integrity sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ== -"@noble/hashes@1.8.0", "@noble/hashes@^1.2.0", "@noble/hashes@^1.6.1", "@noble/hashes@^1.7.1", "@noble/hashes@^1.8.0", "@noble/hashes@~1.8.0": +"@noble/hashes@1.8.0", "@noble/hashes@^1.6.1", "@noble/hashes@^1.8.0", "@noble/hashes@~1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== @@ -6273,11 +5762,6 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.25.tgz#f077fdc0b5d0078d30893396ff4827a13f99e817" integrity sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ== -"@popperjs/core@^2.11.8": - version "2.11.8" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" - integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== - "@posthog/core@1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@posthog/core/-/core-1.2.1.tgz#75cb65e3e2da1f0678f77f613971eca6c1cc540c" @@ -6341,11 +5825,6 @@ resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.1.2.tgz#83f415c4425f21e3d27914c12b3272a32e3dae65" integrity sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA== -"@radix-ui/primitive@1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.1.3.tgz#e2dbc13bdc5e4168f4334f75832d7bdd3e2de5ba" - integrity sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg== - "@radix-ui/react-arrow@1.1.7": version "1.1.7" resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz#e14a2657c81d961598c5e72b73dd6098acc04f09" @@ -6393,26 +5872,6 @@ aria-hidden "^1.2.4" react-remove-scroll "^2.6.3" -"@radix-ui/react-dialog@^1.1.14": - version "1.1.15" - resolved "https://registry.yarnpkg.com/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz#1de3d7a7e9a17a9874d29c07f5940a18a119b632" - integrity sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw== - dependencies: - "@radix-ui/primitive" "1.1.3" - "@radix-ui/react-compose-refs" "1.1.2" - "@radix-ui/react-context" "1.1.2" - "@radix-ui/react-dismissable-layer" "1.1.11" - "@radix-ui/react-focus-guards" "1.1.3" - "@radix-ui/react-focus-scope" "1.1.7" - "@radix-ui/react-id" "1.1.1" - "@radix-ui/react-portal" "1.1.9" - "@radix-ui/react-presence" "1.1.5" - "@radix-ui/react-primitive" "2.1.3" - "@radix-ui/react-slot" "1.2.3" - "@radix-ui/react-use-controllable-state" "1.2.2" - aria-hidden "^1.2.4" - react-remove-scroll "^2.6.3" - "@radix-ui/react-direction@1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@radix-ui/react-direction/-/react-direction-1.1.1.tgz#39e5a5769e676c753204b792fbe6cf508e550a14" @@ -6429,17 +5888,6 @@ "@radix-ui/react-use-callback-ref" "1.1.1" "@radix-ui/react-use-escape-keydown" "1.1.1" -"@radix-ui/react-dismissable-layer@1.1.11": - version "1.1.11" - resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz#e33ab6f6bdaa00f8f7327c408d9f631376b88b37" - integrity sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg== - dependencies: - "@radix-ui/primitive" "1.1.3" - "@radix-ui/react-compose-refs" "1.1.2" - "@radix-ui/react-primitive" "2.1.3" - "@radix-ui/react-use-callback-ref" "1.1.1" - "@radix-ui/react-use-escape-keydown" "1.1.1" - "@radix-ui/react-dropdown-menu@^2.1": version "2.1.15" resolved "https://registry.yarnpkg.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.15.tgz#f507320de8e11bc1e671a6ec0c27a7a89e725131" @@ -6453,29 +5901,11 @@ "@radix-ui/react-primitive" "2.1.3" "@radix-ui/react-use-controllable-state" "1.2.2" -"@radix-ui/react-dropdown-menu@^2.1.15": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.16.tgz#5ee045c62bad8122347981c479d92b1ff24c7254" - integrity sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw== - dependencies: - "@radix-ui/primitive" "1.1.3" - "@radix-ui/react-compose-refs" "1.1.2" - "@radix-ui/react-context" "1.1.2" - "@radix-ui/react-id" "1.1.1" - "@radix-ui/react-menu" "2.1.16" - "@radix-ui/react-primitive" "2.1.3" - "@radix-ui/react-use-controllable-state" "1.2.2" - "@radix-ui/react-focus-guards@1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.2.tgz#4ec9a7e50925f7fb661394460045b46212a33bed" integrity sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA== -"@radix-ui/react-focus-guards@1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz#2a5669e464ad5fde9f86d22f7fdc17781a4dfa7f" - integrity sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw== - "@radix-ui/react-focus-scope@1.1.7": version "1.1.7" resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz#dfe76fc103537d80bf42723a183773fd07bfb58d" @@ -6516,30 +5946,6 @@ aria-hidden "^1.2.4" react-remove-scroll "^2.6.3" -"@radix-ui/react-menu@2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@radix-ui/react-menu/-/react-menu-2.1.16.tgz#528a5a973c3a7413d3d49eb9ccd229aa52402911" - integrity sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg== - dependencies: - "@radix-ui/primitive" "1.1.3" - "@radix-ui/react-collection" "1.1.7" - "@radix-ui/react-compose-refs" "1.1.2" - "@radix-ui/react-context" "1.1.2" - "@radix-ui/react-direction" "1.1.1" - "@radix-ui/react-dismissable-layer" "1.1.11" - "@radix-ui/react-focus-guards" "1.1.3" - "@radix-ui/react-focus-scope" "1.1.7" - "@radix-ui/react-id" "1.1.1" - "@radix-ui/react-popper" "1.2.8" - "@radix-ui/react-portal" "1.1.9" - "@radix-ui/react-presence" "1.1.5" - "@radix-ui/react-primitive" "2.1.3" - "@radix-ui/react-roving-focus" "1.1.11" - "@radix-ui/react-slot" "1.2.3" - "@radix-ui/react-use-callback-ref" "1.1.1" - aria-hidden "^1.2.4" - react-remove-scroll "^2.6.3" - "@radix-ui/react-popper@1.2.7": version "1.2.7" resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-1.2.7.tgz#531cf2eebb3d3270d58f7d8136e4517646429978" @@ -6556,22 +5962,6 @@ "@radix-ui/react-use-size" "1.1.1" "@radix-ui/rect" "1.1.1" -"@radix-ui/react-popper@1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-1.2.8.tgz#a79f39cdd2b09ab9fb50bf95250918422c4d9602" - integrity sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw== - dependencies: - "@floating-ui/react-dom" "^2.0.0" - "@radix-ui/react-arrow" "1.1.7" - "@radix-ui/react-compose-refs" "1.1.2" - "@radix-ui/react-context" "1.1.2" - "@radix-ui/react-primitive" "2.1.3" - "@radix-ui/react-use-callback-ref" "1.1.1" - "@radix-ui/react-use-layout-effect" "1.1.1" - "@radix-ui/react-use-rect" "1.1.1" - "@radix-ui/react-use-size" "1.1.1" - "@radix-ui/rect" "1.1.1" - "@radix-ui/react-portal@1.1.9": version "1.1.9" resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.1.9.tgz#14c3649fe48ec474ac51ed9f2b9f5da4d91c4472" @@ -6588,14 +5978,6 @@ "@radix-ui/react-compose-refs" "1.1.2" "@radix-ui/react-use-layout-effect" "1.1.1" -"@radix-ui/react-presence@1.1.5": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.1.5.tgz#5d8f28ac316c32f078afce2996839250c10693db" - integrity sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ== - dependencies: - "@radix-ui/react-compose-refs" "1.1.2" - "@radix-ui/react-use-layout-effect" "1.1.1" - "@radix-ui/react-primitive@2.1.3": version "2.1.3" resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz#db9b8bcff49e01be510ad79893fb0e4cda50f1bc" @@ -6618,22 +6000,7 @@ "@radix-ui/react-use-callback-ref" "1.1.1" "@radix-ui/react-use-controllable-state" "1.2.2" -"@radix-ui/react-roving-focus@1.1.11": - version "1.1.11" - resolved "https://registry.yarnpkg.com/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz#ef54384b7361afc6480dcf9907ef2fedb5080fd9" - integrity sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA== - dependencies: - "@radix-ui/primitive" "1.1.3" - "@radix-ui/react-collection" "1.1.7" - "@radix-ui/react-compose-refs" "1.1.2" - "@radix-ui/react-context" "1.1.2" - "@radix-ui/react-direction" "1.1.1" - "@radix-ui/react-id" "1.1.1" - "@radix-ui/react-primitive" "2.1.3" - "@radix-ui/react-use-callback-ref" "1.1.1" - "@radix-ui/react-use-controllable-state" "1.2.2" - -"@radix-ui/react-slot@1.2.3", "@radix-ui/react-slot@^1.2.3": +"@radix-ui/react-slot@1.2.3": version "1.2.3" resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.2.3.tgz#502d6e354fc847d4169c3bc5f189de777f68cfe1" integrity sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A== @@ -6757,13 +6124,6 @@ "@swc/helpers" "^0.5.0" clsx "^2.0.0" -"@react-native-async-storage/async-storage@^1.17.7": - version "1.24.0" - resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.24.0.tgz#888efbc62a26f7d9464b32f4d3027b7f2771999b" - integrity sha512-W4/vbwUOYOjco0x3toB8QCr7EjIP6nE9G7o8PMguvvjYT5Awg09lyV4enACRx4s++PPulBiBSjL0KTFx2u0Z/g== - dependencies: - merge-options "^3.0.4" - "@react-stately/flags@^3.1.2": version "3.1.2" resolved "https://registry.yarnpkg.com/@react-stately/flags/-/flags-3.1.2.tgz#5c8e5ae416d37d37e2e583d2fcb3a046293504f2" @@ -6783,11 +6143,6 @@ resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.30.0.tgz#616f3644e687ec3657e97bb821f8c219f6771311" integrity sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog== -"@remix-run/router@1.23.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.23.0.tgz#35390d0e7779626c026b11376da6789eb8389242" - integrity sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA== - "@reown/appkit-adapter-wagmi@1.7.20": version "1.7.20" resolved "https://registry.yarnpkg.com/@reown/appkit-adapter-wagmi/-/appkit-adapter-wagmi-1.7.20.tgz#34ba245ab2f11f8e3be09e6cf6b0f2a16e35f7ba" @@ -7167,7 +6522,7 @@ resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.9.tgz#e5e142fbbfe251091f9c5f1dd4c834ac04c3dbd1" integrity sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg== -"@scure/base@1.2.6", "@scure/base@^1.2.6", "@scure/base@~1.2.5": +"@scure/base@1.2.6", "@scure/base@~1.2.5": version "1.2.6" resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.2.6.tgz#ca917184b8231394dd8847509c67a0be522e59f6" integrity sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg== @@ -7336,52 +6691,6 @@ resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== -"@solana-mobile/mobile-wallet-adapter-protocol-web3js@^2.2.0": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@solana-mobile/mobile-wallet-adapter-protocol-web3js/-/mobile-wallet-adapter-protocol-web3js-2.2.3.tgz#a76cc5da6d076ca54464c7cef1405d10565fb85e" - integrity sha512-EkhnBQGtYTV7f7l8mC//x9ZqPt2E+hJsRyCNq4VrlCbTMH9BItJcmz1agMqdVv1OpxYqC4i0yCAnPYkczeSCqw== - dependencies: - "@solana-mobile/mobile-wallet-adapter-protocol" "^2.2.0" - bs58 "^5.0.0" - js-base64 "^3.7.5" - -"@solana-mobile/mobile-wallet-adapter-protocol@^2.2.0": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@solana-mobile/mobile-wallet-adapter-protocol/-/mobile-wallet-adapter-protocol-2.2.3.tgz#d341601b7e1670f99f7315531ce132d54e6087dd" - integrity sha512-gtBhVsb1U1zjvBAG1XwhQuN7420w4gqixJDZL77ydNCn43JODaLfAX4PLmS++SaO6pLV74tOUes5UnoyoxKe8A== - dependencies: - "@solana/wallet-standard" "^1.1.2" - "@solana/wallet-standard-util" "^1.1.1" - "@wallet-standard/core" "^1.0.3" - js-base64 "^3.7.5" - -"@solana-mobile/wallet-adapter-mobile@^2.2.0": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@solana-mobile/wallet-adapter-mobile/-/wallet-adapter-mobile-2.2.3.tgz#d428dae5cb0a32a70b78895f78eeb93a25ac0dd4" - integrity sha512-O0z3IXPWaU/l9XJa9YSkAayIeDHKfuqDm5tznehO6+kADimCz81Rh5ADTEyGXZbaVGdijcTKc5k8Z5oE0E2pmg== - dependencies: - "@solana-mobile/mobile-wallet-adapter-protocol-web3js" "^2.2.0" - "@solana-mobile/wallet-standard-mobile" "^0.4.0" - "@solana/wallet-adapter-base" "^0.9.23" - "@solana/wallet-standard-features" "^1.2.0" - js-base64 "^3.7.5" - optionalDependencies: - "@react-native-async-storage/async-storage" "^1.17.7" - -"@solana-mobile/wallet-standard-mobile@^0.4.0": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@solana-mobile/wallet-standard-mobile/-/wallet-standard-mobile-0.4.1.tgz#3c046f8df5d7cb1987e7277d074c7bd9e8cafdaf" - integrity sha512-imsIgBxYwOB9q6XLUBM5daf6R6E62RBXs1cT9RkGHXvszx2ewa7eZNxSdgyhdcym8usgQw61AVSF/gKlAUSEdA== - dependencies: - "@solana-mobile/mobile-wallet-adapter-protocol" "^2.2.0" - "@solana/wallet-standard-chains" "^1.1.0" - "@solana/wallet-standard-features" "^1.2.0" - "@wallet-standard/base" "^1.0.1" - "@wallet-standard/features" "^1.0.3" - bs58 "^5.0.0" - js-base64 "^3.7.5" - qrcode "^1.5.4" - "@solana-program/system@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.8.1.tgz#0711362899ee4a76d2dc0a8ca5176e3426b8458c" @@ -7811,105 +7120,7 @@ "@solana/rpc-types" "3.0.3" "@solana/transaction-messages" "3.0.3" -"@solana/wallet-adapter-base@^0.9.23", "@solana/wallet-adapter-base@^0.9.27": - version "0.9.27" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.27.tgz#f76463db172ac1d7d1f5aa064800363777731dfd" - integrity sha512-kXjeNfNFVs/NE9GPmysBRKQ/nf+foSaq3kfVSeMcO/iVgigyRmB551OjU3WyAolLG/1jeEfKLqF9fKwMCRkUqg== - dependencies: - "@solana/wallet-standard-features" "^1.3.0" - "@wallet-standard/base" "^1.1.0" - "@wallet-standard/features" "^1.1.0" - eventemitter3 "^5.0.1" - -"@solana/wallet-adapter-coinbase@^0.1.23": - version "0.1.23" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-coinbase/-/wallet-adapter-coinbase-0.1.23.tgz#8a395c519dd1d036ae7e4f90cc8a4d381f06e9cf" - integrity sha512-vCJi/clbq1VVgydPFnHGAc2jdEhDAClYmhEAR4RJp9UHBg+MEQUl1WW8PVIREY5uOzJHma0qEiyummIfyt0b4A== - dependencies: - "@solana/wallet-adapter-base" "^0.9.27" - -"@solana/wallet-adapter-react@0.15.39": - version "0.15.39" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-react/-/wallet-adapter-react-0.15.39.tgz#6e7a3df7b09afa4beea6b12384451cfb2aeb5976" - integrity sha512-WXtlo88ith5m22qB+qiGw301/Zb9r5pYr4QdXWmlXnRNqwST5MGmJWhG+/RVrzc+OG7kSb3z1gkVNv+2X/Y0Gg== - dependencies: - "@solana-mobile/wallet-adapter-mobile" "^2.2.0" - "@solana/wallet-adapter-base" "^0.9.27" - "@solana/wallet-standard-wallet-adapter-react" "^1.1.4" - -"@solana/wallet-standard-chains@^1.1.0", "@solana/wallet-standard-chains@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@solana/wallet-standard-chains/-/wallet-standard-chains-1.1.1.tgz#bbab9f3836006e9e4722afc408ca323df9623657" - integrity sha512-Us3TgL4eMVoVWhuC4UrePlYnpWN+lwteCBlhZDUhFZBJ5UMGh94mYPXno3Ho7+iHPYRtuCi/ePvPcYBqCGuBOw== - dependencies: - "@wallet-standard/base" "^1.1.0" - -"@solana/wallet-standard-core@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@solana/wallet-standard-core/-/wallet-standard-core-1.1.2.tgz#86512ae188450d70ff5d1ee0f58b5c29b83226c6" - integrity sha512-FaSmnVsIHkHhYlH8XX0Y4TYS+ebM+scW7ZeDkdXo3GiKge61Z34MfBPinZSUMV08hCtzxxqH2ydeU9+q/KDrLA== - dependencies: - "@solana/wallet-standard-chains" "^1.1.1" - "@solana/wallet-standard-features" "^1.3.0" - "@solana/wallet-standard-util" "^1.1.2" - -"@solana/wallet-standard-features@^1.2.0", "@solana/wallet-standard-features@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@solana/wallet-standard-features/-/wallet-standard-features-1.3.0.tgz#c489eca9d0c78f97084b4af6ca8ad8c1ca197de5" - integrity sha512-ZhpZtD+4VArf6RPitsVExvgkF+nGghd1rzPjd97GmBximpnt1rsUxMOEyoIEuH3XBxPyNB6Us7ha7RHWQR+abg== - dependencies: - "@wallet-standard/base" "^1.1.0" - "@wallet-standard/features" "^1.1.0" - -"@solana/wallet-standard-util@^1.1.1", "@solana/wallet-standard-util@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@solana/wallet-standard-util/-/wallet-standard-util-1.1.2.tgz#1e281178c04b52923ea530799c589ed64e5526bc" - integrity sha512-rUXFNP4OY81Ddq7qOjQV4Kmkozx4wjYAxljvyrqPx8Ycz0FYChG/hQVWqvgpK3sPsEaO/7ABG1NOACsyAKWNOA== - dependencies: - "@noble/curves" "^1.8.0" - "@solana/wallet-standard-chains" "^1.1.1" - "@solana/wallet-standard-features" "^1.3.0" - -"@solana/wallet-standard-wallet-adapter-base@^1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@solana/wallet-standard-wallet-adapter-base/-/wallet-standard-wallet-adapter-base-1.1.4.tgz#fc05b153674e29839eee49b30d05106bd42dd789" - integrity sha512-Q2Rie9YaidyFA4UxcUIxUsvynW+/gE2noj/Wmk+IOwDwlVrJUAXCvFaCNsPDSyKoiYEKxkSnlG13OA1v08G4iw== - dependencies: - "@solana/wallet-adapter-base" "^0.9.23" - "@solana/wallet-standard-chains" "^1.1.1" - "@solana/wallet-standard-features" "^1.3.0" - "@solana/wallet-standard-util" "^1.1.2" - "@wallet-standard/app" "^1.1.0" - "@wallet-standard/base" "^1.1.0" - "@wallet-standard/features" "^1.1.0" - "@wallet-standard/wallet" "^1.1.0" - -"@solana/wallet-standard-wallet-adapter-react@^1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@solana/wallet-standard-wallet-adapter-react/-/wallet-standard-wallet-adapter-react-1.1.4.tgz#5f48a68bea19fe570e1741d0e26f98c6d8ad0628" - integrity sha512-xa4KVmPgB7bTiWo4U7lg0N6dVUtt2I2WhEnKlIv0jdihNvtyhOjCKMjucWet6KAVhir6I/mSWrJk1U9SvVvhCg== - dependencies: - "@solana/wallet-standard-wallet-adapter-base" "^1.1.4" - "@wallet-standard/app" "^1.1.0" - "@wallet-standard/base" "^1.1.0" - -"@solana/wallet-standard-wallet-adapter@^1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@solana/wallet-standard-wallet-adapter/-/wallet-standard-wallet-adapter-1.1.4.tgz#fd4f9d1b61e85daa6d940618854528945cacdfa7" - integrity sha512-YSBrxwov4irg2hx9gcmM4VTew3ofNnkqsXQ42JwcS6ykF1P1ecVY8JCbrv75Nwe6UodnqeoZRbN7n/p3awtjNQ== - dependencies: - "@solana/wallet-standard-wallet-adapter-base" "^1.1.4" - "@solana/wallet-standard-wallet-adapter-react" "^1.1.4" - -"@solana/wallet-standard@^1.1.2": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@solana/wallet-standard/-/wallet-standard-1.1.4.tgz#afe6d8a6d6ea04acd9bb4a92bef6bb93e08c81f3" - integrity sha512-NF+MI5tOxyvfTU4A+O5idh/gJFmjm52bMwsPpFGRSL79GECSN0XLmpVOO/jqTKJgac2uIeYDpQw/eMaQuWuUXw== - dependencies: - "@solana/wallet-standard-core" "^1.1.2" - "@solana/wallet-standard-wallet-adapter" "^1.1.4" - -"@solana/web3.js@^1.98.0", "@solana/web3.js@^1.98.1", "@solana/web3.js@^1.98.2", "@solana/web3.js@^1.98.4": +"@solana/web3.js@^1.98.1": version "1.98.4" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== @@ -8588,7 +7799,7 @@ dependencies: "@tanstack/query-core" "5.55.4" -"@tanstack/react-virtual@^3.13.12", "@tanstack/react-virtual@^3.13.9": +"@tanstack/react-virtual@^3.13.9": version "3.13.12" resolved "https://registry.yarnpkg.com/@tanstack/react-virtual/-/react-virtual-3.13.12.tgz#d372dc2783739cc04ec1a728ca8203937687a819" integrity sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA== @@ -9441,11 +8652,6 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== -"@types/prop-types@^15.7.14", "@types/prop-types@^15.7.15": - version "15.7.15" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.15.tgz#e6e5a86d602beaca71ce5163fadf5f95d70931c7" - integrity sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw== - "@types/qrcode@^1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@types/qrcode/-/qrcode-1.5.0.tgz#6a98fe9a9a7b2a9a3167b6dde17eff999eabe40b" @@ -9496,11 +8702,6 @@ dependencies: "@types/react" "*" -"@types/react-transition-group@^4.4.12": - version "4.4.12" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.12.tgz#b5d76568485b02a307238270bfe96cb51ee2a044" - integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w== - "@types/react@*", "@types/react@18.3.12": version "18.3.12" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.12.tgz#99419f182ccd69151813b7ee24b792fe08774f60" @@ -9937,41 +9138,6 @@ "@uiw/codemirror-extensions-basic-setup" "4.25.2" codemirror "^6.0.0" -"@vanilla-extract/css@^1.17.4": - version "1.17.4" - resolved "https://registry.yarnpkg.com/@vanilla-extract/css/-/css-1.17.4.tgz#c73353992b8243e8ab140582bf6d673ebc709b0a" - integrity sha512-m3g9nQDWPtL+sTFdtCGRMI1Vrp86Ay4PBYq1Bo7Bnchj5ElNtAJpOqD+zg+apthVA4fB7oVpMWNjwpa6ElDWFQ== - dependencies: - "@emotion/hash" "^0.9.0" - "@vanilla-extract/private" "^1.0.9" - css-what "^6.1.0" - cssesc "^3.0.0" - csstype "^3.0.7" - dedent "^1.5.3" - deep-object-diff "^1.1.9" - deepmerge "^4.2.2" - lru-cache "^10.4.3" - media-query-parser "^2.0.2" - modern-ahocorasick "^1.0.0" - picocolors "^1.0.0" - -"@vanilla-extract/dynamic@^2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@vanilla-extract/dynamic/-/dynamic-2.1.5.tgz#2e2721d5e17071c161e3fdf29b8204772e3bbabc" - integrity sha512-QGIFGb1qyXQkbzx6X6i3+3LMc/iv/ZMBttMBL+Wm/DetQd36KsKsFg5CtH3qy+1hCA/5w93mEIIAiL4fkM8ycw== - dependencies: - "@vanilla-extract/private" "^1.0.9" - -"@vanilla-extract/private@^1.0.9": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@vanilla-extract/private/-/private-1.0.9.tgz#bb8aaf72d2e04439792f2e389d9b705cfe691bc0" - integrity sha512-gT2jbfZuaaCLrAxwXbRgIhGhcXbRZCG3v4TTUnjw0EJ7ArdBRxkq4msNJkbuRkCgfIK5ATmprB5t9ljvLeFDEA== - -"@vanilla-extract/recipes@^0.5.7": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@vanilla-extract/recipes/-/recipes-0.5.7.tgz#6677a267ca278e2277ac8ab41b64e57e84c1150c" - integrity sha512-Fvr+htdyb6LVUu+PhH61UFPhwkjgDEk8L4Zq9oIdte42sntpKrgFy90MyTRtGwjVALmrJ0pwRUVr8UoByYeW8A== - "@visulima/boxen@^1.0.30": version "1.0.31" resolved "https://registry.yarnpkg.com/@visulima/boxen/-/boxen-1.0.31.tgz#8d70ab8084f929fe2318315910c547547d0106fe" @@ -10027,54 +9193,12 @@ mipd "0.0.7" zustand "5.0.0" -"@wagmi/core@^2.16.3": - version "2.21.2" - resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-2.21.2.tgz#bd6989b1d35d913425dc9c629be3c8b2df00ef2c" - integrity sha512-Rp4waam2z0FQUDINkJ91jq38PI5wFUHCv1YBL2LXzAQswaEk1ZY8d6+WG3vYGhFHQ22DXy2AlQ8IWmj+2EG3zQ== - dependencies: - eventemitter3 "5.0.1" - mipd "0.0.7" - zustand "5.0.0" - -"@wallet-standard/app@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@wallet-standard/app/-/app-1.1.0.tgz#2ca32e4675536224ebe55a00ad533b7923d7380a" - integrity sha512-3CijvrO9utx598kjr45hTbbeeykQrQfKmSnxeWOgU25TOEpvcipD/bYDQWIqUv1Oc6KK4YStokSMu/FBNecGUQ== - dependencies: - "@wallet-standard/base" "^1.1.0" - -"@wallet-standard/base@^1.0.1", "@wallet-standard/base@^1.1.0": +"@wallet-standard/base@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@wallet-standard/base/-/base-1.1.0.tgz#214093c0597a1e724ee6dbacd84191dfec62bb33" integrity sha512-DJDQhjKmSNVLKWItoKThJS+CsJQjR9AOBOirBVT1F9YpRyC9oYHE+ZnSf8y8bxUphtKqdQMPVQ2mHohYdRvDVQ== -"@wallet-standard/core@1.1.1", "@wallet-standard/core@^1.0.3": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@wallet-standard/core/-/core-1.1.1.tgz#432e10420dc8892a63224d4863f8304fa01b4ea1" - integrity sha512-5Xmjc6+Oe0hcPfVc5n8F77NVLwx1JVAoCVgQpLyv/43/bhtIif+Gx3WUrDlaSDoM8i2kA2xd6YoFbHCxs+e0zA== - dependencies: - "@wallet-standard/app" "^1.1.0" - "@wallet-standard/base" "^1.1.0" - "@wallet-standard/errors" "^0.1.1" - "@wallet-standard/features" "^1.1.0" - "@wallet-standard/wallet" "^1.1.0" - -"@wallet-standard/errors@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@wallet-standard/errors/-/errors-0.1.1.tgz#e745c5925276c0ac6d02f0d489888c171f5e4680" - integrity sha512-V8Ju1Wvol8i/VDyQOHhjhxmMVwmKiwyxUZBnHhtiPZJTWY0U/Shb2iEWyGngYEbAkp2sGTmEeNX1tVyGR7PqNw== - dependencies: - chalk "^5.4.1" - commander "^13.1.0" - -"@wallet-standard/features@^1.0.3", "@wallet-standard/features@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@wallet-standard/features/-/features-1.1.0.tgz#f256d7b18940c8d134f66164330db358a8f5200e" - integrity sha512-hiEivWNztx73s+7iLxsuD1sOJ28xtRix58W7Xnz4XzzA/pF0+aicnWgjOdA10doVDEDZdUuZCIIqG96SFNlDUg== - dependencies: - "@wallet-standard/base" "^1.1.0" - -"@wallet-standard/wallet@1.1.0", "@wallet-standard/wallet@^1.1.0": +"@wallet-standard/wallet@1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@wallet-standard/wallet/-/wallet-1.1.0.tgz#a1e46a3f1b2d06a0206058562169b1f0e9652d0f" integrity sha512-Gt8TnSlDZpAl+RWOOAB/kuvC7RpcdWAlFbHNoi4gsXsfaWa1QCT6LBcfIYTPdOZC9OVZUDwqGuGAcqZejDmHjg== @@ -11222,11 +10346,6 @@ abitype@1.1.0: resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.1.0.tgz#510c5b3f92901877977af5e864841f443bf55406" integrity sha512-6Vh4HcRxNMLA0puzPjM5GBgT4aAcFGKZzSgAXvuZ27shJP6NEpielTuqbBmZILR5/xd0PizkBGy5hReKz9jl5A== -abitype@^1.0.8: - version "1.0.9" - resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.9.tgz#f66940f69caf2b6c190088a017e289dbe41090a6" - integrity sha512-oN0S++TQmlwWuB+rkA6aiEefLv3SP+2l/tC5mux/TLj6qdA6rF15Vbpex4fHovLsMkwLwTIRj8/Q8vXCS3GfOg== - abitype@^1.0.9: version "1.1.1" resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.1.1.tgz#b50ed400f8bfca5452eb4033445c309d3e1117c8" @@ -11841,11 +10960,6 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" -base-x@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.1.tgz#817fb7b57143c501f649805cb247617ad016a885" - integrity sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw== - base-x@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" @@ -11861,11 +10975,6 @@ base64-js@1.5.1, base64-js@^1.3.1, base64-js@^1.5.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -bech32@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" - integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== - big.js@6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-6.2.2.tgz#be3bb9ac834558b53b099deef2a1d06ac6368e1a" @@ -11891,27 +11000,6 @@ bintrees@1.0.2: resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.2.tgz#49f896d6e858a4a499df85c38fb399b9aff840f8" integrity sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw== -bip174@^3.0.0-rc.0: - version "3.0.0-rc.1" - resolved "https://registry.yarnpkg.com/bip174/-/bip174-3.0.0-rc.1.tgz#08c41d5a4cbfa0790075335b64b9a16630fcd73f" - integrity sha512-+8P3BpSairVNF2Nee6Ksdc1etIjWjBOi/MH0MwKtq9YaYp+S2Hk2uvup0e8hCT4IKlS58nXJyyQVmW92zPoD4Q== - dependencies: - uint8array-tools "^0.0.9" - varuint-bitcoin "^2.0.0" - -bitcoinjs-lib@^7.0.0-rc.0: - version "7.0.0-rc.0" - resolved "https://registry.yarnpkg.com/bitcoinjs-lib/-/bitcoinjs-lib-7.0.0-rc.0.tgz#841a7e3a00d4fd719ab7f85f691b2e0455494786" - integrity sha512-7CQgOIbREemKR/NT2uc3uO/fkEy+6CM0sLxboVVY6bv6DbZmPt3gg5Y/hhWgQFeZu5lfTbtVAv32MIxf7lMh4g== - dependencies: - "@noble/hashes" "^1.2.0" - bech32 "^2.0.0" - bip174 "^3.0.0-rc.0" - bs58check "^4.0.0" - uint8array-tools "^0.0.9" - valibot "^0.38.0" - varuint-bitcoin "^2.0.0" - bl@^4.0.3: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" @@ -12050,7 +11138,7 @@ bs-logger@0.x: dependencies: fast-json-stable-stringify "2.x" -bs58@6.0.0, bs58@^6.0.0: +bs58@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== @@ -12064,21 +11152,6 @@ bs58@^4.0.0, bs58@^4.0.1: dependencies: base-x "^3.0.2" -bs58@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279" - integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ== - dependencies: - base-x "^4.0.0" - -bs58check@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-4.0.0.tgz#46cda52a5713b7542dcb78ec2efdf78f5bf1d23c" - integrity sha512-FsGDOnFg9aVI9erdriULkd/JjEWONV/lQE5aYziB5PoBsXRind56lh8doIZIc9X4HoxT5x4bLjMWN1/NB8Zp5g== - dependencies: - "@noble/hashes" "^1.2.0" - bs58 "^6.0.0" - bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -12229,7 +11302,7 @@ cborg@^4.2.10, cborg@^4.2.6: preact "^10.16.0" sha.js "^2.4.11" -chalk@5.6.2: +chalk@5.6.2, chalk@^5.4.1: version "5.6.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== @@ -12251,11 +11324,6 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.4.1: - version "5.6.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.0.tgz#a1a8d294ea3526dbb77660f12649a08490e33ab8" - integrity sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ== - char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -12550,11 +11618,6 @@ commander@7, commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-13.1.0.tgz#776167db68c78f38dcce1f9b8d7b8b9a488abf46" - integrity sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw== - commander@^2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -12821,7 +11884,7 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" -csstype@3.1.3, csstype@^3.0.7, csstype@^3.1.3: +csstype@3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== @@ -13080,10 +12143,10 @@ damerau-levenshtein@^1.0.8: resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== -dappscout-iframe@0.4.0-alpha.4: - version "0.4.0-alpha.4" - resolved "https://registry.yarnpkg.com/dappscout-iframe/-/dappscout-iframe-0.4.0-alpha.4.tgz#30f8f2bdebd6ce8829a870e4543fc1cdab2012c6" - integrity sha512-SmVK3ZnnnDXC3T8MyHRK7wyEntRUMryyvTU6FTixcBxmmpIGiN96cmdgLRh1zcFdd1aDEjLME3kv2LjgD7Jufw== +dappscout-iframe@0.4.0-alpha.7: + version "0.4.0-alpha.7" + resolved "https://registry.yarnpkg.com/dappscout-iframe/-/dappscout-iframe-0.4.0-alpha.7.tgz#1ff19c4a9e393a66b690ee8ba63e4d9e08170660" + integrity sha512-pEJ1U5BdBh0588f0/UPaWmd3POWrMcVirDqZA6RDxlCS26ppvcBE7Djuln9nWpH5Kei+eJ/B7RBAeYTr1/f2EA== dependencies: react "19.1.0" react-dom "19.1.0" @@ -13241,11 +12304,6 @@ dedent@^0.7.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== -dedent@^1.5.3: - version "1.6.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.6.0.tgz#79d52d6389b1ffa67d2bcef59ba51847a9d503b2" - integrity sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA== - deep-equal@^2.0.5: version "2.1.0" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.1.0.tgz#5ba60402cf44ab92c2c07f3f3312c3d857a0e1dd" @@ -13277,11 +12335,6 @@ deep-is@^0.1.3, deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deep-object-diff@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.9.tgz#6df7ef035ad6a0caa44479c536ed7b02570f4595" - integrity sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA== - deepmerge@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" @@ -13431,14 +12484,6 @@ dom-accessibility-api@^0.5.9: resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz#56082f71b1dc7aac69d83c4285eef39c15d93f56" integrity sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg== -dom-helpers@^5.0.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" - integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== - dependencies: - "@babel/runtime" "^7.8.7" - csstype "^3.0.2" - dom-mutator@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/dom-mutator/-/dom-mutator-0.6.0.tgz#079d7a4b3e8981a562cd777548b99baab51d65c5" @@ -15176,16 +14221,6 @@ gopd@^1.2.0: resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== -gql.tada@^1.8.12, gql.tada@^1.8.13: - version "1.8.13" - resolved "https://registry.yarnpkg.com/gql.tada/-/gql.tada-1.8.13.tgz#a724bbdaebe1d851d80bf59c5e8614956914b883" - integrity sha512-fYoorairdPgxtE7Sf1X9/6bSN9Kt2+PN8KLg3hcF8972qFnawwUgs1OLVU8efZMHwL7EBHhhKBhrsGPlOs2lZQ== - dependencies: - "@0no-co/graphql.web" "^1.0.5" - "@0no-co/graphqlsp" "^1.12.13" - "@gql.tada/cli-utils" "1.7.1" - "@gql.tada/internal" "1.0.8" - graceful-fs@^4.2.4, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" @@ -15228,11 +14263,6 @@ graphql-ws@^5.11.3: resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.11.3.tgz#eaf8e6baf669d167975cff13ad86abca4ecfe82f" integrity sha512-fU8zwSgAX2noXAsuFiCZ8BtXeXZOzXyK5u1LloCdacsVth4skdBMPO74EG51lBoWSIZ8beUocdpV8+cQHBODnQ== -"graphql@^15.5.0 || ^16.0.0 || ^17.0.0", graphql@^16.11.0: - version "16.11.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.11.0.tgz#96d17f66370678027fdf59b2d4c20b4efaa8a633" - integrity sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw== - graphql@^16.8.1: version "16.8.1" resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07" @@ -15488,13 +14518,6 @@ html-escaper@^2.0.0, html-escaper@^2.0.2: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -html-parse-stringify@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz#dfc1017347ce9f77c8141a507f233040c59c55d2" - integrity sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg== - dependencies: - void-elements "3.1.0" - http-cookie-agent@^6.0.7: version "6.0.8" resolved "https://registry.yarnpkg.com/http-cookie-agent/-/http-cookie-agent-6.0.8.tgz#f2635638f4172c7de0c482396ea7313e9731a62b" @@ -15567,20 +14590,6 @@ husky@^8.0.0: resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== -i18next@^24.2.2: - version "24.2.3" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-24.2.3.tgz#3a05f72615cbd7c00d7e348667e2aabef1df753b" - integrity sha512-lfbf80OzkocvX7nmZtu7nSTNbrTYR52sLWxPtlXX1zAhVw8WEnFk4puUkCR4B1dNQwbSpEHHHemcZu//7EcB7A== - dependencies: - "@babel/runtime" "^7.26.10" - -i18next@^25.3.0: - version "25.5.2" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-25.5.2.tgz#16efa309e154d46dac7583e6a315ccb47e3e3a10" - integrity sha512-lW8Zeh37i/o0zVr+NoCHfNnfvVw+M6FQbRp36ZZ/NyHDJ3NJVpp2HhAUyU9WafL5AssymNoOjMRB48mmx2P6Hw== - dependencies: - "@babel/runtime" "^7.27.6" - iconv-lite@0.6, iconv-lite@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" @@ -17038,11 +16047,6 @@ joi@^17.3.0: "@sideway/formula" "^3.0.1" "@sideway/pinpoint" "^2.0.0" -jose@^6.0.11: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jose/-/jose-6.1.0.tgz#96285365689d16f2845a353964d2284bf19f464c" - integrity sha512-TTQJyoEoKcC1lscpVDCSsVgYzUDg/0Bt3WE//WiTPK6uOCQC2KZS4MpugbMWt/zyjkopgZoXhZuCi00gLudfUA== - jose@^6.0.8: version "6.1.3" resolved "https://registry.yarnpkg.com/jose/-/jose-6.1.3.tgz#8453d7be88af7bb7d64a0481d6a35a0145ba3ea5" @@ -17053,11 +16057,6 @@ joycon@^3.1.1: resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== -js-base64@^3.7.5: - version "3.7.8" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.8.tgz#af44496bc09fa178ed9c4adf67eb2b46f5c6d2a4" - integrity sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow== - js-cookie@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.1.tgz#9e39b4c6c2f56563708d7d31f6f5f21873a92414" @@ -17525,7 +16524,7 @@ lru-cache@^10.0.2: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== -lru-cache@^10.2.0, lru-cache@^10.4.3: +lru-cache@^10.2.0: version "10.4.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== @@ -17634,13 +16633,6 @@ mdurl@^2.0.0: resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== -media-query-parser@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/media-query-parser/-/media-query-parser-2.0.2.tgz#ff79e56cee92615a304a1c2fa4f2bd056c0a1d29" - integrity sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w== - dependencies: - "@babel/runtime" "^7.12.5" - merge-options@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7" @@ -17673,11 +16665,6 @@ micro-ftch@^0.3.1: resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== -microdiff@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/microdiff/-/microdiff-1.5.0.tgz#d16219b223396f11ffcf441da26a43d3e6bd06f8" - integrity sha512-Drq+/THMvDdzRYrK0oxJmOKiC24ayUV8ahrt8l3oRK51PWt6gdtrIGrlIH3pT/lFh1z93FbAcidtsHcWbnRz8Q== - micromatch@^4.0.4, micromatch@^4.0.5, micromatch@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" @@ -17783,7 +16770,7 @@ mipd@0.0.7, mipd@^0.0.7: resolved "https://registry.yarnpkg.com/mipd/-/mipd-0.0.7.tgz#bb5559e21fa18dc3d9fe1c08902ef14b7ce32fd9" integrity sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg== -mitt@^3.0.0, mitt@^3.0.1: +mitt@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== @@ -17815,11 +16802,6 @@ mockdate@^3.0.5: resolved "https://registry.yarnpkg.com/mockdate/-/mockdate-3.0.5.tgz#789be686deb3149e7df2b663d2bc4392bc3284fb" integrity sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ== -modern-ahocorasick@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/modern-ahocorasick/-/modern-ahocorasick-1.1.0.tgz#9b1fa15d4f654be20a2ad7ecc44ec9d7645bb420" - integrity sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ== - module-details-from-path@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" @@ -18459,20 +17441,6 @@ ox@0.7.1: abitype "^1.0.6" eventemitter3 "5.0.1" -ox@0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/ox/-/ox-0.9.1.tgz#d3300afe70c5b2ec50a9df3097f8bb0523b306a5" - integrity sha512-NVI0cajROntJWtFnxZQ1aXDVy+c6DLEXJ3wwON48CgbPhmMJrpRTfVbuppR+47RmXm3lZ/uMaKiFSkLdAO1now== - dependencies: - "@adraffy/ens-normalize" "^1.11.0" - "@noble/ciphers" "^1.3.0" - "@noble/curves" "^1.9.1" - "@noble/hashes" "^1.8.0" - "@scure/bip32" "^1.7.0" - "@scure/bip39" "^1.6.0" - abitype "^1.0.8" - eventemitter3 "5.0.1" - ox@0.9.6: version "0.9.6" resolved "https://registry.yarnpkg.com/ox/-/ox-0.9.6.tgz#5cf02523b6db364c10ee7f293ff1e664e0e1eab7" @@ -18946,11 +17914,6 @@ porto@0.2.35: zod "^4.1.5" zustand "^5.0.1" -poseidon-lite@0.2.1, poseidon-lite@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/poseidon-lite/-/poseidon-lite-0.2.1.tgz#7ad98e3a3aa5b91a1fd3a61a87460e9e46fd76d6" - integrity sha512-xIr+G6HeYfOhCuswdqcFpSX47SPhm0EpisWJ6h7fHlWwaVIvH3dLnejpatrtw6Xc6HaLrpq05y7VRfvDmDGIog== - possible-typed-array-names@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" @@ -19206,7 +18169,7 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@^15.5.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: +prop-types@^15.5.0, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -19354,15 +18317,6 @@ qrcode@^1.5.1: pngjs "^5.0.0" yargs "^15.3.1" -qrcode@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.4.tgz#5cb81d86eb57c675febb08cf007fff963405da88" - integrity sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg== - dependencies: - dijkstrajs "^1.0.1" - pngjs "^5.0.0" - yargs "^15.3.1" - query-string@7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.3.tgz#a1cf90e994abb113a325804a972d98276fe02328" @@ -19491,6 +18445,13 @@ react-device-detect@^2.2.3: dependencies: ua-parser-js "^1.0.33" +react-dom@19.1.0: + version "19.1.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.1.0.tgz#133558deca37fa1d682708df8904b25186793623" + integrity sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g== + dependencies: + scheduler "^0.26.0" + react-dom@19.1.2: version "19.1.2" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.1.2.tgz#18ce6b14f682f4871a69cc6b2568d42af2cd5a33" @@ -19511,14 +18472,6 @@ react-hook-form@7.52.1: resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.52.1.tgz#ec2c96437b977f8b89ae2d541a70736c66284852" integrity sha512-uNKIhaoICJ5KQALYZ4TOaOLElyM+xipord+Ha3crEFhTntdLvWZqVY49Wqd/0GiVCA/f9NjemLeiNPjG7Hpurg== -react-i18next@^15.4.0, react-i18next@^15.6.1: - version "15.7.4" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-15.7.4.tgz#146e50f220d204b842e22c75d1a3d23c6c589a30" - integrity sha512-nyU8iKNrI5uDJch0z9+Y5XEr34b0wkyYj3Rp+tfbahxtlswxSCjcUL9H0nqXo9IR3/t5Y5PKIA3fx3MfUyR9Xw== - dependencies: - "@babel/runtime" "^7.27.6" - html-parse-stringify "^3.0.1" - react-icons@5.4.0: version "5.4.0" resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-5.4.0.tgz#443000f6e5123ee1b21ea8c0a716f6e7797f7416" @@ -19546,11 +18499,6 @@ react-inspector@^6.0.1: resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-6.0.1.tgz#1a37f0165d9df81ee804d63259eaaeabe841287d" integrity sha512-cxKSeFTf7jpSSVddm66sKdolG90qURAX3g1roTeaN6x0YEbtWc8JpmFN9+yIqLNH2uEkYerWLtJZIXRIFuBKrg== -react-intersection-observer@^9.16.0: - version "9.16.0" - resolved "https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-9.16.0.tgz#7376d54edc47293300961010844d53b273ee0fb9" - integrity sha512-w9nJSEp+DrW9KmQmeWHQyfaP6b03v+TdXynaoA964Wxt7mdR3An11z4NNCQgL4gKSK7y1ver2Fq+JKH6CWEzUA== - react-intersection-observer@^9.5.2: version "9.5.2" resolved "https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-9.5.2.tgz#f68363a1ff292323c0808201b58134307a1626d0" @@ -19571,11 +18519,6 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -react-is@^19.0.0, react-is@^19.1.1: - version "19.1.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.1.1.tgz#038ebe313cf18e1fd1235d51c87360eb87f7c36a" - integrity sha512-tr41fA15Vn8p4X9ntI+yCyeGSf1TlYaY5vlTZfQmeLBrFo3psOPX6HhTDnFNL9uj3EhP0KAQ80cugCl4b4BERA== - react-jazzicon@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/react-jazzicon/-/react-jazzicon-1.0.4.tgz#31e5f6908e042786ba93a9093b852dea1870e7a0" @@ -19649,21 +18592,6 @@ react-remove-scroll@^2.6.3, react-remove-scroll@^2.7.1: use-callback-ref "^1.3.3" use-sidecar "^1.1.3" -react-router-dom@^6.30.0: - version "6.30.1" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.30.1.tgz#da2580c272ddb61325e435478566be9563a4a237" - integrity sha512-llKsgOkZdbPU1Eg3zK8lCn+sjD9wMRZZPuzmdWWX5SUs8OFkN5HnFVC0u5KMeMaC9aoancFI/KoLuKPqN+hxHw== - dependencies: - "@remix-run/router" "1.23.0" - react-router "6.30.1" - -react-router@6.30.1: - version "6.30.1" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.30.1.tgz#ecb3b883c9ba6dbf5d319ddbc996747f4ab9f4c3" - integrity sha512-X1m21aEmxGXqENEPG3T6u0Th7g0aS4ZmoNynhbs+Cn+q+QGTLt+d5IQ2bHAXKzKcxGJjxACpVbnYQSCRcfxHlQ== - dependencies: - "@remix-run/router" "1.23.0" - react-script-hook@^1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/react-script-hook/-/react-script-hook-1.7.2.tgz#ec130d67f9a25fcde57fbfd1faa87e5b97521948" @@ -19706,15 +18634,10 @@ react-textarea-autosize@8.5.9: use-composed-ref "^1.3.0" use-latest "^1.2.1" -react-transition-group@^4.4.5: - version "4.4.5" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" - integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== - dependencies: - "@babel/runtime" "^7.5.5" - dom-helpers "^5.0.1" - loose-envify "^1.4.0" - prop-types "^15.6.2" +react@19.1.0: + version "19.1.0" + resolved "https://registry.yarnpkg.com/react/-/react-19.1.0.tgz#926864b6c48da7627f004795d6cce50e90793b75" + integrity sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg== react@19.1.2: version "19.1.2" @@ -20104,9 +19027,9 @@ rollup@^4.20.0: fsevents "~2.3.2" rpc-websockets@^9.0.2: - version "9.1.3" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.1.3.tgz#6805dfc01232389dab043861ab9fbfe9d1d75572" - integrity sha512-I+kNjW0udB4Fetr3vvtRuYZJS0PcSPyyvBcH5sDdoV8DFs5E4W2pTr7aiMlKfPxANTClP9RlqCPolj9dd5MsEA== + version "9.3.2" + resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.2.tgz#26b4d7ebaf8e53422528619a3c314e83590d85bf" + integrity sha512-VuW2xJDnl1k8n8kjbdRSWawPRkwaVqUQNjE1TdeTawf0y0abGhtVJFTXCLfgpgGDBkO/Fj6kny8Dc/nvOW78MA== dependencies: "@swc/helpers" "^0.5.11" "@types/uuid" "^8.3.4" @@ -21628,16 +20551,6 @@ uint8array-extras@^1.4.0: resolved "https://registry.yarnpkg.com/uint8array-extras/-/uint8array-extras-1.4.0.tgz#e42a678a6dd335ec2d21661333ed42f44ae7cc74" integrity sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ== -uint8array-tools@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/uint8array-tools/-/uint8array-tools-0.0.8.tgz#712bab001f8347bd782f45bc47c76ffff32d1e0b" - integrity sha512-xS6+s8e0Xbx++5/0L+yyexukU7pz//Yg6IHg3BKhXotg1JcYtgxVcUctQ0HxLByiJzpAkNFawz1Nz5Xadzo82g== - -uint8array-tools@^0.0.9: - version "0.0.9" - resolved "https://registry.yarnpkg.com/uint8array-tools/-/uint8array-tools-0.0.9.tgz#e29e6d05f3472273db1b0e370ac1d91e4a0a4e6f" - integrity sha512-9vqDWmoSXOoi+K14zNaf6LBV51Q8MayF0/IiQs3GlygIKUYtog603e6virExkjjFosfJUBI4LhbQK1iq8IG11A== - uint8arraylist@^2.0.0, uint8arraylist@^2.3.2, uint8arraylist@^2.4.3, uint8arraylist@^2.4.8: version "2.4.8" resolved "https://registry.yarnpkg.com/uint8arraylist/-/uint8arraylist-2.4.8.tgz#5a4d17f4defd77799cb38e93fd5db0f0dceddc12" @@ -21861,7 +20774,7 @@ use-sync-external-store@1.4.0: resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz#adbc795d8eeb47029963016cefdf89dc799fcebc" integrity sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw== -use-sync-external-store@^1.2.2, use-sync-external-store@^1.4.0, use-sync-external-store@^1.5.0: +use-sync-external-store@^1.4.0, use-sync-external-store@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz#55122e2a3edd2a6c106174c27485e0fd59bcfca0" integrity sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A== @@ -21918,7 +20831,7 @@ v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" -valibot@1.2.0, valibot@^0.36.0, valibot@^0.38.0: +valibot@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/valibot/-/valibot-1.2.0.tgz#8fc720d9e4082ba16e30a914064a39619b2f1d6f" integrity sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg== @@ -21944,13 +20857,6 @@ varint@^6.0.0: resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== -varuint-bitcoin@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/varuint-bitcoin/-/varuint-bitcoin-2.0.0.tgz#59a53845a87ad18c42f184a3d325074465341523" - integrity sha512-6QZbU/rHO2ZQYpWFDALCDSRsXbAs1VOEmXAxtbtjLtKuMJ/FQ8YbhfxlaiKv5nklci0M6lZtlZyxo9Q+qNnyog== - dependencies: - uint8array-tools "^0.0.8" - viem@2.23.2: version "2.23.2" resolved "https://registry.yarnpkg.com/viem/-/viem-2.23.2.tgz#db395c8cf5f4fb5572914b962fb8ce5db09f681c" @@ -22022,34 +20928,6 @@ viem@^2.1.1: webauthn-p256 "0.0.5" ws "8.17.1" -viem@^2.22.17, viem@^2.22.21, viem@^2.33.0, viem@^2.37.8: - version "2.37.9" - resolved "https://registry.yarnpkg.com/viem/-/viem-2.37.9.tgz#6157527084c317f43e5e8a079bd8ad59802a8771" - integrity sha512-XXUOE5yJcjr9/M9kRoQcPMUfetwHprO9aTho6vNELjBKJIBx7rYq1fjvBw+xEnhsRjhh5lsORi6B0h8fYFB7NA== - 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" - isows "1.0.7" - ox "0.9.6" - ws "8.18.3" - -viem@^2.33.2: - version "2.36.0" - resolved "https://registry.yarnpkg.com/viem/-/viem-2.36.0.tgz#e564484018c6e4432dfa936fdda4ca585008d4f7" - integrity sha512-Xz7AkGtR43K+NY74X2lBevwfRrsXuifGUzt8QiULO47NXIcT7g3jcA4nIvl5m2OTE5v8SlzishwXmg64xOIVmQ== - dependencies: - "@noble/curves" "1.9.6" - "@noble/hashes" "1.8.0" - "@scure/bip32" "1.7.0" - "@scure/bip39" "1.6.0" - abitype "1.0.8" - isows "1.0.7" - ox "0.9.1" - ws "8.18.3" - vite-plugin-svgr@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/vite-plugin-svgr/-/vite-plugin-svgr-2.2.2.tgz#c5c9cb573bf455bb079550531847ddc5d2e122af" @@ -22078,11 +20956,6 @@ vite@^5.2.8: optionalDependencies: fsevents "~2.3.3" -void-elements@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" - integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== - vscode-languageserver-types@^3.17.1: version "3.17.3" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz#72d05e47b73be93acb84d6e311b5786390f13f64" @@ -22392,7 +21265,7 @@ write-file-atomic@^4.0.1: imurmurhash "^0.1.4" signal-exit "^3.0.7" -ws@8.13.0, ws@8.17.1, ws@8.18.0, ws@~8.11.0: +ws@8.13.0, ws@8.17.1, ws@8.18.0, ws@^7.5.10, ws@^8.5.0, ws@~8.11.0: version "8.17.1" resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== @@ -22402,12 +21275,12 @@ ws@8.18.2, ws@^8.18.0, ws@^8.4.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.2.tgz#42738b2be57ced85f46154320aabb51ab003705a" integrity sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ== -ws@8.18.3, ws@^8.5.0: +ws@8.18.3: version "8.18.3" resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== -ws@^7.3.1, ws@^7.5.1, ws@^7.5.10: +ws@^7.3.1, ws@^7.5.1: version "7.5.10" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== @@ -22601,13 +21474,6 @@ zustand@5.0.3: resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.3.tgz#b323435b73d06b2512e93c77239634374b0e407f" integrity sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg== -zustand@^4.5.4: - version "4.5.7" - resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.5.7.tgz#7d6bb2026a142415dd8be8891d7870e6dbe65f55" - integrity sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw== - dependencies: - use-sync-external-store "^1.2.2" - zustand@^5: version "5.0.6" resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.6.tgz#a2da43d8dc3d31e314279e5baec06297bea70a5c" @@ -22617,8 +21483,3 @@ zustand@^5.0.1: version "5.0.9" resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.9.tgz#389dcd0309b9c545d7a461bd3c54955962847654" integrity sha512-ALBtUj0AfjJt3uNRQoL1tL2tMvj6Gp/6e39dnfT6uzpelGru8v1tPOGBzayOWbPJvujM8JojDk3E1LxeFisBNg== - -zustand@^5.0.3, zustand@^5.0.6, zustand@^5.0.8: - version "5.0.8" - resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.8.tgz#b998a0c088c7027a20f2709141a91cb07ac57f8a" - integrity sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw== From 20b087df444bdfab83b742263c2fe5f789769fc2 Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Mon, 8 Dec 2025 16:16:00 +0100 Subject: [PATCH 03/14] post-merge fixes --- ui/marketplace/MarketplaceAppIframe.tsx | 30 ++++++++++----- ui/marketplace/essentialDapps/swap/Swap.tsx | 42 ++++++++++++++++----- ui/pages/MarketplaceApp.tsx | 1 + 3 files changed, 54 insertions(+), 19 deletions(-) diff --git a/ui/marketplace/MarketplaceAppIframe.tsx b/ui/marketplace/MarketplaceAppIframe.tsx index a24454614c..00c338da1d 100644 --- a/ui/marketplace/MarketplaceAppIframe.tsx +++ b/ui/marketplace/MarketplaceAppIframe.tsx @@ -4,7 +4,7 @@ import React, { useCallback, useEffect, useState, useMemo } from 'react'; import config from 'configs/app'; import essentialDappsChainsConfig from 'configs/essential-dapps-chains'; -import ContentLoader from 'ui/shared/ContentLoader'; +import { ContentLoader } from 'toolkit/components/loaders/ContentLoader'; import useMarketplaceWallet from '../marketplace/useMarketplaceWallet'; @@ -20,9 +20,10 @@ type ContentProps = { address?: string; message?: Record; isAdaptiveHeight?: boolean; + className?: string; }; -const Content = ({ appUrl, address, message, isAdaptiveHeight }: ContentProps) => { +const Content = chakra(({ appUrl, address, message, isAdaptiveHeight, className }: ContentProps) => { const { iframeRef, isReady } = useDappscoutIframe(); const [ iframeKey, setIframeKey ] = useState(0); @@ -60,9 +61,9 @@ const Content = ({ appUrl, address, message, isAdaptiveHeight }: ContentProps) = return (
{ (isFrameLoading) && ( @@ -86,7 +87,7 @@ const Content = ({ appUrl, address, message, isAdaptiveHeight }: ContentProps) = ) }
); -}; +}); type Props = { appId: string; @@ -94,9 +95,12 @@ type Props = { message?: Record; isFixedChainId?: boolean; isAdaptiveHeight?: boolean; + className?: string; }; -export default function MarketplaceAppIframe({ appId, appUrl, message, isFixedChainId, isAdaptiveHeight }: Props) { +const MarketplaceAppIframe = ({ + appId, appUrl, message, isFixedChainId, isAdaptiveHeight, className, +}: Props) => { const { address, chainId: connectedChainId, @@ -111,10 +115,10 @@ export default function MarketplaceAppIframe({ appId, appUrl, message, isFixedCh if (!isFixedChainId) { const chainConfig = essentialDappsChainsConfig()?.chains.find( - (chain) => chain.config.chain.id === String(connectedChainId), + (chain) => chain.id === String(connectedChainId), ); - if (chainConfig?.config.chain.rpcUrls[0]) { - data = [ connectedChainId, chainConfig.config.chain.rpcUrls[0] ]; + if (chainConfig?.app_config?.chain?.rpcUrls[0]) { + data = [ connectedChainId, chainConfig.app_config.chain.rpcUrls[0] ]; } } @@ -132,7 +136,15 @@ export default function MarketplaceAppIframe({ appId, appUrl, message, isFixedCh signTypedData={ signTypedData } switchChain={ switchChain } > - + ); }; + +export default chakra(MarketplaceAppIframe); diff --git a/ui/marketplace/essentialDapps/swap/Swap.tsx b/ui/marketplace/essentialDapps/swap/Swap.tsx index f9b5e82f42..cb18297acc 100644 --- a/ui/marketplace/essentialDapps/swap/Swap.tsx +++ b/ui/marketplace/essentialDapps/swap/Swap.tsx @@ -1,14 +1,24 @@ -import { useToken } from '@chakra-ui/react'; +import { Flex, useToken } from '@chakra-ui/react'; import React, { useMemo } from 'react'; +import { getFeaturePayload } from 'configs/app/features/types'; + import config from 'configs/app'; import essentialDappsChainsConfig from 'configs/essential-dapps-chains'; +import useIsMobile from 'lib/hooks/useIsMobile'; import { useColorMode } from 'toolkit/chakra/color-mode'; import { BODY_TYPEFACE } from 'toolkit/theme/foundations/typography'; import MarketplaceAppIframe from 'ui/marketplace/MarketplaceAppIframe'; +import AdBanner from 'ui/shared/ad/AdBanner'; + +const feature = getFeaturePayload(config.features.marketplace); +const dappConfig = feature?.essentialDapps?.swap; -const feature = config.features.marketplace; -const dappConfig = feature.isEnabled ? feature.essentialDapps?.swap : undefined; +const defaultChainId = Number( + dappConfig?.chains.includes(config.chain.id as string) ? + config.chain.id : + dappConfig?.chains[0], +); function getExplorerUrls() { return Object.fromEntries(dappConfig?.chains.map((chainId) => { @@ -20,6 +30,7 @@ function getExplorerUrls() { } export default function Swap() { + const isMobile = useIsMobile(); const { colorMode } = useColorMode(); const [ mainColor ] = useToken('colors', 'blue.600'); const [ borderColor ] = useToken('colors', colorMode === 'light' ? 'blackAlpha.100' : 'whiteAlpha.100'); @@ -33,15 +44,26 @@ export default function Swap() { mainColor, borderColor, fontFamily: BODY_TYPEFACE, - initialChainId: Number(config.chain.id), + defaultChainId, }), [ mainColor, borderColor ]); return ( - + + + { (feature?.essentialDappsAdEnabled && !isMobile) && ( + + ) } + ); }; diff --git a/ui/pages/MarketplaceApp.tsx b/ui/pages/MarketplaceApp.tsx index 7d904f5133..0549c1a421 100644 --- a/ui/pages/MarketplaceApp.tsx +++ b/ui/pages/MarketplaceApp.tsx @@ -100,6 +100,7 @@ export default function MarketplaceApp() { appUrl={ appUrl } message={ message } isFixedChainId + mx={{ base: -4, lg: -6 }} />
); From a41f4d29c2a26789c0230d1334daa78a7ae4ff1e Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Mon, 8 Dec 2025 16:41:43 +0100 Subject: [PATCH 04/14] rename prop --- configs/envs/.env.eth | 2 +- ui/marketplace/MarketplaceAppIframe.tsx | 13 ++++++------- ui/marketplace/essentialDapps/swap/Swap.tsx | 2 +- ui/marketplace/useMarketplaceWallet.tsx | 12 ++++++------ ui/pages/MarketplaceApp.tsx | 1 - ui/pages/MarketplaceEssentialDapp.tsx | 2 +- 6 files changed, 15 insertions(+), 17 deletions(-) diff --git a/configs/envs/.env.eth b/configs/envs/.env.eth index e006d8afd7..230d81b056 100644 --- a/configs/envs/.env.eth +++ b/configs/envs/.env.eth @@ -42,7 +42,7 @@ NEXT_PUBLIC_MARKETPLACE_BANNER_CONTENT_URL=https://gist.githubusercontent.com/ma NEXT_PUBLIC_MARKETPLACE_BANNER_LINK_URL=https://eth.blockscout.com/apps/revokescout?chainId=1 NEXT_PUBLIC_MARKETPLACE_CATEGORIES_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-categories/default.json NEXT_PUBLIC_MARKETPLACE_ENABLED=true -NEXT_PUBLIC_MARKETPLACE_ESSENTIAL_DAPPS_CONFIG={'swap': {'url': 'https://swapscout-git-test-custom-connector-blockscout.vercel.app', 'chains': ['1', '10', '30', '100', '122', '130', '137', '324', '480', '1135', '1514', '1868', '8453', '13371', '42161', '42220', '57073', '534352', '11155111', '1313161554'], 'fee': '0.004', 'integrator': 'blockscout'}, 'revoke': {'chains': ['1', '10', '30', '100', '122', '130', '137', '324', '480', '1135', '1514', '1868', '8453', '13371', '42161', '42220', '57073', '534352', '11155111', '1313161554']}, 'multisend': {'chains': ['1', '10', '30', '100', '122', '130', '137', '324', '480', '1135', '1514', '1868', '8453', '13371', '42161', '42220', '57073', '534352', '11155111', '1313161554']}} +NEXT_PUBLIC_MARKETPLACE_ESSENTIAL_DAPPS_CONFIG={'swap': {'url': 'https://swapscout-git-test-custom-connector-blockscout.vercel.app', 'chains': ['1', '10', '30', '100', '122', '130', '137', '324', '480', '1135', '1514', '1868', '8453', '13371', '42161', '42220', '57073', '534352', '11155111', '1313161554', '1923', '42793', '59144'], 'fee': '0.004', 'integrator': 'blockscout'}, 'multisend': {'chains': ['1', '10', '30', '100', '122', '130', '137', '324', '480', '1135', '1514', '1868', '8453', '13371', '42161', '42220', '57073', '534352', '11155111', '1313161554', '59144', '7000'], 'posthogKey': 'phc_7O4WGsecqqDO1PeaKayHAxUWN1PjheOmQCiDxEMcmkx', 'posthogHost': 'https://us.i.posthog.com'}} NEXT_PUBLIC_MARKETPLACE_SUBMIT_FORM=https://airtable.com/appiy5yijZpMMSKjT/shr6uMGPKjj1DK7NL NEXT_PUBLIC_MARKETPLACE_SUGGEST_IDEAS_FORM=https://airtable.com/appiy5yijZpMMSKjT/pag3t82DUCyhGRZZO/form NEXT_PUBLIC_METADATA_SERVICE_API_HOST=https://metadata.services.blockscout.com diff --git a/ui/marketplace/MarketplaceAppIframe.tsx b/ui/marketplace/MarketplaceAppIframe.tsx index 00c338da1d..70cb8ebb41 100644 --- a/ui/marketplace/MarketplaceAppIframe.tsx +++ b/ui/marketplace/MarketplaceAppIframe.tsx @@ -93,13 +93,12 @@ type Props = { appId: string; appUrl?: string; message?: Record; - isFixedChainId?: boolean; - isAdaptiveHeight?: boolean; + isEssentialDapp?: boolean; className?: string; }; const MarketplaceAppIframe = ({ - appId, appUrl, message, isFixedChainId, isAdaptiveHeight, className, + appId, appUrl, message, isEssentialDapp, className, }: Props) => { const { address, @@ -108,12 +107,12 @@ const MarketplaceAppIframe = ({ signMessage, signTypedData, switchChain, - } = useMarketplaceWallet(appId, isFixedChainId); + } = useMarketplaceWallet(appId, isEssentialDapp); const [ chainId, rpcUrl ] = useMemo(() => { let data: [ number?, string? ] = [ Number(config.chain.id), config.chain.rpcUrls[0] ]; - if (!isFixedChainId) { + if (isEssentialDapp) { const chainConfig = essentialDappsChainsConfig()?.chains.find( (chain) => chain.id === String(connectedChainId), ); @@ -123,7 +122,7 @@ const MarketplaceAppIframe = ({ } return data; - }, [ isFixedChainId, connectedChainId ]); + }, [ isEssentialDapp, connectedChainId ]); return ( diff --git a/ui/marketplace/essentialDapps/swap/Swap.tsx b/ui/marketplace/essentialDapps/swap/Swap.tsx index cb18297acc..ad6aed3814 100644 --- a/ui/marketplace/essentialDapps/swap/Swap.tsx +++ b/ui/marketplace/essentialDapps/swap/Swap.tsx @@ -53,7 +53,7 @@ export default function Swap() { appId="swap" appUrl={ dappConfig?.url } message={ message } - isAdaptiveHeight + isEssentialDapp /> { (feature?.essentialDappsAdEnabled && !isMobile) && ( = SignTypedDataParameters; -export default function useMarketplaceWallet(appId: string, isFixedChainId = false) { +export default function useMarketplaceWallet(appId: string, isEssentialDapp = false) { const { address, chainId } = useAccount(); const { sendTransactionAsync } = useSendTransaction(); const { signMessageAsync } = useSignMessage(); @@ -35,10 +35,10 @@ export default function useMarketplaceWallet(appId: string, isFixedChainId = fal Action: event, Address: address, AppId: appId, - Source: isFixedChainId ? 'Dappscout' : 'Essential dapps', - ChainId: isFixedChainId ? undefined : String(chainId), + Source: isEssentialDapp ? 'Essential dapps' : 'Dappscout', + ChainId: isEssentialDapp ? String(chainId) : undefined, }); - }, [ address, appId, chainId, isFixedChainId ]); + }, [ address, appId, chainId, isEssentialDapp ]); const switchChain = useCallback( (chainId: number) => switchChainAsync({ chainId }), @@ -46,10 +46,10 @@ export default function useMarketplaceWallet(appId: string, isFixedChainId = fal ); const checkAndSwitchChain = useCallback(async() => { - if (isFixedChainId && Number(config.chain.id) !== chainId) { + if (!isEssentialDapp && Number(config.chain.id) !== chainId) { await switchChain(Number(config.chain.id)); } - }, [ chainId, switchChain, isFixedChainId ]); + }, [ chainId, switchChain, isEssentialDapp ]); const sendTransaction = useCallback(async(transaction: SendTransactionArgs) => { await checkAndSwitchChain(); diff --git a/ui/pages/MarketplaceApp.tsx b/ui/pages/MarketplaceApp.tsx index 0549c1a421..7b6ec12147 100644 --- a/ui/pages/MarketplaceApp.tsx +++ b/ui/pages/MarketplaceApp.tsx @@ -99,7 +99,6 @@ export default function MarketplaceApp() { appId={ id } appUrl={ appUrl } message={ message } - isFixedChainId mx={{ base: -4, lg: -6 }} />
diff --git a/ui/pages/MarketplaceEssentialDapp.tsx b/ui/pages/MarketplaceEssentialDapp.tsx index cc2ecc9ae3..5e907931ce 100644 --- a/ui/pages/MarketplaceEssentialDapp.tsx +++ b/ui/pages/MarketplaceEssentialDapp.tsx @@ -43,7 +43,7 @@ const EssentialDapp = () => { } return ( - + { content } From d09960645738847550672dbc8de257ecb19bebd8 Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Mon, 8 Dec 2025 16:45:25 +0100 Subject: [PATCH 05/14] update schema --- deploy/tools/envs-validator/schemas/features/marketplace.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deploy/tools/envs-validator/schemas/features/marketplace.ts b/deploy/tools/envs-validator/schemas/features/marketplace.ts index 5ec6b632db..86e50afaea 100644 --- a/deploy/tools/envs-validator/schemas/features/marketplace.ts +++ b/deploy/tools/envs-validator/schemas/features/marketplace.ts @@ -110,6 +110,7 @@ export const marketplaceSchema = yup const valueSchema = yup.object().transform(replaceQuotes).json().shape({ swap: yup.lazy(value => value ? yup.object().shape({ + url: yup.string().test(urlTest).required(), chains: chainsSchema, fee: yup.string().required(), integrator: yup.string().required(), @@ -170,4 +171,4 @@ export const marketplaceSchema = yup value => value === undefined, ), }), - }); \ No newline at end of file + }); From 0ca810bff5fae4a11a2b019ee7168fed2ee9496a Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Mon, 8 Dec 2025 16:51:50 +0100 Subject: [PATCH 06/14] undo unnecessary changes --- ui/marketplace/essentialDapps/swap/Swap.tsx | 2 +- ui/pages/MarketplaceEssentialDapp.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ui/marketplace/essentialDapps/swap/Swap.tsx b/ui/marketplace/essentialDapps/swap/Swap.tsx index ad6aed3814..23830dcce0 100644 --- a/ui/marketplace/essentialDapps/swap/Swap.tsx +++ b/ui/marketplace/essentialDapps/swap/Swap.tsx @@ -48,7 +48,7 @@ export default function Swap() { }), [ mainColor, borderColor ]); return ( - + { } return ( - - + + { content } ); From ef6db20d1ef251ec72cd69fd6d3959365869f426 Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Tue, 9 Dec 2025 13:37:37 +0100 Subject: [PATCH 07/14] improve url comparison --- ui/marketplace/MarketplaceAppIframe.tsx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/ui/marketplace/MarketplaceAppIframe.tsx b/ui/marketplace/MarketplaceAppIframe.tsx index 70cb8ebb41..8ec986d650 100644 --- a/ui/marketplace/MarketplaceAppIframe.tsx +++ b/ui/marketplace/MarketplaceAppIframe.tsx @@ -46,12 +46,14 @@ const Content = chakra(({ appUrl, address, message, isAdaptiveHeight, className useEffect(() => { const handleMessage = (event: MessageEvent) => { - if (event.origin !== appUrl) { - return; - } - if (event.data?.type === 'window-height' && isAdaptiveHeight) { - setIframeHeight(Number(event.data.height)); - } + try { + if (event.origin !== new URL(appUrl ?? '').origin) { + return; + } + if (event.data?.type === 'window-height' && isAdaptiveHeight) { + setIframeHeight(Number(event.data.height)); + } + } catch {} }; window.addEventListener('message', handleMessage); From 627783a18c4087fc859f23271e137b4d1cf8d6a8 Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Tue, 9 Dec 2025 16:04:09 +0100 Subject: [PATCH 08/14] fix address change --- ui/marketplace/MarketplaceAppIframe.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/marketplace/MarketplaceAppIframe.tsx b/ui/marketplace/MarketplaceAppIframe.tsx index 8ec986d650..e17a018e67 100644 --- a/ui/marketplace/MarketplaceAppIframe.tsx +++ b/ui/marketplace/MarketplaceAppIframe.tsx @@ -31,6 +31,7 @@ const Content = chakra(({ appUrl, address, message, isAdaptiveHeight, className const [ iframeHeight, setIframeHeight ] = useState(0); useEffect(() => { + setIsFrameLoading(true); setIframeKey((key) => key + 1); }, [ address ]); From a292f69adc78442dee3cb8b1202240c6ab76f851 Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Tue, 9 Dec 2025 17:08:11 +0100 Subject: [PATCH 09/14] add connect wallet message listener --- ui/marketplace/MarketplaceAppIframe.tsx | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/ui/marketplace/MarketplaceAppIframe.tsx b/ui/marketplace/MarketplaceAppIframe.tsx index e17a018e67..c49f566d44 100644 --- a/ui/marketplace/MarketplaceAppIframe.tsx +++ b/ui/marketplace/MarketplaceAppIframe.tsx @@ -4,6 +4,7 @@ import React, { useCallback, useEffect, useState, useMemo } from 'react'; import config from 'configs/app'; import essentialDappsChainsConfig from 'configs/essential-dapps-chains'; +import useWeb3Wallet from 'lib/web3/useWallet'; import { ContentLoader } from 'toolkit/components/loaders/ContentLoader'; import useMarketplaceWallet from '../marketplace/useMarketplaceWallet'; @@ -19,12 +20,13 @@ type ContentProps = { appUrl?: string; address?: string; message?: Record; - isAdaptiveHeight?: boolean; + isEssentialDapp?: boolean; className?: string; }; -const Content = chakra(({ appUrl, address, message, isAdaptiveHeight, className }: ContentProps) => { +const Content = chakra(({ appUrl, address, message, isEssentialDapp, className }: ContentProps) => { const { iframeRef, isReady } = useDappscoutIframe(); + const web3Wallet = useWeb3Wallet({ source: 'Essential dapps' }); const [ iframeKey, setIframeKey ] = useState(0); const [ isFrameLoading, setIsFrameLoading ] = useState(true); @@ -48,23 +50,28 @@ const Content = chakra(({ appUrl, address, message, isAdaptiveHeight, className useEffect(() => { const handleMessage = (event: MessageEvent) => { try { - if (event.origin !== new URL(appUrl ?? '').origin) { + if (event.origin !== new URL(appUrl ?? '').origin || !isEssentialDapp) { return; } - if (event.data?.type === 'window-height' && isAdaptiveHeight) { - setIframeHeight(Number(event.data.height)); + switch (event.data?.type) { + case 'window-height': + setIframeHeight(Number(event.data.height)); + break; + case 'connect-wallet': + web3Wallet.connect(); + break; } } catch {} }; window.addEventListener('message', handleMessage); return () => window.removeEventListener('message', handleMessage); - }, [ appUrl, isAdaptiveHeight ]); + }, [ appUrl, isEssentialDapp, web3Wallet ]); return (
@@ -142,7 +149,7 @@ const MarketplaceAppIframe = ({ appUrl={ appUrl } address={ address } message={ message } - isAdaptiveHeight={ isEssentialDapp } + isEssentialDapp={ isEssentialDapp } className={ className } /> From 44130de850bacb582f7dcdd9fe25ae084de01613 Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Tue, 9 Dec 2025 17:42:34 +0100 Subject: [PATCH 10/14] increase timeout --- deploy/tools/essential-dapps-chains-config-generator/worker.ts | 2 +- deploy/tools/multichain-config-generator/worker.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/tools/essential-dapps-chains-config-generator/worker.ts b/deploy/tools/essential-dapps-chains-config-generator/worker.ts index f73223cbde..a50a43c478 100644 --- a/deploy/tools/essential-dapps-chains-config-generator/worker.ts +++ b/deploy/tools/essential-dapps-chains-config-generator/worker.ts @@ -13,7 +13,7 @@ async function fetchChainConfig(url: string): Promise { const controller = new AbortController(); const timeout = setTimeout(() => { controller.abort(`Request to ${ url } timed out`); - }, 5_000); + }, 10_000); try { const response = await fetch(`${ url }/node-api/config`, { signal: controller.signal }); diff --git a/deploy/tools/multichain-config-generator/worker.ts b/deploy/tools/multichain-config-generator/worker.ts index f73223cbde..a50a43c478 100644 --- a/deploy/tools/multichain-config-generator/worker.ts +++ b/deploy/tools/multichain-config-generator/worker.ts @@ -13,7 +13,7 @@ async function fetchChainConfig(url: string): Promise { const controller = new AbortController(); const timeout = setTimeout(() => { controller.abort(`Request to ${ url } timed out`); - }, 5_000); + }, 10_000); try { const response = await fetch(`${ url }/node-api/config`, { signal: controller.signal }); From a677b747cddba3504461f127e7c740a073a4b69e Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Wed, 10 Dec 2025 18:42:40 +0100 Subject: [PATCH 11/14] upgrade version of dappscout-iframe --- package.json | 2 +- yarn.lock | 24 ++++++------------------ 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index 498659f482..51a5214620 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "brotli-compress": "1.3.3", "crypto-js": "^4.2.0", "d3": "^7.6.1", - "dappscout-iframe": "0.4.0-alpha.7", + "dappscout-iframe": "0.4.0-alpha.9", "dayjs": "^1.11.5", "dom-to-image": "^2.6.0", "es-toolkit": "1.39.10", diff --git a/yarn.lock b/yarn.lock index 1397d6a017..98031d73ae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12143,13 +12143,13 @@ damerau-levenshtein@^1.0.8: resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== -dappscout-iframe@0.4.0-alpha.7: - version "0.4.0-alpha.7" - resolved "https://registry.yarnpkg.com/dappscout-iframe/-/dappscout-iframe-0.4.0-alpha.7.tgz#1ff19c4a9e393a66b690ee8ba63e4d9e08170660" - integrity sha512-pEJ1U5BdBh0588f0/UPaWmd3POWrMcVirDqZA6RDxlCS26ppvcBE7Djuln9nWpH5Kei+eJ/B7RBAeYTr1/f2EA== +dappscout-iframe@0.4.0-alpha.9: + version "0.4.0-alpha.9" + resolved "https://registry.yarnpkg.com/dappscout-iframe/-/dappscout-iframe-0.4.0-alpha.9.tgz#c0138c5655fc14f21959c41bd2980d47515856fa" + integrity sha512-XqfpydPHiNeGjl900MVAD80cC7Y5I4+m3EpID+xbJGeAxQrx6kp0WoDv5KJVZWCE7KesOCdsOMTzUjU4E+7W9Q== dependencies: - react "19.1.0" - react-dom "19.1.0" + react "19.1.2" + react-dom "19.1.2" viem "^1.20.3" data-uri-to-buffer@^4.0.0: @@ -18445,13 +18445,6 @@ react-device-detect@^2.2.3: dependencies: ua-parser-js "^1.0.33" -react-dom@19.1.0: - version "19.1.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.1.0.tgz#133558deca37fa1d682708df8904b25186793623" - integrity sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g== - dependencies: - scheduler "^0.26.0" - react-dom@19.1.2: version "19.1.2" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.1.2.tgz#18ce6b14f682f4871a69cc6b2568d42af2cd5a33" @@ -18634,11 +18627,6 @@ react-textarea-autosize@8.5.9: use-composed-ref "^1.3.0" use-latest "^1.2.1" -react@19.1.0: - version "19.1.0" - resolved "https://registry.yarnpkg.com/react/-/react-19.1.0.tgz#926864b6c48da7627f004795d6cce50e90793b75" - integrity sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg== - react@19.1.2: version "19.1.2" resolved "https://registry.yarnpkg.com/react/-/react-19.1.2.tgz#fd75c4f684b52fe45101381535c58486f4407545" From 301bf7dfc2411aa6d38225cd9bc9a9c8f466d148 Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Wed, 10 Dec 2025 23:23:02 +0100 Subject: [PATCH 12/14] upgrade version of dappscout-iframe --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 51a5214620..2c4a376a80 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "brotli-compress": "1.3.3", "crypto-js": "^4.2.0", "d3": "^7.6.1", - "dappscout-iframe": "0.4.0-alpha.9", + "dappscout-iframe": "0.4.0-alpha.10", "dayjs": "^1.11.5", "dom-to-image": "^2.6.0", "es-toolkit": "1.39.10", diff --git a/yarn.lock b/yarn.lock index 98031d73ae..281d5433fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12143,10 +12143,10 @@ damerau-levenshtein@^1.0.8: resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== -dappscout-iframe@0.4.0-alpha.9: - version "0.4.0-alpha.9" - resolved "https://registry.yarnpkg.com/dappscout-iframe/-/dappscout-iframe-0.4.0-alpha.9.tgz#c0138c5655fc14f21959c41bd2980d47515856fa" - integrity sha512-XqfpydPHiNeGjl900MVAD80cC7Y5I4+m3EpID+xbJGeAxQrx6kp0WoDv5KJVZWCE7KesOCdsOMTzUjU4E+7W9Q== +dappscout-iframe@0.4.0-alpha.10: + version "0.4.0-alpha.10" + resolved "https://registry.yarnpkg.com/dappscout-iframe/-/dappscout-iframe-0.4.0-alpha.10.tgz#c2e5c7762f38f0fb5523772928dd54c325f7da29" + integrity sha512-duQ4VErS5MzmSJr3vYszH05/koL4v4YgS+RQD/NmoZMhm27DtMtWEXTfMNbY84XjRIlT63uNG9+lUWwfCffYGg== dependencies: react "19.1.2" react-dom "19.1.2" From ef875df2056586eb9f07f12225f7136b5722eb0f Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Wed, 10 Dec 2025 23:23:44 +0100 Subject: [PATCH 13/14] change timeout --- deploy/tools/essential-dapps-chains-config-generator/worker.ts | 2 +- deploy/tools/multichain-config-generator/worker.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/tools/essential-dapps-chains-config-generator/worker.ts b/deploy/tools/essential-dapps-chains-config-generator/worker.ts index a50a43c478..ed05cfa397 100644 --- a/deploy/tools/essential-dapps-chains-config-generator/worker.ts +++ b/deploy/tools/essential-dapps-chains-config-generator/worker.ts @@ -13,7 +13,7 @@ async function fetchChainConfig(url: string): Promise { const controller = new AbortController(); const timeout = setTimeout(() => { controller.abort(`Request to ${ url } timed out`); - }, 10_000); + }, 30_000); try { const response = await fetch(`${ url }/node-api/config`, { signal: controller.signal }); diff --git a/deploy/tools/multichain-config-generator/worker.ts b/deploy/tools/multichain-config-generator/worker.ts index a50a43c478..f73223cbde 100644 --- a/deploy/tools/multichain-config-generator/worker.ts +++ b/deploy/tools/multichain-config-generator/worker.ts @@ -13,7 +13,7 @@ async function fetchChainConfig(url: string): Promise { const controller = new AbortController(); const timeout = setTimeout(() => { controller.abort(`Request to ${ url } timed out`); - }, 10_000); + }, 5_000); try { const response = await fetch(`${ url }/node-api/config`, { signal: controller.signal }); From 72984a6d721704c450edb1a3da89c5afd5bbc919 Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Tue, 30 Dec 2025 19:49:03 +0100 Subject: [PATCH 14/14] update version of dappscout-iframe, change swap url --- configs/envs/.env.eth | 2 +- package.json | 2 +- yarn.lock | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/configs/envs/.env.eth b/configs/envs/.env.eth index 230d81b056..4d2c24b421 100644 --- a/configs/envs/.env.eth +++ b/configs/envs/.env.eth @@ -42,7 +42,7 @@ NEXT_PUBLIC_MARKETPLACE_BANNER_CONTENT_URL=https://gist.githubusercontent.com/ma NEXT_PUBLIC_MARKETPLACE_BANNER_LINK_URL=https://eth.blockscout.com/apps/revokescout?chainId=1 NEXT_PUBLIC_MARKETPLACE_CATEGORIES_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-categories/default.json NEXT_PUBLIC_MARKETPLACE_ENABLED=true -NEXT_PUBLIC_MARKETPLACE_ESSENTIAL_DAPPS_CONFIG={'swap': {'url': 'https://swapscout-git-test-custom-connector-blockscout.vercel.app', 'chains': ['1', '10', '30', '100', '122', '130', '137', '324', '480', '1135', '1514', '1868', '8453', '13371', '42161', '42220', '57073', '534352', '11155111', '1313161554', '1923', '42793', '59144'], 'fee': '0.004', 'integrator': 'blockscout'}, 'multisend': {'chains': ['1', '10', '30', '100', '122', '130', '137', '324', '480', '1135', '1514', '1868', '8453', '13371', '42161', '42220', '57073', '534352', '11155111', '1313161554', '59144', '7000'], 'posthogKey': 'phc_7O4WGsecqqDO1PeaKayHAxUWN1PjheOmQCiDxEMcmkx', 'posthogHost': 'https://us.i.posthog.com'}} +NEXT_PUBLIC_MARKETPLACE_ESSENTIAL_DAPPS_CONFIG={'swap': {'url': 'https://swapscout.vercel.app', 'chains': ['1', '10', '30', '100', '122', '130', '137', '324', '480', '1135', '1514', '1868', '8453', '13371', '42161', '42220', '57073', '534352', '11155111', '1313161554', '1923', '42793', '59144'], 'fee': '0.004', 'integrator': 'blockscout'}, 'multisend': {'chains': ['1', '10', '30', '100', '122', '130', '137', '324', '480', '1135', '1514', '1868', '8453', '13371', '42161', '42220', '57073', '534352', '11155111', '1313161554', '59144', '7000'], 'posthogKey': 'phc_7O4WGsecqqDO1PeaKayHAxUWN1PjheOmQCiDxEMcmkx', 'posthogHost': 'https://us.i.posthog.com'}} NEXT_PUBLIC_MARKETPLACE_SUBMIT_FORM=https://airtable.com/appiy5yijZpMMSKjT/shr6uMGPKjj1DK7NL NEXT_PUBLIC_MARKETPLACE_SUGGEST_IDEAS_FORM=https://airtable.com/appiy5yijZpMMSKjT/pag3t82DUCyhGRZZO/form NEXT_PUBLIC_METADATA_SERVICE_API_HOST=https://metadata.services.blockscout.com diff --git a/package.json b/package.json index 2c4a376a80..3a04280596 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "brotli-compress": "1.3.3", "crypto-js": "^4.2.0", "d3": "^7.6.1", - "dappscout-iframe": "0.4.0-alpha.10", + "dappscout-iframe": "0.4.0", "dayjs": "^1.11.5", "dom-to-image": "^2.6.0", "es-toolkit": "1.39.10", diff --git a/yarn.lock b/yarn.lock index 281d5433fc..e5d67d2ab8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12143,10 +12143,10 @@ damerau-levenshtein@^1.0.8: resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== -dappscout-iframe@0.4.0-alpha.10: - version "0.4.0-alpha.10" - resolved "https://registry.yarnpkg.com/dappscout-iframe/-/dappscout-iframe-0.4.0-alpha.10.tgz#c2e5c7762f38f0fb5523772928dd54c325f7da29" - integrity sha512-duQ4VErS5MzmSJr3vYszH05/koL4v4YgS+RQD/NmoZMhm27DtMtWEXTfMNbY84XjRIlT63uNG9+lUWwfCffYGg== +dappscout-iframe@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/dappscout-iframe/-/dappscout-iframe-0.4.0.tgz#b3343af72a3aa1a4134f57a726dece45846a0aff" + integrity sha512-pg5RfGpCHalWN23zigsZ3JK3IbZ2WBy2HBAb1aPFvQl5UEdq4KiHb7fCmtgifdBRpYX251bsUhlZw7pMy0I4JQ== dependencies: react "19.1.2" react-dom "19.1.2"