diff --git a/packages/builder/package.json b/packages/builder/package.json index 3f9a977819..aa0f2b1b15 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -19,7 +19,7 @@ "@lagunovsky/redux-react-router": "^2.2.0", "@pinata/sdk": "^1.1.26", "@playwright/test": "^1.41.1", - "@rainbow-me/rainbowkit": "^0.12.18", + "@rainbow-me/rainbowkit": "^2.1.2", "@redux-devtools/extension": "^3.2.3", "@rsbuild/core": "^0.4.1", "@rsbuild/plugin-react": "^0.3.11", @@ -29,6 +29,7 @@ "@tailwindcss/line-clamp": "^0.4.2", "@tailwindcss/typography": "^0.5.9", "@tanstack/query-core": "4.22.0", + "@tanstack/react-query": "^5.40.0", "@testing-library/dom": ">=7.21.4", "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^13.1.1", @@ -83,8 +84,8 @@ "typescript": "^5.3.3", "url": "^0.11.0", "verify-env": "*", - "viem": "^1.5.3", - "wagmi": "^0.12.19", + "viem": "^2.13.1", + "wagmi": "^2.9.8", "web-vitals": "^2.1.4", "yup": "^0.32.11", "zod": "^3.22.4" diff --git a/packages/builder/src/components/application/Form.tsx b/packages/builder/src/components/application/Form.tsx index d98f696d51..b8147845ca 100644 --- a/packages/builder/src/components/application/Form.tsx +++ b/packages/builder/src/components/application/Form.tsx @@ -19,7 +19,7 @@ import { getChainById } from "common"; import { Fragment, useEffect, useState } from "react"; import { shallowEqual, useDispatch, useSelector } from "react-redux"; import { Link } from "react-router-dom"; -import { useNetwork } from "wagmi"; +import { useChains } from "wagmi"; import { ValidationError } from "yup"; import { resetApplicationError } from "../../actions/roundApplication"; import useValidateCredential from "../../hooks/useValidateCredential"; @@ -83,7 +83,7 @@ export default function Form({ }) { const dispatch = useDispatch(); const dataLayer = useDataLayer(); - const { chains } = useNetwork(); + const chains = useChains(); const { version } = getConfig().allo; const [projectApplications, setProjectApplications] = useState< diff --git a/packages/builder/src/components/base/NetworkForm.tsx b/packages/builder/src/components/base/NetworkForm.tsx index 97302180fd..e5fff8e826 100644 --- a/packages/builder/src/components/base/NetworkForm.tsx +++ b/packages/builder/src/components/base/NetworkForm.tsx @@ -1,6 +1,6 @@ import { useState } from "react"; import { shallowEqual, useSelector } from "react-redux"; -import { useSwitchNetwork } from "wagmi"; +import { useSwitchChain } from "wagmi"; import { RootState } from "../../reducers"; import { ChangeHandlers, ProjectFormStatus } from "../../types"; import { Select } from "../grants/inputs"; @@ -22,7 +22,7 @@ function NetworkForm({ props.currentChain ); const [showModal, setShowModal] = useState(false); - const { chains } = useSwitchNetwork(); + const { chains } = useSwitchChain(); const handleNetworkSelect = async (e: ChangeHandlers) => { const { value } = e.target; diff --git a/packages/builder/src/components/base/NetworkSelector.tsx b/packages/builder/src/components/base/NetworkSelector.tsx index f7fc6aa092..e2897e9683 100644 --- a/packages/builder/src/components/base/NetworkSelector.tsx +++ b/packages/builder/src/components/base/NetworkSelector.tsx @@ -1,8 +1,8 @@ import { Avatar, Menu, MenuButton, Tag, TagLabel } from "@chakra-ui/react"; -import { useNetwork } from "wagmi"; +import { useAccount } from "wagmi"; export default function NetworkSelector(): JSX.Element { - const { chain } = useNetwork(); + const { chain } = useAccount(); // todo: set this based on current chain const colorScheme: string = "white"; diff --git a/packages/builder/src/components/base/NetworkSwitchModal.tsx b/packages/builder/src/components/base/NetworkSwitchModal.tsx index 4bd565d27d..bd9989125f 100644 --- a/packages/builder/src/components/base/NetworkSwitchModal.tsx +++ b/packages/builder/src/components/base/NetworkSwitchModal.tsx @@ -1,6 +1,6 @@ // import colors from "../../styles/colors"; import { useMemo } from "react"; -import { useSwitchNetwork } from "wagmi"; +import { useSwitchChain } from "wagmi"; import { BaseModal } from "./BaseModal"; import Button, { ButtonVariants } from "./Button"; @@ -17,7 +17,7 @@ export default function NetworkSwitchModal({ toggleModal, onSwitch, }: NetworkSwitchModalProps) { - const { chains, switchNetworkAsync } = useSwitchNetwork(); + const { chains, switchChainAsync } = useSwitchChain(); const networkName = useMemo( () => chains.find((i) => i.id === networkId)?.name as string, @@ -25,8 +25,8 @@ export default function NetworkSwitchModal({ ); const handleNetworkSwitch = async () => { - if (switchNetworkAsync) { - await switchNetworkAsync(networkId); + if (switchChainAsync && networkId) { + await switchChainAsync({ chainId: Number(networkId) }); if (onSwitch) { onSwitch(networkId); } diff --git a/packages/builder/src/components/base/ProjectForm.tsx b/packages/builder/src/components/base/ProjectForm.tsx index 8e77a0cd58..c5e0c5b602 100644 --- a/packages/builder/src/components/base/ProjectForm.tsx +++ b/packages/builder/src/components/base/ProjectForm.tsx @@ -1,7 +1,7 @@ import { datadogRum } from "@datadog/browser-rum"; import { useEffect, useRef, useState } from "react"; import { shallowEqual, useDispatch, useSelector } from "react-redux"; -import { useNetwork } from "wagmi"; +import { useConfig } from "wagmi"; import { ValidationError } from "yup"; import { metadataImageSaved, metadataSaved } from "../../actions/projectForm"; import { RootState } from "../../reducers"; @@ -42,7 +42,7 @@ function ProjectForm({ const [feedback, setFeedback] = useState([ { title: "", type: "none", message: "" }, ]); - const { chains } = useNetwork(); + const { chains } = useConfig(); const [, setLogoImg] = useState(); const [, setBannerImg] = useState(); diff --git a/packages/builder/src/components/base/WalletDisplay.tsx b/packages/builder/src/components/base/WalletDisplay.tsx index a6a2f29212..f204d5239e 100644 --- a/packages/builder/src/components/base/WalletDisplay.tsx +++ b/packages/builder/src/components/base/WalletDisplay.tsx @@ -18,18 +18,18 @@ import { shortAddress, isValidAddress } from "../../utils/wallet"; export default function WalletDisplay(): JSX.Element { const dispatch = useDispatch(); const navigate = useNavigate(); - const { address, isConnected } = useAccount(); const { disconnect } = useDisconnect({ onSuccess() { dispatch(web3AccountDisconnected("")); navigate(slugs.root); - // }, onError(error) { dispatch({ type: "WEB3_ERROR", error }); }, }); + const { address, isConnected } = useAccount(); + const avatarBg = isConnected ? "green.500" : "red.500"; return ( diff --git a/packages/builder/src/components/grants/Edit.tsx b/packages/builder/src/components/grants/Edit.tsx index 7a96bc43ae..da194fd443 100644 --- a/packages/builder/src/components/grants/Edit.tsx +++ b/packages/builder/src/components/grants/Edit.tsx @@ -2,7 +2,7 @@ import { useDataLayer } from "data-layer"; import { useEffect, useState } from "react"; import { shallowEqual, useDispatch, useSelector } from "react-redux"; import { useParams } from "react-router-dom"; -import { useSwitchNetwork } from "wagmi"; +import { useSwitchChain } from "wagmi"; import { getChainById } from "common"; import { fetchGrantData } from "../../actions/grantsMetadata"; import { @@ -27,7 +27,7 @@ function EditProject() { const dataLayer = useDataLayer(); const params = useParams(); const dispatch = useDispatch(); - const { switchNetwork } = useSwitchNetwork(); + const { switchChain } = useSwitchChain(); const [modalOpen, toggleModal] = useState(false); const [formStatus, setFormStatus] = useState( @@ -53,8 +53,8 @@ function EditProject() { const isOnProjectChain = Number(props.chainId) === Number(params.chainId); const onSwitchNetwork = () => { - if (switchNetwork) { - switchNetwork(Number(params.chainId)); + if (switchChain) { + switchChain({ chainId: Number(params.chainId) }); } }; diff --git a/packages/builder/src/components/grants/Landing.tsx b/packages/builder/src/components/grants/Landing.tsx index 96433e5afb..3a99508d31 100644 --- a/packages/builder/src/components/grants/Landing.tsx +++ b/packages/builder/src/components/grants/Landing.tsx @@ -1,6 +1,7 @@ +import { providers } from "ethers"; import { useSelector, useDispatch } from "react-redux"; import { ConnectButton } from "@rainbow-me/rainbowkit"; -import { useAccount, useProvider, useSigner, useNetwork } from "wagmi"; +import { useAccount } from "wagmi"; import { useEffect } from "react"; import { Link } from "react-router-dom"; import { RootState } from "../../reducers"; @@ -46,9 +47,9 @@ function Landing() { web3Initializing: state.web3.initializing, })); const { address, isConnected } = useAccount(); - const { chain } = useNetwork(); - const provider = useProvider(); - const { data: signer } = useSigner(); + const { chain } = useAccount(); + const provider = new providers.Web3Provider(window.ethereum, chain?.id); + const signer = provider.getSigner(address); // dispatch initializeWeb3 when address changes useEffect(() => { diff --git a/packages/builder/src/components/rounds/Show.tsx b/packages/builder/src/components/rounds/Show.tsx index bac512fbf0..ae74cd5bc5 100644 --- a/packages/builder/src/components/rounds/Show.tsx +++ b/packages/builder/src/components/rounds/Show.tsx @@ -4,7 +4,7 @@ import { RoundCategory, useDataLayer } from "data-layer"; import { useEffect, useState } from "react"; import { shallowEqual, useDispatch, useSelector } from "react-redux"; import { Link, useNavigate, useParams } from "react-router-dom"; -import { useSwitchNetwork } from "wagmi"; +import { useSwitchChain } from "wagmi"; import { useAlloVersion } from "common/src/components/AlloVersionSwitcher"; import { AlloVersion } from "data-layer/dist/data-layer.types"; import { loadAllChainsProjects } from "../../actions/projects"; @@ -124,7 +124,7 @@ function ShowRound() { const params = useParams(); const dispatch = useDispatch(); const navigate = useNavigate(); - const { switchNetwork } = useSwitchNetwork(); + const { switchChain } = useSwitchChain(); const { roundId, chainId } = params; @@ -277,8 +277,8 @@ function ShowRound() { }, [props.projectsStatus, dispatch]); const onSwitchNetwork = () => { - if (switchNetwork) { - switchNetwork(props.roundChainId); + if (switchChain) { + switchChain({ chainId: props.roundChainId }); } }; diff --git a/packages/builder/src/index.tsx b/packages/builder/src/index.tsx index 87e9c42c12..49cc5feb14 100644 --- a/packages/builder/src/index.tsx +++ b/packages/builder/src/index.tsx @@ -1,5 +1,6 @@ import "./browserPatches"; +import { QueryClientProvider } from "@tanstack/react-query"; import { ChakraProvider } from "@chakra-ui/react"; import { datadogRum } from "@datadog/browser-rum"; import { ReduxRouter } from "@lagunovsky/redux-react-router"; @@ -10,7 +11,7 @@ import { DataLayer, DataLayerProvider } from "data-layer"; import ReactDOM from "react-dom/client"; import { Provider } from "react-redux"; import { Navigate, Route, Routes } from "react-router"; -import { WagmiConfig } from "wagmi"; +import { WagmiProvider } from "wagmi"; import AlloWrapper from "./utils/AlloWrapper"; import ErrorBoundary from "./components/ErrorBoundary"; import Layout from "./components/Layout"; @@ -28,7 +29,7 @@ import { slugs } from "./routes"; import setupStore from "./store"; import "./styles/index.css"; import initDatadog from "./utils/datadog"; -import wagmiClient, { chains } from "./utils/wagmi"; +import queryClient, { config } from "./utils/wagmi"; import initTagmanager from "./tagmanager"; const dataLayerConfig = new DataLayer({ @@ -105,42 +106,44 @@ if (pathname && pathname !== window.location.pathname) { root.render( - - - - - - - - - - } - /> - } /> - } /> - } /> - } /> - } /> - } - /> - } - /> - } /> - - - - - - - - - + + + + + + + + + + + } + /> + } /> + } /> + } /> + } /> + } /> + } + /> + } + /> + } /> + + + + + + + + + + ); diff --git a/packages/builder/src/utils/AlloWrapper.tsx b/packages/builder/src/utils/AlloWrapper.tsx index a0b2834113..f9467433b7 100644 --- a/packages/builder/src/utils/AlloWrapper.tsx +++ b/packages/builder/src/utils/AlloWrapper.tsx @@ -10,13 +10,15 @@ import { } from "common"; import { getConfig } from "common/src/config"; import { useEffect, useState } from "react"; -import { useNetwork, useProvider, useSigner } from "wagmi"; +import { useAccount } from "wagmi"; import { AlloVersionProvider } from "common/src/components/AlloVersionSwitcher"; +import { providers } from "ethers"; function AlloWrapper({ children }: { children: JSX.Element | JSX.Element[] }) { - const { chain } = useNetwork(); - const web3Provider = useProvider(); - const { data: signer } = useSigner(); + const { chain, address } = useAccount(); + const web3Provider = new providers.Web3Provider(window.ethereum, chain?.id); + const signer = web3Provider.getSigner(address); + const chainID = chain?.id; const [backend, setBackend] = useState(null); diff --git a/packages/builder/src/utils/chains.ts b/packages/builder/src/utils/chains.ts index 2365bfda75..0f7ea5b267 100644 --- a/packages/builder/src/utils/chains.ts +++ b/packages/builder/src/utils/chains.ts @@ -1,9 +1,9 @@ -import { Chain } from "@rainbow-me/rainbowkit"; -import { alchemyProvider } from "wagmi/providers/alchemy"; -import { infuraProvider } from "wagmi/providers/infura"; -import { publicProvider } from "wagmi/providers/public"; +// import { alchemyProvider } from "wagmi/providers/alchemy"; +// import { infuraProvider } from "wagmi/providers/infura"; +// import { publicProvider } from "wagmi/providers/public"; import { getConfig } from "common/src/config"; import { allNetworks, mainnetNetworks } from "common/src/chains"; +import { Chain } from "@rainbow-me/rainbowkit"; const allChains: Chain[] = process.env.REACT_APP_ENV === "development" ? allNetworks : mainnetNetworks; @@ -11,7 +11,7 @@ const allChains: Chain[] = export function getEnabledChainsAndProviders() { const config = getConfig(); const chains: Chain[] = []; - const providers = [publicProvider({ priority: 2 })]; + // const providers: Record = {}; const { blockchain: { chainsOverride }, @@ -25,15 +25,15 @@ export function getEnabledChainsAndProviders() { // When we finish the refactoring to use the global config everywhere, we can change the way we // verify the env vars chainsOverride !== "-" - ? chainsOverride.split(",").map((name) => name.trim()) + ? chainsOverride.split(",").map((id) => id.trim()) : []; if (selectedChainsNames.length > 0) { // if REACT_APP_CHAINS_OVERRIDE is specified we use those - selectedChainsNames.forEach((name) => { - const chain = allChains.find((c) => c.network === name); + selectedChainsNames.forEach((id) => { + const chain = allChains.find((c) => c.id === Number(id)); if (chain === undefined) { - throw new Error(`allChains doesn't contain a chain called "${name}"`); + throw new Error(`allChains doesn't contain a chain with id "${id}"`); } chains.push(chain); @@ -48,17 +48,18 @@ export function getEnabledChainsAndProviders() { chains.push(...allNetworks); } - if (config.blockchain.infuraId !== undefined) { - providers.push( - infuraProvider({ apiKey: config.blockchain.infuraId!, priority: 0 }) - ); - } + // todo: revisit + // if (config.blockchain.infuraId !== undefined) { + // providers.push( + // infuraProvider({ apiKey: config.blockchain.infuraId!, priority: 0 }) + // ); + // } - if (config.blockchain.alchemyId !== undefined) { - providers.push( - alchemyProvider({ apiKey: config.blockchain.alchemyId!, priority: 1 }) - ); - } + // if (config.blockchain.alchemyId !== undefined) { + // providers.push( + // alchemyProvider({ apiKey: config.blockchain.alchemyId!, priority: 1 }) + // ); + // } - return { chains, providers }; + return { chains }; } diff --git a/packages/builder/src/utils/wagmi.ts b/packages/builder/src/utils/wagmi.ts index 7762d12903..f33a656010 100644 --- a/packages/builder/src/utils/wagmi.ts +++ b/packages/builder/src/utils/wagmi.ts @@ -1,50 +1,44 @@ -import { - connectorsForWallets, - getDefaultWallets, -} from "@rainbow-me/rainbowkit"; -import { - coinbaseWallet, - injectedWallet, - metaMaskWallet, - walletConnectWallet, -} from "@rainbow-me/rainbowkit/wallets"; -import { configureChains, createClient } from "wagmi"; -import { getEnabledChainsAndProviders } from "./chains"; +import { QueryClient } from "@tanstack/react-query"; +import { Chain, getDefaultConfig } from "@rainbow-me/rainbowkit"; -const { chains: enabledChains, providers: enabledProviders } = - getEnabledChainsAndProviders(); +import { getEnabledChainsAndProviders } from "./chains"; -export const { chains, provider } = configureChains( - enabledChains, - enabledProviders -); +const { chains: enabledChains } = getEnabledChainsAndProviders(); /** We perform environment variable verification at buildtime, so all process.env properties are guaranteed to be strings */ const projectId = process.env.REACT_APP_WALLETCONNECT_PROJECT_ID as string; -const { wallets } = getDefaultWallets({ +// const { wallets } = getDefaultWallets({ +// appName: "Gitcoin Builder", +// projectId, +// chains, +// }); + +// const connectors = connectorsForWallets([ +// { +// ...wallets, +// groupName: "Recommended", +// wallets: [ +// injectedWallet({ chains }), +// walletConnectWallet({ chains, projectId }), +// coinbaseWallet({ appName: "Gitcoin Builder", chains }), +// metaMaskWallet({ chains, projectId }), +// ], +// }, +// ]); +// const wagmiClient = createClient({ +// autoConnect: true, +// connectors, +// provider, +// }); +/// + +export const config = getDefaultConfig({ appName: "Gitcoin Builder", projectId, - chains, + chains: [...enabledChains] as [Chain, ...Chain[]], }); -const connectors = connectorsForWallets([ - { - ...wallets, - groupName: "Recommended", - wallets: [ - injectedWallet({ chains }), - walletConnectWallet({ chains, projectId }), - coinbaseWallet({ appName: "Gitcoin Builder", chains }), - metaMaskWallet({ chains, projectId }), - ], - }, -]); - -const wagmiClient = createClient({ - autoConnect: true, - connectors, - provider, -}); +const queryClient = new QueryClient(); -export default wagmiClient; +export default queryClient; diff --git a/packages/common/src/chains.ts b/packages/common/src/chains.ts index 66bd8fb673..45420fbaa9 100644 --- a/packages/common/src/chains.ts +++ b/packages/common/src/chains.ts @@ -1,6 +1,7 @@ import { zeroAddress } from "viem"; import { error, Result, success } from "./allo/common"; import { getChains, TChain } from "@gitcoin/gitcoin-chain-data"; +import { Chain } from "@rainbow-me/rainbowkit"; const chainData = getChains(); @@ -16,10 +17,10 @@ const parseRainbowChain = (chain: TChain) => { ); // Map the TChain to @rainbow-me/rainbowkit/Chain - const mappedChain = { + const mappedChain: Chain = { id: chain.id, name: chain.prettyName, - network: chain.name, + // network: chain.name, iconUrl: stringToBlobUrl(chain.icon), iconBackground: "rgba(255, 255, 255, 0)", nativeCurrency: { @@ -37,7 +38,7 @@ const parseRainbowChain = (chain: TChain) => { webSocket: undefined, }, }, - }; + } as const satisfies Chain; return mappedChain; }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f211def90f..e24b1065f1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -79,8 +79,8 @@ importers: specifier: ^1.41.1 version: 1.44.0 '@rainbow-me/rainbowkit': - specifier: ^0.12.18 - version: 0.12.18(@types/react@18.3.2)(ethers@5.7.2)(react-dom@18.3.1)(react@18.3.1)(wagmi@0.12.19) + specifier: ^2.1.2 + version: 2.1.2(@tanstack/react-query@5.40.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(viem@2.13.1)(wagmi@2.9.8) '@redux-devtools/extension': specifier: ^3.2.3 version: 3.3.0(redux@4.2.1) @@ -108,6 +108,9 @@ importers: '@tanstack/query-core': specifier: 4.22.0 version: 4.22.0 + '@tanstack/react-query': + specifier: ^5.40.0 + version: 5.40.0(react@18.3.1) '@testing-library/dom': specifier: '>=7.21.4' version: 10.1.0 @@ -197,7 +200,7 @@ importers: version: 1.0.0 jest: specifier: ^27.0 - version: 27.5.1(ts-node@10.9.2) + version: 27.5.1 jszip: specifier: ^3.10.1 version: 3.10.1 @@ -230,7 +233,7 @@ importers: version: 10.1.8(react@18.3.1) react-redux: specifier: ^7.2.8 - version: 7.2.9(react-dom@18.3.1)(react@18.3.1) + version: 7.2.9(react-dom@18.3.1)(react-native@0.74.1)(react@18.3.1) react-router: specifier: ^6 version: 6.15.0(react@18.3.1) @@ -239,7 +242,7 @@ importers: version: 6.15.0(react-dom@18.3.1)(react@18.3.1) react-scripts: specifier: 5.0.1 - version: 5.0.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(@rspack/core@0.5.7)(esbuild@0.18.20)(eslint@8.57.0)(react@18.3.1)(ts-node@10.9.2)(typescript@5.4.5) + version: 5.0.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(@rspack/core@0.5.7)(esbuild@0.18.20)(eslint@8.57.0)(react@18.3.1)(typescript@5.4.5) redux: specifier: ^4.2.1 version: 4.2.1 @@ -254,7 +257,7 @@ importers: version: 3.2.0 tailwindcss: specifier: ^3.0.24 - version: 3.4.3(ts-node@10.9.2) + version: 3.4.3 ts-debounce: specifier: ^4.0.0 version: 4.0.0 @@ -271,11 +274,11 @@ importers: specifier: '*' version: link:../verify-env viem: - specifier: ^1.5.3 - version: 1.21.4(typescript@5.4.5)(zod@3.23.8) + specifier: ^2.13.1 + version: 2.13.1(typescript@5.4.5)(zod@3.23.8) wagmi: - specifier: ^0.12.19 - version: 0.12.19(@types/react@18.3.2)(ethers@5.7.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5)(zod@3.23.8) + specifier: ^2.9.8 + version: 2.9.8(@tanstack/query-core@4.22.0)(@tanstack/react-query@5.40.0)(@types/react@18.3.2)(react-dom@18.3.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(rollup@2.79.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8) web-vitals: specifier: ^2.1.4 version: 2.1.4 @@ -450,7 +453,7 @@ importers: version: 2.13.1(typescript@5.4.5)(zod@3.23.8) wagmi: specifier: 2.9.8 - version: 2.9.8(@tanstack/react-query@5.40.0)(@types/react@18.3.2)(react-dom@18.3.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8) + version: 2.9.8(@tanstack/query-core@4.22.0)(@tanstack/react-query@5.40.0)(@types/react@18.3.2)(react-dom@18.3.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(rollup@2.79.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8) zod: specifier: ^3.22.4 version: 3.23.8 @@ -4423,7 +4426,7 @@ packages: cosmiconfig-typescript-loader: 1.0.9(@types/node@18.19.33)(cosmiconfig@7.1.0)(typescript@5.4.5) cross-spawn: 7.0.3 lodash: 4.17.21 - react-scripts: 5.0.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(@rspack/core@0.5.7)(esbuild@0.18.20)(eslint@8.57.0)(react@18.3.1)(ts-node@10.9.2)(typescript@5.4.5) + react-scripts: 5.0.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(@rspack/core@0.5.7)(esbuild@0.18.20)(eslint@8.57.0)(react@18.3.1)(typescript@5.4.5) semver: 7.6.2 webpack-merge: 5.10.0 transitivePeerDependencies: @@ -5765,6 +5768,50 @@ packages: jest-util: 28.1.3 slash: 3.0.0 + /@jest/core@27.5.1: + resolution: {integrity: sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/console': 27.5.1 + '@jest/reporters': 27.5.1 + '@jest/test-result': 27.5.1 + '@jest/transform': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 20.12.12 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.8.1 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 27.5.1 + jest-config: 27.5.1 + jest-haste-map: 27.5.1 + jest-message-util: 27.5.1 + jest-regex-util: 27.5.1 + jest-resolve: 27.5.1 + jest-resolve-dependencies: 27.5.1 + jest-runner: 27.5.1 + jest-runtime: 27.5.1 + jest-snapshot: 27.5.1 + jest-util: 27.5.1 + jest-validate: 27.5.1 + jest-watcher: 27.5.1 + micromatch: 4.0.6 + rimraf: 3.0.2 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + /@jest/core@27.5.1(ts-node@10.9.2): resolution: {integrity: sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -5808,6 +5855,7 @@ packages: - supports-color - ts-node - utf-8-validate + dev: false /@jest/create-cache-key-function@29.7.0: resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} @@ -5831,7 +5879,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.12 + '@types/node': 18.19.33 jest-mock: 29.7.0 dev: false @@ -5852,7 +5900,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.12.12 + '@types/node': 18.19.33 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -6034,7 +6082,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.12.12 + '@types/node': 18.19.33 '@types/yargs': 17.0.32 chalk: 4.1.2 dev: false @@ -6118,7 +6166,7 @@ packages: history: 5.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-redux: 7.2.9(react-dom@18.3.1)(react@18.3.1) + react-redux: 7.2.9(react-dom@18.3.1)(react-native@0.74.1)(react@18.3.1) react-router: 6.15.0(react@18.3.1) redux: 4.2.1 dev: false @@ -6351,7 +6399,7 @@ packages: react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.3.2)(react@18.3.1) dev: false - /@metamask/sdk@0.20.3(react-dom@18.3.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1): + /@metamask/sdk@0.20.3(react-dom@18.3.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(rollup@2.79.1): resolution: {integrity: sha512-HZ9NwA+LxiXzuy0YWbWsuD4xejQtp85bhcCAf8UgpA/0dOyF3RS4dKDdBBXSyRgk3RWPjeJgHxioaH4CmBmiRA==} peerDependencies: react: ^18.2.0 @@ -6382,7 +6430,7 @@ packages: react-dom: 18.3.1(react@18.3.1) react-native-webview: 11.26.1(react-native@0.74.1)(react@18.3.1) readable-stream: 3.6.2 - rollup-plugin-visualizer: 5.12.0 + rollup-plugin-visualizer: 5.12.0(rollup@2.79.1) socket.io-client: 4.7.5 util: 0.12.5 uuid: 8.3.2 @@ -7250,29 +7298,6 @@ packages: - '@types/react' dev: false - /@rainbow-me/rainbowkit@0.12.18(@types/react@18.3.2)(ethers@5.7.2)(react-dom@18.3.1)(react@18.3.1)(wagmi@0.12.19): - resolution: {integrity: sha512-Ehpr8gBCS8v4vdXLi8ZBlQ1yA6GHJOhoP66hLrdgI5iSlr6aUGTEicEfb2RaKNltHJFW/5A4BKst0AK4PkAkuw==} - engines: {node: '>=12.4'} - peerDependencies: - ethers: '>=5.6.8' - react: '>=17' - react-dom: '>=17' - wagmi: '>=0.12.19 <1.0.0' - dependencies: - '@vanilla-extract/css': 1.9.1 - '@vanilla-extract/dynamic': 2.0.2 - '@vanilla-extract/sprinkles': 1.5.0(@vanilla-extract/css@1.9.1) - clsx: 1.1.1 - ethers: 5.7.2 - qrcode: 1.5.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.4(@types/react@18.3.2)(react@18.3.1) - wagmi: 0.12.19(@types/react@18.3.2)(ethers@5.7.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5)(zod@3.23.8) - transitivePeerDependencies: - - '@types/react' - dev: false - /@rainbow-me/rainbowkit@1.0.12(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(viem@1.21.4)(wagmi@1.4.1): resolution: {integrity: sha512-/gpjLw+IXAPrdv7X2hrOD0Unwrl4XOSPGmGYDPhIeyda0ddQP9urVdD2rcU+x528tP+4BYRu4Xv1NaZ4Iw4zzg==} engines: {node: '>=12.4'} @@ -7317,7 +7342,7 @@ packages: react-remove-scroll: 2.5.7(@types/react@18.3.2)(react@18.3.1) ua-parser-js: 1.0.38 viem: 2.13.1(typescript@5.4.5)(zod@3.23.8) - wagmi: 2.9.8(@tanstack/react-query@5.40.0)(@types/react@18.3.2)(react-dom@18.3.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8) + wagmi: 2.9.8(@tanstack/query-core@4.22.0)(@tanstack/react-query@5.40.0)(@types/react@18.3.2)(react-dom@18.3.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(rollup@2.79.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8) transitivePeerDependencies: - '@types/react' dev: false @@ -9148,7 +9173,7 @@ packages: peerDependencies: tailwindcss: '>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1' dependencies: - tailwindcss: 3.4.3(ts-node@10.9.2) + tailwindcss: 3.4.3 /@tailwindcss/typography@0.5.13(tailwindcss@3.4.3): resolution: {integrity: sha512-ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw==} @@ -9159,7 +9184,7 @@ packages: lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.3(ts-node@10.9.2) + tailwindcss: 3.4.3 dev: false /@tanstack/query-core@4.22.0: @@ -9895,14 +9920,14 @@ packages: /@types/webpack-sources@3.2.3: resolution: {integrity: sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==} dependencies: - '@types/node': 20.12.12 + '@types/node': 18.19.33 '@types/source-list-map': 0.1.6 source-map: 0.7.4 /@types/webpack@4.41.38: resolution: {integrity: sha512-oOW7E931XJU1mVfCnxCVgv8GLFL768pDO5u2Gzk82i8yTIgX6i7cntyZOkZYb/JtYM8252SN9bQp9tgkVDSsRw==} dependencies: - '@types/node': 20.12.12 + '@types/node': 18.19.33 '@types/tapable': 1.0.12 '@types/uglify-js': 3.17.5 '@types/webpack-sources': 3.2.3 @@ -10572,7 +10597,7 @@ packages: - zod dev: false - /@wagmi/connectors@5.0.7(@types/react@18.3.2)(@wagmi/core@2.10.5)(react-dom@18.3.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8): + /@wagmi/connectors@5.0.7(@types/react@18.3.2)(@wagmi/core@2.10.5)(react-dom@18.3.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(rollup@2.79.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8): resolution: {integrity: sha512-EoTtRKnUPhKpU/LFU7LU4iK8yNU/akU5vSgX+K21QXHi8ImhEEsd2nPEU5kfkWriGf+D/raD4gLZYsfppDRUaw==} peerDependencies: '@wagmi/core': 2.10.5 @@ -10583,10 +10608,10 @@ packages: optional: true dependencies: '@coinbase/wallet-sdk': 4.0.2 - '@metamask/sdk': 0.20.3(react-dom@18.3.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1) + '@metamask/sdk': 0.20.3(react-dom@18.3.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(rollup@2.79.1) '@safe-global/safe-apps-provider': 0.18.1(typescript@5.4.5)(zod@3.23.8) '@safe-global/safe-apps-sdk': 8.1.0(typescript@5.4.5)(zod@3.23.8) - '@wagmi/core': 2.10.5(@types/react@18.3.2)(react@18.3.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8) + '@wagmi/core': 2.10.5(@tanstack/query-core@4.22.0)(@types/react@18.3.2)(react@18.3.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8) '@walletconnect/ethereum-provider': 2.13.0(@types/react@18.3.2)(react@18.3.1) '@walletconnect/modal': 2.6.2(@types/react@18.3.2)(react@18.3.1) cbw-sdk: /@coinbase/wallet-sdk@3.9.3 @@ -10742,7 +10767,7 @@ packages: - zod dev: false - /@wagmi/core@2.10.5(@types/react@18.3.2)(react@18.3.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8): + /@wagmi/core@2.10.5(@tanstack/query-core@4.22.0)(@types/react@18.3.2)(react@18.3.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8): resolution: {integrity: sha512-BvqFEdJTTepOKtPnacq7oE8gUZ4llzdxmPSBEYePArd1dvP/e5gwwfS5/8VBcvDvGcoX4N0lw5A4NNOJKL0Q+A==} peerDependencies: '@tanstack/query-core': '>=5.0.0' @@ -10754,6 +10779,7 @@ packages: typescript: optional: true dependencies: + '@tanstack/query-core': 4.22.0 eventemitter3: 5.0.1 mipd: 0.0.5(typescript@5.4.5)(zod@3.23.8) typescript: 5.4.5 @@ -13806,7 +13832,7 @@ packages: engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@types/node': 20.12.12 + '@types/node': 18.19.33 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -14438,7 +14464,7 @@ packages: '@craco/craco': 7.1.0(@types/node@18.19.33)(postcss@8.4.38)(react-scripts@5.0.1)(typescript@5.4.5) esbuild-jest: 0.5.0(esbuild@0.18.20) esbuild-loader: 2.21.0(webpack@5.91.0) - react-scripts: 5.0.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(@rspack/core@0.5.7)(esbuild@0.18.20)(eslint@8.57.0)(react@18.3.1)(ts-node@10.9.2)(typescript@5.4.5) + react-scripts: 5.0.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(@rspack/core@0.5.7)(esbuild@0.18.20)(eslint@8.57.0)(react@18.3.1)(typescript@5.4.5) transitivePeerDependencies: - esbuild - supports-color @@ -16378,7 +16404,7 @@ packages: '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) eslint: 8.57.0 - jest: 27.5.1(ts-node@10.9.2) + jest: 27.5.1 transitivePeerDependencies: - supports-color - typescript @@ -20137,6 +20163,35 @@ packages: transitivePeerDependencies: - supports-color + /jest-cli@27.5.1: + resolution: {integrity: sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 27.5.1 + '@jest/test-result': 27.5.1 + '@jest/types': 27.5.1 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + import-local: 3.1.0 + jest-config: 27.5.1 + jest-util: 27.5.1 + jest-validate: 27.5.1 + prompts: 2.4.2 + yargs: 16.2.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + /jest-cli@27.5.1(ts-node@10.9.2): resolution: {integrity: sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -20165,6 +20220,46 @@ packages: - supports-color - ts-node - utf-8-validate + dev: false + + /jest-config@27.5.1: + resolution: {integrity: sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + ts-node: '>=9.0.0' + peerDependenciesMeta: + ts-node: + optional: true + dependencies: + '@babel/core': 7.24.5 + '@jest/test-sequencer': 27.5.1 + '@jest/types': 27.5.1 + babel-jest: 27.5.1(@babel/core@7.24.5) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 27.5.1 + jest-environment-jsdom: 27.5.1 + jest-environment-node: 27.5.1 + jest-get-type: 27.5.1 + jest-jasmine2: 27.5.1 + jest-regex-util: 27.5.1 + jest-resolve: 27.5.1 + jest-runner: 27.5.1 + jest-util: 27.5.1 + jest-validate: 27.5.1 + micromatch: 4.0.6 + parse-json: 5.2.0 + pretty-format: 27.5.1 + slash: 3.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate /jest-config@27.5.1(ts-node@10.9.2): resolution: {integrity: sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==} @@ -20205,6 +20300,7 @@ packages: - canvas - supports-color - utf-8-validate + dev: false /jest-diff@27.5.1: resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==} @@ -20266,7 +20362,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.12 + '@types/node': 18.19.33 jest-mock: 29.7.0 jest-util: 29.7.0 dev: false @@ -20425,7 +20521,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.12.12 + '@types/node': 18.19.33 jest-util: 29.7.0 dev: false @@ -20622,7 +20718,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.12.12 + '@types/node': 18.19.33 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -20660,7 +20756,7 @@ packages: dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 - jest: 27.5.1(ts-node@10.9.2) + jest: 27.5.1 jest-regex-util: 28.0.2 jest-watcher: 28.1.3 slash: 4.0.0 @@ -20697,7 +20793,7 @@ packages: peerDependencies: jest: '>= 25' dependencies: - jest: 27.5.1(ts-node@10.9.2) + jest: 27.5.1 dev: true /jest-worker@26.6.2: @@ -20728,12 +20824,32 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.12.12 + '@types/node': 18.19.33 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: false + /jest@27.5.1: + resolution: {integrity: sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 27.5.1 + import-local: 3.1.0 + jest-cli: 27.5.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + /jest@27.5.1(ts-node@10.9.2): resolution: {integrity: sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -20753,6 +20869,7 @@ packages: - supports-color - ts-node - utf-8-validate + dev: false /jiti@1.21.0: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} @@ -24297,6 +24414,22 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 + /postcss-load-config@4.0.2(postcss@8.4.38): + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 3.1.1 + postcss: 8.4.38 + yaml: 2.4.2 + /postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2): resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} @@ -25474,7 +25607,7 @@ packages: resolution: {integrity: sha512-kzmNjIgU32mO4mmH5+iUyrqlpFQhF8K2k7eZ4fdLSOPFrD1XgEuSBv9LDEgxRXTMBqMd8ppT0x6TIzqE5pdGdw==} dev: false - /react-redux@7.2.9(react-dom@18.3.1)(react@18.3.1): + /react-redux@7.2.9(react-dom@18.3.1)(react-native@0.74.1)(react@18.3.1): resolution: {integrity: sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==} peerDependencies: react: ^16.8.3 || ^17 || ^18 @@ -25494,6 +25627,7 @@ packages: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-is: 17.0.2 + react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(@types/react@18.3.2)(react@18.3.1) dev: false /react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(redux@4.2.1): @@ -25730,6 +25864,104 @@ packages: - webpack-cli - webpack-hot-middleware - webpack-plugin-serve + dev: false + + /react-scripts@5.0.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(@rspack/core@0.5.7)(esbuild@0.18.20)(eslint@8.57.0)(react@18.3.1)(typescript@5.4.5): + resolution: {integrity: sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==} + engines: {node: '>=14.0.0'} + hasBin: true + peerDependencies: + eslint: '*' + react: '>= 16' + typescript: ^3.2.1 || ^4 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@babel/core': 7.24.5 + '@pmmmwh/react-refresh-webpack-plugin': 0.5.13(react-refresh@0.11.0)(webpack-dev-server@4.15.2)(webpack@5.91.0) + '@svgr/webpack': 5.5.0 + babel-jest: 27.5.1(@babel/core@7.24.5) + babel-loader: 8.3.0(@babel/core@7.24.5)(webpack@5.91.0) + babel-plugin-named-asset-import: 0.3.8(@babel/core@7.24.5) + babel-preset-react-app: 10.0.1 + bfj: 7.1.0 + browserslist: 4.23.0 + camelcase: 6.3.0 + case-sensitive-paths-webpack-plugin: 2.4.0 + css-loader: 6.11.0(@rspack/core@0.5.7)(webpack@5.91.0) + css-minimizer-webpack-plugin: 3.4.1(esbuild@0.18.20)(webpack@5.91.0) + dotenv: 10.0.0 + dotenv-expand: 5.1.0 + eslint: 8.57.0 + eslint-config-react-app: 7.0.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.5) + eslint-webpack-plugin: 3.2.0(eslint@8.57.0)(webpack@5.91.0) + file-loader: 6.2.0(webpack@5.91.0) + fs-extra: 10.1.0 + html-webpack-plugin: 5.6.0(@rspack/core@0.5.7)(webpack@5.91.0) + identity-obj-proxy: 3.0.0 + jest: 27.5.1 + jest-resolve: 27.5.1 + jest-watch-typeahead: 1.1.0(jest@27.5.1) + mini-css-extract-plugin: 2.9.0(webpack@5.91.0) + postcss: 8.4.38 + postcss-flexbugs-fixes: 5.0.2(postcss@8.4.38) + postcss-loader: 6.2.1(postcss@8.4.38)(webpack@5.91.0) + postcss-normalize: 10.0.1(browserslist@4.23.0)(postcss@8.4.38) + postcss-preset-env: 7.8.3(postcss@8.4.38) + prompts: 2.4.2 + react: 18.3.1 + react-app-polyfill: 3.0.0 + react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.4.5)(webpack@5.91.0) + react-refresh: 0.11.0 + resolve: 1.22.8 + resolve-url-loader: 4.0.0 + sass-loader: 12.6.0(webpack@5.91.0) + semver: 7.6.2 + source-map-loader: 3.0.2(webpack@5.91.0) + style-loader: 3.3.4(webpack@5.91.0) + tailwindcss: 3.4.3 + terser-webpack-plugin: 5.3.10(esbuild@0.18.20)(webpack@5.91.0) + typescript: 5.4.5 + webpack: 5.91.0(esbuild@0.18.20) + webpack-dev-server: 4.15.2(debug@4.3.4)(webpack@5.91.0) + webpack-manifest-plugin: 4.1.1(webpack@5.91.0) + workbox-webpack-plugin: 6.6.0(webpack@5.91.0) + optionalDependencies: + fsevents: 2.3.3 + transitivePeerDependencies: + - '@babel/plugin-syntax-flow' + - '@babel/plugin-transform-react-jsx' + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@types/babel__core' + - '@types/webpack' + - bufferutil + - canvas + - clean-css + - csso + - debug + - esbuild + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - fibers + - node-notifier + - node-sass + - rework + - rework-visit + - sass + - sass-embedded + - sockjs-client + - supports-color + - ts-node + - type-fest + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + - webpack-hot-middleware + - webpack-plugin-serve /react-scripts@5.0.1(@babel/plugin-syntax-flow@7.24.6)(@babel/plugin-transform-react-jsx@7.23.4)(@rspack/core@0.5.7)(esbuild@0.18.20)(eslint@8.57.0)(react@18.3.1)(ts-node@10.9.2)(typescript@5.4.5): resolution: {integrity: sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==} @@ -26316,7 +26548,7 @@ packages: serialize-javascript: 4.0.0 terser: 5.31.0 - /rollup-plugin-visualizer@5.12.0: + /rollup-plugin-visualizer@5.12.0(rollup@2.79.1): resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} engines: {node: '>=14'} hasBin: true @@ -26328,6 +26560,7 @@ packages: dependencies: open: 8.4.2 picomatch: 2.3.1 + rollup: 2.79.1 source-map: 0.7.4 yargs: 17.7.2 dev: false @@ -27627,6 +27860,36 @@ packages: react-dom: 18.3.1(react@18.3.1) tailwind-merge: 1.14.0 + /tailwindcss@3.4.3: + resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.0 + lilconfig: 2.1.0 + micromatch: 4.0.6 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.1 + postcss: 8.4.38 + postcss-import: 15.1.0(postcss@8.4.38) + postcss-js: 4.0.1(postcss@8.4.38) + postcss-load-config: 4.0.2(postcss@8.4.38) + postcss-nested: 6.0.1(postcss@8.4.38) + postcss-selector-parser: 6.0.16 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + /tailwindcss@3.4.3(ts-node@10.9.2): resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} engines: {node: '>=14.0.0'} @@ -28053,7 +28316,7 @@ packages: bs-logger: 0.2.6 esbuild: 0.18.20 fast-json-stable-stringify: 2.1.0 - jest: 27.5.1(ts-node@10.9.2) + jest: 27.5.1 jest-util: 27.5.1 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -29229,51 +29492,6 @@ packages: - zod dev: false - /wagmi@0.12.19(@types/react@18.3.2)(ethers@5.7.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5)(zod@3.23.8): - resolution: {integrity: sha512-S/el9BDb/HNeQWh1v8TvntMPX/CgKLDAoJqDb8i7jifLfWPqFL7gor3vnI1Vs6ZlB8uh7m+K1Qyg+mKhbITuDQ==} - peerDependencies: - ethers: '>=5.5.1 <6' - react: '>=17.0.0' - typescript: '>=4.9.4' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@tanstack/query-sync-storage-persister': 4.36.1 - '@tanstack/react-query': 4.36.1(react-dom@18.3.1)(react@18.3.1) - '@tanstack/react-query-persist-client': 4.36.1(@tanstack/react-query@4.36.1) - '@wagmi/core': 0.10.17(@types/react@18.3.2)(ethers@5.7.2)(react@18.3.1)(typescript@5.4.5)(zod@3.23.8) - abitype: 0.3.0(typescript@5.4.5)(zod@3.23.8) - ethers: 5.7.2 - react: 18.3.1 - typescript: 5.4.5 - use-sync-external-store: 1.2.2(react@18.3.1) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/kv' - - bufferutil - - encoding - - immer - - ioredis - - react-dom - - react-native - - supports-color - - uWebSockets.js - - utf-8-validate - - zod - dev: false - /wagmi@1.4.1(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(typescript@5.4.5)(viem@1.21.4)(zod@3.23.8): resolution: {integrity: sha512-v3xd+uYZfLCAs1I4fLU7U9hg/gCw+Ud005J7kNR0mi20BcFAEU1EDN1LxHxpjUV0qKhOzSlMlrLjJyBCmSYhFA==} peerDependencies: @@ -29319,7 +29537,7 @@ packages: - zod dev: false - /wagmi@2.9.8(@tanstack/react-query@5.40.0)(@types/react@18.3.2)(react-dom@18.3.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8): + /wagmi@2.9.8(@tanstack/query-core@4.22.0)(@tanstack/react-query@5.40.0)(@types/react@18.3.2)(react-dom@18.3.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(rollup@2.79.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8): resolution: {integrity: sha512-uSfYKB0JWtajz8YSntMBO4QQolx1fPPckwAVrRl9X66zQb0FLqgZeXrnf+PjFnmNbNsSyO3neOD/3TQqNL6m4Q==} peerDependencies: '@tanstack/react-query': '>=5.0.0' @@ -29331,8 +29549,8 @@ packages: optional: true dependencies: '@tanstack/react-query': 5.40.0(react@18.3.1) - '@wagmi/connectors': 5.0.7(@types/react@18.3.2)(@wagmi/core@2.10.5)(react-dom@18.3.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8) - '@wagmi/core': 2.10.5(@types/react@18.3.2)(react@18.3.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8) + '@wagmi/connectors': 5.0.7(@types/react@18.3.2)(@wagmi/core@2.10.5)(react-dom@18.3.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(rollup@2.79.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8) + '@wagmi/core': 2.10.5(@tanstack/query-core@4.22.0)(@types/react@18.3.2)(react@18.3.1)(typescript@5.4.5)(viem@2.13.1)(zod@3.23.8) react: 18.3.1 typescript: 5.4.5 use-sync-external-store: 1.2.0(react@18.3.1)