From the get go, all wagmi hooks are compatible with cometh connect. Please check for me info
npm i @cometh/connect-sdk-viem wagmi viem
"use client";
import { createConfig, http, WagmiProvider } from "wagmi";
import { polygon } from "viem/chains";
import { QueryClientProvider, QueryClient } from "@tanstack/react-query";
const wagmiConfig = createConfig({
chains: [polygon],
transports: {
[polygon.id]: http(),
},
});
const queryClient = new QueryClient();
function MyApp({ Component, pageProps }) {
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="en">
<body className={inter.className}>
<WagmiProvider config={wagmiConfig}>
<QueryClientProvider client={queryClient}>
{children}
</QueryClientProvider>
</WagmiProvider>
</body>
</html>
);
}
"use client";
import { useAccount, useConnect } from "wagmi";
import { comethConnectConnector } from "@cometh/connect-sdk-viem"
function ConnectWallet(): JSX.Element {
const { isConnected } = useAccount()
const { connect, error, isLoading } = useConnect()
const connector = comethConnectConnector({
apiKey: API_KEY,
});
return (
<>
<button onClick={() => connect({connector})}>
{!isConnected && "connect"}
{isLoading && "(connecting)"}
</button>
{error && <div>{error.message}</div>}
</>
)
}
"use client";
import {
useAccount,
useReadContract,
useWriteContract,
} from "wagmi";
import countContractAbi from "./app/contract/counterABI.json";
const COUNTER_CONTRACT_ADDRESS = "0x84ADD3fa2c2463C8cF2C95aD70e4b5F602332160";
export function Transaction() {
const { address } = useAccount();
const { data: balance } = useReadContract({
address: COUNTER_CONTRACT_ADDRESS,
abi: countContractAbi,
functionName: "counters",
args: [address],
});
const {
data: txResult,
isSuccess,
isError,
isPending,
writeContract,
} = useWriteContract();
writeContract({
address: COUNTER_CONTRACT_ADDRESS,
abi: countContractAbi,
functionName: "count"
});
"use client";
import {
useAccount,
useWalletClient,
} from "wagmi";
export function Transaction() {
const { address, connector } = useAccount();
const { data: signature, signMessageAsync } = useSignMessage();
const testDummySignature = async () => {
return signMessageAsync({ message: "hello world" });
};
const verifySignature = async () => {
const client = await connector?.getClient();
const isValidSignature = await connector!.verifyMessage({
message: "toto",
signature,
});
console.log(isValidSignature',isValidSignature)
}
}