import verifyDataSignature from "@cardano-foundation/cardano-verify-datasignature"; import { ProofStatus, SignatureProof } from "@notabene/javascript-sdk"; export async function verifyCIP8Signature( proof: SignatureProof ): Promise { const [ns, , address] = proof.address.split(/:/); const key = proof.chainSpecificData && "cardanoCoseKey" in proof.chainSpecificData ? proof.chainSpecificData.cardanoCoseKey : null; if (ns !== "cardano" || !key) { return { ...proof, status: ProofStatus.FAILED }; } try { const verified = verifyDataSignature( proof.proof, key, proof.attestation, address ); return { ...proof, status: verified ? ProofStatus.VERIFIED : ProofStatus.FAILED, }; } catch { return { ...proof, status: ProofStatus.FAILED }; } }