import { ProofStatus, SignatureProof } from "@notabene/javascript-sdk"; import { Keypair } from "@stellar/stellar-sdk"; export function verifyStellarSignature( proof: SignatureProof, ): SignatureProof { const [ns, , address] = proof.address.split(/:/); if (ns !== "stellar") return { ...proof, status: ProofStatus.FAILED }; try { const keypair = Keypair.fromPublicKey(address); const messageBuffer = Buffer.from(proof.attestation, "utf-8"); const signatureBuffer = Buffer.from(proof.proof, "base64"); const verified = keypair.verify(messageBuffer, signatureBuffer); return { ...proof, status: verified ? ProofStatus.VERIFIED : ProofStatus.FAILED, }; } catch { return { ...proof, status: ProofStatus.FAILED }; } }