// The README's Node example, run from an app that installed the tarball // (npm install ): the package found by its name, its WebAssembly by the // subpath it exports, a job run and its receipt verified. // // cd APP && node install.mjs import init, { QuantumEngine, engine_verify } from '@transaction-science/wai-quantum'; import { readFile } from 'node:fs/promises'; import { createRequire } from 'node:module'; import { randomBytes } from 'node:crypto'; import assert from 'node:assert/strict'; const wasm = createRequire(import.meta.url).resolve('@transaction-science/wai-quantum/wai_quantum_bg.wasm'); await init({ module_or_path: await readFile(wasm) }); const engine = new QuantumEngine(randomBytes(32), 256); const job = JSON.parse(engine.run(JSON.stringify({ qasm: 'OPENQASM 3.0; qubit[1] q; bit[1] c; h q[0]; c = measure q;', shots: 100 }))); const v = JSON.parse(engine_verify(JSON.stringify(job))); assert.equal(v.valid, true, JSON.stringify(v)); assert.equal(v.signer, engine.signer_did()); assert.equal(Object.values(job.result.counts).reduce((a, b) => a + b, 0), 100, JSON.stringify(job.result.counts)); console.log('installed by name: a job run and its receipt verified', JSON.stringify(job.result.counts));