@aztec/bb.js 1.2.0 → 2.0.0-nightly.20250813
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/browser/barretenberg/backend.d.ts.map +1 -1
- package/dest/browser/barretenberg/backend.js +56 -45
- package/dest/browser/barretenberg/index.d.ts +10 -0
- package/dest/browser/barretenberg/index.d.ts.map +1 -1
- package/dest/browser/barretenberg/index.js +30 -2
- package/dest/browser/barretenberg/verifier.js +2 -2
- package/dest/browser/barretenberg_api/index.d.ts +2 -2
- package/dest/browser/barretenberg_api/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_api/index.js +5 -5
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +5 -4
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +2 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +17 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
- package/dest/browser/cbind/generate.d.ts +5 -0
- package/dest/browser/cbind/generate.d.ts.map +1 -0
- package/dest/browser/cbind/generate.js +64 -0
- package/dest/browser/cbind/generated/api_types.d.ts +801 -0
- package/dest/browser/cbind/generated/api_types.d.ts.map +1 -0
- package/dest/browser/cbind/generated/api_types.js +1099 -0
- package/dest/browser/cbind/generated/async.d.ts +27 -0
- package/dest/browser/cbind/generated/async.d.ts.map +1 -0
- package/dest/browser/cbind/generated/async.js +184 -0
- package/dest/browser/cbind/generated/native.d.ts +35 -0
- package/dest/browser/cbind/generated/native.d.ts.map +1 -0
- package/dest/browser/cbind/generated/native.js +270 -0
- package/dest/browser/cbind/generated/sync.d.ts +27 -0
- package/dest/browser/cbind/generated/sync.d.ts.map +1 -0
- package/dest/browser/cbind/generated/sync.js +165 -0
- package/dest/browser/cbind/schema_compiler.d.ts +70 -0
- package/dest/browser/cbind/schema_compiler.d.ts.map +1 -0
- package/dest/browser/cbind/schema_compiler.js +683 -0
- package/dest/node/barretenberg/backend.d.ts.map +1 -1
- package/dest/node/barretenberg/backend.js +56 -45
- package/dest/node/barretenberg/index.d.ts +10 -0
- package/dest/node/barretenberg/index.d.ts.map +1 -1
- package/dest/node/barretenberg/index.js +30 -2
- package/dest/node/barretenberg/verifier.js +2 -2
- package/dest/node/barretenberg_api/index.d.ts +2 -2
- package/dest/node/barretenberg_api/index.d.ts.map +1 -1
- package/dest/node/barretenberg_api/index.js +5 -5
- package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +5 -4
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +2 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +17 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/node/cbind/generate.d.ts +5 -0
- package/dest/node/cbind/generate.d.ts.map +1 -0
- package/dest/node/cbind/generate.js +64 -0
- package/dest/node/cbind/generated/api_types.d.ts +801 -0
- package/dest/node/cbind/generated/api_types.d.ts.map +1 -0
- package/dest/node/cbind/generated/api_types.js +1099 -0
- package/dest/node/cbind/generated/async.d.ts +27 -0
- package/dest/node/cbind/generated/async.d.ts.map +1 -0
- package/dest/node/cbind/generated/async.js +184 -0
- package/dest/node/cbind/generated/native.d.ts +35 -0
- package/dest/node/cbind/generated/native.d.ts.map +1 -0
- package/dest/node/cbind/generated/native.js +270 -0
- package/dest/node/cbind/generated/sync.d.ts +27 -0
- package/dest/node/cbind/generated/sync.d.ts.map +1 -0
- package/dest/node/cbind/generated/sync.js +165 -0
- package/dest/node/cbind/schema_compiler.d.ts +70 -0
- package/dest/node/cbind/schema_compiler.d.ts.map +1 -0
- package/dest/node/cbind/schema_compiler.js +683 -0
- package/dest/node/main.js +3 -3
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/backend.js +58 -47
- package/dest/node-cjs/barretenberg/index.d.ts +10 -0
- package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/index.js +30 -2
- package/dest/node-cjs/barretenberg/verifier.js +2 -2
- package/dest/node-cjs/barretenberg_api/index.d.ts +2 -2
- package/dest/node-cjs/barretenberg_api/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_api/index.js +5 -5
- package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +5 -4
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +17 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generate.d.ts +5 -0
- package/dest/node-cjs/cbind/generate.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generate.js +66 -0
- package/dest/node-cjs/cbind/generated/api_types.d.ts +801 -0
- package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/api_types.js +1189 -0
- package/dest/node-cjs/cbind/generated/async.d.ts +27 -0
- package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/async.js +188 -0
- package/dest/node-cjs/cbind/generated/native.d.ts +35 -0
- package/dest/node-cjs/cbind/generated/native.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/native.js +274 -0
- package/dest/node-cjs/cbind/generated/sync.d.ts +27 -0
- package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/sync.js +169 -0
- package/dest/node-cjs/cbind/schema_compiler.d.ts +70 -0
- package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -0
- package/dest/node-cjs/cbind/schema_compiler.js +691 -0
- package/dest/node-cjs/main.js +3 -3
- package/package.json +4 -3
- package/src/barretenberg/backend.ts +62 -63
- package/src/barretenberg/index.ts +39 -1
- package/src/barretenberg/verifier.ts +1 -1
- package/src/barretenberg_api/index.ts +4 -4
- package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +5 -3
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +23 -0
- package/src/cbind/README.md +1 -0
- package/src/cbind/generate.ts +89 -0
- package/src/cbind/schema_compiler.ts +832 -0
- package/src/main.ts +2 -2
|
@@ -0,0 +1,1189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// AUTOGENERATED FILE - DO NOT EDIT
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.toCircuitBenchmark = toCircuitBenchmark;
|
|
5
|
+
exports.fromCircuitBenchmark = fromCircuitBenchmark;
|
|
6
|
+
exports.toCircuitBenchmarkResponse = toCircuitBenchmarkResponse;
|
|
7
|
+
exports.fromCircuitBenchmarkResponse = fromCircuitBenchmarkResponse;
|
|
8
|
+
exports.toCircuitCheck = toCircuitCheck;
|
|
9
|
+
exports.fromCircuitCheck = fromCircuitCheck;
|
|
10
|
+
exports.toCircuitCheckResponse = toCircuitCheckResponse;
|
|
11
|
+
exports.fromCircuitCheckResponse = fromCircuitCheckResponse;
|
|
12
|
+
exports.toCircuitComputeVk = toCircuitComputeVk;
|
|
13
|
+
exports.fromCircuitComputeVk = fromCircuitComputeVk;
|
|
14
|
+
exports.toCircuitComputeVkResponse = toCircuitComputeVkResponse;
|
|
15
|
+
exports.fromCircuitComputeVkResponse = fromCircuitComputeVkResponse;
|
|
16
|
+
exports.toCircuitInfo = toCircuitInfo;
|
|
17
|
+
exports.fromCircuitInfo = fromCircuitInfo;
|
|
18
|
+
exports.toCircuitInfoResponse = toCircuitInfoResponse;
|
|
19
|
+
exports.fromCircuitInfoResponse = fromCircuitInfoResponse;
|
|
20
|
+
exports.toCircuitInput = toCircuitInput;
|
|
21
|
+
exports.fromCircuitInput = fromCircuitInput;
|
|
22
|
+
exports.toCircuitInputNoVK = toCircuitInputNoVK;
|
|
23
|
+
exports.fromCircuitInputNoVK = fromCircuitInputNoVK;
|
|
24
|
+
exports.toCircuitProve = toCircuitProve;
|
|
25
|
+
exports.fromCircuitProve = fromCircuitProve;
|
|
26
|
+
exports.toCircuitProveAndVerify = toCircuitProveAndVerify;
|
|
27
|
+
exports.fromCircuitProveAndVerify = fromCircuitProveAndVerify;
|
|
28
|
+
exports.toCircuitProveAndVerifyResponse = toCircuitProveAndVerifyResponse;
|
|
29
|
+
exports.fromCircuitProveAndVerifyResponse = fromCircuitProveAndVerifyResponse;
|
|
30
|
+
exports.toCircuitProveResponse = toCircuitProveResponse;
|
|
31
|
+
exports.fromCircuitProveResponse = fromCircuitProveResponse;
|
|
32
|
+
exports.toCircuitVerify = toCircuitVerify;
|
|
33
|
+
exports.fromCircuitVerify = fromCircuitVerify;
|
|
34
|
+
exports.toCircuitVerifyResponse = toCircuitVerifyResponse;
|
|
35
|
+
exports.fromCircuitVerifyResponse = fromCircuitVerifyResponse;
|
|
36
|
+
exports.toCircuitWriteSolidityVerifier = toCircuitWriteSolidityVerifier;
|
|
37
|
+
exports.fromCircuitWriteSolidityVerifier = fromCircuitWriteSolidityVerifier;
|
|
38
|
+
exports.toCircuitWriteSolidityVerifierResponse = toCircuitWriteSolidityVerifierResponse;
|
|
39
|
+
exports.fromCircuitWriteSolidityVerifierResponse = fromCircuitWriteSolidityVerifierResponse;
|
|
40
|
+
exports.toClientIvcAccumulate = toClientIvcAccumulate;
|
|
41
|
+
exports.fromClientIvcAccumulate = fromClientIvcAccumulate;
|
|
42
|
+
exports.toClientIvcAccumulateResponse = toClientIvcAccumulateResponse;
|
|
43
|
+
exports.fromClientIvcAccumulateResponse = fromClientIvcAccumulateResponse;
|
|
44
|
+
exports.toClientIvcCheckPrecomputedVk = toClientIvcCheckPrecomputedVk;
|
|
45
|
+
exports.fromClientIvcCheckPrecomputedVk = fromClientIvcCheckPrecomputedVk;
|
|
46
|
+
exports.toClientIvcCheckPrecomputedVkResponse = toClientIvcCheckPrecomputedVkResponse;
|
|
47
|
+
exports.fromClientIvcCheckPrecomputedVkResponse = fromClientIvcCheckPrecomputedVkResponse;
|
|
48
|
+
exports.toClientIvcComputeIvcVk = toClientIvcComputeIvcVk;
|
|
49
|
+
exports.fromClientIvcComputeIvcVk = fromClientIvcComputeIvcVk;
|
|
50
|
+
exports.toClientIvcComputeIvcVkResponse = toClientIvcComputeIvcVkResponse;
|
|
51
|
+
exports.fromClientIvcComputeIvcVkResponse = fromClientIvcComputeIvcVkResponse;
|
|
52
|
+
exports.toClientIvcComputeStandaloneVk = toClientIvcComputeStandaloneVk;
|
|
53
|
+
exports.fromClientIvcComputeStandaloneVk = fromClientIvcComputeStandaloneVk;
|
|
54
|
+
exports.toClientIvcComputeStandaloneVkResponse = toClientIvcComputeStandaloneVkResponse;
|
|
55
|
+
exports.fromClientIvcComputeStandaloneVkResponse = fromClientIvcComputeStandaloneVkResponse;
|
|
56
|
+
exports.toClientIvcGates = toClientIvcGates;
|
|
57
|
+
exports.fromClientIvcGates = fromClientIvcGates;
|
|
58
|
+
exports.toClientIvcGatesResponse = toClientIvcGatesResponse;
|
|
59
|
+
exports.fromClientIvcGatesResponse = fromClientIvcGatesResponse;
|
|
60
|
+
exports.toClientIvcLoad = toClientIvcLoad;
|
|
61
|
+
exports.fromClientIvcLoad = fromClientIvcLoad;
|
|
62
|
+
exports.toClientIvcLoadResponse = toClientIvcLoadResponse;
|
|
63
|
+
exports.fromClientIvcLoadResponse = fromClientIvcLoadResponse;
|
|
64
|
+
exports.toClientIVCProof = toClientIVCProof;
|
|
65
|
+
exports.fromClientIVCProof = fromClientIVCProof;
|
|
66
|
+
exports.toClientIvcProve = toClientIvcProve;
|
|
67
|
+
exports.fromClientIvcProve = fromClientIvcProve;
|
|
68
|
+
exports.toClientIvcProveResponse = toClientIvcProveResponse;
|
|
69
|
+
exports.fromClientIvcProveResponse = fromClientIvcProveResponse;
|
|
70
|
+
exports.toClientIvcStart = toClientIvcStart;
|
|
71
|
+
exports.fromClientIvcStart = fromClientIvcStart;
|
|
72
|
+
exports.toClientIvcStartResponse = toClientIvcStartResponse;
|
|
73
|
+
exports.fromClientIvcStartResponse = fromClientIvcStartResponse;
|
|
74
|
+
exports.toClientIvcVerify = toClientIvcVerify;
|
|
75
|
+
exports.fromClientIvcVerify = fromClientIvcVerify;
|
|
76
|
+
exports.toClientIvcVerifyResponse = toClientIvcVerifyResponse;
|
|
77
|
+
exports.fromClientIvcVerifyResponse = fromClientIvcVerifyResponse;
|
|
78
|
+
exports.toECCVMProof = toECCVMProof;
|
|
79
|
+
exports.fromECCVMProof = fromECCVMProof;
|
|
80
|
+
exports.toGoblinProof = toGoblinProof;
|
|
81
|
+
exports.fromGoblinProof = fromGoblinProof;
|
|
82
|
+
exports.toProofAsFields = toProofAsFields;
|
|
83
|
+
exports.fromProofAsFields = fromProofAsFields;
|
|
84
|
+
exports.toProofAsFieldsResponse = toProofAsFieldsResponse;
|
|
85
|
+
exports.fromProofAsFieldsResponse = fromProofAsFieldsResponse;
|
|
86
|
+
exports.toProofSystemSettings = toProofSystemSettings;
|
|
87
|
+
exports.fromProofSystemSettings = fromProofSystemSettings;
|
|
88
|
+
exports.toVkAsFields = toVkAsFields;
|
|
89
|
+
exports.fromVkAsFields = fromVkAsFields;
|
|
90
|
+
exports.toVkAsFieldsResponse = toVkAsFieldsResponse;
|
|
91
|
+
exports.fromVkAsFieldsResponse = fromVkAsFieldsResponse;
|
|
92
|
+
// Conversion functions (exported)
|
|
93
|
+
function toCircuitBenchmark(o) {
|
|
94
|
+
if (o.circuit === undefined) {
|
|
95
|
+
throw new Error("Expected circuit in CircuitBenchmark deserialization");
|
|
96
|
+
}
|
|
97
|
+
if (o.witness === undefined) {
|
|
98
|
+
throw new Error("Expected witness in CircuitBenchmark deserialization");
|
|
99
|
+
}
|
|
100
|
+
if (o.settings === undefined) {
|
|
101
|
+
throw new Error("Expected settings in CircuitBenchmark deserialization");
|
|
102
|
+
}
|
|
103
|
+
if (o.num_iterations === undefined) {
|
|
104
|
+
throw new Error("Expected num_iterations in CircuitBenchmark deserialization");
|
|
105
|
+
}
|
|
106
|
+
if (o.benchmark_witness_generation === undefined) {
|
|
107
|
+
throw new Error("Expected benchmark_witness_generation in CircuitBenchmark deserialization");
|
|
108
|
+
}
|
|
109
|
+
if (o.benchmark_proving === undefined) {
|
|
110
|
+
throw new Error("Expected benchmark_proving in CircuitBenchmark deserialization");
|
|
111
|
+
}
|
|
112
|
+
;
|
|
113
|
+
return {
|
|
114
|
+
circuit: toCircuitInput(o.circuit),
|
|
115
|
+
witness: o.witness,
|
|
116
|
+
settings: toProofSystemSettings(o.settings),
|
|
117
|
+
numIterations: o.num_iterations,
|
|
118
|
+
benchmarkWitnessGeneration: o.benchmark_witness_generation,
|
|
119
|
+
benchmarkProving: o.benchmark_proving,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
function fromCircuitBenchmark(o) {
|
|
123
|
+
if (o.circuit === undefined) {
|
|
124
|
+
throw new Error("Expected circuit in CircuitBenchmark serialization");
|
|
125
|
+
}
|
|
126
|
+
if (o.witness === undefined) {
|
|
127
|
+
throw new Error("Expected witness in CircuitBenchmark serialization");
|
|
128
|
+
}
|
|
129
|
+
if (o.settings === undefined) {
|
|
130
|
+
throw new Error("Expected settings in CircuitBenchmark serialization");
|
|
131
|
+
}
|
|
132
|
+
if (o.numIterations === undefined) {
|
|
133
|
+
throw new Error("Expected numIterations in CircuitBenchmark serialization");
|
|
134
|
+
}
|
|
135
|
+
if (o.benchmarkWitnessGeneration === undefined) {
|
|
136
|
+
throw new Error("Expected benchmarkWitnessGeneration in CircuitBenchmark serialization");
|
|
137
|
+
}
|
|
138
|
+
if (o.benchmarkProving === undefined) {
|
|
139
|
+
throw new Error("Expected benchmarkProving in CircuitBenchmark serialization");
|
|
140
|
+
}
|
|
141
|
+
;
|
|
142
|
+
return {
|
|
143
|
+
circuit: fromCircuitInput(o.circuit),
|
|
144
|
+
witness: o.witness,
|
|
145
|
+
settings: fromProofSystemSettings(o.settings),
|
|
146
|
+
num_iterations: o.numIterations,
|
|
147
|
+
benchmark_witness_generation: o.benchmarkWitnessGeneration,
|
|
148
|
+
benchmark_proving: o.benchmarkProving,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
function toCircuitBenchmarkResponse(o) {
|
|
152
|
+
if (o.witness_generation_time_ms === undefined) {
|
|
153
|
+
throw new Error("Expected witness_generation_time_ms in CircuitBenchmarkResponse deserialization");
|
|
154
|
+
}
|
|
155
|
+
if (o.proving_time_ms === undefined) {
|
|
156
|
+
throw new Error("Expected proving_time_ms in CircuitBenchmarkResponse deserialization");
|
|
157
|
+
}
|
|
158
|
+
if (o.verification_time_ms === undefined) {
|
|
159
|
+
throw new Error("Expected verification_time_ms in CircuitBenchmarkResponse deserialization");
|
|
160
|
+
}
|
|
161
|
+
if (o.peak_memory_bytes === undefined) {
|
|
162
|
+
throw new Error("Expected peak_memory_bytes in CircuitBenchmarkResponse deserialization");
|
|
163
|
+
}
|
|
164
|
+
;
|
|
165
|
+
return {
|
|
166
|
+
witnessGenerationTimeMs: o.witness_generation_time_ms,
|
|
167
|
+
provingTimeMs: o.proving_time_ms,
|
|
168
|
+
verificationTimeMs: o.verification_time_ms,
|
|
169
|
+
peakMemoryBytes: o.peak_memory_bytes,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
function fromCircuitBenchmarkResponse(o) {
|
|
173
|
+
if (o.witnessGenerationTimeMs === undefined) {
|
|
174
|
+
throw new Error("Expected witnessGenerationTimeMs in CircuitBenchmarkResponse serialization");
|
|
175
|
+
}
|
|
176
|
+
if (o.provingTimeMs === undefined) {
|
|
177
|
+
throw new Error("Expected provingTimeMs in CircuitBenchmarkResponse serialization");
|
|
178
|
+
}
|
|
179
|
+
if (o.verificationTimeMs === undefined) {
|
|
180
|
+
throw new Error("Expected verificationTimeMs in CircuitBenchmarkResponse serialization");
|
|
181
|
+
}
|
|
182
|
+
if (o.peakMemoryBytes === undefined) {
|
|
183
|
+
throw new Error("Expected peakMemoryBytes in CircuitBenchmarkResponse serialization");
|
|
184
|
+
}
|
|
185
|
+
;
|
|
186
|
+
return {
|
|
187
|
+
witness_generation_time_ms: o.witnessGenerationTimeMs,
|
|
188
|
+
proving_time_ms: o.provingTimeMs,
|
|
189
|
+
verification_time_ms: o.verificationTimeMs,
|
|
190
|
+
peak_memory_bytes: o.peakMemoryBytes,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
function toCircuitCheck(o) {
|
|
194
|
+
if (o.circuit === undefined) {
|
|
195
|
+
throw new Error("Expected circuit in CircuitCheck deserialization");
|
|
196
|
+
}
|
|
197
|
+
if (o.witness === undefined) {
|
|
198
|
+
throw new Error("Expected witness in CircuitCheck deserialization");
|
|
199
|
+
}
|
|
200
|
+
if (o.settings === undefined) {
|
|
201
|
+
throw new Error("Expected settings in CircuitCheck deserialization");
|
|
202
|
+
}
|
|
203
|
+
;
|
|
204
|
+
return {
|
|
205
|
+
circuit: toCircuitInput(o.circuit),
|
|
206
|
+
witness: o.witness,
|
|
207
|
+
settings: toProofSystemSettings(o.settings),
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
function fromCircuitCheck(o) {
|
|
211
|
+
if (o.circuit === undefined) {
|
|
212
|
+
throw new Error("Expected circuit in CircuitCheck serialization");
|
|
213
|
+
}
|
|
214
|
+
if (o.witness === undefined) {
|
|
215
|
+
throw new Error("Expected witness in CircuitCheck serialization");
|
|
216
|
+
}
|
|
217
|
+
if (o.settings === undefined) {
|
|
218
|
+
throw new Error("Expected settings in CircuitCheck serialization");
|
|
219
|
+
}
|
|
220
|
+
;
|
|
221
|
+
return {
|
|
222
|
+
circuit: fromCircuitInput(o.circuit),
|
|
223
|
+
witness: o.witness,
|
|
224
|
+
settings: fromProofSystemSettings(o.settings),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
function toCircuitCheckResponse(o) {
|
|
228
|
+
if (o.satisfied === undefined) {
|
|
229
|
+
throw new Error("Expected satisfied in CircuitCheckResponse deserialization");
|
|
230
|
+
}
|
|
231
|
+
;
|
|
232
|
+
return {
|
|
233
|
+
satisfied: o.satisfied,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
function fromCircuitCheckResponse(o) {
|
|
237
|
+
if (o.satisfied === undefined) {
|
|
238
|
+
throw new Error("Expected satisfied in CircuitCheckResponse serialization");
|
|
239
|
+
}
|
|
240
|
+
;
|
|
241
|
+
return {
|
|
242
|
+
satisfied: o.satisfied,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
function toCircuitComputeVk(o) {
|
|
246
|
+
if (o.circuit === undefined) {
|
|
247
|
+
throw new Error("Expected circuit in CircuitComputeVk deserialization");
|
|
248
|
+
}
|
|
249
|
+
if (o.settings === undefined) {
|
|
250
|
+
throw new Error("Expected settings in CircuitComputeVk deserialization");
|
|
251
|
+
}
|
|
252
|
+
;
|
|
253
|
+
return {
|
|
254
|
+
circuit: toCircuitInputNoVK(o.circuit),
|
|
255
|
+
settings: toProofSystemSettings(o.settings),
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
function fromCircuitComputeVk(o) {
|
|
259
|
+
if (o.circuit === undefined) {
|
|
260
|
+
throw new Error("Expected circuit in CircuitComputeVk serialization");
|
|
261
|
+
}
|
|
262
|
+
if (o.settings === undefined) {
|
|
263
|
+
throw new Error("Expected settings in CircuitComputeVk serialization");
|
|
264
|
+
}
|
|
265
|
+
;
|
|
266
|
+
return {
|
|
267
|
+
circuit: fromCircuitInputNoVK(o.circuit),
|
|
268
|
+
settings: fromProofSystemSettings(o.settings),
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
function toCircuitComputeVkResponse(o) {
|
|
272
|
+
if (o.bytes === undefined) {
|
|
273
|
+
throw new Error("Expected bytes in CircuitComputeVkResponse deserialization");
|
|
274
|
+
}
|
|
275
|
+
;
|
|
276
|
+
return {
|
|
277
|
+
bytes: o.bytes,
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
function fromCircuitComputeVkResponse(o) {
|
|
281
|
+
if (o.bytes === undefined) {
|
|
282
|
+
throw new Error("Expected bytes in CircuitComputeVkResponse serialization");
|
|
283
|
+
}
|
|
284
|
+
;
|
|
285
|
+
return {
|
|
286
|
+
bytes: o.bytes,
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
function toCircuitInfo(o) {
|
|
290
|
+
if (o.circuit === undefined) {
|
|
291
|
+
throw new Error("Expected circuit in CircuitInfo deserialization");
|
|
292
|
+
}
|
|
293
|
+
if (o.include_gates_per_opcode === undefined) {
|
|
294
|
+
throw new Error("Expected include_gates_per_opcode in CircuitInfo deserialization");
|
|
295
|
+
}
|
|
296
|
+
if (o.settings === undefined) {
|
|
297
|
+
throw new Error("Expected settings in CircuitInfo deserialization");
|
|
298
|
+
}
|
|
299
|
+
;
|
|
300
|
+
return {
|
|
301
|
+
circuit: toCircuitInput(o.circuit),
|
|
302
|
+
includeGatesPerOpcode: o.include_gates_per_opcode,
|
|
303
|
+
settings: toProofSystemSettings(o.settings),
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
function fromCircuitInfo(o) {
|
|
307
|
+
if (o.circuit === undefined) {
|
|
308
|
+
throw new Error("Expected circuit in CircuitInfo serialization");
|
|
309
|
+
}
|
|
310
|
+
if (o.includeGatesPerOpcode === undefined) {
|
|
311
|
+
throw new Error("Expected includeGatesPerOpcode in CircuitInfo serialization");
|
|
312
|
+
}
|
|
313
|
+
if (o.settings === undefined) {
|
|
314
|
+
throw new Error("Expected settings in CircuitInfo serialization");
|
|
315
|
+
}
|
|
316
|
+
;
|
|
317
|
+
return {
|
|
318
|
+
circuit: fromCircuitInput(o.circuit),
|
|
319
|
+
include_gates_per_opcode: o.includeGatesPerOpcode,
|
|
320
|
+
settings: fromProofSystemSettings(o.settings),
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
function toCircuitInfoResponse(o) {
|
|
324
|
+
if (o.total_gates === undefined) {
|
|
325
|
+
throw new Error("Expected total_gates in CircuitInfoResponse deserialization");
|
|
326
|
+
}
|
|
327
|
+
if (o.subgroup_size === undefined) {
|
|
328
|
+
throw new Error("Expected subgroup_size in CircuitInfoResponse deserialization");
|
|
329
|
+
}
|
|
330
|
+
if (o.gates_per_opcode === undefined) {
|
|
331
|
+
throw new Error("Expected gates_per_opcode in CircuitInfoResponse deserialization");
|
|
332
|
+
}
|
|
333
|
+
;
|
|
334
|
+
return {
|
|
335
|
+
totalGates: o.total_gates,
|
|
336
|
+
subgroupSize: o.subgroup_size,
|
|
337
|
+
gatesPerOpcode: o.gates_per_opcode,
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
function fromCircuitInfoResponse(o) {
|
|
341
|
+
if (o.totalGates === undefined) {
|
|
342
|
+
throw new Error("Expected totalGates in CircuitInfoResponse serialization");
|
|
343
|
+
}
|
|
344
|
+
if (o.subgroupSize === undefined) {
|
|
345
|
+
throw new Error("Expected subgroupSize in CircuitInfoResponse serialization");
|
|
346
|
+
}
|
|
347
|
+
if (o.gatesPerOpcode === undefined) {
|
|
348
|
+
throw new Error("Expected gatesPerOpcode in CircuitInfoResponse serialization");
|
|
349
|
+
}
|
|
350
|
+
;
|
|
351
|
+
return {
|
|
352
|
+
total_gates: o.totalGates,
|
|
353
|
+
subgroup_size: o.subgroupSize,
|
|
354
|
+
gates_per_opcode: o.gatesPerOpcode,
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
function toCircuitInput(o) {
|
|
358
|
+
if (o.name === undefined) {
|
|
359
|
+
throw new Error("Expected name in CircuitInput deserialization");
|
|
360
|
+
}
|
|
361
|
+
if (o.bytecode === undefined) {
|
|
362
|
+
throw new Error("Expected bytecode in CircuitInput deserialization");
|
|
363
|
+
}
|
|
364
|
+
if (o.verification_key === undefined) {
|
|
365
|
+
throw new Error("Expected verification_key in CircuitInput deserialization");
|
|
366
|
+
}
|
|
367
|
+
;
|
|
368
|
+
return {
|
|
369
|
+
name: o.name,
|
|
370
|
+
bytecode: o.bytecode,
|
|
371
|
+
verificationKey: o.verification_key,
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
function fromCircuitInput(o) {
|
|
375
|
+
if (o.name === undefined) {
|
|
376
|
+
throw new Error("Expected name in CircuitInput serialization");
|
|
377
|
+
}
|
|
378
|
+
if (o.bytecode === undefined) {
|
|
379
|
+
throw new Error("Expected bytecode in CircuitInput serialization");
|
|
380
|
+
}
|
|
381
|
+
if (o.verificationKey === undefined) {
|
|
382
|
+
throw new Error("Expected verificationKey in CircuitInput serialization");
|
|
383
|
+
}
|
|
384
|
+
;
|
|
385
|
+
return {
|
|
386
|
+
name: o.name,
|
|
387
|
+
bytecode: o.bytecode,
|
|
388
|
+
verification_key: o.verificationKey,
|
|
389
|
+
};
|
|
390
|
+
}
|
|
391
|
+
function toCircuitInputNoVK(o) {
|
|
392
|
+
if (o.name === undefined) {
|
|
393
|
+
throw new Error("Expected name in CircuitInputNoVK deserialization");
|
|
394
|
+
}
|
|
395
|
+
if (o.bytecode === undefined) {
|
|
396
|
+
throw new Error("Expected bytecode in CircuitInputNoVK deserialization");
|
|
397
|
+
}
|
|
398
|
+
;
|
|
399
|
+
return {
|
|
400
|
+
name: o.name,
|
|
401
|
+
bytecode: o.bytecode,
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
function fromCircuitInputNoVK(o) {
|
|
405
|
+
if (o.name === undefined) {
|
|
406
|
+
throw new Error("Expected name in CircuitInputNoVK serialization");
|
|
407
|
+
}
|
|
408
|
+
if (o.bytecode === undefined) {
|
|
409
|
+
throw new Error("Expected bytecode in CircuitInputNoVK serialization");
|
|
410
|
+
}
|
|
411
|
+
;
|
|
412
|
+
return {
|
|
413
|
+
name: o.name,
|
|
414
|
+
bytecode: o.bytecode,
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
function toCircuitProve(o) {
|
|
418
|
+
if (o.circuit === undefined) {
|
|
419
|
+
throw new Error("Expected circuit in CircuitProve deserialization");
|
|
420
|
+
}
|
|
421
|
+
if (o.witness === undefined) {
|
|
422
|
+
throw new Error("Expected witness in CircuitProve deserialization");
|
|
423
|
+
}
|
|
424
|
+
if (o.settings === undefined) {
|
|
425
|
+
throw new Error("Expected settings in CircuitProve deserialization");
|
|
426
|
+
}
|
|
427
|
+
;
|
|
428
|
+
return {
|
|
429
|
+
circuit: toCircuitInput(o.circuit),
|
|
430
|
+
witness: o.witness,
|
|
431
|
+
settings: toProofSystemSettings(o.settings),
|
|
432
|
+
};
|
|
433
|
+
}
|
|
434
|
+
function fromCircuitProve(o) {
|
|
435
|
+
if (o.circuit === undefined) {
|
|
436
|
+
throw new Error("Expected circuit in CircuitProve serialization");
|
|
437
|
+
}
|
|
438
|
+
if (o.witness === undefined) {
|
|
439
|
+
throw new Error("Expected witness in CircuitProve serialization");
|
|
440
|
+
}
|
|
441
|
+
if (o.settings === undefined) {
|
|
442
|
+
throw new Error("Expected settings in CircuitProve serialization");
|
|
443
|
+
}
|
|
444
|
+
;
|
|
445
|
+
return {
|
|
446
|
+
circuit: fromCircuitInput(o.circuit),
|
|
447
|
+
witness: o.witness,
|
|
448
|
+
settings: fromProofSystemSettings(o.settings),
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
|
+
function toCircuitProveAndVerify(o) {
|
|
452
|
+
if (o.circuit === undefined) {
|
|
453
|
+
throw new Error("Expected circuit in CircuitProveAndVerify deserialization");
|
|
454
|
+
}
|
|
455
|
+
if (o.witness === undefined) {
|
|
456
|
+
throw new Error("Expected witness in CircuitProveAndVerify deserialization");
|
|
457
|
+
}
|
|
458
|
+
if (o.settings === undefined) {
|
|
459
|
+
throw new Error("Expected settings in CircuitProveAndVerify deserialization");
|
|
460
|
+
}
|
|
461
|
+
;
|
|
462
|
+
return {
|
|
463
|
+
circuit: toCircuitInput(o.circuit),
|
|
464
|
+
witness: o.witness,
|
|
465
|
+
settings: toProofSystemSettings(o.settings),
|
|
466
|
+
};
|
|
467
|
+
}
|
|
468
|
+
function fromCircuitProveAndVerify(o) {
|
|
469
|
+
if (o.circuit === undefined) {
|
|
470
|
+
throw new Error("Expected circuit in CircuitProveAndVerify serialization");
|
|
471
|
+
}
|
|
472
|
+
if (o.witness === undefined) {
|
|
473
|
+
throw new Error("Expected witness in CircuitProveAndVerify serialization");
|
|
474
|
+
}
|
|
475
|
+
if (o.settings === undefined) {
|
|
476
|
+
throw new Error("Expected settings in CircuitProveAndVerify serialization");
|
|
477
|
+
}
|
|
478
|
+
;
|
|
479
|
+
return {
|
|
480
|
+
circuit: fromCircuitInput(o.circuit),
|
|
481
|
+
witness: o.witness,
|
|
482
|
+
settings: fromProofSystemSettings(o.settings),
|
|
483
|
+
};
|
|
484
|
+
}
|
|
485
|
+
function toCircuitProveAndVerifyResponse(o) {
|
|
486
|
+
if (o.verified === undefined) {
|
|
487
|
+
throw new Error("Expected verified in CircuitProveAndVerifyResponse deserialization");
|
|
488
|
+
}
|
|
489
|
+
if (o.proof === undefined) {
|
|
490
|
+
throw new Error("Expected proof in CircuitProveAndVerifyResponse deserialization");
|
|
491
|
+
}
|
|
492
|
+
if (o.public_inputs === undefined) {
|
|
493
|
+
throw new Error("Expected public_inputs in CircuitProveAndVerifyResponse deserialization");
|
|
494
|
+
}
|
|
495
|
+
;
|
|
496
|
+
return {
|
|
497
|
+
verified: o.verified,
|
|
498
|
+
proof: o.proof.map((v) => v),
|
|
499
|
+
publicInputs: o.public_inputs.map((v) => v),
|
|
500
|
+
};
|
|
501
|
+
}
|
|
502
|
+
function fromCircuitProveAndVerifyResponse(o) {
|
|
503
|
+
if (o.verified === undefined) {
|
|
504
|
+
throw new Error("Expected verified in CircuitProveAndVerifyResponse serialization");
|
|
505
|
+
}
|
|
506
|
+
if (o.proof === undefined) {
|
|
507
|
+
throw new Error("Expected proof in CircuitProveAndVerifyResponse serialization");
|
|
508
|
+
}
|
|
509
|
+
if (o.publicInputs === undefined) {
|
|
510
|
+
throw new Error("Expected publicInputs in CircuitProveAndVerifyResponse serialization");
|
|
511
|
+
}
|
|
512
|
+
;
|
|
513
|
+
return {
|
|
514
|
+
verified: o.verified,
|
|
515
|
+
proof: o.proof.map((v) => v),
|
|
516
|
+
public_inputs: o.publicInputs.map((v) => v),
|
|
517
|
+
};
|
|
518
|
+
}
|
|
519
|
+
function toCircuitProveResponse(o) {
|
|
520
|
+
if (o.public_inputs === undefined) {
|
|
521
|
+
throw new Error("Expected public_inputs in CircuitProveResponse deserialization");
|
|
522
|
+
}
|
|
523
|
+
if (o.proof === undefined) {
|
|
524
|
+
throw new Error("Expected proof in CircuitProveResponse deserialization");
|
|
525
|
+
}
|
|
526
|
+
;
|
|
527
|
+
return {
|
|
528
|
+
publicInputs: o.public_inputs.map((v) => v),
|
|
529
|
+
proof: o.proof.map((v) => v),
|
|
530
|
+
};
|
|
531
|
+
}
|
|
532
|
+
function fromCircuitProveResponse(o) {
|
|
533
|
+
if (o.publicInputs === undefined) {
|
|
534
|
+
throw new Error("Expected publicInputs in CircuitProveResponse serialization");
|
|
535
|
+
}
|
|
536
|
+
if (o.proof === undefined) {
|
|
537
|
+
throw new Error("Expected proof in CircuitProveResponse serialization");
|
|
538
|
+
}
|
|
539
|
+
;
|
|
540
|
+
return {
|
|
541
|
+
public_inputs: o.publicInputs.map((v) => v),
|
|
542
|
+
proof: o.proof.map((v) => v),
|
|
543
|
+
};
|
|
544
|
+
}
|
|
545
|
+
function toCircuitVerify(o) {
|
|
546
|
+
if (o.verification_key === undefined) {
|
|
547
|
+
throw new Error("Expected verification_key in CircuitVerify deserialization");
|
|
548
|
+
}
|
|
549
|
+
if (o.public_inputs === undefined) {
|
|
550
|
+
throw new Error("Expected public_inputs in CircuitVerify deserialization");
|
|
551
|
+
}
|
|
552
|
+
if (o.proof === undefined) {
|
|
553
|
+
throw new Error("Expected proof in CircuitVerify deserialization");
|
|
554
|
+
}
|
|
555
|
+
if (o.settings === undefined) {
|
|
556
|
+
throw new Error("Expected settings in CircuitVerify deserialization");
|
|
557
|
+
}
|
|
558
|
+
;
|
|
559
|
+
return {
|
|
560
|
+
verificationKey: o.verification_key,
|
|
561
|
+
publicInputs: o.public_inputs.map((v) => v),
|
|
562
|
+
proof: o.proof.map((v) => v),
|
|
563
|
+
settings: toProofSystemSettings(o.settings),
|
|
564
|
+
};
|
|
565
|
+
}
|
|
566
|
+
function fromCircuitVerify(o) {
|
|
567
|
+
if (o.verificationKey === undefined) {
|
|
568
|
+
throw new Error("Expected verificationKey in CircuitVerify serialization");
|
|
569
|
+
}
|
|
570
|
+
if (o.publicInputs === undefined) {
|
|
571
|
+
throw new Error("Expected publicInputs in CircuitVerify serialization");
|
|
572
|
+
}
|
|
573
|
+
if (o.proof === undefined) {
|
|
574
|
+
throw new Error("Expected proof in CircuitVerify serialization");
|
|
575
|
+
}
|
|
576
|
+
if (o.settings === undefined) {
|
|
577
|
+
throw new Error("Expected settings in CircuitVerify serialization");
|
|
578
|
+
}
|
|
579
|
+
;
|
|
580
|
+
return {
|
|
581
|
+
verification_key: o.verificationKey,
|
|
582
|
+
public_inputs: o.publicInputs.map((v) => v),
|
|
583
|
+
proof: o.proof.map((v) => v),
|
|
584
|
+
settings: fromProofSystemSettings(o.settings),
|
|
585
|
+
};
|
|
586
|
+
}
|
|
587
|
+
function toCircuitVerifyResponse(o) {
|
|
588
|
+
if (o.verified === undefined) {
|
|
589
|
+
throw new Error("Expected verified in CircuitVerifyResponse deserialization");
|
|
590
|
+
}
|
|
591
|
+
;
|
|
592
|
+
return {
|
|
593
|
+
verified: o.verified,
|
|
594
|
+
};
|
|
595
|
+
}
|
|
596
|
+
function fromCircuitVerifyResponse(o) {
|
|
597
|
+
if (o.verified === undefined) {
|
|
598
|
+
throw new Error("Expected verified in CircuitVerifyResponse serialization");
|
|
599
|
+
}
|
|
600
|
+
;
|
|
601
|
+
return {
|
|
602
|
+
verified: o.verified,
|
|
603
|
+
};
|
|
604
|
+
}
|
|
605
|
+
function toCircuitWriteSolidityVerifier(o) {
|
|
606
|
+
if (o.verification_key === undefined) {
|
|
607
|
+
throw new Error("Expected verification_key in CircuitWriteSolidityVerifier deserialization");
|
|
608
|
+
}
|
|
609
|
+
if (o.settings === undefined) {
|
|
610
|
+
throw new Error("Expected settings in CircuitWriteSolidityVerifier deserialization");
|
|
611
|
+
}
|
|
612
|
+
;
|
|
613
|
+
return {
|
|
614
|
+
verificationKey: o.verification_key,
|
|
615
|
+
settings: toProofSystemSettings(o.settings),
|
|
616
|
+
};
|
|
617
|
+
}
|
|
618
|
+
function fromCircuitWriteSolidityVerifier(o) {
|
|
619
|
+
if (o.verificationKey === undefined) {
|
|
620
|
+
throw new Error("Expected verificationKey in CircuitWriteSolidityVerifier serialization");
|
|
621
|
+
}
|
|
622
|
+
if (o.settings === undefined) {
|
|
623
|
+
throw new Error("Expected settings in CircuitWriteSolidityVerifier serialization");
|
|
624
|
+
}
|
|
625
|
+
;
|
|
626
|
+
return {
|
|
627
|
+
verification_key: o.verificationKey,
|
|
628
|
+
settings: fromProofSystemSettings(o.settings),
|
|
629
|
+
};
|
|
630
|
+
}
|
|
631
|
+
function toCircuitWriteSolidityVerifierResponse(o) {
|
|
632
|
+
if (o.solidity_code === undefined) {
|
|
633
|
+
throw new Error("Expected solidity_code in CircuitWriteSolidityVerifierResponse deserialization");
|
|
634
|
+
}
|
|
635
|
+
;
|
|
636
|
+
return {
|
|
637
|
+
solidityCode: o.solidity_code,
|
|
638
|
+
};
|
|
639
|
+
}
|
|
640
|
+
function fromCircuitWriteSolidityVerifierResponse(o) {
|
|
641
|
+
if (o.solidityCode === undefined) {
|
|
642
|
+
throw new Error("Expected solidityCode in CircuitWriteSolidityVerifierResponse serialization");
|
|
643
|
+
}
|
|
644
|
+
;
|
|
645
|
+
return {
|
|
646
|
+
solidity_code: o.solidityCode,
|
|
647
|
+
};
|
|
648
|
+
}
|
|
649
|
+
function toClientIvcAccumulate(o) {
|
|
650
|
+
if (o.witness === undefined) {
|
|
651
|
+
throw new Error("Expected witness in ClientIvcAccumulate deserialization");
|
|
652
|
+
}
|
|
653
|
+
;
|
|
654
|
+
return {
|
|
655
|
+
witness: o.witness,
|
|
656
|
+
};
|
|
657
|
+
}
|
|
658
|
+
function fromClientIvcAccumulate(o) {
|
|
659
|
+
if (o.witness === undefined) {
|
|
660
|
+
throw new Error("Expected witness in ClientIvcAccumulate serialization");
|
|
661
|
+
}
|
|
662
|
+
;
|
|
663
|
+
return {
|
|
664
|
+
witness: o.witness,
|
|
665
|
+
};
|
|
666
|
+
}
|
|
667
|
+
function toClientIvcAccumulateResponse(o) {
|
|
668
|
+
return {};
|
|
669
|
+
}
|
|
670
|
+
function fromClientIvcAccumulateResponse(o) {
|
|
671
|
+
return {};
|
|
672
|
+
}
|
|
673
|
+
function toClientIvcCheckPrecomputedVk(o) {
|
|
674
|
+
if (o.circuit === undefined) {
|
|
675
|
+
throw new Error("Expected circuit in ClientIvcCheckPrecomputedVk deserialization");
|
|
676
|
+
}
|
|
677
|
+
;
|
|
678
|
+
return {
|
|
679
|
+
circuit: toCircuitInput(o.circuit),
|
|
680
|
+
};
|
|
681
|
+
}
|
|
682
|
+
function fromClientIvcCheckPrecomputedVk(o) {
|
|
683
|
+
if (o.circuit === undefined) {
|
|
684
|
+
throw new Error("Expected circuit in ClientIvcCheckPrecomputedVk serialization");
|
|
685
|
+
}
|
|
686
|
+
;
|
|
687
|
+
return {
|
|
688
|
+
circuit: fromCircuitInput(o.circuit),
|
|
689
|
+
};
|
|
690
|
+
}
|
|
691
|
+
function toClientIvcCheckPrecomputedVkResponse(o) {
|
|
692
|
+
if (o.valid === undefined) {
|
|
693
|
+
throw new Error("Expected valid in ClientIvcCheckPrecomputedVkResponse deserialization");
|
|
694
|
+
}
|
|
695
|
+
if (o.actual_vk === undefined) {
|
|
696
|
+
throw new Error("Expected actual_vk in ClientIvcCheckPrecomputedVkResponse deserialization");
|
|
697
|
+
}
|
|
698
|
+
;
|
|
699
|
+
return {
|
|
700
|
+
valid: o.valid,
|
|
701
|
+
actualVk: o.actual_vk,
|
|
702
|
+
};
|
|
703
|
+
}
|
|
704
|
+
function fromClientIvcCheckPrecomputedVkResponse(o) {
|
|
705
|
+
if (o.valid === undefined) {
|
|
706
|
+
throw new Error("Expected valid in ClientIvcCheckPrecomputedVkResponse serialization");
|
|
707
|
+
}
|
|
708
|
+
if (o.actualVk === undefined) {
|
|
709
|
+
throw new Error("Expected actualVk in ClientIvcCheckPrecomputedVkResponse serialization");
|
|
710
|
+
}
|
|
711
|
+
;
|
|
712
|
+
return {
|
|
713
|
+
valid: o.valid,
|
|
714
|
+
actual_vk: o.actualVk,
|
|
715
|
+
};
|
|
716
|
+
}
|
|
717
|
+
function toClientIvcComputeIvcVk(o) {
|
|
718
|
+
if (o.circuit === undefined) {
|
|
719
|
+
throw new Error("Expected circuit in ClientIvcComputeIvcVk deserialization");
|
|
720
|
+
}
|
|
721
|
+
;
|
|
722
|
+
return {
|
|
723
|
+
circuit: toCircuitInputNoVK(o.circuit),
|
|
724
|
+
};
|
|
725
|
+
}
|
|
726
|
+
function fromClientIvcComputeIvcVk(o) {
|
|
727
|
+
if (o.circuit === undefined) {
|
|
728
|
+
throw new Error("Expected circuit in ClientIvcComputeIvcVk serialization");
|
|
729
|
+
}
|
|
730
|
+
;
|
|
731
|
+
return {
|
|
732
|
+
circuit: fromCircuitInputNoVK(o.circuit),
|
|
733
|
+
};
|
|
734
|
+
}
|
|
735
|
+
function toClientIvcComputeIvcVkResponse(o) {
|
|
736
|
+
if (o.bytes === undefined) {
|
|
737
|
+
throw new Error("Expected bytes in ClientIvcComputeIvcVkResponse deserialization");
|
|
738
|
+
}
|
|
739
|
+
;
|
|
740
|
+
return {
|
|
741
|
+
bytes: o.bytes,
|
|
742
|
+
};
|
|
743
|
+
}
|
|
744
|
+
function fromClientIvcComputeIvcVkResponse(o) {
|
|
745
|
+
if (o.bytes === undefined) {
|
|
746
|
+
throw new Error("Expected bytes in ClientIvcComputeIvcVkResponse serialization");
|
|
747
|
+
}
|
|
748
|
+
;
|
|
749
|
+
return {
|
|
750
|
+
bytes: o.bytes,
|
|
751
|
+
};
|
|
752
|
+
}
|
|
753
|
+
function toClientIvcComputeStandaloneVk(o) {
|
|
754
|
+
if (o.circuit === undefined) {
|
|
755
|
+
throw new Error("Expected circuit in ClientIvcComputeStandaloneVk deserialization");
|
|
756
|
+
}
|
|
757
|
+
;
|
|
758
|
+
return {
|
|
759
|
+
circuit: toCircuitInputNoVK(o.circuit),
|
|
760
|
+
};
|
|
761
|
+
}
|
|
762
|
+
function fromClientIvcComputeStandaloneVk(o) {
|
|
763
|
+
if (o.circuit === undefined) {
|
|
764
|
+
throw new Error("Expected circuit in ClientIvcComputeStandaloneVk serialization");
|
|
765
|
+
}
|
|
766
|
+
;
|
|
767
|
+
return {
|
|
768
|
+
circuit: fromCircuitInputNoVK(o.circuit),
|
|
769
|
+
};
|
|
770
|
+
}
|
|
771
|
+
function toClientIvcComputeStandaloneVkResponse(o) {
|
|
772
|
+
if (o.bytes === undefined) {
|
|
773
|
+
throw new Error("Expected bytes in ClientIvcComputeStandaloneVkResponse deserialization");
|
|
774
|
+
}
|
|
775
|
+
if (o.fields === undefined) {
|
|
776
|
+
throw new Error("Expected fields in ClientIvcComputeStandaloneVkResponse deserialization");
|
|
777
|
+
}
|
|
778
|
+
;
|
|
779
|
+
return {
|
|
780
|
+
bytes: o.bytes,
|
|
781
|
+
fields: o.fields.map((v) => v),
|
|
782
|
+
};
|
|
783
|
+
}
|
|
784
|
+
function fromClientIvcComputeStandaloneVkResponse(o) {
|
|
785
|
+
if (o.bytes === undefined) {
|
|
786
|
+
throw new Error("Expected bytes in ClientIvcComputeStandaloneVkResponse serialization");
|
|
787
|
+
}
|
|
788
|
+
if (o.fields === undefined) {
|
|
789
|
+
throw new Error("Expected fields in ClientIvcComputeStandaloneVkResponse serialization");
|
|
790
|
+
}
|
|
791
|
+
;
|
|
792
|
+
return {
|
|
793
|
+
bytes: o.bytes,
|
|
794
|
+
fields: o.fields.map((v) => v),
|
|
795
|
+
};
|
|
796
|
+
}
|
|
797
|
+
function toClientIvcGates(o) {
|
|
798
|
+
if (o.circuit === undefined) {
|
|
799
|
+
throw new Error("Expected circuit in ClientIvcGates deserialization");
|
|
800
|
+
}
|
|
801
|
+
if (o.include_gates_per_opcode === undefined) {
|
|
802
|
+
throw new Error("Expected include_gates_per_opcode in ClientIvcGates deserialization");
|
|
803
|
+
}
|
|
804
|
+
;
|
|
805
|
+
return {
|
|
806
|
+
circuit: toCircuitInputNoVK(o.circuit),
|
|
807
|
+
includeGatesPerOpcode: o.include_gates_per_opcode,
|
|
808
|
+
};
|
|
809
|
+
}
|
|
810
|
+
function fromClientIvcGates(o) {
|
|
811
|
+
if (o.circuit === undefined) {
|
|
812
|
+
throw new Error("Expected circuit in ClientIvcGates serialization");
|
|
813
|
+
}
|
|
814
|
+
if (o.includeGatesPerOpcode === undefined) {
|
|
815
|
+
throw new Error("Expected includeGatesPerOpcode in ClientIvcGates serialization");
|
|
816
|
+
}
|
|
817
|
+
;
|
|
818
|
+
return {
|
|
819
|
+
circuit: fromCircuitInputNoVK(o.circuit),
|
|
820
|
+
include_gates_per_opcode: o.includeGatesPerOpcode,
|
|
821
|
+
};
|
|
822
|
+
}
|
|
823
|
+
function toClientIvcGatesResponse(o) {
|
|
824
|
+
if (o.acir_opcodes === undefined) {
|
|
825
|
+
throw new Error("Expected acir_opcodes in ClientIvcGatesResponse deserialization");
|
|
826
|
+
}
|
|
827
|
+
if (o.circuit_size === undefined) {
|
|
828
|
+
throw new Error("Expected circuit_size in ClientIvcGatesResponse deserialization");
|
|
829
|
+
}
|
|
830
|
+
if (o.gates_per_opcode === undefined) {
|
|
831
|
+
throw new Error("Expected gates_per_opcode in ClientIvcGatesResponse deserialization");
|
|
832
|
+
}
|
|
833
|
+
;
|
|
834
|
+
return {
|
|
835
|
+
acirOpcodes: o.acir_opcodes,
|
|
836
|
+
circuitSize: o.circuit_size,
|
|
837
|
+
gatesPerOpcode: o.gates_per_opcode.map((v) => v),
|
|
838
|
+
};
|
|
839
|
+
}
|
|
840
|
+
function fromClientIvcGatesResponse(o) {
|
|
841
|
+
if (o.acirOpcodes === undefined) {
|
|
842
|
+
throw new Error("Expected acirOpcodes in ClientIvcGatesResponse serialization");
|
|
843
|
+
}
|
|
844
|
+
if (o.circuitSize === undefined) {
|
|
845
|
+
throw new Error("Expected circuitSize in ClientIvcGatesResponse serialization");
|
|
846
|
+
}
|
|
847
|
+
if (o.gatesPerOpcode === undefined) {
|
|
848
|
+
throw new Error("Expected gatesPerOpcode in ClientIvcGatesResponse serialization");
|
|
849
|
+
}
|
|
850
|
+
;
|
|
851
|
+
return {
|
|
852
|
+
acir_opcodes: o.acirOpcodes,
|
|
853
|
+
circuit_size: o.circuitSize,
|
|
854
|
+
gates_per_opcode: o.gatesPerOpcode.map((v) => v),
|
|
855
|
+
};
|
|
856
|
+
}
|
|
857
|
+
function toClientIvcLoad(o) {
|
|
858
|
+
if (o.circuit === undefined) {
|
|
859
|
+
throw new Error("Expected circuit in ClientIvcLoad deserialization");
|
|
860
|
+
}
|
|
861
|
+
;
|
|
862
|
+
return {
|
|
863
|
+
circuit: toCircuitInput(o.circuit),
|
|
864
|
+
};
|
|
865
|
+
}
|
|
866
|
+
function fromClientIvcLoad(o) {
|
|
867
|
+
if (o.circuit === undefined) {
|
|
868
|
+
throw new Error("Expected circuit in ClientIvcLoad serialization");
|
|
869
|
+
}
|
|
870
|
+
;
|
|
871
|
+
return {
|
|
872
|
+
circuit: fromCircuitInput(o.circuit),
|
|
873
|
+
};
|
|
874
|
+
}
|
|
875
|
+
function toClientIvcLoadResponse(o) {
|
|
876
|
+
return {};
|
|
877
|
+
}
|
|
878
|
+
function fromClientIvcLoadResponse(o) {
|
|
879
|
+
return {};
|
|
880
|
+
}
|
|
881
|
+
function toClientIVCProof(o) {
|
|
882
|
+
if (o.mega_proof === undefined) {
|
|
883
|
+
throw new Error("Expected mega_proof in ClientIVCProof deserialization");
|
|
884
|
+
}
|
|
885
|
+
if (o.goblin_proof === undefined) {
|
|
886
|
+
throw new Error("Expected goblin_proof in ClientIVCProof deserialization");
|
|
887
|
+
}
|
|
888
|
+
;
|
|
889
|
+
return {
|
|
890
|
+
megaProof: o.mega_proof.map((v) => v),
|
|
891
|
+
goblinProof: toGoblinProof(o.goblin_proof),
|
|
892
|
+
};
|
|
893
|
+
}
|
|
894
|
+
function fromClientIVCProof(o) {
|
|
895
|
+
if (o.megaProof === undefined) {
|
|
896
|
+
throw new Error("Expected megaProof in ClientIVCProof serialization");
|
|
897
|
+
}
|
|
898
|
+
if (o.goblinProof === undefined) {
|
|
899
|
+
throw new Error("Expected goblinProof in ClientIVCProof serialization");
|
|
900
|
+
}
|
|
901
|
+
;
|
|
902
|
+
return {
|
|
903
|
+
mega_proof: o.megaProof.map((v) => v),
|
|
904
|
+
goblin_proof: fromGoblinProof(o.goblinProof),
|
|
905
|
+
};
|
|
906
|
+
}
|
|
907
|
+
function toClientIvcProve(o) {
|
|
908
|
+
return {};
|
|
909
|
+
}
|
|
910
|
+
function fromClientIvcProve(o) {
|
|
911
|
+
return {};
|
|
912
|
+
}
|
|
913
|
+
function toClientIvcProveResponse(o) {
|
|
914
|
+
if (o.proof === undefined) {
|
|
915
|
+
throw new Error("Expected proof in ClientIvcProveResponse deserialization");
|
|
916
|
+
}
|
|
917
|
+
;
|
|
918
|
+
return {
|
|
919
|
+
proof: toClientIVCProof(o.proof),
|
|
920
|
+
};
|
|
921
|
+
}
|
|
922
|
+
function fromClientIvcProveResponse(o) {
|
|
923
|
+
if (o.proof === undefined) {
|
|
924
|
+
throw new Error("Expected proof in ClientIvcProveResponse serialization");
|
|
925
|
+
}
|
|
926
|
+
;
|
|
927
|
+
return {
|
|
928
|
+
proof: fromClientIVCProof(o.proof),
|
|
929
|
+
};
|
|
930
|
+
}
|
|
931
|
+
function toClientIvcStart(o) {
|
|
932
|
+
if (o.num_circuits === undefined) {
|
|
933
|
+
throw new Error("Expected num_circuits in ClientIvcStart deserialization");
|
|
934
|
+
}
|
|
935
|
+
;
|
|
936
|
+
return {
|
|
937
|
+
numCircuits: o.num_circuits,
|
|
938
|
+
};
|
|
939
|
+
}
|
|
940
|
+
function fromClientIvcStart(o) {
|
|
941
|
+
if (o.numCircuits === undefined) {
|
|
942
|
+
throw new Error("Expected numCircuits in ClientIvcStart serialization");
|
|
943
|
+
}
|
|
944
|
+
;
|
|
945
|
+
return {
|
|
946
|
+
num_circuits: o.numCircuits,
|
|
947
|
+
};
|
|
948
|
+
}
|
|
949
|
+
function toClientIvcStartResponse(o) {
|
|
950
|
+
return {};
|
|
951
|
+
}
|
|
952
|
+
function fromClientIvcStartResponse(o) {
|
|
953
|
+
return {};
|
|
954
|
+
}
|
|
955
|
+
function toClientIvcVerify(o) {
|
|
956
|
+
if (o.proof === undefined) {
|
|
957
|
+
throw new Error("Expected proof in ClientIvcVerify deserialization");
|
|
958
|
+
}
|
|
959
|
+
if (o.vk === undefined) {
|
|
960
|
+
throw new Error("Expected vk in ClientIvcVerify deserialization");
|
|
961
|
+
}
|
|
962
|
+
;
|
|
963
|
+
return {
|
|
964
|
+
proof: toClientIVCProof(o.proof),
|
|
965
|
+
vk: o.vk,
|
|
966
|
+
};
|
|
967
|
+
}
|
|
968
|
+
function fromClientIvcVerify(o) {
|
|
969
|
+
if (o.proof === undefined) {
|
|
970
|
+
throw new Error("Expected proof in ClientIvcVerify serialization");
|
|
971
|
+
}
|
|
972
|
+
if (o.vk === undefined) {
|
|
973
|
+
throw new Error("Expected vk in ClientIvcVerify serialization");
|
|
974
|
+
}
|
|
975
|
+
;
|
|
976
|
+
return {
|
|
977
|
+
proof: fromClientIVCProof(o.proof),
|
|
978
|
+
vk: o.vk,
|
|
979
|
+
};
|
|
980
|
+
}
|
|
981
|
+
function toClientIvcVerifyResponse(o) {
|
|
982
|
+
if (o.valid === undefined) {
|
|
983
|
+
throw new Error("Expected valid in ClientIvcVerifyResponse deserialization");
|
|
984
|
+
}
|
|
985
|
+
;
|
|
986
|
+
return {
|
|
987
|
+
valid: o.valid,
|
|
988
|
+
};
|
|
989
|
+
}
|
|
990
|
+
function fromClientIvcVerifyResponse(o) {
|
|
991
|
+
if (o.valid === undefined) {
|
|
992
|
+
throw new Error("Expected valid in ClientIvcVerifyResponse serialization");
|
|
993
|
+
}
|
|
994
|
+
;
|
|
995
|
+
return {
|
|
996
|
+
valid: o.valid,
|
|
997
|
+
};
|
|
998
|
+
}
|
|
999
|
+
function toECCVMProof(o) {
|
|
1000
|
+
if (o.pre_ipa_proof === undefined) {
|
|
1001
|
+
throw new Error("Expected pre_ipa_proof in ECCVMProof deserialization");
|
|
1002
|
+
}
|
|
1003
|
+
if (o.ipa_proof === undefined) {
|
|
1004
|
+
throw new Error("Expected ipa_proof in ECCVMProof deserialization");
|
|
1005
|
+
}
|
|
1006
|
+
;
|
|
1007
|
+
return {
|
|
1008
|
+
preIpaProof: o.pre_ipa_proof.map((v) => v),
|
|
1009
|
+
ipaProof: o.ipa_proof.map((v) => v),
|
|
1010
|
+
};
|
|
1011
|
+
}
|
|
1012
|
+
function fromECCVMProof(o) {
|
|
1013
|
+
if (o.preIpaProof === undefined) {
|
|
1014
|
+
throw new Error("Expected preIpaProof in ECCVMProof serialization");
|
|
1015
|
+
}
|
|
1016
|
+
if (o.ipaProof === undefined) {
|
|
1017
|
+
throw new Error("Expected ipaProof in ECCVMProof serialization");
|
|
1018
|
+
}
|
|
1019
|
+
;
|
|
1020
|
+
return {
|
|
1021
|
+
pre_ipa_proof: o.preIpaProof.map((v) => v),
|
|
1022
|
+
ipa_proof: o.ipaProof.map((v) => v),
|
|
1023
|
+
};
|
|
1024
|
+
}
|
|
1025
|
+
function toGoblinProof(o) {
|
|
1026
|
+
if (o.merge_proof === undefined) {
|
|
1027
|
+
throw new Error("Expected merge_proof in GoblinProof deserialization");
|
|
1028
|
+
}
|
|
1029
|
+
if (o.eccvm_proof === undefined) {
|
|
1030
|
+
throw new Error("Expected eccvm_proof in GoblinProof deserialization");
|
|
1031
|
+
}
|
|
1032
|
+
if (o.translator_proof === undefined) {
|
|
1033
|
+
throw new Error("Expected translator_proof in GoblinProof deserialization");
|
|
1034
|
+
}
|
|
1035
|
+
;
|
|
1036
|
+
return {
|
|
1037
|
+
mergeProof: o.merge_proof.map((v) => v),
|
|
1038
|
+
eccvmProof: toECCVMProof(o.eccvm_proof),
|
|
1039
|
+
translatorProof: o.translator_proof.map((v) => v),
|
|
1040
|
+
};
|
|
1041
|
+
}
|
|
1042
|
+
function fromGoblinProof(o) {
|
|
1043
|
+
if (o.mergeProof === undefined) {
|
|
1044
|
+
throw new Error("Expected mergeProof in GoblinProof serialization");
|
|
1045
|
+
}
|
|
1046
|
+
if (o.eccvmProof === undefined) {
|
|
1047
|
+
throw new Error("Expected eccvmProof in GoblinProof serialization");
|
|
1048
|
+
}
|
|
1049
|
+
if (o.translatorProof === undefined) {
|
|
1050
|
+
throw new Error("Expected translatorProof in GoblinProof serialization");
|
|
1051
|
+
}
|
|
1052
|
+
;
|
|
1053
|
+
return {
|
|
1054
|
+
merge_proof: o.mergeProof.map((v) => v),
|
|
1055
|
+
eccvm_proof: fromECCVMProof(o.eccvmProof),
|
|
1056
|
+
translator_proof: o.translatorProof.map((v) => v),
|
|
1057
|
+
};
|
|
1058
|
+
}
|
|
1059
|
+
function toProofAsFields(o) {
|
|
1060
|
+
if (o.proof === undefined) {
|
|
1061
|
+
throw new Error("Expected proof in ProofAsFields deserialization");
|
|
1062
|
+
}
|
|
1063
|
+
;
|
|
1064
|
+
return {
|
|
1065
|
+
proof: o.proof.map((v) => v),
|
|
1066
|
+
};
|
|
1067
|
+
}
|
|
1068
|
+
function fromProofAsFields(o) {
|
|
1069
|
+
if (o.proof === undefined) {
|
|
1070
|
+
throw new Error("Expected proof in ProofAsFields serialization");
|
|
1071
|
+
}
|
|
1072
|
+
;
|
|
1073
|
+
return {
|
|
1074
|
+
proof: o.proof.map((v) => v),
|
|
1075
|
+
};
|
|
1076
|
+
}
|
|
1077
|
+
function toProofAsFieldsResponse(o) {
|
|
1078
|
+
if (o.fields === undefined) {
|
|
1079
|
+
throw new Error("Expected fields in ProofAsFieldsResponse deserialization");
|
|
1080
|
+
}
|
|
1081
|
+
;
|
|
1082
|
+
return {
|
|
1083
|
+
fields: o.fields.map((v) => v),
|
|
1084
|
+
};
|
|
1085
|
+
}
|
|
1086
|
+
function fromProofAsFieldsResponse(o) {
|
|
1087
|
+
if (o.fields === undefined) {
|
|
1088
|
+
throw new Error("Expected fields in ProofAsFieldsResponse serialization");
|
|
1089
|
+
}
|
|
1090
|
+
;
|
|
1091
|
+
return {
|
|
1092
|
+
fields: o.fields.map((v) => v),
|
|
1093
|
+
};
|
|
1094
|
+
}
|
|
1095
|
+
function toProofSystemSettings(o) {
|
|
1096
|
+
if (o.ipa_accumulation === undefined) {
|
|
1097
|
+
throw new Error("Expected ipa_accumulation in ProofSystemSettings deserialization");
|
|
1098
|
+
}
|
|
1099
|
+
if (o.oracle_hash_type === undefined) {
|
|
1100
|
+
throw new Error("Expected oracle_hash_type in ProofSystemSettings deserialization");
|
|
1101
|
+
}
|
|
1102
|
+
if (o.disable_zk === undefined) {
|
|
1103
|
+
throw new Error("Expected disable_zk in ProofSystemSettings deserialization");
|
|
1104
|
+
}
|
|
1105
|
+
if (o.honk_recursion === undefined) {
|
|
1106
|
+
throw new Error("Expected honk_recursion in ProofSystemSettings deserialization");
|
|
1107
|
+
}
|
|
1108
|
+
if (o.recursive === undefined) {
|
|
1109
|
+
throw new Error("Expected recursive in ProofSystemSettings deserialization");
|
|
1110
|
+
}
|
|
1111
|
+
;
|
|
1112
|
+
return {
|
|
1113
|
+
ipaAccumulation: o.ipa_accumulation,
|
|
1114
|
+
oracleHashType: o.oracle_hash_type,
|
|
1115
|
+
disableZk: o.disable_zk,
|
|
1116
|
+
honkRecursion: o.honk_recursion,
|
|
1117
|
+
recursive: o.recursive,
|
|
1118
|
+
};
|
|
1119
|
+
}
|
|
1120
|
+
function fromProofSystemSettings(o) {
|
|
1121
|
+
if (o.ipaAccumulation === undefined) {
|
|
1122
|
+
throw new Error("Expected ipaAccumulation in ProofSystemSettings serialization");
|
|
1123
|
+
}
|
|
1124
|
+
if (o.oracleHashType === undefined) {
|
|
1125
|
+
throw new Error("Expected oracleHashType in ProofSystemSettings serialization");
|
|
1126
|
+
}
|
|
1127
|
+
if (o.disableZk === undefined) {
|
|
1128
|
+
throw new Error("Expected disableZk in ProofSystemSettings serialization");
|
|
1129
|
+
}
|
|
1130
|
+
if (o.honkRecursion === undefined) {
|
|
1131
|
+
throw new Error("Expected honkRecursion in ProofSystemSettings serialization");
|
|
1132
|
+
}
|
|
1133
|
+
if (o.recursive === undefined) {
|
|
1134
|
+
throw new Error("Expected recursive in ProofSystemSettings serialization");
|
|
1135
|
+
}
|
|
1136
|
+
;
|
|
1137
|
+
return {
|
|
1138
|
+
ipa_accumulation: o.ipaAccumulation,
|
|
1139
|
+
oracle_hash_type: o.oracleHashType,
|
|
1140
|
+
disable_zk: o.disableZk,
|
|
1141
|
+
honk_recursion: o.honkRecursion,
|
|
1142
|
+
recursive: o.recursive,
|
|
1143
|
+
};
|
|
1144
|
+
}
|
|
1145
|
+
function toVkAsFields(o) {
|
|
1146
|
+
if (o.verification_key === undefined) {
|
|
1147
|
+
throw new Error("Expected verification_key in VkAsFields deserialization");
|
|
1148
|
+
}
|
|
1149
|
+
if (o.is_mega_honk === undefined) {
|
|
1150
|
+
throw new Error("Expected is_mega_honk in VkAsFields deserialization");
|
|
1151
|
+
}
|
|
1152
|
+
;
|
|
1153
|
+
return {
|
|
1154
|
+
verificationKey: o.verification_key,
|
|
1155
|
+
isMegaHonk: o.is_mega_honk,
|
|
1156
|
+
};
|
|
1157
|
+
}
|
|
1158
|
+
function fromVkAsFields(o) {
|
|
1159
|
+
if (o.verificationKey === undefined) {
|
|
1160
|
+
throw new Error("Expected verificationKey in VkAsFields serialization");
|
|
1161
|
+
}
|
|
1162
|
+
if (o.isMegaHonk === undefined) {
|
|
1163
|
+
throw new Error("Expected isMegaHonk in VkAsFields serialization");
|
|
1164
|
+
}
|
|
1165
|
+
;
|
|
1166
|
+
return {
|
|
1167
|
+
verification_key: o.verificationKey,
|
|
1168
|
+
is_mega_honk: o.isMegaHonk,
|
|
1169
|
+
};
|
|
1170
|
+
}
|
|
1171
|
+
function toVkAsFieldsResponse(o) {
|
|
1172
|
+
if (o.fields === undefined) {
|
|
1173
|
+
throw new Error("Expected fields in VkAsFieldsResponse deserialization");
|
|
1174
|
+
}
|
|
1175
|
+
;
|
|
1176
|
+
return {
|
|
1177
|
+
fields: o.fields.map((v) => v),
|
|
1178
|
+
};
|
|
1179
|
+
}
|
|
1180
|
+
function fromVkAsFieldsResponse(o) {
|
|
1181
|
+
if (o.fields === undefined) {
|
|
1182
|
+
throw new Error("Expected fields in VkAsFieldsResponse serialization");
|
|
1183
|
+
}
|
|
1184
|
+
;
|
|
1185
|
+
return {
|
|
1186
|
+
fields: o.fields.map((v) => v),
|
|
1187
|
+
};
|
|
1188
|
+
}
|
|
1189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpX3R5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NiaW5kL2dlbmVyYXRlZC9hcGlfdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG1DQUFtQzs7QUF5MkJuQyxnREFlQztBQUVELG9EQWVDO0FBRUQsZ0VBV0M7QUFFRCxvRUFXQztBQUVELHdDQVNDO0FBRUQsNENBU0M7QUFFRCx3REFLQztBQUVELDREQUtDO0FBRUQsZ0RBT0M7QUFFRCxvREFPQztBQUVELGdFQUtDO0FBRUQsb0VBS0M7QUFFRCxzQ0FTQztBQUVELDBDQVNDO0FBRUQsc0RBU0M7QUFFRCwwREFTQztBQUVELHdDQVNDO0FBRUQsNENBU0M7QUFFRCxnREFPQztBQUVELG9EQU9DO0FBRUQsd0NBU0M7QUFFRCw0Q0FTQztBQUVELDBEQVNDO0FBRUQsOERBU0M7QUFFRCwwRUFTQztBQUVELDhFQVNDO0FBRUQsd0RBT0M7QUFFRCw0REFPQztBQUVELDBDQVdDO0FBRUQsOENBV0M7QUFFRCwwREFLQztBQUVELDhEQUtDO0FBRUQsd0VBT0M7QUFFRCw0RUFPQztBQUVELHdGQUtDO0FBRUQsNEZBS0M7QUFFRCxzREFLQztBQUVELDBEQUtDO0FBRUQsc0VBRUM7QUFFRCwwRUFFQztBQUVELHNFQUtDO0FBRUQsMEVBS0M7QUFFRCxzRkFPQztBQUVELDBGQU9DO0FBRUQsMERBS0M7QUFFRCw4REFLQztBQUVELDBFQUtDO0FBRUQsOEVBS0M7QUFFRCx3RUFLQztBQUVELDRFQUtDO0FBRUQsd0ZBT0M7QUFFRCw0RkFPQztBQUVELDRDQU9DO0FBRUQsZ0RBT0M7QUFFRCw0REFTQztBQUVELGdFQVNDO0FBRUQsMENBS0M7QUFFRCw4Q0FLQztBQUVELDBEQUVDO0FBRUQsOERBRUM7QUFFRCw0Q0FPQztBQUVELGdEQU9DO0FBRUQsNENBRUM7QUFFRCxnREFFQztBQUVELDREQUtDO0FBRUQsZ0VBS0M7QUFFRCw0Q0FLQztBQUVELGdEQUtDO0FB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
|