diff --git a/Cargo.lock b/Cargo.lock index cccd069127..8e051970fa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -905,6 +905,15 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "convert_case" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "core-foundation-sys" version = "0.8.6" @@ -1025,6 +1034,22 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "ctor" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67773048316103656a637612c4a62477603b777d91d9c62ff2290f9cde178fdb" +dependencies = [ + "ctor-proc-macro", + "dtor", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2931af7e13dc045d8e9d26afccc6fa115d64e115c9c84b1166288b46f6782c2" + [[package]] name = "cty" version = "0.2.2" @@ -1148,6 +1173,21 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "dtor" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e58a0764cddb55ab28955347b45be00ade43d4d6f3ba4bf3dc354e4ec9432934" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" + [[package]] name = "educe" version = "0.6.0" @@ -2388,15 +2428,16 @@ dependencies = [ [[package]] name = "napi" -version = "2.16.17" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55740c4ae1d8696773c78fdafd5d0e5fe9bc9f1b071c7ba493ba5c413a9184f3" +checksum = "f1b74e3dce5230795bb4d2821b941706dee733c7308752507254b0497f39cad7" dependencies = [ "bitflags 2.4.2", - "ctor", - "napi-derive", + "ctor 0.5.0", + "napi-build", "napi-sys", - "once_cell", + "nohash-hasher", + "rustc-hash", ] [[package]] @@ -2407,12 +2448,12 @@ checksum = "dcae8ad5609d14afb3a3b91dee88c757016261b151e9dcecabf1b2a31a6cab14" [[package]] name = "napi-derive" -version = "2.16.13" +version = "3.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cbe2585d8ac223f7d34f13701434b9d5f4eb9c332cccce8dee57ea18ab8ab0c" +checksum = "7552d5a579b834614bbd496db5109f1b9f1c758f08224b0dee1e408333adf0d0" dependencies = [ - "cfg-if 1.0.0", - "convert_case", + "convert_case 0.8.0", + "ctor 0.5.0", "napi-derive-backend", "proc-macro2", "quote", @@ -2421,24 +2462,22 @@ dependencies = [ [[package]] name = "napi-derive-backend" -version = "1.0.75" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1639aaa9eeb76e91c6ae66da8ce3e89e921cd3885e99ec85f4abacae72fc91bf" +checksum = "5f6a81ac7486b70f2532a289603340862c06eea5a1e650c1ffeda2ce1238516a" dependencies = [ - "convert_case", - "once_cell", + "convert_case 0.8.0", "proc-macro2", "quote", - "regex", "semver", "syn 2.0.100", ] [[package]] name = "napi-sys" -version = "2.4.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427802e8ec3a734331fec1035594a210ce1ff4dc5bc1950530920ab717964ea3" +checksum = "3e4e7135a8f97aa0f1509cce21a8a1f9dcec1b50d8dee006b48a5adb69a9d64d" dependencies = [ "libloading", ] @@ -2491,6 +2530,12 @@ dependencies = [ "libc", ] +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + [[package]] name = "nom" version = "7.1.3" @@ -2696,7 +2741,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7543703a85e10e5fd49258c8c820bda6e909d0feaf02f6db25197fe4b5f36bac" dependencies = [ - "convert_case", + "convert_case 0.6.0", "proc-macro2", "quote", "syn 1.0.109", @@ -3375,6 +3420,12 @@ version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + [[package]] name = "rustix" version = "0.38.30" @@ -3475,7 +3526,7 @@ dependencies = [ "ark-std", "clap 4.4.18", "criterion", - "ctor", + "ctor 0.2.9", "hex", "kimchi", "mina-curves", diff --git a/Cargo.toml b/Cargo.toml index cbb7773e07..16c2c03a2d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,8 +62,8 @@ libflate = "2" log = "0.4.20" num-bigint = { version = "0.4.4", features = ["rand", "serde"] } num-integer = "0.1.45" -napi = { version = "2.16.8", default-features = false, features = ["napi7"] } -napi-derive = "2.16.8" +napi = { version = "3.2.5", features = ["napi7"] } +napi-derive = { version = "3.2.5", features = ["type-def"] } napi-build = "2.1.0" ocaml = { version = "0.22.2" } ocaml-gen = { version = "1.0.0" } diff --git a/plonk-napi/Cargo.toml b/plonk-napi/Cargo.toml index 87dfbbd0da..7ffea5d187 100644 --- a/plonk-napi/Cargo.toml +++ b/plonk-napi/Cargo.toml @@ -12,7 +12,7 @@ name = "plonk_napi" crate-type = ["cdylib"] # to generate a dynamic library that is loadable by Node [dependencies] -napi = { workspace = true, features = ["napi7"] } +napi.workspace = true napi-derive.workspace = true # arkworks diff --git a/plonk-napi/src/canary.rs b/plonk-napi/src/canary.rs new file mode 100644 index 0000000000..771102e521 --- /dev/null +++ b/plonk-napi/src/canary.rs @@ -0,0 +1,5 @@ +use napi_derive::napi; + + +#[napi] +pub const CANARY_VALUE:u64 = 1337; \ No newline at end of file diff --git a/plonk-napi/src/lib.rs b/plonk-napi/src/lib.rs index ce7da054aa..99a7e3ce2d 100644 --- a/plonk-napi/src/lib.rs +++ b/plonk-napi/src/lib.rs @@ -1,6 +1,11 @@ mod poseidon; +mod canary; pub use poseidon::{ caml_pasta_fp_poseidon_block_cipher, caml_pasta_fq_poseidon_block_cipher, }; + +pub use canary::{ + CANARY_VALUE, +}; \ No newline at end of file diff --git a/plonk-napi/src/poseidon.rs b/plonk-napi/src/poseidon.rs index dc7c9f108d..0c46836072 100644 --- a/plonk-napi/src/poseidon.rs +++ b/plonk-napi/src/poseidon.rs @@ -7,7 +7,7 @@ use wasm_types::{FlatVector, FlatVectorElem}; // fp -#[napi] +#[napi(js_name = "caml_pasta_fp_poseidon_block_cipher")] pub fn caml_pasta_fp_poseidon_block_cipher(state: Uint8Array) -> Result { println!("from native rust"); @@ -32,7 +32,7 @@ pub fn caml_pasta_fp_poseidon_block_cipher(state: Uint8Array) -> Result Result { println!("from native rust");