Copy
Ask AI
import { SunbreakProvider } from "@tdfc/sunbreak-react";
export function PhantomExample() {
const [pubkey, setPubkey] = React.useState<string | undefined>();
const [proof, setProof] = React.useState<any | null>(null);
async function connect() {
const res = await window.solana.connect();
setPubkey(res.publicKey?.toString());
}
async function signMessage() {
const msg = new TextEncoder().encode(`Sign in @ ${window.location.host}`);
const { signature } = await window.solana.signMessage(msg, "utf8");
setProof({
method: "ed25519",
messageBase64: btoa(String.fromCharCode(...msg)),
signatureBase64: btoa(String.fromCharCode(...signature)),
});
}
return (
<SunbreakProvider
base={process.env.NEXT_PUBLIC_SUNBREAK_BASE!}
clientId={process.env.NEXT_PUBLIC_SUNBREAK_CLIENT_ID!}
wallet={pubkey}
proof={proof}
>
<button onClick={connect}>Connect Phantom</button>
<button onClick={signMessage}>Sign</button>
</SunbreakProvider>
);
}