arnaucube
arnaucube/circomPublic Self-hosted repository
circom/wasm/wasmmodule.c
wasm/wasmmodule.cRaw
 1/*
 2
 3(module
 4 (export "get_signal_ptr" (func $get_signal_ptr))
 5 (export "solve" (func $solve))
 6 (func $get_signal_ptr (result i32)
 7  (i32.const 22)
 8 )
 9 (func $solve (result i32)
10  (i32.const 22)
11 )
12)
13
14 */
15
16
17typedef int u32;
18typedef u32 u256[8];
19
20struct Signals {
21    u256 one;
22    u256 output1;
23    u256 output2;
24    u256 pubInput1;
25    u256 pubInput2;
26    u256 prvInput1;
27    u256 prvInput2;
28    u256 internal1;
29    u256 internal2;
30};
31
32static Signals signals;
33
34#ifdef __cplusplus
35extern "C" {
36#endif
37
38u256 *get_signal_ptr() {
39    return (u256 *)&signals;
40}
41
42int solve() {
43    for (int i=0; i<8; i++) {
44      signals.internal1[i]  = signals.pubInput1[i];
45      signals.internal2[i]  = signals.pubInput2[i];
46      signals.output1[i]    = signals.prvInput1[i];
47      signals.output2[i]    = signals.prvInput2[i];
48    }
49}
50
51#ifdef __cplusplus
52} // extern "C"
53#endif