nim-circom-compat/tests/testcircom.nim
2024-01-19 14:31:15 -06:00

33 lines
844 B
Nim

import std/os
import std/unittest
import ../circomcompat
suite "Test circom compat nim":
test "Should generate witness, prove and verify":
let
r1csPath = "vendor/circom-compat-ffi/fixtures/mycircuit.r1cs".cstring
wasmPath = "vendor/circom-compat-ffi/fixtures/mycircuit.wasm".cstring
var ctx: ptr CircomCompatCtx
let res = init_circom_compat(
r1csPath,
wasmPath,
nil,
ctx.addr)
check ctx.push_input_numeric_i8("a".cstring, 3) == ERR_OK
check ctx.push_input_numeric_i8("b".cstring, 11) == ERR_OK
var proofBytes: ptr Buffer
var publicBytes: ptr Buffer
check ctx.prove_circuit(proofBytes.addr, publicBytes.addr) == ERR_OK
check proofBytes.len > 0
check publicBytes.len > 0
check ctx.verify_circuit(proofBytes, publicBytes) == ERR_OK
check res == ERR_OK