diff --git a/apps/laboratory/src/components/Wagmi/WagmiSendCallsTest.tsx b/apps/laboratory/src/components/Wagmi/WagmiSendCallsTest.tsx index fcf745fb7e..1bd9ba1cf6 100644 --- a/apps/laboratory/src/components/Wagmi/WagmiSendCallsTest.tsx +++ b/apps/laboratory/src/components/Wagmi/WagmiSendCallsTest.tsx @@ -29,11 +29,9 @@ export function WagmiSendCallsTest() { const [availableCapabilities, setAvailableCapabilities] = useState< Record | undefined >() - const [isLoading, setLoading] = useState(false) - const { status, chain, address, connector } = useAccount() + const { isConnected, chain, address, connector } = useAccount() const toast = useChakraToast() - const isConnected = status === 'connected' const atomicBatchSupportedChains = availableCapabilities ? getFilteredCapabilitySupportedChainInfo( WALLET_CAPABILITIES.ATOMIC_BATCH, @@ -52,10 +50,9 @@ export function WagmiSendCallsTest() { fetchProviderAndAccountCapabilities(address, connector, chain) } }, [isConnected, connector, address]) - const { sendCalls } = useSendCalls({ + const { sendCalls, isPending } = useSendCalls({ mutation: { onSuccess: hash => { - setLoading(false) toast({ title: 'SendCalls Success', description: hash, @@ -63,7 +60,6 @@ export function WagmiSendCallsTest() { }) }, onError: () => { - setLoading(false) toast({ title: 'SendCalls Error', description: 'Failed to send calls', @@ -73,7 +69,6 @@ export function WagmiSendCallsTest() { } }) const onSendCalls = useCallback(() => { - setLoading(true) sendCalls({ calls: [TEST_TX_1, TEST_TX_2] }) @@ -131,7 +126,8 @@ export function WagmiSendCallsTest() { data-test-id="send-calls-button" onClick={onSendCalls} disabled={!sendCalls} - isDisabled={isLoading} + isDisabled={!isConnected || isPending} + isLoading={isPending} > Send Batch Calls to Vitalik diff --git a/apps/laboratory/src/components/Wagmi/WagmiSendCallsWithPaymasterServiceTest.tsx b/apps/laboratory/src/components/Wagmi/WagmiSendCallsWithPaymasterServiceTest.tsx index a6a4e2bec4..1ba2d192db 100644 --- a/apps/laboratory/src/components/Wagmi/WagmiSendCallsWithPaymasterServiceTest.tsx +++ b/apps/laboratory/src/components/Wagmi/WagmiSendCallsWithPaymasterServiceTest.tsx @@ -30,11 +30,9 @@ export function WagmiSendCallsWithPaymasterServiceTest() { Record | undefined >() const [paymasterServiceUrl, setPaymasterServiceUrl] = useState('') - const [isLoading, setLoading] = useState(false) - const { status, chain, address, connector } = useAccount() + const { isConnected, chain, address, connector } = useAccount() const toast = useChakraToast() - const isConnected = status === 'connected' const paymasterServiceSupportedChains = availableCapabilities ? getFilteredCapabilitySupportedChainInfo( WALLET_CAPABILITIES.PAYMASTER_SERVICE, @@ -53,10 +51,9 @@ export function WagmiSendCallsWithPaymasterServiceTest() { fetchProviderAndAccountCapabilities(address, connector, chain) } }, [isConnected, connector, address]) - const { sendCalls } = useSendCalls({ + const { sendCalls, isPending } = useSendCalls({ mutation: { onSuccess: hash => { - setLoading(false) toast({ title: 'SendCalls Success', description: hash, @@ -64,7 +61,6 @@ export function WagmiSendCallsWithPaymasterServiceTest() { }) }, onError: () => { - setLoading(false) toast({ title: 'SendCalls Error', description: 'Failed to send calls', @@ -75,7 +71,6 @@ export function WagmiSendCallsWithPaymasterServiceTest() { }) const onSendCalls = useCallback(() => { - setLoading(true) if (!paymasterServiceUrl) { throw Error('paymasterServiceUrl not set') } @@ -142,7 +137,7 @@ export function WagmiSendCallsWithPaymasterServiceTest() { placeholder="http://api.pimlico.io/v2/sepolia/rpc?apikey=..." onChange={e => setPaymasterServiceUrl(e.target.value)} value={paymasterServiceUrl} - isDisabled={isLoading} + isDisabled={isPending} whiteSpace="nowrap" textOverflow="ellipsis" /> @@ -152,7 +147,8 @@ export function WagmiSendCallsWithPaymasterServiceTest() { data-test-id="send-calls-paymaster-service-button" onClick={onSendCalls} disabled={!sendCalls} - isDisabled={isLoading || !paymasterServiceUrl} + isDisabled={!isConnected || isPending || !paymasterServiceUrl} + isLoading={isPending} > SendCalls w/ Paymaster Service diff --git a/apps/laboratory/src/components/Wagmi/WagmiSendUSDCTest.tsx b/apps/laboratory/src/components/Wagmi/WagmiSendUSDCTest.tsx index 66eec7b8f2..7592ef13e9 100644 --- a/apps/laboratory/src/components/Wagmi/WagmiSendUSDCTest.tsx +++ b/apps/laboratory/src/components/Wagmi/WagmiSendUSDCTest.tsx @@ -32,16 +32,14 @@ const minTokenAbi = [ ] export function WagmiSendUSDCTest() { - const [isLoading, setLoading] = useState(false) const [address, setAddress] = useState('') const [amount, setAmount] = useState('') - const { status, chain } = useAccount() + const { isConnected, chain } = useAccount() const toast = useChakraToast() - const { writeContract } = useWriteContract({ + const { writeContract, isPending } = useWriteContract({ mutation: { onSuccess: hash => { - setLoading(false) toast({ title: 'Transaction Success', description: hash, @@ -49,7 +47,6 @@ export function WagmiSendUSDCTest() { }) }, onError: () => { - setLoading(false) toast({ title: 'Error', description: 'Failed to send transaction', @@ -60,7 +57,6 @@ export function WagmiSendUSDCTest() { }) const onSendTransaction = useCallback(() => { - setLoading(true) writeContract({ abi: minTokenAbi, functionName: 'transfer', @@ -71,7 +67,7 @@ export function WagmiSendUSDCTest() { const allowedChains = [sepolia.id, optimism.id] as number[] - return allowedChains.includes(Number(chain?.id)) && status === 'connected' ? ( + return allowedChains.includes(Number(chain?.id)) && isConnected ? ( setAddress(e.target.value)} value={address} /> @@ -85,13 +81,14 @@ export function WagmiSendUSDCTest() { data-test-id="sign-transaction-button" onClick={onSendTransaction} disabled={!writeContract} - isDisabled={isLoading} + isDisabled={!isConnected || isPending} + isLoading={isPending} width="80%" > Send USDC - diff --git a/apps/laboratory/src/components/Wagmi/WagmiSignMessageTest.tsx b/apps/laboratory/src/components/Wagmi/WagmiSignMessageTest.tsx index 509a98dee1..1f33ae7963 100644 --- a/apps/laboratory/src/components/Wagmi/WagmiSignMessageTest.tsx +++ b/apps/laboratory/src/components/Wagmi/WagmiSignMessageTest.tsx @@ -7,9 +7,8 @@ import { useChakraToast } from '../Toast' export function WagmiSignMessageTest() { const toast = useChakraToast() - const { signMessageAsync, status: signStatus } = useSignMessage() - const { status } = useAccount() - const isConnected = status === 'connected' + const { signMessageAsync, isPending } = useSignMessage() + const { isConnected } = useAccount() const [signature, setSignature] = React.useState() async function onSignMessage() { @@ -35,8 +34,8 @@ export function WagmiSignMessageTest() { diff --git a/apps/laboratory/src/components/Wagmi/WagmiSignTypedDataTest.tsx b/apps/laboratory/src/components/Wagmi/WagmiSignTypedDataTest.tsx index 00aa4a3b30..9b51997a8e 100644 --- a/apps/laboratory/src/components/Wagmi/WagmiSignTypedDataTest.tsx +++ b/apps/laboratory/src/components/Wagmi/WagmiSignTypedDataTest.tsx @@ -29,16 +29,15 @@ const message = { export function WagmiSignTypedDataTest() { const toast = useChakraToast() - const { chain, status } = useAccount() + const { chain, isConnected } = useAccount() const domain = { name: 'Ether Mail', version: '1', chainId: chain?.id, verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC' } as const - const isConnected = status === 'connected' - const { signTypedDataAsync } = useSignTypedData() + const { signTypedDataAsync, isPending } = useSignTypedData() async function onSignTypedData() { try { @@ -66,7 +65,8 @@ export function WagmiSignTypedDataTest() { diff --git a/apps/laboratory/src/components/Wagmi/WagmiTransactionTest.tsx b/apps/laboratory/src/components/Wagmi/WagmiTransactionTest.tsx index 627661cb43..9c26abce6e 100644 --- a/apps/laboratory/src/components/Wagmi/WagmiTransactionTest.tsx +++ b/apps/laboratory/src/components/Wagmi/WagmiTransactionTest.tsx @@ -2,7 +2,7 @@ import { Button, Stack, Link, Text, Spacer } from '@chakra-ui/react' import { parseGwei, type Address } from 'viem' import { useEstimateGas, useSendTransaction, useAccount } from 'wagmi' import { vitalikEthAddress } from '../../utils/DataUtil' -import { useCallback, useState } from 'react' +import { useCallback } from 'react' import { optimism, optimismSepolia, sepolia } from 'wagmi/chains' import { useChakraToast } from '../Toast' @@ -13,15 +13,12 @@ const TEST_TX = { export function WagmiTransactionTest() { const toast = useChakraToast() - const { status, chain } = useAccount() + const { isConnected, chain } = useAccount() const { data: gas, error: prepareError } = useEstimateGas(TEST_TX) - const [isLoading, setLoading] = useState(false) - const isConnected = status === 'connected' - const { sendTransaction } = useSendTransaction({ + const { sendTransaction, isPending } = useSendTransaction({ mutation: { onSuccess: hash => { - setLoading(false) toast({ title: 'Transaction Success', description: hash, @@ -29,7 +26,6 @@ export function WagmiTransactionTest() { }) }, onError: () => { - setLoading(false) toast({ title: 'Error', description: 'Failed to sign transaction', @@ -47,7 +43,6 @@ export function WagmiTransactionTest() { type: 'error' }) } else { - setLoading(true) sendTransaction({ ...TEST_TX, gas @@ -57,13 +52,14 @@ export function WagmiTransactionTest() { const allowedChains = [sepolia.id, optimism.id, optimismSepolia.id] as number[] - return allowedChains.includes(Number(chain?.id)) && status === 'connected' ? ( + return allowedChains.includes(Number(chain?.id)) && isConnected ? ( @@ -71,13 +67,13 @@ export function WagmiTransactionTest() { - -