Skip to content

Commit cdbaa27

Browse files
committed
jsoo: comment out wasm gate vector bindings and override for native
1 parent 06de741 commit cdbaa27

File tree

10 files changed

+235
-18
lines changed

10 files changed

+235
-18
lines changed

src/lib/crypto/kimchi_bindings/js/bindings/gate-vector.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@
33
free_on_finalize, tsRustConversion, caml_bytes_of_uint8array
44
*/
55

6+
/*
67
// Provides: caml_pasta_fp_plonk_gate_vector_create
78
// Requires: plonk_wasm, free_on_finalize
89
var caml_pasta_fp_plonk_gate_vector_create = function () {
910
return free_on_finalize(plonk_wasm.caml_pasta_fp_plonk_gate_vector_create());
1011
};
12+
*/
1113

14+
/*
1215
// Provides: caml_pasta_fp_plonk_gate_vector_add
1316
// Requires: plonk_wasm, tsRustConversion
1417
var caml_pasta_fp_plonk_gate_vector_add = function (v, x) {
@@ -17,21 +20,27 @@ var caml_pasta_fp_plonk_gate_vector_add = function (v, x) {
1720
tsRustConversion.fp.gateToRust(x)
1821
);
1922
};
23+
*/
2024

25+
/*
2126
// Provides: caml_pasta_fp_plonk_gate_vector_get
2227
// Requires: plonk_wasm, tsRustConversion
2328
var caml_pasta_fp_plonk_gate_vector_get = function (v, i) {
2429
return tsRustConversion.fp.gateFromRust(
2530
plonk_wasm.caml_pasta_fp_plonk_gate_vector_get(v, i)
2631
);
2732
};
33+
*/
2834

35+
/*
2936
// Provides: caml_pasta_fp_plonk_gate_vector_len
3037
// Requires: plonk_wasm
3138
var caml_pasta_fp_plonk_gate_vector_len = function (v) {
3239
return plonk_wasm.caml_pasta_fp_plonk_gate_vector_len(v);
3340
};
41+
*/
3442

43+
/*
3544
// Provides: caml_pasta_fp_plonk_gate_vector_wrap
3645
// Requires: plonk_wasm, tsRustConversion
3746
var caml_pasta_fp_plonk_gate_vector_wrap = function (v, x, y) {
@@ -41,7 +50,9 @@ var caml_pasta_fp_plonk_gate_vector_wrap = function (v, x, y) {
4150
tsRustConversion.wireToRust(y)
4251
);
4352
};
53+
*/
4454

55+
/*
4556
// Provides: caml_pasta_fp_plonk_gate_vector_digest
4657
// Requires: plonk_wasm, caml_bytes_of_uint8array
4758
var caml_pasta_fp_plonk_gate_vector_digest = function (
@@ -54,7 +65,9 @@ var caml_pasta_fp_plonk_gate_vector_digest = function (
5465
);
5566
return caml_bytes_of_uint8array(uint8array);
5667
};
68+
*/
5769

70+
/*
5871
// Provides: caml_pasta_fp_plonk_circuit_serialize
5972
// Requires: plonk_wasm, caml_string_of_jsstring
6073
var caml_pasta_fp_plonk_circuit_serialize = function (
@@ -68,13 +81,17 @@ var caml_pasta_fp_plonk_circuit_serialize = function (
6881
)
6982
);
7083
};
84+
*/
7185

86+
/*
7287
// Provides: caml_pasta_fq_plonk_gate_vector_create
7388
// Requires: plonk_wasm, free_on_finalize
7489
var caml_pasta_fq_plonk_gate_vector_create = function () {
7590
return free_on_finalize(plonk_wasm.caml_pasta_fq_plonk_gate_vector_create());
7691
};
92+
*/
7793

94+
/*
7895
// Provides: caml_pasta_fq_plonk_gate_vector_add
7996
// Requires: plonk_wasm, tsRustConversion
8097
var caml_pasta_fq_plonk_gate_vector_add = function (v, x) {
@@ -83,21 +100,27 @@ var caml_pasta_fq_plonk_gate_vector_add = function (v, x) {
83100
tsRustConversion.fq.gateToRust(x)
84101
);
85102
};
103+
*/
86104

105+
/*
87106
// Provides: caml_pasta_fq_plonk_gate_vector_get
88107
// Requires: plonk_wasm, tsRustConversion
89108
var caml_pasta_fq_plonk_gate_vector_get = function (v, i) {
90109
return tsRustConversion.fq.gateFromRust(
91110
plonk_wasm.caml_pasta_fq_plonk_gate_vector_get(v, i)
92111
);
93112
};
113+
*/
94114

