diff --git a/packages/nextjs/components/NetworksDropdown.tsx b/packages/nextjs/components/NetworksDropdown.tsx index ded58dd8..260fcdf6 100644 --- a/packages/nextjs/components/NetworksDropdown.tsx +++ b/packages/nextjs/components/NetworksDropdown.tsx @@ -1,6 +1,6 @@ import { ReactNode, useEffect, useRef, useState } from "react"; import Image from "next/image"; -import * as chains from "@wagmi/core/chains"; +import * as wagmiChains from "@wagmi/core/chains"; import { useTheme } from "next-themes"; import Select, { MultiValue, OptionProps, SingleValue, components } from "react-select"; import { Chain } from "viem"; @@ -22,6 +22,8 @@ type GroupedOptions = Record< } >; +type Chains = Record; + const getIconComponent = (iconName: string | undefined) => { switch (iconName) { case "EyeIcon": @@ -73,6 +75,17 @@ const groupedOptions = networks.reduce( }, ); +const excludeChainKeys = ["lineaTestnet", "x1Testnet"]; // duplicate chains in viem chains + +const unfilteredChains: Chains = wagmiChains as Chains; + +const filteredChains = Object.keys(unfilteredChains) + .filter(key => !excludeChainKeys.includes(key)) + .reduce((obj: Chains, key) => { + obj[key] = unfilteredChains[key]; + return obj; + }, {} as Chains); + const filterChains = ( chains: Record, networkIds: Set, @@ -187,9 +200,9 @@ export const NetworksDropdown = ({ onChange }: { onChange: (options: any) => any .filter(value => typeof value === "number") as number[], ); - const filteredChains = filterChains(chains, networkIds, existingChainIds); + const filteredChainsForModal = filterChains(filteredChains, networkIds, existingChainIds); - const modalChains = mapChainsToOptions(filteredChains).filter(chain => + const modalChains = mapChainsToOptions(filteredChainsForModal).filter(chain => `${chain.label} ${chain.value}`.toLowerCase().includes(searchTerm.toLowerCase()), ); diff --git a/packages/nextjs/components/blockexplorer/SearchBar.tsx b/packages/nextjs/components/blockexplorer/SearchBar.tsx index 01515b45..86b6b346 100644 --- a/packages/nextjs/components/blockexplorer/SearchBar.tsx +++ b/packages/nextjs/components/blockexplorer/SearchBar.tsx @@ -14,7 +14,7 @@ export const SearchBar = () => { event.preventDefault(); if (isHex(searchInput)) { try { - const tx = await client.getTransaction({ hash: searchInput }); + const tx = await client?.getTransaction({ hash: searchInput }); if (tx) { router.push(`/blockexplorer/transaction/${searchInput}`); return; diff --git a/packages/nextjs/components/scaffold-eth/Address.tsx b/packages/nextjs/components/scaffold-eth/Address.tsx index 977e461f..0a608ae8 100644 --- a/packages/nextjs/components/scaffold-eth/Address.tsx +++ b/packages/nextjs/components/scaffold-eth/Address.tsx @@ -3,6 +3,7 @@ import { AccountAvatar } from "../AccountAvatar"; import { CopyToClipboard } from "react-copy-to-clipboard"; import { Address as AddressType, isAddress } from "viem"; import { hardhat } from "viem/chains"; +import { normalize } from "viem/ens"; import { useEnsAvatar, useEnsName } from "wagmi"; import { CheckCircleIcon, DocumentDuplicateIcon } from "@heroicons/react/24/outline"; import { useTargetNetwork } from "~~/hooks/scaffold-eth/useTargetNetwork"; @@ -35,12 +36,20 @@ export const Address = ({ address, disableAddressLink, format, size = "base" }: const { targetNetwork } = useTargetNetwork(); - const { data: fetchedEns } = useEnsName({ address, enabled: isAddress(address ?? ""), chainId: 1 }); + const { data: fetchedEns } = useEnsName({ + address: address, + chainId: 1, + query: { + enabled: isAddress(address ?? ""), + }, + }); const { data: fetchedEnsAvatar } = useEnsAvatar({ - name: fetchedEns, - enabled: Boolean(fetchedEns), + name: fetchedEns ? normalize(fetchedEns) : undefined, chainId: 1, - cacheTime: 30_000, + query: { + enabled: Boolean(fetchedEns), + gcTime: 30_000, + }, }); // We need to apply this pattern to avoid Hydration errors. diff --git a/packages/nextjs/components/scaffold-eth/Contract/DisplayVariable.tsx b/packages/nextjs/components/scaffold-eth/Contract/DisplayVariable.tsx index 05078ade..9e3df5c1 100644 --- a/packages/nextjs/components/scaffold-eth/Contract/DisplayVariable.tsx +++ b/packages/nextjs/components/scaffold-eth/Contract/DisplayVariable.tsx @@ -2,12 +2,12 @@ import { useEffect } from "react"; import { InheritanceTooltip } from "./InheritanceTooltip"; import { Abi, AbiFunction } from "abitype"; import { Address } from "viem"; -import { useContractRead } from "wagmi"; +import { useReadContract } from "wagmi"; import { ArrowPathIcon } from "@heroicons/react/24/outline"; import { displayTxResult } from "~~/components/scaffold-eth"; import { useAnimationConfig } from "~~/hooks/scaffold-eth"; import { useAbiNinjaState } from "~~/services/store/store"; -import { notification } from "~~/utils/scaffold-eth"; +import { getParsedError, notification } from "~~/utils/scaffold-eth"; type DisplayVariableProps = { contractAddress: Address; @@ -29,16 +29,21 @@ export const DisplayVariable = ({ data: result, isFetching, refetch, - } = useContractRead({ + error, + } = useReadContract({ address: contractAddress, functionName: abiFunction.name, abi: abi, chainId: mainChainId, - onError: error => { - notification.error(error.message); - }, }); + useEffect(() => { + if (error) { + const parsedError = getParsedError(error); + notification.error(parsedError); + } + }, [error]); + const { showAnimation } = useAnimationConfig(result); useEffect(() => { diff --git a/packages/nextjs/components/scaffold-eth/Contract/MethodSelector.tsx b/packages/nextjs/components/scaffold-eth/Contract/MethodSelector.tsx index 7b99a249..de0bedf2 100644 --- a/packages/nextjs/components/scaffold-eth/Contract/MethodSelector.tsx +++ b/packages/nextjs/components/scaffold-eth/Contract/MethodSelector.tsx @@ -1,4 +1,4 @@ -import { useState } from "react"; +import { type KeyboardEvent, useState } from "react"; import { AugmentedAbiFunction } from "./ContractUI"; import { ChevronDownIcon, ChevronRightIcon, XMarkIcon } from "@heroicons/react/24/outline"; @@ -30,6 +30,14 @@ export const MethodSelector = ({ return abi.some(method => method.uid === uid); }; + const callOnMethodSelectOnSpaceOrEnter = (event: KeyboardEvent, uid: string) => { + if (event.key === " " || event.key === "Enter") { + event.preventDefault(); + onMethodSelect(uid); + event.stopPropagation(); + } + }; + return (
@@ -54,22 +62,31 @@ export const MethodSelector = ({
{readMethods.map(method => (
- )} - +
))}
@@ -93,10 +110,13 @@ export const MethodSelector = ({
{writeMethods.map((method, index) => (
- )} - +
))} diff --git a/packages/nextjs/components/scaffold-eth/Contract/ReadOnlyFunctionForm.tsx b/packages/nextjs/components/scaffold-eth/Contract/ReadOnlyFunctionForm.tsx index de1a8e74..9f3fa49a 100644 --- a/packages/nextjs/components/scaffold-eth/Contract/ReadOnlyFunctionForm.tsx +++ b/packages/nextjs/components/scaffold-eth/Contract/ReadOnlyFunctionForm.tsx @@ -1,19 +1,18 @@ -import { useState } from "react"; +import { useEffect, useState } from "react"; import { InheritanceTooltip } from "./InheritanceTooltip"; import { Abi, AbiFunction } from "abitype"; import { Address } from "viem"; -import { useContractRead } from "wagmi"; +import { useReadContract } from "wagmi"; import { ContractInput, displayTxResult, getFunctionInputKey, getInitialFormState, getParsedContractFunctionArgs, - getParsedError, transformAbiFunction, } from "~~/components/scaffold-eth"; import { useAbiNinjaState } from "~~/services/store/store"; -import { notification } from "~~/utils/scaffold-eth"; +import { getParsedError, notification } from "~~/utils/scaffold-eth"; type ReadOnlyFunctionFormProps = { contractAddress: Address; @@ -32,19 +31,25 @@ export const ReadOnlyFunctionForm = ({ const [form, setForm] = useState>(() => getInitialFormState(abiFunction)); const [result, setResult] = useState(); - const { isFetching, refetch } = useContractRead({ + const { isFetching, refetch, error } = useReadContract({ address: contractAddress, functionName: abiFunction.name, abi: abi, args: getParsedContractFunctionArgs(form), - enabled: false, chainId: mainChainId, - onError: (error: any) => { - const parsedErrror = getParsedError(error); - notification.error(parsedErrror); + query: { + enabled: false, + retry: false, }, }); + useEffect(() => { + if (error) { + const parsedError = getParsedError(error); + notification.error(parsedError); + } + }, [error]); + const transformedFunction = transformAbiFunction(abiFunction); const inputElements = transformedFunction.inputs.map((input, inputIndex) => { const key = getFunctionInputKey(abiFunction.name, input, inputIndex); diff --git a/packages/nextjs/components/scaffold-eth/Contract/WriteOnlyFunctionForm.tsx b/packages/nextjs/components/scaffold-eth/Contract/WriteOnlyFunctionForm.tsx index 7a761244..b5360377 100644 --- a/packages/nextjs/components/scaffold-eth/Contract/WriteOnlyFunctionForm.tsx +++ b/packages/nextjs/components/scaffold-eth/Contract/WriteOnlyFunctionForm.tsx @@ -3,7 +3,7 @@ import { InheritanceTooltip } from "./InheritanceTooltip"; import { useConnectModal } from "@rainbow-me/rainbowkit"; import { Abi, AbiFunction } from "abitype"; import { Address, TransactionReceipt } from "viem"; -import { useAccount, useContractWrite, useNetwork, useWaitForTransaction, useWalletClient } from "wagmi"; +import { useAccount, useWaitForTransactionReceipt, useWriteContract } from "wagmi"; import { ContractInput, IntegerInput, @@ -11,13 +11,10 @@ import { getFunctionInputKey, getInitialFormState, getParsedContractFunctionArgs, - getParsedError, transformAbiFunction, - tryConvertingToBigInt, } from "~~/components/scaffold-eth"; import { useTransactor } from "~~/hooks/scaffold-eth"; import { useAbiNinjaState } from "~~/services/store/store"; -import { notification } from "~~/utils/scaffold-eth"; type WriteOnlyFunctionFormProps = { abi: Abi; @@ -37,48 +34,37 @@ export const WriteOnlyFunctionForm = ({ const mainChainId = useAbiNinjaState(state => state.mainChainId); const [form, setForm] = useState>(() => getInitialFormState(abiFunction)); const [txValue, setTxValue] = useState(""); - const { chain } = useNetwork(); + const { chain } = useAccount(); const writeTxn = useTransactor(); const { address: connectedAddress } = useAccount(); const { openConnectModal } = useConnectModal(); const wrongNetwork = !chain || chain?.id !== mainChainId; - const walletClient = useWalletClient({ chainId: mainChainId }); - const { - data: result, - isLoading, - writeAsync, - } = useContractWrite({ - mode: "prepared", // Workaround to avoid simulating and throwing e.g. "execution reverted: ERC20: burn from the zero address" - request: { - account: walletClient.data?.account ?? "", - address: contractAddress, - functionName: abiFunction.name, - chainId: mainChainId, - chain: { id: mainChainId } as any, - abi: abi, - args: getParsedContractFunctionArgs(form), - value: tryConvertingToBigInt(txValue, 0n), - }, - }); + const { data: result, isPending, writeContractAsync } = useWriteContract(); const handleWrite = async () => { - if (writeAsync) { + if (writeContractAsync) { try { - BigInt(txValue); // Ensure no ignored errors from tryConvertingToBigInt - const makeWriteWithParams = () => writeAsync(); + const makeWriteWithParams = () => + writeContractAsync({ + address: contractAddress, + functionName: abiFunction.name, + abi: abi, + chainId: mainChainId, + args: getParsedContractFunctionArgs(form), + value: BigInt(txValue), + }); await writeTxn(makeWriteWithParams); onChange(); } catch (e: any) { - const message = getParsedError(e); - notification.error(message); + console.error("⚡️ ~ file: WriteOnlyFunctionForm.tsx:handleWrite ~ error", e); } } }; const [displayedTxResult, setDisplayedTxResult] = useState(); - const { data: txResult } = useWaitForTransaction({ - hash: result?.hash, + const { data: txResult } = useWaitForTransactionReceipt({ + hash: result, }); useEffect(() => { setDisplayedTxResult(txResult); @@ -141,8 +127,8 @@ export const WriteOnlyFunctionForm = ({ }`} data-tip={`${wrongNetwork && "Wrong network"}`} > - diff --git a/packages/nextjs/components/scaffold-eth/Contract/utilsContract.tsx b/packages/nextjs/components/scaffold-eth/Contract/utilsContract.tsx index a57d3278..2a89ae15 100644 --- a/packages/nextjs/components/scaffold-eth/Contract/utilsContract.tsx +++ b/packages/nextjs/components/scaffold-eth/Contract/utilsContract.tsx @@ -1,5 +1,4 @@ import { AbiFunction, AbiParameter } from "abitype"; -import { BaseError as BaseViemError, DecodeErrorResultReturnType } from "viem"; import { AbiParameterTuple } from "~~/utils/scaffold-eth/contract"; /** @@ -140,45 +139,6 @@ const transformAbiFunction = (abiFunction: AbiFunction): AbiFunction => { }; }; -/** - * Parses an viem/wagmi error to get a displayable string - * @param e - error object - * @returns parsed error string - */ -const getParsedError = (e: any): string => { - let message: string = e.message ?? "An unknown error occurred"; - if (e instanceof BaseViemError) { - if (e.details) { - message = e.details; - } else if (e.shortMessage) { - message = e.shortMessage; - const cause = e.cause as { data?: DecodeErrorResultReturnType } | undefined; - // if its not generic error, append custom error name and its args to message - if (cause?.data && cause.data?.abiItem?.name !== "Error") { - const customErrorArgs = cause.data.args?.toString() ?? ""; - message = `${message.replace(/reverted\.$/, "reverted with following reason:")}\n${ - cause.data.errorName - }(${customErrorArgs})`; - } - } else if (e.message) { - message = e.message; - } else if (e.name) { - message = e.name; - } - } - - return message; -}; - -const tryConvertingToBigInt = (value: string | bigint, fallback: bigint) => { - try { - return BigInt(value); - } catch (err) { - // Ignore error - return fallback; - } -}; - export { getFunctionInputKey, getInitialFormState, @@ -186,6 +146,4 @@ export { getInitialTupleFormState, getInitialTupleArrayFormState, transformAbiFunction, - getParsedError, - tryConvertingToBigInt, }; diff --git a/packages/nextjs/components/scaffold-eth/Faucet.tsx b/packages/nextjs/components/scaffold-eth/Faucet.tsx index 3b070326..6c502fcc 100644 --- a/packages/nextjs/components/scaffold-eth/Faucet.tsx +++ b/packages/nextjs/components/scaffold-eth/Faucet.tsx @@ -1,9 +1,9 @@ import { useEffect, useState } from "react"; import { Address as AddressType, createWalletClient, http, parseEther } from "viem"; import { hardhat } from "viem/chains"; -import { useNetwork } from "wagmi"; +import { useAccount } from "wagmi"; import { BanknotesIcon } from "@heroicons/react/24/outline"; -import { Address, AddressInput, Balance, EtherInput, getParsedError } from "~~/components/scaffold-eth"; +import { Address, AddressInput, Balance, EtherInput } from "~~/components/scaffold-eth"; import { useTransactor } from "~~/hooks/scaffold-eth"; import { notification } from "~~/utils/scaffold-eth"; @@ -24,7 +24,7 @@ export const Faucet = () => { const [faucetAddress, setFaucetAddress] = useState(); const [sendValue, setSendValue] = useState(""); - const { chain: ConnectedChain } = useNetwork(); + const { chain: ConnectedChain } = useAccount(); const faucetTxn = useTransactor(localWalletClient); @@ -53,7 +53,7 @@ export const Faucet = () => { }, []); const sendETH = async () => { - if (!faucetAddress) { + if (!faucetAddress || !inputAddress) { return; } try { @@ -62,15 +62,12 @@ export const Faucet = () => { to: inputAddress, value: parseEther(sendValue as `${number}`), account: faucetAddress, - chain: hardhat, }); setLoading(false); setInputAddress(undefined); setSendValue(""); } catch (error) { - const parsedError = getParsedError(error); console.error("⚡️ ~ file: Faucet.tsx:sendETH ~ error", error); - notification.error(parsedError); setLoading(false); } }; @@ -82,7 +79,7 @@ export const Faucet = () => { return (
-
  • diff --git a/packages/nextjs/components/scaffold-eth/RainbowKitCustomConnectButton/index.tsx b/packages/nextjs/components/scaffold-eth/RainbowKitCustomConnectButton/index.tsx index ed991aad..d9ccc68f 100644 --- a/packages/nextjs/components/scaffold-eth/RainbowKitCustomConnectButton/index.tsx +++ b/packages/nextjs/components/scaffold-eth/RainbowKitCustomConnectButton/index.tsx @@ -4,7 +4,7 @@ import { AddressQRCodeModal } from "./AddressQRCodeModal"; import { WrongNetworkDropdown } from "./WrongNetworkDropdown"; import { ConnectButton } from "@rainbow-me/rainbowkit"; import { Address } from "viem"; -import { useAutoConnect, useNetworkColor } from "~~/hooks/scaffold-eth"; +import { useNetworkColor } from "~~/hooks/scaffold-eth"; import { useTargetNetwork } from "~~/hooks/scaffold-eth/useTargetNetwork"; import { useAbiNinjaState } from "~~/services/store/store"; import { getBlockExplorerAddressLink } from "~~/utils/scaffold-eth"; @@ -13,7 +13,6 @@ import { getBlockExplorerAddressLink } from "~~/utils/scaffold-eth"; * Custom Wagmi Connect Button (watch balance + custom design) */ export const RainbowKitCustomConnectButton = () => { - useAutoConnect(); const mainChainId = useAbiNinjaState(state => state.mainChainId); const networkColor = useNetworkColor(); const { targetNetwork } = useTargetNetwork(); diff --git a/packages/nextjs/hooks/scaffold-eth/index.ts b/packages/nextjs/hooks/scaffold-eth/index.ts index 10862fff..f6cc34e3 100644 --- a/packages/nextjs/hooks/scaffold-eth/index.ts +++ b/packages/nextjs/hooks/scaffold-eth/index.ts @@ -1,16 +1,17 @@ -export * from "./useAccountBalance"; export * from "./useAnimationConfig"; export * from "./useBurnerWallet"; +export * from "./useContractLogs"; export * from "./useDeployedContractInfo"; -export * from "./useNativeCurrencyPrice"; +export * from "./useFetchBlocks"; export * from "./useNetworkColor"; export * from "./useOutsideClick"; export * from "./useScaffoldContract"; -export * from "./useScaffoldContractRead"; -export * from "./useScaffoldContractWrite"; -export * from "./useScaffoldEventSubscriber"; export * from "./useScaffoldEventHistory"; +export * from "./useScaffoldReadContract"; +export * from "./useScaffoldWatchContractEvent"; +export * from "./useScaffoldWriteContract"; +export * from "./useTargetNetwork"; export * from "./useTransactor"; -export * from "./useFetchBlocks"; -export * from "./useContractLogs"; -export * from "./useAutoConnect"; +export * from "./useWatchBalance"; +export * from "./useNativeCurrencyPrice"; +export * from "./useAccountBalance"; diff --git a/packages/nextjs/hooks/scaffold-eth/useAccountBalance.ts b/packages/nextjs/hooks/scaffold-eth/useAccountBalance.ts index b52fb219..94459e36 100644 --- a/packages/nextjs/hooks/scaffold-eth/useAccountBalance.ts +++ b/packages/nextjs/hooks/scaffold-eth/useAccountBalance.ts @@ -1,7 +1,8 @@ import { useCallback, useEffect, useState } from "react"; import { useTargetNetwork } from "./useTargetNetwork"; +import { useQueryClient } from "@tanstack/react-query"; import { Address } from "viem"; -import { useBalance } from "wagmi"; +import { useBalance, useBlockNumber } from "wagmi"; import { useGlobalState } from "~~/services/store/store"; export function useAccountBalance(address?: Address) { @@ -9,17 +10,24 @@ export function useAccountBalance(address?: Address) { const [balance, setBalance] = useState(null); const price = useGlobalState(state => state.nativeCurrencyPrice); const { targetNetwork } = useTargetNetwork(); + const queryClient = useQueryClient(); + const { data: blockNumber } = useBlockNumber({ watch: true, chainId: targetNetwork.id }); const { data: fetchedBalanceData, isError, isLoading, + queryKey, } = useBalance({ address, - watch: true, chainId: targetNetwork.id, }); + useEffect(() => { + queryClient.invalidateQueries({ queryKey }); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [blockNumber]); + const onToggleBalance = useCallback(() => { if (price > 0) { setIsEthBalance(!isEthBalance); diff --git a/packages/nextjs/hooks/scaffold-eth/useAutoConnect.ts b/packages/nextjs/hooks/scaffold-eth/useAutoConnect.ts deleted file mode 100644 index 36260f21..00000000 --- a/packages/nextjs/hooks/scaffold-eth/useAutoConnect.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { useEffect } from "react"; -import { useEffectOnce, useLocalStorage, useReadLocalStorage } from "usehooks-ts"; -import { Chain, hardhat } from "viem/chains"; -import { Connector, useAccount, useConnect } from "wagmi"; -import scaffoldConfig from "~~/scaffold.config"; -import { burnerWalletId } from "~~/services/web3/wagmi-burner/BurnerConnector"; -import { getTargetNetworks } from "~~/utils/scaffold-eth"; - -const SCAFFOLD_WALLET_STROAGE_KEY = "scaffoldEth2.wallet"; -const WAGMI_WALLET_STORAGE_KEY = "wagmi.wallet"; - -// ID of the SAFE connector instance -const SAFE_ID = "safe"; - -/** - * This function will get the initial wallet connector (if any), the app will connect to - * @param initialNetwork - * @param previousWalletId - * @param connectors - * @returns - */ -const getInitialConnector = ( - initialNetwork: Chain, - previousWalletId: string, - connectors: Connector[], -): { connector: Connector | undefined; chainId?: number } | undefined => { - // Look for the SAFE connector instance and connect to it instantly if loaded in SAFE frame - const safeConnectorInstance = connectors.find(connector => connector.id === SAFE_ID && connector.ready); - - if (safeConnectorInstance) { - return { connector: safeConnectorInstance }; - } - - const allowBurner = scaffoldConfig.onlyLocalBurnerWallet ? initialNetwork.id === hardhat.id : true; - - if (!previousWalletId) { - // The user was not connected to a wallet - if (allowBurner && scaffoldConfig.walletAutoConnect) { - const connector = connectors.find(f => f.id === burnerWalletId); - return { connector, chainId: initialNetwork.id }; - } - } else { - // the user was connected to wallet - if (scaffoldConfig.walletAutoConnect) { - if (previousWalletId === burnerWalletId && !allowBurner) { - return; - } - - const connector = connectors.find(f => f.id === previousWalletId); - return { connector }; - } - } - - return undefined; -}; - -/** - * Automatically connect to a wallet/connector based on config and prior wallet - */ -export const useAutoConnect = (): void => { - const wagmiWalletValue = useReadLocalStorage(WAGMI_WALLET_STORAGE_KEY); - const [walletId, setWalletId] = useLocalStorage(SCAFFOLD_WALLET_STROAGE_KEY, wagmiWalletValue ?? ""); - const connectState = useConnect(); - const accountState = useAccount(); - - useEffect(() => { - if (accountState.isConnected) { - // user is connected, set walletName - setWalletId(accountState.connector?.id ?? ""); - } else { - // user has disconnected, reset walletName - window.localStorage.setItem(WAGMI_WALLET_STORAGE_KEY, JSON.stringify("")); - setWalletId(""); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [accountState.isConnected, accountState.connector?.name]); - - useEffectOnce(() => { - const initialConnector = getInitialConnector(getTargetNetworks()[0], walletId, connectState.connectors); - - if (initialConnector?.connector) { - connectState.connect({ connector: initialConnector.connector, chainId: initialConnector.chainId }); - } - }); -}; diff --git a/packages/nextjs/hooks/scaffold-eth/useBurnerWallet.ts b/packages/nextjs/hooks/scaffold-eth/useBurnerWallet.ts index bb757061..019ae783 100644 --- a/packages/nextjs/hooks/scaffold-eth/useBurnerWallet.ts +++ b/packages/nextjs/hooks/scaffold-eth/useBurnerWallet.ts @@ -1,8 +1,10 @@ import { useCallback, useEffect, useRef, useState } from "react"; +import { useTargetNetwork } from "./useTargetNetwork"; import { useLocalStorage } from "usehooks-ts"; import { Chain, Hex, HttpTransport, PrivateKeyAccount, createWalletClient, http } from "viem"; +import { WalletClient } from "viem"; import { generatePrivateKey, privateKeyToAccount } from "viem/accounts"; -import { WalletClient, usePublicClient } from "wagmi"; +import { usePublicClient } from "wagmi"; const burnerStorageKey = "scaffoldEth2.burnerWallet.sk"; @@ -59,7 +61,8 @@ type BurnerAccount = { export const useBurnerWallet = (): BurnerAccount => { const [burnerSk, setBurnerSk] = useLocalStorage(burnerStorageKey, newDefaultPrivateKey); - const publicClient = usePublicClient(); + const { targetNetwork } = useTargetNetwork(); + const publicClient = usePublicClient({ chainId: targetNetwork.id }); const [walletClient, setWalletClient] = useState>(); const [generatedPrivateKey, setGeneratedPrivateKey] = useState("0x"); const [account, setAccount] = useState(); @@ -97,14 +100,14 @@ export const useBurnerWallet = (): BurnerAccount => { console.log("⚠ Could not create burner wallet"); } // eslint-disable-next-line react-hooks/exhaustive-deps - }, [publicClient.chain.id]); + }, [publicClient?.chain.id]); /** * Load wallet with burnerSk * connect and set wallet, once we have burnerSk and valid provider */ useEffect(() => { - if (burnerSk && publicClient.chain.id) { + if (burnerSk && publicClient?.chain.id) { let wallet: WalletClient | undefined = undefined; if (isValidSk(burnerSk)) { const randomAccount = privateKeyToAccount(burnerSk); @@ -130,7 +133,7 @@ export const useBurnerWallet = (): BurnerAccount => { } // eslint-disable-next-line react-hooks/exhaustive-deps - }, [burnerSk, publicClient.chain.id]); + }, [burnerSk, publicClient?.chain.id]); return { walletClient, diff --git a/packages/nextjs/hooks/scaffold-eth/useContractLogs.ts b/packages/nextjs/hooks/scaffold-eth/useContractLogs.ts index a5cf7d0a..27775d5b 100644 --- a/packages/nextjs/hooks/scaffold-eth/useContractLogs.ts +++ b/packages/nextjs/hooks/scaffold-eth/useContractLogs.ts @@ -1,13 +1,16 @@ import { useEffect, useState } from "react"; +import { useTargetNetwork } from "./useTargetNetwork"; import { Address, Log } from "viem"; import { usePublicClient } from "wagmi"; export const useContractLogs = (address: Address) => { const [logs, setLogs] = useState([]); - const client = usePublicClient(); + const { targetNetwork } = useTargetNetwork(); + const client = usePublicClient({ chainId: targetNetwork.id }); useEffect(() => { const fetchLogs = async () => { + if (!client) return console.error("Client not found"); try { const existingLogs = await client.getLogs({ address: address, @@ -21,8 +24,8 @@ export const useContractLogs = (address: Address) => { }; fetchLogs(); - return client.watchBlockNumber({ - onBlockNumber: async (blockNumber, prevBlockNumber) => { + return client?.watchBlockNumber({ + onBlockNumber: async (_blockNumber, prevBlockNumber) => { const newLogs = await client.getLogs({ address: address, fromBlock: prevBlockNumber, diff --git a/packages/nextjs/hooks/scaffold-eth/useDeployedContractInfo.ts b/packages/nextjs/hooks/scaffold-eth/useDeployedContractInfo.ts index 69b961ff..8f649c38 100644 --- a/packages/nextjs/hooks/scaffold-eth/useDeployedContractInfo.ts +++ b/packages/nextjs/hooks/scaffold-eth/useDeployedContractInfo.ts @@ -5,8 +5,8 @@ import { usePublicClient } from "wagmi"; import { Contract, ContractCodeStatus, ContractName, contracts } from "~~/utils/scaffold-eth/contract"; /** - * Gets the matching contract info from the contracts file generated by `yarn deploy` - * @param contractName - name of deployed contract + * Gets the matching contract info for the provided contract name from the contracts present in deployedContracts.ts + * and externalContracts.ts corresponding to targetNetworks configured in scaffold.config.ts */ export const useDeployedContractInfo = (contractName: TContractName) => { const isMounted = useIsMounted(); @@ -17,23 +17,28 @@ export const useDeployedContractInfo = (cont useEffect(() => { const checkContractDeployment = async () => { - if (!deployedContract) { - setStatus(ContractCodeStatus.NOT_FOUND); - return; - } - const code = await publicClient.getBytecode({ - address: deployedContract.address, - }); + try { + if (!isMounted() || !publicClient) return; - if (!isMounted()) { - return; - } - // If contract code is `0x` => no contract deployed on that address - if (code === "0x") { + if (!deployedContract) { + setStatus(ContractCodeStatus.NOT_FOUND); + return; + } + + const code = await publicClient.getBytecode({ + address: deployedContract.address, + }); + + // If contract code is `0x` => no contract deployed on that address + if (code === "0x") { + setStatus(ContractCodeStatus.NOT_FOUND); + return; + } + setStatus(ContractCodeStatus.DEPLOYED); + } catch (e) { + console.error(e); setStatus(ContractCodeStatus.NOT_FOUND); - return; } - setStatus(ContractCodeStatus.DEPLOYED); }; checkContractDeployment(); diff --git a/packages/nextjs/hooks/scaffold-eth/useOutsideClick.ts b/packages/nextjs/hooks/scaffold-eth/useOutsideClick.ts index 28a44b5d..d7f2e0e1 100644 --- a/packages/nextjs/hooks/scaffold-eth/useOutsideClick.ts +++ b/packages/nextjs/hooks/scaffold-eth/useOutsideClick.ts @@ -1,7 +1,9 @@ import React, { useEffect } from "react"; /** - * Check if a click was made outside the passed ref + * Handles clicks outside of passed ref element + * @param ref - react ref of the element + * @param callback - callback function to call when clicked outside */ export const useOutsideClick = (ref: React.RefObject, callback: { (): void }) => { useEffect(() => { diff --git a/packages/nextjs/hooks/scaffold-eth/useScaffoldContract.ts b/packages/nextjs/hooks/scaffold-eth/useScaffoldContract.ts index 5dd782a9..1add8cba 100644 --- a/packages/nextjs/hooks/scaffold-eth/useScaffoldContract.ts +++ b/packages/nextjs/hooks/scaffold-eth/useScaffoldContract.ts @@ -1,18 +1,20 @@ -import { Account, Address, Chain, Transport, getContract } from "viem"; -import { PublicClient, usePublicClient } from "wagmi"; -import { GetWalletClientResult } from "wagmi/actions"; +import { useTargetNetwork } from "./useTargetNetwork"; +import { Account, Address, Chain, Client, Transport, getContract } from "viem"; +import { usePublicClient } from "wagmi"; +import { GetWalletClientReturnType } from "wagmi/actions"; import { useDeployedContractInfo } from "~~/hooks/scaffold-eth"; import { Contract, ContractName } from "~~/utils/scaffold-eth/contract"; /** - * Gets a deployed contract by contract name and returns a contract instance - * @param config - The config settings - * @param config.contractName - Deployed contract name - * @param config.walletClient - An viem wallet client instance (optional) + * Gets a viem instance of the contract present in deployedContracts.ts or externalContracts.ts corresponding to + * targetNetworks configured in scaffold.config.ts. Optional walletClient can be passed for doing write transactions. + * @param config - The config settings for the hook + * @param config.contractName - deployed contract name + * @param config.walletClient - optional walletClient from wagmi useWalletClient hook can be passed for doing write transactions */ export const useScaffoldContract = < TContractName extends ContractName, - TWalletClient extends Exclude | undefined, + TWalletClient extends Exclude | undefined, >({ contractName, walletClient, @@ -21,23 +23,30 @@ export const useScaffoldContract = < walletClient?: TWalletClient | null; }) => { const { data: deployedContractData, isLoading: deployedContractLoading } = useDeployedContractInfo(contractName); - const publicClient = usePublicClient(); + const { targetNetwork } = useTargetNetwork(); + const publicClient = usePublicClient({ chainId: targetNetwork.id }); let contract = undefined; - if (deployedContractData) { + if (deployedContractData && publicClient) { contract = getContract< Transport, Address, Contract["abi"], + TWalletClient extends Exclude + ? { + public: Client; + wallet: TWalletClient; + } + : { public: Client }, Chain, - Account, - PublicClient, - TWalletClient + Account >({ address: deployedContractData.address, abi: deployedContractData.abi as Contract["abi"], - walletClient: walletClient ? walletClient : undefined, - publicClient, + client: { + public: publicClient, + wallet: walletClient ? walletClient : undefined, + } as any, }); } diff --git a/packages/nextjs/hooks/scaffold-eth/useScaffoldContractRead.ts b/packages/nextjs/hooks/scaffold-eth/useScaffoldContractRead.ts deleted file mode 100644 index 55cb76dd..00000000 --- a/packages/nextjs/hooks/scaffold-eth/useScaffoldContractRead.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { useTargetNetwork } from "./useTargetNetwork"; -import type { ExtractAbiFunctionNames } from "abitype"; -import { useContractRead } from "wagmi"; -import { useDeployedContractInfo } from "~~/hooks/scaffold-eth"; -import { - AbiFunctionReturnType, - ContractAbi, - ContractName, - UseScaffoldReadConfig, -} from "~~/utils/scaffold-eth/contract"; - -/** - * Wrapper for wagmi's useContractRead hook which automatically loads (by name) - * the contract ABI and address from the deployed contracts - * @param config - The config settings, including extra wagmi configuration - * @param config.contractName - deployed contract name - * @param config.functionName - name of the function to be called - * @param config.args - args to be passed to the function call - */ -export const useScaffoldContractRead = < - TContractName extends ContractName, - TFunctionName extends ExtractAbiFunctionNames, "pure" | "view">, ->({ - contractName, - functionName, - args, - ...readConfig -}: UseScaffoldReadConfig) => { - const { data: deployedContract } = useDeployedContractInfo(contractName); - const { targetNetwork } = useTargetNetwork(); - - return useContractRead({ - chainId: targetNetwork.id, - functionName, - address: deployedContract?.address, - abi: deployedContract?.abi, - watch: true, - args, - enabled: !Array.isArray(args) || !args.some(arg => arg === undefined), - ...(readConfig as any), - }) as Omit, "data" | "refetch"> & { - data: AbiFunctionReturnType | undefined; - refetch: (options?: { - throwOnError: boolean; - cancelRefetch: boolean; - }) => Promise>; - }; -}; diff --git a/packages/nextjs/hooks/scaffold-eth/useScaffoldContractWrite.ts b/packages/nextjs/hooks/scaffold-eth/useScaffoldContractWrite.ts deleted file mode 100644 index 8c09582e..00000000 --- a/packages/nextjs/hooks/scaffold-eth/useScaffoldContractWrite.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { useState } from "react"; -import { useTargetNetwork } from "./useTargetNetwork"; -import { Abi, ExtractAbiFunctionNames } from "abitype"; -import { useContractWrite, useNetwork } from "wagmi"; -import { getParsedError } from "~~/components/scaffold-eth"; -import { useDeployedContractInfo, useTransactor } from "~~/hooks/scaffold-eth"; -import { notification } from "~~/utils/scaffold-eth"; -import { ContractAbi, ContractName, UseScaffoldWriteConfig } from "~~/utils/scaffold-eth/contract"; - -type UpdatedArgs = Parameters>["writeAsync"]>[0]; - -/** - * Wrapper for wagmi's useContractWrite hook (with config prepared by usePrepareContractWrite hook) - * which automatically loads (by name) the contract ABI and address from the deployed contracts - * @param config - The config settings, including extra wagmi configuration - * @param config.contractName - deployed contract name - * @param config.functionName - name of the function to be called - * @param config.args - arguments for the function - * @param config.value - value in ETH that will be sent with transaction - */ -export const useScaffoldContractWrite = < - TContractName extends ContractName, - TFunctionName extends ExtractAbiFunctionNames, "nonpayable" | "payable">, ->({ - contractName, - functionName, - args, - value, - onBlockConfirmation, - blockConfirmations, - ...writeConfig -}: UseScaffoldWriteConfig) => { - const { data: deployedContractData } = useDeployedContractInfo(contractName); - const { chain } = useNetwork(); - const writeTx = useTransactor(); - const [isMining, setIsMining] = useState(false); - const { targetNetwork } = useTargetNetwork(); - - const wagmiContractWrite = useContractWrite({ - chainId: targetNetwork.id, - address: deployedContractData?.address, - abi: deployedContractData?.abi as Abi, - functionName: functionName as any, - args: args as unknown[], - value: value, - ...writeConfig, - }); - - const sendContractWriteTx = async ({ - args: newArgs, - value: newValue, - ...otherConfig - }: { - args?: UseScaffoldWriteConfig["args"]; - value?: UseScaffoldWriteConfig["value"]; - } & UpdatedArgs = {}) => { - if (!deployedContractData) { - notification.error("Target Contract is not deployed, did you forget to run `yarn deploy`?"); - return; - } - if (!chain?.id) { - notification.error("Please connect your wallet"); - return; - } - if (chain?.id !== targetNetwork.id) { - notification.error("You are on the wrong network"); - return; - } - - if (wagmiContractWrite.writeAsync) { - try { - setIsMining(true); - const writeTxResult = await writeTx( - () => - wagmiContractWrite.writeAsync({ - args: newArgs ?? args, - value: newValue ?? value, - ...otherConfig, - }), - { onBlockConfirmation, blockConfirmations }, - ); - - return writeTxResult; - } catch (e: any) { - const message = getParsedError(e); - notification.error(message); - } finally { - setIsMining(false); - } - } else { - notification.error("Contract writer error. Try again."); - return; - } - }; - - return { - ...wagmiContractWrite, - isMining, - // Overwrite wagmi's write async - writeAsync: sendContractWriteTx, - }; -}; diff --git a/packages/nextjs/hooks/scaffold-eth/useScaffoldEventHistory.ts b/packages/nextjs/hooks/scaffold-eth/useScaffoldEventHistory.ts index a8c2b3a8..869bb5c1 100644 --- a/packages/nextjs/hooks/scaffold-eth/useScaffoldEventHistory.ts +++ b/packages/nextjs/hooks/scaffold-eth/useScaffoldEventHistory.ts @@ -1,4 +1,4 @@ -import { useEffect, useMemo, useState } from "react"; +import { useCallback, useEffect, useMemo, useState } from "react"; import { useTargetNetwork } from "./useTargetNetwork"; import { Abi, AbiEvent, ExtractAbiEventNames } from "abitype"; import { useInterval } from "usehooks-ts"; @@ -45,100 +45,102 @@ export const useScaffoldEventHistory = < watch, enabled = true, }: UseScaffoldEventHistoryConfig) => { - const [events, setEvents] = useState(); + const [events, setEvents] = useState([]); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(); const [fromBlockUpdated, setFromBlockUpdated] = useState(fromBlock); const { data: deployedContractData, isLoading: deployedContractLoading } = useDeployedContractInfo(contractName); - const publicClient = usePublicClient(); const { targetNetwork } = useTargetNetwork(); + const publicClient = usePublicClient({ + chainId: targetNetwork.id, + }); - const readEvents = async (fromBlock?: bigint) => { - setIsLoading(true); - try { - if (!deployedContractData) { - throw new Error("Contract not found"); - } + const readEvents = useCallback( + async () => { + setIsLoading(true); + try { + if (!deployedContractData) { + throw new Error("Contract not found"); + } - if (!enabled) { - throw new Error("Hook disabled"); - } + if (!enabled) { + throw new Error("Hook disabled"); + } - const event = (deployedContractData.abi as Abi).find( - part => part.type === "event" && part.name === eventName, - ) as AbiEvent; - - const blockNumber = await publicClient.getBlockNumber({ cacheTime: 0 }); - - if ((fromBlock && blockNumber >= fromBlock) || blockNumber >= fromBlockUpdated) { - const logs = await publicClient.getLogs({ - address: deployedContractData?.address, - event, - args: filters as any, // TODO: check if it works and fix type - fromBlock: fromBlock || fromBlockUpdated, - toBlock: blockNumber, - }); - setFromBlockUpdated(blockNumber + 1n); - - const newEvents = []; - for (let i = logs.length - 1; i >= 0; i--) { - newEvents.push({ - log: logs[i], - args: logs[i].args, - block: - blockData && logs[i].blockHash === null - ? null - : await publicClient.getBlock({ blockHash: logs[i].blockHash as Hash }), - transaction: - transactionData && logs[i].transactionHash !== null - ? await publicClient.getTransaction({ hash: logs[i].transactionHash as Hash }) - : null, - receipt: - receiptData && logs[i].transactionHash !== null - ? await publicClient.getTransactionReceipt({ hash: logs[i].transactionHash as Hash }) - : null, - }); + if (!publicClient) { + throw new Error("Public client not found"); } - if (events && typeof fromBlock === "undefined") { + + const event = (deployedContractData.abi as Abi).find( + part => part.type === "event" && part.name === eventName, + ) as AbiEvent; + + const blockNumber = await publicClient.getBlockNumber({ cacheTime: 0 }); + + if (blockNumber >= fromBlockUpdated) { + const logs = await publicClient.getLogs({ + address: deployedContractData?.address, + event, + args: filters as any, + fromBlock: fromBlockUpdated, + toBlock: blockNumber, + }); + setFromBlockUpdated(blockNumber + 1n); + + const newEvents = []; + for (let i = logs.length - 1; i >= 0; i--) { + newEvents.push({ + log: logs[i], + args: logs[i].args, + block: + blockData && logs[i].blockHash === null + ? null + : await publicClient.getBlock({ blockHash: logs[i].blockHash as Hash }), + transaction: + transactionData && logs[i].transactionHash !== null + ? await publicClient.getTransaction({ hash: logs[i].transactionHash as Hash }) + : null, + receipt: + receiptData && logs[i].transactionHash !== null + ? await publicClient.getTransactionReceipt({ hash: logs[i].transactionHash as Hash }) + : null, + }); + } setEvents([...newEvents, ...events]); - } else { - setEvents(newEvents); + setError(undefined); } - setError(undefined); + } catch (e: any) { + if (events.length > 0) { + setEvents([]); + } + setError(e); + console.error(e); + } finally { + setIsLoading(false); } - } catch (e: any) { - console.error(e); - setEvents(undefined); - setError(e); - } finally { - setIsLoading(false); - } - }; - - useEffect(() => { - readEvents(fromBlock); + }, // eslint-disable-next-line react-hooks/exhaustive-deps - }, [fromBlock, enabled]); + [ + blockData, + deployedContractData, + enabled, + eventName, + events, + // eslint-disable-next-line react-hooks/exhaustive-deps + JSON.stringify(filters, replacer), + fromBlockUpdated, + publicClient, + receiptData, + transactionData, + ], + ); useEffect(() => { if (!deployedContractLoading) { readEvents(); } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [ - publicClient, - contractName, - eventName, - deployedContractLoading, - deployedContractData?.address, - deployedContractData, - // eslint-disable-next-line react-hooks/exhaustive-deps - JSON.stringify(filters, replacer), - blockData, - transactionData, - receiptData, - ]); + }, [readEvents, deployedContractLoading]); useEffect(() => { // Reset the internal state when target network or fromBlock changed @@ -153,7 +155,7 @@ export const useScaffoldEventHistory = < readEvents(); } }, - watch ? (targetNetwork.id !== chains.hardhat.id ? scaffoldConfig.pollingInterval : 4_000) : null, + watch && enabled ? (targetNetwork.id !== chains.hardhat.id ? scaffoldConfig.pollingInterval : 4_000) : null, ); const eventHistoryData = useMemo( diff --git a/packages/nextjs/hooks/scaffold-eth/useScaffoldReadContract.ts b/packages/nextjs/hooks/scaffold-eth/useScaffoldReadContract.ts new file mode 100644 index 00000000..9d9e8f03 --- /dev/null +++ b/packages/nextjs/hooks/scaffold-eth/useScaffoldReadContract.ts @@ -0,0 +1,73 @@ +import { useEffect } from "react"; +import { useTargetNetwork } from "./useTargetNetwork"; +import { QueryObserverResult, RefetchOptions, useQueryClient } from "@tanstack/react-query"; +import type { ExtractAbiFunctionNames } from "abitype"; +import { ReadContractErrorType } from "viem"; +import { useBlockNumber, useReadContract } from "wagmi"; +import { useDeployedContractInfo } from "~~/hooks/scaffold-eth"; +import { + AbiFunctionReturnType, + ContractAbi, + ContractName, + UseScaffoldReadConfig, +} from "~~/utils/scaffold-eth/contract"; + +/** + * Wrapper around wagmi's useContractRead hook which automatically loads (by name) the contract ABI and address from + * the contracts present in deployedContracts.ts & externalContracts.ts corresponding to targetNetworks configured in scaffold.config.ts + * @param config - The config settings, including extra wagmi configuration + * @param config.contractName - deployed contract name + * @param config.functionName - name of the function to be called + * @param config.args - args to be passed to the function call + */ +export const useScaffoldReadContract = < + TContractName extends ContractName, + TFunctionName extends ExtractAbiFunctionNames, "pure" | "view">, +>({ + contractName, + functionName, + args, + ...readConfig +}: UseScaffoldReadConfig) => { + const { data: deployedContract } = useDeployedContractInfo(contractName); + const { targetNetwork } = useTargetNetwork(); + const { query: queryOptions, watch, ...readContractConfig } = readConfig; + // set watch to true by default + const defaultWatch = watch ?? true; + + const readContractHookRes = useReadContract({ + chainId: targetNetwork.id, + functionName, + address: deployedContract?.address, + abi: deployedContract?.abi, + args, + ...(readContractConfig as any), + query: { + enabled: !Array.isArray(args) || !args.some(arg => arg === undefined), + ...queryOptions, + }, + }) as Omit, "data" | "refetch"> & { + data: AbiFunctionReturnType | undefined; + refetch: ( + options?: RefetchOptions | undefined, + ) => Promise, ReadContractErrorType>>; + }; + + const queryClient = useQueryClient(); + const { data: blockNumber } = useBlockNumber({ + watch: defaultWatch, + chainId: targetNetwork.id, + query: { + enabled: defaultWatch, + }, + }); + + useEffect(() => { + if (defaultWatch) { + queryClient.invalidateQueries({ queryKey: readContractHookRes.queryKey }); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [blockNumber]); + + return readContractHookRes; +}; diff --git a/packages/nextjs/hooks/scaffold-eth/useScaffoldEventSubscriber.ts b/packages/nextjs/hooks/scaffold-eth/useScaffoldWatchContractEvent.ts similarity index 60% rename from packages/nextjs/hooks/scaffold-eth/useScaffoldEventSubscriber.ts rename to packages/nextjs/hooks/scaffold-eth/useScaffoldWatchContractEvent.ts index 66fb3e41..844b4a08 100644 --- a/packages/nextjs/hooks/scaffold-eth/useScaffoldEventSubscriber.ts +++ b/packages/nextjs/hooks/scaffold-eth/useScaffoldWatchContractEvent.ts @@ -1,38 +1,37 @@ import { useTargetNetwork } from "./useTargetNetwork"; import { Abi, ExtractAbiEventNames } from "abitype"; import { Log } from "viem"; -import { useContractEvent } from "wagmi"; +import { useWatchContractEvent } from "wagmi"; import { addIndexedArgsToEvent, useDeployedContractInfo } from "~~/hooks/scaffold-eth"; import { ContractAbi, ContractName, UseScaffoldEventConfig } from "~~/utils/scaffold-eth/contract"; /** - * Wrapper for wagmi's useContractEvent which automatically loads (by name) - * the contract ABI and address from the deployed contracts. + * Wrapper around wagmi's useEventSubscriber hook which automatically loads (by name) the contract ABI and + * address from the contracts present in deployedContracts.ts & externalContracts.ts * @param config - The config settings * @param config.contractName - deployed contract name * @param config.eventName - name of the event to listen for - * @param config.listener - the callback that receives events. If only interested in 1 event, call `unwatch` inside of the listener + * @param config.onLogs - the callback that receives events. */ -export const useScaffoldEventSubscriber = < +export const useScaffoldWatchContractEvent = < TContractName extends ContractName, TEventName extends ExtractAbiEventNames>, >({ contractName, eventName, - listener, + onLogs, }: UseScaffoldEventConfig) => { const { data: deployedContractData } = useDeployedContractInfo(contractName); const { targetNetwork } = useTargetNetwork(); - const addInexedArgsToLogs = (logs: Log[]) => logs.map(addIndexedArgsToEvent); - const listenerWithIndexedArgs = (logs: Log[]) => - listener(addInexedArgsToLogs(logs) as Parameters[0]); + const addIndexedArgsToLogs = (logs: Log[]) => logs.map(addIndexedArgsToEvent); + const listenerWithIndexedArgs = (logs: Log[]) => onLogs(addIndexedArgsToLogs(logs) as Parameters[0]); - return useContractEvent({ + return useWatchContractEvent({ address: deployedContractData?.address, abi: deployedContractData?.abi as Abi, chainId: targetNetwork.id, - listener: listenerWithIndexedArgs, + onLogs: listenerWithIndexedArgs, eventName, }); }; diff --git a/packages/nextjs/hooks/scaffold-eth/useScaffoldWriteContract.ts b/packages/nextjs/hooks/scaffold-eth/useScaffoldWriteContract.ts new file mode 100644 index 00000000..4bd903f7 --- /dev/null +++ b/packages/nextjs/hooks/scaffold-eth/useScaffoldWriteContract.ts @@ -0,0 +1,130 @@ +import { useState } from "react"; +import { useTargetNetwork } from "./useTargetNetwork"; +import { MutateOptions } from "@tanstack/react-query"; +import { Abi, ExtractAbiFunctionNames } from "abitype"; +import { Config, UseWriteContractParameters, useAccount, useWriteContract } from "wagmi"; +import { WriteContractErrorType, WriteContractReturnType } from "wagmi/actions"; +import { WriteContractVariables } from "wagmi/query"; +import { useDeployedContractInfo, useTransactor } from "~~/hooks/scaffold-eth"; +import { notification } from "~~/utils/scaffold-eth"; +import { + ContractAbi, + ContractName, + ScaffoldWriteContractOptions, + ScaffoldWriteContractVariables, +} from "~~/utils/scaffold-eth/contract"; + +/** + * Wrapper around wagmi's useWriteContract hook which automatically loads (by name) the contract ABI and address from + * the contracts present in deployedContracts.ts & externalContracts.ts corresponding to targetNetworks configured in scaffold.config.ts + * @param contractName - name of the contract to be written to + * @param writeContractParams - wagmi's useWriteContract parameters + */ +export const useScaffoldWriteContract = ( + contractName: TContractName, + writeContractParams?: UseWriteContractParameters, +) => { + const { chain } = useAccount(); + const writeTx = useTransactor(); + const [isMining, setIsMining] = useState(false); + const { targetNetwork } = useTargetNetwork(); + + const wagmiContractWrite = useWriteContract(writeContractParams); + + const { data: deployedContractData } = useDeployedContractInfo(contractName); + + const sendContractWriteAsyncTx = async < + TFunctionName extends ExtractAbiFunctionNames, "nonpayable" | "payable">, + >( + variables: ScaffoldWriteContractVariables, + options?: ScaffoldWriteContractOptions, + ) => { + if (!deployedContractData) { + notification.error("Target Contract is not deployed, did you forget to run `yarn deploy`?"); + return; + } + + if (!chain?.id) { + notification.error("Please connect your wallet"); + return; + } + if (chain?.id !== targetNetwork.id) { + notification.error("You are on the wrong network"); + return; + } + + try { + setIsMining(true); + const { blockConfirmations, onBlockConfirmation, ...mutateOptions } = options || {}; + const makeWriteWithParams = () => + wagmiContractWrite.writeContractAsync( + { + abi: deployedContractData.abi as Abi, + address: deployedContractData.address, + ...variables, + } as WriteContractVariables, + mutateOptions as + | MutateOptions< + WriteContractReturnType, + WriteContractErrorType, + WriteContractVariables, + unknown + > + | undefined, + ); + const writeTxResult = await writeTx(makeWriteWithParams, { blockConfirmations, onBlockConfirmation }); + + return writeTxResult; + } catch (e: any) { + throw e; + } finally { + setIsMining(false); + } + }; + + const sendContractWriteTx = < + TContractName extends ContractName, + TFunctionName extends ExtractAbiFunctionNames, "nonpayable" | "payable">, + >( + variables: ScaffoldWriteContractVariables, + options?: Omit, + ) => { + if (!deployedContractData) { + notification.error("Target Contract is not deployed, did you forget to run `yarn deploy`?"); + return; + } + if (!chain?.id) { + notification.error("Please connect your wallet"); + return; + } + if (chain?.id !== targetNetwork.id) { + notification.error("You are on the wrong network"); + return; + } + + wagmiContractWrite.writeContract( + { + abi: deployedContractData.abi as Abi, + address: deployedContractData.address, + ...variables, + } as WriteContractVariables, + options as + | MutateOptions< + WriteContractReturnType, + WriteContractErrorType, + WriteContractVariables, + unknown + > + | undefined, + ); + }; + + return { + ...wagmiContractWrite, + isMining, + // Overwrite wagmi's writeContactAsync + writeContractAsync: sendContractWriteAsyncTx, + // Overwrite wagmi's writeContract + writeContract: sendContractWriteTx, + }; +}; diff --git a/packages/nextjs/hooks/scaffold-eth/useTargetNetwork.ts b/packages/nextjs/hooks/scaffold-eth/useTargetNetwork.ts index 17566137..a3eb00cf 100644 --- a/packages/nextjs/hooks/scaffold-eth/useTargetNetwork.ts +++ b/packages/nextjs/hooks/scaffold-eth/useTargetNetwork.ts @@ -1,13 +1,32 @@ -import { mainnet } from "wagmi"; -import { useAbiNinjaState } from "~~/services/store/store"; +import { useEffect, useMemo } from "react"; +import { useAccount } from "wagmi"; +import { useGlobalState } from "~~/services/store/store"; import { ChainWithAttributes, getTargetNetworks } from "~~/utils/scaffold-eth"; +import { NETWORKS_EXTRA_DATA } from "~~/utils/scaffold-eth"; const mainNetworks = getTargetNetworks(); +/** + * Retrieves the connected wallet's network from scaffold.config or defaults to the 0th network in the list if the wallet is not connected. + */ export function useTargetNetwork(): { targetNetwork: ChainWithAttributes } { - const mainChainId = useAbiNinjaState(state => state.mainChainId); - const mainNetwork = mainNetworks.find(network => network.id === mainChainId); + const { chain } = useAccount(); + const targetNetwork = useGlobalState(({ targetNetwork }) => targetNetwork); + const setTargetNetwork = useGlobalState(({ setTargetNetwork }) => setTargetNetwork); - return { - targetNetwork: mainNetwork || mainnet, - }; + useEffect(() => { + const newSelectedNetwork = mainNetworks.find(targetNetwork => targetNetwork.id === chain?.id); + if (newSelectedNetwork && newSelectedNetwork.id !== targetNetwork.id) { + setTargetNetwork(newSelectedNetwork); + } + }, [chain?.id, setTargetNetwork, targetNetwork.id]); + + return useMemo( + () => ({ + targetNetwork: { + ...targetNetwork, + ...NETWORKS_EXTRA_DATA[targetNetwork.id], + }, + }), + [targetNetwork], + ); } diff --git a/packages/nextjs/hooks/scaffold-eth/useTransactor.tsx b/packages/nextjs/hooks/scaffold-eth/useTransactor.tsx index efd74440..966937d4 100644 --- a/packages/nextjs/hooks/scaffold-eth/useTransactor.tsx +++ b/packages/nextjs/hooks/scaffold-eth/useTransactor.tsx @@ -1,15 +1,14 @@ -import { WriteContractResult, getPublicClient } from "@wagmi/core"; -import { Hash, SendTransactionParameters, TransactionReceipt, WalletClient } from "viem"; -import { useWalletClient } from "wagmi"; -import { getParsedError } from "~~/components/scaffold-eth"; -import { getBlockExplorerTxLink, notification } from "~~/utils/scaffold-eth"; +import { getPublicClient } from "@wagmi/core"; +import { Hash, SendTransactionParameters, WalletClient } from "viem"; +import { Config, useWalletClient } from "wagmi"; +import { SendTransactionMutate } from "wagmi/query"; +import { wagmiConfig } from "~~/services/web3/wagmiConfig"; +import { getBlockExplorerTxLink, getParsedError, notification } from "~~/utils/scaffold-eth"; +import { TransactorFuncOptions } from "~~/utils/scaffold-eth/contract"; type TransactionFunc = ( - tx: (() => Promise) | (() => Promise) | SendTransactionParameters, - options?: { - onBlockConfirmation?: (txnReceipt: TransactionReceipt) => void; - blockConfirmations?: number; - }, + tx: (() => Promise) | Parameters>[0], + options?: TransactorFuncOptions, ) => Promise; /** @@ -29,9 +28,9 @@ const TxnNotification = ({ message, blockExplorerLink }: { message: string; bloc }; /** - * @description Runs Transaction passed in to returned function showing UI feedback. - * @param _walletClient - * @returns function that takes a transaction and returns a promise of the transaction hash + * Runs Transaction passed in to returned function showing UI feedback. + * @param _walletClient - Optional wallet client to use. If not provided, will use the one from useWalletClient. + * @returns function that takes in transaction function as callback, shows UI feedback for transaction and returns a promise of the transaction hash */ export const useTransactor = (_walletClient?: WalletClient): TransactionFunc => { let walletClient = _walletClient; @@ -48,23 +47,19 @@ export const useTransactor = (_walletClient?: WalletClient): TransactionFunc => } let notificationId = null; - let transactionHash: Awaited["hash"] | undefined = undefined; + let transactionHash: Hash | undefined = undefined; try { const network = await walletClient.getChainId(); // Get full transaction from public client - const publicClient = getPublicClient(); + const publicClient = getPublicClient(wagmiConfig); notificationId = notification.loading(); if (typeof tx === "function") { // Tx is already prepared by the caller const result = await tx(); - if (typeof result === "string") { - transactionHash = result; - } else { - transactionHash = result.hash; - } + transactionHash = result; } else if (tx != null) { - transactionHash = await walletClient.sendTransaction(tx); + transactionHash = await walletClient.sendTransaction(tx as SendTransactionParameters); } else { throw new Error("Incorrect transaction passed to transactor"); } @@ -76,7 +71,7 @@ export const useTransactor = (_walletClient?: WalletClient): TransactionFunc => , ); - const transactionReceipt = await publicClient.waitForTransactionReceipt({ + const transactionReceipt = await publicClient?.waitForTransactionReceipt({ hash: transactionHash, confirmations: options?.blockConfirmations, }); @@ -89,7 +84,7 @@ export const useTransactor = (_walletClient?: WalletClient): TransactionFunc => }, ); - if (options?.onBlockConfirmation) options.onBlockConfirmation(transactionReceipt); + if (options?.onBlockConfirmation && transactionReceipt) options.onBlockConfirmation(transactionReceipt); } catch (error: any) { if (notificationId) { notification.remove(notificationId); @@ -97,6 +92,7 @@ export const useTransactor = (_walletClient?: WalletClient): TransactionFunc => console.error("⚡️ ~ file: useTransactor.ts ~ error", error); const message = getParsedError(error); notification.error(message); + throw error; } return transactionHash; diff --git a/packages/nextjs/hooks/scaffold-eth/useWatchBalance.ts b/packages/nextjs/hooks/scaffold-eth/useWatchBalance.ts new file mode 100644 index 00000000..26acda9b --- /dev/null +++ b/packages/nextjs/hooks/scaffold-eth/useWatchBalance.ts @@ -0,0 +1,21 @@ +import { useEffect } from "react"; +import { useTargetNetwork } from "./useTargetNetwork"; +import { useQueryClient } from "@tanstack/react-query"; +import { UseBalanceParameters, useBalance, useBlockNumber } from "wagmi"; + +/** + * Wrapper around wagmi's useBalance hook. Updates data on every block change. + */ +export const useWatchBalance = (useBalanceParameters: UseBalanceParameters) => { + const { targetNetwork } = useTargetNetwork(); + const queryClient = useQueryClient(); + const { data: blockNumber } = useBlockNumber({ watch: true, chainId: targetNetwork.id }); + const { queryKey, ...restUseBalanceReturn } = useBalance(useBalanceParameters); + + useEffect(() => { + queryClient.invalidateQueries({ queryKey }); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [blockNumber]); + + return restUseBalanceReturn; +}; diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index 499aea65..d03f4485 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -14,13 +14,15 @@ "vercel:yolo": "vercel --build-env NEXT_PUBLIC_IGNORE_BUILD_ERROR=true" }, "dependencies": { - "@ethersproject/providers": "^5.7.2", "@heroicons/react": "^2.0.11", "@metamask/jazzicon": "^2.0.0", - "@rainbow-me/rainbowkit": "1.3.0", + "@rainbow-me/rainbowkit": "2.1.2", + "@tanstack/react-query": "^5.28.6", "@uniswap/sdk-core": "^4.0.1", "@uniswap/v2-sdk": "^3.0.1", + "@vercel/og": "^0.6.2", "blo": "^1.0.1", + "burner-connector": "^0.0.8", "daisyui": "^4.4.19", "next": "13.3.4", "next-plausible": "^3.12.0", @@ -34,8 +36,8 @@ "react-select": "^5.8.0", "use-debounce": "^8.0.4", "usehooks-ts": "^2.7.2", - "viem": "1.19.9", - "wagmi": "1.4.7", + "viem": "2.13.6", + "wagmi": "2.9.8", "zustand": "^4.1.2" }, "devDependencies": { @@ -44,6 +46,7 @@ "@types/react": "^18.0.9", "@types/react-copy-to-clipboard": "^5.0.4", "@typescript-eslint/eslint-plugin": "^5.39.0", + "abitype": "1.0.2", "autoprefixer": "^10.4.12", "eslint": "^8.15.0", "eslint-config-next": "^13.1.6", @@ -53,7 +56,7 @@ "prettier": "^2.8.4", "tailwindcss": "^3.3.3", "type-fest": "^4.6.0", - "typescript": "^5.1.6", + "typescript": "5.1.6", "vercel": "^28.15.1" } } diff --git a/packages/nextjs/pages/[contractAddress]/[network].tsx b/packages/nextjs/pages/[contractAddress]/[network].tsx index e8ec81c2..b7abb0b1 100644 --- a/packages/nextjs/pages/[contractAddress]/[network].tsx +++ b/packages/nextjs/pages/[contractAddress]/[network].tsx @@ -23,6 +23,14 @@ type ContractData = { nameInContractSourceCode: undefined | string; }; +const toCamelCase = (str: string) => { + return str + .replace(/(?:^\w|[A-Z]|\b\w)/g, (word, index) => { + return index === 0 ? word.toLowerCase() : word.toUpperCase(); + }) + .replace(/\s+/g, ""); +}; + const ContractDetailPage = ({ contractAddress, network }: ParsedQueryContractDetailsPage) => { const [contractData, setContractData] = useState({ abi: [], @@ -57,10 +65,10 @@ const ContractDetailPage = ({ contractAddress, network }: ParsedQueryContractDet if (network) { let normalizedNetwork = network.toLowerCase(); if (normalizedNetwork === "ethereum" || normalizedNetwork === "mainnet") { - normalizedNetwork = "homestead"; // chain.network for mainnet in viem/chains + normalizedNetwork = "ethereum"; // chain.network for mainnet in viem/chains } - const chain = Object.values(chains).find(chain => chain.network === normalizedNetwork); + const chain = Object.values(chains).find(chain => toCamelCase(chain.name) === normalizedNetwork); let parsedNetworkId = 1; if (chain) { diff --git a/packages/nextjs/pages/_app.tsx b/packages/nextjs/pages/_app.tsx index 4accfaab..09f244fc 100644 --- a/packages/nextjs/pages/_app.tsx +++ b/packages/nextjs/pages/_app.tsx @@ -3,16 +3,25 @@ import type { AppProps } from "next/app"; import { AccountAvatar } from "../components/AccountAvatar"; import { RainbowKitProvider, darkTheme, lightTheme } from "@rainbow-me/rainbowkit"; import "@rainbow-me/rainbowkit/styles.css"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import PlausibleProvider from "next-plausible"; import { ThemeProvider, useTheme } from "next-themes"; import NextNProgress from "nextjs-progressbar"; import { Toaster } from "react-hot-toast"; -import { WagmiConfig } from "wagmi"; +import { WagmiProvider } from "wagmi"; import { useNativeCurrencyPrice } from "~~/hooks/scaffold-eth"; import { useGlobalState } from "~~/services/store/store"; import { wagmiConfig } from "~~/services/web3/wagmiConfig"; -import { appChains } from "~~/services/web3/wagmiConnectors"; import "~~/styles/globals.css"; +export const queryClient = new QueryClient({ + defaultOptions: { + queries: { + refetchOnWindowFocus: false, + }, + }, +}); + const ScaffoldEthApp = ({ Component, pageProps }: AppProps) => { const price = useNativeCurrencyPrice(); const setNativeCurrencyPrice = useGlobalState(state => state.setNativeCurrencyPrice); @@ -32,7 +41,6 @@ const ScaffoldEthApp = ({ Component, pageProps }: AppProps) => { return ( @@ -68,12 +76,16 @@ const ScaffoldEthApp = ({ Component, pageProps }: AppProps) => { const ScaffoldEthAppWithProviders = (props: AppProps) => { return ( - - - - - - + + + + + + + + + + ); }; diff --git a/packages/nextjs/pages/blockexplorer/transaction/[txHash].tsx b/packages/nextjs/pages/blockexplorer/transaction/[txHash].tsx index 65222bf1..7c326933 100644 --- a/packages/nextjs/pages/blockexplorer/transaction/[txHash].tsx +++ b/packages/nextjs/pages/blockexplorer/transaction/[txHash].tsx @@ -23,7 +23,7 @@ const TransactionPage: NextPage = () => { const { targetNetwork } = useTargetNetwork(); useEffect(() => { - if (txHash) { + if (txHash && client) { const fetchTransaction = async () => { const tx = await client.getTransaction({ hash: txHash }); const receipt = await client.getTransactionReceipt({ hash: txHash }); diff --git a/packages/nextjs/pages/index.tsx b/packages/nextjs/pages/index.tsx index 0e9a224d..331cc6cb 100644 --- a/packages/nextjs/pages/index.tsx +++ b/packages/nextjs/pages/index.tsx @@ -5,7 +5,8 @@ import { useRouter } from "next/router"; import ContractDetailPage from "./[contractAddress]/[network]"; import type { NextPage } from "next"; import { Address, isAddress } from "viem"; -import { mainnet, usePublicClient } from "wagmi"; +import { mainnet } from "viem/chains"; +import { usePublicClient } from "wagmi"; import { ChevronLeftIcon, MagnifyingGlassIcon } from "@heroicons/react/24/outline"; import { MetaHeader } from "~~/components/MetaHeader"; import { MiniFooter } from "~~/components/MiniFooter"; @@ -74,7 +75,7 @@ const Home: NextPage = () => { setIsAbiAvailable(false); console.error("Error fetching ABI from Etherscan: ", etherscanError); - const bytecode = await publicClient.getBytecode({ + const bytecode = await publicClient?.getBytecode({ address: verifiedContractAddress, }); const isContract = Boolean(bytecode) && bytecode !== "0x"; diff --git a/packages/nextjs/services/web3/wagmi-burner/BurnerConnector.ts b/packages/nextjs/services/web3/wagmi-burner/BurnerConnector.ts deleted file mode 100644 index f397ebcc..00000000 --- a/packages/nextjs/services/web3/wagmi-burner/BurnerConnector.ts +++ /dev/null @@ -1,156 +0,0 @@ -import { StaticJsonRpcProvider } from "@ethersproject/providers"; -import { Address, Chain, HttpTransport, PrivateKeyAccount, WalletClient, createWalletClient, http } from "viem"; -import { privateKeyToAccount } from "viem/accounts"; -import { Connector } from "wagmi"; -import { loadBurnerSK } from "~~/hooks/scaffold-eth"; -import { BurnerConnectorError, BurnerConnectorErrorList } from "~~/services/web3/wagmi-burner/BurnerConnectorErrors"; -import { BurnerConnectorData, BurnerConnectorOptions } from "~~/services/web3/wagmi-burner/BurnerConnectorTypes"; - -export const burnerWalletId = "burner-wallet"; -export const burnerWalletName = "Burner Wallet"; - -/** - * This class is a wagmi connector for BurnerWallet. Its used by {@link burnerWalletConfig} - */ -export class BurnerConnector extends Connector { - readonly id = burnerWalletId; - readonly name = burnerWalletName; - readonly ready = true; - - private provider?: StaticJsonRpcProvider; - /** - * this is the store for getWallet() - */ - private burnerWallet: WalletClient | undefined; - - constructor(config: { chains?: Chain[]; options: BurnerConnectorOptions }) { - super(config); - this.burnerWallet = undefined; - } - - async getProvider() { - if (!this.provider) { - const chain = this.getChainFromId(); - this.provider = new StaticJsonRpcProvider(chain.rpcUrls.default.http[0]); - } - return this.provider; - } - - async getWalletClient(config?: { chainId?: number | undefined } | undefined) { - const chain = this.getChainFromId(config?.chainId); - if (!this.burnerWallet) { - const bunerAccount = privateKeyToAccount(loadBurnerSK()); - - const client = createWalletClient({ - chain: chain, - account: bunerAccount, - transport: http(), - }); - this.burnerWallet = client; - } - return Promise.resolve(this.burnerWallet); - } - - async connect(config?: { chainId?: number | undefined } | undefined): Promise> { - const chain = this.getChainFromId(config?.chainId); - - this.provider = new StaticJsonRpcProvider(chain.rpcUrls.default.http[0]); - const account = await this.getAccount(); - - if (this.provider == null || account == null) { - throw new BurnerConnectorError(BurnerConnectorErrorList.couldNotConnect); - } - - if (!account) { - throw new BurnerConnectorError(BurnerConnectorErrorList.accountNotFound); - } - - const data: Required = { - account, - chain: { - id: chain.id, - unsupported: false, - }, - provider: this.provider, - }; - - return Promise.resolve(data); - } - - private getChainFromId(chainId?: number) { - const resolveChainId = chainId ?? this.options.defaultChainId; - const chain = this.chains.find(f => f.id === resolveChainId); - if (chain == null) { - throw new BurnerConnectorError(BurnerConnectorErrorList.chainNotSupported); - } - return chain; - } - - disconnect(): Promise { - console.log("disconnect from burnerwallet"); - return Promise.resolve(); - } - - async getAccount(): Promise
    { - const bunerAccount = privateKeyToAccount(loadBurnerSK()); - return bunerAccount.address as Address; - } - - async getChainId(): Promise { - const network = await this.provider?.getNetwork(); - const chainId = network?.chainId ?? this.options.defaultChainId; - if (chainId == null) { - throw new BurnerConnectorError(BurnerConnectorErrorList.chainIdNotResolved); - } - - return Promise.resolve(chainId); - } - - async isAuthorized() { - try { - const account = await this.getAccount(); - return !!account; - } catch { - return false; - } - } - - protected async onAccountsChanged() { - const chainId = await this.getChainId(); - const chain = this.getChainFromId(chainId); - const bunerAccount = privateKeyToAccount(loadBurnerSK()); - - const client = createWalletClient({ - chain: chain, - account: bunerAccount, - transport: http(), - }); - this.burnerWallet = client; - } - - async switchChain(chainId: number) { - const chain = this.getChainFromId(chainId); - this.provider = new StaticJsonRpcProvider(chain.rpcUrls.default.http[0]); - - await this.onChainChanged(); - return chain; - } - - protected async onChainChanged() { - const chainId = await this.getChainId(); - const chain = this.getChainFromId(chainId); - const bunerAccount = privateKeyToAccount(loadBurnerSK()); - - const client = createWalletClient({ - chain: chain, - account: bunerAccount, - transport: http(), - }); - this.burnerWallet = client; - this.emit("change", { chain: { id: chainId, unsupported: false } }); - } - - protected onDisconnect(error: Error): void { - if (error) console.warn(error); - } -} diff --git a/packages/nextjs/services/web3/wagmi-burner/BurnerConnectorErrors.ts b/packages/nextjs/services/web3/wagmi-burner/BurnerConnectorErrors.ts deleted file mode 100644 index 7a4f4f50..00000000 --- a/packages/nextjs/services/web3/wagmi-burner/BurnerConnectorErrors.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Error list used by {@link BurnerConnectorError} - */ -export const BurnerConnectorErrorList = { - accountNotFound: "Account not found", - couldNotConnect: "Could not connect to network", - unsupportedBurnerChain: "This network is not supported for burner connector", - chainIdNotResolved: "Cound not resolve chainId", - chainNotSupported: "Chain is not supported, check burner wallet config", -} as const; - -/** - * A union of all the BurnerConnectorErrorList - */ -export type BurnerConnectorErrorTypes = (typeof BurnerConnectorErrorList)[keyof typeof BurnerConnectorErrorList]; - -export class BurnerConnectorError extends Error { - constructor(errorType: BurnerConnectorErrorTypes, message?: string) { - const msg = `BurnerConnectorError ${errorType}: ${message ?? ""} `; - super(msg); - console.warn(msg); - } -} diff --git a/packages/nextjs/services/web3/wagmi-burner/BurnerConnectorTypes.ts b/packages/nextjs/services/web3/wagmi-burner/BurnerConnectorTypes.ts deleted file mode 100644 index 02821a6e..00000000 --- a/packages/nextjs/services/web3/wagmi-burner/BurnerConnectorTypes.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { StaticJsonRpcProvider } from "@ethersproject/providers"; -import { ConnectorData } from "wagmi"; - -export type BurnerConnectorOptions = { - defaultChainId: number; -}; - -export type BurnerConnectorData = ConnectorData & { - provider: StaticJsonRpcProvider; -}; diff --git a/packages/nextjs/services/web3/wagmi-burner/burnerWalletConfig.ts b/packages/nextjs/services/web3/wagmi-burner/burnerWalletConfig.ts deleted file mode 100644 index a3ad393d..00000000 --- a/packages/nextjs/services/web3/wagmi-burner/burnerWalletConfig.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Chain, Wallet } from "@rainbow-me/rainbowkit"; -import { hardhat } from "viem/chains"; -import scaffoldConfig from "~~/scaffold.config"; -import { BurnerConnector, burnerWalletId, burnerWalletName } from "~~/services/web3/wagmi-burner/BurnerConnector"; -import { getTargetNetworks } from "~~/utils/scaffold-eth"; - -const { onlyLocalBurnerWallet } = scaffoldConfig; -const targetNetworks = getTargetNetworks(); - -export type BurnerWalletOptions = { - chains: Chain[]; -}; - -const burnerWalletIconBase64 = - "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzUzIiBoZWlnaHQ9IjM1MiIgdmlld0JveD0iMCAwIDM1MyAzNTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHg9IjAuNzE2MzA5IiB5PSIwLjMxNzEzOSIgd2lkdGg9IjM1MS4zOTQiIGhlaWdodD0iMzUxLjM5NCIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzNfMTUxKSIvPgo8Y2lyY2xlIGN4PSIzNC40OTUzIiBjeT0iMzQuNDk1MyIgcj0iMzQuNDk1MyIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgMCAwIDEgMjA3LjAxOCAyNTQuMTIpIiBmaWxsPSIjRkY2NjBBIi8+CjxwYXRoIGQ9Ik0xNTQuMzE4IDMxNy45NTVDMTcxLjI3MyAzMTAuODkgMTc2LjU4MiAyOTAuNzE1IDE3Ni4xNTcgMjgzLjQ4N0wyMDcuMDE4IDI4OC44NjRDMjA3LjAxOCAzMDMuMzE0IDIwMC4yMTIgMzA5LjQwMiAxOTcuODI0IDMxMi40MzNDMTkzLjQ3NCAzMTcuOTU1IDE3My4zNTEgMzMwLjAzIDE1NC4zMTggMzE3Ljk1NVoiIGZpbGw9InVybCgjcGFpbnQxX3JhZGlhbF8zXzE1MSkiLz4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZF8zXzE1MSkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIyNy4zNzcgMzAyLjI3NkMyMjYuNDI2IDMwNS44OTcgMjMwLjMxNSAzMDkuNDA1IDIzMy4zOTYgMzA3LjI3OUMyNTQuNTM4IDI5Mi42ODQgMjcwLjQ3OSAyNjkuOTQ1IDI3NC44OSAyNDcuNDg5QzI4Mi4yNCAyMTAuMDcxIDI3Mi4yMzUgMTc1LjcyNyAyMzguMDI4IDE0NS45MjVDMjAwLjg3NCAxMTMuNTU2IDE5MS44NDQgODguNDU2MSAxOTAuMTYyIDUwLjg3MThDMTg5Ljc5NyA0Mi43MjE4IDE4MS42MDQgMzcuMjk0NyAxNzQuODI0IDQxLjgzMTdDMTUyLjY2OCA1Ni42NTc0IDEzMi41MTIgODQuNDk5IDEzOC45MTEgMTIwLjc1OEMxNDEuMDA0IDEzMi42MjEgMTQ2Ljc5NCAxNDEuMDE2IDE1MS45NyAxNDguNTIzQzE1OC40OTEgMTU3Ljk3OCAxNjQuMDM5IDE2Ni4wMjMgMTU5Ljk5NyAxNzcuODFDMTU1LjIwMyAxOTEuNzk0IDEzOS4xMzQgMTk5LjE2MiAxMjguNzQ3IDE5Mi40MjlDMTE0LjE3IDE4Mi45ODEgMTEzLjI1MyAxNjYuNjUxIDExNy45NjkgMTQ5LjQ1NkMxMTguOTAyIDE0Ni4wNTUgMTE1LjQ3MSAxNDMuMjA0IDExMi42OCAxNDUuMzU5QzkxLjM2MDQgMTYxLjgyMSA2OS4xNTMyIDE5OS4yNjcgNzcuNjY0NyAyNDcuNDg5Qzg1Ljk3OTIgMjc2LjIxMiA5Ny45Mjc3IDI5Mi41MzcgMTEwLjk3MSAzMDEuNTQxQzExMy43NjMgMzAzLjQ2OCAxMTcuMTU5IDMwMC42MzEgMTE2LjU5NyAyOTcuMjg2QzExNi4wODEgMjk0LjIxMiAxMTUuODEzIDI5MS4wNTQgMTE1LjgxMyAyODcuODMzQzExNS44MTMgMjU2LjUxMyAxNDEuMjAzIDIzMS4xMjMgMTcyLjUyMyAyMzEuMTIzQzIwMy44NDIgMjMxLjEyMyAyMjkuMjMyIDI1Ni41MTMgMjI5LjIzMiAyODcuODMzQzIyOS4yMzIgMjkyLjgyNCAyMjguNTg3IDI5Ny42NjUgMjI3LjM3NyAzMDIuMjc2WiIgZmlsbD0idXJsKCNwYWludDJfbGluZWFyXzNfMTUxKSIvPgo8L2c+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2RfM18xNTEiIHg9IjcyLjExMTIiIHk9IjM2LjQ5NCIgd2lkdGg9IjIwOC43NDIiIGhlaWdodD0iMjc1LjEyIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPgo8ZmVPZmZzZXQvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxLjg0NTA2Ii8+CjxmZUNvbXBvc2l0ZSBpbjI9ImhhcmRBbHBoYSIgb3BlcmF0b3I9Im91dCIvPgo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAxIDAgMCAwIDAgMC40MiAwIDAgMCAwIDAgMCAwIDAgMC43IDAiLz4KPGZlQmxlbmQgbW9kZT0ibXVsdGlwbHkiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvd18zXzE1MSIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvd18zXzE1MSIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzNfMTUxIiB4MT0iMTc2LjQxMyIgeTE9IjAuMzE3MTM5IiB4Mj0iMTc2LjQxMyIgeTI9IjM1MS43MTEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iI0ZGRjI3OSIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGRkQzMzYiLz4KPC9saW5lYXJHcmFkaWVudD4KPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDFfcmFkaWFsXzNfMTUxIiBjeD0iMCIgY3k9IjAiIHI9IjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDIxOC4wNDggMjQ5LjM0Nykgcm90YXRlKDEyNC4wMTgpIHNjYWxlKDg5LjI5NTUgMjY0LjgwOSkiPgo8c3RvcCBvZmZzZXQ9IjAuNjQwODUiIHN0b3AtY29sb3I9IiNGRjY2MEEiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkZCRTE1Ii8+CjwvcmFkaWFsR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQyX2xpbmVhcl8zXzE1MSIgeDE9IjE3Ni40ODIiIHkxPSI0MC4xODQxIiB4Mj0iMTc2LjQ4MiIgeTI9IjMxNy4yNzgiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agb2Zmc2V0PSIwLjMzODU0MiIgc3RvcC1jb2xvcj0iI0ZGOEYzRiIvPgo8c3RvcCBvZmZzZXQ9IjAuNjU2MjUiIHN0b3AtY29sb3I9IiNGRjcwMjAiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkYzRDAwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg=="; - -/** - * Wagmi config for burner wallet - * @param param0 - * @returns - */ -export const burnerWalletConfig = ({ chains }: BurnerWalletOptions): Wallet => ({ - id: burnerWalletId, - name: burnerWalletName, - iconUrl: burnerWalletIconBase64, - iconBackground: "#ffffff", - hidden: () => { - if (onlyLocalBurnerWallet) { - return targetNetworks.some(({ id }) => id !== hardhat.id); - } - - return false; - }, - createConnector: () => { - const connector = new BurnerConnector({ chains, options: { defaultChainId: targetNetworks[0].id } }); - - return { - connector, - }; - }, -}); diff --git a/packages/nextjs/services/web3/wagmiConfig.tsx b/packages/nextjs/services/web3/wagmiConfig.tsx index 240aea0f..56e7eef8 100644 --- a/packages/nextjs/services/web3/wagmiConfig.tsx +++ b/packages/nextjs/services/web3/wagmiConfig.tsx @@ -1,8 +1,30 @@ +import { wagmiConnectors } from "./wagmiConnectors"; +import { Chain, createClient, http } from "viem"; +import { hardhat, mainnet } from "viem/chains"; import { createConfig } from "wagmi"; -import { appChains, wagmiConnectors } from "~~/services/web3/wagmiConnectors"; +import scaffoldConfig from "~~/scaffold.config"; +import { getAlchemyHttpUrl, getTargetNetworks } from "~~/utils/scaffold-eth"; + +const targetNetworks = getTargetNetworks(); + +// We always want to have mainnet enabled (ENS resolution, ETH price, etc). But only once. +export const enabledChains = targetNetworks.find((network: Chain) => network.id === 1) + ? targetNetworks + : ([...targetNetworks, mainnet] as const); export const wagmiConfig = createConfig({ - autoConnect: false, + chains: enabledChains as [Chain, ...Chain[]], connectors: wagmiConnectors, - publicClient: appChains.publicClient, + ssr: true, + client({ chain }) { + return createClient({ + chain, + transport: http(getAlchemyHttpUrl(chain.id)), + ...(chain.id !== (hardhat as Chain).id + ? { + pollingInterval: scaffoldConfig.pollingInterval, + } + : {}), + }); + }, }); diff --git a/packages/nextjs/services/web3/wagmiConnectors.tsx b/packages/nextjs/services/web3/wagmiConnectors.tsx index c9ed0299..bcfb02c3 100644 --- a/packages/nextjs/services/web3/wagmiConnectors.tsx +++ b/packages/nextjs/services/web3/wagmiConnectors.tsx @@ -1,6 +1,5 @@ import { connectorsForWallets } from "@rainbow-me/rainbowkit"; import { - braveWallet, coinbaseWallet, ledgerWallet, metaMaskWallet, @@ -8,66 +7,40 @@ import { safeWallet, walletConnectWallet, } from "@rainbow-me/rainbowkit/wallets"; +import { rainbowkitBurnerWallet } from "burner-connector"; import * as chains from "viem/chains"; -import { configureChains } from "wagmi"; -import { alchemyProvider } from "wagmi/providers/alchemy"; -import { publicProvider } from "wagmi/providers/public"; import scaffoldConfig from "~~/scaffold.config"; -import { burnerWalletConfig } from "~~/services/web3/wagmi-burner/burnerWalletConfig"; import { getTargetNetworks } from "~~/utils/scaffold-eth"; -const targetNetworks = getTargetNetworks(); const { onlyLocalBurnerWallet } = scaffoldConfig; -// We always want to have mainnet enabled (ENS resolution, ETH price, etc). But only once. -const enabledChains = targetNetworks.find(network => network.id === 1) - ? targetNetworks - : [...targetNetworks, chains.mainnet]; - -/** - * Chains for the app - */ -export const appChains = configureChains( - enabledChains, - [ - publicProvider(), - ], - { - // We might not need this checkout https://github.com/scaffold-eth/scaffold-eth-2/pull/45#discussion_r1024496359, will test and remove this before merging - stallTimeout: 3_000, - // Sets pollingInterval if using chains other than local hardhat chain - ...(targetNetworks.find(network => network.id !== chains.hardhat.id) - ? { - pollingInterval: scaffoldConfig.pollingInterval, - } - : {}), - }, -); +const targetNetworks = getTargetNetworks(); -const walletsOptions = { chains: appChains.chains, projectId: scaffoldConfig.walletConnectProjectId }; const wallets = [ - metaMaskWallet({ ...walletsOptions, shimDisconnect: true }), - walletConnectWallet(walletsOptions), - ledgerWallet(walletsOptions), - braveWallet(walletsOptions), - coinbaseWallet({ ...walletsOptions, appName: "scaffold-eth-2" }), - rainbowWallet(walletsOptions), - ...(!targetNetworks.some(network => network.id !== chains.hardhat.id) || !onlyLocalBurnerWallet - ? [ - burnerWalletConfig({ - chains: appChains.chains.filter(chain => targetNetworks.map(({ id }) => id).includes(chain.id)), - }), - ] + metaMaskWallet, + walletConnectWallet, + ledgerWallet, + coinbaseWallet, + rainbowWallet, + safeWallet, + ...(!targetNetworks.some(network => network.id !== (chains.hardhat as chains.Chain).id) || !onlyLocalBurnerWallet + ? [rainbowkitBurnerWallet] : []), - safeWallet({ ...walletsOptions }), ]; /** * wagmi connectors for the wagmi context */ -export const wagmiConnectors = connectorsForWallets([ +export const wagmiConnectors = connectorsForWallets( + [ + { + groupName: "Supported Wallets", + wallets, + }, + ], + { - groupName: "Supported Wallets", - wallets, + appName: "scaffold-eth-2", + projectId: scaffoldConfig.walletConnectProjectId, }, -]); +); diff --git a/packages/nextjs/types/abitype/abi.d.ts b/packages/nextjs/types/abitype/abi.d.ts index 8b1301a7..c216a079 100644 --- a/packages/nextjs/types/abitype/abi.d.ts +++ b/packages/nextjs/types/abitype/abi.d.ts @@ -2,14 +2,20 @@ import "abitype"; type AddressType = string; +declare module "abitype" { + export interface Register { + AddressType: AddressType; + } +} + declare module "viem/node_modules/abitype" { - export interface Config { + export interface Register { AddressType: AddressType; } } -declare module "abitype" { - export interface Config { +declare module "wagmi/node_moudles/abitype" { + export interface Register { AddressType: AddressType; } } diff --git a/packages/nextjs/utils/abi-ninja/proxyContracts.ts b/packages/nextjs/utils/abi-ninja/proxyContracts.ts index 8c6a77e0..4c1860f7 100644 --- a/packages/nextjs/utils/abi-ninja/proxyContracts.ts +++ b/packages/nextjs/utils/abi-ninja/proxyContracts.ts @@ -1,4 +1,4 @@ -import { PublicClient } from "wagmi"; +import { UsePublicClientReturnType } from "wagmi"; const EIP_1967_LOGIC_SLOT = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" as const; const EIP_1967_BEACON_SLOT = "0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50" as const; @@ -59,7 +59,11 @@ export const parse1167Bytecode = (bytecode: unknown): string => { return `0x${addressFromBytecode.padStart(40, "0")}`; }; -export const detectProxyTarget = async (proxyAddress: string, client: PublicClient) => { +export const detectProxyTarget = async (proxyAddress: string, client: UsePublicClientReturnType) => { + if (!client) { + console.error("No client provided"); + return; + } const detectUsingBytecode = async () => { const bytecode = await client.getBytecode({ address: proxyAddress }); return parse1167Bytecode(bytecode); diff --git a/packages/nextjs/utils/scaffold-eth/contract.ts b/packages/nextjs/utils/scaffold-eth/contract.ts index d155187e..bf4580d1 100644 --- a/packages/nextjs/utils/scaffold-eth/contract.ts +++ b/packages/nextjs/utils/scaffold-eth/contract.ts @@ -1,3 +1,4 @@ +import { MutateOptions } from "@tanstack/react-query"; import { Abi, AbiParameter, @@ -18,23 +19,43 @@ import { GetTransactionReturnType, Log, TransactionReceipt, + WriteContractErrorType, } from "viem"; -import { UseContractEventConfig, UseContractReadConfig, UseContractWriteConfig } from "wagmi"; +import { Config, UseReadContractParameters, UseWatchContractEventParameters } from "wagmi"; +import { WriteContractParameters, WriteContractReturnType } from "wagmi/actions"; +import { WriteContractVariables } from "wagmi/query"; import deployedContractsData from "~~/contracts/deployedContracts"; import externalContractsData from "~~/contracts/externalContracts"; import scaffoldConfig from "~~/scaffold.config"; -const deepMergeContracts = , S extends Record>( - destination: D, - source: S, +type AddExternalFlag = { + [ChainId in keyof T]: { + [ContractName in keyof T[ChainId]]: T[ChainId][ContractName] & { external?: true }; + }; +}; + +const deepMergeContracts = , E extends Record>( + local: L, + external: E, ) => { const result: Record = {}; - const allKeys = Array.from(new Set([...Object.keys(source), ...Object.keys(destination)])); + const allKeys = Array.from(new Set([...Object.keys(external), ...Object.keys(local)])); for (const key of allKeys) { - result[key] = { ...destination[key], ...source[key] }; + if (!external[key]) { + result[key] = local[key]; + continue; + } + const amendedExternal = Object.fromEntries( + Object.entries(external[key] as Record>).map(([contractName, declaration]) => [ + contractName, + { ...declaration, external: true }, + ]), + ); + result[key] = { ...local[key], ...amendedExternal }; } - return result as MergeDeepRecord; + return result as MergeDeepRecord, AddExternalFlag, { arrayMergeMode: "replace" }>; }; + const contractsData = deepMergeContracts(deployedContractsData, externalContractsData); export type InheritedFunctions = { readonly [key: string]: string }; @@ -43,6 +64,7 @@ export type GenericContract = { address: Address; abi: Abi; inheritedFunctions?: InheritedFunctions; + external?: true; }; export type GenericContractsDeclaration = { @@ -135,6 +157,9 @@ type UseScaffoldArgsParam< > = TFunctionName extends FunctionNamesWithInputs ? { args: OptionalTupple, TFunctionName>>>; + value?: ExtractAbiFunction, TFunctionName>["stateMutability"] extends "payable" + ? bigint | undefined + : undefined; } : { args?: never; @@ -145,29 +170,41 @@ export type UseScaffoldReadConfig< TFunctionName extends ExtractAbiFunctionNames, ReadAbiStateMutability>, > = { contractName: TContractName; + watch?: boolean; } & IsContractDeclarationMissing< - Partial, + Partial, { functionName: TFunctionName; } & UseScaffoldArgsParam & - Omit + Omit >; -export type UseScaffoldWriteConfig< +export type ScaffoldWriteContractVariables< TContractName extends ContractName, TFunctionName extends ExtractAbiFunctionNames, WriteAbiStateMutability>, -> = { - contractName: TContractName; - onBlockConfirmation?: (txnReceipt: TransactionReceipt) => void; - blockConfirmations?: number; -} & IsContractDeclarationMissing< - Partial, +> = IsContractDeclarationMissing< + Partial, { functionName: TFunctionName; } & UseScaffoldArgsParam & - Omit + Omit >; +type WriteVariables = WriteContractVariables; + +export type TransactorFuncOptions = { + onBlockConfirmation?: (txnReceipt: TransactionReceipt) => void; + blockConfirmations?: number; +}; + +export type ScaffoldWriteContractOptions = MutateOptions< + WriteContractReturnType, + WriteContractErrorType, + WriteVariables, + unknown +> & + TransactorFuncOptions; + export type UseScaffoldEventConfig< TContractName extends ContractName, TEventName extends ExtractAbiEventNames>, @@ -177,9 +214,10 @@ export type UseScaffoldEventConfig< >, > = { contractName: TContractName; + eventName: TEventName; } & IsContractDeclarationMissing< - Omit & { - listener: ( + Omit & { + onLogs: ( logs: Simplify< Omit, "args" | "eventName"> & { args: Record; @@ -188,8 +226,8 @@ export type UseScaffoldEventConfig< >[], ) => void; }, - Omit, TEventName>, "listener"> & { - listener: ( + Omit>, "onLogs" | "address" | "abi" | "eventName"> & { + onLogs: ( logs: Simplify< Omit, "args"> & { args: AbiParametersToPrimitiveTypes & diff --git a/packages/nextjs/utils/scaffold-eth/decodeTxData.ts b/packages/nextjs/utils/scaffold-eth/decodeTxData.ts index 481b978e..2306dee3 100644 --- a/packages/nextjs/utils/scaffold-eth/decodeTxData.ts +++ b/packages/nextjs/utils/scaffold-eth/decodeTxData.ts @@ -1,5 +1,6 @@ import { TransactionWithFunction } from "./block"; import { GenericContractsDeclaration } from "./contract"; +import { AbiFunction } from "abitype"; import { Abi, decodeFunctionData, getAbiItem } from "viem"; import { hardhat } from "viem/chains"; import contractData from "~~/contracts/deployedContracts"; @@ -26,12 +27,14 @@ export const decodeTransactionData = (tx: TransactionWithFunction) => { }); tx.functionName = functionName; tx.functionArgs = args as any[]; - tx.functionArgNames = getAbiItem({ abi: contractAbi, name: functionName }).inputs.map( - (input: any) => input.name, - ); - tx.functionArgTypes = getAbiItem({ abi: contractAbi, name: functionName }).inputs.map( - (input: any) => input.type, - ); + tx.functionArgNames = getAbiItem({ + abi: contractAbi as AbiFunction[], + name: functionName, + })?.inputs?.map((input: any) => input.name); + tx.functionArgTypes = getAbiItem({ + abi: contractAbi as AbiFunction[], + name: functionName, + })?.inputs.map((input: any) => input.type); break; } catch (e) { diff --git a/packages/nextjs/utils/scaffold-eth/fetchPriceFromUniswap.ts b/packages/nextjs/utils/scaffold-eth/fetchPriceFromUniswap.ts index 8a59f661..cad338a6 100644 --- a/packages/nextjs/utils/scaffold-eth/fetchPriceFromUniswap.ts +++ b/packages/nextjs/utils/scaffold-eth/fetchPriceFromUniswap.ts @@ -1,9 +1,8 @@ +import { ChainWithAttributes } from "./networks"; import { CurrencyAmount, Token } from "@uniswap/sdk-core"; import { Pair, Route } from "@uniswap/v2-sdk"; import { Address, createPublicClient, http, parseAbi } from "viem"; -import { mainnet } from "wagmi"; -import scaffoldConfig from "~~/scaffold.config"; -import { ChainWithAttributes } from "~~/utils/scaffold-eth"; +import { mainnet } from "viem/chains"; const publicClient = createPublicClient({ chain: mainnet, diff --git a/packages/nextjs/utils/scaffold-eth/getParsedError.ts b/packages/nextjs/utils/scaffold-eth/getParsedError.ts new file mode 100644 index 00000000..f31eb663 --- /dev/null +++ b/packages/nextjs/utils/scaffold-eth/getParsedError.ts @@ -0,0 +1,35 @@ +import { BaseError as BaseViemError, ContractFunctionRevertedError } from "viem"; + +/** + * Parses an viem/wagmi error to get a displayable string + * @param e - error object + * @returns parsed error string + */ +export const getParsedError = (error: any): string => { + const parsedError = error?.walk ? error.walk() : error; + + if (parsedError instanceof BaseViemError) { + if (parsedError.details) { + return parsedError.details; + } + + if (parsedError.shortMessage) { + if ( + parsedError instanceof ContractFunctionRevertedError && + parsedError.data && + parsedError.data.errorName !== "Error" + ) { + const customErrorArgs = parsedError.data.args?.toString() ?? ""; + return `${parsedError.shortMessage.replace(/reverted\.$/, "reverted with the following reason:")}\n${ + parsedError.data.errorName + }(${customErrorArgs})`; + } + + return parsedError.shortMessage; + } + + return parsedError.message ?? parsedError.name ?? "An unknown error occurred"; + } + + return parsedError?.message ?? "An unknown error occurred"; +}; diff --git a/packages/nextjs/utils/scaffold-eth/index.ts b/packages/nextjs/utils/scaffold-eth/index.ts index c6a6bd2e..6d69193d 100644 --- a/packages/nextjs/utils/scaffold-eth/index.ts +++ b/packages/nextjs/utils/scaffold-eth/index.ts @@ -3,3 +3,4 @@ export * from "./networks"; export * from "./notification"; export * from "./block"; export * from "./decodeTxData"; +export * from "./getParsedError"; diff --git a/packages/nextjs/utils/scaffold-eth/networks.ts b/packages/nextjs/utils/scaffold-eth/networks.ts index 5b5392f6..ebeb348b 100644 --- a/packages/nextjs/utils/scaffold-eth/networks.ts +++ b/packages/nextjs/utils/scaffold-eth/networks.ts @@ -16,6 +16,28 @@ type ChainAttributes = { export type ChainWithAttributes = chains.Chain & Partial; +// Mapping of chainId to RPC chain name an format followed by alchemy and infura +export const RPC_CHAIN_NAMES: Record = { + [chains.mainnet.id]: "eth-mainnet", + [chains.goerli.id]: "eth-goerli", + [chains.sepolia.id]: "eth-sepolia", + [chains.optimism.id]: "opt-mainnet", + [chains.optimismGoerli.id]: "opt-goerli", + [chains.optimismSepolia.id]: "opt-sepolia", + [chains.arbitrum.id]: "arb-mainnet", + [chains.arbitrumGoerli.id]: "arb-goerli", + [chains.arbitrumSepolia.id]: "arb-sepolia", + [chains.polygon.id]: "polygon-mainnet", + [chains.polygonMumbai.id]: "polygon-mumbai", + [chains.polygonAmoy.id]: "polygon-amoy", + [chains.astar.id]: "astar-mainnet", + [chains.polygonZkEvm.id]: "polygonzkevm-mainnet", + [chains.polygonZkEvmTestnet.id]: "polygonzkevm-testnet", + [chains.base.id]: "base-mainnet", + [chains.baseGoerli.id]: "base-goerli", + [chains.baseSepolia.id]: "base-sepolia", +}; + const MAINNET_ETHERSCAN_API_KEY = process.env.NEXT_PUBLIC_ETHERSCAN_API_KEY || ""; const OPTIMISM_ETHERSCAN_API_KEY = process.env.NEXT_PUBLIC_OPTIMISM_ETHERSCAN_API_KEY || ""; const POLYGON_ETHERSCAN_API_KEY = process.env.NEXT_PUBLIC_POLYGON_ETHERSCAN_API_KEY || ""; @@ -143,7 +165,6 @@ export function getBlockExplorerTxLink(chainId: number, txnHash: string) { } const targetChain = targetChainArr[0] as keyof typeof chains; - // @ts-expect-error : ignoring error since `blockExplorers` key may or may not be present on some chains const blockExplorerTxURL = chains[targetChain]?.blockExplorers?.default?.url; if (!blockExplorerTxURL) { diff --git a/yarn.lock b/yarn.lock index 4f9112a0..1ce2c2db 100644 --- a/yarn.lock +++ b/yarn.lock @@ -197,7 +197,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.18.9": +"@babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.9": version: 7.19.0 resolution: "@babel/runtime@npm:7.19.0" dependencies: @@ -215,6 +215,15 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.19.4, @babel/runtime@npm:^7.20.6, @babel/runtime@npm:^7.21.0": + version: 7.24.7 + resolution: "@babel/runtime@npm:7.24.7" + dependencies: + regenerator-runtime: ^0.14.0 + checksum: d17f29eed6f848ac15cdf4202a910b741facfb0419a9d79e5c7fa37df6362fc3227f1cc2e248cc6db5e53ddffb4caa6686c488e6e80ce3d29c36a4e74c8734ea + languageName: node + linkType: hard + "@babel/template@npm:^7.20.7": version: 7.20.7 resolution: "@babel/template@npm:7.20.7" @@ -287,28 +296,17 @@ __metadata: languageName: node linkType: hard -"@coinbase/wallet-sdk@npm:^3.6.6": - version: 3.7.1 - resolution: "@coinbase/wallet-sdk@npm:3.7.1" +"@coinbase/wallet-sdk@npm:4.0.2": + version: 4.0.2 + resolution: "@coinbase/wallet-sdk@npm:4.0.2" 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 + clsx: ^1.2.1 + eventemitter3: ^5.0.1 + keccak: ^3.0.3 + preact: ^10.16.0 sha.js: ^2.4.11 - stream-browserify: ^3.0.0 - util: ^0.12.4 - checksum: e88c656d08c06d42dcd03006c62162705a7c7dc27171ee721910f76c15c995f0482a314057a582af6e9548e6f49e4a1aff22f33685a33535c9b2550a615efbaf + checksum: d0cb646ae8a57142f0abc9a46ae449c732aec6347fc217547854ebb872668716b9494c5232dc564eeab2e26c9b24df3cfd536b7ee3027a39d5e9e89a6d05ea9c languageName: node linkType: hard @@ -376,14 +374,7 @@ __metadata: languageName: node linkType: hard -"@emotion/hash@npm:^0.8.0": - version: 0.8.0 - resolution: "@emotion/hash@npm:0.8.0" - checksum: 4b35d88a97e67275c1d990c96d3b0450451d089d1508619488fc0acb882cb1ac91e93246d471346ebd1b5402215941ef4162efe5b51534859b39d8b3a0e3ffaa - languageName: node - linkType: hard - -"@emotion/hash@npm:^0.9.1": +"@emotion/hash@npm:^0.9.0, @emotion/hash@npm:^0.9.1": version: 0.9.1 resolution: "@emotion/hash@npm:0.9.1" checksum: 716e17e48bf9047bf9383982c071de49f2615310fb4e986738931776f5a823bc1f29c84501abe0d3df91a3803c80122d24e28b57351bca9e01356ebb33d89876 @@ -485,63 +476,58 @@ __metadata: languageName: node linkType: hard -"@ethersproject/abstract-provider@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/abstract-provider@npm:5.7.0" +"@ethereumjs/common@npm:^3.2.0": + version: 3.2.0 + resolution: "@ethereumjs/common@npm:3.2.0" dependencies: - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/networks": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - "@ethersproject/transactions": ^5.7.0 - "@ethersproject/web": ^5.7.0 - checksum: 74cf4696245cf03bb7cc5b6cbf7b4b89dd9a79a1c4688126d214153a938126d4972d42c93182198653ce1de35f2a2cad68be40337d4774b3698a39b28f0228a8 + "@ethereumjs/util": ^8.1.0 + crc-32: ^1.2.0 + checksum: cb9cc11f5c868cb577ba611cebf55046e509218bbb89b47ccce010776dafe8256d70f8f43fab238aec74cf71f62601cd5842bc03a83261200802de365732a14b languageName: node linkType: hard -"@ethersproject/abstract-signer@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/abstract-signer@npm:5.7.0" - dependencies: - "@ethersproject/abstract-provider": ^5.7.0 - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - checksum: a823dac9cfb761e009851050ebebd5b229d1b1cc4a75b125c2da130ff37e8218208f7f9d1386f77407705b889b23d4a230ad67185f8872f083143e0073cbfbe3 +"@ethereumjs/rlp@npm:^4.0.1": + version: 4.0.1 + resolution: "@ethereumjs/rlp@npm:4.0.1" + bin: + rlp: bin/rlp + checksum: 30db19c78faa2b6ff27275ab767646929207bb207f903f09eb3e4c273ce2738b45f3c82169ddacd67468b4f063d8d96035f2bf36f02b6b7e4d928eefe2e3ecbc languageName: node linkType: hard -"@ethersproject/address@npm:^5.0.0, @ethersproject/address@npm:^5.0.2, @ethersproject/address@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/address@npm:5.7.0" +"@ethereumjs/tx@npm:^4.1.2, @ethereumjs/tx@npm:^4.2.0": + version: 4.2.0 + resolution: "@ethereumjs/tx@npm:4.2.0" dependencies: - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/keccak256": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/rlp": ^5.7.0 - checksum: 64ea5ebea9cc0e845c413e6cb1e54e157dd9fc0dffb98e239d3a3efc8177f2ff798cd4e3206cf3660ee8faeb7bef1a47dc0ebef0d7b132c32e61e550c7d4c843 + "@ethereumjs/common": ^3.2.0 + "@ethereumjs/rlp": ^4.0.1 + "@ethereumjs/util": ^8.1.0 + ethereum-cryptography: ^2.0.0 + checksum: 87a3f5f2452cfbf6712f8847525a80c213210ed453c211c793c5df801fe35ecef28bae17fadd222fcbdd94277478a47e52d2b916a90a6b30cda21f1e0cdaee42 languageName: node linkType: hard -"@ethersproject/base64@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/base64@npm:5.7.0" +"@ethereumjs/util@npm:^8.1.0": + version: 8.1.0 + resolution: "@ethereumjs/util@npm:8.1.0" dependencies: - "@ethersproject/bytes": ^5.7.0 - checksum: 7dd5d734d623582f08f665434f53685041a3d3b334a0e96c0c8afa8bbcaab934d50e5b6b980e826a8fde8d353e0b18f11e61faf17468177274b8e7c69cd9742b + "@ethereumjs/rlp": ^4.0.1 + ethereum-cryptography: ^2.0.0 + micro-ftch: ^0.3.1 + checksum: 9ae5dee8f12b0faf81cd83f06a41560e79b0ba96a48262771d897a510ecae605eb6d84f687da001ab8ccffd50f612ae50f988ef76e6312c752897f462f3ac08d languageName: node linkType: hard -"@ethersproject/basex@npm:^5.7.0": +"@ethersproject/address@npm:^5.0.0, @ethersproject/address@npm:^5.0.2": version: 5.7.0 - resolution: "@ethersproject/basex@npm:5.7.0" + resolution: "@ethersproject/address@npm:5.7.0" dependencies: + "@ethersproject/bignumber": ^5.7.0 "@ethersproject/bytes": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - checksum: 326087b7e1f3787b5fe6cd1cf2b4b5abfafbc355a45e88e22e5e9d6c845b613ffc5301d629b28d5c4d5e2bfe9ec424e6782c804956dff79be05f0098cb5817de + "@ethersproject/keccak256": ^5.7.0 + "@ethersproject/logger": ^5.7.0 + "@ethersproject/rlp": ^5.7.0 + checksum: 64ea5ebea9cc0e845c413e6cb1e54e157dd9fc0dffb98e239d3a3efc8177f2ff798cd4e3206cf3660ee8faeb7bef1a47dc0ebef0d7b132c32e61e550c7d4c843 languageName: node linkType: hard @@ -574,23 +560,6 @@ __metadata: languageName: node linkType: hard -"@ethersproject/hash@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/hash@npm:5.7.0" - dependencies: - "@ethersproject/abstract-signer": ^5.7.0 - "@ethersproject/address": ^5.7.0 - "@ethersproject/base64": ^5.7.0 - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/keccak256": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - "@ethersproject/strings": ^5.7.0 - checksum: 6e9fa8d14eb08171cd32f17f98cc108ec2aeca74a427655f0d689c550fee0b22a83b3b400fad7fb3f41cf14d4111f87f170aa7905bcbcd1173a55f21b06262ef - languageName: node - linkType: hard - "@ethersproject/keccak256@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/keccak256@npm:5.7.0" @@ -608,62 +577,6 @@ __metadata: languageName: node linkType: hard -"@ethersproject/networks@npm:^5.7.0": - version: 5.7.1 - resolution: "@ethersproject/networks@npm:5.7.1" - dependencies: - "@ethersproject/logger": ^5.7.0 - checksum: 0339f312304c17d9a0adce550edb825d4d2c8c9468c1634c44172c67a9ed256f594da62c4cda5c3837a0f28b7fabc03aca9b492f68ff1fdad337ee861b27bd5d - languageName: node - linkType: hard - -"@ethersproject/properties@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/properties@npm:5.7.0" - dependencies: - "@ethersproject/logger": ^5.7.0 - checksum: 6ab0ccf0c3aadc9221e0cdc5306ce6cd0df7f89f77d77bccdd1277182c9ead0202cd7521329ba3acde130820bf8af299e17cf567d0d497c736ee918207bbf59f - languageName: node - linkType: hard - -"@ethersproject/providers@npm:^5.7.2": - version: 5.7.2 - resolution: "@ethersproject/providers@npm:5.7.2" - dependencies: - "@ethersproject/abstract-provider": ^5.7.0 - "@ethersproject/abstract-signer": ^5.7.0 - "@ethersproject/address": ^5.7.0 - "@ethersproject/base64": ^5.7.0 - "@ethersproject/basex": ^5.7.0 - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/constants": ^5.7.0 - "@ethersproject/hash": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/networks": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - "@ethersproject/random": ^5.7.0 - "@ethersproject/rlp": ^5.7.0 - "@ethersproject/sha2": ^5.7.0 - "@ethersproject/strings": ^5.7.0 - "@ethersproject/transactions": ^5.7.0 - "@ethersproject/web": ^5.7.0 - bech32: 1.1.4 - ws: 7.4.6 - checksum: 1754c731a5ca6782ae9677f4a9cd8b6246c4ef21a966c9a01b133750f3c578431ec43ec254e699969c4a0f87e84463ded50f96b415600aabd37d2056aee58c19 - languageName: node - linkType: hard - -"@ethersproject/random@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/random@npm:5.7.0" - dependencies: - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - checksum: 017829c91cff6c76470852855108115b0b52c611b6be817ed1948d56ba42d6677803ec2012aa5ae298a7660024156a64c11fcf544e235e239ab3f89f0fff7345 - languageName: node - linkType: hard - "@ethersproject/rlp@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/rlp@npm:5.7.0" @@ -685,20 +598,6 @@ __metadata: languageName: node linkType: hard -"@ethersproject/signing-key@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/signing-key@npm:5.7.0" - dependencies: - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - bn.js: ^5.2.1 - elliptic: 6.5.4 - hash.js: 1.1.7 - checksum: 8f8de09b0aac709683bbb49339bc0a4cd2f95598f3546436c65d6f3c3a847ffa98e06d35e9ed2b17d8030bd2f02db9b7bd2e11c5cf8a71aad4537487ab4cf03a - languageName: node - linkType: hard - "@ethersproject/solidity@npm:^5.0.0": version: 5.7.0 resolution: "@ethersproject/solidity@npm:5.7.0" @@ -724,36 +623,6 @@ __metadata: languageName: node linkType: hard -"@ethersproject/transactions@npm:^5.7.0": - version: 5.7.0 - resolution: "@ethersproject/transactions@npm:5.7.0" - dependencies: - "@ethersproject/address": ^5.7.0 - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/constants": ^5.7.0 - "@ethersproject/keccak256": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - "@ethersproject/rlp": ^5.7.0 - "@ethersproject/signing-key": ^5.7.0 - checksum: a31b71996d2b283f68486241bff0d3ea3f1ba0e8f1322a8fffc239ccc4f4a7eb2ea9994b8fd2f093283fd75f87bae68171e01b6265261f821369aca319884a79 - languageName: node - linkType: hard - -"@ethersproject/web@npm:^5.7.0": - version: 5.7.1 - resolution: "@ethersproject/web@npm:5.7.1" - dependencies: - "@ethersproject/base64": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - "@ethersproject/strings": ^5.7.0 - checksum: 7028c47103f82fd2e2c197ce0eecfacaa9180ffeec7de7845b1f4f9b19d84081b7a48227aaddde05a4aaa526af574a9a0ce01cc0fc75e3e371f84b38b5b16b2b - languageName: node - linkType: hard - "@floating-ui/core@npm:^1.0.0": version: 1.6.0 resolution: "@floating-ui/core@npm:1.6.0" @@ -880,13 +749,6 @@ __metadata: languageName: node linkType: hard -"@ledgerhq/connect-kit-loader@npm:^1.1.0": - version: 1.1.0 - resolution: "@ledgerhq/connect-kit-loader@npm:1.1.0" - checksum: 47fedfc64d2e4d287f3f469dc67066c6ce21bfb3e26ca565132181ad8a4d5aacbd57e8cc30d32ab6fb92cba6ed64553675a2509f02fecfb017e112a6e5dea924 - languageName: node - linkType: hard - "@lit-labs/ssr-dom-shim@npm:^1.0.0": version: 1.0.0 resolution: "@lit-labs/ssr-dom-shim@npm:1.0.0" @@ -929,6 +791,17 @@ __metadata: languageName: node linkType: hard +"@metamask/eth-json-rpc-provider@npm:^1.0.0": + version: 1.0.1 + resolution: "@metamask/eth-json-rpc-provider@npm:1.0.1" + dependencies: + "@metamask/json-rpc-engine": ^7.0.0 + "@metamask/safe-event-emitter": ^3.0.0 + "@metamask/utils": ^5.0.1 + checksum: ff97648b002d2889bd020c03abc26137cf068df3280e46144b5333c1b294f35f5099361343825f900ef20b9dcb6819495830b7a99eb1cbfbd671e5b11c0dfde1 + languageName: node + linkType: hard + "@metamask/jazzicon@npm:^2.0.0": version: 2.0.0 resolution: "@metamask/jazzicon@npm:2.0.0" @@ -939,22 +812,205 @@ __metadata: languageName: node linkType: hard -"@metamask/safe-event-emitter@npm:2.0.0, @metamask/safe-event-emitter@npm:^2.0.0": +"@metamask/json-rpc-engine@npm:^7.0.0, @metamask/json-rpc-engine@npm:^7.3.2": + version: 7.3.3 + resolution: "@metamask/json-rpc-engine@npm:7.3.3" + dependencies: + "@metamask/rpc-errors": ^6.2.1 + "@metamask/safe-event-emitter": ^3.0.0 + "@metamask/utils": ^8.3.0 + checksum: 7bab8b4d2341a6243ba451bc58283f0a6905b09f7257857859848a51a795444ca6899b1a6908b15f8ed236fb574ab85a630c9cb28d127ab52c4630e496c16006 + languageName: node + linkType: hard + +"@metamask/json-rpc-middleware-stream@npm:^6.0.2": + version: 6.0.2 + resolution: "@metamask/json-rpc-middleware-stream@npm:6.0.2" + dependencies: + "@metamask/json-rpc-engine": ^7.3.2 + "@metamask/safe-event-emitter": ^3.0.0 + "@metamask/utils": ^8.3.0 + readable-stream: ^3.6.2 + checksum: e831041b03e9f48f584f4425188f72b58974f95b60429c9fe8b5561da69c6bbfad2f2b2199acdff06ee718967214b65c05604d4f85f3287186619683487f1060 + languageName: node + linkType: hard + +"@metamask/object-multiplex@npm:^2.0.0": + version: 2.0.0 + resolution: "@metamask/object-multiplex@npm:2.0.0" + dependencies: + once: ^1.4.0 + readable-stream: ^3.6.2 + checksum: 54baea752a3ac7c2742c376512e00d4902d383e9da8787574d3b21eb0081523309e24e3915a98f3ae0341d65712b6832d2eb7eeb862f4ef0da1ead52dcde5387 + languageName: node + linkType: hard + +"@metamask/onboarding@npm:^1.0.1": + version: 1.0.1 + resolution: "@metamask/onboarding@npm:1.0.1" + dependencies: + bowser: ^2.9.0 + checksum: c5a6b13760d8c761733fd5edcd3984b2951fb22b34ecebc27104224de7d2582065b8b7edc5b1dafafb76e73a55144d251bc08d540620dde7f1ebfb5f3520b050 + languageName: node + linkType: hard + +"@metamask/providers@npm:^15.0.0": + version: 15.0.0 + resolution: "@metamask/providers@npm:15.0.0" + dependencies: + "@metamask/json-rpc-engine": ^7.3.2 + "@metamask/json-rpc-middleware-stream": ^6.0.2 + "@metamask/object-multiplex": ^2.0.0 + "@metamask/rpc-errors": ^6.2.1 + "@metamask/safe-event-emitter": ^3.0.0 + "@metamask/utils": ^8.3.0 + detect-browser: ^5.2.0 + extension-port-stream: ^3.0.0 + fast-deep-equal: ^3.1.3 + is-stream: ^2.0.0 + readable-stream: ^3.6.2 + webextension-polyfill: ^0.10.0 + checksum: 42571450e79d69d943384f557f6a61e0f73101d49804fb6e8075d791959f76c42b8ff626f711d434674792d77aead6cb8a32b04a3dcd53598c8aff24cbb1ad25 + languageName: node + linkType: hard + +"@metamask/rpc-errors@npm:^6.2.1": + version: 6.3.0 + resolution: "@metamask/rpc-errors@npm:6.3.0" + dependencies: + "@metamask/utils": ^8.3.0 + fast-safe-stringify: ^2.0.6 + checksum: de79d132f149cba6d2efcf7b17b93d0bad92c7e5c15b3826f889e0b01979883d71acc4445b781098cee13c3837c807ee56f8b03bce78887f6a6bc95de1adfe9d + languageName: node + linkType: hard + +"@metamask/safe-event-emitter@npm:^2.0.0": version: 2.0.0 resolution: "@metamask/safe-event-emitter@npm:2.0.0" checksum: 8b717ac5d53df0027c05509f03d0534700b5898dd1c3a53fb2dc4c0499ca5971b14aae67f522d09eb9f509e77f50afa95fdb3eda1afbff8b071c18a3d2905e93 languageName: node linkType: hard -"@metamask/utils@npm:^3.0.1": - version: 3.6.0 - resolution: "@metamask/utils@npm:3.6.0" +"@metamask/safe-event-emitter@npm:^3.0.0": + version: 3.1.1 + resolution: "@metamask/safe-event-emitter@npm:3.1.1" + checksum: e24db4d7c20764bfc5b025065f92518c805f0ffb1da4820078b8cff7dcae964c0f354cf053fcb7ac659de015d5ffdf21aae5e8d44e191ee8faa9066855f22653 + languageName: node + linkType: hard + +"@metamask/sdk-communication-layer@npm:0.20.2": + version: 0.20.2 + resolution: "@metamask/sdk-communication-layer@npm:0.20.2" + dependencies: + bufferutil: ^4.0.8 + date-fns: ^2.29.3 + debug: ^4.3.4 + utf-8-validate: ^6.0.3 + uuid: ^8.3.2 + peerDependencies: + cross-fetch: ^3.1.5 + eciesjs: ^0.3.16 + eventemitter2: ^6.4.7 + readable-stream: ^3.6.2 + socket.io-client: ^4.5.1 + checksum: 4d8ef60fa459a164db4be5f2bed2a51895e106fa38ee6948b37ca54e4623b9fbe855d7830f7d2fc572fa0a72aac2c81e64a7828899f540fbc362f0ccd4ca1205 + languageName: node + linkType: hard + +"@metamask/sdk-install-modal-web@npm:0.20.2": + version: 0.20.2 + resolution: "@metamask/sdk-install-modal-web@npm:0.20.2" + dependencies: + qr-code-styling: ^1.6.0-rc.1 + peerDependencies: + i18next: 22.5.1 + react: ^18.2.0 + react-dom: ^18.2.0 + react-i18next: ^13.2.2 + react-native: "*" + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + react-native: + optional: true + checksum: cba31f783ddb6351d5ef7e47d61a8eeee8ab3d95af345069ea0055ccc500da34c6f3c2e729db20664d4ff7f2c147d6e9f783131557cf28b1fb218737cdcc6d1c + languageName: node + linkType: hard + +"@metamask/sdk@npm:0.20.3": + version: 0.20.3 + resolution: "@metamask/sdk@npm:0.20.3" + dependencies: + "@metamask/onboarding": ^1.0.1 + "@metamask/providers": ^15.0.0 + "@metamask/sdk-communication-layer": 0.20.2 + "@metamask/sdk-install-modal-web": 0.20.2 + "@types/dom-screen-wake-lock": ^1.0.0 + bowser: ^2.9.0 + cross-fetch: ^4.0.0 + debug: ^4.3.4 + eciesjs: ^0.3.15 + eth-rpc-errors: ^4.0.3 + eventemitter2: ^6.4.7 + i18next: 22.5.1 + i18next-browser-languagedetector: 7.1.0 + obj-multiplex: ^1.0.0 + pump: ^3.0.0 + qrcode-terminal-nooctal: ^0.12.1 + react-native-webview: ^11.26.0 + readable-stream: ^3.6.2 + rollup-plugin-visualizer: ^5.9.2 + socket.io-client: ^4.5.1 + util: ^0.12.4 + uuid: ^8.3.2 + peerDependencies: + react: ^18.2.0 + react-dom: ^18.2.0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + checksum: f3e0a99e744c12cec7e3c00aa9f4517b467d0b403379b70780303877bc84fedc9f068738ef6dfd04426aec4235729bde1e1667cf54f744506eaf6df5345498ac + languageName: node + linkType: hard + +"@metamask/superstruct@npm:^3.0.0": + version: 3.0.0 + resolution: "@metamask/superstruct@npm:3.0.0" + checksum: 667f8f2947186972516bb72b4ba215eaeede257c8beb0450583dd4c8b00c28729ff938267ca8804a3a351277fd627b8607cafeb71eb7045a2b6930639bb6a341 + languageName: node + linkType: hard + +"@metamask/utils@npm:^5.0.1": + version: 5.0.2 + resolution: "@metamask/utils@npm:5.0.2" dependencies: + "@ethereumjs/tx": ^4.1.2 "@types/debug": ^4.1.7 debug: ^4.3.4 semver: ^7.3.8 superstruct: ^1.0.3 - checksum: 1ebc6677bb017e4d09d4af143621fe27194d8ed815234cfd76469c3c734dc1db2ea7b577c01a2096c21c04d8c9c4d721d3035b5353fe2ded3b4737f326755e43 + checksum: eca82e42911b2840deb4f32f0f215c5ffd14d22d68afbbe92d3180e920e509e310777b15eab29def3448f3535b66596ceb4c23666ec846adacc8e1bb093ff882 + languageName: node + linkType: hard + +"@metamask/utils@npm:^8.3.0": + version: 8.5.0 + resolution: "@metamask/utils@npm:8.5.0" + dependencies: + "@ethereumjs/tx": ^4.2.0 + "@metamask/superstruct": ^3.0.0 + "@noble/hashes": ^1.3.1 + "@scure/base": ^1.1.3 + "@types/debug": ^4.1.7 + debug: ^4.3.4 + pony-cause: ^2.1.10 + semver: ^7.5.4 + uuid: ^9.0.1 + checksum: e8eac1c796c3f6b623be3c2736e8682248620f666b180f5c12ce56ee09587d4e28b6811862139a05c7a1bec91415f10ccf0516f3cdf342f88b0189d2a057c24b languageName: node linkType: hard @@ -1140,10 +1196,12 @@ __metadata: languageName: node linkType: hard -"@noble/ed25519@npm:^1.7.0": - version: 1.7.1 - resolution: "@noble/ed25519@npm:1.7.1" - checksum: b8e50306ac70f5cecc349111997e72e897b47a28d406b96cf95d0ebe7cbdefb8380d26117d7847d94102281db200aa3a494e520f9fc12e2f292e0762cb0fa333 +"@noble/curves@npm:1.4.0, @noble/curves@npm:~1.4.0": + version: 1.4.0 + resolution: "@noble/curves@npm:1.4.0" + dependencies: + "@noble/hashes": 1.4.0 + checksum: 0014ff561d16e98da4a57e2310a4015e4bdab3b1e1eafcd18d3f9b955c29c3501452ca5d702fddf8ca92d570bbeadfbe53fe16ebbd81a319c414f739154bb26b languageName: node linkType: hard @@ -1154,6 +1212,13 @@ __metadata: languageName: node linkType: hard +"@noble/hashes@npm:1.4.0, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:~1.4.0": + version: 1.4.0 + resolution: "@noble/hashes@npm:1.4.0" + checksum: 8ba816ae26c90764b8c42493eea383716396096c5f7ba6bea559993194f49d80a73c081f315f4c367e51bd2d5891700bcdfa816b421d24ab45b41cb03e4f3342 + languageName: node + linkType: hard + "@noble/hashes@patch:@noble/hashes@npm%3A1.3.0#./.yarn/patches/@noble-hashes-npm-1.3.0-ce5907dcd3.patch::locator=se-2%40workspace%3A.": version: 1.3.0 resolution: "@noble/hashes@patch:@noble/hashes@npm%3A1.3.0#./.yarn/patches/@noble-hashes-npm-1.3.0-ce5907dcd3.patch::version=1.3.0&hash=46cc1f&locator=se-2%40workspace%3A." @@ -1161,13 +1226,6 @@ __metadata: languageName: node linkType: hard -"@noble/secp256k1@npm:^1.6.3": - version: 1.7.1 - resolution: "@noble/secp256k1@npm:1.7.1" - checksum: d2301f1f7690368d8409a3152450458f27e54df47e3f917292de3de82c298770890c2de7c967d237eff9c95b70af485389a9695f73eb05a43e2bd562d18b18cb - languageName: node - linkType: hard - "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -1215,79 +1273,252 @@ __metadata: languageName: node linkType: hard -"@pkgr/utils@npm:^2.3.1": - version: 2.3.1 - resolution: "@pkgr/utils@npm:2.3.1" - dependencies: - cross-spawn: ^7.0.3 - is-glob: ^4.0.3 - open: ^8.4.0 - picocolors: ^1.0.0 - tiny-glob: ^0.2.9 - tslib: ^2.4.0 - checksum: 118a1971120253740121a1db0a6658c21195b7da962acf9c124b507a3df707cfc97b0b84a16edcbd4352853b182e8337da9fc6e8e3d06c60d75ae4fb42321c75 +"@parcel/watcher-android-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-android-arm64@npm:2.4.1" + conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rainbow-me/rainbowkit@npm:1.3.0": - version: 1.3.0 - resolution: "@rainbow-me/rainbowkit@npm:1.3.0" - dependencies: - "@vanilla-extract/css": 1.9.1 - "@vanilla-extract/dynamic": 2.0.2 - "@vanilla-extract/sprinkles": 1.5.0 - clsx: 1.1.1 - i18n-js: ^4.3.2 - qrcode: 1.5.0 - react-remove-scroll: 2.5.4 - ua-parser-js: ^1.0.35 - peerDependencies: - react: ">=17" - react-dom: ">=17" - viem: ~0.3.19 || ^1.0.0 - wagmi: ~1.0.1 || ~1.1.0 || ~1.2.0 || ~1.3.0 || ~1.4.0 - checksum: d038e0543d199da2b727c0b1d58cb07efadd0be08f5e15cab1b269f26ae5b332da46de36102f6a18a32afda93057fbea39fcad1ed287c3bb874aec91d9b2094f +"@parcel/watcher-darwin-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-darwin-arm64@npm:2.4.1" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/pluginutils@npm:^4.0.0": - version: 4.2.1 - resolution: "@rollup/pluginutils@npm:4.2.1" - dependencies: - estree-walker: ^2.0.1 - picomatch: ^2.2.2 - checksum: 6bc41f22b1a0f1efec3043899e4d3b6b1497b3dea4d94292d8f83b4cf07a1073ecbaedd562a22d11913ff7659f459677b01b09e9598a98936e746780ecc93a12 +"@parcel/watcher-darwin-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-darwin-x64@npm:2.4.1" + conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rushstack/eslint-patch@npm:^1.1.3": - version: 1.2.0 - resolution: "@rushstack/eslint-patch@npm:1.2.0" - checksum: faa749faae0e83c26ae9eb00ad36a897ac78f3cf27da8e8ff21c00bcf7973b598d823d8f2b3957ef66079288bcf577f94df831eae2d65f3f68d8ca32f18b6aff +"@parcel/watcher-freebsd-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-freebsd-x64@npm:2.4.1" + conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@safe-global/safe-apps-provider@npm:^0.17.1": - version: 0.17.1 - resolution: "@safe-global/safe-apps-provider@npm:0.17.1" - dependencies: - "@safe-global/safe-apps-sdk": 8.0.0 - events: ^3.3.0 - checksum: 02f0415a4bb77b82e55f0055be045af715d9c0ea0fa7daa4e0604f40cc2189051d111b8ead67ddab0e99b1e423b444753c11d69bb213d51e459f706d2b430e34 +"@parcel/watcher-linux-arm-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm-glibc@npm:2.4.1" + conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@safe-global/safe-apps-sdk@npm:8.0.0, @safe-global/safe-apps-sdk@npm:^8.0.0": - version: 8.0.0 - resolution: "@safe-global/safe-apps-sdk@npm:8.0.0" - dependencies: - "@safe-global/safe-gateway-typescript-sdk": ^3.5.3 - viem: ^1.0.0 - checksum: 07295c44afa4d85fbc9419b4baac56b4fb493816d4438d6956842261e0689fdcea639ab86b39ee693c456fddace17b6c556c77a637892634a57de96f6b00b0c3 +"@parcel/watcher-linux-arm64-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm64-glibc@npm:2.4.1" + conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@safe-global/safe-gateway-typescript-sdk@npm:^3.5.3": +"@parcel/watcher-linux-arm64-musl@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm64-musl@npm:2.4.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-linux-x64-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-x64-glibc@npm:2.4.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-x64-musl@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-x64-musl@npm:2.4.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-wasm@npm:^2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-wasm@npm:2.4.1" + dependencies: + is-glob: ^4.0.3 + micromatch: ^4.0.5 + napi-wasm: ^1.1.0 + checksum: 8ac9585b5aac43d7125ea326482b733fbe4564ed68846624647a93899885290a5a3e26c71d16adfc43dec98a69ee73256aa714f53b430be1ef501b6c69973b2e + languageName: node + linkType: hard + +"@parcel/watcher-win32-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-arm64@npm:2.4.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-win32-ia32@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-ia32@npm:2.4.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@parcel/watcher-win32-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-x64@npm:2.4.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher@npm:^2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher@npm:2.4.1" + dependencies: + "@parcel/watcher-android-arm64": 2.4.1 + "@parcel/watcher-darwin-arm64": 2.4.1 + "@parcel/watcher-darwin-x64": 2.4.1 + "@parcel/watcher-freebsd-x64": 2.4.1 + "@parcel/watcher-linux-arm-glibc": 2.4.1 + "@parcel/watcher-linux-arm64-glibc": 2.4.1 + "@parcel/watcher-linux-arm64-musl": 2.4.1 + "@parcel/watcher-linux-x64-glibc": 2.4.1 + "@parcel/watcher-linux-x64-musl": 2.4.1 + "@parcel/watcher-win32-arm64": 2.4.1 + "@parcel/watcher-win32-ia32": 2.4.1 + "@parcel/watcher-win32-x64": 2.4.1 + detect-libc: ^1.0.3 + is-glob: ^4.0.3 + micromatch: ^4.0.5 + node-addon-api: ^7.0.0 + node-gyp: latest + dependenciesMeta: + "@parcel/watcher-android-arm64": + optional: true + "@parcel/watcher-darwin-arm64": + optional: true + "@parcel/watcher-darwin-x64": + optional: true + "@parcel/watcher-freebsd-x64": + optional: true + "@parcel/watcher-linux-arm-glibc": + optional: true + "@parcel/watcher-linux-arm64-glibc": + optional: true + "@parcel/watcher-linux-arm64-musl": + optional: true + "@parcel/watcher-linux-x64-glibc": + optional: true + "@parcel/watcher-linux-x64-musl": + optional: true + "@parcel/watcher-win32-arm64": + optional: true + "@parcel/watcher-win32-ia32": + optional: true + "@parcel/watcher-win32-x64": + optional: true + checksum: 4da70551da27e565c726b0bbd5ba5afcb2bca36dfd8619a649f0eaa41f693ddd1d630c36e53bc083895d71a3e28bc4199013e557cd13c7af6ccccab28ceecbff + languageName: node + linkType: hard + +"@pkgr/utils@npm:^2.3.1": + version: 2.3.1 + resolution: "@pkgr/utils@npm:2.3.1" + dependencies: + cross-spawn: ^7.0.3 + is-glob: ^4.0.3 + open: ^8.4.0 + picocolors: ^1.0.0 + tiny-glob: ^0.2.9 + tslib: ^2.4.0 + checksum: 118a1971120253740121a1db0a6658c21195b7da962acf9c124b507a3df707cfc97b0b84a16edcbd4352853b182e8337da9fc6e8e3d06c60d75ae4fb42321c75 + languageName: node + linkType: hard + +"@rainbow-me/rainbowkit@npm:2.1.0": + version: 2.1.0 + resolution: "@rainbow-me/rainbowkit@npm:2.1.0" + dependencies: + "@vanilla-extract/css": 1.14.0 + "@vanilla-extract/dynamic": 2.1.0 + "@vanilla-extract/sprinkles": 1.6.1 + clsx: 2.1.0 + qrcode: 1.5.3 + react-remove-scroll: 2.5.7 + ua-parser-js: ^1.0.37 + peerDependencies: + "@tanstack/react-query": ">=5.0.0" + react: ">=18" + react-dom: ">=18" + viem: 2.x + wagmi: ^2.9.0 + checksum: b39afb372ff4efda8d20960a590f059979672a86928c7eb7aac7f568e1dd3dc3a5c5890b3af1a9dd047a6ee7baf34836f0db233089d1765339904d5540c1c9b7 + languageName: node + linkType: hard + +"@rainbow-me/rainbowkit@npm:2.1.2": + version: 2.1.2 + resolution: "@rainbow-me/rainbowkit@npm:2.1.2" + dependencies: + "@vanilla-extract/css": 1.14.0 + "@vanilla-extract/dynamic": 2.1.0 + "@vanilla-extract/sprinkles": 1.6.1 + clsx: 2.1.0 + qrcode: 1.5.3 + react-remove-scroll: 2.5.7 + ua-parser-js: ^1.0.37 + peerDependencies: + "@tanstack/react-query": ">=5.0.0" + react: ">=18" + react-dom: ">=18" + viem: 2.x + wagmi: ^2.9.0 + checksum: 8d127509b376715c3e22030a4df74ef061d3da86bfa481bae3ea035192fa324fb82179da284f4bdf98feb1b2672157ca9440ed0c51d9280d9da694b9e6ba6250 + languageName: node + linkType: hard + +"@resvg/resvg-wasm@npm:2.4.0": + version: 2.4.0 + resolution: "@resvg/resvg-wasm@npm:2.4.0" + checksum: 6000bd71c8b0ba0861e4cc162e5210fe7abfefe699236ddcc97b3724649ba996f31254fccdc1ee88b544a2cf8527e561da8d75e0bd6daa7f63f45d38927d18f6 + languageName: node + linkType: hard + +"@rollup/pluginutils@npm:^4.0.0": + version: 4.2.1 + resolution: "@rollup/pluginutils@npm:4.2.1" + dependencies: + estree-walker: ^2.0.1 + picomatch: ^2.2.2 + checksum: 6bc41f22b1a0f1efec3043899e4d3b6b1497b3dea4d94292d8f83b4cf07a1073ecbaedd562a22d11913ff7659f459677b01b09e9598a98936e746780ecc93a12 + languageName: node + linkType: hard + +"@rushstack/eslint-patch@npm:^1.1.3": + version: 1.2.0 + resolution: "@rushstack/eslint-patch@npm:1.2.0" + checksum: faa749faae0e83c26ae9eb00ad36a897ac78f3cf27da8e8ff21c00bcf7973b598d823d8f2b3957ef66079288bcf577f94df831eae2d65f3f68d8ca32f18b6aff + languageName: node + linkType: hard + +"@safe-global/safe-apps-provider@npm:0.18.1": + version: 0.18.1 + resolution: "@safe-global/safe-apps-provider@npm:0.18.1" + dependencies: + "@safe-global/safe-apps-sdk": ^8.1.0 + events: ^3.3.0 + checksum: fb77aee24149303a8886f1c23ed35ccd75ed63ed67cdb1dfd5c7160e7744f37c8872feadcfbf6d5712d2de65896a1aaf339dc4afb1fa648f0dddd689ff89183c + languageName: node + linkType: hard + +"@safe-global/safe-apps-sdk@npm:8.1.0, @safe-global/safe-apps-sdk@npm:^8.1.0": + version: 8.1.0 + resolution: "@safe-global/safe-apps-sdk@npm:8.1.0" + dependencies: + "@safe-global/safe-gateway-typescript-sdk": ^3.5.3 + viem: ^1.0.0 + checksum: e9d31ed6d9cd2cd9ed71ef5a0e1f6ecfca9f0c62acb9b86a0ddb1b65a609090f2297c4304591ac0518b266a1bcc88d1dad31b0d05e50c7732accccb65adab754 + languageName: node + linkType: hard + +"@safe-global/safe-gateway-typescript-sdk@npm:^3.5.3": version: 3.7.0 resolution: "@safe-global/safe-gateway-typescript-sdk@npm:3.7.0" dependencies: @@ -1296,6 +1527,13 @@ __metadata: languageName: node linkType: hard +"@scure/base@npm:^1.1.3, @scure/base@npm:~1.1.6": + version: 1.1.7 + resolution: "@scure/base@npm:1.1.7" + checksum: d9084be9a2f27971df1684af9e40bb750e86f549345e1bb3227fb61673c0c83569c92c1cb0a4ddccb32650b39d3cd3c145603b926ba751c9bc60c27317549b20 + languageName: node + linkType: hard + "@scure/base@npm:~1.1.0": version: 1.1.1 resolution: "@scure/base@npm:1.1.1" @@ -1332,6 +1570,17 @@ __metadata: languageName: node linkType: hard +"@scure/bip32@npm:1.4.0": + version: 1.4.0 + resolution: "@scure/bip32@npm:1.4.0" + dependencies: + "@noble/curves": ~1.4.0 + "@noble/hashes": ~1.4.0 + "@scure/base": ~1.1.6 + checksum: eff491651cbf2bea8784936de75af5fc020fc1bbb9bcb26b2cfeefbd1fb2440ebfaf30c0733ca11c0ae1e272a2ef4c3c34ba5c9fb3e1091c3285a4272045b0c6 + languageName: node + linkType: hard + "@scure/bip39@npm:1.2.0": version: 1.2.0 resolution: "@scure/bip39@npm:1.2.0" @@ -1352,14 +1601,24 @@ __metadata: languageName: node linkType: hard +"@scure/bip39@npm:1.3.0": + version: 1.3.0 + resolution: "@scure/bip39@npm:1.3.0" + dependencies: + "@noble/hashes": ~1.4.0 + "@scure/base": ~1.1.6 + checksum: dbb0b27df753eb6c6380010b25cc9a9ea31f9cb08864fc51e69e5880ff7e2b8f85b72caea1f1f28af165e83b72c48dd38617e43fc632779d025b50ba32ea759e + languageName: node + linkType: hard + "@se-2/nextjs@workspace:packages/nextjs": version: 0.0.0-use.local resolution: "@se-2/nextjs@workspace:packages/nextjs" dependencies: - "@ethersproject/providers": ^5.7.2 "@heroicons/react": ^2.0.11 "@metamask/jazzicon": ^2.0.0 - "@rainbow-me/rainbowkit": 1.3.0 + "@rainbow-me/rainbowkit": 2.1.2 + "@tanstack/react-query": ^5.28.6 "@trivago/prettier-plugin-sort-imports": ^4.1.1 "@types/node": ^17.0.35 "@types/react": ^18.0.9 @@ -1367,8 +1626,11 @@ __metadata: "@typescript-eslint/eslint-plugin": ^5.39.0 "@uniswap/sdk-core": ^4.0.1 "@uniswap/v2-sdk": ^3.0.1 + "@vercel/og": ^0.6.2 + abitype: 1.0.2 autoprefixer: ^10.4.12 blo: ^1.0.1 + burner-connector: ^0.0.8 daisyui: ^4.4.19 eslint: ^8.15.0 eslint-config-next: ^13.1.6 @@ -1388,46 +1650,32 @@ __metadata: react-select: ^5.8.0 tailwindcss: ^3.3.3 type-fest: ^4.6.0 - typescript: ^5.1.6 + typescript: 5.1.6 use-debounce: ^8.0.4 usehooks-ts: ^2.7.2 vercel: ^28.15.1 - viem: 1.19.9 - wagmi: 1.4.7 + viem: 2.13.6 + wagmi: 2.9.8 zustand: ^4.1.2 languageName: unknown linkType: soft -"@solana/buffer-layout@npm:^4.0.0": - version: 4.0.0 - resolution: "@solana/buffer-layout@npm:4.0.0" +"@shuding/opentype.js@npm:1.4.0-beta.0": + version: 1.4.0-beta.0 + resolution: "@shuding/opentype.js@npm:1.4.0-beta.0" dependencies: - buffer: ~6.0.3 - checksum: f244e9c42425477ded1fb5295252d7cb093cd591a14552e89271000ad5c01a5b5c0f2f83c7253d640414b600d4b31d95e9f3fcaec6d8280d3d6cb7f3d0a88565 + fflate: ^0.7.3 + string.prototype.codepointat: ^0.2.1 + bin: + ot: bin/ot + checksum: af3478c40c068c7f6b6050b274a10837fcd1417c072b6af2b9d4fa48b8efe0bc93ec4b5f80b186678672f7d293027151389c66a4c5a156b48b810b8e8f3f5cdf languageName: node linkType: hard -"@solana/web3.js@npm:^1.70.1": - version: 1.73.0 - resolution: "@solana/web3.js@npm:1.73.0" - dependencies: - "@babel/runtime": ^7.12.5 - "@noble/ed25519": ^1.7.0 - "@noble/hashes": ^1.1.2 - "@noble/secp256k1": ^1.6.3 - "@solana/buffer-layout": ^4.0.0 - agentkeepalive: ^4.2.1 - bigint-buffer: ^1.1.5 - bn.js: ^5.0.0 - borsh: ^0.7.0 - bs58: ^4.0.1 - buffer: 6.0.1 - fast-stable-stringify: ^1.0.0 - jayson: ^3.4.4 - node-fetch: 2 - rpc-websockets: ^7.5.0 - superstruct: ^0.14.2 - checksum: 8bd212d3fce35ad4ad4bc2490181c3d18b6abda10b253fde5a7c6b1620cdb27f37f96d5739d3058abeded76e736b35439cae2deddb3dfd4aae8ffcdf7233223c +"@socket.io/component-emitter@npm:~3.1.0": + version: 3.1.2 + resolution: "@socket.io/component-emitter@npm:3.1.2" + checksum: 89888f00699eb34e3070624eb7b8161fa29f064aeb1389a48f02195d55dd7c52a504e52160016859f6d6dffddd54324623cdd47fd34b3d46f9ed96c18c456edc languageName: node linkType: hard @@ -1551,7 +1799,7 @@ __metadata: languageName: node linkType: hard -"@stablelib/random@npm:^1.0.1, @stablelib/random@npm:^1.0.2": +"@stablelib/random@npm:1.0.2, @stablelib/random@npm:^1.0.1, @stablelib/random@npm:^1.0.2": version: 1.0.2 resolution: "@stablelib/random@npm:1.0.2" dependencies: @@ -1590,7 +1838,7 @@ __metadata: languageName: node linkType: hard -"@stablelib/x25519@npm:^1.0.3": +"@stablelib/x25519@npm:1.0.3": version: 1.0.3 resolution: "@stablelib/x25519@npm:1.0.3" dependencies: @@ -1610,58 +1858,21 @@ __metadata: languageName: node linkType: hard -"@tanstack/query-core@npm:4.29.14": - version: 4.29.14 - resolution: "@tanstack/query-core@npm:4.29.14" - checksum: 3f74b2a02a7ac3b5d5f01507dc5ed15af539257005fc299ae4e4ef578feb347ab737ed5beb542c809c8f2838ae4d8626f6bf5d7d134173e0b8504c0900d0d9f6 - languageName: node - linkType: hard - -"@tanstack/query-persist-client-core@npm:4.29.14": - version: 4.29.14 - resolution: "@tanstack/query-persist-client-core@npm:4.29.14" - dependencies: - "@tanstack/query-core": 4.29.14 - checksum: 34ca10ee241596ec5375590606edba76c15a0333d3545514a9562e2e4c291fd7a7fb8101e66ee794cd31d143e248de3523d3873db484448b782a5b2c7839ba97 +"@tanstack/query-core@npm:5.45.0": + version: 5.45.0 + resolution: "@tanstack/query-core@npm:5.45.0" + checksum: a3c13d90cfa12955d22fa754ebfddbea70081fc0128111083269bdd78ed0d25678f050007b753164a929a00fdef9ee5ebba945deb8e360120ae3cbae06e655a5 languageName: node linkType: hard -"@tanstack/query-sync-storage-persister@npm:^4.27.1": - version: 4.29.14 - resolution: "@tanstack/query-sync-storage-persister@npm:4.29.14" +"@tanstack/react-query@npm:^5.28.6": + version: 5.45.1 + resolution: "@tanstack/react-query@npm:5.45.1" dependencies: - "@tanstack/query-persist-client-core": 4.29.14 - checksum: ba0d3a32688310cbe91cf1157002ec697e0b073d52a6313174c456e02008ac75052ea28111721257a1f29d8701c96bacc6868b543ea8381f99d8943ed1d4e140 - languageName: node - linkType: hard - -"@tanstack/react-query-persist-client@npm:^4.28.0": - version: 4.29.14 - resolution: "@tanstack/react-query-persist-client@npm:4.29.14" - dependencies: - "@tanstack/query-persist-client-core": 4.29.14 - peerDependencies: - "@tanstack/react-query": 4.29.14 - checksum: b21f6b2a4210be429e7aa03f315e6ef580b64489056cd1a523110385682aaaedf15984f6fc159bd67aa9498beba2e34bfe112aaa7dcacb12399169171f20970b - languageName: node - linkType: hard - -"@tanstack/react-query@npm:^4.28.0": - version: 4.29.14 - resolution: "@tanstack/react-query@npm:4.29.14" - dependencies: - "@tanstack/query-core": 4.29.14 - use-sync-external-store: ^1.2.0 + "@tanstack/query-core": 5.45.0 peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-native: "*" - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - checksum: 2444cd11dbbb9e6811e845505bd55d0f4b63f39f6067f5b3a65b18ed66d945128d84988df3b7aaae7adc5636fd0909af86bbc184b6101d395136f8bd14509593 + react: ^18.0.0 + checksum: b5d8178ee1f4b1dd197a783e7f0eb4a7c0e9ef8fde18c73f71aee636cd57e742a1693a2cd2279fbfb3d6b04aa535212fba8b6c535f6ffc92d020938cc117796e languageName: node linkType: hard @@ -1732,15 +1943,6 @@ __metadata: languageName: node linkType: hard -"@types/connect@npm:^3.4.33": - version: 3.4.35 - resolution: "@types/connect@npm:3.4.35" - dependencies: - "@types/node": "*" - checksum: fe81351470f2d3165e8b12ce33542eef89ea893e36dd62e8f7d72566dfb7e448376ae962f9f3ea888547ce8b55a40020ca0e01d637fab5d99567673084542641 - languageName: node - linkType: hard - "@types/debug@npm:^4.1.7": version: 4.1.8 resolution: "@types/debug@npm:4.1.8" @@ -1750,6 +1952,13 @@ __metadata: languageName: node linkType: hard +"@types/dom-screen-wake-lock@npm:^1.0.0": + version: 1.0.3 + resolution: "@types/dom-screen-wake-lock@npm:1.0.3" + checksum: 66bece3508b4f4147db97a530c758f8f5d3132ef00c06cab1db4bf2b4af6a3a614ae0a0ba6b53ddc4177a6545adf9d312547087256efc8eff7314b13221380b8 + languageName: node + linkType: hard + "@types/json-schema@npm:^7.0.6, @types/json-schema@npm:^7.0.9": version: 7.0.11 resolution: "@types/json-schema@npm:7.0.11" @@ -1785,13 +1994,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^12.12.54": - version: 12.20.55 - resolution: "@types/node@npm:12.20.55" - checksum: e4f86785f4092706e0d3b0edff8dca5a13b45627e4b36700acd8dfe6ad53db71928c8dee914d4276c7fd3b6ccd829aa919811c9eb708a2c8e4c6eb3701178c37 - languageName: node - linkType: hard - "@types/node@npm:^17.0.35": version: 17.0.45 resolution: "@types/node@npm:17.0.45" @@ -1856,6 +2058,15 @@ __metadata: languageName: node linkType: hard +"@types/secp256k1@npm:^4.0.6": + version: 4.0.6 + resolution: "@types/secp256k1@npm:4.0.6" + dependencies: + "@types/node": "*" + checksum: 984494caf49a4ce99fda2b9ea1840eb47af946b8c2737314108949bcc0c06b4880e871296bd49ed6ea4c8423e3a302ad79fec43abfc987330e7eb98f0c4e8ba4 + languageName: node + linkType: hard + "@types/trusted-types@npm:^2.0.2": version: 2.0.2 resolution: "@types/trusted-types@npm:2.0.2" @@ -1863,15 +2074,6 @@ __metadata: languageName: node linkType: hard -"@types/ws@npm:^7.4.4": - version: 7.4.7 - resolution: "@types/ws@npm:7.4.7" - dependencies: - "@types/node": "*" - checksum: b4c9b8ad209620c9b21e78314ce4ff07515c0cadab9af101c1651e7bfb992d7fd933bd8b9c99d110738fd6db523ed15f82f29f50b45510288da72e964dedb1a3 - languageName: node - linkType: hard - "@typescript-eslint/eslint-plugin@npm:^5.39.0": version: 5.40.0 resolution: "@typescript-eslint/eslint-plugin@npm:5.40.0" @@ -2076,31 +2278,31 @@ __metadata: languageName: node linkType: hard -"@vanilla-extract/css@npm:1.9.1": - version: 1.9.1 - resolution: "@vanilla-extract/css@npm:1.9.1" +"@vanilla-extract/css@npm:1.14.0": + version: 1.14.0 + resolution: "@vanilla-extract/css@npm:1.14.0" dependencies: - "@emotion/hash": ^0.8.0 + "@emotion/hash": ^0.9.0 "@vanilla-extract/private": ^1.0.3 - ahocorasick: 1.0.2 chalk: ^4.1.1 - css-what: ^5.0.1 + css-what: ^6.1.0 cssesc: ^3.0.0 csstype: ^3.0.7 - deep-object-diff: ^1.1.0 + deep-object-diff: ^1.1.9 deepmerge: ^4.2.2 media-query-parser: ^2.0.2 + modern-ahocorasick: ^1.0.0 outdent: ^0.8.0 - checksum: 91127d8e2eaaf521b155a39fb6a93e0fbfe5ddd5a8bdf1c732aba278cfdb9505cba24c755a982bc47682b9ff582a06d11e51e6f8d810404164ba098799ce6800 + checksum: ca12de26f72b908c7ac2ee9319faff885fb451ab3da7cef86aae8660c7e042c447041be40ac8c6155d87e8a709efb0697214db3a6cce211e8ef3c110d4dcf8a1 languageName: node linkType: hard -"@vanilla-extract/dynamic@npm:2.0.2": - version: 2.0.2 - resolution: "@vanilla-extract/dynamic@npm:2.0.2" +"@vanilla-extract/dynamic@npm:2.1.0": + version: 2.1.0 + resolution: "@vanilla-extract/dynamic@npm:2.1.0" dependencies: "@vanilla-extract/private": ^1.0.3 - checksum: c6f22606bce094a5682c6d842be6d6965b9448f8973eaabdaa7a7438146458c22490c1c63345f08d2226f1c95ac20731835a5140c2c18646b2c1287b65607b84 + checksum: a6f129d096286cf7e2c7c868f12866d2da2967cd7591e071eb6420f0fafccce86c58e1d408864109fc894332399e731fe8ae67e2c92d456feb4b21c602287f6d languageName: node linkType: hard @@ -2111,12 +2313,12 @@ __metadata: languageName: node linkType: hard -"@vanilla-extract/sprinkles@npm:1.5.0": - version: 1.5.0 - resolution: "@vanilla-extract/sprinkles@npm:1.5.0" +"@vanilla-extract/sprinkles@npm:1.6.1": + version: 1.6.1 + resolution: "@vanilla-extract/sprinkles@npm:1.6.1" peerDependencies: "@vanilla-extract/css": ^1.0.0 - checksum: 522b96afe856a72d76072ab41453edc35117772a6ac829c8a5ad09cddd69152e152b1cbda0b4344d50dbde59d0effa39301beb7acf319ef88f485966c89c80fd + checksum: 13c53a94b19f9226c2684b0da06b98022d2faaf504cb5a4a8e5a0abae499aaa7855c17aa6d88534800d9427696b3248f4fc1a5332bde336c445d837017569f3b languageName: node linkType: hard @@ -2220,6 +2422,17 @@ __metadata: languageName: node linkType: hard +"@vercel/og@npm:^0.6.2": + version: 0.6.2 + resolution: "@vercel/og@npm:0.6.2" + dependencies: + "@resvg/resvg-wasm": 2.4.0 + satori: 0.10.9 + yoga-wasm-web: 0.3.3 + checksum: b8bf5614c669f20d5cd985cfce1724c267da8fcd0441819b7d782b4fc0db6eceff5623d7714668e0654e55b0d6ba89d3c2918b3e435570ab1ce1e0f3390032e3 + languageName: node + linkType: hard + "@vercel/python@npm:3.1.44": version: 3.1.44 resolution: "@vercel/python@npm:3.1.44" @@ -2300,94 +2513,90 @@ __metadata: languageName: node linkType: hard -"@wagmi/connectors@npm:3.1.5": - version: 3.1.5 - resolution: "@wagmi/connectors@npm:3.1.5" - 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 +"@wagmi/connectors@npm:5.0.7": + version: 5.0.7 + resolution: "@wagmi/connectors@npm:5.0.7" + dependencies: + "@coinbase/wallet-sdk": 4.0.2 + "@metamask/sdk": 0.20.3 + "@safe-global/safe-apps-provider": 0.18.1 + "@safe-global/safe-apps-sdk": 8.1.0 + "@walletconnect/ethereum-provider": 2.13.0 "@walletconnect/modal": 2.6.2 - "@walletconnect/utils": 2.10.2 - abitype: 0.8.7 - eventemitter3: ^4.0.7 + cbw-sdk: "npm:@coinbase/wallet-sdk@3.9.3" peerDependencies: + "@wagmi/core": 2.10.5 typescript: ">=5.0.4" - viem: ">=0.3.35" + viem: 2.x peerDependenciesMeta: typescript: optional: true - checksum: 459370925b7dc278493b974579a29c0fe836130940c9c9294acda3ed0ad1b28d0382fa0d2e9898114073bf572c9af3fa0b9cf1e1fcc3d37620e142cd5cf41fe0 + checksum: 7eb0c2f2bb47801d8276a16642fbdebbfb6cafd2b8e5ef90d9b2b191cdbc7ba34667010faf26c75351a6d9c49c3325a7a9635f990cd615c613286c92dada90f8 languageName: node linkType: hard -"@wagmi/core@npm:1.4.7": - version: 1.4.7 - resolution: "@wagmi/core@npm:1.4.7" +"@wagmi/core@npm:2.10.2": + version: 2.10.2 + resolution: "@wagmi/core@npm:2.10.2" dependencies: - "@wagmi/connectors": 3.1.5 - abitype: 0.8.7 - eventemitter3: ^4.0.7 - zustand: ^4.3.1 + eventemitter3: 5.0.1 + mipd: 0.0.5 + zustand: 4.4.1 peerDependencies: + "@tanstack/query-core": ">=5.0.0" typescript: ">=5.0.4" - viem: ">=0.3.35" + viem: 2.x peerDependenciesMeta: + "@tanstack/query-core": + optional: true typescript: optional: true - checksum: 4ca79fc4cdf3d091fbef8b8a408cabfef676b8842aa1b277ab97cd68aaa47ab57a66b7a38162bd183560a023363724a30671aa543e59101b22e926f08f4a5fee - languageName: node - linkType: hard - -"@walletconnect/core@npm:2.10.2": - version: 2.10.2 - resolution: "@walletconnect/core@npm:2.10.2" - dependencies: - "@walletconnect/heartbeat": 1.2.1 - "@walletconnect/jsonrpc-provider": 1.0.13 - "@walletconnect/jsonrpc-types": 1.0.3 - "@walletconnect/jsonrpc-utils": 1.0.8 - "@walletconnect/jsonrpc-ws-connection": 1.0.13 - "@walletconnect/keyvaluestorage": ^1.0.2 - "@walletconnect/logger": ^2.0.1 - "@walletconnect/relay-api": ^1.0.9 - "@walletconnect/relay-auth": ^1.0.4 - "@walletconnect/safe-json": ^1.0.2 - "@walletconnect/time": ^1.0.2 - "@walletconnect/types": 2.10.2 - "@walletconnect/utils": 2.10.2 - events: ^3.3.0 - lodash.isequal: 4.5.0 - uint8arrays: ^3.1.0 - checksum: 78b6e56bdd44ee0d27157eacbc916d053d75013b1f9e00869efc63141c1d0b33a771eaf8ab6f2fcb1bef3c0f87173f31067674567962a6dd9d45a4376a306c91 + checksum: a738aea155f662da2e538c3ba8ee2556eb317abc8a1bcac1e3d3002300dd65a7c7d7fa414419d8a306e0612c47e226368cacb88111b7071cd01366672a3394d0 languageName: node linkType: hard -"@walletconnect/crypto@npm:^1.0.3": - version: 1.0.3 - resolution: "@walletconnect/crypto@npm:1.0.3" +"@wagmi/core@npm:2.10.5": + version: 2.10.5 + resolution: "@wagmi/core@npm:2.10.5" 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 - checksum: 056c80451178d74be6237f24e53eb96951379ad2f556642b4f07231a9cac53512af182dfb58ee359d1d6803231030de747eb17b35a9a25577e20de3ef2d8fdec + eventemitter3: 5.0.1 + mipd: 0.0.5 + zustand: 4.4.1 + peerDependencies: + "@tanstack/query-core": ">=5.0.0" + typescript: ">=5.0.4" + viem: 2.x + peerDependenciesMeta: + "@tanstack/query-core": + optional: true + typescript: + optional: true + checksum: 411a18c042799cc9be7661d30a8c8da9bb12edc68141c3ec315ffd0b981dc5c490a45a8ce297847c1adb5be2acb290cb49bdc7faa1dcc09a882ced0be557c481 languageName: node linkType: hard -"@walletconnect/encoding@npm:^1.0.2": - version: 1.0.2 - resolution: "@walletconnect/encoding@npm:1.0.2" +"@walletconnect/core@npm:2.13.0": + version: 2.13.0 + resolution: "@walletconnect/core@npm:2.13.0" dependencies: - is-typedarray: 1.0.0 - tslib: 1.14.1 - typedarray-to-buffer: 3.1.5 - checksum: 648029d6a04e0e3675e1220b87c982e5d69764873e30a45a7c57f18223cd7c13e6758138d4644fd05d8fa03bd438fafb0a0ebc6ae168ed6f4a9bf1f93de1b82f + "@walletconnect/heartbeat": 1.2.2 + "@walletconnect/jsonrpc-provider": 1.0.14 + "@walletconnect/jsonrpc-types": 1.0.4 + "@walletconnect/jsonrpc-utils": 1.0.8 + "@walletconnect/jsonrpc-ws-connection": 1.0.14 + "@walletconnect/keyvaluestorage": 1.1.1 + "@walletconnect/logger": 2.1.2 + "@walletconnect/relay-api": 1.0.10 + "@walletconnect/relay-auth": 1.0.4 + "@walletconnect/safe-json": 1.0.2 + "@walletconnect/time": 1.0.2 + "@walletconnect/types": 2.13.0 + "@walletconnect/utils": 2.13.0 + events: 3.3.0 + isomorphic-unfetch: 3.1.0 + lodash.isequal: 4.5.0 + uint8arrays: 3.1.0 + checksum: 6e503bdc7d678ccaeaa9d93fdc6311298d326febef87f233b80c12340178ae3eff54a3a79e19400d65298f109466c508dbef0d5710fffd09d357b7b6bec8b56f languageName: node linkType: hard @@ -2400,29 +2609,25 @@ __metadata: languageName: node linkType: hard -"@walletconnect/ethereum-provider@npm:2.10.2": - version: 2.10.2 - resolution: "@walletconnect/ethereum-provider@npm:2.10.2" +"@walletconnect/ethereum-provider@npm:2.13.0": + version: 2.13.0 + resolution: "@walletconnect/ethereum-provider@npm:2.13.0" dependencies: - "@walletconnect/jsonrpc-http-connection": ^1.0.7 - "@walletconnect/jsonrpc-provider": ^1.0.13 - "@walletconnect/jsonrpc-types": ^1.0.3 - "@walletconnect/jsonrpc-utils": ^1.0.8 - "@walletconnect/sign-client": 2.10.2 - "@walletconnect/types": 2.10.2 - "@walletconnect/universal-provider": 2.10.2 - "@walletconnect/utils": 2.10.2 - events: ^3.3.0 - peerDependencies: - "@walletconnect/modal": ">=2" - peerDependenciesMeta: - "@walletconnect/modal": - optional: true - checksum: 86aecdb2c6eaf5d5cccd6d577ae815ae0d5f743703562db8eebcc573485eaca7a85ae08a30a7bac1f17b35d5de8d1df6a2c8ccac6ca4c63ef7ef6e97f74ea064 + "@walletconnect/jsonrpc-http-connection": 1.0.8 + "@walletconnect/jsonrpc-provider": 1.0.14 + "@walletconnect/jsonrpc-types": 1.0.4 + "@walletconnect/jsonrpc-utils": 1.0.8 + "@walletconnect/modal": 2.6.2 + "@walletconnect/sign-client": 2.13.0 + "@walletconnect/types": 2.13.0 + "@walletconnect/universal-provider": 2.13.0 + "@walletconnect/utils": 2.13.0 + events: 3.3.0 + checksum: 24356a41b72fea5125ef0e6605df4469f023141ce5de8cc92f1ae23b35215efb0ee2c1e5857f483f34eccd4a051915b64518daadc4c8a2145bf91473c2f5a7bc languageName: node linkType: hard -"@walletconnect/events@npm:^1.0.1": +"@walletconnect/events@npm:1.0.1, @walletconnect/events@npm:^1.0.1": version: 1.0.1 resolution: "@walletconnect/events@npm:1.0.1" dependencies: @@ -2432,70 +2637,47 @@ __metadata: languageName: node linkType: hard -"@walletconnect/heartbeat@npm:1.2.1": - version: 1.2.1 - resolution: "@walletconnect/heartbeat@npm:1.2.1" +"@walletconnect/heartbeat@npm:1.2.2": + version: 1.2.2 + resolution: "@walletconnect/heartbeat@npm:1.2.2" dependencies: "@walletconnect/events": ^1.0.1 "@walletconnect/time": ^1.0.2 - tslib: 1.14.1 - checksum: df4d492a2d336283f834bc205c09b795f85cd507a61b14745dc2124e510a250fefbd83d51216f93df2e0aa0cf8120134db2679de8019eddd63877e9928997952 - languageName: node - linkType: hard - -"@walletconnect/jsonrpc-http-connection@npm:^1.0.4": - version: 1.0.4 - resolution: "@walletconnect/jsonrpc-http-connection@npm:1.0.4" - dependencies: - "@walletconnect/jsonrpc-utils": ^1.0.4 - "@walletconnect/safe-json": ^1.0.1 - cross-fetch: ^3.1.4 - tslib: 1.14.1 - checksum: 195835deb7e4b26e48f11b0096d9dcff7bbed7fc4577b7528fbfe56e68f60574789efcc2caf354dc9ef09abd7ada6f64a9d1c6d5949a49e80557d114b667f090 + events: ^3.3.0 + checksum: 720341f24dae64acc836015d694b4337a0d1cbc628a3f6ee556771278465cae61366fb0e5af93f9823b06a6f4e23013f3986d6dad2a58c2db4b7c991a73c646d languageName: node linkType: hard -"@walletconnect/jsonrpc-http-connection@npm:^1.0.7": - version: 1.0.7 - resolution: "@walletconnect/jsonrpc-http-connection@npm:1.0.7" +"@walletconnect/jsonrpc-http-connection@npm:1.0.8": + version: 1.0.8 + resolution: "@walletconnect/jsonrpc-http-connection@npm:1.0.8" dependencies: "@walletconnect/jsonrpc-utils": ^1.0.6 "@walletconnect/safe-json": ^1.0.1 cross-fetch: ^3.1.4 - tslib: 1.14.1 - checksum: c4efcd46d4b344727ca6879badca2c2f855499ac76c8dace5d118f4423167adce34e41a99f3dcab0febb945ce51c6ef0ac8556567d5e38d8dad864b131eb5b00 + events: ^3.3.0 + checksum: 2b7c49aca54af2ec37f7bb493062e0bb522ec262889890aa00c133a85dd39beffcfcdb73252600446383a9e6db360cffdc6c50ef7c9b68aae7f5606c8781bdbc languageName: node linkType: hard -"@walletconnect/jsonrpc-provider@npm:1.0.13, @walletconnect/jsonrpc-provider@npm:^1.0.13": - version: 1.0.13 - resolution: "@walletconnect/jsonrpc-provider@npm:1.0.13" +"@walletconnect/jsonrpc-provider@npm:1.0.14": + version: 1.0.14 + resolution: "@walletconnect/jsonrpc-provider@npm:1.0.14" dependencies: "@walletconnect/jsonrpc-utils": ^1.0.8 "@walletconnect/safe-json": ^1.0.2 - tslib: 1.14.1 - checksum: 497dfdd9f988432f171bc98336f3583c679059f0a166f95d6e51c8e1937c17abd9a5fd3aadfcebf6964bae14edd1e05fb0453e370d6e3bbc7ff4919fcad7c478 - languageName: node - linkType: hard - -"@walletconnect/jsonrpc-provider@npm:^1.0.6": - version: 1.0.6 - resolution: "@walletconnect/jsonrpc-provider@npm:1.0.6" - dependencies: - "@walletconnect/jsonrpc-utils": ^1.0.4 - "@walletconnect/safe-json": ^1.0.1 - tslib: 1.14.1 - checksum: cc323c4a6a29693a0cb920dd6f136ed55a2a12c329b5568f9519cf1a5e5e2e8b78bfa45c2eacaa6cde43609afae82debed29b5e3ba5c5ec722d1dd1bb9ea0901 + events: ^3.3.0 + checksum: db8f931f93285520c51939603108f5cfe2a90a651d12744766d14471db3a488d2964ece5bfedc6cc93832ecd008cd37e7e1b1a950d9ef3385106ee052b936573 languageName: node linkType: hard -"@walletconnect/jsonrpc-types@npm:1.0.3, @walletconnect/jsonrpc-types@npm:^1.0.3": - version: 1.0.3 - resolution: "@walletconnect/jsonrpc-types@npm:1.0.3" +"@walletconnect/jsonrpc-types@npm:1.0.4": + version: 1.0.4 + resolution: "@walletconnect/jsonrpc-types@npm:1.0.4" dependencies: + events: ^3.3.0 keyvaluestorage-interface: ^1.0.0 - tslib: 1.14.1 - checksum: 26e6f1d8f4207328d3df465c36d0d67844772863dc8e9e78e6cfec417cfc359300eab049d99ea558982b3f0948f4ca26b75253bdf635ffd82ffe30a5276b790c + checksum: 99ea5f9f3b0c5892ff874de87dee62cf4fc345124177db1e6e5eaf48b85e2ea3833f0157beca43c51047444938e8eda6362fa8069b33e11d39e1050e7ef6e821 languageName: node linkType: hard @@ -2509,136 +2691,62 @@ __metadata: languageName: node linkType: hard -"@walletconnect/jsonrpc-utils@npm:1.0.8, @walletconnect/jsonrpc-utils@npm:^1.0.6, @walletconnect/jsonrpc-utils@npm:^1.0.7, @walletconnect/jsonrpc-utils@npm:^1.0.8": - version: 1.0.8 - resolution: "@walletconnect/jsonrpc-utils@npm:1.0.8" +"@walletconnect/jsonrpc-types@npm:^1.0.3": + version: 1.0.3 + resolution: "@walletconnect/jsonrpc-types@npm:1.0.3" dependencies: - "@walletconnect/environment": ^1.0.1 - "@walletconnect/jsonrpc-types": ^1.0.3 + keyvaluestorage-interface: ^1.0.0 tslib: 1.14.1 - checksum: f43a85dfce8150c3e3d1f009e8d8241ab8e10b026ea435f0918edf4db6b3a17586ba9d9c54a93cc61e4d3c685611e5bd5954fc377a581af503acd38e6d84c2ef + checksum: 26e6f1d8f4207328d3df465c36d0d67844772863dc8e9e78e6cfec417cfc359300eab049d99ea558982b3f0948f4ca26b75253bdf635ffd82ffe30a5276b790c languageName: node linkType: hard -"@walletconnect/jsonrpc-utils@npm:^1.0.4": - version: 1.0.4 - resolution: "@walletconnect/jsonrpc-utils@npm:1.0.4" +"@walletconnect/jsonrpc-utils@npm:1.0.8, @walletconnect/jsonrpc-utils@npm:^1.0.6, @walletconnect/jsonrpc-utils@npm:^1.0.8": + version: 1.0.8 + resolution: "@walletconnect/jsonrpc-utils@npm:1.0.8" dependencies: "@walletconnect/environment": ^1.0.1 - "@walletconnect/jsonrpc-types": ^1.0.2 + "@walletconnect/jsonrpc-types": ^1.0.3 tslib: 1.14.1 - checksum: 33c0897bc4492bb8bf91935e3699e9bb3a644caa6b54561c4849f3828ba7e604339fe1bd89116ed685e57746d5a445242342b8cfe8879d77bd63bbf4924786f8 + checksum: f43a85dfce8150c3e3d1f009e8d8241ab8e10b026ea435f0918edf4db6b3a17586ba9d9c54a93cc61e4d3c685611e5bd5954fc377a581af503acd38e6d84c2ef languageName: node linkType: hard -"@walletconnect/jsonrpc-ws-connection@npm:1.0.13": - version: 1.0.13 - resolution: "@walletconnect/jsonrpc-ws-connection@npm:1.0.13" +"@walletconnect/jsonrpc-ws-connection@npm:1.0.14": + version: 1.0.14 + resolution: "@walletconnect/jsonrpc-ws-connection@npm:1.0.14" dependencies: "@walletconnect/jsonrpc-utils": ^1.0.6 "@walletconnect/safe-json": ^1.0.2 events: ^3.3.0 - tslib: 1.14.1 ws: ^7.5.1 - checksum: f2253b17564f7622e69b1252830f05efdf7f4d58b120adb3a3e950c2087845171c912307c39948d0b869aa8610688b83f54f54de4657091f7431aea95a59f8b9 + checksum: a401e60b19390098183ef1b2a7b3e15c4dd3c64f9ac87fd2bbc0ae1f7fb31539ba542374ca021193efc4a2ae59fa3b04e588aed98cdf5c364f50524403d50f9f languageName: node linkType: hard -"@walletconnect/keyvaluestorage@npm:^1.0.2": - version: 1.0.2 - resolution: "@walletconnect/keyvaluestorage@npm:1.0.2" +"@walletconnect/keyvaluestorage@npm:1.1.1": + version: 1.1.1 + resolution: "@walletconnect/keyvaluestorage@npm:1.1.1" dependencies: - safe-json-utils: ^1.1.1 - tslib: 1.14.1 + "@walletconnect/safe-json": ^1.0.1 + idb-keyval: ^6.2.1 + unstorage: ^1.9.0 peerDependencies: "@react-native-async-storage/async-storage": 1.x - lokijs: 1.x peerDependenciesMeta: "@react-native-async-storage/async-storage": optional: true - lokijs: - optional: true - checksum: d695c2efcfa013a43cfaa20c85281df7d364a4452d11a4312a695298bd0e50d04b0e21c828f33f46fb020ea9796e60a6b23041a85f29bd10beeba7d0da24539f + checksum: 7f85cb83963153417745367742070ccb78e03bd62adb549de57a7d5fae7bcfbd9a8f42b2f445ca76a3817ffacacc69d85bbf67757c3616ee7b3525f2f8a0faea languageName: node linkType: hard -"@walletconnect/legacy-client@npm:^2.0.0": - version: 2.0.0 - resolution: "@walletconnect/legacy-client@npm:2.0.0" - 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 - checksum: 57de9e373b24766e937734989080eb6d476e40d5406d4f817c989b278f25a09aa8636dfbe34a33f4de80ef90aea9641fdb7841007ecdba8e5ad47cd11614ee94 - languageName: node - linkType: hard - -"@walletconnect/legacy-modal@npm:^2.0.0": - version: 2.0.0 - resolution: "@walletconnect/legacy-modal@npm:2.0.0" - 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 - checksum: 897a02c9f4129a8f0b8e37832bf49a408e7e6f2828e78bea90c3718471cb57558f5522dd69c19456b5cc54a4aa04a4f7942f262ad9b031d318a5498ca0ca4078 - languageName: node - linkType: hard - -"@walletconnect/legacy-provider@npm:^2.0.0": - version: 2.0.0 - resolution: "@walletconnect/legacy-provider@npm:2.0.0" - 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 - checksum: 48adf2d938d3580be1dbaa4c7005cdf715896a56d3f4ab500c301cd5b442343c7df11bfccbc8e32bf9a7ba4b9a379208846ad848d79b1b6b511c1c4121fc83cf - languageName: node - linkType: hard - -"@walletconnect/legacy-types@npm:^2.0.0": - version: 2.0.0 - resolution: "@walletconnect/legacy-types@npm:2.0.0" - dependencies: - "@walletconnect/jsonrpc-types": ^1.0.2 - checksum: 358d789f8a50e689edcfd8eb668fcdf8e1f03ab08757b12fad0e658ce7ef62268f8022502b476bce69e5165aa4454c4ad1ea41f17244ab8d0fcd9026bd94707c - languageName: node - linkType: hard - -"@walletconnect/legacy-utils@npm:^2.0.0": - version: 2.0.0 - resolution: "@walletconnect/legacy-utils@npm:2.0.0" - 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 - checksum: ea90e98c2f2f0a7f1d8801f7284bae909952979413b5d8e339004948199a2777af025195442a3c78a27aa3c16bb546ef54bf9c592e5622e1f003bef6d4b355ca - languageName: node - linkType: hard - -"@walletconnect/logger@npm:^2.0.1": - version: 2.0.1 - resolution: "@walletconnect/logger@npm:2.0.1" +"@walletconnect/logger@npm:2.1.2": + version: 2.1.2 + resolution: "@walletconnect/logger@npm:2.1.2" dependencies: + "@walletconnect/safe-json": ^1.0.2 pino: 7.11.0 - tslib: 1.14.1 - checksum: b686679d176d5d22a3441d93e71be2652e6c447682a6d6f014baf7c2d9dcd23b93e2f434d4410e33cc532d068333f6b3c1d899aeb0d6f60cc296ed17f57b0c2c + checksum: a2bb88b76d95ec5a95279dcc919f1d044d17be8fdda98a01665a607561b445bb56f2245a280933fb19aa7d41d41b688d0ffdb434ac56c46163ad2eb5338f389a languageName: node linkType: hard @@ -2673,29 +2781,16 @@ __metadata: languageName: node linkType: hard -"@walletconnect/randombytes@npm:^1.0.3": - version: 1.0.3 - resolution: "@walletconnect/randombytes@npm:1.0.3" - dependencies: - "@walletconnect/encoding": ^1.0.2 - "@walletconnect/environment": ^1.0.1 - randombytes: ^2.1.0 - tslib: 1.14.1 - checksum: 3ba1d5906299256c64affcd03348ec1397e2fadb1e60baaa13d4f46ba0267580fc354e67839d3fa4faa8abb375723f7ab96334b4e842f5814ce2080ed15f3578 - languageName: node - linkType: hard - -"@walletconnect/relay-api@npm:^1.0.9": - version: 1.0.9 - resolution: "@walletconnect/relay-api@npm:1.0.9" +"@walletconnect/relay-api@npm:1.0.10": + version: 1.0.10 + resolution: "@walletconnect/relay-api@npm:1.0.10" dependencies: "@walletconnect/jsonrpc-types": ^1.0.2 - tslib: 1.14.1 - checksum: 5870579b6552f1ce7351878f1acb8386b0c11288c64d39133c7cee5040feeb7ccf9114228d97a59749d60366ad107b097d656407d534567c24f5d3878ea6e246 + checksum: a332cbfdf0d3bad7046b0559653a5121a4b5a540f029cc01eeb8ef466681b10626a5a24d55668405e7c635535f35b8038d4aa5a2f0d16c8b512c41fecff2448c languageName: node linkType: hard -"@walletconnect/relay-auth@npm:^1.0.4": +"@walletconnect/relay-auth@npm:1.0.4": version: 1.0.4 resolution: "@walletconnect/relay-auth@npm:1.0.4" dependencies: @@ -2709,42 +2804,42 @@ __metadata: languageName: node linkType: hard -"@walletconnect/safe-json@npm:^1.0.1": - version: 1.0.1 - resolution: "@walletconnect/safe-json@npm:1.0.1" +"@walletconnect/safe-json@npm:1.0.2, @walletconnect/safe-json@npm:^1.0.2": + version: 1.0.2 + resolution: "@walletconnect/safe-json@npm:1.0.2" dependencies: tslib: 1.14.1 - checksum: 361082da2ff325f0084c07a96b099a4bd4e596717a0e625d03c1cb27a4f183b5a12dd6252772708fb874ecdde3a085f4fd4d4b1e0abb27b4dead011ea9b6d49c + checksum: fee03fcc70adb5635ab9419ea6ec6555aa2467bef650ad3b9526451c3a5cf247836db0f3ae3bb435d2e585d99e50c2ebe7dc9c429cfa3df900cf3fe4bd06d37f languageName: node linkType: hard -"@walletconnect/safe-json@npm:^1.0.2": - version: 1.0.2 - resolution: "@walletconnect/safe-json@npm:1.0.2" +"@walletconnect/safe-json@npm:^1.0.1": + version: 1.0.1 + resolution: "@walletconnect/safe-json@npm:1.0.1" dependencies: tslib: 1.14.1 - checksum: fee03fcc70adb5635ab9419ea6ec6555aa2467bef650ad3b9526451c3a5cf247836db0f3ae3bb435d2e585d99e50c2ebe7dc9c429cfa3df900cf3fe4bd06d37f + checksum: 361082da2ff325f0084c07a96b099a4bd4e596717a0e625d03c1cb27a4f183b5a12dd6252772708fb874ecdde3a085f4fd4d4b1e0abb27b4dead011ea9b6d49c languageName: node linkType: hard -"@walletconnect/sign-client@npm:2.10.2": - version: 2.10.2 - resolution: "@walletconnect/sign-client@npm:2.10.2" +"@walletconnect/sign-client@npm:2.13.0": + version: 2.13.0 + resolution: "@walletconnect/sign-client@npm:2.13.0" dependencies: - "@walletconnect/core": 2.10.2 - "@walletconnect/events": ^1.0.1 - "@walletconnect/heartbeat": 1.2.1 + "@walletconnect/core": 2.13.0 + "@walletconnect/events": 1.0.1 + "@walletconnect/heartbeat": 1.2.2 "@walletconnect/jsonrpc-utils": 1.0.8 - "@walletconnect/logger": ^2.0.1 - "@walletconnect/time": ^1.0.2 - "@walletconnect/types": 2.10.2 - "@walletconnect/utils": 2.10.2 - events: ^3.3.0 - checksum: d74556906d46dd6c161548d26068ceb256a18e1d5dcb4967072d6dad891fa443a0f2aa92108b45301a71066246ad2de8dba1b32e40857a93c6f072b18cbb5cb2 + "@walletconnect/logger": 2.1.2 + "@walletconnect/time": 1.0.2 + "@walletconnect/types": 2.13.0 + "@walletconnect/utils": 2.13.0 + events: 3.3.0 + checksum: d8516d5bc7f554962651d59af36c13716da35216e78a92b4ab2632d6c2e65dccc9fda83e5ef8ceaab3195c2436cdd038ff7ed1176b25c57142f823735a5f987c languageName: node linkType: hard -"@walletconnect/time@npm:^1.0.2": +"@walletconnect/time@npm:1.0.2, @walletconnect/time@npm:^1.0.2": version: 1.0.2 resolution: "@walletconnect/time@npm:1.0.2" dependencies: @@ -2753,60 +2848,60 @@ __metadata: languageName: node linkType: hard -"@walletconnect/types@npm:2.10.2": - version: 2.10.2 - resolution: "@walletconnect/types@npm:2.10.2" +"@walletconnect/types@npm:2.13.0": + version: 2.13.0 + resolution: "@walletconnect/types@npm:2.13.0" dependencies: - "@walletconnect/events": ^1.0.1 - "@walletconnect/heartbeat": 1.2.1 - "@walletconnect/jsonrpc-types": 1.0.3 - "@walletconnect/keyvaluestorage": ^1.0.2 - "@walletconnect/logger": ^2.0.1 - events: ^3.3.0 - checksum: dafcb840b2b93343db56ca6684edfe8a20d9b2f703f81b2d1fdbea558fe41de9fbddec12c24e9d51a50c75ee6298a1cfd347d7fa0202146033788670371cfd6a + "@walletconnect/events": 1.0.1 + "@walletconnect/heartbeat": 1.2.2 + "@walletconnect/jsonrpc-types": 1.0.4 + "@walletconnect/keyvaluestorage": 1.1.1 + "@walletconnect/logger": 2.1.2 + events: 3.3.0 + checksum: 868e12449026154c5a8945359ab03c2f2dd7dd329e631fea721e8399928823b93585013784253d787daf184adb76de6bccd76525679b4c87fd830300c70275d4 languageName: node linkType: hard -"@walletconnect/universal-provider@npm:2.10.2": - version: 2.10.2 - resolution: "@walletconnect/universal-provider@npm:2.10.2" +"@walletconnect/universal-provider@npm:2.13.0": + version: 2.13.0 + resolution: "@walletconnect/universal-provider@npm:2.13.0" dependencies: - "@walletconnect/jsonrpc-http-connection": ^1.0.7 - "@walletconnect/jsonrpc-provider": 1.0.13 - "@walletconnect/jsonrpc-types": ^1.0.2 - "@walletconnect/jsonrpc-utils": ^1.0.7 - "@walletconnect/logger": ^2.0.1 - "@walletconnect/sign-client": 2.10.2 - "@walletconnect/types": 2.10.2 - "@walletconnect/utils": 2.10.2 - events: ^3.3.0 - checksum: 4629c8031f8edbc1ecdd2f816a94963fd67ea4c8ba966fe12764585614d809fa5994b11d7ab30e7d8d2b51b8dac3a377c7433cb2cfca32070d4884d11d8dbbc7 + "@walletconnect/jsonrpc-http-connection": 1.0.8 + "@walletconnect/jsonrpc-provider": 1.0.14 + "@walletconnect/jsonrpc-types": 1.0.4 + "@walletconnect/jsonrpc-utils": 1.0.8 + "@walletconnect/logger": 2.1.2 + "@walletconnect/sign-client": 2.13.0 + "@walletconnect/types": 2.13.0 + "@walletconnect/utils": 2.13.0 + events: 3.3.0 + checksum: 3eb26d07bebbebe67e7f1e666d7b37cbdb6513a807262b9fd9026e8340238bc715b80f99d81127939aa53ff9f9027f903d9828e649e9f6c3c1e536c557b0840d languageName: node linkType: hard -"@walletconnect/utils@npm:2.10.2": - version: 2.10.2 - resolution: "@walletconnect/utils@npm:2.10.2" +"@walletconnect/utils@npm:2.13.0": + version: 2.13.0 + resolution: "@walletconnect/utils@npm:2.13.0" dependencies: "@stablelib/chacha20poly1305": 1.0.1 "@stablelib/hkdf": 1.0.1 - "@stablelib/random": ^1.0.2 + "@stablelib/random": 1.0.2 "@stablelib/sha256": 1.0.1 - "@stablelib/x25519": ^1.0.3 - "@walletconnect/relay-api": ^1.0.9 - "@walletconnect/safe-json": ^1.0.2 - "@walletconnect/time": ^1.0.2 - "@walletconnect/types": 2.10.2 - "@walletconnect/window-getters": ^1.0.1 - "@walletconnect/window-metadata": ^1.0.1 + "@stablelib/x25519": 1.0.3 + "@walletconnect/relay-api": 1.0.10 + "@walletconnect/safe-json": 1.0.2 + "@walletconnect/time": 1.0.2 + "@walletconnect/types": 2.13.0 + "@walletconnect/window-getters": 1.0.1 + "@walletconnect/window-metadata": 1.0.1 detect-browser: 5.3.0 query-string: 7.1.3 - uint8arrays: ^3.1.0 - checksum: 168e65d48ce6121f04f040662668fce63c8e42050c7c7d1da2948cf2e486657f8bf972f3386dc84251fcabf3626a26bb696e3363d55bc92826ec1602d7b493c7 + uint8arrays: 3.1.0 + checksum: ab3c008aa72e573d67f342042e62c04e4aa779bde94f850de53f7bda31a4458665b39af2e33ae6ee6f237aa19f55cef542c75cabbe647218c02075700d2c713f languageName: node linkType: hard -"@walletconnect/window-getters@npm:^1.0.1": +"@walletconnect/window-getters@npm:1.0.1, @walletconnect/window-getters@npm:^1.0.1": version: 1.0.1 resolution: "@walletconnect/window-getters@npm:1.0.1" dependencies: @@ -2815,7 +2910,7 @@ __metadata: languageName: node linkType: hard -"@walletconnect/window-metadata@npm:^1.0.1": +"@walletconnect/window-metadata@npm:1.0.1": version: 1.0.1 resolution: "@walletconnect/window-metadata@npm:1.0.1" dependencies: @@ -2825,18 +2920,6 @@ __metadata: languageName: node linkType: hard -"JSONStream@npm:^1.3.5": - version: 1.3.5 - resolution: "JSONStream@npm:1.3.5" - dependencies: - jsonparse: ^1.2.0 - through: ">=2.2.7 <3" - bin: - JSONStream: ./bin.js - checksum: 2605fa124260c61bad38bb65eba30d2f72216a78e94d0ab19b11b4e0327d572b8d530c0c9cc3b0764f727ad26d39e00bf7ebad57781ca6368394d73169c59e46 - languageName: node - linkType: hard - "abbrev@npm:1": version: 1.1.1 resolution: "abbrev@npm:1.1.1" @@ -2872,6 +2955,45 @@ __metadata: languageName: node linkType: hard +"abitype@npm:1.0.0": + version: 1.0.0 + resolution: "abitype@npm:1.0.0" + peerDependencies: + typescript: ">=5.0.4" + zod: ^3 >=3.22.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + checksum: ea2c0548c3ba58c37a6de7483d63389074da498e63d803b742bbe94eb4eaa1f51a35d000c424058b2583aef56698cf07c696eb3bc4dd0303bc20c6f0826a241a + languageName: node + linkType: hard + +"abitype@npm:1.0.2": + version: 1.0.2 + resolution: "abitype@npm:1.0.2" + peerDependencies: + typescript: ">=5.0.4" + zod: ^3 >=3.22.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + checksum: 0986ec822ad279e7ea1d15398f88bad335a58419799f8ba80e3d5712fdd5a2b5858b387a1213d9da31571c3a42d10ca878a463cce11dae1bb17dbe4deeb40db4 + languageName: node + linkType: hard + +"abort-controller@npm:^3.0.0": + version: 3.0.0 + resolution: "abort-controller@npm:3.0.0" + dependencies: + event-target-shim: ^5.0.0 + checksum: 170bdba9b47b7e65906a28c8ce4f38a7a369d78e2271706f020849c1bfe0ee2067d4261df8bbb66eb84f79208fd5b710df759d64191db58cfba7ce8ef9c54b75 + languageName: node + linkType: hard + "acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" @@ -2888,6 +3010,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.11.3": + version: 8.12.0 + resolution: "acorn@npm:8.12.0" + bin: + acorn: bin/acorn + checksum: ae142de8739ef15a5d936c550c1d267fc4dedcdbe62ad1aa2c0009afed1de84dd0a584684a5d200bb55d8db14f3e09a95c6e92a5303973c04b9a7413c36d1df0 + languageName: node + linkType: hard + "acorn@npm:^8.4.1, acorn@npm:^8.8.0": version: 8.8.0 resolution: "acorn@npm:8.8.0" @@ -2906,13 +3037,6 @@ __metadata: languageName: node linkType: hard -"aes-js@npm:^3.1.2": - version: 3.1.2 - resolution: "aes-js@npm:3.1.2" - checksum: 062154d50b1e433cc8c3b8ca7879f3a6375d5e79c2a507b2b6c4ec920b4cd851bf2afa7f65c98761a9da89c0ab618cbe6529e8e9a1c71f93290b53128fb8f712 - languageName: node - linkType: hard - "agent-base@npm:6, agent-base@npm:^6.0.2": version: 6.0.2 resolution: "agent-base@npm:6.0.2" @@ -2943,13 +3067,6 @@ __metadata: languageName: node linkType: hard -"ahocorasick@npm:1.0.2": - version: 1.0.2 - resolution: "ahocorasick@npm:1.0.2" - checksum: a13ce4403554ae782cf5e28d468a732acf1fd3d0bff251f5dcfddfa5497b6cc343948d69cd94dfdbe8d4dfdb81e2b34cb1c92079e6301f38b0143d314fb95bd6 - languageName: node - linkType: hard - "ajv@npm:8.12.0": version: 8.12.0 resolution: "ajv@npm:8.12.0" @@ -3041,6 +3158,16 @@ __metadata: languageName: node linkType: hard +"anymatch@npm:^3.1.3": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" + dependencies: + normalize-path: ^3.0.0 + picomatch: ^2.0.4 + checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 + languageName: node + linkType: hard + "anymatch@npm:~3.1.2": version: 3.1.2 resolution: "anymatch@npm:3.1.2" @@ -3247,12 +3374,10 @@ __metadata: languageName: node linkType: hard -"base-x@npm:^3.0.2": - version: 3.0.9 - resolution: "base-x@npm:3.0.9" - dependencies: - safe-buffer: ^5.0.1 - checksum: 957101d6fd09e1903e846fd8f69fd7e5e3e50254383e61ab667c725866bec54e5ece5ba49ce385128ae48f9ec93a26567d1d5ebb91f4d56ef4a9cc0d5a5481e8 +"base64-js@npm:0.0.8": + version: 0.0.8 + resolution: "base64-js@npm:0.0.8" + checksum: e95d2fa4b9000789fedd1e1ebac7830a70f5b1c06c72b2cf7862a48335af5d42229c0deda5085b2c8e403e479b612a55cd682bd4438838980d07cfc21c91e750 languageName: node linkType: hard @@ -3263,13 +3388,6 @@ __metadata: languageName: node linkType: hard -"bech32@npm:1.1.4": - version: 1.1.4 - resolution: "bech32@npm:1.1.4" - checksum: 0e98db619191548390d6f09ff68b0253ba7ae6a55db93dfdbb070ba234c1fd3308c0606fbcc95fad50437227b10011e2698b89f0181f6e7f845c499bd14d0f4b - languageName: node - linkType: hard - "big.js@npm:^5.2.2": version: 5.2.2 resolution: "big.js@npm:5.2.2" @@ -3277,23 +3395,6 @@ __metadata: languageName: node linkType: hard -"bigint-buffer@npm:^1.1.5": - version: 1.1.5 - resolution: "bigint-buffer@npm:1.1.5" - dependencies: - bindings: ^1.3.0 - node-gyp: latest - checksum: d010c9f57758bcdaccb435d88b483ffcc95fe8bbc6e7fb3a44fb5221f29c894ffaf4a3c5a4a530e0e7d6608203c2cde9b79ee4f2386cd6d4462d1070bc8c9f4e - languageName: node - linkType: hard - -"bignumber.js@npm:*": - version: 9.1.2 - resolution: "bignumber.js@npm:9.1.2" - checksum: 582c03af77ec9cb0ebd682a373ee6c66475db94a4325f92299621d544aa4bd45cb45fd60001610e94aef8ae98a0905fa538241d9638d4422d57abbeeac6fadaf - languageName: node - linkType: hard - "binary-extensions@npm:^2.0.0": version: 2.2.0 resolution: "binary-extensions@npm:2.2.0" @@ -3301,14 +3402,7 @@ __metadata: languageName: node linkType: hard -"bind-decorator@npm:^1.0.11": - version: 1.0.11 - resolution: "bind-decorator@npm:1.0.11" - checksum: 41b6c69af51ee7e6e01ea6f2939df94c9c760383f89f5befda0890951657baedbf499a0b96a789fd85cb77252465134f4e6184aae6639ed60cf59549ef15353d - languageName: node - linkType: hard - -"bindings@npm:^1.3.0, bindings@npm:^1.4.0": +"bindings@npm:^1.4.0": version: 1.5.0 resolution: "bindings@npm:1.5.0" dependencies: @@ -3331,21 +3425,17 @@ __metadata: languageName: node linkType: hard -"bn.js@npm:^5.0.0, bn.js@npm:^5.1.1, bn.js@npm:^5.2.0, bn.js@npm:^5.2.1": +"bn.js@npm:^5.2.1": version: 5.2.1 resolution: "bn.js@npm:5.2.1" checksum: 3dd8c8d38055fedfa95c1d5fc3c99f8dd547b36287b37768db0abab3c239711f88ff58d18d155dd8ad902b0b0cee973747b7ae20ea12a09473272b0201c9edd3 languageName: node linkType: hard -"borsh@npm:^0.7.0": - version: 0.7.0 - resolution: "borsh@npm:0.7.0" - dependencies: - bn.js: ^5.2.0 - bs58: ^4.0.0 - text-encoding-utf-8: ^1.0.2 - checksum: e98bfb5f7cfb820819c2870b884dac58dd4b4ce6a86c286c8fbf5c9ca582e73a8c6094df67e81a28c418ff07a309c6b118b2e27fdfea83fd92b8100c741da0b5 +"bowser@npm:^2.9.0": + version: 2.11.0 + resolution: "bowser@npm:2.11.0" + checksum: 29c3f01f22e703fa6644fc3b684307442df4240b6e10f6cfe1b61c6ca5721073189ca97cdeedb376081148c8518e33b1d818a57f781d70b0b70e1f31fb48814f languageName: node linkType: hard @@ -3389,35 +3479,16 @@ __metadata: resolution: "browserslist@npm:4.21.4" dependencies: caniuse-lite: ^1.0.30001400 - electron-to-chromium: ^1.4.251 - node-releases: ^2.0.6 - update-browserslist-db: ^1.0.9 - bin: - browserslist: cli.js - checksum: 4af3793704dbb4615bcd29059ab472344dc7961c8680aa6c4bb84f05340e14038d06a5aead58724eae69455b8fade8b8c69f1638016e87e5578969d74c078b79 - languageName: node - linkType: hard - -"bs58@npm:^4.0.0, bs58@npm:^4.0.1": - version: 4.0.1 - resolution: "bs58@npm:4.0.1" - dependencies: - base-x: ^3.0.2 - checksum: b3c5365bb9e0c561e1a82f1a2d809a1a692059fae016be233a6127ad2f50a6b986467c3a50669ce4c18929dcccb297c5909314dd347a25a68c21b68eb3e95ac2 - languageName: node - linkType: hard - -"buffer@npm:6.0.1": - version: 6.0.1 - resolution: "buffer@npm:6.0.1" - dependencies: - base64-js: ^1.3.1 - ieee754: ^1.2.1 - checksum: 0274c2c6c5c5d9e9e1fd48116c26a3e3f824fe262ff379f630771f590c2e4e7d1fa2604a58684bfc4471a3f9cc40c6317be26b50f15c4cca126249bfc84c4f8b + electron-to-chromium: ^1.4.251 + node-releases: ^2.0.6 + update-browserslist-db: ^1.0.9 + bin: + browserslist: cli.js + checksum: 4af3793704dbb4615bcd29059ab472344dc7961c8680aa6c4bb84f05340e14038d06a5aead58724eae69455b8fade8b8c69f1638016e87e5578969d74c078b79 languageName: node linkType: hard -"buffer@npm:^6.0.3, buffer@npm:~6.0.3": +"buffer@npm:^6.0.3": version: 6.0.3 resolution: "buffer@npm:6.0.3" dependencies: @@ -3427,13 +3498,24 @@ __metadata: languageName: node linkType: hard -"bufferutil@npm:^4.0.1": - version: 4.0.6 - resolution: "bufferutil@npm:4.0.6" +"bufferutil@npm:^4.0.8": + version: 4.0.8 + resolution: "bufferutil@npm:4.0.8" dependencies: node-gyp: latest node-gyp-build: ^4.3.0 - checksum: dd107560947445280af7820c3d0534127b911577d85d537e1d7e0aa30fd634853cef8a994d6e8aed3d81388ab1a20257de776164afe6a6af8e78f5f17968ebd6 + checksum: 7e9a46f1867dca72fda350966eb468eca77f4d623407b0650913fadf73d5750d883147d6e5e21c56f9d3b0bdc35d5474e80a600b9f31ec781315b4d2469ef087 + languageName: node + linkType: hard + +"burner-connector@npm:^0.0.8": + version: 0.0.8 + resolution: "burner-connector@npm:0.0.8" + dependencies: + "@rainbow-me/rainbowkit": 2.1.0 + "@wagmi/core": 2.10.2 + viem: 2.10.9 + checksum: 3eed72fada75a302ca6966837e005692c708ad754772973c0c80def8f24b467dcd7acd5af0f66d370e3c86ada14791ab2a12b02f37e45c4acc6a64781309f050 languageName: node linkType: hard @@ -3503,6 +3585,13 @@ __metadata: languageName: node linkType: hard +"camelize@npm:^1.0.0": + version: 1.0.1 + resolution: "camelize@npm:1.0.1" + checksum: 91d8611d09af725e422a23993890d22b2b72b4cabf7239651856950c76b4bf53fe0d0da7c5e4db05180e898e4e647220e78c9fbc976113bd96d603d1fcbfcb99 + languageName: node + linkType: hard + "caniuse-lite@npm:^1.0.30001400, caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001407": version: 1.0.30001412 resolution: "caniuse-lite@npm:1.0.30001412" @@ -3510,6 +3599,23 @@ __metadata: languageName: node linkType: hard +"cbw-sdk@npm:@coinbase/wallet-sdk@3.9.3": + version: 3.9.3 + resolution: "@coinbase/wallet-sdk@npm:3.9.3" + dependencies: + bn.js: ^5.2.1 + buffer: ^6.0.3 + clsx: ^1.2.1 + eth-block-tracker: ^7.1.0 + eth-json-rpc-filters: ^6.0.0 + eventemitter3: ^5.0.1 + keccak: ^3.0.3 + preact: ^10.16.0 + sha.js: ^2.4.11 + checksum: c3ab1b30facbe43f6d0f7f4010e438f9c488b72f9dad768b60adbb0e4f6b057e7518e3d86c7859fdd15df187ef3f1d6212898eae4694a7d8ed0ceb05ef216eb9 + languageName: node + linkType: hard + "chalk@npm:^2.0.0, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" @@ -3550,6 +3656,25 @@ __metadata: languageName: node linkType: hard +"chokidar@npm:^3.6.0": + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" + dependencies: + anymatch: ~3.1.2 + braces: ~3.0.2 + fsevents: ~2.3.2 + glob-parent: ~5.1.2 + is-binary-path: ~2.1.0 + is-glob: ~4.0.1 + normalize-path: ~3.0.0 + readdirp: ~3.6.0 + dependenciesMeta: + fsevents: + optional: true + checksum: d2f29f499705dcd4f6f3bbed79a9ce2388cf530460122eed3b9c48efeab7a4e28739c6551fd15bec9245c6b9eeca7a32baa64694d64d9b6faeb74ddb8c4a413d + languageName: node + linkType: hard + "chownr@npm:^2.0.0": version: 2.0.0 resolution: "chownr@npm:2.0.0" @@ -3557,6 +3682,15 @@ __metadata: languageName: node linkType: hard +"citty@npm:^0.1.5, citty@npm:^0.1.6": + version: 0.1.6 + resolution: "citty@npm:0.1.6" + dependencies: + consola: ^3.2.3 + checksum: 3fbcaaea92d328deddb5aba7d629d9076d4f1aa0338f59db7ea647a8f51eedc14b7f6218c87ad03c9e3c126213ba87d13d7774f9c30d64209f4b074aa83bd6ab + languageName: node + linkType: hard + "clean-stack@npm:^2.0.0": version: 2.2.0 resolution: "clean-stack@npm:2.2.0" @@ -3600,6 +3734,17 @@ __metadata: languageName: node linkType: hard +"clipboardy@npm:^4.0.0": + version: 4.0.0 + resolution: "clipboardy@npm:4.0.0" + dependencies: + execa: ^8.0.1 + is-wsl: ^3.1.0 + is64bit: ^2.0.0 + checksum: ac7fa4438451d4a509fd7163505c08be92087c1a0ab8f54f8063eb04a69191ded1b59333344e2fd60bad9688e2a3dd69e50a813bf05ebf8369fa8bf65a0f47a2 + languageName: node + linkType: hard + "cliui@npm:^6.0.0": version: 6.0.0 resolution: "cliui@npm:6.0.0" @@ -3611,6 +3756,17 @@ __metadata: languageName: node linkType: hard +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.1 + wrap-ansi: ^7.0.0 + checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 + languageName: node + linkType: hard + "clone@npm:^1.0.2": version: 1.0.4 resolution: "clone@npm:1.0.4" @@ -3618,14 +3774,14 @@ __metadata: languageName: node linkType: hard -"clsx@npm:1.1.1": - version: 1.1.1 - resolution: "clsx@npm:1.1.1" - checksum: ff052650329773b9b245177305fc4c4dc3129f7b2be84af4f58dc5defa99538c61d4207be7419405a5f8f3d92007c954f4daba5a7b74e563d5de71c28c830063 +"clsx@npm:2.1.0": + version: 2.1.0 + resolution: "clsx@npm:2.1.0" + checksum: 43fefc29b6b49c9476fbce4f8b1cc75c27b67747738e598e6651dd40d63692135dc60b18fa1c5b78a2a9ba8ae6fd2055a068924b94e20b42039bd53b78b98e1d languageName: node linkType: hard -"clsx@npm:^1.1.0": +"clsx@npm:^1.2.1": version: 1.2.1 resolution: "clsx@npm:1.2.1" checksum: 30befca8019b2eb7dbad38cff6266cf543091dae2825c856a62a8ccf2c3ab9c2907c4d12b288b73101196767f66812365400a227581484a05f968b0307cfaf12 @@ -3664,7 +3820,7 @@ __metadata: languageName: node linkType: hard -"color-name@npm:^1.0.0, color-name@npm:~1.1.4": +"color-name@npm:^1.0.0, color-name@npm:^1.1.4, color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 @@ -3707,13 +3863,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:^2.20.3": - version: 2.20.3 - resolution: "commander@npm:2.20.3" - checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e - languageName: node - linkType: hard - "commander@npm:^4.0.0": version: 4.1.1 resolution: "commander@npm:4.1.1" @@ -3735,6 +3884,20 @@ __metadata: languageName: node linkType: hard +"confbox@npm:^0.1.7": + version: 0.1.7 + resolution: "confbox@npm:0.1.7" + checksum: bde836c26f5154a348b0c0a757f8a0138929e5737e0553be3c4f07a056abca618b861aa63ac3b22d344789b56be99a1382928933e08cd500df00213bf4d8fb43 + languageName: node + linkType: hard + +"consola@npm:^3.2.3": + version: 3.2.3 + resolution: "consola@npm:3.2.3" + checksum: 32ec70e177dd2385c42e38078958cc7397be91db21af90c6f9faa0b16168b49b1c61d689338604bbb2d64370b9347a35f42a9197663a913d3a405bb0ce728499 + languageName: node + linkType: hard + "console-control-strings@npm:^1.0.0, console-control-strings@npm:^1.1.0": version: 1.1.0 resolution: "console-control-strings@npm:1.1.0" @@ -3756,6 +3919,13 @@ __metadata: languageName: node linkType: hard +"cookie-es@npm:^1.1.0": + version: 1.1.0 + resolution: "cookie-es@npm:1.1.0" + checksum: 953ee436e9daeb8f93e36f726e4ad15fd20fa8181c4085198db9e617a5dbd200326376d84c2dac7364c4395bcfb2b314017822bfba3fef44d24258b0ac90e639 + languageName: node + linkType: hard + "copy-to-clipboard@npm:^3.3.1": version: 3.3.2 resolution: "copy-to-clipboard@npm:3.3.2" @@ -3765,15 +3935,6 @@ __metadata: languageName: node linkType: hard -"copy-to-clipboard@npm:^3.3.3": - version: 3.3.3 - resolution: "copy-to-clipboard@npm:3.3.3" - dependencies: - toggle-selection: ^1.0.6 - checksum: e0a325e39b7615108e6c1c8ac110ae7b829cdc4ee3278b1df6a0e4228c490442cc86444cd643e2da344fbc424b3aab8909e2fec82f8bc75e7e5b190b7c24eecf - languageName: node - linkType: hard - "core-js-pure@npm:^3.25.1": version: 3.25.3 resolution: "core-js-pure@npm:3.25.3" @@ -3781,6 +3942,13 @@ __metadata: languageName: node linkType: hard +"core-util-is@npm:~1.0.0": + version: 1.0.3 + resolution: "core-util-is@npm:1.0.3" + checksum: 9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99 + languageName: node + linkType: hard + "cosmiconfig@npm:^7.0.0": version: 7.1.0 resolution: "cosmiconfig@npm:7.1.0" @@ -3794,6 +3962,15 @@ __metadata: languageName: node linkType: hard +"crc-32@npm:^1.2.0": + version: 1.2.2 + resolution: "crc-32@npm:1.2.2" + bin: + crc32: bin/crc32.njs + checksum: ad2d0ad0cbd465b75dcaeeff0600f8195b686816ab5f3ba4c6e052a07f728c3e70df2e3ca9fd3d4484dc4ba70586e161ca5a2334ec8bf5a41bf022a6103ff243 + languageName: node + linkType: hard + "create-require@npm:^1.1.0": version: 1.1.1 resolution: "create-require@npm:1.1.1" @@ -3810,6 +3987,15 @@ __metadata: languageName: node linkType: hard +"cross-fetch@npm:^4.0.0": + version: 4.0.0 + resolution: "cross-fetch@npm:4.0.0" + dependencies: + node-fetch: ^2.6.12 + checksum: ecca4f37ffa0e8283e7a8a590926b66713a7ef7892757aa36c2d20ffa27b0ac5c60dcf453119c809abe5923fc0bae3702a4d896bfb406ef1077b0d0018213e24 + languageName: node + linkType: hard + "cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" @@ -3821,6 +4007,39 @@ __metadata: languageName: node linkType: hard +"crossws@npm:^0.2.0, crossws@npm:^0.2.4": + version: 0.2.4 + resolution: "crossws@npm:0.2.4" + peerDependencies: + uWebSockets.js: "*" + peerDependenciesMeta: + uWebSockets.js: + optional: true + checksum: dcaf730a3af32cf081ab49fdb9c31192a738d7e0585585975e581e71a3d7d14df8d3b42ba183e13e34a1fc26645f695362abf30c40369d12652bcee372a484c3 + languageName: node + linkType: hard + +"css-background-parser@npm:^0.1.0": + version: 0.1.0 + resolution: "css-background-parser@npm:0.1.0" + checksum: cf53bef8d5df8538af7179f787fe04f4ac53c60089b338bf167b3e18be13817e395d48e303ca13493927b6fc11b4c24db2b144054c8ed3a55a044c6d177a08a5 + languageName: node + linkType: hard + +"css-box-shadow@npm:1.0.0-3": + version: 1.0.0-3 + resolution: "css-box-shadow@npm:1.0.0-3" + checksum: 1b7f15b291261023bb57e8718849951f313ee54e5cc3c72a90fac8d141138ea73562ad28006533f4ed92cb672ccbba2d6483ecb187a6c7f800936b006ba27925 + languageName: node + linkType: hard + +"css-color-keywords@npm:^1.0.0": + version: 1.0.0 + resolution: "css-color-keywords@npm:1.0.0" + checksum: 8f125e3ad477bd03c77b533044bd9e8a6f7c0da52d49bbc0bbe38327b3829d6ba04d368ca49dd9ff3b667d2fc8f1698d891c198bbf8feade1a5501bf5a296408 + languageName: node + linkType: hard + "css-selector-tokenizer@npm:^0.8": version: 0.8.0 resolution: "css-selector-tokenizer@npm:0.8.0" @@ -3831,10 +4050,21 @@ __metadata: languageName: node linkType: hard -"css-what@npm:^5.0.1": - version: 5.1.0 - resolution: "css-what@npm:5.1.0" - checksum: 0b75d1bac95c885c168573c85744a6c6843d8c33345f54f717218b37ea6296b0e99bb12105930ea170fd4a921990392a7c790c16c585c1d8960c49e2b7ec39f7 +"css-to-react-native@npm:^3.0.0": + version: 3.2.0 + resolution: "css-to-react-native@npm:3.2.0" + dependencies: + camelize: ^1.0.0 + css-color-keywords: ^1.0.0 + postcss-value-parser: ^4.0.2 + checksum: 263be65e805aef02c3f20c064665c998a8c35293e1505dbe6e3054fb186b01a9897ac6cf121f9840e5a9dfe3fb3994f6fcd0af84a865f1df78ba5bf89e77adce + languageName: node + linkType: hard + +"css-what@npm:^6.1.0": + version: 6.1.0 + resolution: "css-what@npm:6.1.0" + checksum: b975e547e1e90b79625918f84e67db5d33d896e6de846c9b584094e529f0c63e2ab85ee33b9daffd05bff3a146a1916bec664e18bb76dd5f66cbff9fc13b2bbe languageName: node linkType: hard @@ -3880,6 +4110,15 @@ __metadata: languageName: node linkType: hard +"date-fns@npm:^2.29.3": + version: 2.30.0 + resolution: "date-fns@npm:2.30.0" + dependencies: + "@babel/runtime": ^7.21.0 + checksum: f7be01523282e9bb06c0cd2693d34f245247a29098527d4420628966a2d9aad154bd0e90a6b1cf66d37adcb769cd108cf8a7bd49d76db0fb119af5cdd13644f4 + languageName: node + linkType: hard + "debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" @@ -3910,6 +4149,18 @@ __metadata: languageName: node linkType: hard +"debug@npm:~4.3.1, debug@npm:~4.3.2": + version: 4.3.5 + resolution: "debug@npm:4.3.5" + dependencies: + ms: 2.1.2 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 7c002b51e256257f936dda09eb37167df952758c57badf6bf44bdc40b89a4bcb8e5a0a2e4c7b53f97c69e2970dd5272d33a757378a12c8f8e64ea7bf99e8e86e + languageName: node + linkType: hard + "decamelize@npm:^1.2.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" @@ -3924,13 +4175,6 @@ __metadata: languageName: node linkType: hard -"decode-uri-component@npm:^0.2.0": - version: 0.2.0 - resolution: "decode-uri-component@npm:0.2.0" - checksum: f3749344ab9305ffcfe4bfe300e2dbb61fc6359e2b736812100a3b1b6db0a5668cba31a05e4b45d4d63dbf1a18dfa354cd3ca5bb3ededddabb8cd293f4404f94 - languageName: node - linkType: hard - "decode-uri-component@npm:^0.2.2": version: 0.2.2 resolution: "decode-uri-component@npm:0.2.2" @@ -3945,10 +4189,10 @@ __metadata: languageName: node linkType: hard -"deep-object-diff@npm:^1.1.0": - version: 1.1.7 - resolution: "deep-object-diff@npm:1.1.7" - checksum: 543fb1ae87b138ad260691e6949e72bf7dc144825084b7ad1886bb725d2ace1c19ed1ef1280f1116243e86bf2c6b942f45c670958b1468f644613f28c5dc97ea +"deep-object-diff@npm:^1.1.9": + version: 1.1.9 + resolution: "deep-object-diff@npm:1.1.9" + checksum: ecd42455e4773f653595d28070295e7aaa8402db5f8ab21d0bec115a7cb4de5e207a5665514767da5f025c96597f1d3a0a4888aeb4dd49e03c996871a3aa05ef languageName: node linkType: hard @@ -3976,10 +4220,10 @@ __metadata: languageName: node linkType: hard -"delay@npm:^5.0.0": - version: 5.0.0 - resolution: "delay@npm:5.0.0" - checksum: 62f151151ecfde0d9afbb8a6be37a6d103c4cb24f35a20ef3fe56f920b0d0d0bb02bc9c0a3084d0179ef669ca332b91155f2ee4d9854622cd2cdba5fc95285f9 +"defu@npm:^6.1.3, defu@npm:^6.1.4": + version: 6.1.4 + resolution: "defu@npm:6.1.4" + checksum: 40e3af6338f195ac1564f53d1887fa2d0429ac7e8c081204bc4d29191180059d3952b5f4e08fe5df8d59eb873aa26e9c88b56d4fac699673d4a372c93620b229 languageName: node linkType: hard @@ -3997,13 +4241,29 @@ __metadata: languageName: node linkType: hard -"detect-browser@npm:5.3.0, detect-browser@npm:^5.3.0": +"destr@npm:^2.0.3": + version: 2.0.3 + resolution: "destr@npm:2.0.3" + checksum: 4521b145ba6118919a561f7d979d623793695a516d1b9df704de81932601bf9cf21c47278e1cb93a309c88a14f4fd1f18680bb49ebef8b2546cc7f415e7ae48e + languageName: node + linkType: hard + +"detect-browser@npm:5.3.0, detect-browser@npm:^5.2.0": version: 5.3.0 resolution: "detect-browser@npm:5.3.0" checksum: dd6e08d55da1d9e0f22510ac79872078ae03d9dfa13c5e66c96baedc1c86567345a88f96949161f6be8f3e0fafa93bf179bdb1cd311b14f5f163112fcc70ab49 languageName: node linkType: hard +"detect-libc@npm:^1.0.3": + version: 1.0.3 + resolution: "detect-libc@npm:1.0.3" + bin: + detect-libc: ./bin/detect-libc.js + checksum: daaaed925ffa7889bd91d56e9624e6c8033911bb60f3a50a74a87500680652969dbaab9526d1e200a4c94acf80fc862a22131841145a0a8482d60a99c24f4a3e + languageName: node + linkType: hard + "detect-libc@npm:^2.0.0": version: 2.0.1 resolution: "detect-libc@npm:2.0.1" @@ -4102,6 +4362,17 @@ __metadata: languageName: node linkType: hard +"eciesjs@npm:^0.3.15": + version: 0.3.19 + resolution: "eciesjs@npm:0.3.19" + dependencies: + "@types/secp256k1": ^4.0.6 + futoin-hkdf: ^1.5.3 + secp256k1: ^5.0.0 + checksum: 29d2cafcac452ae7086048cebeedf7b4307caf4a8e916120d0314e6da2076f2d1763b7f6a1916c6526fb78f0eb5e394d7dd0654c9a8bfe59252d242adb4830b2 + languageName: node + linkType: hard + "edge-runtime@npm:2.0.0": version: 2.0.0 resolution: "edge-runtime@npm:2.0.0" @@ -4128,9 +4399,9 @@ __metadata: languageName: node linkType: hard -"elliptic@npm:6.5.4": - version: 6.5.4 - resolution: "elliptic@npm:6.5.4" +"elliptic@npm:^6.5.4": + version: 6.5.5 + resolution: "elliptic@npm:6.5.5" dependencies: bn.js: ^4.11.9 brorand: ^1.1.0 @@ -4139,7 +4410,14 @@ __metadata: inherits: ^2.0.4 minimalistic-assert: ^1.0.1 minimalistic-crypto-utils: ^1.0.1 - checksum: d56d21fd04e97869f7ffcc92e18903b9f67f2d4637a23c860492fbbff5a3155fd9ca0184ce0c865dd6eb2487d234ce9551335c021c376cd2d3b7cb749c7d10f4 + checksum: ec9105e4469eb3b32b0ee2579756c888ddf3f99d259aa0d65fccb906ee877768aaf8880caae73e3e669c9a4adeb3eb1945703aa974ec5000d2d33a239f4567eb + languageName: node + linkType: hard + +"emoji-regex@npm:^10.2.1": + version: 10.3.0 + resolution: "emoji-regex@npm:10.3.0" + checksum: 5da48edfeb9462fb1ae5495cff2d79129974c696853fb0ce952cbf560f29a2756825433bf51cfd5157ec7b9f93f46f31d712e896d63e3d8ac9c3832bdb45ab73 languageName: node linkType: hard @@ -4173,7 +4451,7 @@ __metadata: languageName: node linkType: hard -"end-of-stream@npm:^1.4.1": +"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.0, end-of-stream@npm:^1.4.1": version: 1.4.4 resolution: "end-of-stream@npm:1.4.4" dependencies: @@ -4182,6 +4460,26 @@ __metadata: languageName: node linkType: hard +"engine.io-client@npm:~6.5.2": + version: 6.5.4 + resolution: "engine.io-client@npm:6.5.4" + dependencies: + "@socket.io/component-emitter": ~3.1.0 + debug: ~4.3.1 + engine.io-parser: ~5.2.1 + ws: ~8.17.1 + xmlhttprequest-ssl: ~2.0.0 + checksum: 32955326f7d81bbc8fd40aaf14972ec46956c0a6b08752e1ceb2de37bfb7fc2e4e8decbefad1a8092fad0ef29379fa0e95531ae2e10cb61facb2ef1200ef8752 + languageName: node + linkType: hard + +"engine.io-parser@npm:~5.2.1": + version: 5.2.2 + resolution: "engine.io-parser@npm:5.2.2" + checksum: 470231215f3136a9259efb1268bc9a71f789af4e8c74da8d3b49ceb149fe3cd5c315bf0cd13d2d8d9c8f0f051c6f93b68e8fa9c89a3b612b9217bf33765c943a + languageName: node + linkType: hard + "enhanced-resolve@npm:^5.10.0": version: 5.12.0 resolution: "enhanced-resolve@npm:5.12.0" @@ -4267,22 +4565,6 @@ __metadata: languageName: node linkType: hard -"es6-promise@npm:^4.0.3": - version: 4.2.8 - resolution: "es6-promise@npm:4.2.8" - checksum: 95614a88873611cb9165a85d36afa7268af5c03a378b35ca7bda9508e1d4f1f6f19a788d4bc755b3fd37c8ebba40782018e02034564ff24c9d6fa37e959ad57d - languageName: node - linkType: hard - -"es6-promisify@npm:^5.0.0": - version: 5.0.0 - resolution: "es6-promisify@npm:5.0.0" - dependencies: - es6-promise: ^4.0.3 - checksum: fbed9d791598831413be84a5374eca8c24800ec71a16c1c528c43a98e2dadfb99331483d83ae6094ddb9b87e6f799a15d1553cebf756047e0865c753bc346b92 - languageName: node - linkType: hard - "esbuild-android-64@npm:0.14.47": version: 0.14.47 resolution: "esbuild-android-64@npm:0.14.47" @@ -4501,6 +4783,20 @@ __metadata: languageName: node linkType: hard +"escape-html@npm:^1.0.3": + version: 1.0.3 + resolution: "escape-html@npm:1.0.3" + checksum: 6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 + languageName: node + linkType: hard + +"escape-string-regexp@npm:2.0.0": + version: 2.0.0 + resolution: "escape-string-regexp@npm:2.0.0" + checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 + languageName: node + linkType: hard + "escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" @@ -4841,28 +5137,29 @@ __metadata: languageName: node linkType: hard -"eth-block-tracker@npm:6.1.0": - version: 6.1.0 - resolution: "eth-block-tracker@npm:6.1.0" +"eth-block-tracker@npm:^7.1.0": + version: 7.1.0 + resolution: "eth-block-tracker@npm:7.1.0" dependencies: - "@metamask/safe-event-emitter": ^2.0.0 - "@metamask/utils": ^3.0.1 + "@metamask/eth-json-rpc-provider": ^1.0.0 + "@metamask/safe-event-emitter": ^3.0.0 + "@metamask/utils": ^5.0.1 json-rpc-random-id: ^1.0.1 pify: ^3.0.0 - checksum: 33ee6375a26822649d1e9ac24a3c39d70338eb505715f72b9102fb82e40d7a48902b4a7dd4a33bb4f121b79707c5ab045777507a2881cfcdb385c8ccbb3ac2a0 + checksum: 1d019f261e0ef07387cd74538b160700caa35ba9859ab9d4e5137c48bf9c92822c3b4ade40f8a504f16cb813de4c317c5378d047625ddf04592e256be8842588 languageName: node linkType: hard -"eth-json-rpc-filters@npm:5.1.0": - version: 5.1.0 - resolution: "eth-json-rpc-filters@npm:5.1.0" +"eth-json-rpc-filters@npm:^6.0.0": + version: 6.0.1 + resolution: "eth-json-rpc-filters@npm:6.0.1" dependencies: - "@metamask/safe-event-emitter": ^2.0.0 + "@metamask/safe-event-emitter": ^3.0.0 async-mutex: ^0.2.6 eth-query: ^2.1.2 json-rpc-engine: ^6.1.0 pify: ^5.0.0 - checksum: 864092e96277953c399a139df66572b864bd41247c5c1d18e6529973804d4fd8962658d8b10571152554802fa8daaa1003588aee79ffce754e0bc57c39b771d5 + checksum: 216f7417417599a48273b08fb2894581175276fe21cb1c9ffa66e98a9c2a67bc0ac821ad2ca163fdb8e8de0960aea0d9c5e53aee9d5dcfec355abf020e9458c5 languageName: node linkType: hard @@ -4876,32 +5173,49 @@ __metadata: languageName: node linkType: hard -"eth-rpc-errors@npm:4.0.2": - version: 4.0.2 - resolution: "eth-rpc-errors@npm:4.0.2" +"eth-rpc-errors@npm:^4.0.2, eth-rpc-errors@npm:^4.0.3": + version: 4.0.3 + resolution: "eth-rpc-errors@npm:4.0.3" dependencies: fast-safe-stringify: ^2.0.6 - checksum: 1dbdee8f416090f1d318e17bdee2251d174d73c8faa4286fa364bc51ae9105672045f2d078ec23ca6a2b4b92af7cfbe7fa1ba17ad49e591fc653a363bf8cbab2 + checksum: 5fa31d1a10fdb340733b9a55e38e7687222c501052ca20743cef4d0c911a9bbcc0cad54aa6bf3e4b428604c071ff519803060e1cbc79ddb7c9257c11d407d32a languageName: node linkType: hard -"eth-rpc-errors@npm:^4.0.2": - version: 4.0.3 - resolution: "eth-rpc-errors@npm:4.0.3" +"ethereum-cryptography@npm:^2.0.0": + version: 2.2.0 + resolution: "ethereum-cryptography@npm:2.2.0" dependencies: - fast-safe-stringify: ^2.0.6 - checksum: 5fa31d1a10fdb340733b9a55e38e7687222c501052ca20743cef4d0c911a9bbcc0cad54aa6bf3e4b428604c071ff519803060e1cbc79ddb7c9257c11d407d32a + "@noble/curves": 1.4.0 + "@noble/hashes": 1.4.0 + "@scure/bip32": 1.4.0 + "@scure/bip39": 1.3.0 + checksum: 529d05a47fe0ff86ab36022a286c3a280e09d386fc92ff183aa4b095e97d190dd875022a004898686a798bac56e73601dd91356298edc56e5eeded7846f8ec12 languageName: node linkType: hard -"eventemitter3@npm:^4.0.7": - version: 4.0.7 - resolution: "eventemitter3@npm:4.0.7" - checksum: 1875311c42fcfe9c707b2712c32664a245629b42bb0a5a84439762dd0fd637fc54d078155ea83c2af9e0323c9ac13687e03cfba79b03af9f40c89b4960099374 +"event-target-shim@npm:^5.0.0": + version: 5.0.1 + resolution: "event-target-shim@npm:5.0.1" + checksum: 1ffe3bb22a6d51bdeb6bf6f7cf97d2ff4a74b017ad12284cc9e6a279e727dc30a5de6bb613e5596ff4dc3e517841339ad09a7eec44266eccb1aa201a30448166 + languageName: node + linkType: hard + +"eventemitter2@npm:^6.4.7": + version: 6.4.9 + resolution: "eventemitter2@npm:6.4.9" + checksum: be59577c1e1c35509c7ba0e2624335c35bbcfd9485b8a977384c6cc6759341ea1a98d3cb9dbaa5cea4fff9b687e504504e3f9c2cc1674cf3bd8a43a7c74ea3eb + languageName: node + linkType: hard + +"eventemitter3@npm:5.0.1, eventemitter3@npm:^5.0.1": + version: 5.0.1 + resolution: "eventemitter3@npm:5.0.1" + checksum: 543d6c858ab699303c3c32e0f0f47fc64d360bf73c3daf0ac0b5079710e340d6fe9f15487f94e66c629f5f82cd1a8678d692f3dbb6f6fcd1190e1b97fcad36f8 languageName: node linkType: hard -"events@npm:^3.3.0": +"events@npm:3.3.0, events@npm:^3.3.0": version: 3.3.0 resolution: "events@npm:3.3.0" checksum: f6f487ad2198aa41d878fa31452f1a3c00958f46e9019286ff4787c84aac329332ab45c9cdc8c445928fc6d7ded294b9e005a7fce9426488518017831b272780 @@ -4925,6 +5239,23 @@ __metadata: languageName: node linkType: hard +"execa@npm:^8.0.1": + version: 8.0.1 + resolution: "execa@npm:8.0.1" + dependencies: + cross-spawn: ^7.0.3 + get-stream: ^8.0.1 + human-signals: ^5.0.0 + is-stream: ^3.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^5.1.0 + onetime: ^6.0.0 + signal-exit: ^4.1.0 + strip-final-newline: ^3.0.0 + checksum: cac1bf86589d1d9b73bdc5dda65c52012d1a9619c44c526891956745f7b366ca2603d29fe3f7460bacc2b48c6eab5d6a4f7afe0534b31473d3708d1265545e1f + languageName: node + linkType: hard + "exit-hook@npm:2.2.1": version: 2.2.1 resolution: "exit-hook@npm:2.2.1" @@ -4932,10 +5263,13 @@ __metadata: languageName: node linkType: hard -"eyes@npm:^0.1.8": - version: 0.1.8 - resolution: "eyes@npm:0.1.8" - checksum: c31703a92bf36ba75ee8d379ee7985c24ee6149f3a6175f44cec7a05b178c38bce9836d3ca48c9acb0329a960ac2c4b2ead4e60cdd4fe6e8c92cad7cd6913687 +"extension-port-stream@npm:^3.0.0": + version: 3.0.0 + resolution: "extension-port-stream@npm:3.0.0" + dependencies: + readable-stream: ^3.6.2 || ^4.4.2 + webextension-polyfill: ">=0.10.0 <1.0" + checksum: 4f51d2258a96154c2d916a8a5425636a2b0817763e9277f7dc378d08b6f050c90d185dbde4313d27cf66ad99d4b3116479f9f699c40358c64cccfa524d2b55bf languageName: node linkType: hard @@ -5007,13 +5341,6 @@ __metadata: languageName: node linkType: hard -"fast-stable-stringify@npm:^1.0.0": - version: 1.0.0 - resolution: "fast-stable-stringify@npm:1.0.0" - checksum: ef1203d246a7e8ac15e2bfbda0a89fa375947bccf9f7910be0ea759856dbe8ea5024a0d8cc2cceabe18a9cb67e95927b78bb6173a3ae37ec55a518cf36e5244b - languageName: node - linkType: hard - "fastparse@npm:^1.1.2": version: 1.1.2 resolution: "fastparse@npm:1.1.2" @@ -5030,6 +5357,13 @@ __metadata: languageName: node linkType: hard +"fflate@npm:^0.7.3": + version: 0.7.4 + resolution: "fflate@npm:0.7.4" + checksum: b812ab26047432db70ff4c73eb45ad53bd0774575b4818b9c61c2921e89ec65d1259f06ec1618f2ac55e6a2f2e29b6dc09173d213b46580bc69efae5344bf8f1 + languageName: node + linkType: hard + "file-entry-cache@npm:^6.0.1": version: 6.0.1 resolution: "file-entry-cache@npm:6.0.1" @@ -5194,6 +5528,13 @@ __metadata: languageName: node linkType: hard +"futoin-hkdf@npm:^1.5.3": + version: 1.5.3 + resolution: "futoin-hkdf@npm:1.5.3" + checksum: 790da5675b31df4b9a34c19a5181f673171b5ad81fa92b91981bcfd2250692f895d6aada5ae4203212babba3c7d7a1916432e0b42c7aa88d3f70408439ec315e + languageName: node + linkType: hard + "gauge@npm:^3.0.0": version: 3.0.2 resolution: "gauge@npm:3.0.2" @@ -5227,7 +5568,7 @@ __metadata: languageName: node linkType: hard -"get-caller-file@npm:^2.0.1": +"get-caller-file@npm:^2.0.1, get-caller-file@npm:^2.0.5": version: 2.0.5 resolution: "get-caller-file@npm:2.0.5" checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 @@ -5252,6 +5593,13 @@ __metadata: languageName: node linkType: hard +"get-port-please@npm:^3.1.2": + version: 3.1.2 + resolution: "get-port-please@npm:3.1.2" + checksum: 8e65b56459ead2f31c446d76bb8eb639c33e04e72b07a4dd5d8acc39738f12962591e90b2befecf10492844d0d11c2122c281f5204ee48692d4a8ba0ec68733a + languageName: node + linkType: hard + "get-stream@npm:^6.0.1": version: 6.0.1 resolution: "get-stream@npm:6.0.1" @@ -5259,6 +5607,13 @@ __metadata: languageName: node linkType: hard +"get-stream@npm:^8.0.1": + version: 8.0.1 + resolution: "get-stream@npm:8.0.1" + checksum: 01e3d3cf29e1393f05f44d2f00445c5f9ec3d1c49e8179b31795484b9c117f4c695e5e07b88b50785d5c8248a788c85d9913a79266fc77e3ef11f78f10f1b974 + languageName: node + linkType: hard + "get-symbol-description@npm:^1.0.0": version: 1.0.0 resolution: "get-symbol-description@npm:1.0.0" @@ -5429,6 +5784,24 @@ __metadata: languageName: node linkType: hard +"h3@npm:^1.10.2, h3@npm:^1.11.1": + version: 1.12.0 + resolution: "h3@npm:1.12.0" + dependencies: + cookie-es: ^1.1.0 + crossws: ^0.2.4 + defu: ^6.1.4 + destr: ^2.0.3 + iron-webcrypto: ^1.1.1 + ohash: ^1.1.3 + radix3: ^1.1.2 + ufo: ^1.5.3 + uncrypto: ^0.1.3 + unenv: ^1.9.0 + checksum: 958d7364dc38460a02fb2032bbca887e741bfc173517eb49787a0cdf80ea194fe16964ab175f3d6e9c299600c67e3cfe51176d984dfd407b900fc0e20ef9bbb9 + languageName: node + linkType: hard + "has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": version: 1.0.2 resolution: "has-bigints@npm:1.0.2" @@ -5491,7 +5864,7 @@ __metadata: languageName: node linkType: hard -"hash.js@npm:1.1.7, hash.js@npm:^1.0.0, hash.js@npm:^1.0.3, hash.js@npm:^1.1.7": +"hash.js@npm:1.1.7, hash.js@npm:^1.0.0, hash.js@npm:^1.0.3": version: 1.1.7 resolution: "hash.js@npm:1.1.7" dependencies: @@ -5501,6 +5874,13 @@ __metadata: languageName: node linkType: hard +"hex-rgb@npm:^4.1.0": + version: 4.3.0 + resolution: "hex-rgb@npm:4.3.0" + checksum: e654648db8647446f0111c68690d9b340eb192a93c8b2c6789a2b8deb5c20e757515ae209c5ae67074acfddf8575f9fc645d4ffaa0596d859457b08e180d791d + languageName: node + linkType: hard + "hey-listen@npm:^1.0.8": version: 1.0.8 resolution: "hey-listen@npm:1.0.8" @@ -5546,6 +5926,13 @@ __metadata: languageName: node linkType: hard +"http-shutdown@npm:^1.2.2": + version: 1.2.2 + resolution: "http-shutdown@npm:1.2.2" + checksum: 5dccd94f4fe4f51f9cbd7ec4586121160cd6470728e581662ea8032724440d891c4c92b8210b871ac468adadb3c99c40098ad0f752a781a550abae49dfa26206 + languageName: node + linkType: hard + "http-status@npm:1.5.3": version: 1.5.3 resolution: "http-status@npm:1.5.3" @@ -5570,6 +5957,13 @@ __metadata: languageName: node linkType: hard +"human-signals@npm:^5.0.0": + version: 5.0.0 + resolution: "human-signals@npm:5.0.0" + checksum: 6504560d5ed91444f16bea3bd9dfc66110a339442084e56c3e7fa7bbdf3f406426d6563d662bdce67064b165eac31eeabfc0857ed170aaa612cf14ec9f9a464c + languageName: node + linkType: hard + "humanize-ms@npm:^1.2.1": version: 1.2.1 resolution: "humanize-ms@npm:1.2.1" @@ -5588,14 +5982,21 @@ __metadata: languageName: node linkType: hard -"i18n-js@npm:^4.3.2": - version: 4.3.2 - resolution: "i18n-js@npm:4.3.2" +"i18next-browser-languagedetector@npm:7.1.0": + version: 7.1.0 + resolution: "i18next-browser-languagedetector@npm:7.1.0" + dependencies: + "@babel/runtime": ^7.19.4 + checksum: 36981b9a9995ed66387f3735cceffe107ed3cdb6ca278d45fa243fabc65669c0eca095ed4a55a93dac046ca1eb23fd986ec0079723be7ebb8505e6ba25f379bb + languageName: node + linkType: hard + +"i18next@npm:22.5.1": + version: 22.5.1 + resolution: "i18next@npm:22.5.1" dependencies: - bignumber.js: "*" - lodash: "*" - make-plural: "*" - checksum: 08a051dba75d93447e2021c1feb92f34c9034b5a818957885ea19ac58954d764c848c4deaaf46ada3e15d51f61ad9f7e0bf4ddffa3c765871ff1b26638ca0a8f + "@babel/runtime": ^7.20.6 + checksum: 175f8ab7fac2abcee147b00cc2d8e7d4fa9b05cdc227f02cac841fc2fd9545ed4a6d88774f594f8ad12dc944e4d34cc8e88aa00c8b9947baef9e859d93abd305 languageName: node linkType: hard @@ -5608,6 +6009,13 @@ __metadata: languageName: node linkType: hard +"idb-keyval@npm:^6.2.1": + version: 6.2.1 + resolution: "idb-keyval@npm:6.2.1" + checksum: 7c0836f832096086e99258167740181132a71dd2694c8b8454a4f5ec69114ba6d70983115153306f0b6de1c8d3bad04f67eed3dff8f50c96815b9985d6d78470 + languageName: node + linkType: hard + "ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" @@ -5663,7 +6071,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.4": +"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 @@ -5681,7 +6089,7 @@ __metadata: languageName: node linkType: hard -"invariant@npm:^2.2.4": +"invariant@npm:2.2.4, invariant@npm:^2.2.4": version: 2.2.4 resolution: "invariant@npm:2.2.4" dependencies: @@ -5697,6 +6105,13 @@ __metadata: languageName: node linkType: hard +"iron-webcrypto@npm:^1.1.1": + version: 1.2.1 + resolution: "iron-webcrypto@npm:1.2.1" + checksum: b158d1893c8d037c11a7dcfd1998b519f31f979643c2c505c6eb1170fd63553498a58b05947d5dea116975df8f12ede5ca235cb68e4c1f404fa6695e4508c60c + languageName: node + linkType: hard + "is-arguments@npm:^1.0.4": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" @@ -5794,6 +6209,15 @@ __metadata: languageName: node linkType: hard +"is-docker@npm:^3.0.0": + version: 3.0.0 + resolution: "is-docker@npm:3.0.0" + bin: + is-docker: cli.js + checksum: b698118f04feb7eaf3338922bd79cba064ea54a1c3db6ec8c0c8d8ee7613e7e5854d802d3ef646812a8a3ace81182a085dfa0a71cc68b06f3fa794b9783b3c90 + languageName: node + linkType: hard + "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -5833,6 +6257,17 @@ __metadata: languageName: node linkType: hard +"is-inside-container@npm:^1.0.0": + version: 1.0.0 + resolution: "is-inside-container@npm:1.0.0" + dependencies: + is-docker: ^3.0.0 + bin: + is-inside-container: cli.js + checksum: c50b75a2ab66ab3e8b92b3bc534e1ea72ca25766832c0623ac22d134116a98bcf012197d1caabe1d1c4bd5f84363d4aa5c36bb4b585fbcaf57be172cd10a1a03 + languageName: node + linkType: hard + "is-lambda@npm:^1.0.1": version: 1.0.1 resolution: "is-lambda@npm:1.0.1" @@ -5882,6 +6317,13 @@ __metadata: languageName: node linkType: hard +"is-stream@npm:^2.0.0": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 + languageName: node + linkType: hard + "is-stream@npm:^3.0.0": version: 3.0.0 resolution: "is-stream@npm:3.0.0" @@ -5920,13 +6362,6 @@ __metadata: languageName: node linkType: hard -"is-typedarray@npm:1.0.0, is-typedarray@npm:^1.0.0": - version: 1.0.0 - resolution: "is-typedarray@npm:1.0.0" - checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 - languageName: node - linkType: hard - "is-weakref@npm:^1.0.2": version: 1.0.2 resolution: "is-weakref@npm:1.0.2" @@ -5945,6 +6380,31 @@ __metadata: languageName: node linkType: hard +"is-wsl@npm:^3.1.0": + version: 3.1.0 + resolution: "is-wsl@npm:3.1.0" + dependencies: + is-inside-container: ^1.0.0 + checksum: f9734c81f2f9cf9877c5db8356bfe1ff61680f1f4c1011e91278a9c0564b395ae796addb4bf33956871041476ec82c3e5260ed57b22ac91794d4ae70a1d2f0a9 + languageName: node + linkType: hard + +"is64bit@npm:^2.0.0": + version: 2.0.0 + resolution: "is64bit@npm:2.0.0" + dependencies: + system-architecture: ^0.1.0 + checksum: 253079e64b6f9bb90295a63b73a046bea67364cdc104bc5abeffcf4cbc52b3e66b0e921cb14f686deb71b5cab628f9f490845c1194c6e94f84068d177c7f15cd + languageName: node + linkType: hard + +"isarray@npm:~1.0.0": + version: 1.0.0 + resolution: "isarray@npm:1.0.0" + checksum: f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab + languageName: node + linkType: hard + "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" @@ -5952,6 +6412,16 @@ __metadata: languageName: node linkType: hard +"isomorphic-unfetch@npm:3.1.0": + version: 3.1.0 + resolution: "isomorphic-unfetch@npm:3.1.0" + dependencies: + node-fetch: ^2.6.1 + unfetch: ^4.2.0 + checksum: 82b92fe4ec2823a81ab0fc0d11bd94d710e6f9a940d56b3cba31896d4345ec9ffc7949f4ff31ebcae84f6b95f7ebf3474c4c7452b834eb4078ea3f2c37e459c5 + languageName: node + linkType: hard + "isomorphic-ws@npm:5.0.0": version: 5.0.0 resolution: "isomorphic-ws@npm:5.0.0" @@ -5961,21 +6431,21 @@ __metadata: languageName: node linkType: hard -"isomorphic-ws@npm:^4.0.1": - version: 4.0.1 - resolution: "isomorphic-ws@npm:4.0.1" +"isows@npm:1.0.3": + version: 1.0.3 + resolution: "isows@npm:1.0.3" peerDependencies: ws: "*" - checksum: d7190eadefdc28bdb93d67b5f0c603385aaf87724fa2974abb382ac1ec9756ed2cfb27065cbe76122879c2d452e2982bc4314317f3d6c737ddda6c047328771a + checksum: 9cacd5cf59f67deb51e825580cd445ab1725ecb05a67c704050383fb772856f3cd5e7da8ad08f5a3bd2823680d77d099459d0c6a7037972a74d6429af61af440 languageName: node linkType: hard -"isows@npm:1.0.3": - version: 1.0.3 - resolution: "isows@npm:1.0.3" +"isows@npm:1.0.4": + version: 1.0.4 + resolution: "isows@npm:1.0.4" peerDependencies: ws: "*" - checksum: 9cacd5cf59f67deb51e825580cd445ab1725ecb05a67c704050383fb772856f3cd5e7da8ad08f5a3bd2823680d77d099459d0c6a7037972a74d6429af61af440 + checksum: a3ee62e3d6216abb3adeeb2a551fe2e7835eac87b05a6ecc3e7739259bf5f8e83290501f49e26137390c8093f207fc3378d4a7653aab76ad7bbab4b2dba9c5b9 languageName: node linkType: hard @@ -5986,29 +6456,6 @@ __metadata: languageName: node linkType: hard -"jayson@npm:^3.4.4": - version: 3.7.0 - resolution: "jayson@npm:3.7.0" - dependencies: - "@types/connect": ^3.4.33 - "@types/node": ^12.12.54 - "@types/ws": ^7.4.4 - JSONStream: ^1.3.5 - commander: ^2.20.3 - delay: ^5.0.0 - es6-promisify: ^5.0.0 - eyes: ^0.1.8 - isomorphic-ws: ^4.0.1 - json-stringify-safe: ^5.0.1 - lodash: ^4.17.20 - uuid: ^8.3.2 - ws: ^7.4.5 - bin: - jayson: bin/jayson.js - checksum: 4218a4829168a4927e657bde953ff9699f02af561ec72edcc7464446772b50a0c5c7e9f11d4ee5976e4794d0f1040c0f351a0fee51c542bf8492743d30b7a971 - languageName: node - linkType: hard - "jiti@npm:^1.18.2": version: 1.19.1 resolution: "jiti@npm:1.19.1" @@ -6018,6 +6465,15 @@ __metadata: languageName: node linkType: hard +"jiti@npm:^1.21.0": + version: 1.21.6 + resolution: "jiti@npm:1.21.6" + bin: + jiti: bin/jiti.js + checksum: 9ea4a70a7bb950794824683ed1c632e2ede26949fbd348e2ba5ec8dc5efa54dc42022d85ae229cadaa60d4b95012e80ea07d625797199b688cc22ab0e8891d32 + languageName: node + linkType: hard + "js-sdsl@npm:^4.1.4": version: 4.1.4 resolution: "js-sdsl@npm:4.1.4" @@ -6073,7 +6529,7 @@ __metadata: languageName: node linkType: hard -"json-rpc-engine@npm:6.1.0, json-rpc-engine@npm:^6.1.0": +"json-rpc-engine@npm:^6.1.0": version: 6.1.0 resolution: "json-rpc-engine@npm:6.1.0" dependencies: @@ -6121,13 +6577,6 @@ __metadata: languageName: node linkType: hard -"json-stringify-safe@npm:^5.0.1": - version: 5.0.1 - resolution: "json-stringify-safe@npm:5.0.1" - checksum: 48ec0adad5280b8a96bb93f4563aa1667fd7a36334f79149abd42446d0989f2ddc58274b479f4819f1f00617957e6344c886c55d05a4e15ebb4ab931e4a6a8ee - languageName: node - linkType: hard - "json5@npm:^1.0.1": version: 1.0.1 resolution: "json5@npm:1.0.1" @@ -6152,13 +6601,6 @@ __metadata: languageName: node linkType: hard -"jsonparse@npm:^1.2.0": - version: 1.3.1 - resolution: "jsonparse@npm:1.3.1" - checksum: 6514a7be4674ebf407afca0eda3ba284b69b07f9958a8d3113ef1005f7ec610860c312be067e450c569aab8b89635e332cee3696789c750692bb60daba627f4d - languageName: node - linkType: hard - "jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.2": version: 3.3.3 resolution: "jsx-ast-utils@npm:3.3.3" @@ -6169,15 +6611,15 @@ __metadata: languageName: node linkType: hard -"keccak@npm:^3.0.1": - version: 3.0.2 - resolution: "keccak@npm:3.0.2" +"keccak@npm:^3.0.3": + version: 3.0.4 + resolution: "keccak@npm:3.0.4" dependencies: node-addon-api: ^2.0.0 node-gyp: latest node-gyp-build: ^4.2.0 readable-stream: ^3.6.0 - checksum: 39a7d6128b8ee4cb7dcd186fc7e20c6087cc39f573a0f81b147c323f688f1f7c2b34f62c4ae189fe9b81c6730b2d1228d8a399cdc1f3d8a4c8f030cdc4f20272 + checksum: 2bf27b97b2f24225b1b44027de62be547f5c7326d87d249605665abd0c8c599d774671c35504c62c9b922cae02758504c6f76a73a84234d23af8a2211afaaa11 languageName: node linkType: hard @@ -6235,6 +6677,16 @@ __metadata: languageName: node linkType: hard +"linebreak@npm:^1.1.0": + version: 1.1.0 + resolution: "linebreak@npm:1.1.0" + dependencies: + base64-js: 0.0.8 + unicode-trie: ^2.0.0 + checksum: 65cb66900b4b60d99bb761fb4143d8673ad5dd57dd850fcd921fe425a5a8e3c4416ebee76a68058a90d88b5033a50b210f522558a7e0c7d95ca907b5a2b52520 + languageName: node + linkType: hard + "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" @@ -6265,6 +6717,35 @@ __metadata: languageName: node linkType: hard +"listhen@npm:^1.7.2": + version: 1.7.2 + resolution: "listhen@npm:1.7.2" + dependencies: + "@parcel/watcher": ^2.4.1 + "@parcel/watcher-wasm": ^2.4.1 + citty: ^0.1.6 + clipboardy: ^4.0.0 + consola: ^3.2.3 + crossws: ^0.2.0 + defu: ^6.1.4 + get-port-please: ^3.1.2 + h3: ^1.10.2 + http-shutdown: ^1.2.2 + jiti: ^1.21.0 + mlly: ^1.6.1 + node-forge: ^1.3.1 + pathe: ^1.1.2 + std-env: ^3.7.0 + ufo: ^1.4.0 + untun: ^0.1.3 + uqr: ^0.1.2 + bin: + listen: bin/listhen.mjs + listhen: bin/listhen.mjs + checksum: 92b160ab493bbdb4941ba7fbfc7e0815b4c1da9ca01f792df2e77da13a6b726086d62d57cd2da51242c47a463d59a68798666fb8b64338510e2edf8dc2e7a1c3 + languageName: node + linkType: hard + "listr2@npm:^4.0.5": version: 4.0.5 resolution: "listr2@npm:4.0.5" @@ -6358,7 +6839,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:*, lodash@npm:^4.17.20, lodash@npm:^4.17.21": +"lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -6388,6 +6869,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^10.2.0": + version: 10.2.2 + resolution: "lru-cache@npm:10.2.2" + checksum: 98e8fc93691c546f719a76103ef2bee5a3ac823955c755a47641ec41f8c7fafa1baeaba466937cc1cbfa9cfd47e03536d10e2db3158a64ad91ff3a58a32c893e + languageName: node + linkType: hard + "lru-cache@npm:^6.0.0": version: 6.0.0 resolution: "lru-cache@npm:6.0.0" @@ -6444,13 +6932,6 @@ __metadata: languageName: node linkType: hard -"make-plural@npm:*": - version: 7.3.0 - resolution: "make-plural@npm:7.3.0" - checksum: bb39b4b77533f0d5fb94eec128340b54dda8c1707d6b0a98c148e5d7bc23094e123f88275a61573fa31dc2f5d7352215cee0df523cd69b5d8fcb3969a2bcf8f8 - languageName: node - linkType: hard - "media-query-parser@npm:^2.0.2": version: 2.0.2 resolution: "media-query-parser@npm:2.0.2" @@ -6488,6 +6969,13 @@ __metadata: languageName: node linkType: hard +"micro-ftch@npm:^0.3.1": + version: 0.3.1 + resolution: "micro-ftch@npm:0.3.1" + checksum: 0e496547253a36e98a83fb00c628c53c3fb540fa5aaeaf718438873785afd193244988c09d219bb1802984ff227d04938d9571ef90fe82b48bd282262586aaff + languageName: node + linkType: hard + "micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": version: 4.0.5 resolution: "micromatch@npm:4.0.5" @@ -6498,6 +6986,15 @@ __metadata: languageName: node linkType: hard +"mime@npm:^3.0.0": + version: 3.0.0 + resolution: "mime@npm:3.0.0" + bin: + mime: cli.js + checksum: f43f9b7bfa64534e6b05bd6062961681aeb406a5b53673b53b683f27fcc4e739989941836a355eef831f4478923651ecc739f4a5f6e20a76487b432bfd4db928 + languageName: node + linkType: hard + "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" @@ -6621,6 +7118,20 @@ __metadata: languageName: node linkType: hard +"mipd@npm:0.0.5": + version: 0.0.5 + resolution: "mipd@npm:0.0.5" + dependencies: + viem: ^1.1.4 + peerDependencies: + typescript: ">=5.0.4" + peerDependenciesMeta: + typescript: + optional: true + checksum: 920b3afb3a92daeb66685adb746211ac4268ff805392a2f6e1da2703c43aa5835e5ad7be9d0312582a348d4c764ae3c81ab39362b66607ba0d54032def0038f1 + languageName: node + linkType: hard + "mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": version: 1.0.4 resolution: "mkdirp@npm:1.0.4" @@ -6630,6 +7141,25 @@ __metadata: languageName: node linkType: hard +"mlly@npm:^1.6.1, mlly@npm:^1.7.0": + version: 1.7.1 + resolution: "mlly@npm:1.7.1" + dependencies: + acorn: ^8.11.3 + pathe: ^1.1.2 + pkg-types: ^1.1.1 + ufo: ^1.5.3 + checksum: 956a6d54119eef782f302580f63a9800654e588cd70015b4218a00069c6ef11b87984e8ffe140a4668b0100ad4022b11d1f9b11ac2c6dbafa4d8bc33ae3a08a8 + languageName: node + linkType: hard + +"modern-ahocorasick@npm:^1.0.0": + version: 1.0.1 + resolution: "modern-ahocorasick@npm:1.0.1" + checksum: ec83479f406511f37a966d66ce1c2b1701bb4a2cc2aabbbc257001178c9fbc48ce748c88eb10dfe72ba8b7f991a0bc7f1fa14683f444685edd1a9eeb32ecbc1e + languageName: node + linkType: hard + "motion@npm:10.16.2": version: 10.16.2 resolution: "motion@npm:10.16.2" @@ -6644,7 +7174,7 @@ __metadata: languageName: node linkType: hard -"mri@npm:1.2.0": +"mri@npm:1.2.0, mri@npm:^1.2.0": version: 1.2.0 resolution: "mri@npm:1.2.0" checksum: 83f515abbcff60150873e424894a2f65d68037e5a7fcde8a9e2b285ee9c13ac581b63cfc1e6826c4732de3aeb84902f7c1e16b7aff46cd3f897a0f757a894e85 @@ -6708,6 +7238,13 @@ __metadata: languageName: node linkType: hard +"napi-wasm@npm:^1.1.0": + version: 1.1.0 + resolution: "napi-wasm@npm:1.1.0" + checksum: 649a5d03477b89ee75cd8d7be5404daa5c889915640fd4ab042f2d38d265e961f86933e83982388d72c8b0a3952f36f099b96598ea88210205519ec2adc41d8d + languageName: node + linkType: hard + "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -6826,7 +7363,32 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:2, node-fetch@npm:2.6.7": +"node-addon-api@npm:^5.0.0": + version: 5.1.0 + resolution: "node-addon-api@npm:5.1.0" + dependencies: + node-gyp: latest + checksum: 2508bd2d2981945406243a7bd31362fc7af8b70b8b4d65f869c61731800058fb818cc2fd36c8eac714ddd0e568cc85becf5e165cebbdf7b5024d5151bbc75ea1 + languageName: node + linkType: hard + +"node-addon-api@npm:^7.0.0": + version: 7.1.0 + resolution: "node-addon-api@npm:7.1.0" + dependencies: + node-gyp: latest + checksum: 26640c8d2ed7e2059e2ed65ee79e2a195306b3f1fc27ad11448943ba91d37767bd717a9a0453cc97e83a1109194dced8336a55f8650000458ef625c0b8b5e3df + languageName: node + linkType: hard + +"node-fetch-native@npm:^1.6.1, node-fetch-native@npm:^1.6.2, node-fetch-native@npm:^1.6.3": + version: 1.6.4 + resolution: "node-fetch-native@npm:1.6.4" + checksum: 7b159f610e037e8813750096a6616ec6771e9abf868aa6e75e5b790bfc2ba2d92cf2abcce33c18fd01f2e5e5cc72de09c78bd4381e7f8c0887f7de21bd96f045 + languageName: node + linkType: hard + +"node-fetch@npm:2.6.7": version: 2.6.7 resolution: "node-fetch@npm:2.6.7" dependencies: @@ -6840,6 +7402,20 @@ __metadata: languageName: node linkType: hard +"node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12": + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" + dependencies: + whatwg-url: ^5.0.0 + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: d76d2f5edb451a3f05b15115ec89fc6be39de37c6089f1b6368df03b91e1633fd379a7e01b7ab05089a25034b2023d959b47e59759cb38d88341b2459e89d6e5 + languageName: node + linkType: hard + "node-fetch@npm:^2.6.7": version: 2.6.9 resolution: "node-fetch@npm:2.6.9" @@ -6854,6 +7430,13 @@ __metadata: languageName: node linkType: hard +"node-forge@npm:^1.3.1": + version: 1.3.1 + resolution: "node-forge@npm:1.3.1" + checksum: 08fb072d3d670599c89a1704b3e9c649ff1b998256737f0e06fbd1a5bf41cae4457ccaee32d95052d80bbafd9ffe01284e078c8071f0267dc9744e51c5ed42a9 + languageName: node + linkType: hard + "node-gyp-build@npm:^4.2.0, node-gyp-build@npm:^4.3.0": version: 4.5.0 resolution: "node-gyp-build@npm:4.5.0" @@ -6968,6 +7551,17 @@ __metadata: languageName: node linkType: hard +"obj-multiplex@npm:^1.0.0": + version: 1.0.0 + resolution: "obj-multiplex@npm:1.0.0" + dependencies: + end-of-stream: ^1.4.0 + once: ^1.4.0 + readable-stream: ^2.3.3 + checksum: 6bdcb7d48a1cd4458a7ff0be0b3c1dc58e8e9e6504f937c10b1eac096a3d459b85d7ba32bdd9a45382bb238e245eb42ebcd91430c72f04b0a57c97f846f2d06f + languageName: node + linkType: hard + "object-assign@npm:^4.0.1, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" @@ -7051,6 +7645,24 @@ __metadata: languageName: node linkType: hard +"ofetch@npm:^1.3.3": + version: 1.3.4 + resolution: "ofetch@npm:1.3.4" + dependencies: + destr: ^2.0.3 + node-fetch-native: ^1.6.3 + ufo: ^1.5.3 + checksum: 46749d5bf88cc924657520fa409ece473ee7d70303a374e0acf8a88883576be515861b2342b4e5d491776e2da9c8c52911c3ef298329619ef34832a5a4ffe64c + languageName: node + linkType: hard + +"ohash@npm:^1.1.3": + version: 1.1.3 + resolution: "ohash@npm:1.1.3" + checksum: 44c7321cb950ce6e87d46584fd5cc8dd3dd15fcd4ade0ac2995d0497dc6b6b1ae9bd844c59af185d63923da5cfe9b37ae37a9dbd9ac455f3ad0cdfb5a73d5ef6 + languageName: node + linkType: hard + "on-exit-leak-free@npm:^0.2.0": version: 0.2.0 resolution: "on-exit-leak-free@npm:0.2.0" @@ -7058,7 +7670,7 @@ __metadata: languageName: node linkType: hard -"once@npm:^1.3.0, once@npm:^1.4.0": +"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" dependencies: @@ -7169,6 +7781,13 @@ __metadata: languageName: node linkType: hard +"pako@npm:^0.2.5": + version: 0.2.9 + resolution: "pako@npm:0.2.9" + checksum: 055f9487cd57fbb78df84315873bbdd089ba286f3499daed47d2effdc6253e981f5db6898c23486de76d4a781559f890d643bd3a49f70f1b4a18019c98aa5125 + languageName: node + linkType: hard + "parent-module@npm:^1.0.0": version: 1.0.1 resolution: "parent-module@npm:1.0.1" @@ -7178,6 +7797,16 @@ __metadata: languageName: node linkType: hard +"parse-css-color@npm:^0.2.1": + version: 0.2.1 + resolution: "parse-css-color@npm:0.2.1" + dependencies: + color-name: ^1.1.4 + hex-rgb: ^4.1.0 + checksum: 3751e81fe904b491612ee4c92235b476d16419b88a0da2822319b657ff35311f5ffc13cd092bd385d17319058dc2188e5bcbee7d476516a77b90f6aa556d88d9 + languageName: node + linkType: hard + "parse-json@npm:^5.0.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" @@ -7253,6 +7882,13 @@ __metadata: languageName: node linkType: hard +"pathe@npm:^1.1.1, pathe@npm:^1.1.2": + version: 1.1.2 + resolution: "pathe@npm:1.1.2" + checksum: ec5f778d9790e7b9ffc3e4c1df39a5bb1ce94657a4e3ad830c1276491ca9d79f189f47609884671db173400256b005f4955f7952f52a2aeb5834ad5fb4faf134 + languageName: node + linkType: hard + "picocolors@npm:1.0.0, picocolors@npm:^1, picocolors@npm:^1.0.0": version: 1.0.0 resolution: "picocolors@npm:1.0.0" @@ -7342,6 +7978,17 @@ __metadata: languageName: node linkType: hard +"pkg-types@npm:^1.1.1": + version: 1.1.1 + resolution: "pkg-types@npm:1.1.1" + dependencies: + confbox: ^0.1.7 + mlly: ^1.7.0 + pathe: ^1.1.2 + checksum: 78ee49eea8c03802ffbdc79dfb6a741f905a4053453280cd2f1149850523fdaf46d39ecb88c2c2f757cceb9883f234bb0e56371084b5895632bdb00ef0f7298f + languageName: node + linkType: hard + "pngjs@npm:^5.0.0": version: 5.0.0 resolution: "pngjs@npm:5.0.0" @@ -7349,6 +7996,13 @@ __metadata: languageName: node linkType: hard +"pony-cause@npm:^2.1.10": + version: 2.1.11 + resolution: "pony-cause@npm:2.1.11" + checksum: 4aaa9ddab8f8225b5cbb32f7329a71b73679074579fa91f9e9d6853d398f3c2872de979519e1525c0c91d53afc82c32fddb76e379d19157e69ef1f7064523dfa + languageName: node + linkType: hard + "postcss-import@npm:^15.1.0": version: 15.1.0 resolution: "postcss-import@npm:15.1.0" @@ -7412,7 +8066,7 @@ __metadata: languageName: node linkType: hard -"postcss-value-parser@npm:^4.0.0, postcss-value-parser@npm:^4.2.0": +"postcss-value-parser@npm:^4.0.0, postcss-value-parser@npm:^4.0.2, postcss-value-parser@npm:^4.2.0": version: 4.2.0 resolution: "postcss-value-parser@npm:4.2.0" checksum: 819ffab0c9d51cf0acbabf8996dffbfafbafa57afc0e4c98db88b67f2094cb44488758f06e5da95d7036f19556a4a732525e84289a425f4f6fd8e412a9d7442f @@ -7452,17 +8106,10 @@ __metadata: languageName: node linkType: hard -"preact@npm:^10.12.0": - version: 10.15.1 - resolution: "preact@npm:10.15.1" - checksum: dabad11843b19b40b11846a25ff0b1fc4bc58268909e01a7faddb341a40983d24fbe7d44ad6e2c5d35e43091963af616800552fec9af44dd0a2f0f698d1bba1f - languageName: node - linkType: hard - -"preact@npm:^10.5.9": - version: 10.11.0 - resolution: "preact@npm:10.11.0" - checksum: 1e3f8e6fe88f26a2896826f69121b70eb69c63a46bfc1160da8672b37618fcfd294128979ed27e37499604df90c1505c30545f75683f23d8f7e6ac0693d2ff14 +"preact@npm:^10.16.0": + version: 10.22.0 + resolution: "preact@npm:10.22.0" + checksum: 1b7493abec35d5042094d652e5cb980de00a0ef39e130b2f20485214d273ef0cebafa2000aa9fa4ef9dad952bd4e746ad3714f42206f34b817fd3712d0d70bcd languageName: node linkType: hard @@ -7507,6 +8154,13 @@ __metadata: languageName: node linkType: hard +"process-nextick-args@npm:~2.0.0": + version: 2.0.1 + resolution: "process-nextick-args@npm:2.0.1" + checksum: 1d38588e520dab7cea67cbbe2efdd86a10cc7a074c09657635e34f035277b59fbb57d09d8638346bf7090f8e8ebc070c96fa5fd183b777fff4f5edff5e9466cf + languageName: node + linkType: hard + "process-warning@npm:^1.0.0": version: 1.0.0 resolution: "process-warning@npm:1.0.0" @@ -7514,6 +8168,13 @@ __metadata: languageName: node linkType: hard +"process@npm:^0.11.10": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: bfcce49814f7d172a6e6a14d5fa3ac92cc3d0c3b9feb1279774708a719e19acd673995226351a082a9ae99978254e320ccda4240ddc474ba31a76c79491ca7c3 + languageName: node + linkType: hard + "promise-inflight@npm:^1.0.1": version: 1.0.1 resolution: "promise-inflight@npm:1.0.1" @@ -7549,6 +8210,16 @@ __metadata: languageName: node linkType: hard +"pump@npm:^3.0.0": + version: 3.0.0 + resolution: "pump@npm:3.0.0" + dependencies: + end-of-stream: ^1.1.0 + once: ^1.3.1 + checksum: e42e9229fba14732593a718b04cb5e1cfef8254544870997e0ecd9732b189a48e1256e4e5478148ecb47c8511dca2b09eae56b4d0aad8009e6fac8072923cfc9 + languageName: node + linkType: hard + "punycode@npm:^2.1.0": version: 2.1.1 resolution: "punycode@npm:2.1.1" @@ -7556,6 +8227,31 @@ __metadata: languageName: node linkType: hard +"qr-code-styling@npm:^1.6.0-rc.1": + version: 1.6.0-rc.1 + resolution: "qr-code-styling@npm:1.6.0-rc.1" + dependencies: + qrcode-generator: ^1.4.3 + checksum: 778754790fe0b586ecd38fb02de777c7dd9cf844cf6e3c88f9a23ad85b122200a8567c946e3c41dba84ddd2f0016aa31ddfd1507150e1dbfea8a58323b62d944 + languageName: node + linkType: hard + +"qrcode-generator@npm:^1.4.3": + version: 1.4.4 + resolution: "qrcode-generator@npm:1.4.4" + checksum: 860cfdd2a7a608d34e92cab99774cc08182e1911432f30ed36d16f8a5cdabd7fdf40239caed91fa2691cfe66c8d95c1340a2fc9cc439eed07a9f2eb328c6f527 + languageName: node + linkType: hard + +"qrcode-terminal-nooctal@npm:^0.12.1": + version: 0.12.1 + resolution: "qrcode-terminal-nooctal@npm:0.12.1" + bin: + qrcode-terminal: bin/qrcode-terminal.js + checksum: 1071c4be2bfa07b3956ad0a63c87452ced0b5180a9dc19f224fc3dd69bb24ad687a7af365acdde0f876ddf89dc1a4beadba88d89c7c5c5cbf2ef3efaef64736e + languageName: node + linkType: hard + "qrcode.react@npm:^3.1.0": version: 3.1.0 resolution: "qrcode.react@npm:3.1.0" @@ -7565,20 +8261,6 @@ __metadata: languageName: node linkType: hard -"qrcode@npm:1.5.0": - version: 1.5.0 - resolution: "qrcode@npm:1.5.0" - dependencies: - dijkstrajs: ^1.0.1 - encode-utf8: ^1.0.3 - pngjs: ^5.0.0 - yargs: ^15.3.1 - bin: - qrcode: bin/qrcode - checksum: a0857713d4390937900a2789d5a065700f7cf78cd760e773bf8524c0e907ff629db19c9bdd4210aac55b8eef53ec1c7bcaa2acf01f340ef049c53098388a45a0 - languageName: node - linkType: hard - "qrcode@npm:1.5.3": version: 1.5.3 resolution: "qrcode@npm:1.5.3" @@ -7593,29 +8275,6 @@ __metadata: languageName: node linkType: hard -"qrcode@npm:^1.5.1": - version: 1.5.1 - resolution: "qrcode@npm:1.5.1" - dependencies: - dijkstrajs: ^1.0.1 - encode-utf8: ^1.0.3 - pngjs: ^5.0.0 - yargs: ^15.3.1 - bin: - qrcode: bin/qrcode - checksum: 842f899d95caaad2ac507408b5498be3197e1df16bc6b537b20069d2cb1330e4588b50f672ce4a9ccf01338f7c97b5732ff9b5caaa6eb2338187d3c25a973e79 - languageName: node - linkType: hard - -"qs@npm:^6.10.3": - version: 6.11.0 - resolution: "qs@npm:6.11.0" - dependencies: - side-channel: ^1.0.4 - checksum: 6e1f29dd5385f7488ec74ac7b6c92f4d09a90408882d0c208414a34dd33badc1a621019d4c799a3df15ab9b1d0292f97c1dd71dc7c045e69f81a8064e5af7297 - languageName: node - linkType: hard - "query-string@npm:7.1.3": version: 7.1.3 resolution: "query-string@npm:7.1.3" @@ -7628,18 +8287,6 @@ __metadata: languageName: node linkType: hard -"query-string@npm:^6.13.5": - version: 6.14.1 - resolution: "query-string@npm:6.14.1" - dependencies: - decode-uri-component: ^0.2.0 - filter-obj: ^1.1.0 - split-on-first: ^1.0.0 - strict-uri-encode: ^2.0.0 - checksum: f2c7347578fa0f3fd4eaace506470cb4e9dc52d409a7ddbd613f614b9a594d750877e193b5d5e843c7477b3b295b857ec328903c943957adc41a3efb6c929449 - languageName: node - linkType: hard - "queue-microtask@npm:^1.2.2": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" @@ -7654,12 +8301,10 @@ __metadata: languageName: node linkType: hard -"randombytes@npm:^2.1.0": - version: 2.1.0 - resolution: "randombytes@npm:2.1.0" - dependencies: - safe-buffer: ^5.1.0 - checksum: d779499376bd4cbb435ef3ab9a957006c8682f343f14089ed5f27764e4645114196e75b7f6abf1cbd84fd247c0cb0651698444df8c9bf30e62120fbbc52269d6 +"radix3@npm:^1.1.2": + version: 1.1.2 + resolution: "radix3@npm:1.1.2" + checksum: c4d49a3f603b5b7b7704dd907383c8884d12064d6d475f7ca8b05ecc7604d3bd73524b55e0fbcca0f7c9da3a2e9b473a6b4fbc0b639c29c2b0e85020ebda67d3 languageName: node linkType: hard @@ -7706,9 +8351,22 @@ __metadata: languageName: node linkType: hard -"react-remove-scroll-bar@npm:^2.3.3": - version: 2.3.3 - resolution: "react-remove-scroll-bar@npm:2.3.3" +"react-native-webview@npm:^11.26.0": + version: 11.26.1 + resolution: "react-native-webview@npm:11.26.1" + dependencies: + escape-string-regexp: 2.0.0 + invariant: 2.2.4 + peerDependencies: + react: "*" + react-native: "*" + checksum: d2f95a89e944a2f1e8cf402e4e274f3568edae42e7ef190915e9fba8004a01d699c962459bdc9688c159060538e90aea3017cab24e6f4112021cbbc10ef57104 + languageName: node + linkType: hard + +"react-remove-scroll-bar@npm:^2.3.4": + version: 2.3.6 + resolution: "react-remove-scroll-bar@npm:2.3.6" dependencies: react-style-singleton: ^2.2.1 tslib: ^2.0.0 @@ -7718,15 +8376,15 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: fc8c70014a473b12d4205071ad79bd3cfc6ded173c6589fe6baca01090729757f1ee9966278f16930f3b58029c6923e06d2e3193dcb878ecdcb4eb293b7b9bf4 + checksum: e793fe110e2ea60d5724d0b60f09de1f6cd1b080df00df9e68bb9a1b985895830e703194647059fdc22402a67a89b7673a5260773b89bcd98031fd99bc91aefa languageName: node linkType: hard -"react-remove-scroll@npm:2.5.4": - version: 2.5.4 - resolution: "react-remove-scroll@npm:2.5.4" +"react-remove-scroll@npm:2.5.7": + version: 2.5.7 + resolution: "react-remove-scroll@npm:2.5.7" dependencies: - react-remove-scroll-bar: ^2.3.3 + react-remove-scroll-bar: ^2.3.4 react-style-singleton: ^2.2.1 tslib: ^2.1.0 use-callback-ref: ^1.3.0 @@ -7737,7 +8395,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 01b0f65542a4c8803ee748b4e6cf2adad66d034e15fb72e8455773b0d7b178ec806b3194d74f412db7064670c45552cc666c04e9fb3b5d466dce5fb48e634825 + checksum: e0dbb6856beaed2cff4996d9ca62d775686ff72e3e9de34043034d932223b588993b2fc7a18644750dd3d73eb19bd3f2cedb8d91f0e424c1ef8403010da24b1d languageName: node linkType: hard @@ -7811,7 +8469,22 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^3.1.1, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0": +"readable-stream@npm:^2.3.3": + version: 2.3.8 + resolution: "readable-stream@npm:2.3.8" + dependencies: + core-util-is: ~1.0.0 + inherits: ~2.0.3 + isarray: ~1.0.0 + process-nextick-args: ~2.0.0 + safe-buffer: ~5.1.1 + string_decoder: ~1.1.1 + util-deprecate: ~1.0.1 + checksum: 65645467038704f0c8aaf026a72fbb588a9e2ef7a75cd57a01702ee9db1c4a1e4b03aaad36861a6a0926546a74d174149c8c207527963e0c2d3eee2f37678a42 + languageName: node + linkType: hard + +"readable-stream@npm:^3.1.1, readable-stream@npm:^3.6.0": version: 3.6.0 resolution: "readable-stream@npm:3.6.0" dependencies: @@ -7822,6 +8495,30 @@ __metadata: languageName: node linkType: hard +"readable-stream@npm:^3.6.2": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: ^2.0.3 + string_decoder: ^1.1.1 + util-deprecate: ^1.0.1 + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d + languageName: node + linkType: hard + +"readable-stream@npm:^3.6.2 || ^4.4.2": + version: 4.5.2 + resolution: "readable-stream@npm:4.5.2" + dependencies: + abort-controller: ^3.0.0 + buffer: ^6.0.3 + events: ^3.3.0 + process: ^0.11.10 + string_decoder: ^1.3.0 + checksum: c4030ccff010b83e4f33289c535f7830190773e274b3fcb6e2541475070bdfd69c98001c3b0cb78763fc00c8b62f514d96c2b10a8bd35d5ce45203a25fa1d33a + languageName: node + linkType: hard + "readdirp@npm:~3.6.0": version: 3.6.0 resolution: "readdirp@npm:3.6.0" @@ -8051,22 +8748,22 @@ __metadata: languageName: node linkType: hard -"rpc-websockets@npm:^7.5.0": - version: 7.5.0 - resolution: "rpc-websockets@npm:7.5.0" +"rollup-plugin-visualizer@npm:^5.9.2": + version: 5.12.0 + resolution: "rollup-plugin-visualizer@npm:5.12.0" dependencies: - "@babel/runtime": ^7.17.2 - bufferutil: ^4.0.1 - eventemitter3: ^4.0.7 - utf-8-validate: ^5.0.2 - uuid: ^8.3.2 - ws: ^8.5.0 - dependenciesMeta: - bufferutil: - optional: true - utf-8-validate: + open: ^8.4.0 + picomatch: ^2.3.1 + source-map: ^0.7.4 + yargs: ^17.5.1 + peerDependencies: + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rollup: optional: true - checksum: cd4c999e54161f9f40e162f57d7f3313edf086ff5facefbdc0629d52066e9843ace987681dbff8b4329db225deb69f58c528d7818a9c7e89f0100969b7789c2d + bin: + rollup-plugin-visualizer: dist/bin/cli.js + checksum: 17dc10a93d4bd457c8bb7796a57c284487fb00f4b9703a33a1a954f5d40c66a89b24aca98564569922456f4fa8f72281c3ef96a95502195e6930b3fac62fce8e languageName: node linkType: hard @@ -8079,15 +8776,6 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:^6.6.3": - version: 6.6.7 - resolution: "rxjs@npm:6.6.7" - dependencies: - tslib: ^1.9.0 - checksum: bc334edef1bb8bbf56590b0b25734ba0deaf8825b703256a93714308ea36dff8a11d25533671adf8e104e5e8f256aa6fdfe39b2e248cdbd7a5f90c260acbbd1b - languageName: node - linkType: hard - "rxjs@npm:^7.5.5": version: 7.5.7 resolution: "rxjs@npm:7.5.7" @@ -8097,17 +8785,17 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.2, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 languageName: node linkType: hard -"safe-json-utils@npm:^1.1.1": - version: 1.1.1 - resolution: "safe-json-utils@npm:1.1.1" - checksum: f82a5833b7f6f25583c46520b3e158da3864d4f6f85b7cd68ec956ae7023395872e834d75f7f6216c109c546d10b6ee15c066d849f75ac2a7b86b8a041b4f01f +"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": + version: 5.1.2 + resolution: "safe-buffer@npm:5.1.2" + checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c languageName: node linkType: hard @@ -8136,6 +8824,24 @@ __metadata: languageName: node linkType: hard +"satori@npm:0.10.9": + version: 0.10.9 + resolution: "satori@npm:0.10.9" + dependencies: + "@shuding/opentype.js": 1.4.0-beta.0 + css-background-parser: ^0.1.0 + css-box-shadow: 1.0.0-3 + css-to-react-native: ^3.0.0 + emoji-regex: ^10.2.1 + escape-html: ^1.0.3 + linebreak: ^1.1.0 + parse-css-color: ^0.2.1 + postcss-value-parser: ^4.2.0 + yoga-wasm-web: ^0.3.3 + checksum: 56cb35e553cf8a65ee08ec29357e441a10adcc7c0cd68977c4e24c613f8999b0862ae05fe3c648498c4bda8dfc5a1c15d883cfbc30c815a9117fd99531ee4355 + languageName: node + linkType: hard + "scheduler@npm:^0.23.0": version: 0.23.0 resolution: "scheduler@npm:0.23.0" @@ -8154,6 +8860,18 @@ __metadata: languageName: unknown linkType: soft +"secp256k1@npm:^5.0.0": + version: 5.0.0 + resolution: "secp256k1@npm:5.0.0" + dependencies: + elliptic: ^6.5.4 + node-addon-api: ^5.0.0 + node-gyp: latest + node-gyp-build: ^4.2.0 + checksum: a0719dff4687c38d385b5e0b7e811c51a4ea24893128be9d097aee99f879eb0ea52582590deb15a49da627a3db23c6b028ad5c9c6ac1fca92ce760153b8cf21c + languageName: node + linkType: hard + "semver@npm:6.1.1": version: 6.1.1 resolution: "semver@npm:6.1.1" @@ -8194,6 +8912,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.5.4": + version: 7.6.2 + resolution: "semver@npm:7.6.2" + bin: + semver: bin/semver.js + checksum: 40f6a95101e8d854357a644da1b8dd9d93ce786d5c6a77227bc69dbb17bea83d0d1d1d7c4cd5920a6df909f48e8bd8a5909869535007f90278289f2451d0292d + languageName: node + linkType: hard + "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -8247,6 +8974,13 @@ __metadata: languageName: node linkType: hard +"signal-exit@npm:^4.1.0": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 + languageName: node + linkType: hard + "slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0" @@ -8300,6 +9034,28 @@ __metadata: languageName: node linkType: hard +"socket.io-client@npm:^4.5.1": + version: 4.7.5 + resolution: "socket.io-client@npm:4.7.5" + dependencies: + "@socket.io/component-emitter": ~3.1.0 + debug: ~4.3.2 + engine.io-client: ~6.5.2 + socket.io-parser: ~4.2.4 + checksum: a6994b93a753d14292682ee97ba3c925c54b63e6fcb2ed5e0aa1d7c1d6164ed4a30d993f7eaaa3017ddf868ad0a1ab996badc8310129070136d84668789ee6c9 + languageName: node + linkType: hard + +"socket.io-parser@npm:~4.2.4": + version: 4.2.4 + resolution: "socket.io-parser@npm:4.2.4" + dependencies: + "@socket.io/component-emitter": ~3.1.0 + debug: ~4.3.1 + checksum: 61540ef99af33e6a562b9effe0fad769bcb7ec6a301aba5a64b3a8bccb611a0abdbe25f469933ab80072582006a78ca136bf0ad8adff9c77c9953581285e2263 + languageName: node + linkType: hard + "socks-proxy-agent@npm:^7.0.0": version: 7.0.0 resolution: "socks-proxy-agent@npm:7.0.0" @@ -8344,6 +9100,13 @@ __metadata: languageName: node linkType: hard +"source-map@npm:^0.7.4": + version: 0.7.4 + resolution: "source-map@npm:0.7.4" + checksum: 01cc5a74b1f0e1d626a58d36ad6898ea820567e87f18dfc9d24a9843a351aaa2ec09b87422589906d6ff1deed29693e176194dc88bcae7c9a852dc74b311dbf5 + languageName: node + linkType: hard + "split-on-first@npm:^1.0.0": version: 1.1.0 resolution: "split-on-first@npm:1.1.0" @@ -8367,13 +9130,10 @@ __metadata: languageName: node linkType: hard -"stream-browserify@npm:^3.0.0": - version: 3.0.0 - resolution: "stream-browserify@npm:3.0.0" - dependencies: - inherits: ~2.0.4 - readable-stream: ^3.5.0 - checksum: 4c47ef64d6f03815a9ca3874e2319805e8e8a85f3550776c47ce523b6f4c6cd57f40e46ec6a9ab8ad260fde61863c2718f250d3bedb3fe9052444eb9abfd9921 +"std-env@npm:^3.7.0": + version: 3.7.0 + resolution: "std-env@npm:3.7.0" + checksum: 4f489d13ff2ab838c9acd4ed6b786b51aa52ecacdfeaefe9275fcb220ff2ac80c6e95674723508fd29850a694569563a8caaaea738eb82ca16429b3a0b50e510 languageName: node linkType: hard @@ -8427,6 +9187,13 @@ __metadata: languageName: node linkType: hard +"string.prototype.codepointat@npm:^0.2.1": + version: 0.2.1 + resolution: "string.prototype.codepointat@npm:0.2.1" + checksum: bafa15844d7ea5bed24a01fa8954327c0c49226cefe68ab70573f1338f6a4680587db962724924f2cceb91abe408e11bd38c80095f25ee080f136a6c9d300f00 + languageName: node + linkType: hard + "string.prototype.matchall@npm:^4.0.7": version: 4.0.7 resolution: "string.prototype.matchall@npm:4.0.7" @@ -8465,7 +9232,7 @@ __metadata: languageName: node linkType: hard -"string_decoder@npm:^1.1.1": +"string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" dependencies: @@ -8474,6 +9241,15 @@ __metadata: languageName: node linkType: hard +"string_decoder@npm:~1.1.1": + version: 1.1.1 + resolution: "string_decoder@npm:1.1.1" + dependencies: + safe-buffer: ~5.1.0 + checksum: 9ab7e56f9d60a28f2be697419917c50cac19f3e8e6c28ef26ed5f4852289fe0de5d6997d29becf59028556f2c62983790c1d9ba1e2a3cc401768ca12d5183a5b + languageName: node + linkType: hard + "strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" @@ -8554,13 +9330,6 @@ __metadata: languageName: node linkType: hard -"superstruct@npm:^0.14.2": - version: 0.14.2 - resolution: "superstruct@npm:0.14.2" - checksum: c5c4840f432da82125b923ec45faca5113217e83ae416e314d80eae012b8bb603d2e745025d173450758d116348820bc7028157f8c9a72b6beae879f94b837c0 - languageName: node - linkType: hard - "superstruct@npm:^1.0.3": version: 1.0.3 resolution: "superstruct@npm:1.0.3" @@ -8603,6 +9372,13 @@ __metadata: languageName: node linkType: hard +"system-architecture@npm:^0.1.0": + version: 0.1.0 + resolution: "system-architecture@npm:0.1.0" + checksum: ca0dd793c45c354ab57dd7fc8ce7dc9923a6e07382bd3b22eb5b08f55ddb0217c390d00767549c5155fd4ce7ef23ffdd8cfb33dd4344cbbd37837d085a50f6f0 + languageName: node + linkType: hard + "tailwindcss@npm:^3.3.3": version: 3.3.3 resolution: "tailwindcss@npm:3.3.3" @@ -8657,13 +9433,6 @@ __metadata: languageName: node linkType: hard -"text-encoding-utf-8@npm:^1.0.2": - version: 1.0.2 - resolution: "text-encoding-utf-8@npm:1.0.2" - checksum: ec4c15d50e738c5dba7327ad432ebf0725ec75d4d69c0bd55609254c5a3bc5341272d7003691084a0a73d60d981c8eb0e87603676fdb6f3fed60f4c9192309f9 - languageName: node - linkType: hard - "text-table@npm:^0.2.0": version: 0.2.0 resolution: "text-table@npm:0.2.0" @@ -8698,7 +9467,7 @@ __metadata: languageName: node linkType: hard -"through@npm:>=2.2.7 <3, through@npm:^2.3.8": +"through@npm:^2.3.8": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd @@ -8724,6 +9493,13 @@ __metadata: languageName: node linkType: hard +"tiny-inflate@npm:^1.0.0": + version: 1.0.3 + resolution: "tiny-inflate@npm:1.0.3" + checksum: 4086a1f8938dafa4a20c63b099aeb47bf8fef5aca991bf4ea4b35dd2684fa52363b2c19b3e76660311e7613cb7c4f063bc48751b9bdf9555e498d997c30bc2d6 + languageName: node + linkType: hard + "tiny-invariant@npm:^1.1.0": version: 1.3.1 resolution: "tiny-invariant@npm:1.3.1" @@ -8849,7 +9625,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:1.14.1, tslib@npm:^1.8.1, tslib@npm:^1.9.0": +"tslib@npm:1.14.1, tslib@npm:^1.8.1": version: 1.14.1 resolution: "tslib@npm:1.14.1" checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd @@ -8918,15 +9694,6 @@ __metadata: languageName: node linkType: hard -"typedarray-to-buffer@npm:3.1.5": - version: 3.1.5 - resolution: "typedarray-to-buffer@npm:3.1.5" - dependencies: - is-typedarray: ^1.0.0 - checksum: 99c11aaa8f45189fcfba6b8a4825fd684a321caa9bd7a76a27cf0c7732c174d198b99f449c52c3818107430b5f41c0ccbbfb75cb2ee3ca4a9451710986d61a60 - languageName: node - linkType: hard - "typescript@npm:4.3.4": version: 4.3.4 resolution: "typescript@npm:4.3.4" @@ -8937,7 +9704,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.1.6": +"typescript@npm:5.1.6": version: 5.1.6 resolution: "typescript@npm:5.1.6" bin: @@ -8957,7 +9724,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^5.1.6#~builtin": +"typescript@patch:typescript@5.1.6#~builtin": version: 5.1.6 resolution: "typescript@patch:typescript@npm%3A5.1.6#~builtin::version=5.1.6&hash=a1c5e5" bin: @@ -8967,14 +9734,30 @@ __metadata: languageName: node linkType: hard -"ua-parser-js@npm:^1.0.35": - version: 1.0.37 - resolution: "ua-parser-js@npm:1.0.37" - checksum: 4d481c720d523366d7762dc8a46a1b58967d979aacf786f9ceceb1cd767de069f64a4bdffb63956294f1c0696eb465ddb950f28ba90571709e33521b4bd75e07 +"ua-parser-js@npm:^1.0.37": + version: 1.0.38 + resolution: "ua-parser-js@npm:1.0.38" + checksum: d0772b22b027338d806ab17d1ac2896ee7485bdf9217c526028159f3cd6bb10272bb18f6196d2f94dde83e3b36dc9d2533daf08a414764f6f4f1844842383838 + languageName: node + linkType: hard + +"ufo@npm:^1.4.0, ufo@npm:^1.5.3": + version: 1.5.3 + resolution: "ufo@npm:1.5.3" + checksum: 2f54fa543b2e689cc4ab341fe2194937afe37c5ee43cd782e6ecc184e36859e84d4197a43ae4cd6e9a56f793ca7c5b950dfff3f16fadaeef9b6b88b05c88c8ef + languageName: node + linkType: hard + +"uint8arrays@npm:3.1.0": + version: 3.1.0 + resolution: "uint8arrays@npm:3.1.0" + dependencies: + multiformats: ^9.4.2 + checksum: 77fe0c8644417a849f5cfc0e5a5308c65e3b779a56f816dd27b8f60f7fac1ac7626f57c9abacec77d147beb5da8401b86438b1591d93cae7f7511a3211cc01b3 languageName: node linkType: hard -"uint8arrays@npm:^3.0.0, uint8arrays@npm:^3.1.0": +"uint8arrays@npm:^3.0.0": version: 3.1.1 resolution: "uint8arrays@npm:3.1.1" dependencies: @@ -8995,6 +9778,43 @@ __metadata: languageName: node linkType: hard +"uncrypto@npm:^0.1.3": + version: 0.1.3 + resolution: "uncrypto@npm:0.1.3" + checksum: 07160e08806dd6cea16bb96c3fd54cd70fc801e02fc3c6f86980144d15c9ebbd1c55587f7280a207b3af6cd34901c0d0b77ada5a02c2f7081a033a05acf409e2 + languageName: node + linkType: hard + +"unenv@npm:^1.9.0": + version: 1.9.0 + resolution: "unenv@npm:1.9.0" + dependencies: + consola: ^3.2.3 + defu: ^6.1.3 + mime: ^3.0.0 + node-fetch-native: ^1.6.1 + pathe: ^1.1.1 + checksum: 4cfbeedee1436e7f417d655c521e4c6220228f5b96afff90b5253d4504282c6de5acdd982aa51c977ce38d21d7692a33d10fc857166b3488655ff29c3bb754a2 + languageName: node + linkType: hard + +"unfetch@npm:^4.2.0": + version: 4.2.0 + resolution: "unfetch@npm:4.2.0" + checksum: 6a4b2557e1d921eaa80c4425ce27a404945ec26491ed06e62598f333996a91a44c7908cb26dc7c2746d735762b13276cf4aa41829b4c8f438dde63add3045d7a + languageName: node + linkType: hard + +"unicode-trie@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-trie@npm:2.0.0" + dependencies: + pako: ^0.2.5 + tiny-inflate: ^1.0.0 + checksum: 19e637ce20953ec1fbfa9087abef4746a50352679b833be27924e4ba7ad753cc4073b74263747ccfccb5e38b30b17468cbb96f361eb49903ff8602396280b5a4 + languageName: node + linkType: hard + "unique-filename@npm:^2.0.0": version: 2.0.1 resolution: "unique-filename@npm:2.0.1" @@ -9020,6 +9840,78 @@ __metadata: languageName: node linkType: hard +"unstorage@npm:^1.9.0": + version: 1.10.2 + resolution: "unstorage@npm:1.10.2" + dependencies: + anymatch: ^3.1.3 + chokidar: ^3.6.0 + destr: ^2.0.3 + h3: ^1.11.1 + listhen: ^1.7.2 + lru-cache: ^10.2.0 + mri: ^1.2.0 + node-fetch-native: ^1.6.2 + ofetch: ^1.3.3 + ufo: ^1.4.0 + peerDependencies: + "@azure/app-configuration": ^1.5.0 + "@azure/cosmos": ^4.0.0 + "@azure/data-tables": ^13.2.2 + "@azure/identity": ^4.0.1 + "@azure/keyvault-secrets": ^4.8.0 + "@azure/storage-blob": ^12.17.0 + "@capacitor/preferences": ^5.0.7 + "@netlify/blobs": ^6.5.0 || ^7.0.0 + "@planetscale/database": ^1.16.0 + "@upstash/redis": ^1.28.4 + "@vercel/kv": ^1.0.1 + idb-keyval: ^6.2.1 + ioredis: ^5.3.2 + peerDependenciesMeta: + "@azure/app-configuration": + optional: true + "@azure/cosmos": + optional: true + "@azure/data-tables": + optional: true + "@azure/identity": + optional: true + "@azure/keyvault-secrets": + optional: true + "@azure/storage-blob": + optional: true + "@capacitor/preferences": + optional: true + "@netlify/blobs": + optional: true + "@planetscale/database": + optional: true + "@upstash/redis": + optional: true + "@vercel/kv": + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + checksum: dd3dc881fb2724b0e1af069b919682cc8cfe539e9c8fa50cd3fe448744c9608f97c47b092f48c615e4d17736e206e880b76d7479a4520177bc3e197159d49718 + languageName: node + linkType: hard + +"untun@npm:^0.1.3": + version: 0.1.3 + resolution: "untun@npm:0.1.3" + dependencies: + citty: ^0.1.5 + consola: ^3.2.3 + pathe: ^1.1.1 + bin: + untun: bin/untun.mjs + checksum: ad886c242dbac250f88ef6f18ad780fa084d07e4d030ab5ceacfe4378aa4bf2d3549b8ed8352bad5776facd9aaee05e3f914c661adc11bace867e2a12fd7bee5 + languageName: node + linkType: hard + "update-browserslist-db@npm:^1.0.9": version: 1.0.9 resolution: "update-browserslist-db@npm:1.0.9" @@ -9034,6 +9926,13 @@ __metadata: languageName: node linkType: hard +"uqr@npm:^0.1.2": + version: 0.1.2 + resolution: "uqr@npm:0.1.2" + checksum: 717766f03814172f5a9934dae2c4c48f6de065a4fd7da82aa513bd8300b621c1e606efdd174478cab79093e5ba244a99f0c0b1b0b9c0175656ab5e637a006d92 + languageName: node + linkType: hard + "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" @@ -9095,7 +9994,7 @@ __metadata: languageName: node linkType: hard -"use-sync-external-store@npm:1.2.0, use-sync-external-store@npm:^1.2.0": +"use-sync-external-store@npm:1.2.0": version: 1.2.0 resolution: "use-sync-external-store@npm:1.2.0" peerDependencies: @@ -9124,17 +10023,17 @@ __metadata: languageName: node linkType: hard -"utf-8-validate@npm:^5.0.2": - version: 5.0.9 - resolution: "utf-8-validate@npm:5.0.9" +"utf-8-validate@npm:^6.0.3": + version: 6.0.4 + resolution: "utf-8-validate@npm:6.0.4" dependencies: node-gyp: latest node-gyp-build: ^4.3.0 - checksum: 90117f1b65e0a1256c83dfad529983617263b622f2379745311d0438c7ea31db0d134ebd0dca84c3f5847a3560a3d249644e478a9109c616f63c7ea19cac53dc + checksum: ccbfbceeed7cbad62282aed5420236d38006453ce583cf9021ad6225c2d15996a660a3b3bdd2b9344b4d3b5df5673fbaf9e70c3637628a2cd58824089d9d9153 languageName: node linkType: hard -"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2": +"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 @@ -9164,6 +10063,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^9.0.1": + version: 9.0.1 + resolution: "uuid@npm:9.0.1" + bin: + uuid: dist/bin/uuid + checksum: 39931f6da74e307f51c0fb463dc2462807531dc80760a9bff1e35af4316131b4fc3203d16da60ae33f07fdca5b56f3f1dd662da0c99fea9aaeab2004780cc5f4 + languageName: node + linkType: hard + "v8-compile-cache-lib@npm:^3.0.1": version: 3.0.1 resolution: "v8-compile-cache-lib@npm:3.0.1" @@ -9210,24 +10118,45 @@ __metadata: languageName: node linkType: hard -"viem@npm:1.19.9": - version: 1.19.9 - resolution: "viem@npm:1.19.9" +"viem@npm:2.10.9": + version: 2.10.9 + resolution: "viem@npm:2.10.9" dependencies: "@adraffy/ens-normalize": 1.10.0 "@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 + abitype: 1.0.0 + isows: 1.0.4 + ws: 8.13.0 + peerDependencies: + typescript: ">=5.0.4" + peerDependenciesMeta: + typescript: + optional: true + checksum: 6d82e325c889717d64829000e560f6b59db721078f25e4692664a92ee8fec896542eb6757d5f7081d06edf891936ab9cd5f9de1a7f15ce7426ca464dd8b545ee + languageName: node + linkType: hard + +"viem@npm:2.13.6": + version: 2.13.6 + resolution: "viem@npm:2.13.6" + dependencies: + "@adraffy/ens-normalize": 1.10.0 + "@noble/curves": 1.2.0 + "@noble/hashes": 1.3.2 + "@scure/bip32": 1.3.2 + "@scure/bip39": 1.2.1 + abitype: 1.0.0 + isows: 1.0.4 ws: 8.13.0 peerDependencies: typescript: ">=5.0.4" peerDependenciesMeta: typescript: optional: true - checksum: a18633f42f8075b16819b6914f5236c726875407e8e3741b1434af48193ac5a7c12cbe1e1522b0e13df7af4dd4c5daeea2371a21f9338f27c271700a7f6d1595 + checksum: e6dae3cb8e90922d2deac6c6d5922c63908eb545820fcbd21572591d05d5a69b9434b4dad859461d20bf23faa3cde9b10f5f879de5db6858735c4b848bccb584 languageName: node linkType: hard @@ -9250,24 +10179,43 @@ __metadata: languageName: node linkType: hard -"wagmi@npm:1.4.7": - version: 1.4.7 - resolution: "wagmi@npm:1.4.7" +"viem@npm:^1.1.4": + version: 1.21.4 + resolution: "viem@npm:1.21.4" 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.7 - abitype: 0.8.7 - use-sync-external-store: ^1.2.0 + "@adraffy/ens-normalize": 1.10.0 + "@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 peerDependencies: - react: ">=17.0.0" typescript: ">=5.0.4" - viem: ">=0.3.35" peerDependenciesMeta: typescript: optional: true - checksum: b3223fc46e5aef3935626236bea34678905a0aadb6632a07cd53d7d06851c2eef5d28c3fed7d23fbee19e6bd5c403a236c03e5059767e2fa444119a595503562 + checksum: c351fdea2d53d2d781ac73c964348b3b9fc5dd46f9eb53903e867705fc9e30a893cb9f2c8d7a00acdcdeca27d14eeebf976eed9f948c28c47018dc9211369117 + languageName: node + linkType: hard + +"wagmi@npm:2.9.8": + version: 2.9.8 + resolution: "wagmi@npm:2.9.8" + dependencies: + "@wagmi/connectors": 5.0.7 + "@wagmi/core": 2.10.5 + use-sync-external-store: 1.2.0 + peerDependencies: + "@tanstack/react-query": ">=5.0.0" + react: ">=18" + typescript: ">=5.0.4" + viem: 2.x + peerDependenciesMeta: + typescript: + optional: true + checksum: 2e6e0645579dcde14829005ddbf70f88e7c67616d0bc1a39fd8de9fc5fc4ead3126c57686773b758170d751201468c4cde4c3d3128f1fdd1b731e1940d8eb371 languageName: node linkType: hard @@ -9278,6 +10226,20 @@ __metadata: languageName: node linkType: hard +"webextension-polyfill@npm:>=0.10.0 <1.0": + version: 0.12.0 + resolution: "webextension-polyfill@npm:0.12.0" + checksum: fc2166c8c9d3f32d7742727394092ff1a1eb19cbc4e5a73066d57f9bff1684e38342b90fabd23981e7295e904c536e8509552a64e989d217dae5de6ddca73532 + languageName: node + linkType: hard + +"webextension-polyfill@npm:^0.10.0": + version: 0.10.0 + resolution: "webextension-polyfill@npm:0.10.0" + checksum: 4a59036bda571360c2c0b2fb03fe1dc244f233946bcf9a6766f677956c40fd14d270aaa69cdba95e4ac521014afbe4008bfa5959d0ac39f91c990eb206587f91 + languageName: node + linkType: hard + "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" @@ -9385,21 +10347,6 @@ __metadata: languageName: node linkType: hard -"ws@npm:7.4.6": - version: 7.4.6 - resolution: "ws@npm:7.4.6" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 3a990b32ed08c72070d5e8913e14dfcd831919205be52a3ff0b4cdd998c8d554f167c9df3841605cde8b11d607768cacab3e823c58c96a5c08c987e093eb767a - languageName: node - linkType: hard - "ws@npm:8.12.0": version: 8.12.0 resolution: "ws@npm:8.12.0" @@ -9430,7 +10377,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^7.4.5, ws@npm:^7.5.1": +"ws@npm:^7.5.1": version: 7.5.9 resolution: "ws@npm:7.5.9" peerDependencies: @@ -9445,18 +10392,25 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.5.0": - version: 8.9.0 - resolution: "ws@npm:8.9.0" +"ws@npm:~8.17.1": + version: 8.17.1 + resolution: "ws@npm:8.17.1" peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 + utf-8-validate: ">=5.0.2" peerDependenciesMeta: bufferutil: optional: true utf-8-validate: optional: true - checksum: 23aa0f021b2eb65c108ec4c3e08c0d81ba01f82b500432dfe327fd6be36079c1d81fdb0eac6464d2a0eb49904d34a9ab8c59619d673fa07b8346f83aeb0cbf12 + checksum: 442badcce1f1178ec87a0b5372ae2e9771e07c4929a3180321901f226127f252441e8689d765aa5cfba5f50ac60dd830954afc5aeae81609aefa11d3ddf5cecf + languageName: node + linkType: hard + +"xmlhttprequest-ssl@npm:~2.0.0": + version: 2.0.0 + resolution: "xmlhttprequest-ssl@npm:2.0.0" + checksum: 1e98df67f004fec15754392a131343ea92e6ab5ac4d77e842378c5c4e4fd5b6a9134b169d96842cc19422d77b1606b8df84a5685562b3b698cb68441636f827e languageName: node linkType: hard @@ -9474,6 +10428,13 @@ __metadata: languageName: node linkType: hard +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 + languageName: node + linkType: hard + "yallist@npm:^4.0.0": version: 4.0.0 resolution: "yallist@npm:4.0.0" @@ -9505,6 +10466,13 @@ __metadata: languageName: node linkType: hard +"yargs-parser@npm:^21.1.1": + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c + languageName: node + linkType: hard + "yargs@npm:^15.3.1": version: 15.4.1 resolution: "yargs@npm:15.4.1" @@ -9524,6 +10492,21 @@ __metadata: languageName: node linkType: hard +"yargs@npm:^17.5.1": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" + dependencies: + cliui: ^8.0.1 + escalade: ^3.1.1 + get-caller-file: ^2.0.5 + require-directory: ^2.1.1 + string-width: ^4.2.3 + y18n: ^5.0.5 + yargs-parser: ^21.1.1 + checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a + languageName: node + linkType: hard + "yn@npm:3.1.1": version: 3.1.1 resolution: "yn@npm:3.1.1" @@ -9538,26 +10521,36 @@ __metadata: languageName: node linkType: hard -"zustand@npm:^4.1.2": - version: 4.1.2 - resolution: "zustand@npm:4.1.2" +"yoga-wasm-web@npm:0.3.3, yoga-wasm-web@npm:^0.3.3": + version: 0.3.3 + resolution: "yoga-wasm-web@npm:0.3.3" + checksum: ff65192a832975ff531a1b6eae160c2da859c250feaa58b6389b684f9b48f53fda849a7ea49d12d241198309e671e6bd230a44e7155af9573d7843ac48831c98 + languageName: node + linkType: hard + +"zustand@npm:4.4.1": + version: 4.4.1 + resolution: "zustand@npm:4.4.1" dependencies: use-sync-external-store: 1.2.0 peerDependencies: + "@types/react": ">=16.8" immer: ">=9.0" react: ">=16.8" peerDependenciesMeta: + "@types/react": + optional: true immer: optional: true react: optional: true - checksum: e7fefc5deb232082edd2abef072b92554d5effc261594d633ee55d7d4fe0e54c5b16ee8c5e628fab2e1090946d9e493865b72ad76280a413e8ff5bea6d0ca642 + checksum: 80acd0fbf633782996642802c8692bbb80ae5c80a8dff4c501b88250acd5ccd468fbc6398bdce198475a25e3839c91385b81da921274f33ffb5c2d08c3eab400 languageName: node linkType: hard -"zustand@npm:^4.3.1": - version: 4.3.2 - resolution: "zustand@npm:4.3.2" +"zustand@npm:^4.1.2": + version: 4.1.2 + resolution: "zustand@npm:4.1.2" dependencies: use-sync-external-store: 1.2.0 peerDependencies: @@ -9568,6 +10561,6 @@ __metadata: optional: true react: optional: true - checksum: fc443abf5bc9deac0d4e375847e7914e44c7ffc9f7f09b60e466cb9bbbcf5a46706bf2f9c8b9e6e6c9a1c5aea0bd6123cbf9fbcd39788ae27d8494d505969ae8 + checksum: e7fefc5deb232082edd2abef072b92554d5effc261594d633ee55d7d4fe0e54c5b16ee8c5e628fab2e1090946d9e493865b72ad76280a413e8ff5bea6d0ca642 languageName: node linkType: hard