useVerifyMessage

Description

This hook provides functionality to verify a signature for a given message.

Returns

  • data (boolean): The signature generated.

  • error (Error | null): An error object if the transaction failed, otherwise null.

  • isPending (boolean): A boolean indicating whether the transaction is currently pending.

  • isSuccess (boolean): A boolean indicating whether the transaction was successfully sent.

  • isError (boolean): A boolean indicating whether an error occurred during the transaction process.

  • verifyMessage : A function that verify if the signature corresponds to the given message.

  • verifyMessageAsync : A function that verify if the signature and returns a promise that resolves to the verification result.

Example

import { useVerifyMessage } from "@cometh/connect-react-hooks";
import { useState } from "react";
import type { Hex } from "viem";

function MessageVerifier() {
  const [message, setMessage] = useState("");
  const [signature, setSignature] = useState<Hex>("");
  const { verifyMessageAsync, isPending, isError, error, data } = useVerifyMessage();

  const handleVerify = async () => {
    try {
      const isValid = await verifyMessageAsync({ message, signature });
      console.log("Signature is valid:", isValid);
    } catch (err) {
      console.error("Error verifying message:", err);
    }
  };

  return (
    <div>
      <input
        placeholder="Enter message"
        value={message}
        onChange={(e) => setMessage(e.target.value)}
      />
      <input
        placeholder="Enter signature (hex)"
        value={signature}
        onChange={(e) => setSignature(e.target.value as Hex)}
      />
      <button onClick={handleVerify} disabled={isPending}>
        Verify Signature
      </button>
      {isPending && <p>Verifying signature...</p>}
      {isError && <p>Error: {error as string}</p>}
      {data !== undefined && <p>Signature is {data ? "valid" : "invalid"}</p>}
    </div>
  );
}

export default MessageVerifier;

Last updated