115+
/*
95116
// Provides: caml_pasta_fq_plonk_gate_vector_len
96117
// Requires: plonk_wasm
97118
var caml_pasta_fq_plonk_gate_vector_len = function (v) {
98119
return plonk_wasm.caml_pasta_fq_plonk_gate_vector_len(v);
99120
};
121+
*/
100122

123+
/*
101124
// Provides: caml_pasta_fq_plonk_gate_vector_wrap
102125
// Requires: plonk_wasm, tsRustConversion
103126
var caml_pasta_fq_plonk_gate_vector_wrap = function (v, x, y) {
@@ -107,7 +130,9 @@ var caml_pasta_fq_plonk_gate_vector_wrap = function (v, x, y) {
107130
tsRustConversion.wireToRust(y)
108131
);
109132
};
133+
*/
110134

135+
/*
111136
// Provides: caml_pasta_fq_plonk_gate_vector_digest
112137
// Requires: plonk_wasm, caml_bytes_of_uint8array
113138
var caml_pasta_fq_plonk_gate_vector_digest = function (
@@ -120,3 +145,4 @@ var caml_pasta_fq_plonk_gate_vector_digest = function (
120145
);
121146
return caml_bytes_of_uint8array(uint8array);
122147
};
148+
*/

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
free_on_finalize, caml_jsstring_of_string
33
*/
44

5+
/*
56
// Provides: caml_pasta_fq_plonk_circuit_serialize
67
// Requires: plonk_wasm, caml_string_of_jsstring
78
var caml_pasta_fq_plonk_circuit_serialize = function (
@@ -15,6 +16,7 @@ var caml_pasta_fq_plonk_circuit_serialize = function (
1516
)
1617
);
1718
};
19+
*/
1820

1921
// Provides: caml_pasta_fp_plonk_index_create
2022
// Requires: plonk_wasm, free_on_finalize, tsRustConversion

