From d5ba5c7a7cb0f049759eed45db62aed41aff4ea6 Mon Sep 17 00:00:00 2001 From: Alexandr Kazachenko Date: Wed, 25 Oct 2023 10:53:54 +0600 Subject: [PATCH] feat(widget): connect wallet (#3262) --- apps/widget-configurator/src/app/app.tsx | 20 - .../controls/TradeModesControl.tsx | 2 + .../src/app/configurator/hooks/useProvider.ts | 49 ++ .../src/app/configurator/index.tsx | 20 +- apps/widget-configurator/src/main.tsx | 32 +- apps/widget-configurator/src/wagmiConfig.ts | 20 + .../web3-react/connectors/Injected/index.tsx | 16 +- libs/widget-lib/src/JsonRpcManager.ts | 2 +- package.json | 3 + yarn.lock | 532 +++++++++++++++++- 10 files changed, 643 insertions(+), 53 deletions(-) delete mode 100644 apps/widget-configurator/src/app/app.tsx create mode 100644 apps/widget-configurator/src/app/configurator/hooks/useProvider.ts create mode 100644 apps/widget-configurator/src/wagmiConfig.ts diff --git a/apps/widget-configurator/src/app/app.tsx b/apps/widget-configurator/src/app/app.tsx deleted file mode 100644 index 57c6d21310..0000000000 --- a/apps/widget-configurator/src/app/app.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import Box from '@mui/material/Box' - -import { Configurator } from './configurator' - -const WrapperStyled = { - display: 'flex', - flexDirection: 'column', - height: '100%', - width: '100%', -} - -export function App() { - return ( - - - - ) -} - -export default App diff --git a/apps/widget-configurator/src/app/configurator/controls/TradeModesControl.tsx b/apps/widget-configurator/src/app/configurator/controls/TradeModesControl.tsx index 82853f6de3..ed58677009 100644 --- a/apps/widget-configurator/src/app/configurator/controls/TradeModesControl.tsx +++ b/apps/widget-configurator/src/app/configurator/controls/TradeModesControl.tsx @@ -13,6 +13,8 @@ import Select, { SelectChangeEvent } from '@mui/material/Select' export function TradeModesControl({ state }: { state: [TradeType[], Dispatch>] }) { const [tradeModes, setTradeModes] = state const handleTradeModeChange = (event: SelectChangeEvent) => { + if (!event.target.value.length) return + setTradeModes(event.target.value as TradeType[]) } diff --git a/apps/widget-configurator/src/app/configurator/hooks/useProvider.ts b/apps/widget-configurator/src/app/configurator/hooks/useProvider.ts new file mode 100644 index 0000000000..f9a706ee5d --- /dev/null +++ b/apps/widget-configurator/src/app/configurator/hooks/useProvider.ts @@ -0,0 +1,49 @@ +import { useEffect, useState } from 'react' + +import { EthereumProvider } from '@cowprotocol/widget-lib' + +import { useAccount, useConfig } from 'wagmi' + +import EventEmitter from 'events' + +const onDisconnect = new EventEmitter() + +export function useProvider(): EthereumProvider | null { + const config = useConfig() + const { isDisconnected } = useAccount() + const [provider, setProvider] = useState(null) + + useEffect(() => { + return config.subscribe(({ connector }) => { + connector?.getProvider().then((provider) => { + setProvider(getEthereumProvider(provider, onDisconnect)) + }) + }) + }, [config]) + + useEffect(() => { + if (!provider || !isDisconnected) return + + onDisconnect.emit('disconnect') + }, [provider, isDisconnected]) + + return provider +} + +function getEthereumProvider(provider: EthereumProvider, onDisconnect: EventEmitter): EthereumProvider { + return { + request(...args) { + return provider.request(...args) + }, + enable(...args) { + return provider.enable(...args) + }, + on(event: string, args: unknown) { + if (event === 'disconnect' || event === 'close') { + return onDisconnect.on('disconnect', args) + } else { + return provider.on(event, args) + } + }, + } +} diff --git a/apps/widget-configurator/src/app/configurator/index.tsx b/apps/widget-configurator/src/app/configurator/index.tsx index b5a65f0946..33d4eb8296 100644 --- a/apps/widget-configurator/src/app/configurator/index.tsx +++ b/apps/widget-configurator/src/app/configurator/index.tsx @@ -4,6 +4,7 @@ import { cowSwapWidget, CowSwapWidgetParams, CowSwapWidgetSettings, + EthereumProvider, TradeType, UpdateWidgetCallback, } from '@cowprotocol/widget-lib' @@ -24,6 +25,7 @@ import { CurrentTradeTypeControl } from './controls/CurrentTradeTypeControl' import { NetworkControl, NetworkOption, NetworkOptions } from './controls/NetworkControl' import { ThemeControl } from './controls/ThemeControl' import { TradeModesControl } from './controls/TradeModesControl' +import { useProvider } from './hooks/useProvider' import { DrawerStyled, WrapperStyled, ContentStyled } from './styled' import { ColorModeContext } from '../../theme/ColorModeContext' @@ -62,7 +64,10 @@ export function Configurator({ title }: { title: string }) { const iframeContainerRef = useRef(null) const updateWidgetRef = useRef(null) - const [isDynamicHeightEnabled, setDynamicHeightEnabled] = useState(false) + const [isDynamicHeightEnabled, setDynamicHeightEnabled] = useState(true) + + const provider = useProvider() + const providerRef = useRef() useEffect(() => { const widgetContainer = iframeContainerRef.current @@ -74,6 +79,7 @@ export function Configurator({ title }: { title: string }) { metaData: { appKey: 'YOUR_APP_ID', url: 'https://YOUR_APP_URL' }, width: 400, height: 640, + provider: provider, } const settings: CowSwapWidgetSettings = { @@ -93,12 +99,18 @@ export function Configurator({ title }: { title: string }) { }, } + // Re-initialize widget when provider is changed + if (provider && providerRef.current !== provider) { + updateWidgetRef.current = null + } + if (updateWidgetRef.current) { updateWidgetRef.current(settings) } else { updateWidgetRef.current = cowSwapWidget(params, settings) } }, [ + provider, chainId, enabledTradeTypes, sellToken, @@ -110,6 +122,10 @@ export function Configurator({ title }: { title: string }) { isDynamicHeightEnabled, ]) + useEffect(() => { + providerRef.current = provider + }, [provider]) + const handleWidgetRefreshClick = () => { setMode('light') setSellToken(DEFAULT_STATE.sellToken) @@ -135,7 +151,7 @@ export function Configurator({ title }: { title: string }) { variant="contained" onClick={handleWidgetRefreshClick} > - Connect + General diff --git a/apps/widget-configurator/src/main.tsx b/apps/widget-configurator/src/main.tsx index 4048fcca5c..cba050ffbe 100644 --- a/apps/widget-configurator/src/main.tsx +++ b/apps/widget-configurator/src/main.tsx @@ -1,14 +1,24 @@ import { StrictMode, useMemo } from 'react' import { CssBaseline, GlobalStyles } from '@mui/material' +import Box from '@mui/material/Box' import { createTheme, PaletteOptions, ThemeProvider } from '@mui/material/styles' import { createRoot } from 'react-dom/client' +import { WagmiConfig } from 'wagmi' -import App from './app/app' +import { Configurator } from './app/configurator' import { ColorModeContext, globalStyles } from './theme/ColorModeContext' import { commonTypography } from './theme/commonTypography' import { useColorMode } from './theme/hooks/useColorMode' import { darkPalette, lightPalette } from './theme/paletteOptions' +import { wagmiConfig } from './wagmiConfig' + +const WrapperStyled = { + display: 'flex', + flexDirection: 'column', + height: '100%', + width: '100%', +} function Root() { const colorMode = useColorMode() @@ -24,13 +34,19 @@ function Root() { }, [mode]) return ( - - - - - - - + + + + + + + + + + + + + ) } diff --git a/apps/widget-configurator/src/wagmiConfig.ts b/apps/widget-configurator/src/wagmiConfig.ts new file mode 100644 index 0000000000..311d7ab718 --- /dev/null +++ b/apps/widget-configurator/src/wagmiConfig.ts @@ -0,0 +1,20 @@ +import { createWeb3Modal, defaultWagmiConfig } from '@web3modal/wagmi/react' +import { gnosis, goerli, mainnet } from 'wagmi/chains' + +const WC_PROJECT_ID = process.env.REACT_APP_WC_PROJECT_ID +const WC_DEFAULT_PROJECT_ID = 'a6cc11517a10f6f12953fd67b1eb67e7' + +const projectId = WC_PROJECT_ID || WC_DEFAULT_PROJECT_ID + +const metadata = { + name: 'CoW Widget Configurator', + description: 'Injectable UI of CoWSwap', + url: 'https://swap.cow.fi', + icons: ['https://swap.cow.fi/favicon.png'], +} + +const chains = [mainnet, gnosis, goerli] + +export const wagmiConfig = defaultWagmiConfig({ chains, projectId, metadata }) + +createWeb3Modal({ wagmiConfig, projectId, chains }) diff --git a/libs/wallet/src/web3-react/connectors/Injected/index.tsx b/libs/wallet/src/web3-react/connectors/Injected/index.tsx index 8481d7d1a4..a7b6640429 100644 --- a/libs/wallet/src/web3-react/connectors/Injected/index.tsx +++ b/libs/wallet/src/web3-react/connectors/Injected/index.tsx @@ -25,7 +25,9 @@ interface injectedWalletConstructorArgs { searchKeywords: string[] } -function parseChainId(chainId: string) { +function parseChainId(chainId: string | number): number { + if (typeof chainId === 'number') return chainId + if (!chainId.startsWith('0x')) { return Number(chainId) } @@ -50,7 +52,10 @@ export class InjectedWallet extends Connector { // Based on https://github.com/Uniswap/web3-react/blob/de97c00c378b7909dfbd8a06558ed12e1f796caa/packages/metamask/src/index.ts#L130 with some changes async activate(desiredChainIdOrChainParameters?: number | AddEthereumChainParameter): Promise { let cancelActivation: () => void - if (!this.provider?.isConnected?.()) cancelActivation = this.actions.startActivation() + + if (!this.provider?.isConnected?.()) { + cancelActivation = this.actions.startActivation() + } return this.isomorphicInitialize() .then(async () => { @@ -145,13 +150,16 @@ export class InjectedWallet extends Connector { this.actions.update({ chainId: parseChainId(chainId) }) }) - provider.on('disconnect', (error: ProviderRpcError): void => { + const onDisconnect = (error: ProviderRpcError): void => { // eslint-disable-next-line @typescript-eslint/no-floating-promises this.provider?.request({ method: 'PUBLIC_disconnectSite' }) this.actions.resetState() this.onError?.(error) - }) + } + + provider.on('disconnect', onDisconnect) + provider.on('close', onDisconnect) provider.on('chainChanged', (chainId: string): void => { this.actions.update({ chainId: parseChainId(chainId) }) diff --git a/libs/widget-lib/src/JsonRpcManager.ts b/libs/widget-lib/src/JsonRpcManager.ts index 640357cc93..79d846979a 100644 --- a/libs/widget-lib/src/JsonRpcManager.ts +++ b/libs/widget-lib/src/JsonRpcManager.ts @@ -2,7 +2,7 @@ import { EthereumProvider, JsonRpcRequest } from './types' const JSON_PRC_V = '2.0' const TARGET_ORIGIN = '*' -const EVENTS = ['connect', 'disconnect', 'chainChanged', 'accountsChanged'] +const EVENTS = ['connect', 'disconnect', 'close', 'chainChanged', 'accountsChanged'] export class JsonRpcManager { ethereumProvider: EthereumProvider | null = null diff --git a/package.json b/package.json index 6089c1c334..7e3c45ffd1 100644 --- a/package.json +++ b/package.json @@ -106,6 +106,7 @@ "@web3-react/network": "^8.2.3", "@web3-react/url": "^8.2.3", "@web3-react/walletconnect-v2": "^8.5.1", + "@web3modal/wagmi": "^3.2.0-alpha.1", "bnc-sdk": "^4.6.0", "buffer": "^6.0.3", "cids": "^1.0.0", @@ -175,6 +176,8 @@ "use-async-memo": "^1.2.4", "use-count-up": "^2.2.5", "use-resize-observer": "^8.0.0", + "viem": "1.16.6", + "wagmi": "^1.4.5", "wcag-contrast": "^3.0.0", "web-vitals": "^2.1.4" }, diff --git a/yarn.lock b/yarn.lock index 1dcdb33270..05658da08d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -26,6 +26,11 @@ resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.9.0.tgz#223572538f6bea336750039bb43a4016dcc8182d" integrity sha512-iowxq3U30sghZotgl4s/oJRci6WPBfNO5YYgk2cIOMCHr3LeGPcsZjCEr+33Q4N+oV3OABDAtA+pyvWjbvBifQ== +"@adraffy/ens-normalize@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.9.4.tgz#aae21cb858bbb0411949d5b7b3051f4209043f62" + integrity sha512-UK0bHA7hh9cR39V+4gl2/NnBBjoXIxkuWAPCaY4X7fbH4L/azIi7ilWOCjMUYfpJgraLUAqkRi2BqrjME8Rynw== + "@alloc/quick-lru@^5.2.0": version "5.2.0" resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" @@ -385,6 +390,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== +"@babel/parser@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" @@ -1310,6 +1320,29 @@ stream-browserify "^3.0.0" util "^0.12.4" +"@coinbase/wallet-sdk@^3.6.6": + version "3.7.2" + resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.7.2.tgz#7a89bd9e3a06a1f26d4480d8642af33fb0c7e3aa" + integrity sha512-lIGvXMsgpsQWci/XOMQIJ2nIZ8JUy/L+bvC0wkRaYarr0YylwpXrJ2gRM3hCXPS477pkyO7N/kSiAoRgEXUdJQ== + dependencies: + "@metamask/safe-event-emitter" "2.0.0" + "@solana/web3.js" "^1.70.1" + bind-decorator "^1.0.11" + bn.js "^5.1.1" + buffer "^6.0.3" + clsx "^1.1.0" + eth-block-tracker "6.1.0" + eth-json-rpc-filters "5.1.0" + eth-rpc-errors "4.0.2" + json-rpc-engine "6.1.0" + keccak "^3.0.1" + preact "^10.5.9" + qs "^6.10.3" + rxjs "^6.6.3" + sha.js "^2.4.11" + stream-browserify "^3.0.0" + util "^0.12.4" + "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" @@ -3231,6 +3264,11 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/connect-kit-loader/-/connect-kit-loader-1.1.0.tgz#10343b78ef13436818bf3453568a559c0eeb9d48" integrity sha512-HUy12FEczoWY2FPubnsm1uOA8tkVWc0j90i47suThV3C9NL2xx69ZAIEU3Ytzs2bwLek9S1Q2S1VQJvA+3Ygkg== +"@ledgerhq/connect-kit-loader@^1.1.0": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/connect-kit-loader/-/connect-kit-loader-1.1.2.tgz#d550e3c1f046e4c796f32a75324b03606b7e226a" + integrity sha512-mscwGroSJQrCTjtNGBu+18FQbZYA4+q6Tyx6K7CXHl6AwgZKbWfZYdgP2F+fyZcRUdGRsMX8QtvU61VcGGtO1A== + "@leichtgewicht/ip-codec@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" @@ -3351,6 +3389,11 @@ resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz#64df34e2f12e68e78ac57e571d25ec07fa460ca9" integrity sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ== +"@lit-labs/ssr-dom-shim@^1.1.2-pre.0": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.2.tgz#d693d972974a354034454ec1317eb6afd0b00312" + integrity sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g== + "@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": version "1.6.2" resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.2.tgz#c256690f82f2d7d0ffb0b1cdf68dcb1ec86cea28" @@ -3358,6 +3401,13 @@ dependencies: "@lit-labs/ssr-dom-shim" "^1.0.0" +"@lit/reactive-element@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-2.0.0.tgz#da14a256ac5533873b935840f306d572bac4a2ab" + integrity sha512-wn+2+uDcs62ROBmVAwssO4x5xue/uKD3MGGZOXL2sMxReTRIT0JXKyMXeu7gh0aJ4IJNEIG/3aOnUaQvM7BMzQ== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.1.2-pre.0" + "@messageformat/parser@^5.0.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@messageformat/parser/-/parser-5.1.0.tgz#05e4851c782d633ad735791dd0a68ee65d2a7201" @@ -3684,6 +3734,13 @@ dependencies: "@noble/hashes" "1.3.1" +"@noble/curves@1.2.0", "@noble/curves@~1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== + dependencies: + "@noble/hashes" "1.3.2" + "@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" @@ -3699,6 +3756,11 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== +"@noble/hashes@1.3.2", "@noble/hashes@~1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + "@noble/secp256k1@1.7.1", "@noble/secp256k1@~1.7.0": version "1.7.1" resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" @@ -4649,6 +4711,11 @@ resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== +"@scure/base@~1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f" + integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q== + "@scure/bip32@1.1.5": version "1.1.5" resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.1.5.tgz#d2ccae16dcc2e75bc1d75f5ef3c66a338d1ba300" @@ -4676,6 +4743,15 @@ "@noble/hashes" "~1.3.1" "@scure/base" "~1.1.0" +"@scure/bip32@1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.2.tgz#90e78c027d5e30f0b22c1f8d50ff12f3fb7559f8" + integrity sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA== + dependencies: + "@noble/curves" "~1.2.0" + "@noble/hashes" "~1.3.2" + "@scure/base" "~1.1.2" + "@scure/bip39@1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.1.tgz#b54557b2e86214319405db819c4b6a370cf340c5" @@ -5594,6 +5670,40 @@ dependencies: defer-to-connect "^2.0.1" +"@tanstack/query-core@4.36.1": + version "4.36.1" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.36.1.tgz#79f8c1a539d47c83104210be2388813a7af2e524" + integrity sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA== + +"@tanstack/query-persist-client-core@4.36.1": + version "4.36.1" + resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.36.1.tgz#4d7284994bdc2a15fe6cbe7161be21e03033fe12" + integrity sha512-eocgCeI7D7TRv1IUUBMfVwOI0wdSmMkBIbkKhqEdTrnUHUQEeOaYac8oeZk2cumAWJdycu6P/wB+WqGynTnzXg== + dependencies: + "@tanstack/query-core" "4.36.1" + +"@tanstack/query-sync-storage-persister@^4.27.1": + version "4.36.1" + resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.36.1.tgz#bf5d800d54416bc88f150792a53e25ed8aa8769f" + integrity sha512-yMEt5hWe2+1eclf1agMtXHnPIkxEida0lYWkfdhR8U6KXk/lO4Vca6piJmhKI85t0NHlx3l/z6zX+t/Fn5O9NA== + dependencies: + "@tanstack/query-persist-client-core" "4.36.1" + +"@tanstack/react-query-persist-client@^4.28.0": + version "4.36.1" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.36.1.tgz#d96fa44cdc661534379623423da596a7b5dc13a7" + integrity sha512-32I5b9aAu4NCiXZ7Te/KEQLfHbYeTNriVPrKYcvEThnZ9tlW01vLcSoxpUIsMYRsembvJUUAkzYBAiZHLOd6pQ== + dependencies: + "@tanstack/query-persist-client-core" "4.36.1" + +"@tanstack/react-query@^4.28.0": + version "4.36.1" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.36.1.tgz#acb589fab4085060e2e78013164868c9c785e5d2" + integrity sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw== + dependencies: + "@tanstack/query-core" "4.36.1" + use-sync-external-store "^1.2.0" + "@testing-library/dom@^9.0.0": version "9.3.1" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.1.tgz#8094f560e9389fb973fe957af41bf766937a9ee9" @@ -7104,11 +7214,127 @@ loupe "^2.3.6" pretty-format "^29.5.0" +"@vue/compiler-core@3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.6.tgz#ffc14517e0a7269983b9a93994df9669e9e03506" + integrity sha512-2JNjemwaNwf+MkkatATVZi7oAH1Hx0B04DdPH3ZoZ8vKC1xZVP7nl4HIsk8XYd3r+/52sqqoz9TWzYc3yE9dqA== + dependencies: + "@babel/parser" "^7.23.0" + "@vue/shared" "3.3.6" + estree-walker "^2.0.2" + source-map-js "^1.0.2" + +"@vue/compiler-dom@3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.6.tgz#683420cc201c3a48cb0841467bf19a433ffbede6" + integrity sha512-1MxXcJYMHiTPexjLAJUkNs/Tw2eDf2tY3a0rL+LfuWyiKN2s6jvSwywH3PWD8bKICjfebX3GWx2Os8jkRDq3Ng== + dependencies: + "@vue/compiler-core" "3.3.6" + "@vue/shared" "3.3.6" + +"@vue/compiler-sfc@3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.6.tgz#00dce2e7aa569101009c5eedec4a69e2f831d8cc" + integrity sha512-/Kms6du2h1VrXFreuZmlvQej8B1zenBqIohP0690IUBkJjsFvJxY0crcvVRJ0UhMgSR9dewB+khdR1DfbpArJA== + dependencies: + "@babel/parser" "^7.23.0" + "@vue/compiler-core" "3.3.6" + "@vue/compiler-dom" "3.3.6" + "@vue/compiler-ssr" "3.3.6" + "@vue/reactivity-transform" "3.3.6" + "@vue/shared" "3.3.6" + estree-walker "^2.0.2" + magic-string "^0.30.5" + postcss "^8.4.31" + source-map-js "^1.0.2" + +"@vue/compiler-ssr@3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.6.tgz#d767602563f2596a03b44b3dea4a32c715f64915" + integrity sha512-QTIHAfDCHhjXlYGkUg5KH7YwYtdUM1vcFl/FxFDlD6d0nXAmnjizka3HITp8DGudzHndv2PjKVS44vqqy0vP4w== + dependencies: + "@vue/compiler-dom" "3.3.6" + "@vue/shared" "3.3.6" + +"@vue/reactivity-transform@3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.6.tgz#29d615455992d253b8f21b47d084445b5d3f916d" + integrity sha512-RlJl4dHfeO7EuzU1iJOsrlqWyJfHTkJbvYz/IOJWqu8dlCNWtxWX377WI0VsbAgBizjwD+3ZjdnvSyyFW1YVng== + dependencies: + "@babel/parser" "^7.23.0" + "@vue/compiler-core" "3.3.6" + "@vue/shared" "3.3.6" + estree-walker "^2.0.2" + magic-string "^0.30.5" + +"@vue/reactivity@3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.6.tgz#436bd2997673ae2a7b6f4e1c376163f0445f9a5e" + integrity sha512-gtChAumfQz5lSy5jZXfyXbKrIYPf9XEOrIr6rxwVyeWVjFhJwmwPLtV6Yis+M9onzX++I5AVE9j+iPH60U+B8Q== + dependencies: + "@vue/shared" "3.3.6" + +"@vue/runtime-core@3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.6.tgz#749ff325c95bb3a690c512da0215339fd241872c" + integrity sha512-qp7HTP1iw1UW2ZGJ8L3zpqlngrBKvLsDAcq5lA6JvEXHmpoEmjKju7ahM9W2p/h51h0OT5F2fGlP/gMhHOmbUA== + dependencies: + "@vue/reactivity" "3.3.6" + "@vue/shared" "3.3.6" + +"@vue/runtime-dom@3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.6.tgz#30729eac969467c6be6723677d14b873918a467c" + integrity sha512-AoX3Cp8NqMXjLbIG9YR6n/pPLWE9TiDdk6wTJHFnl2GpHzDFH1HLBC9wlqqQ7RlnvN3bVLpzPGAAH00SAtOxHg== + dependencies: + "@vue/runtime-core" "3.3.6" + "@vue/shared" "3.3.6" + csstype "^3.1.2" + +"@vue/server-renderer@3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.6.tgz#b8a4d7254b67a5cc663f2b9e16cde019483620c9" + integrity sha512-kgLoN43W4ERdZ6dpyy+gnk2ZHtcOaIr5Uc/WUP5DRwutgvluzu2pudsZGoD2b7AEJHByUVMa9k6Sho5lLRCykw== + dependencies: + "@vue/compiler-ssr" "3.3.6" + "@vue/shared" "3.3.6" + +"@vue/shared@3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.6.tgz#bd97c22972c6519250069297d01cbed077054b7e" + integrity sha512-Xno5pEqg8SVhomD0kTSmfh30ZEmV/+jZtyh39q6QflrjdJCXah5lrnOLi9KB6a5k5aAHXMXjoMnxlzUkCNfWLQ== + "@wagmi/chains@1.6.0": version "1.6.0" resolved "https://registry.yarnpkg.com/@wagmi/chains/-/chains-1.6.0.tgz#eb992ad28dbaaab729b5bcab3e5b461e8a035656" integrity sha512-5FRlVxse5P4ZaHG3GTvxwVANSmYJas1eQrTBHhjxVtqXoorm0aLmCHbhmN8Xo1yu09PaWKlleEvfE98yH4AgIw== +"@wagmi/connectors@3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-3.1.3.tgz#112aad63a8042ce4a5a3dc4db9eaa4da0fbcf0fc" + integrity sha512-UgwsQKQDFObJVJMf9pDfFoXTv710o4zrTHyhIWKBTMMkLpCMsMxN5+ZaDhBYt/BgoRinfRYQo8uwuwLhxE6Log== + dependencies: + "@coinbase/wallet-sdk" "^3.6.6" + "@ledgerhq/connect-kit-loader" "^1.1.0" + "@safe-global/safe-apps-provider" "^0.17.1" + "@safe-global/safe-apps-sdk" "^8.0.0" + "@walletconnect/ethereum-provider" "2.10.2" + "@walletconnect/legacy-provider" "^2.0.0" + "@walletconnect/modal" "2.6.2" + "@walletconnect/utils" "2.10.2" + abitype "0.8.7" + eventemitter3 "^4.0.7" + +"@wagmi/core@1.4.5": + version "1.4.5" + resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-1.4.5.tgz#bab215bfc1e028bc720b772d8d69dd12ae0c0ebf" + integrity sha512-N9luRb1Uk4tBN9kaYcQSWKE9AsRt/rvZaFt5IZech4JPzNN2sQlfhKd9GEjOXYRDqEPHdDvos7qyBKiDNTz4GA== + dependencies: + "@wagmi/connectors" "3.1.3" + abitype "0.8.7" + eventemitter3 "^4.0.7" + zustand "^4.3.1" + "@walletconnect/core@2.10.2": version "2.10.2" resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.10.2.tgz#a1bf6e3e87b33f9df795ce0970d8ddd400fdc8a3" @@ -7131,6 +7357,27 @@ lodash.isequal "4.5.0" uint8arrays "^3.1.0" +"@walletconnect/crypto@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.3.tgz#7b8dd4d7e2884fe3543c7c07aea425eef5ef9dd4" + integrity sha512-+2jdORD7XQs76I2Odgr3wwrtyuLUXD/kprNVsjWRhhhdO9Mt6WqVzOPu0/t7OHSmgal8k7SoBQzUc5hu/8zL/g== + dependencies: + "@walletconnect/encoding" "^1.0.2" + "@walletconnect/environment" "^1.0.1" + "@walletconnect/randombytes" "^1.0.3" + aes-js "^3.1.2" + hash.js "^1.1.7" + tslib "1.14.1" + +"@walletconnect/encoding@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.2.tgz#cb3942ad038d6a6bf01158f66773062dd25724da" + integrity sha512-CrwSBrjqJ7rpGQcTL3kU+Ief+Bcuu9PH6JLOb+wM6NITX1GTxR/MfNwnQfhLKK6xpRAyj2/nM04OOH6wS8Imag== + dependencies: + is-typedarray "1.0.0" + tslib "1.14.1" + typedarray-to-buffer "3.1.5" + "@walletconnect/environment@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.1.tgz#1d7f82f0009ab821a2ba5ad5e5a7b8ae3b214cd7" @@ -7138,7 +7385,7 @@ dependencies: tslib "1.14.1" -"@walletconnect/ethereum-provider@^2.10.1", "@walletconnect/ethereum-provider@^2.10.2": +"@walletconnect/ethereum-provider@2.10.2", "@walletconnect/ethereum-provider@^2.10.1", "@walletconnect/ethereum-provider@^2.10.2": version "2.10.2" resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.10.2.tgz#d5aca538fbcbbf7dd771bceb2430de30f06411de" integrity sha512-QMYFZ6+rVq2CJLdIPdKK0j1Qm66UA27oQU5V2SrL8EVwl7wFfm0Bq7fnL+qAWeDpn612dNeNErpk/ROa1zWlWg== @@ -7170,7 +7417,7 @@ "@walletconnect/time" "^1.0.2" tslib "1.14.1" -"@walletconnect/jsonrpc-http-connection@^1.0.7": +"@walletconnect/jsonrpc-http-connection@^1.0.4", "@walletconnect/jsonrpc-http-connection@^1.0.7": version "1.0.7" resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.7.tgz#a6973569b8854c22da707a759d241e4f5c2d5a98" integrity sha512-qlfh8fCfu8LOM9JRR9KE0s0wxP6ZG9/Jom8M0qsoIQeKF3Ni0FyV4V1qy/cc7nfI46SLQLSl4tgWSfLiE1swyQ== @@ -7180,7 +7427,7 @@ cross-fetch "^3.1.4" tslib "1.14.1" -"@walletconnect/jsonrpc-provider@1.0.13", "@walletconnect/jsonrpc-provider@^1.0.13": +"@walletconnect/jsonrpc-provider@1.0.13", "@walletconnect/jsonrpc-provider@^1.0.13", "@walletconnect/jsonrpc-provider@^1.0.6": version "1.0.13" resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.13.tgz#9a74da648d015e1fffc745f0c7d629457f53648b" integrity sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g== @@ -7197,7 +7444,7 @@ keyvaluestorage-interface "^1.0.0" tslib "1.14.1" -"@walletconnect/jsonrpc-utils@1.0.8", "@walletconnect/jsonrpc-utils@^1.0.6", "@walletconnect/jsonrpc-utils@^1.0.7", "@walletconnect/jsonrpc-utils@^1.0.8": +"@walletconnect/jsonrpc-utils@1.0.8", "@walletconnect/jsonrpc-utils@^1.0.4", "@walletconnect/jsonrpc-utils@^1.0.6", "@walletconnect/jsonrpc-utils@^1.0.7", "@walletconnect/jsonrpc-utils@^1.0.8": version "1.0.8" resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz#82d0cc6a5d6ff0ecc277cb35f71402c91ad48d72" integrity sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw== @@ -7225,6 +7472,66 @@ safe-json-utils "^1.1.1" tslib "1.14.1" +"@walletconnect/legacy-client@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/legacy-client/-/legacy-client-2.0.0.tgz#9f2c09694789fd4b6c5d68d6423b44bac55aed30" + integrity sha512-v5L7rYk9loVnfvUf0mF+76bUPFaU5/Vh7mzL6/950CD/yoGdzYZ3Kj+L7mkC6HPMEGeQsBP1+sqBuiVGZ/aODA== + dependencies: + "@walletconnect/crypto" "^1.0.3" + "@walletconnect/encoding" "^1.0.2" + "@walletconnect/jsonrpc-utils" "^1.0.4" + "@walletconnect/legacy-types" "^2.0.0" + "@walletconnect/legacy-utils" "^2.0.0" + "@walletconnect/safe-json" "^1.0.1" + "@walletconnect/window-getters" "^1.0.1" + "@walletconnect/window-metadata" "^1.0.1" + detect-browser "^5.3.0" + query-string "^6.13.5" + +"@walletconnect/legacy-modal@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/legacy-modal/-/legacy-modal-2.0.0.tgz#d0fab01a1337a8f5d88cdb1430cbef2d46072bbf" + integrity sha512-jckNd8lMhm4X7dX9TDdxM3bXKJnaqkRs6K2Mo5j6GmbIF9Eyx40jZ5+q457RVxvM6ciZEDT5s1wBHWdWoOo+9Q== + dependencies: + "@walletconnect/legacy-types" "^2.0.0" + "@walletconnect/legacy-utils" "^2.0.0" + copy-to-clipboard "^3.3.3" + preact "^10.12.0" + qrcode "^1.5.1" + +"@walletconnect/legacy-provider@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/legacy-provider/-/legacy-provider-2.0.0.tgz#08e2db1e4c234743b2f30422bc8100bc42e8fc44" + integrity sha512-A8xPebMI1A+50HbWwTpFCbwP7G+1NGKdTKyg8BUUg3h3Y9JucpC1W6w/x0v1Xw7qFEqQnz74LoIN/A3ytH9xrQ== + dependencies: + "@walletconnect/jsonrpc-http-connection" "^1.0.4" + "@walletconnect/jsonrpc-provider" "^1.0.6" + "@walletconnect/legacy-client" "^2.0.0" + "@walletconnect/legacy-modal" "^2.0.0" + "@walletconnect/legacy-types" "^2.0.0" + "@walletconnect/legacy-utils" "^2.0.0" + +"@walletconnect/legacy-types@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/legacy-types/-/legacy-types-2.0.0.tgz#224278ae2874c6a2ca805c2d1d062a511dcf7227" + integrity sha512-sOVrA7HUdbI1OwKyPOQU0/DdvTSVFlsXWpAk2K2WvP2erTkBWPMTJq6cv2BmKdoJ3p6gLApT7sd+jHi3OF71uw== + dependencies: + "@walletconnect/jsonrpc-types" "^1.0.2" + +"@walletconnect/legacy-utils@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/legacy-utils/-/legacy-utils-2.0.0.tgz#e3a637c00783f9cd2ae139b640f82223ab78ed9d" + integrity sha512-CPWxSVVXw0kgNCxvU126g4GiV3mzXmC8IPJ15twE46aJ1FX+RHEIfAzFMFz2F2+fEhBxL63A7dwNQKDXorRPcQ== + dependencies: + "@walletconnect/encoding" "^1.0.2" + "@walletconnect/jsonrpc-utils" "^1.0.4" + "@walletconnect/legacy-types" "^2.0.0" + "@walletconnect/safe-json" "^1.0.1" + "@walletconnect/window-getters" "^1.0.1" + "@walletconnect/window-metadata" "^1.0.1" + detect-browser "^5.3.0" + query-string "^6.13.5" + "@walletconnect/logger@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@walletconnect/logger/-/logger-2.0.1.tgz#7f489b96e9a1ff6bf3e58f0fbd6d69718bf844a8" @@ -7250,7 +7557,7 @@ motion "10.16.2" qrcode "1.5.3" -"@walletconnect/modal@^2.6.2": +"@walletconnect/modal@2.6.2", "@walletconnect/modal@^2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.6.2.tgz#4b534a836f5039eeb3268b80be7217a94dd12651" integrity sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA== @@ -7258,6 +7565,16 @@ "@walletconnect/modal-core" "2.6.2" "@walletconnect/modal-ui" "2.6.2" +"@walletconnect/randombytes@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.3.tgz#e795e4918367fd1e6a2215e075e64ab93e23985b" + integrity sha512-35lpzxcHFbTN3ABefC9W+uBpNZl1GC4Wpx0ed30gibfO/y9oLdy1NznbV96HARQKSBV9J9M/rrtIvf6a23jfYw== + dependencies: + "@walletconnect/encoding" "^1.0.2" + "@walletconnect/environment" "^1.0.1" + randombytes "^2.1.0" + tslib "1.14.1" + "@walletconnect/relay-api@^1.0.9": version "1.0.9" resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.9.tgz#f8c2c3993dddaa9f33ed42197fc9bfebd790ecaf" @@ -7461,6 +7778,74 @@ "@web3-react/types" "^8.2.3" eventemitter3 "^4.0.7" +"@web3modal/core@3.2.0-f9b3ed8": + version "3.2.0-f9b3ed8" + resolved "https://registry.yarnpkg.com/@web3modal/core/-/core-3.2.0-f9b3ed8.tgz#d0951818b33de5dc40f593719fe16ae651998d4c" + integrity sha512-+r0HLdjECFg/XTxXiWIpE+ULhgvLJP+jGgMWp/otDBw2lOTSJmN85wT4hCF4D3T5LbVXJiP/tOMGk2bBaMOcKQ== + dependencies: + valtio "1.11.2" + +"@web3modal/polyfills@3.2.0-f9b3ed8": + version "3.2.0-f9b3ed8" + resolved "https://registry.yarnpkg.com/@web3modal/polyfills/-/polyfills-3.2.0-f9b3ed8.tgz#6b9e96b054560c5693e4691c9348614f9c928b3f" + integrity sha512-Aph98RuFSWgs32KJNxZ1aK7Ah1nGoWiri8XZxiTL8XRhIo19S56RV6riCEHJqXnfrHhgu/u6eC39YiAJf4CKYg== + dependencies: + buffer "6.0.3" + +"@web3modal/scaffold-react@3.2.0-f9b3ed8": + version "3.2.0-f9b3ed8" + resolved "https://registry.yarnpkg.com/@web3modal/scaffold-react/-/scaffold-react-3.2.0-f9b3ed8.tgz#dda4d84320a36afc0d8df63f27d3de81aafff310" + integrity sha512-xWTxR2CVJgkZcNJ6NvbFyzwnIeOkMBF2lOCthmtjoZPIasIMs8RFsqqzdIACON2s7/FifuAqzwHbfHqeM+G9gw== + dependencies: + "@web3modal/scaffold" "3.2.0-f9b3ed8" + +"@web3modal/scaffold-vue@3.2.0-f9b3ed8": + version "3.2.0-f9b3ed8" + resolved "https://registry.yarnpkg.com/@web3modal/scaffold-vue/-/scaffold-vue-3.2.0-f9b3ed8.tgz#2eb1dc0c050d32617bfc8170a232ffe1e52d6194" + integrity sha512-yAtkqvnZUUjsFjIKaojcF4Txq4YJvsAfYwG1llcjg6FKEXCZsh0S719P8IbtfgyNbtEKOZisaiugr5SHILxJyg== + dependencies: + "@web3modal/scaffold" "3.2.0-f9b3ed8" + +"@web3modal/scaffold@3.2.0-f9b3ed8": + version "3.2.0-f9b3ed8" + resolved "https://registry.yarnpkg.com/@web3modal/scaffold/-/scaffold-3.2.0-f9b3ed8.tgz#087041fc53e1676ce60aa2fcb88e93abc49d325b" + integrity sha512-IQ1rxaCTMSJXp/QT8eHdjS0XYSH8+JE2TWzwaewU41723lciKRqoigUzVKF66nr868MPmKG5HLr/Sx4YVUntVg== + dependencies: + "@web3modal/core" "3.2.0-f9b3ed8" + "@web3modal/ui" "3.2.0-f9b3ed8" + lit "3.0.0" + +"@web3modal/ui@3.2.0-f9b3ed8": + version "3.2.0-f9b3ed8" + resolved "https://registry.yarnpkg.com/@web3modal/ui/-/ui-3.2.0-f9b3ed8.tgz#bd471a7a1a20b0abec8322c92d16e7f5d811ba74" + integrity sha512-jCdQ+G0q96okRVJGC98AbXGFQkrTetsyZzuDdHzkkWsGsDqFVJNPA8iZs3AEWQKyUyPuPALpLoplQD4v/h5NMg== + dependencies: + lit "3.0.0" + qrcode "1.5.3" + +"@web3modal/utils@3.2.0-f9b3ed8": + version "3.2.0-f9b3ed8" + resolved "https://registry.yarnpkg.com/@web3modal/utils/-/utils-3.2.0-f9b3ed8.tgz#84d587107665f507894a057096c52357a1a63998" + integrity sha512-x9WdTJtLkO//6xYIdTyMDb8gNhUB9OMq4CrSMFMQRg5bSyNij2XcbvFyION0cSsZHlQVXYt5PaN9Sa74h0UZVQ== + dependencies: + "@web3modal/polyfills" "3.2.0-f9b3ed8" + "@web3modal/scaffold" "3.2.0-f9b3ed8" + +"@web3modal/wagmi@^3.2.0-alpha.1": + version "3.2.0-f9b3ed8" + resolved "https://registry.yarnpkg.com/@web3modal/wagmi/-/wagmi-3.2.0-f9b3ed8.tgz#126cb6f229df6f9853454ad63115e56fcc0c987a" + integrity sha512-+juOHSHwrllgk7NeEJSW/vB5vrYYVF2E1AxAtEfTLG0doDZEdQNQhYRbKDx9c1cgPRfb7a0MTW8Pwx5Kk3IVoQ== + dependencies: + "@web3modal/polyfills" "3.2.0-f9b3ed8" + "@web3modal/scaffold" "3.2.0-f9b3ed8" + "@web3modal/scaffold-react" "3.2.0-f9b3ed8" + "@web3modal/scaffold-vue" "3.2.0-f9b3ed8" + "@web3modal/utils" "3.2.0-f9b3ed8" + optionalDependencies: + react ">=17" + react-dom ">=17" + vue ">=3" + "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" @@ -7633,11 +8018,21 @@ abab@^2.0.3, abab@^2.0.5, abab@^2.0.6: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== +abitype@0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.8.7.tgz#e4b3f051febd08111f486c0cc6a98fa72d033622" + integrity sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w== + abitype@0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.9.3.tgz#294d25288ee683d72baf4e1fed757034e3c8c277" integrity sha512-dz4qCQLurx97FQhnb/EIYTk/ldQ+oafEDUqC0VVIeQS1Q48/YWt/9YNfMmp9SLFqN41ktxny3c8aYxHjmFIB/w== +abitype@0.9.8: + version "0.9.8" + resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.9.8.tgz#1f120b6b717459deafd213dfbf3a3dd1bf10ae8c" + integrity sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ== + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -7722,6 +8117,11 @@ aes-js@3.0.0: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== +aes-js@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" + integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== + agent-base@6, agent-base@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -9803,7 +10203,7 @@ cookie@^0.4.1: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== -copy-to-clipboard@^3.2.0: +copy-to-clipboard@^3.2.0, copy-to-clipboard@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== @@ -10839,7 +11239,7 @@ destroy@1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -detect-browser@5.3.0: +detect-browser@5.3.0, detect-browser@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== @@ -14648,7 +15048,7 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9: dependencies: which-typed-array "^1.1.11" -is-typedarray@^1.0.0, is-typedarray@~1.0.0: +is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== @@ -14765,6 +15165,11 @@ isomorphic-ws@^4.0.1: resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== +isows@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.3.tgz#93c1cf0575daf56e7120bab5c8c448b0809d0d74" + integrity sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg== + isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -16365,6 +16770,15 @@ lit-element@^3.3.0: "@lit/reactive-element" "^1.3.0" lit-html "^2.7.0" +lit-element@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-4.0.0.tgz#8343891bc9159a5fcb7f534914b37f2c0161e036" + integrity sha512-N6+f7XgusURHl69DUZU6sTBGlIN+9Ixfs3ykkNDfgfTkDYGGOWwHAYBhDqVswnFGyWgQYR2KiSpu4J76Kccs/A== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.1.2-pre.0" + "@lit/reactive-element" "^2.0.0" + lit-html "^3.0.0" + lit-html@^2.7.0: version "2.7.5" resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.7.5.tgz#0c1b9d381abe20c01475ae53ea4b07bf4c923eb8" @@ -16379,6 +16793,13 @@ lit-html@^2.8.0: dependencies: "@types/trusted-types" "^2.0.2" +lit-html@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-3.0.0.tgz#77d6776ee488642c74c5575315ef81aa09d24ea9" + integrity sha512-DNJIE8dNY0dQF2Gs0sdMNUppMQT2/CvV4OVnSdg7BXAsGqkVwsE5bqQ04POfkYH5dBIuGnJYdFz5fYYyNnOxiA== + dependencies: + "@types/trusted-types" "^2.0.2" + lit@2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/lit/-/lit-2.8.0.tgz#4d838ae03059bf9cafa06e5c61d8acc0081e974e" @@ -16388,6 +16809,15 @@ lit@2.8.0: lit-element "^3.3.0" lit-html "^2.8.0" +lit@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lit/-/lit-3.0.0.tgz#204bd65935892a73670471e893ee8ca55d2f9a3b" + integrity sha512-nQ0teRzU1Kdj++VdmttS2WvIen8M79wChJ6guRKIIym2M3Ansg3Adj9O6yuQh2IpjxiUXlNuS81WKlQ4iL3BmA== + dependencies: + "@lit/reactive-element" "^2.0.0" + lit-element "^4.0.0" + lit-html "^3.0.0" + load-bmfont@^1.3.1: version "1.4.1" resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz#c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9" @@ -16712,6 +17142,13 @@ magic-string@^0.30.0: dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" +magic-string@^0.30.5: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -19133,7 +19570,7 @@ postcss@^8.3.5, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.26, postcss@^8.4. picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^8.4.27: +postcss@^8.4.27, postcss@^8.4.31: version "8.4.31" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== @@ -19142,6 +19579,11 @@ postcss@^8.4.27: picocolors "^1.0.0" source-map-js "^1.0.2" +preact@^10.12.0: + version "10.18.1" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.18.1.tgz#3b84bb305f0b05f4ad5784b981d15fcec4e105da" + integrity sha512-mKUD7RRkQQM6s7Rkmi7IFkoEHjuFqRQUaXamO61E6Nn7vqF/bo7EZCmSyrUnp2UWHw0O7XjZ2eeXis+m7tf4lg== + preact@^10.5.9: version "10.16.0" resolved "https://registry.yarnpkg.com/preact/-/preact-10.16.0.tgz#68a06d70b191b8a313ea722d61e09c6b2a79a37e" @@ -19407,7 +19849,7 @@ q@^1.1.2, q@^1.5.1: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== -qrcode@1.5.3: +qrcode@1.5.3, qrcode@^1.5.1: version "1.5.3" resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.3.tgz#03afa80912c0dccf12bc93f615a535aad1066170" integrity sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg== @@ -19462,6 +19904,16 @@ query-string@^5.0.1: object-assign "^4.1.0" strict-uri-encode "^1.0.0" +query-string@^6.13.5: + version "6.14.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" + integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== + dependencies: + decode-uri-component "^0.2.0" + filter-obj "^1.1.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + querystring-es3@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -19710,7 +20162,7 @@ react-device-detect@^1.6.2: dependencies: ua-parser-js "^0.7.24" -react-dom@18.2.0: +react-dom@18.2.0, react-dom@>=17: version "18.2.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== @@ -19983,7 +20435,7 @@ react-window@^1.8.5: "@babel/runtime" "^7.0.0" memoize-one ">=3.1.1 <6" -react@18.2.0: +react@18.2.0, react@>=17: version "18.2.0" resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== @@ -22521,7 +22973,7 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typedarray-to-buffer@^3.1.5: +typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== @@ -23004,6 +23456,20 @@ vfile@^4.0.0: unist-util-stringify-position "^2.0.0" vfile-message "^2.0.0" +viem@1.16.6: + version "1.16.6" + resolved "https://registry.yarnpkg.com/viem/-/viem-1.16.6.tgz#78118c9269506a59e2bc4deab13f1646e113d3fc" + integrity sha512-jcWcFQ+xzIfDwexwPJRvCuCRJKEkK9iHTStG7mpU5MmuSBpACs4nATBDyXNFtUiyYTFzLlVEwWkt68K0nCSImg== + dependencies: + "@adraffy/ens-normalize" "1.9.4" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@scure/bip32" "1.3.2" + "@scure/bip39" "1.2.1" + abitype "0.9.8" + isows "1.0.3" + ws "8.13.0" + viem@^1.0.0: version "1.4.2" resolved "https://registry.yarnpkg.com/viem/-/viem-1.4.2.tgz#81aaff0d8ee0d39bb2994ffa6c89bf7ee4fbcde6" @@ -23154,6 +23620,17 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== +vue@>=3: + version "3.3.6" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.6.tgz#bc1b129a73705db16da90aa1edde539d7401ca9d" + integrity sha512-jJIDETeWJnoY+gfn4ZtMPMS5KtbP4ax+CT4dcQFhTnWEk8xMupFyQ0JxL28nvT/M4+p4a0ptxaV2WY0LiIxvRg== + dependencies: + "@vue/compiler-dom" "3.3.6" + "@vue/compiler-sfc" "3.3.6" + "@vue/runtime-dom" "3.3.6" + "@vue/server-renderer" "3.3.6" + "@vue/shared" "3.3.6" + w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -23175,6 +23652,18 @@ w3c-xmlserializer@^4.0.0: dependencies: xml-name-validator "^4.0.0" +wagmi@^1.4.5: + version "1.4.5" + resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-1.4.5.tgz#65ccf763e17892871196b6e5b188e29f0b08d3df" + integrity sha512-Ph62E6cO5n2Z8Z5LTyZrkaNprxTsbC4w0qZJT4OJdXrEELziI8z/b4FO6amVFXdu2rDp/wpvF56e4mhKC8/Kdw== + dependencies: + "@tanstack/query-sync-storage-persister" "^4.27.1" + "@tanstack/react-query" "^4.28.0" + "@tanstack/react-query-persist-client" "^4.28.0" + "@wagmi/core" "1.4.5" + abitype "0.8.7" + use-sync-external-store "^1.2.0" + walker@^1.0.7, walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" @@ -24159,6 +24648,11 @@ ws@8.12.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== +ws@8.13.0, ws@^8.11.0, ws@^8.13.0, ws@^8.5.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== + ws@^3.0.0: version "3.3.3" resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" @@ -24168,11 +24662,6 @@ ws@^3.0.0: safe-buffer "~5.1.0" ultron "~1.1.0" -ws@^8.11.0, ws@^8.13.0, ws@^8.5.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== - xdg-basedir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" @@ -24394,3 +24883,10 @@ zustand@4.4.0: integrity sha512-2dq6wq4dSxbiPTamGar0NlIG/av0wpyWZJGeQYtUOLegIUvhM2Bf86ekPlmgpUtS5uR7HyetSiktYrGsdsyZgQ== dependencies: use-sync-external-store "1.2.0" + +zustand@^4.3.1: + version "4.4.4" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.4.tgz#cc06202219972bd61cef1fd10105e6384ae1d5cf" + integrity sha512-5UTUIAiHMNf5+mFp7/AnzJXS7+XxktULFN0+D1sCiZWyX7ZG+AQpqs2qpYrynRij4QvoDdCD+U+bmg/cG3Ucxw== + dependencies: + use-sync-external-store "1.2.0"