import { CopyIcon } from "lucide-react"; import React from "react"; import { toast } from "sonner"; import AppHeader from "src/components/AppHeader"; import { Button } from "src/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "src/components/ui/card"; import { LoadingButton } from "src/components/ui/custom/loading-button"; import { Input } from "src/components/ui/input"; import { Label } from "src/components/ui/label"; import { copyToClipboard } from "src/lib/clipboard"; import { SignMessageResponse } from "src/types"; import { request } from "src/utils/request"; export default function SignMessage() { const [isLoading, setLoading] = React.useState(false); const [message, setMessage] = React.useState(""); const [signature, setSignature] = React.useState(""); const [signatureMessage, setSignatureMessage] = React.useState(""); const handleSubmit = async (event: React.FormEvent) => { event.preventDefault(); try { setLoading(true); const signMessageResponse = await request( "/api/wallet/sign-message", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ message: message.trim() }), } ); setSignatureMessage(message); setMessage(""); if (signMessageResponse) { setSignature(signMessageResponse.signature); toast("Successfully signed message"); } } catch (e) { toast.error("Failed to sign message", { description: "" + e, }); console.error(e); } finally { setLoading(false); } }; return (
{ setMessage(e.target.value); setSignature(""); }} />
Sign
{signature && ( Signed Message {signatureMessage}
)}
); }