src/lib/crypto/kimchi_bindings/js/dune

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
bindings/util.js
1616
bindings/srs.js
1717
bindings/verifier-index.js
18+
native/native-overrides/gate-vector.js
1819
native/native-overrides/oracles.js
1920
native/native-overrides/util.js
2021
))
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
/* eslint-disable no-unused-vars */
2+
/* global plonk_wasm, tsRustConversionNative, caml_bytes_of_uint8array, caml_string_of_jsstring */
3+
4+
// Provides: caml_pasta_fp_plonk_gate_vector_create
5+
// Requires: plonk_wasm
6+
var caml_pasta_fp_plonk_gate_vector_create = function () {
7+
return plonk_wasm.caml_pasta_fp_plonk_gate_vector_create();
8+
};
9+
10+
// Provides: caml_pasta_fp_plonk_gate_vector_add
11+
// Requires: plonk_wasm, tsRustConversionNative
12+
var caml_pasta_fp_plonk_gate_vector_add = function (vector, gate) {
13+
return plonk_wasm.caml_pasta_fp_plonk_gate_vector_add(
14+
vector,
15+
tsRustConversionNative.fp.gateToRust(gate)
16+
);
17+
};
18+
19+
// Provides: caml_pasta_fp_plonk_gate_vector_get
20+
// Requires: plonk_wasm, tsRustConversionNative
21+
var caml_pasta_fp_plonk_gate_vector_get = function (vector, index) {
22+
if (typeof console !== 'undefined') {
23+
console.log('Using native fp gate_vector get');
24+
}
25+
return tsRustConversionNative.fp.gateFromRust(
26+
plonk_wasm.caml_pasta_fp_plonk_gate_vector_get(vector, index)
27+
);
28+
};
29+
30+
// Provides: caml_pasta_fp_plonk_gate_vector_len
31+
// Requires: plonk_wasm
32+
var caml_pasta_fp_plonk_gate_vector_len = function (vector) {
33+
if (typeof console !== 'undefined') {
34+
console.log('Using native fp gate_vector len');
35+
}
36+
return plonk_wasm.caml_pasta_fp_plonk_gate_vector_len(vector);
37+
};
38+
39+
// Provides: caml_pasta_fp_plonk_gate_vector_wrap
40+
// Requires: plonk_wasm, tsRustConversionNative
41+
var caml_pasta_fp_plonk_gate_vector_wrap = function (vector, target, head) {
42+
if (typeof console !== 'undefined') {
43+
console.log('Using native fp gate_vector wrap');
44+
}
45+
return plonk_wasm.caml_pasta_fp_plonk_gate_vector_wrap(
46+
vector,
47+
tsRustConversionNative.wireToRust(target),
48+
tsRustConversionNative.wireToRust(head)
49+
);
50+
};
51+
52+
// Provides: caml_pasta_fp_plonk_gate_vector_digest
53+
// Requires: plonk_wasm, caml_bytes_of_uint8array
54+
var caml_pasta_fp_plonk_gate_vector_digest = function (public_input_size, gate_vector) {
55+
var bytes = plonk_wasm.caml_pasta_fp_plonk_gate_vector_digest(
56+
public_input_size,
57+
gate_vector
58+
);
59+
if (!(bytes instanceof Uint8Array)) {
60+
bytes = Uint8Array.from(bytes);
61+
}
62+
return caml_bytes_of_uint8array(bytes);
63+
};
64+
65+
66+
// Provides: caml_pasta_fp_plonk_circuit_serialize
67+
// Requires: plonk_wasm, caml_string_of_jsstring
68+
var caml_pasta_fp_plonk_circuit_serialize = function (public_input_size, gate_vector) {
69+
return caml_string_of_jsstring(
70+
plonk_wasm.caml_pasta_fp_plonk_circuit_serialize(public_input_size, gate_vector)
71+
);
72+
};
73+
74+
// --- Fq versions ---
75+
76+
// Provides: caml_pasta_fq_plonk_gate_vector_create
77+
// Requires: plonk_wasm
78+
var caml_pasta_fq_plonk_gate_vector_create = function () {
79+
return plonk_wasm.caml_pasta_fq_plonk_gate_vector_create();
80+
};
81+
82+
// Provides: caml_pasta_fq_plonk_gate_vector_add
83+
// Requires: plonk_wasm, tsRustConversionNative
84+
var caml_pasta_fq_plonk_gate_vector_add = function (vector, gate) {
85+
return plonk_wasm.caml_pasta_fq_plonk_gate_vector_add(
86+
vector,
87+
tsRustConversionNative.fq.gateToRust(gate)
88+
);
89+
};
90+
91+
// Provides: caml_pasta_fq_plonk_gate_vector_get
92+
// Requires: plonk_wasm, tsRustConversionNative
93+
var caml_pasta_fq_plonk_gate_vector_get = function (vector, index) {
94+
if (typeof console !== 'undefined') {
95+
console.log('Using native fq gate_vector get');
96+
}
97+
return tsRustConversionNative.fq.gateFromRust(
98+
plonk_wasm.caml_pasta_fq_plonk_gate_vector_get(vector, index)
99+
);
100+
};
101+
102+
103+
// Provides: caml_pasta_fq_plonk_gate_vector_len
104+
// Requires: plonk_wasm
105+
var caml_pasta_fq_plonk_gate_vector_len = function (vector) {
106+
if (typeof console !== 'undefined') {
107+
console.log('Using native fq gate_vector len');
108+
}
109+
return plonk_wasm.caml_pasta_fq_plonk_gate_vector_len(vector);
110+
};
111+
112+
// Provides: caml_pasta_fq_plonk_gate_vector_wrap
113+
// Requires: plonk_wasm, tsRustConversionNative
114+
var caml_pasta_fq_plonk_gate_vector_wrap = function (vector, target, head) {
115+
if (typeof console !== 'undefined') {
116+
console.log('Using native fq gate_vector wrap');
117+
}
118+
return plonk_wasm.caml_pasta_fq_plonk_gate_vector_wrap(
119+
vector,
120+
tsRustConversionNative.wireToRust(target),
121+
tsRustConversionNative.wireToRust(head)
122+
);
123+
};
124+
125+
// Provides: caml_pasta_fq_plonk_gate_vector_digest
126+
// Requires: plonk_wasm, caml_bytes_of_uint8array
127+
var caml_pasta_fq_plonk_gate_vector_digest = function (public_input_size, gate_vector) {
128+
var bytes = plonk_wasm.caml_pasta_fq_plonk_gate_vector_digest(
129+
public_input_size,
130+
gate_vector
131+
);
132+
if (!(bytes instanceof Uint8Array)) {
133+
bytes = Uint8Array.from(bytes);
134+
}
135+
return caml_bytes_of_uint8array(bytes);
136+
};
137+
138+
// Provides: caml_pasta_fq_plonk_circuit_serialize
139+
// Requires: plonk_wasm, caml_string_of_jsstring
140+
var caml_pasta_fq_plonk_circuit_serialize = function (public_input_size, gate_vector) {
141+
return caml_string_of_jsstring(
142+
plonk_wasm.caml_pasta_fq_plonk_circuit_serialize(public_input_size, gate_vector)
143+
);
144+
};

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
// Requires: plonk_wasm, tsRustConversionNative
66
function caml_pasta_fq_poseidon_block_cipher(_fake_params, fq_vector) {
77

8-
console.log("overriding the old wasm caml_pasta_fq_poseidon_block_cipher, now using the native one")
8+
//console.log("overriding the old wasm caml_pasta_fq_poseidon_block_cipher, now using the native one")
99

1010
// 1. get permuted field vector from rust
1111
var wasm_flat_vector = plonk_wasm.caml_pasta_fq_poseidon_block_cipher(
@@ -23,7 +23,7 @@ function caml_pasta_fq_poseidon_block_cipher(_fake_params, fq_vector) {
2323
// Requires: plonk_wasm, tsRustConversionNative
2424
function caml_pasta_fp_poseidon_block_cipher(_fake_params, fp_vector) {
2525

26-
console.log("overriding the old wasm caml_pasta_fp_poseidon_block_cipher, now using the native one")
26+
//console.log("overriding the old wasm caml_pasta_fp_poseidon_block_cipher, now using the native one")
2727

2828

2929
// 1. get permuted field vector from rust

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* global plonk_wasm, tsRustConversionNative, getTsBindings, tsBindings */
1+
/* global plonk_wasm, tsRustConversionNative, getTsBindings, tsBindings */
22

33

44
// Provides: tsRustConversionNative

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

Lines changed: 52 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ try {
77
// native not available, keep WASM
88
}
99

10+
if (native) {
11+
plonk_wasm.__kimchi_napi = true;
12+
if (typeof globalThis !== 'undefined') {
13+
globalThis.__kimchi_napi = true;
14+
}
15+
}
16+
1017
function snakeToCamel(name) {
1118
return name.replace(/_([a-z])/g, function (_match, ch) {
1219
return ch.toUpperCase();
@@ -23,14 +30,51 @@ function override(functionName) {
2330
}
2431

2532
// Overwrite only the functions that are already available in native
33+
34+
// Poseidon
35+
[
36+
'caml_pasta_fp_poseidon_block_cipher',
37+
'caml_pasta_fq_poseidon_block_cipher',
38+
].forEach(override);
39+
40+
// PolyComm
41+
/*
2642
[
27-
'caml_pasta_fp_poseidon_block_cipher', // Poseidon
28-
'caml_pasta_fq_poseidon_block_cipher', // Poseidon
29-
'WasmFpPolyComm', // PolyComm
30-
'WasmFqPolyComm', // PolyComm
31-
'WasmGPallas', // Group
32-
'WasmGVesta', // Group
33-
'WasmVecVecFp', // Vector
34-
'WasmVecVecFq', // Vector
43+
'WasmFpPolyComm',
44+
'WasmFqPolyComm',
3545
].forEach(override);
46+
*/
3647

48+
// Group
49+
/*
50+
[
51+
'WasmGPallas',
52+
'WasmGVesta',
53+
].forEach(override);
54+
*/
55+
56+
// Vector
57+
/*
58+
[
59+
'WasmVecVecFp',
60+
'WasmVecVecFq',
61+
].forEach(override);
62+
*/
63+
64+
// GateVector
65+
[
66+
'caml_pasta_fp_plonk_gate_vector_create',
67+
'caml_pasta_fq_plonk_gate_vector_create',
68+
'caml_pasta_fp_plonk_gate_vector_add',
69+
'caml_pasta_fq_plonk_gate_vector_add',
70+
'caml_pasta_fp_plonk_gate_vector_get',
71+
'caml_pasta_fq_plonk_gate_vector_get',
72+
'caml_pasta_fp_plonk_gate_vector_len',
73+
'caml_pasta_fq_plonk_gate_vector_len',
74+
'caml_pasta_fp_plonk_gate_vector_wrap',
75+
'caml_pasta_fq_plonk_gate_vector_wrap',
76+
'caml_pasta_fp_plonk_gate_vector_digest',
77+
'caml_pasta_fq_plonk_gate_vector_digest',
78+
'caml_pasta_fp_plonk_circuit_serialize',
79+
'caml_pasta_fq_plonk_circuit_serialize',
80+
].forEach(override);

0 commit comments

Comments
 (0)