From 4f9b09afa84b62b10c7c866b585876708f45a9d4 Mon Sep 17 00:00:00 2001 From: Dmitriy Ryajov Date: Thu, 25 Jan 2024 13:08:26 -0600 Subject: [PATCH] rework ffi --- circomcompatffi.nim | 26 +++++++++++++++++++++----- vendor/circom-compat-ffi | 2 +- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/circomcompatffi.nim b/circomcompatffi.nim index b48bbd3..770401f 100644 --- a/circomcompatffi.nim +++ b/circomcompatffi.nim @@ -37,6 +37,23 @@ type Buffer* = object data*: pointer len*: uint +type G1* = object + x*: array[byte, 32] + y*: array[byte, 32] + +type G2* = object + x*: array[array[byte, 32], 2] + y*: array[array[byte, 32], 2] + +type Proof* = object + a*: G1 + b*: G2 + c*: G1 + +type Inputs* = object + elms*: ptr array[byte, 32] + len*: uint + ## # Safety # proc init_circom_compat*(r1cs_path: pointer, @@ -51,16 +68,15 @@ proc release_buffer*(buff_ptr: ptr ptr Buffer): void {.importc: "release_buffer" ## # Safety # proc prove_circuit*(ctx_ptr: ptr CircomCompatCtx, - compress: bool, - proof_bytes_ptr: ptr ptr Buffer, - inputs_bytes_ptr: ptr ptr Buffer): int32 {.importc: "prove_circuit".} + proof_ptr: ptr ptr Proof, + inputs_ptr: ptr ptr Inputs): int32 {.importc: "prove_circuit".} ## # Safety # proc verify_circuit*(ctx_ptr: ptr CircomCompatCtx, compress: bool, - proof_bytes_ptr: ptr Buffer, - inputs_bytes_ptr: ptr Buffer): int32 {.importc: "verify_circuit".} + proof: ptr Proof, + inputs: ptr Inputs): int32 {.importc: "verify_circuit".} ## # Safety # diff --git a/vendor/circom-compat-ffi b/vendor/circom-compat-ffi index aed402f..d6bb7a6 160000 --- a/vendor/circom-compat-ffi +++ b/vendor/circom-compat-ffi @@ -1 +1 @@ -Subproject commit aed402f6ee8a2dc225ec2db2eb36d1888aab7790 +Subproject commit d6bb7a6b309072b98ebc42fe8f07170477541f53