import crypto from "crypto";
import {
executeFromSignals,
verifyAttestation,
LocalSigner,
LocalVerifier,
MemoryReplayStore,
} from "@parmanasystems/core";
async function main() {
const { privateKey, publicKey } = crypto.generateKeyPairSync("ed25519", {
privateKeyEncoding: { type: "pkcs8", format: "pem" },
publicKeyEncoding: { type: "spki", format: "pem" },
});
const attestation = await executeFromSignals(
{
policyId: "payment-approval",
policyVersion: "1.0.0",
signals: { amount: 500, verified: true },
},
new LocalSigner(privateKey),
new LocalVerifier(publicKey),
undefined, // use default runtime paths (policies/ at project root)
new MemoryReplayStore()
);
console.log(attestation.decision);
// { action: "approve", requires_override: false, reason: "Amount within standard limit." }
const result = verifyAttestation(attestation, new LocalVerifier(publicKey));
console.log(result.valid); // true
}
main().catch(console.error);