From 2b0d03a368c4beb9b948bda16a5ac5bab4655132 Mon Sep 17 00:00:00 2001 From: Kaspar Kallas Date: Mon, 7 Oct 2024 18:28:47 +0000 Subject: [PATCH] get the widget to compile (WIP, many TODO-s) --- package.json | 2 +- packages/widget/package.json | 3 +- packages/widget/src/AccountAddressCard.tsx | 5 +- packages/widget/src/CommandMapper.tsx | 46 ++++-- packages/widget/src/ContractWrite.ts | 15 +- packages/widget/src/ContractWriteButton.tsx | 17 ++- packages/widget/src/ContractWriteManager.tsx | 78 ++++++---- packages/widget/src/ContractWriteStatus.tsx | 6 +- packages/widget/src/StepContentWrap.tsx | 62 ++++---- .../widget/src/previews/SubscribePreview.tsx | 10 +- pnpm-lock.yaml | 137 +++++++++++------- 11 files changed, 238 insertions(+), 143 deletions(-) diff --git a/package.json b/package.json index 0ec35c90..d7557d1b 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "turbo": "^1.13.4", "typescript": "^5.6.2" }, - "packageManager": "pnpm@8.6.1", + "packageManager": "pnpm@9.12.0", "pnpm": { "overrides": { "eslint-plugin-react-hooks": "5.0.0-canary-41f0e9dae-20230907", diff --git a/packages/widget/package.json b/packages/widget/package.json index 6fa6edc7..148f2510 100644 --- a/packages/widget/package.json +++ b/packages/widget/package.json @@ -107,7 +107,8 @@ "typescript": "^5.6.2", "viem": "^2.21.18", "vitest": "^0.34.6", - "wagmi": "^2.12.17" + "wagmi": "^2.12.17", + "@wagmi/core": "^2.13.8" }, "peerDependencies": { "viem": "^2", diff --git a/packages/widget/src/AccountAddressCard.tsx b/packages/widget/src/AccountAddressCard.tsx index 62fc26a2..0cd879fc 100644 --- a/packages/widget/src/AccountAddressCard.tsx +++ b/packages/widget/src/AccountAddressCard.tsx @@ -68,7 +68,7 @@ export function AccountAddressCard({ data-testid="ens-avatar" alt="ENS avatar" variant="rounded" - src={ensAvatarResult.data} + src={ensAvatarResult.data as string} // TODO? sx={{ width: 24, height: 24 }} /> ) : ( @@ -86,7 +86,8 @@ export function AccountAddressCard({ title={checksumAddress} flex={1} > - {ensNameResult.data ?? shortenedAddress} + {/* TODO? */} + {(ensNameResult.data as string | undefined) ?? shortenedAddress} 0n; const { isSuccess: isSuccessForBlockNumber, - isIdle: isIdleForBlockNumber, + isPaused: isIdleForBlockNumber, // TODO data: blockNumber, } = useBlockNumber({ chainId: cmd.chainId, - enabled: checkExistingUpfrontTransfer, + query: { + enabled: checkExistingUpfrontTransfer, + }, }); const publicClient = usePublicClient({ @@ -316,9 +324,10 @@ export function SubscribeCommandMapper({ }); return logs; }, - enabled: - checkExistingUpfrontTransfer && isSuccessForBlockNumber && publicClient, retry: 10, + enabled: Boolean( + checkExistingUpfrontTransfer && isSuccessForBlockNumber && publicClient, + ), }); const skipTransfer = useMemo(() => { @@ -435,13 +444,22 @@ export function SubscribeCommandMapper({ return null; } +type ExpectedMutability = "payable" | "nonpayable"; + const createContractWrite = < TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends string = string, >( - arg: ContractFunctionConfig & - GetValue & - Pick, + // TODO: FunctionName + arg: ContractFunctionParameters< + TAbi, + ExpectedMutability, + ContractFunctionName + > & + Pick & + GetValue & { + value?: bigint; + }, ): ContractWrite => ({ id: nanoid(), diff --git a/packages/widget/src/ContractWrite.ts b/packages/widget/src/ContractWrite.ts index bc6b63b7..7e00c791 100644 --- a/packages/widget/src/ContractWrite.ts +++ b/packages/widget/src/ContractWrite.ts @@ -1,11 +1,18 @@ -import { Abi, ContractFunctionConfig, GetValue } from "viem"; +import { + Abi, + ContractFunctionName, + ContractFunctionParameters, + GetValue, +} from "viem"; import { ChainId } from "./core/index.js"; -export type ContractWrite = ContractFunctionConfig< +type ExpectedMutability = "payable" | "nonpayable"; + +export type ContractWrite = ContractFunctionParameters< Abi, - string, - "payable" | "nonpayable" + ExpectedMutability, + ContractFunctionName > & GetValue & { id: string; diff --git a/packages/widget/src/ContractWriteButton.tsx b/packages/widget/src/ContractWriteButton.tsx index 9917f23c..7820cf14 100644 --- a/packages/widget/src/ContractWriteButton.tsx +++ b/packages/widget/src/ContractWriteButton.tsx @@ -33,25 +33,26 @@ export default function ContractWriteButton({ const isLoading = prepareResult.isLoading || - writeResult.isLoading || + writeResult.isPending || // TODO? transactionResult.isLoading; const expectedChainId = contractWrite.chainId; const { chain } = useAccount(); - const { switchNetwork } = useSwitchChain(); + const { switchChain: switchNetwork } = useSwitchChain(); const { connector } = useAccount(); const needsToSwitchNetwork = expectedChainId !== chain?.id; const onSwitchNetworkButtonClick = useCallback(() => { eventHandlers.onButtonClick({ type: "switch_network" }); - switchNetwork?.(expectedChainId); + switchNetwork?.({ chainId: expectedChainId }); }, [switchNetwork, expectedChainId, eventHandlers.onButtonClick]); const onContractWriteButtonClick = useCallback(() => { eventHandlers.onButtonClick({ type: "invoke_transaction", }); - write?.(); + // write?.(); + write(); // TODO }, [write, eventHandlers.onButtonClick]); const onRetryTransactionButtonClick = useCallback(() => { @@ -101,8 +102,8 @@ export default function ContractWriteButton({ const showForceSendButton = Boolean( isPrepareError && !prepareResult.isLoading && - write && - !writeResult.isLoading, + // write && TODO + !writeResult.isPending, // TODO ); const isWriteButtonDisabled = Boolean( @@ -110,11 +111,11 @@ export default function ContractWriteButton({ ); const writeButtonText = transactionResult.isLoading ? "Waiting for transaction..." - : writeResult.isLoading + : writeResult.isPending // TODO ? "Waiting for wallet..." : "Send transaction"; - const showRetryButton = Boolean(isPrepareError && !writeResult.isLoading); + const showRetryButton = Boolean(isPrepareError && !writeResult.isPending); // TODO return ( diff --git a/packages/widget/src/ContractWriteManager.tsx b/packages/widget/src/ContractWriteManager.tsx index dff21325..a2a5cc55 100644 --- a/packages/widget/src/ContractWriteManager.tsx +++ b/packages/widget/src/ContractWriteManager.tsx @@ -7,8 +7,8 @@ import { import { useAccount, useSimulateContract, - useWriteContract, useWaitForTransactionReceipt, + useWriteContract, } from "wagmi"; import { ContractWrite } from "./ContractWrite.js"; @@ -19,7 +19,10 @@ import { useWidget } from "./WidgetContext.js"; export type ContractWriteResult = { contractWrite: ContractWrite; prepareResult: ReturnType; - writeResult: ReturnType; + writeResult: Omit< + ReturnType, + "write" | "writeAsync" + > & { write: () => void }; transactionResult: ReturnType; currentError: BaseError | null; }; @@ -58,43 +61,52 @@ export function ContractWriteManager({ ...contractWrite, scopeKey: contractWrite.commandId, staleTime: 120_000, + value: undefined, // TODO } : undefined), - onError: console.error, + // onError: console.error, TODO }); + const writeArgs = useMemo( + () => ({ + ...(prepare + ? prepareResult.isError + ? { + mode: "prepared", + request: { + account: accountAddress, + chain: chain, + abi: contractWrite.abi, + address: contractWrite.address, + functionName: contractWrite.functionName, + args: contractWrite.args, + value: contractWrite.value, + gas: 2_500_000n, // Set _some_ kind of a limit more reasonable than the default 28_500_000. + }, + } + : prepareResult.isSuccess + ? prepareResult.data + : {} + : {}), + }), + [prepareResult], + ); + // Always have a write ready. const writeResult = useWriteContract({ - ...(prepare - ? prepareResult.isError - ? { - mode: "prepared", - request: { - account: accountAddress, - chain: chain, - abi: contractWrite.abi, - address: contractWrite.address, - functionName: contractWrite.functionName, - args: contractWrite.args, - value: contractWrite.value, - gas: 2_500_000n, // Set _some_ kind of a limit more reasonable than the default 28_500_000. - }, - } - : prepareResult.isSuccess - ? prepareResult.config - : {} - : {}), - onError: console.error, - onSuccess: ({ hash }: { hash: any }) => - eventHandlers.onTransactionSent?.({ - hash, - functionName: contractWrite.functionName as TxFunctionName, - }), + mutation: { + onError: console.error, + onSuccess: (hash) => + eventHandlers.onTransactionSent?.({ + hash, + functionName: contractWrite.functionName as TxFunctionName, + }), + }, }); const transactionResult = useWaitForTransactionReceipt({ - hash: writeResult.data?.hash, - onError: console.error, + hash: writeResult.data, + // onError: console.error, TODO }); const result: ContractWriteResult = useMemo(() => { @@ -113,7 +125,10 @@ export function ContractWriteManager({ return { contractWrite, prepareResult: prepareResult as ReturnType, - writeResult, + writeResult: { + ...writeResult, + write: () => writeResult.writeContract(writeArgs as any), // TODO + }, transactionResult, currentError: (transactionResult.error || (transactionResult.isSuccess ? null : writeResult.error) || @@ -128,6 +143,7 @@ export function ContractWriteManager({ writeResult.status, transactionResult.status, transactionResult.fetchStatus, + writeArgs, ]); useEffect(() => void onChange?.(result), [result]); diff --git a/packages/widget/src/ContractWriteStatus.tsx b/packages/widget/src/ContractWriteStatus.tsx index aa832a3b..726b2519 100644 --- a/packages/widget/src/ContractWriteStatus.tsx +++ b/packages/widget/src/ContractWriteStatus.tsx @@ -92,12 +92,10 @@ export function ContractWriteStatus({ }, }} secondaryAction={ - writeResult?.data?.hash && + writeResult?.data && chain.blockExplorers?.default && ( ({ + value: wei, + formatted: formatUnits(wei, underlyingToken!.decimals), + }), + }, + }); - const superTokenBalance = - paymentOptionWithTokenInfo && superToken && accountAddress - ? useReadContract({ - address: superToken.address, - chainId: paymentOptionWithTokenInfo.paymentOption.chainId, - abi: erc20Abi, - functionName: "balanceOf", - args: [accountAddress], - }) - : undefined; + const superTokenBalance = useReadContract({ + address: superToken?.address, + chainId: paymentOptionWithTokenInfo?.paymentOption?.chainId, + abi: erc20Abi, + functionName: "balanceOf", + args: [accountAddress!], + query: { + enabled: Boolean( + paymentOptionWithTokenInfo && superToken && accountAddress, + ), + select: (wei) => ({ + value: wei, + formatted: formatEther(wei), + }), + }, + }); const showSkip = useMemo(() => { - if (!paymentOptionWithTokenInfo || !superTokenBalance) return false; + if (!paymentOptionWithTokenInfo || !superTokenBalance?.data) return false; if (!flowRate?.amountEther) return false; @@ -169,7 +181,7 @@ export default function StepContentWrap({ stepIndex }: StepProps) { flowRate, ); - return BigInt(superTokenBalance.value) >= minWrapAmount; + return BigInt(superTokenBalance.data.value) >= minWrapAmount; }, [superTokenBalance, paymentOptionWithTokenInfo, flowRate]); const { handleNext } = useStepper(); @@ -213,7 +225,7 @@ export default function StepContentWrap({ stepIndex }: StepProps) { ({ + value: wei, + formatted: formatEther(wei), + }), + }, }); return ( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f0629584..2056c273 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -400,7 +400,7 @@ importers: dependencies: '@rainbow-me/rainbowkit': specifier: ^1.3.7 - version: 1.3.7(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(wagmi@2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.24.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)) + version: 1.3.7(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(wagmi@2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.24.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)) '@superfluid-finance/widget': specifier: workspace:* version: link:../../packages/widget @@ -415,7 +415,7 @@ importers: version: 2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8) wagmi: specifier: ^2.12.17 - version: 2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.24.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + version: 2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.24.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) zod: specifier: ^3.23.8 version: 3.23.8 @@ -644,6 +644,9 @@ importers: '@wagmi/cli': specifier: ^2.1.16 version: 2.1.16(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10) + '@wagmi/core': + specifier: '2' + version: 2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(immer@10.1.1)(react@18.3.1)(typescript@5.6.2)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) jsdom: specifier: ^22.1.0 version: 22.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -1580,9 +1583,6 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@lit-labs/ssr-dom-shim@1.1.2': - resolution: {integrity: sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g==} - '@lit-labs/ssr-dom-shim@1.2.1': resolution: {integrity: sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==} @@ -2317,9 +2317,6 @@ packages: resolution: {integrity: sha512-/dqU66RvHw50n+7x3nwnJedq8V6iLQyoWitNdjx5cFTBmae+rpP+LvHq+LqZfXJVkB1qNytMdjFjdyES0t79gQ==} engines: {node: '>=16'} - '@scure/base@1.1.7': - resolution: {integrity: sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==} - '@scure/base@1.1.9': resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} @@ -2755,9 +2752,6 @@ packages: '@types/responselike@1.0.3': resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - '@types/secp256k1@4.0.3': - resolution: {integrity: sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==} - '@types/secp256k1@4.0.6': resolution: {integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==} @@ -4313,6 +4307,7 @@ packages: eslint@8.57.1: resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true esniff@2.0.1: @@ -5781,9 +5776,6 @@ packages: engines: {node: '>=10'} hasBin: true - mlly@1.5.0: - resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} - mlly@1.7.1: resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} @@ -6374,9 +6366,6 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} - pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} - pkg-types@1.2.0: resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} @@ -7570,9 +7559,6 @@ packages: ua-parser-js@1.0.37: resolution: {integrity: sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==} - ufo@1.3.2: - resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} - ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} @@ -9423,13 +9409,11 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@lit-labs/ssr-dom-shim@1.1.2': {} - '@lit-labs/ssr-dom-shim@1.2.1': {} '@lit/reactive-element@1.6.3': dependencies: - '@lit-labs/ssr-dom-shim': 1.1.2 + '@lit-labs/ssr-dom-shim': 1.2.1 '@lit/reactive-element@2.0.4': dependencies: @@ -10094,7 +10078,7 @@ snapshots: '@popperjs/core@2.11.8': {} - '@rainbow-me/rainbowkit@1.3.7(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(wagmi@2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.24.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))': + '@rainbow-me/rainbowkit@1.3.7(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(wagmi@2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.24.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))': dependencies: '@vanilla-extract/css': 1.14.0 '@vanilla-extract/dynamic': 2.1.0 @@ -10106,7 +10090,7 @@ snapshots: react-remove-scroll: 2.5.7(@types/react@18.3.11)(react@18.3.1) ua-parser-js: 1.0.37 viem: 2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8) - wagmi: 2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.24.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + wagmi: 2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.24.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) transitivePeerDependencies: - '@types/react' @@ -10429,8 +10413,6 @@ snapshots: '@safe-global/safe-gateway-typescript-sdk@3.14.0': {} - '@scure/base@1.1.7': {} - '@scure/base@1.1.9': {} '@scure/bip32@1.1.5': @@ -10449,7 +10431,7 @@ snapshots: dependencies: '@noble/curves': 1.4.0 '@noble/hashes': 1.4.0 - '@scure/base': 1.1.7 + '@scure/base': 1.1.9 '@scure/bip39@1.1.1': dependencies: @@ -11167,10 +11149,6 @@ snapshots: dependencies: '@types/node': 22.7.4 - '@types/secp256k1@4.0.3': - dependencies: - '@types/node': 22.7.4 - '@types/secp256k1@4.0.6': dependencies: '@types/node': 22.7.4 @@ -11449,6 +11427,43 @@ snapshots: - utf-8-validate - zod + '@wagmi/connectors@5.1.15(@types/react@18.3.11)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.6.2)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.24.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)': + dependencies: + '@coinbase/wallet-sdk': 4.0.4 + '@metamask/sdk': 0.28.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.24.0)(utf-8-validate@5.0.10) + '@safe-global/safe-apps-provider': 0.18.3(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8) + '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8) + '@wagmi/core': 2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(immer@10.1.1)(react@18.3.1)(typescript@5.6.2)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) + '@walletconnect/ethereum-provider': 2.17.0(@types/react@18.3.11)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10) + '@walletconnect/modal': 2.7.0(@types/react@18.3.11)(react@18.3.1) + cbw-sdk: '@coinbase/wallet-sdk@3.9.3' + viem: 2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - react + - react-dom + - react-native + - rollup + - supports-color + - utf-8-validate + - zod + '@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(immer@10.1.1)(react@18.2.0)(typescript@5.3.3)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@5.0.10)(zod@3.23.8))': dependencies: eventemitter3: 5.0.1 @@ -13560,7 +13575,7 @@ snapshots: ethereum-cryptography@0.1.3: dependencies: '@types/pbkdf2': 3.1.0 - '@types/secp256k1': 4.0.3 + '@types/secp256k1': 4.0.6 blakejs: 1.2.1 browserify-aes: 1.2.0 bs58check: 2.1.2 @@ -14923,7 +14938,7 @@ snapshots: lit-element@3.3.3: dependencies: - '@lit-labs/ssr-dom-shim': 1.1.2 + '@lit-labs/ssr-dom-shim': 1.2.1 '@lit/reactive-element': 1.6.3 lit-html: 2.8.0 @@ -15198,13 +15213,6 @@ snapshots: mkdirp@3.0.1: {} - mlly@1.5.0: - dependencies: - acorn: 8.12.1 - pathe: 1.1.2 - pkg-types: 1.0.3 - ufo: 1.3.2 - mlly@1.7.1: dependencies: acorn: 8.12.1 @@ -15845,12 +15853,6 @@ snapshots: pirates@4.0.6: {} - pkg-types@1.0.3: - dependencies: - jsonc-parser: 3.2.1 - mlly: 1.5.0 - pathe: 1.1.2 - pkg-types@1.2.0: dependencies: confbox: 0.1.7 @@ -17127,8 +17129,6 @@ snapshots: ua-parser-js@1.0.37: {} - ufo@1.3.2: {} - ufo@1.5.4: {} uint8arrays@3.1.0: @@ -17404,7 +17404,7 @@ snapshots: dependencies: cac: 6.7.14 debug: 4.3.7 - mlly: 1.5.0 + mlly: 1.7.1 pathe: 1.1.2 picocolors: 1.1.0 vite: 4.5.5(@types/node@22.7.4) @@ -17543,6 +17543,41 @@ snapshots: - utf-8-validate - zod + wagmi@2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.11)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.24.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8): + dependencies: + '@tanstack/react-query': 5.59.0(react@18.3.1) + '@wagmi/connectors': 5.1.15(@types/react@18.3.11)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(react@18.3.1)(typescript@5.6.2)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.24.0)(typescript@5.6.2)(utf-8-validate@5.0.10)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + '@wagmi/core': 2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.11)(immer@10.1.1)(react@18.3.1)(typescript@5.6.2)(viem@2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8)) + react: 18.3.1 + use-sync-external-store: 1.2.0(react@18.3.1) + viem: 2.21.18(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)(zod@3.23.8) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@tanstack/query-core' + - '@types/react' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - immer + - react-dom + - react-native + - rollup + - supports-color + - utf-8-validate + - zod + watchpack@2.4.0: dependencies: glob-to-regexp: 0.4.1 @@ -17772,7 +17807,7 @@ snapshots: webauthn-p256@0.0.5: dependencies: '@noble/curves': 1.4.0 - '@noble/hashes': 1.4.0 + '@noble/hashes': 1.5.0 webextension-polyfill@0.10.0: {}