Skip to content

Commit f40cf67

Browse files
committed
add plonk_proof_create
1 parent 38ed463 commit f40cf67

File tree

6 files changed

+83
-64
lines changed

6 files changed

+83
-64
lines changed

src/lib/crypto/kimchi_bindings/js/dune

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
native/native-overrides/oracles.js
2121
native/native-overrides/prover-index.js
2222
native/native-overrides/srs.js
23-
native/native-overrides/util.js))
23+
native/native-overrides/util.js
24+
native/native-overrides/proof.js))
2425
(instrumentation
2526
(backend bisect_ppx))
2627
(preprocess
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/* global plonk_wasm, tsRustConversion
2+
*/
3+
4+
5+
// Provides: caml_pasta_fp_plonk_proof_create
6+
// Requires: plonk_wasm, tsRustConversion
7+
var caml_pasta_fp_plonk_proof_create = function (
8+
index,
9+
witness_cols,
10+
caml_runtime_tables,
11+
prev_challenges,
12+
prev_sgs
13+
) {
14+
var w = new plonk_wasm.WasmVecVecFp(witness_cols.length - 1);
15+
for (var i = 1; i < witness_cols.length; i++) {
16+
w.push(tsRustConversion.fp.vectorToRust(witness_cols[i]));
17+
}
18+
witness_cols = w;
19+
prev_challenges = tsRustConversion.fp.vectorToRust(prev_challenges);
20+
var wasm_runtime_tables =
21+
tsRustConversion.fp.runtimeTablesToRust(caml_runtime_tables);
22+
prev_sgs = tsRustConversion.fp.pointsToRust(prev_sgs);
23+
var proof = plonk_wasm.caml_pasta_fp_plonk_proof_create(
24+
index,
25+
witness_cols,
26+
wasm_runtime_tables,
27+
prev_challenges,
28+
prev_sgs
29+
);
30+
return tsRustConversion.fp.proofFromRust(proof);
31+
};

src/lib/crypto/kimchi_bindings/js/native/native-overrides/prover-index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ var caml_pasta_fp_plonk_index_create = function (
123123
);
124124
console.time("conversion")
125125
var gate_vec = plonk_wasm.caml_pasta_fp_plonk_gate_vector_from_bytes(gates.serialize());
126-
var urs_ser = plonk_wasm.caml_fp_srs_from_bytes(urs.serialize())
126+
var urs_ser = plonk_wasm.caml_fp_srs_from_bytes_external(urs.serialize())
127127
console.timeEnd("conversion")
128128

129129
console.time("index_create")
@@ -216,7 +216,7 @@ var caml_pasta_fq_plonk_index_create = function (
216216

217217
console.time("conversion")
218218
var gate_vec = plonk_wasm.caml_pasta_fq_plonk_gate_vector_from_bytes(gates.serialize());
219-
var urs_ser = plonk_wasm.caml_fq_srs_from_bytes(urs.serialize())
219+
var urs_ser = plonk_wasm.caml_fq_srs_from_bytes_external(urs.serialize())
220220
console.timeEnd("conversion")
221221

222222
console.time("index_create")

src/lib/crypto/kimchi_bindings/js/native/native-overrides/srs.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,10 +169,14 @@ var caml_fq_srs_commit_evaluations = function (t, domain_size, fqs) {
169169
// Requires: plonk_wasm, tsRustConversionNative
170170
var caml_fq_srs_b_poly_commitment = function (srs, chals) {
171171
console.log("native caml_fq_srs_b_poly_commitment");
172+
console.log("srs", srs);
173+
console.log("chals", chals);
174+
console.log("conv", tsRustConversionNative.fq.vectorToRust(chals))
172175
var res = plonk_wasm.caml_fq_srs_b_poly_commitment(
173176
srs,
174177
tsRustConversionNative.fq.vectorToRust(chals)
175178
);
179+
console.log("res", res);
176180
return tsRustConversionNative.fq.polyCommFromRust(res);
177181
};
178182

src/lib/crypto/kimchi_bindings/js/node_js/node_backend.js

Lines changed: 43 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ override('caml_pasta_fq_poseidon_block_cipher');
3535
override('prover_to_json');
3636
override('prover_index_fp_from_bytes');
3737
override('prover_index_fq_from_bytes');
38-
3938
override('prover_index_fp_to_bytes');
4039
override('prover_index_fq_to_bytes');
4140
override('caml_pasta_fp_plonk_index_max_degree');
@@ -52,72 +51,56 @@ override('caml_pasta_fp_plonk_index_create');
5251
override('caml_pasta_fq_plonk_index_create');
5352
override('caml_pasta_fp_plonk_gate_vector_from_bytes');
5453
override('caml_pasta_fq_plonk_gate_vector_from_bytes');
54+
override('caml_pasta_fp_plonk_gate_vector_from_bytes_external')
5555
override('caml_fp_srs_from_bytes');
5656
override('caml_fq_srs_from_bytes');
5757
override('caml_pasta_fp_plonk_circuit_serialize');
5858
override('caml_pasta_fq_plonk_circuit_serialize');
59-
6059
override('caml_pasta_fp_plonk_index_decode')
6160
override('caml_pasta_fq_plonk_index_decode')
6261
override('caml_pasta_fp_plonk_index_encode');
6362
override('caml_pasta_fq_plonk_index_encode');
6463
override('caml_pasta_fq_plonk_index_read');
6564
override('caml_pasta_fp_plonk_index_read');
66-
67-
// GateVector
68-
[
69-
'caml_pasta_fp_plonk_gate_vector_create',
70-
'caml_pasta_fq_plonk_gate_vector_create',
71-
'caml_pasta_fp_plonk_gate_vector_add',
72-
'caml_pasta_fq_plonk_gate_vector_add',
73-
'caml_pasta_fp_plonk_gate_vector_get',
74-
'caml_pasta_fq_plonk_gate_vector_get',
75-
'caml_pasta_fp_plonk_gate_vector_len',
76-
'caml_pasta_fq_plonk_gate_vector_len',
77-
'caml_pasta_fp_plonk_gate_vector_wrap',
78-
'caml_pasta_fq_plonk_gate_vector_wrap',
79-
'caml_pasta_fp_plonk_gate_vector_digest',
80-
'caml_pasta_fq_plonk_gate_vector_digest',
81-
'caml_pasta_fp_plonk_circuit_serialize',
82-
'caml_pasta_fq_plonk_circuit_serialize',
83-
].forEach(override);
84-
85-
// Poly Commitment, Affine Point conversions
86-
[
87-
'WasmFpPolyComm',
88-
'WasmFqPolyComm',
89-
'WasmGPallas',
90-
'WasmGVesta',
91-
'WasmPastaFp',
92-
'WasmPastaFq',
93-
].forEach(override);
94-
95-
// SRS
96-
[
97-
'WasmFpSrs',
98-
'caml_fp_srs_create',
99-
'caml_fp_srs_create_parallel',
100-
'caml_fq_srs_get',
101-
'caml_fq_srs_set',
102-
'caml_fp_srs_write',
103-
'caml_fp_srs_read',
104-
'caml_fp_srs_add_lagrange_basis',
105-
'caml_fp_srs_commit_evaluations',
106-
'caml_fp_srs_b_poly_commitment',
107-
'caml_fp_srs_batch_accumulator_check',
108-
'caml_fp_srs_batch_accumulator_generate',
109-
'caml_fp_srs_h',
110-
'WasmFqSrs',
111-
'caml_fq_srs_create',
112-
'caml_fq_srs_create_parallel',
113-
'caml_fq_srs_get',
114-
'caml_fq_srs_set',
115-
'caml_fq_srs_write',
116-
'caml_fq_srs_read',
117-
'caml_fq_srs_add_lagrange_basis',
118-
'caml_fq_srs_commit_evaluations',
119-
'caml_fq_srs_b_poly_commitment',
120-
'caml_fq_srs_batch_accumulator_check',
121-
'caml_fq_srs_batch_accumulator_generate',
122-
'caml_fq_srs_h',
123-
].forEach(override);
65+
override('caml_fp_srs_from_bytes_external');
66+
override('caml_fq_srs_from_bytes_external');
67+
override('caml_pasta_fp_plonk_gate_vector_create');
68+
override('caml_pasta_fq_plonk_gate_vector_create');
69+
override('caml_pasta_fp_plonk_gate_vector_add');
70+
override('caml_pasta_fq_plonk_gate_vector_add');
71+
override('caml_pasta_fp_plonk_gate_vector_get');
72+
override('caml_pasta_fq_plonk_gate_vector_get');
73+
override('caml_pasta_fp_plonk_gate_vector_len');
74+
override('caml_pasta_fq_plonk_gate_vector_len');
75+
override('caml_pasta_fp_plonk_gate_vector_wrap');
76+
override('caml_pasta_fq_plonk_gate_vector_wrap');
77+
override('caml_pasta_fp_plonk_gate_vector_digest');
78+
override('caml_pasta_fq_plonk_gate_vector_digest');
79+
override('caml_pasta_fp_plonk_circuit_serialize');
80+
override('caml_pasta_fq_plonk_circuit_serialize');
81+
override('WasmFpSrs');
82+
override('caml_fp_srs_create');
83+
override('caml_fp_srs_create_parallel');
84+
override('caml_fq_srs_get');
85+
override('caml_fq_srs_set');
86+
override('caml_fp_srs_write');
87+
override('caml_fp_srs_read');
88+
override('caml_fp_srs_add_lagrange_basis');
89+
override('caml_fp_srs_commit_evaluations');
90+
override('caml_fp_srs_b_poly_commitment');
91+
override('caml_fp_srs_batch_accumulator_check');
92+
override('caml_fp_srs_batch_accumulator_generate');
93+
override('caml_fp_srs_h');
94+
override('WasmFqSrs');
95+
override('caml_fq_srs_create');
96+
override('caml_fq_srs_create_parallel');
97+
override('caml_fq_srs_get');
98+
override('caml_fq_srs_set');
99+
override('caml_fq_srs_write');
100+
override('caml_fq_srs_read');
101+
override('caml_fq_srs_add_lagrange_basis');
102+
override('caml_fq_srs_commit_evaluations');
103+
override('caml_fq_srs_b_poly_commitment');
104+
override('caml_fq_srs_batch_accumulator_check');
105+
override('caml_fq_srs_batch_accumulator_generate');
106+
override('caml_fq_srs_h');

0 commit comments

Comments
 (0)