Hook for retrieving a Solana signer for a Para wallet
useSolanaSigner
hook provides a Solana signer for a Para wallet.
import { useSolanaSigner } from "@getpara/react-sdk";
import { createSolanaRpc } from "@solana/kit";
const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");
function SolanaSigner() {
const { solanaSigner, isLoading } = useSolanaSigner({ rpc });
const handleSign = async () => {
if (!solanaSigner) {
return;
}
// Convert message to bytes
const messageBytes = new Uint8Array(
getUtf8Encoder().encode("Test Message")
);
// Sign the message
const signatureResult = await solanaSigner.signMessages([
{ content: messageBytes, signatures: {} },
]);
// Get the signature
const signatureBytes = signatureResult[0][solanaSigner.address];
const signatureBase58 = bs58.encode(signatureBytes);
console.log("Signature:", signatureBase58);
};
if (isLoading) return <div>Loading Solana signer...</div>;
return (
<div>
<p>Address: {solanaSigner?.address}</p>
<button onClick={handleSign}>Sign Message</button>
</div>
);
}
UseSolanaSignerReturn
object with the following properties: