Skip to content

Commit 9d34fc4

Browse files
committed
Merge branch 'florian/native-proof' into querolita/napi-proof
2 parents c19a049 + 4c4df14 commit 9d34fc4

File tree

8 files changed

+87
-31
lines changed

8 files changed

+87
-31
lines changed

src/lib/crypto/kimchi_bindings/js/bindings/verifier-index.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,13 @@ var caml_opt_to_rust = function (caml_optional_value, to_rust) {
2424
// Provides: caml_pasta_fp_plonk_verifier_index_create
2525
// Requires: plonk_wasm, tsRustConversion
2626
var caml_pasta_fp_plonk_verifier_index_create = function (x) {
27-
console.log("caml_pasta_fp_plonk_verifier_index_create")
28-
var vk = plonk_wasm.caml_pasta_fp_plonk_verifier_index_create(x);
27+
console.log("caml_pasta_fp_plonk_verifier_index_create", x)
28+
var bytes = plonk_wasm.prover_index_fp_to_bytes(x);
29+
console.log("bytes", bytes)
30+
var index = plonk_wasm.WasmPastaFpPlonkIndex.deserialize(bytes)
31+
console.log("index", index)
32+
var vk = plonk_wasm.caml_pasta_fp_plonk_verifier_index_create(index);
33+
console.log("vk", vk)
2934
return tsRustConversion.fp.verifierIndexFromRust(vk);
3035
};
3136

src/lib/crypto/kimchi_bindings/js/dune

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
native/native-overrides/prover-index.js
2222
native/native-overrides/srs.js
2323
native/native-overrides/util.js
24-
native/native-overrides/proof.js))
24+
native/native-overrides/proof.js
25+
native/native-overrides/verifier-index.js))
2526
(instrumentation
2627
(backend bisect_ppx))
2728
(preprocess

src/lib/crypto/kimchi_bindings/js/native/header-d.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,20 @@
44
// This file gets auto-included in the generated plonk-napi types to supplement
55
// external pointer types.
66

7-
type WasmPastaFpPlonkIndex = {};
8-
type NapiVector<T> = {};
97
type NapiGVesta = {};
108
type NapiGPallas = {};
119
type NapiPastaFpPlonkIndex = {};
1210
type NapiPastaFqPlonkIndex = {};
13-
type NapiLookupInfo = {};
1411
type NapiPastaFp = {};
1512
type NapiPastaFq = {};
13+
type NapiLookupInfo = {};
14+
type WasmPastaFqPlonkIndex = {};
15+
type WasmPastaFpPlonkIndex = {};
16+
type Proof = {}
17+
type NapiVector<T> = {};
18+
type NapiFlatVector<T> = {};
19+
type WasmVecVecFq = {};
20+
type WasmVecVecFp = {};
21+
type Self = {};
1622

1723
// Header section end

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,14 @@ var caml_pasta_fp_plonk_proof_create = function (
2020
var wasm_runtime_tables =
2121
tsRustConversionNative.fp.runtimeTablesToRust(caml_runtime_tables);
2222
prev_sgs = tsRustConversionNative.fp.pointsToRust(prev_sgs);
23+
/*w.push(tsRustConversion.fp.vectorToRust(witness_cols[i]));
24+
}
25+
witness_cols = w;
26+
prev_challenges = tsRustConversion.fp.vectorToRust(prev_challenges);
27+
var wasm_runtime_tables =
28+
tsRustConversion.fp.runtimeTablesToRust(caml_runtime_tables);
29+
prev_sgs = tsRustConversion.fp.pointsToRust(prev_sgs);
30+
*/
2331
var proof = plonk_wasm.caml_pasta_fp_plonk_proof_create(
2432
index,
2533
witness_cols,
@@ -28,6 +36,7 @@ var caml_pasta_fp_plonk_proof_create = function (
2836
prev_sgs
2937
);
3038
return tsRustConversionNative.fp.proofFromRust(proof);
39+
/* return tsRustConversion.fp.proofFromRust(proof); */
3140
};
3241

3342
// Provides: caml_pasta_fp_plonk_proof_verify

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

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
/* global plonk_wasm, caml_jsstring_of_string,
2-
tsBindings, tsRustConversion
2+
tsBindings, tsRustConversionNative
33
*/
44

55
// Provides: tsSrs
66
// Requires: tsBindings, plonk_wasm
7-
var tsSrs = tsBindings.srs(plonk_wasm);
7+
var tsSrs = tsBindings.srsNative(plonk_wasm);
88

99
// srs
1010

1111
// Provides: caml_fp_srs_create
1212
// Requires: tsSrs
13-
var caml_fp_srs_create = tsSrs.fp.create;
13+
var caml_fp_srs_create = function (log_size) {
14+
console.log("native caml_fp_srs_create");
15+
return tsSrs.fp.create(log_size);
16+
}
1417

1518
// Provides: caml_fp_srs_write
1619
// Requires: plonk_wasm, caml_jsstring_of_string
@@ -43,17 +46,25 @@ var caml_fp_srs_read = function (offset, path) {
4346

4447
// Provides: caml_fp_srs_lagrange_commitments_whole_domain
4548
// Requires: tsSrs
46-
var caml_fp_srs_lagrange_commitments_whole_domain =
47-
tsSrs.fp.lagrangeCommitmentsWholeDomain;
49+
var caml_fp_srs_lagrange_commitments_whole_domain = function (srs, domain_size) {
50+
console.log("native caml_fp_srs_lagrange_commitments_whole_domain");
51+
return tsSrs.fp.lagrangeCommitmentsWholeDomain(srs, domain_size);
52+
}
4853

4954
// Provides: caml_fq_srs_lagrange_commitments_whole_domain
5055
// Requires: tsSrs
5156
var caml_fq_srs_lagrange_commitments_whole_domain =
52-
tsSrs.fq.lagrangeCommitmentsWholeDomain;
57+
function (srs, domain_size) {
58+
console.log("native caml_fq_srs_lagrange_commitments_whole_domain");
59+
return tsSrs.fq.lagrangeCommitmentsWholeDomain(srs, domain_size);
60+
}
5361

5462
// Provides: caml_fp_srs_lagrange_commitment
5563
// Requires: tsSrs
56-
var caml_fp_srs_lagrange_commitment = tsSrs.fp.lagrangeCommitment;
64+
var caml_fp_srs_lagrange_commitment = function (srs, i) {
65+
console.log("native caml_fp_srs_lagrange_commitment");
66+
return tsSrs.fp.lagrangeCommitment(srs, i);
67+
}
5768

5869
// Provides: caml_fp_srs_commit_evaluations
5970
// Requires: plonk_wasm, tsRustConversionNative
@@ -114,11 +125,17 @@ var caml_fp_srs_h = function (t) {
114125

115126
// Provides: caml_fp_srs_add_lagrange_basis
116127
// Requires: tsSrs
117-
var caml_fp_srs_add_lagrange_basis = tsSrs.fp.addLagrangeBasis;
128+
var caml_fp_srs_add_lagrange_basis = function (srs, domain_size) {
129+
console.log("native caml_fp_srs_add_lagrange_basis");
130+
return tsSrs.fp.addLagrangeBasis(srs, domain_size);
131+
};
118132

119133
// Provides: caml_fq_srs_create
120134
// Requires: tsSrs
121-
var caml_fq_srs_create = tsSrs.fq.create;
135+
var caml_fq_srs_create = function (log_size) {
136+
console.log("native caml_fq_srs_create");
137+
return tsSrs.fq.create(log_size);
138+
}
122139

123140
// Provides: caml_fq_srs_write
124141
// Requires: plonk_wasm, caml_jsstring_of_string
@@ -151,7 +168,10 @@ var caml_fq_srs_read = function (offset, path) {
151168

152169
// Provides: caml_fq_srs_lagrange_commitment
153170
// Requires: tsSrs
154-
var caml_fq_srs_lagrange_commitment = tsSrs.fq.lagrangeCommitment;
171+
var caml_fq_srs_lagrange_commitment = function (srs, i) {
172+
console.log("native caml_fq_srs_lagrange_commitment");
173+
return tsSrs.fq.lagrangeCommitment(srs, i);
174+
}
155175

156176
// Provides: caml_fq_srs_commit_evaluations
157177
// Requires: plonk_wasm, tsRustConversionNative
@@ -216,4 +236,7 @@ var caml_fq_srs_h = function (t) {
216236

217237
// Provides: caml_fq_srs_add_lagrange_basis
218238
// Requires: tsSrs
219-
var caml_fq_srs_add_lagrange_basis = tsSrs.fq.addLagrangeBasis;
239+
var caml_fq_srs_add_lagrange_basis = function (srs, domain_size) {
240+
console.log("native caml_fq_srs_add_lagrange_basis");
241+
return tsSrs.fq.addLagrangeBasis(srs, domain_size);
242+
};

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

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,20 @@
44
// Provides: caml_pasta_fq_plonk_verifier_index_shifts
55
// Requires: plonk_wasm, tsRustConversionNative
66
var caml_pasta_fq_plonk_verifier_index_shifts = function (log2_size) {
7-
return tsRustConversionNative.fq.shiftsFromRust(
8-
plonk_wasm.caml_pasta_fq_plonk_verifier_index_shifts(log2_size)
9-
);
7+
console.log("log2_size", log2_size);
8+
try {
9+
var shifts = plonk_wasm.caml_pasta_fq_plonk_verifier_index_shifts(log2_size);
10+
console.log("shifts", shifts);
11+
console.log("shiftsFromRust", tsRustConversionNative.fq.shiftsFromRust(
12+
shifts
13+
))
14+
return tsRustConversionNative.fq.shiftsFromRust(
15+
shifts
16+
);
17+
} catch (e) {
18+
console.error("Error calling caml_pasta_fq_plonk_verifier_index_shifts:", e);
19+
throw e;
20+
}
1021
};
1122

1223
// Provides: caml_pasta_fp_plonk_verifier_index_shifts

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

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ var plonk_wasm = (function() {
1919
"caml_pasta_fq_poseidon_block_cipher",
2020
"caml_pasta_fp_plonk_verifier_index_shifts",
2121
"caml_pasta_fq_plonk_verifier_index_shifts",
22-
"WasmFpPolyComm",
23-
"WasmFqPolyComm",
2422
"caml_pasta_fp_plonk_gate_vector_create",
2523
"caml_pasta_fq_plonk_gate_vector_create",
2624
"caml_pasta_fp_plonk_gate_vector_add",
@@ -60,8 +58,8 @@ var plonk_wasm = (function() {
6058
"WasmFpSrs",
6159
"caml_fp_srs_create",
6260
"caml_fp_srs_create_parallel",
63-
"caml_fq_srs_get",
64-
"caml_fq_srs_set",
61+
"caml_fp_srs_get",
62+
"caml_fp_srs_set",
6563
"caml_fp_srs_write",
6664
"caml_fp_srs_read",
6765
"caml_fp_srs_add_lagrange_basis",
@@ -83,10 +81,10 @@ var plonk_wasm = (function() {
8381
"caml_fq_srs_batch_accumulator_check",
8482
"caml_fq_srs_batch_accumulator_generate",
8583
"caml_fq_srs_h",
86-
"WasmFpPolyComm",
87-
"WasmFqPolyComm",
88-
"WasmGPallas",
89-
"WasmGVesta",
84+
/* "WasmFpPolyComm",
85+
"WasmFqPolyComm", */
86+
/* "WasmGPallas",
87+
"WasmGVesta", */
9088
"WasmPastaFp",
9189
"WasmPastaFq",
9290
"caml_pasta_fp_plonk_proof_create",
@@ -106,7 +104,10 @@ var plonk_wasm = (function() {
106104
];
107105

108106
overrides.forEach(function (override) {
109-
wasm[override] = native[override]
107+
wasm[override] = function(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) {
108+
console.log("calling native override:", override);
109+
return native[override](x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12);
110+
}
110111
})
111112
wasm.native = true;
112113
} catch (e) {
@@ -115,4 +116,4 @@ var plonk_wasm = (function() {
115116
}
116117
}
117118
return wasm
118-
})()
119+
})()

0 commit comments

Comments
 (0)