diff --git a/backend/controllers/benchmarkResultController.js b/backend/controllers/benchmarkResultController.js index 92e38ad0..20b8ef8d 100644 --- a/backend/controllers/benchmarkResultController.js +++ b/backend/controllers/benchmarkResultController.js @@ -8,17 +8,17 @@ import { logger } from '../utils/logger.js'; export const receiveBenchmarkResult = async (req, res) => { try { const data = req.body; - + console.log('\n=== Complete Data ===\n'); console.log(JSON.stringify(data, null, 2)); console.log('\n=====================================\n'); - + // Check for duplicate based on combination of circuit, framework, language, and androidId const androidId = data.deviceInfo?.androidId; const circuit = data.circuit; const framework = data.framework; const language = data.language; - + if (androidId && circuit && framework && language) { // Query Firestore to check if this exact combination already exists const existingSnapshot = await db.collection(COLLECTION_NAMES.BENCHMARKS) @@ -28,7 +28,7 @@ export const receiveBenchmarkResult = async (req, res) => { .where('language', '==', language) .limit(1) .get(); - + if (!existingSnapshot.empty) { logger.info(`Duplicate benchmark detected - Circuit: ${circuit}, Framework: ${framework}, Language: ${language}, AndroidId: ${androidId}`); return res.status(200).json({ @@ -42,22 +42,22 @@ export const receiveBenchmarkResult = async (req, res) => { }); } } - + // Add the benchmark data to Firestore const docRef = await db.collection(COLLECTION_NAMES.BENCHMARKS).add({ ...data, createdAt: new Date().toISOString() }); - + logger.info(`Benchmark data saved successfully with ID: ${docRef.id}`); - + res.status(201).json({ success: true, message: 'Benchmark result received and saved successfully', documentId: docRef.id, receivedAt: new Date().toISOString() }); - + } catch (error) { logger.error('Error receiving benchmark result:', error); res.status(500).json({ error: error.message }); diff --git a/benchmarking-suite/moPro/Cargo.lock b/benchmarking-suite/moPro/Cargo.lock index 7e460446..c85bef07 100644 --- a/benchmarking-suite/moPro/Cargo.lock +++ b/benchmarking-suite/moPro/Cargo.lock @@ -183,18 +183,18 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ "windows-sys 0.60.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.10" +version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", @@ -975,9 +975,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.51" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5" +checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" dependencies = [ "clap_builder", "clap_derive", @@ -985,9 +985,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.51" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a" +checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" dependencies = [ "anstream", "anstyle", @@ -1284,6 +1284,24 @@ dependencies = [ "syn 2.0.110", ] +[[package]] +name = "deimos-noir" +version = "0.1.0" +dependencies = [ + "anyhow", + "bincode 1.3.3", + "gemini-fibonacci", + "hyperplonk-fibonacci", + "mopro-ffi", + "mopro-wasm", + "noir", + "plonk-fibonacci", + "serde", + "serde_json", + "serial_test", + "thiserror 2.0.17", +] + [[package]] name = "der" version = "0.7.10" @@ -2961,31 +2979,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "mopro-example-app" -version = "0.1.0" -dependencies = [ - "anyhow", - "bincode 1.3.3", - "circom-prover", - "gemini-fibonacci", - "hyperplonk-fibonacci", - "methods", - "mopro-ffi", - "mopro-wasm", - "noir", - "num-bigint 0.4.6", - "plonk-fibonacci", - "risc0-circuit", - "risc0-zkvm", - "rust-witness", - "serde", - "serde_json", - "serial_test", - "thiserror 2.0.17", - "witnesscalc-adapter", -] - [[package]] name = "mopro-ffi" version = "0.3.2" @@ -3909,7 +3902,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ "heck 0.5.0", - "itertools 0.14.0", + "itertools 0.10.5", "log", "multimap", "once_cell", @@ -4129,9 +4122,9 @@ dependencies = [ [[package]] name = "rangemap" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7e49bb0bf967717f7bd674458b3d6b0c5f48ec7e3038166026a69fc22223" +checksum = "acbbbbea733ec66275512d0b9694f34102e7d5406fdbe2ad8d21b28dce92887c" [[package]] name = "rawpointer" diff --git a/benchmarking-suite/moPro/mopro-example-app/Cargo.lock b/benchmarking-suite/moPro/mopro-example-app/Cargo.lock index 6a5d0b5a..e8c0cafe 100644 --- a/benchmarking-suite/moPro/mopro-example-app/Cargo.lock +++ b/benchmarking-suite/moPro/mopro-example-app/Cargo.lock @@ -2,77 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "acir" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "acir_field", - "base64", - "bincode 2.0.1", - "brillig", - "color-eyre", - "flate2", - "noir_protobuf", - "num_enum", - "prost", - "prost-build", - "protoc-prebuilt", - "rmp-serde", - "serde", - "serde-big-array", - "strum", - "strum_macros", - "thiserror 1.0.69", -] - -[[package]] -name = "acir_field" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "ark-bn254", - "ark-ff", - "ark-std 0.5.0", - "cfg-if", - "hex", - "num-bigint", - "serde", -] - -[[package]] -name = "acvm" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "acir", - "acvm_blackbox_solver", - "brillig_vm", - "fxhash", - "indexmap 2.12.0", - "serde", - "thiserror 1.0.69", - "tracing", -] - -[[package]] -name = "acvm_blackbox_solver" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "acir", - "blake2", - "blake3", - "k256", - "keccak", - "libaes", - "log", - "num-bigint", - "p256", - "sha2", - "thiserror 1.0.69", -] - [[package]] name = "addr2line" version = "0.25.1" @@ -100,80 +29,12 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] - [[package]] name = "allocator-api2" version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anstream" -version = "0.6.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" - -[[package]] -name = "anstyle-parse" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" -dependencies = [ - "windows-sys 0.60.2", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" -dependencies = [ - "anstyle", - "once_cell_polyfill", - "windows-sys 0.60.2", -] - [[package]] name = "anyhow" version = "1.0.100" @@ -189,7 +50,7 @@ dependencies = [ "ark-ec", "ark-ff", "ark-serialize", - "ark-std 0.5.0", + "ark-std", ] [[package]] @@ -200,7 +61,7 @@ checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" dependencies = [ "ark-ec", "ark-ff", - "ark-std 0.5.0", + "ark-std", ] [[package]] @@ -216,10 +77,10 @@ dependencies = [ "ark-relations", "ark-serialize", "ark-snark", - "ark-std 0.5.0", + "ark-std", "blake2", "derivative", - "digest 0.10.7", + "digest", "fnv", "merlin", "rayon", @@ -247,11 +108,11 @@ dependencies = [ "ark-ff", "ark-poly", "ark-serialize", - "ark-std 0.5.0", + "ark-std", "educe", "fnv", "hashbrown 0.15.5", - "itertools 0.13.0", + "itertools", "num-bigint", "num-integer", "num-traits", @@ -268,11 +129,11 @@ dependencies = [ "ark-ff-asm", "ark-ff-macros", "ark-serialize", - "ark-std 0.5.0", + "ark-std", "arrayvec", - "digest 0.10.7", + "digest", "educe", - "itertools 0.13.0", + "itertools", "num-bigint", "num-traits", "paste", @@ -315,22 +176,10 @@ dependencies = [ "ark-poly", "ark-relations", "ark-serialize", - "ark-std 0.5.0", + "ark-std", "rayon", ] -[[package]] -name = "ark-grumpkin" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef677b59f5aff4123207c4dceb1c0ec8fdde2d4af7886f48be42ad864bfa0352" -dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff", - "ark-std 0.5.0", -] - [[package]] name = "ark-poly" version = "0.5.0" @@ -340,7 +189,7 @@ dependencies = [ "ahash", "ark-ff", "ark-serialize", - "ark-std 0.5.0", + "ark-std", "educe", "fnv", "hashbrown 0.15.5", @@ -354,7 +203,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec46ddc93e7af44bcab5230937635b06fb5744464dd6a7e7b083e80ebd274384" dependencies = [ "ark-ff", - "ark-std 0.5.0", + "ark-std", "tracing", "tracing-subscriber 0.2.25", ] @@ -366,9 +215,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" dependencies = [ "ark-serialize-derive", - "ark-std 0.5.0", + "ark-std", "arrayvec", - "digest 0.10.7", + "digest", "num-bigint", "rayon", ] @@ -393,17 +242,7 @@ dependencies = [ "ark-ff", "ark-relations", "ark-serialize", - "ark-std 0.5.0", -] - -[[package]] -name = "ark-std" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" -dependencies = [ - "num-traits", - "rand 0.8.5", + "ark-std", ] [[package]] @@ -413,39 +252,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" dependencies = [ "num-traits", - "rand 0.8.5", + "rand", "rayon", ] -[[package]] -name = "arrayref" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" - [[package]] name = "arrayvec" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -[[package]] -name = "async-trait" -version = "0.1.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.107", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - [[package]] name = "autocfg" version = "1.5.0" @@ -467,24 +283,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64ct" -version = "1.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" - [[package]] name = "basic-toml" version = "0.1.10" @@ -494,25 +292,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bb" -version = "1.0.0-nightly.20250723" -source = "git+https://github.com/zkmopro/noir-rs?branch=v1.0.0-beta.8-3#0059db4520a60aeb83743c28b1c59ff578dbb07a" -dependencies = [ - "cc", - "chkstk_stub", - "num-bigint", - "thiserror 1.0.69", - "tracing", - "tracing-subscriber 0.3.20", -] - -[[package]] -name = "binary-merge" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597bb81c80a54b6a4381b23faba8d7774b144c94cbd1d6fe3f1329bd776554ab" - [[package]] name = "bincode" version = "1.3.3" @@ -522,109 +301,13 @@ dependencies = [ "serde", ] -[[package]] -name = "bincode" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" -dependencies = [ - "bincode_derive", - "serde", - "unty", -] - -[[package]] -name = "bincode_derive" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" -dependencies = [ - "virtue", -] - -[[package]] -name = "bit-set" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" - -[[package]] -name = "bitflags" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" - -[[package]] -name = "bitmaps" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" -dependencies = [ - "typenum", -] - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - [[package]] name = "blake2" version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "blake2b_simd" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[package]] -name = "blake3" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "block-padding", - "generic-array", + "digest", ] [[package]] @@ -636,68 +319,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-padding" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" - -[[package]] -name = "bn254_blackbox_solver" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "acir", - "acvm_blackbox_solver", - "ark-bn254", - "ark-ec", - "ark-ff", - "ark-grumpkin", - "hex", - "lazy_static", - "num-bigint", -] - -[[package]] -name = "borsh" -version = "1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" -dependencies = [ - "cfg_aliases", -] - -[[package]] -name = "brillig" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "acir_field", - "serde", -] - -[[package]] -name = "brillig_vm" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "acir", - "acvm_blackbox_solver", - "num-bigint", - "num-traits", - "thiserror 1.0.69", -] - -[[package]] -name = "build-data" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e6d5ca7a4989b90a9fafea85ce3c8bc9f0e0a76edcdcb330fe0c4fda92251f" -dependencies = [ - "chrono", - "safe-regex", -] - [[package]] name = "bumpalo" version = "3.19.0" @@ -766,35 +387,6 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - -[[package]] -name = "chkstk_stub" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "047f6ab2f3b9bcaf23b593d1580898e4244d27eadf1a1fae99212ee5735d3d1c" -dependencies = [ - "cc", -] - -[[package]] -name = "chrono" -version = "0.4.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" -dependencies = [ - "iana-time-zone", - "js-sys", - "num-traits", - "serde", - "wasm-bindgen", - "windows-link", -] - [[package]] name = "circom-prover" version = "0.1.4" @@ -811,13 +403,13 @@ dependencies = [ "ark-poly", "ark-relations", "ark-serialize", - "ark-std 0.5.0", + "ark-std", "byteorder", "hex-literal", "num", "num-bigint", "num-traits", - "rand 0.8.5", + "rand", "rayon", "rust-witness", "serde", @@ -826,127 +418,42 @@ dependencies = [ ] [[package]] -name = "clap" -version = "4.5.49" +name = "color-eyre" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4512b90fa68d3a9932cea5184017c5d200f5921df706d45e853537dea51508f" +checksum = "e5920befb47832a6d61ee3a3a846565cfa39b331331e68a3b1d1116630f2f26d" dependencies = [ - "clap_builder", - "clap_derive", + "backtrace", + "color-spantrace", + "eyre", + "indenter", + "once_cell", + "owo-colors", + "tracing-error", ] [[package]] -name = "clap_builder" -version = "4.5.49" +name = "color-spantrace" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0025e98baa12e766c67ba13ff4695a887a1eba19569aad00a472546795bd6730" +checksum = "b8b88ea9df13354b55bc7234ebcce36e6ef896aca2e42a15de9e10edce01b427" dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", + "once_cell", + "owo-colors", + "tracing-core", + "tracing-error", ] [[package]] -name = "clap_derive" -version = "4.5.49" +name = "console_error_panic_hook" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.107", -] - -[[package]] -name = "clap_lex" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" - -[[package]] -name = "codespan" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3362992a0d9f1dd7c3d0e89e0ab2bb540b7a95fea8cd798090e758fda2899b5e" -dependencies = [ - "codespan-reporting", - "serde", -] - -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "serde", - "termcolor", - "unicode-width", -] - -[[package]] -name = "color-eyre" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5920befb47832a6d61ee3a3a846565cfa39b331331e68a3b1d1116630f2f26d" -dependencies = [ - "backtrace", - "color-spantrace", - "eyre", - "indenter", - "once_cell", - "owo-colors", - "tracing-error", -] - -[[package]] -name = "color-spantrace" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8b88ea9df13354b55bc7234ebcce36e6ef896aca2e42a15de9e10edce01b427" -dependencies = [ - "once_cell", - "owo-colors", - "tracing-core", - "tracing-error", -] - -[[package]] -name = "colorchoice" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" - -[[package]] -name = "console_error_panic_hook" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" dependencies = [ "cfg-if", "wasm-bindgen", ] -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - [[package]] name = "cpufeatures" version = "0.2.17" @@ -956,15 +463,6 @@ dependencies = [ "libc", ] -[[package]] -name = "crc32fast" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" -dependencies = [ - "cfg-if", -] - [[package]] name = "crossbeam-channel" version = "0.5.15" @@ -999,18 +497,6 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array", - "rand_core 0.6.4", - "subtle", - "zeroize", -] - [[package]] name = "crypto-common" version = "0.1.6" @@ -1021,62 +507,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "darling" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.107", -] - -[[package]] -name = "darling_macro" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.107", -] - -[[package]] -name = "der" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - -[[package]] -name = "deranged" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071" -dependencies = [ - "powerfmt", - "serde_core", -] - [[package]] name = "derivative" version = "2.2.0" @@ -1088,58 +518,17 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - [[package]] name = "digest" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", - "const-oid", + "block-buffer", "crypto-common", "subtle", ] -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.107", -] - -[[package]] -name = "dyn-clone" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" - -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "signature", - "spki", -] - [[package]] name = "educe" version = "0.6.0" @@ -1158,26 +547,6 @@ version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff", - "generic-array", - "group", - "pem-rfc7468", - "pkcs8", - "rand_core 0.6.4", - "sec1", - "subtle", - "zeroize", -] - [[package]] name = "enum-ordinalize" version = "4.3.0" @@ -1204,16 +573,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" -[[package]] -name = "errno" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - [[package]] name = "eyre" version = "0.6.12" @@ -1224,105 +583,18 @@ dependencies = [ "once_cell", ] -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "ff" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" -dependencies = [ - "bitvec", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "fibonacci-circuit" -version = "0.1.0" -source = "git+https://github.com/sifnoc/plonkish-fibonacci-sample.git#3917ee5e91f2237d97210821649b73806ada7e2f" -dependencies = [ - "bincode 1.3.3", - "halo2_proofs", - "itertools 0.13.0", - "plonkish_backend", - "rand 0.8.5", - "serde", - "thiserror 1.0.69", -] - [[package]] name = "find-msvc-tools" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" -[[package]] -name = "fixedbitset" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - -[[package]] -name = "flate2" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "fm" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "codespan-reporting", - "iter-extended", - "serde", -] - [[package]] name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" -dependencies = [ - "percent-encoding", -] - [[package]] name = "fs-err" version = "2.11.0" @@ -1332,118 +604,14 @@ dependencies = [ "autocfg", ] -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-executor" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - -[[package]] -name = "gemini-fibonacci" -version = "0.1.0" -source = "git+https://github.com/sifnoc/plonkish-fibonacci-sample.git#3917ee5e91f2237d97210821649b73806ada7e2f" -dependencies = [ - "fibonacci-circuit", - "halo2_proofs", - "plonkish_backend", -] - [[package]] name = "generic-array" version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" dependencies = [ - "serde", "typenum", "version_check", - "zeroize", ] [[package]] @@ -1466,11 +634,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", - "js-sys", "libc", "r-efi", "wasip2", - "wasm-bindgen", ] [[package]] @@ -1496,77 +662,6 @@ dependencies = [ "scroll", ] -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "halo2_proofs" -version = "0.2.0" -source = "git+https://github.com/han0110/halo2.git?branch=feature%2Ffor-benchmark#4981b8d5bdaab04af9b56a5d2c482b6eec9f7fa4" -dependencies = [ - "ark-std 0.4.0", - "blake2b_simd", - "ff", - "group", - "halo2curves 0.3.3", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "rayon", - "sha3 0.9.1", - "tracing", -] - -[[package]] -name = "halo2curves" -version = "0.3.2" -source = "git+https://github.com/privacy-scaling-explorations/halo2curves.git?tag=0.3.2#9f5c50810bbefe779ee5cf1d852b2fe85dc35d5e" -dependencies = [ - "ff", - "group", - "lazy_static", - "num-bigint", - "num-traits", - "pasta_curves", - "paste", - "rand 0.8.5", - "rand_core 0.6.4", - "static_assertions", - "subtle", -] - -[[package]] -name = "halo2curves" -version = "0.3.3" -source = "git+https://github.com/privacy-scaling-explorations/halo2curves?tag=0.3.3#8e4cb9f0c66c864e8ca25da07f50ae95f664a5b7" -dependencies = [ - "ff", - "group", - "lazy_static", - "num-bigint", - "num-traits", - "pasta_curves", - "paste", - "rand 0.8.5", - "rand_core 0.6.4", - "serde", - "static_assertions", - "subtle", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - [[package]] name = "hashbrown" version = "0.15.5" @@ -1574,7 +669,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", - "foldhash", ] [[package]] @@ -1583,27 +677,12 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "heck" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - [[package]] name = "hex-literal" version = "0.4.1" @@ -1611,2362 +690,615 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "http" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "1.0.1" +name = "indenter" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http", -] +checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" [[package]] -name = "http-body-util" -version = "0.1.3" +name = "indexmap" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ - "bytes", - "futures-core", - "http", - "http-body", - "pin-project-lite", + "equivalent", + "hashbrown 0.16.0", ] [[package]] -name = "httparse" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" - -[[package]] -name = "hyper" -version = "1.7.0" +name = "itertools" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ - "atomic-waker", - "bytes", - "futures-channel", - "futures-core", - "http", - "http-body", - "httparse", - "itoa", - "pin-project-lite", - "pin-utils", - "smallvec", - "tokio", - "want", + "either", ] [[package]] -name = "hyper-rustls" -version = "0.27.7" +name = "itoa" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" -dependencies = [ - "http", - "hyper", - "hyper-util", - "rustls", - "rustls-pki-types", - "tokio", - "tokio-rustls", - "tower-service", - "webpki-roots 1.0.3", -] +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] -name = "hyper-util" -version = "0.1.17" +name = "jobserver" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "base64", - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http", - "http-body", - "hyper", - "ipnet", + "getrandom 0.3.4", "libc", - "percent-encoding", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", -] - -[[package]] -name = "hyperplonk-fibonacci" -version = "0.1.0" -source = "git+https://github.com/sifnoc/plonkish-fibonacci-sample.git#3917ee5e91f2237d97210821649b73806ada7e2f" -dependencies = [ - "fibonacci-circuit", - "halo2_proofs", - "plonkish_backend", ] [[package]] -name = "iana-time-zone" -version = "0.1.64" +name = "js-sys" +version = "0.3.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "log", + "once_cell", "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "icu_collections" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" -dependencies = [ - "displaydoc", - "potential_utf", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locale_core" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", ] [[package]] -name = "icu_normalizer" -version = "2.0.0" +name = "keccak" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "zerovec", + "cpufeatures", ] [[package]] -name = "icu_normalizer_data" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" - -[[package]] -name = "icu_properties" -version = "2.0.1" +name = "lazy_static" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locale_core", - "icu_properties_data", - "icu_provider", - "potential_utf", - "zerotrie", - "zerovec", -] +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] -name = "icu_properties_data" -version = "2.0.1" +name = "libc" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] -name = "icu_provider" -version = "2.0.0" +name = "log" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" -dependencies = [ - "displaydoc", - "icu_locale_core", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerotrie", - "zerovec", -] +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] -name = "ident_case" -version = "1.0.1" +name = "memchr" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] -name = "idna" -version = "1.1.0" +name = "merlin" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", + "byteorder", + "keccak", + "rand_core", + "zeroize", ] [[package]] -name = "idna_adapter" -version = "1.2.1" +name = "mime" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" -dependencies = [ - "icu_normalizer", - "icu_properties", -] +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] -name = "im" -version = "15.1.0" +name = "mime_guess" +version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" dependencies = [ - "bitmaps", - "rand_core 0.6.4", - "rand_xoshiro", - "serde", - "sized-chunks", - "typenum", - "version_check", + "mime", + "unicase", ] [[package]] -name = "indenter" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" - -[[package]] -name = "indexmap" -version = "1.9.3" +name = "minicov" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +checksum = "f27fe9f1cc3c22e1687f9446c2083c4c5fc7f0bcf1c7a86bdbded14985895b4b" dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", + "cc", + "walkdir", ] [[package]] -name = "indexmap" -version = "2.12.0" +name = "minimal-lexical" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" -dependencies = [ - "equivalent", - "hashbrown 0.16.0", - "serde", - "serde_core", -] +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] -name = "inplace-vec-builder" -version = "0.1.1" +name = "miniz_oxide" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf64c2edc8226891a71f127587a2861b132d2b942310843814d5001d99a1d307" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ - "smallvec", + "adler2", ] [[package]] -name = "ipnet" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" - -[[package]] -name = "iri-string" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +name = "mopro-example-app-circom" +version = "0.1.0" dependencies = [ - "memchr", + "anyhow", + "bincode", + "circom-prover", + "mopro-ffi", + "mopro-wasm", + "num-bigint", + "rust-witness", "serde", + "serde_json", + "thiserror 2.0.17", + "witnesscalc-adapter", ] [[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - -[[package]] -name = "iter-extended" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" - -[[package]] -name = "itertools" -version = "0.10.5" +name = "mopro-ffi" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "06ed794e7c9ea6ebdf9f39522f257058d06eb547ca6c74010c7db9e60c009a22" dependencies = [ - "either", + "anyhow", + "camino", + "color-eyre", + "thiserror 2.0.17", + "toml 0.8.23", + "uniffi", + "uuid", ] [[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +name = "mopro-wasm" +version = "0.1.0" +source = "git+https://github.com/zkmopro/mopro.git?branch=v0.2.x#30218b111c74b3b4d7aef4253f9add7ec4965364" dependencies = [ - "either", + "console_error_panic_hook", + "getrandom 0.2.16", + "rand", + "serde-wasm-bindgen", + "wasm-bindgen", + "wasm-bindgen-console-logger", + "wasm-bindgen-futures", + "wasm-bindgen-rayon", + "wasm-bindgen-test", ] [[package]] -name = "itertools" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" - -[[package]] -name = "jobserver" -version = "0.1.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" -dependencies = [ - "getrandom 0.3.4", - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.81" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "jsonrpsee" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fba77a59c4c644fd48732367624d1bcf6f409f9c9a286fbc71d2f1fc0b2ea16" -dependencies = [ - "jsonrpsee-core", -] - -[[package]] -name = "jsonrpsee-core" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693c93cbb7db25f4108ed121304b671a36002c2db67dff2ee4391a688c738547" -dependencies = [ - "async-trait", - "futures-util", - "http", - "jsonrpsee-types", - "pin-project", - "serde", - "serde_json", - "thiserror 2.0.17", - "tokio", - "tower", - "tracing", -] - -[[package]] -name = "jsonrpsee-types" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66df7256371c45621b3b7d2fb23aea923d577616b9c0e9c0b950a6ea5c2be0ca" -dependencies = [ - "http", - "serde", - "serde_json", - "thiserror 2.0.17", -] - -[[package]] -name = "k256" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" -dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "once_cell", - "sha2", - "signature", -] - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] - -[[package]] -name = "libaes" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82903360c009b816f5ab72a9b68158c27c301ee2c3f20655b55c5e589e7d3bb7" - -[[package]] -name = "libc" -version = "0.2.177" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" - -[[package]] -name = "linux-raw-sys" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" - -[[package]] -name = "litemap" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" - -[[package]] -name = "lock_api" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" - -[[package]] -name = "lru-slab" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" - -[[package]] -name = "memchr" -version = "2.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" - -[[package]] -name = "merlin" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" -dependencies = [ - "byteorder", - "keccak", - "rand_core 0.6.4", - "zeroize", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mime_guess" -version = "2.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" -dependencies = [ - "mime", - "unicase", -] - -[[package]] -name = "minicov" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27fe9f1cc3c22e1687f9446c2083c4c5fc7f0bcf1c7a86bdbded14985895b4b" -dependencies = [ - "cc", - "walkdir", -] - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", - "simd-adler32", -] - -[[package]] -name = "mio" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.61.2", -] - -[[package]] -name = "mopro-example-app" -version = "0.1.0" -dependencies = [ - "anyhow", - "circom-prover", - "gemini-fibonacci", - "hyperplonk-fibonacci", - "mopro-ffi", - "mopro-wasm", - "noir", - "num-bigint", - "plonk-fibonacci", - "rust-witness", - "serde", - "serde_json", - "serial_test", - "thiserror 2.0.17", - "witnesscalc-adapter", -] - -[[package]] -name = "mopro-ffi" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ed794e7c9ea6ebdf9f39522f257058d06eb547ca6c74010c7db9e60c009a22" -dependencies = [ - "anyhow", - "camino", - "color-eyre", - "thiserror 2.0.17", - "toml 0.8.23", - "uniffi", - "uuid", -] - -[[package]] -name = "mopro-wasm" -version = "0.1.0" -source = "git+https://github.com/zkmopro/mopro.git?branch=v0.2.x#30218b111c74b3b4d7aef4253f9add7ec4965364" -dependencies = [ - "console_error_panic_hook", - "getrandom 0.2.16", - "rand 0.8.5", - "serde-wasm-bindgen", - "wasm-bindgen", - "wasm-bindgen-console-logger", - "wasm-bindgen-futures", - "wasm-bindgen-rayon", - "wasm-bindgen-test", -] - -[[package]] -name = "multimap" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" - -[[package]] -name = "nargo" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "acvm", - "fm", - "iter-extended", - "jsonrpsee", - "noir_greybox_fuzzer", - "noirc_abi", - "noirc_driver", - "noirc_errors", - "noirc_frontend", - "noirc_printable_type", - "rayon", - "serde", - "serde_json", - "tempfile", - "thiserror 1.0.69", - "tracing", - "walkdir", -] - -[[package]] -name = "noir" -version = "1.0.0-beta.8-3" -source = "git+https://github.com/zkmopro/noir-rs?branch=v1.0.0-beta.8-3#0059db4520a60aeb83743c28b1c59ff578dbb07a" -dependencies = [ - "acir", - "acvm", - "acvm_blackbox_solver", - "base64", - "base64ct", - "bb", - "bincode 1.3.3", - "bn254_blackbox_solver", - "clap", - "flate2", - "hex", - "nargo", - "openssl", - "proptest", - "reqwest", - "serde", - "serde_json", - "thiserror 1.0.69", - "tracing", - "tracing-subscriber 0.3.20", -] - -[[package]] -name = "noir_greybox_fuzzer" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "acvm", - "build-data", - "fm", - "noirc_abi", - "noirc_artifacts", - "num-traits", - "proptest", - "rand 0.8.5", - "rand_xorshift", - "rayon", - "sha256", - "termcolor", - "walkdir", -] - -[[package]] -name = "noir_protobuf" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "color-eyre", - "prost", -] - -[[package]] -name = "noirc_abi" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "acvm", - "iter-extended", - "noirc_printable_type", - "num-bigint", - "num-traits", - "serde", - "serde_json", - "thiserror 1.0.69", - "toml 0.7.8", -] - -[[package]] -name = "noirc_arena" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" - -[[package]] -name = "noirc_artifacts" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "acvm", - "codespan-reporting", - "fm", - "noirc_abi", - "noirc_driver", - "noirc_errors", - "noirc_printable_type", - "serde", -] - -[[package]] -name = "noirc_driver" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "acvm", - "build-data", - "clap", - "fm", - "fxhash", - "iter-extended", - "noirc_abi", - "noirc_errors", - "noirc_evaluator", - "noirc_frontend", - "rust-embed", - "serde", - "tracing", -] - -[[package]] -name = "noirc_errors" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "acvm", - "base64", - "codespan", - "codespan-reporting", - "flate2", - "fm", - "fxhash", - "noirc_printable_type", - "serde", - "serde_json", - "tracing", -] - -[[package]] -name = "noirc_evaluator" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "acvm", - "bn254_blackbox_solver", - "cfg-if", - "chrono", - "fm", - "fxhash", - "im", - "iter-extended", - "noirc_errors", - "noirc_frontend", - "noirc_printable_type", - "num-bigint", - "num-integer", - "num-traits", - "petgraph 0.8.3", - "rayon", - "serde", - "serde_json", - "serde_with", - "smallvec", - "thiserror 1.0.69", - "tracing", - "vec-collections", -] - -[[package]] -name = "noirc_frontend" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "acvm", - "bn254_blackbox_solver", - "cfg-if", - "fm", - "fxhash", - "im", - "iter-extended", - "noirc_arena", - "noirc_errors", - "noirc_printable_type", - "num-bigint", - "num-traits", - "petgraph 0.8.3", - "rangemap", - "rustc-hash", - "serde", - "serde_json", - "small-ord-set", - "smol_str", - "strum", - "strum_macros", - "thiserror 1.0.69", - "tracing", -] - -[[package]] -name = "noirc_printable_type" -version = "1.0.0-beta.8" -source = "git+https://github.com/noir-lang/noir.git?rev=b33131574388d836341cea9b6380f3b1a8493eb8#b33131574388d836341cea9b6380f3b1a8493eb8" -dependencies = [ - "acvm", - "iter-extended", - "serde", - "serde_json", -] - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nu-ansi-term" -version = "0.50.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_enum" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" -dependencies = [ - "num_enum_derive", - "rustversion", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.107", -] - -[[package]] -name = "object" -version = "0.37.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" - -[[package]] -name = "once_cell_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "openssl" -version = "0.10.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.107", -] - -[[package]] -name = "openssl-src" -version = "300.5.3+3.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc6bad8cd0233b63971e232cc9c5e83039375b8586d2312f31fda85db8f888c2" -dependencies = [ - "cc", -] - -[[package]] -name = "openssl-sys" -version = "0.9.110" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2" -dependencies = [ - "cc", - "libc", - "openssl-src", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "owo-colors" -version = "4.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" - -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2", -] - -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-link", -] - -[[package]] -name = "pasta_curves" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "hex", - "lazy_static", - "rand 0.8.5", - "serde", - "static_assertions", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - -[[package]] -name = "petgraph" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" -dependencies = [ - "fixedbitset", - "indexmap 2.12.0", -] - -[[package]] -name = "petgraph" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" -dependencies = [ - "fixedbitset", - "hashbrown 0.15.5", - "indexmap 2.12.0", - "serde", -] - -[[package]] -name = "pin-project" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.107", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "plain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" - -[[package]] -name = "plonk-fibonacci" -version = "0.1.0" -source = "git+https://github.com/sifnoc/plonkish-fibonacci-sample.git#3917ee5e91f2237d97210821649b73806ada7e2f" -dependencies = [ - "bincode 1.3.3", - "fibonacci-circuit", - "halo2_proofs", - "plonkish_backend", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "plonkish_backend" -version = "0.1.0" -source = "git+https://github.com/sifnoc/plonkish?branch=setup_custom#4f42eeb3ff0666c74168d5b375cd789b46998e1b" -dependencies = [ - "bincode 1.3.3", - "bitvec", - "generic-array", - "halo2_proofs", - "halo2curves 0.3.3", - "itertools 0.10.5", - "num-bigint", - "num-integer", - "pasta_curves", - "poseidon", - "rand 0.8.5", - "rayon", - "serde", - "sha3 0.10.8", -] - -[[package]] -name = "poseidon" -version = "0.2.0" -source = "git+https://github.com/han0110/poseidon?branch=feature%2Fwith-spec#fa4c2544ed38666f1f72d1c4fd0956756a7112b3" -dependencies = [ - "halo2curves 0.3.2", - "subtle", -] - -[[package]] -name = "potential_utf" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" -dependencies = [ - "zerovec", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn 2.0.107", -] - -[[package]] -name = "primeorder" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" -dependencies = [ - "elliptic-curve", -] - -[[package]] -name = "proc-macro-crate" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" -dependencies = [ - "toml_edit 0.23.7", -] - -[[package]] -name = "proc-macro2" -version = "1.0.101" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proptest" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags", - "lazy_static", - "num-traits", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", - "unarray", -] - -[[package]] -name = "prost" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" -dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-build" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" -dependencies = [ - "heck 0.5.0", - "itertools 0.14.0", - "log", - "multimap", - "once_cell", - "petgraph 0.7.1", - "prettyplease", - "prost", - "prost-types", - "regex", - "syn 2.0.107", - "tempfile", -] - -[[package]] -name = "prost-derive" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" -dependencies = [ - "anyhow", - "itertools 0.14.0", - "proc-macro2", - "quote", - "syn 2.0.107", -] - -[[package]] -name = "prost-types" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" -dependencies = [ - "prost", -] - -[[package]] -name = "protoc-prebuilt" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d85d4641fe3b8c6e853dfd09fe35379bc6b6e66bd692ac29ed4f7087de69ed5" -dependencies = [ - "ureq", - "zip", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quinn" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" -dependencies = [ - "bytes", - "cfg_aliases", - "pin-project-lite", - "quinn-proto", - "quinn-udp", - "rustc-hash", - "rustls", - "socket2", - "thiserror 2.0.17", - "tokio", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-proto" -version = "0.11.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" -dependencies = [ - "bytes", - "getrandom 0.3.4", - "lru-slab", - "rand 0.9.2", - "ring", - "rustc-hash", - "rustls", - "rustls-pki-types", - "slab", - "thiserror 2.0.17", - "tinyvec", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-udp" -version = "0.5.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" -dependencies = [ - "cfg_aliases", - "libc", - "once_cell", - "socket2", - "tracing", - "windows-sys 0.60.2", -] - -[[package]] -name = "quote" -version = "1.0.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.16", -] - -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" -dependencies = [ - "getrandom 0.3.4", -] - -[[package]] -name = "rand_xorshift" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" -dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "rand_xoshiro" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" -dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "rangemap" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7e49bb0bf967717f7bd674458b3d6b0c5f48ec7e3038166026a69fc22223" - -[[package]] -name = "rayon" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" -dependencies = [ - "either", - "rayon-core", - "wasm_sync", -] - -[[package]] -name = "rayon-core" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", - "wasm_sync", -] - -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags", -] - -[[package]] -name = "ref-cast" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.107", -] - -[[package]] -name = "regex" -version = "1.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" - -[[package]] -name = "reqwest" -version = "0.12.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" -dependencies = [ - "base64", - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-util", - "js-sys", - "log", - "percent-encoding", - "pin-project-lite", - "quinn", - "rustls", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-rustls", - "tower", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 1.0.3", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", -] - -[[package]] -name = "ring" -version = "0.17.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" -dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.16", - "libc", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "rinja" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dc4940d00595430b3d7d5a01f6222b5e5b51395d1120bdb28d854bb8abb17a5" -dependencies = [ - "itoa", - "rinja_derive", -] - -[[package]] -name = "rinja_derive" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d9ed0146aef6e2825f1b1515f074510549efba38d71f4554eec32eb36ba18b" -dependencies = [ - "basic-toml", - "memchr", - "mime", - "mime_guess", - "proc-macro2", - "quote", - "rinja_parser", - "rustc-hash", - "serde", - "syn 2.0.107", -] - -[[package]] -name = "rinja_parser" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f9a866e2e00a7a1fb27e46e9e324a6f7c0e7edc4543cae1d38f4e4a100c610" -dependencies = [ - "memchr", - "nom", - "serde", -] - -[[package]] -name = "rmp" -version = "0.8.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" -dependencies = [ - "byteorder", - "num-traits", - "paste", -] - -[[package]] -name = "rmp-serde" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" -dependencies = [ - "byteorder", - "rmp", - "serde", -] - -[[package]] -name = "rust-embed" -version = "8.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb44e1917075637ee8c7bcb865cf8830e3a92b5b1189e44e3a0ab5a0d5be314b" -dependencies = [ - "rust-embed-impl", - "rust-embed-utils", - "walkdir", -] - -[[package]] -name = "rust-embed-impl" -version = "8.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "382499b49db77a7c19abd2a574f85ada7e9dbe125d5d1160fa5cad7c4cf71fc9" -dependencies = [ - "proc-macro2", - "quote", - "rust-embed-utils", - "syn 2.0.107", - "walkdir", -] - -[[package]] -name = "rust-embed-utils" -version = "8.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21fcbee55c2458836bcdbfffb6ec9ba74bbc23ca7aa6816015a3dd2c4d8fc185" -dependencies = [ - "sha2", - "walkdir", -] - -[[package]] -name = "rust-witness" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b59361683f7b6b3b0d343fc77e797ee5a267b8a470b9531ed9911aeed160dea0" -dependencies = [ - "cc", - "fnv", - "num-bigint", - "num-traits", - "paste", - "walkdir", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - -[[package]] -name = "rustc-hash" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" - -[[package]] -name = "rustix" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.61.2", -] - -[[package]] -name = "rustls" -version = "0.23.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "751e04a496ca00bb97a5e043158d23d66b5aabf2e1d5aa2a0aaebb1aafe6f82c" -dependencies = [ - "log", - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pki-types" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" -dependencies = [ - "web-time", - "zeroize", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10b3f4191e8a80e6b43eebabfac91e5dcecebb27a71f04e820c47ec41d314bf" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - -[[package]] -name = "rusty-fork" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - -[[package]] -name = "safe-proc-macro2" -version = "1.0.95" +name = "nom" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "492d1a72624b0bd5b7f0193ea5834a1905534a517573a117e949e895f342906c" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ - "unicode-xid", + "memchr", + "minimal-lexical", ] [[package]] -name = "safe-quote" -version = "1.0.40" +name = "num" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcaa9a650f2f98ba4da0190623210c85945cb78b262709f606c57655eda173e1" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" dependencies = [ - "safe-proc-macro2", + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", ] [[package]] -name = "safe-regex" -version = "0.3.0" +name = "num-bigint" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5194fafa3cb9da89e0cab6dffa1f3fdded586bd6396d12be11b4cae0c7ee45c2" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "safe-regex-macro", + "num-integer", + "num-traits", + "rand", + "serde", ] [[package]] -name = "safe-regex-compiler" -version = "0.3.0" +name = "num-complex" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e822ae1e61251bcfd698317c237cf83f7c57161a5dc24ee609a85697f1ed15b3" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ - "safe-proc-macro2", - "safe-quote", + "num-traits", ] [[package]] -name = "safe-regex-macro" -version = "0.3.0" +name = "num-integer" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2768de7e6ef19f59c5fd3c3ac207ef12b68a49f95e3172d67e4a04cfd992ca06" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "safe-proc-macro2", - "safe-regex-compiler", + "num-traits", ] [[package]] -name = "same-file" -version = "1.0.6" +name = "num-iter" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" dependencies = [ - "winapi-util", + "autocfg", + "num-integer", + "num-traits", ] [[package]] -name = "scc" -version = "2.4.0" +name = "num-rational" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46e6f046b7fef48e2660c57ed794263155d713de679057f2d0c169bfc6e756cc" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "sdd", + "num-bigint", + "num-integer", + "num-traits", ] [[package]] -name = "schemars" -version = "0.9.0" +name = "num-traits" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", + "autocfg", ] [[package]] -name = "schemars" -version = "1.0.4" +name = "object" +version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", + "memchr", ] [[package]] -name = "scopeguard" -version = "1.2.0" +name = "once_cell" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] -name = "scroll" -version = "0.12.0" +name = "owo-colors" +version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6" -dependencies = [ - "scroll_derive", -] +checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" [[package]] -name = "scroll_derive" -version = "0.12.1" +name = "paste" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1783eabc414609e28a5ba76aee5ddd52199f7107a0b24c2e9746a1ecc34a683d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.107", -] +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] -name = "sdd" -version = "3.0.10" +name = "pin-project-lite" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "490dcfcbfef26be6800d11870ff2df8774fa6e86d047e3e8c8a76b25655e41ca" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] -name = "sec1" -version = "0.7.3" +name = "plain" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "subtle", - "zeroize", -] +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] -name = "semver" -version = "1.0.27" +name = "ppv-lite86" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "serde", - "serde_core", + "zerocopy", ] [[package]] -name = "serde" -version = "1.0.228" +name = "proc-macro2" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ - "serde_core", - "serde_derive", + "unicode-ident", ] [[package]] -name = "serde-big-array" -version = "0.5.1" +name = "quote" +version = "1.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" dependencies = [ - "serde", + "proc-macro2", ] [[package]] -name = "serde-wasm-bindgen" -version = "0.6.5" +name = "r-efi" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b" -dependencies = [ - "js-sys", - "serde", - "wasm-bindgen", -] +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] -name = "serde_core" -version = "1.0.228" +name = "rand" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ - "serde_derive", + "libc", + "rand_chacha", + "rand_core", ] [[package]] -name = "serde_derive" -version = "1.0.228" +name = "rand_chacha" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.107", + "ppv-lite86", + "rand_core", ] [[package]] -name = "serde_json" -version = "1.0.145" +name = "rand_core" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", - "serde_core", + "getrandom 0.2.16", ] [[package]] -name = "serde_spanned" -version = "0.6.9" +name = "rayon" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ - "serde", + "either", + "rayon-core", + "wasm_sync", ] [[package]] -name = "serde_urlencoded" -version = "0.7.1" +name = "rayon-core" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", + "crossbeam-deque", + "crossbeam-utils", + "wasm_sync", ] [[package]] -name = "serde_with" -version = "3.15.0" +name = "rinja" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6093cd8c01b25262b84927e0f7151692158fab02d961e04c979d3903eba7ecc5" +checksum = "3dc4940d00595430b3d7d5a01f6222b5e5b51395d1120bdb28d854bb8abb17a5" dependencies = [ - "base64", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.12.0", - "schemars 0.9.0", - "schemars 1.0.4", - "serde_core", - "serde_json", - "serde_with_macros", - "time", + "itoa", + "rinja_derive", ] [[package]] -name = "serde_with_macros" -version = "3.15.0" +name = "rinja_derive" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7e6c180db0816026a61afa1cff5344fb7ebded7e4d3062772179f2501481c27" +checksum = "08d9ed0146aef6e2825f1b1515f074510549efba38d71f4554eec32eb36ba18b" dependencies = [ - "darling", + "basic-toml", + "memchr", + "mime", + "mime_guess", "proc-macro2", "quote", + "rinja_parser", + "rustc-hash", + "serde", "syn 2.0.107", ] [[package]] -name = "serial_test" -version = "3.2.0" +name = "rinja_parser" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b258109f244e1d6891bf1053a55d63a5cd4f8f4c30cf9a1280989f80e7a1fa9" +checksum = "93f9a866e2e00a7a1fb27e46e9e324a6f7c0e7edc4543cae1d38f4e4a100c610" dependencies = [ - "futures", - "log", - "once_cell", - "parking_lot", - "scc", - "serial_test_derive", + "memchr", + "nom", + "serde", ] [[package]] -name = "serial_test_derive" -version = "3.2.0" +name = "rust-witness" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" +checksum = "b59361683f7b6b3b0d343fc77e797ee5a267b8a470b9531ed9911aeed160dea0" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.107", + "cc", + "fnv", + "num-bigint", + "num-traits", + "paste", + "walkdir", ] [[package]] -name = "sha2" -version = "0.10.9" +name = "rustc-demangle" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] -name = "sha256" -version = "1.6.0" +name = "rustc-hash" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f880fc8562bdeb709793f00eb42a2ad0e672c4f883bbe59122b926eca935c8f6" -dependencies = [ - "async-trait", - "bytes", - "hex", - "sha2", -] +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] -name = "sha3" -version = "0.9.1" +name = "rustversion" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" -dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", - "keccak", - "opaque-debug", -] +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] -name = "sha3" -version = "0.10.8" +name = "ryu" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest 0.10.7", - "keccak", -] +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] -name = "sharded-slab" -version = "0.1.7" +name = "same-file" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" dependencies = [ - "lazy_static", + "winapi-util", ] [[package]] -name = "shlex" -version = "1.3.0" +name = "scroll" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6" +dependencies = [ + "scroll_derive", +] [[package]] -name = "signature" -version = "2.2.0" +name = "scroll_derive" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +checksum = "1783eabc414609e28a5ba76aee5ddd52199f7107a0b24c2e9746a1ecc34a683d" dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", + "proc-macro2", + "quote", + "syn 2.0.107", ] [[package]] -name = "simd-adler32" -version = "0.3.7" +name = "semver" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +dependencies = [ + "serde", + "serde_core", +] [[package]] -name = "siphasher" -version = "0.3.11" +name = "serde" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] [[package]] -name = "sized-chunks" +name = "serde-wasm-bindgen" version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" +checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b" dependencies = [ - "bitmaps", - "typenum", + "js-sys", + "serde", + "wasm-bindgen", ] [[package]] -name = "slab" -version = "0.4.11" +name = "serde_core" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] [[package]] -name = "small-ord-set" -version = "0.1.3" +name = "serde_derive" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf7035a2b2268a5be8c1395738565b06beda836097e12021cdefc06b127a0e7e" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ - "smallvec", + "proc-macro2", + "quote", + "syn 2.0.107", ] [[package]] -name = "smallvec" -version = "1.15.1" +name = "serde_json" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ + "itoa", + "memchr", + "ryu", "serde", + "serde_core", ] [[package]] -name = "smawk" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" - -[[package]] -name = "smol_str" -version = "0.3.2" +name = "serde_spanned" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9676b89cd56310a87b93dec47b11af744f34d5fc9f367b829474eec0a891350d" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ - "borsh", "serde", ] [[package]] -name = "socket2" -version = "0.6.1" +name = "sha2" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ - "libc", - "windows-sys 0.60.2", + "cfg-if", + "cpufeatures", + "digest", ] [[package]] -name = "sorted-iter" -version = "0.1.11" +name = "sharded-slab" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bceb57dc07c92cdae60f5b27b3fa92ecaaa42fe36c55e22dbfb0b44893e0b1f7" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] [[package]] -name = "spin" -version = "0.9.8" +name = "shlex" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] -name = "spki" -version = "0.7.3" +name = "siphasher" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] -name = "stable_deref_trait" -version = "1.2.1" +name = "smawk" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" [[package]] name = "static_assertions" @@ -3974,31 +1306,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "strum" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck 0.4.1", - "proc-macro2", - "quote", - "rustversion", - "syn 1.0.109", -] - [[package]] name = "subtle" version = "2.6.1" @@ -4027,54 +1334,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "sync_wrapper" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" -dependencies = [ - "futures-core", -] - -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.107", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" -dependencies = [ - "fastrand", - "getrandom 0.3.4", - "once_cell", - "rustix", - "windows-sys 0.61.2", -] - -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - [[package]] name = "textwrap" version = "0.16.2" @@ -4133,86 +1392,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "time" -version = "0.3.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" - -[[package]] -name = "time-macros" -version = "0.2.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tinystr" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinyvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" -dependencies = [ - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.61.2", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" -dependencies = [ - "rustls", - "tokio", -] - [[package]] name = "toml" version = "0.5.11" @@ -4222,18 +1401,6 @@ dependencies = [ "serde", ] -[[package]] -name = "toml" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime 0.6.11", - "toml_edit 0.19.15", -] - [[package]] name = "toml" version = "0.8.23" @@ -4242,8 +1409,8 @@ checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", - "toml_datetime 0.6.11", - "toml_edit 0.22.27", + "toml_datetime", + "toml_edit", ] [[package]] @@ -4255,61 +1422,18 @@ dependencies = [ "serde", ] -[[package]] -name = "toml_datetime" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" -dependencies = [ - "serde_core", -] - -[[package]] -name = "toml_edit" -version = "0.19.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap 2.12.0", - "serde", - "serde_spanned", - "toml_datetime 0.6.11", - "winnow 0.5.40", -] - [[package]] name = "toml_edit" version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.12.0", + "indexmap", "serde", "serde_spanned", - "toml_datetime 0.6.11", + "toml_datetime", "toml_write", - "winnow 0.7.13", -] - -[[package]] -name = "toml_edit" -version = "0.23.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" -dependencies = [ - "indexmap 2.12.0", - "toml_datetime 0.7.3", - "toml_parser", - "winnow 0.7.13", -] - -[[package]] -name = "toml_parser" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" -dependencies = [ - "winnow 0.7.13", + "winnow", ] [[package]] @@ -4318,51 +1442,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" -[[package]] -name = "tower" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" -dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper", - "tokio", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-http" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" -dependencies = [ - "bitflags", - "bytes", - "futures-util", - "http", - "http-body", - "iri-string", - "pin-project-lite", - "tower", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - [[package]] name = "tracing" version = "0.1.41" @@ -4370,21 +1449,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", - "tracing-attributes", "tracing-core", ] -[[package]] -name = "tracing-attributes" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.107", -] - [[package]] name = "tracing-core" version = "0.1.34" @@ -4405,17 +1472,6 @@ dependencies = [ "tracing-subscriber 0.3.20", ] -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - [[package]] name = "tracing-subscriber" version = "0.2.25" @@ -4431,31 +1487,16 @@ version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ - "nu-ansi-term", "sharded-slab", - "smallvec", "thread_local", "tracing-core", - "tracing-log", ] -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - [[package]] name = "typenum" version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "unicase" @@ -4469,18 +1510,6 @@ version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" -[[package]] -name = "unicode-width" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" - -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - [[package]] name = "uniffi" version = "0.29.0" @@ -4506,7 +1535,7 @@ dependencies = [ "fs-err", "glob", "goblin", - "heck 0.5.0", + "heck", "once_cell", "paste", "rinja", @@ -4538,7 +1567,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04f4f224becf14885c10e6e400b95cc4d1985738140cb194ccc2044563f8a56b" dependencies = [ "anyhow", - "indexmap 2.12.0", + "indexmap", "proc-macro2", "quote", "syn 2.0.107", @@ -4597,57 +1626,6 @@ dependencies = [ "weedle2", ] -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "unty" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" - -[[package]] -name = "ureq" -version = "2.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d" -dependencies = [ - "base64", - "log", - "once_cell", - "rustls", - "rustls-pki-types", - "url", - "webpki-roots 0.26.11", -] - -[[package]] -name = "url" -version = "2.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - [[package]] name = "uuid" version = "1.18.1" @@ -4665,48 +1643,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "vec-collections" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c9965c8f2ffed1dbcd16cafe18a009642f540fa22661c6cfd6309ddb02e4982" -dependencies = [ - "binary-merge", - "inplace-vec-builder", - "lazy_static", - "num-traits", - "serde", - "smallvec", - "sorted-iter", -] - [[package]] name = "version_check" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "virtue" -version = "0.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" - -[[package]] -name = "wait-timeout" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" -dependencies = [ - "libc", -] - [[package]] name = "walkdir" version = "2.5.0" @@ -4717,15 +1659,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" @@ -4882,34 +1815,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "web-time" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki-roots" -version = "0.26.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" -dependencies = [ - "webpki-roots 1.0.3", -] - -[[package]] -name = "webpki-roots" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b130c0d2d49f8b6889abc456e795e82525204f27c42cf767cf0d7734e089b8" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "weedle2" version = "5.0.0" @@ -4925,42 +1830,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "windows-core" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link", - "windows-result", - "windows-strings", -] - -[[package]] -name = "windows-implement" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.107", -] - -[[package]] -name = "windows-interface" -version = "0.59.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.107", + "windows-sys", ] [[package]] @@ -4969,42 +1839,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" -[[package]] -name = "windows-result" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.5", -] - [[package]] name = "windows-sys" version = "0.61.2" @@ -5014,144 +1848,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - [[package]] name = "winnow" version = "0.7.13" @@ -5180,45 +1876,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "writeable" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "yoke" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.107", - "synstructure", -] - [[package]] name = "zerocopy" version = "0.8.27" @@ -5239,27 +1896,6 @@ dependencies = [ "syn 2.0.107", ] -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.107", - "synstructure", -] - [[package]] name = "zeroize" version = "1.8.2" @@ -5279,48 +1915,3 @@ dependencies = [ "quote", "syn 2.0.107", ] - -[[package]] -name = "zerotrie" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - -[[package]] -name = "zerovec" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.107", -] - -[[package]] -name = "zip" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" -dependencies = [ - "byteorder", - "crc32fast", - "crossbeam-utils", - "flate2", -] diff --git a/benchmarking-suite/moPro/mopro-example-app/Cargo.toml b/benchmarking-suite/moPro/mopro-example-app/Cargo.toml index 60f03adc..5d810435 100644 --- a/benchmarking-suite/moPro/mopro-example-app/Cargo.toml +++ b/benchmarking-suite/moPro/mopro-example-app/Cargo.toml @@ -19,24 +19,27 @@ anyhow = "1.0.99" bincode = "1.3" # RISC0 -risc0-circuit = { workspace = true } risc0-zkvm = { workspace = true, features = ["prove", "metal", "unstable"] } methods = { path = "../risc0-circuit/methods" } -# CIRCOM_DEPENDENCIES +# ============================================================================== +# CIRCOM DEPENDENCIES +# ============================================================================== circom-prover = "0.1" -rust-witness = "0.1" -num-bigint = "0.4.0" - -# HALO2_DEPENDENCIES +rust-witness = "0.1" +num-bigint = "0.4.0" -plonk-fibonacci = { package = "plonk-fibonacci", git = "https://github.com/sifnoc/plonkish-fibonacci-sample.git" } +# ============================================================================== +# HALO2 DEPENDENCIES +# ============================================================================== +plonk-fibonacci = { package = "plonk-fibonacci", git = "https://github.com/sifnoc/plonkish-fibonacci-sample.git" } hyperplonk-fibonacci = { package = "hyperplonk-fibonacci", git = "https://github.com/sifnoc/plonkish-fibonacci-sample.git" } -gemini-fibonacci = { package = "gemini-fibonacci", git = "https://github.com/sifnoc/plonkish-fibonacci-sample.git" } - -# NOIR_DEPENDENCIES +gemini-fibonacci = { package = "gemini-fibonacci", git = "https://github.com/sifnoc/plonkish-fibonacci-sample.git" } +# ============================================================================== +# NOIR DEPENDENCIES +# ============================================================================== serde = { version = "1.0", features = ["derive"] } serde_json = "1.0.94" @@ -44,32 +47,39 @@ noir_rs = { package = "noir", git = "https://github.com/zkmopro/noir-rs", featur "barretenberg", "android-compat", ], branch = "v1.0.0-beta.8-3" } - -[build-dependencies] -# CIRCOM_BUILD_DEPENDENCIES +[build-dependencies] +# ============================================================================== +# CIRCOM BUILD DEPENDENCIES +# ============================================================================== witnesscalc-adapter = "0.1" rust-witness = "0.1" - -# HALO2_BUILD_DEPENDENCIES +cc = "1.0" -# NOIR_BUILD_DEPENDENCIES +# ============================================================================== +# HALO2 BUILD DEPENDENCIES +# ============================================================================== + +# ============================================================================== +# NOIR BUILD DEPENDENCIES +# ============================================================================== [dev-dependencies] mopro-ffi = { version = "0.3.1", features = ["uniffi-tests"] } -# CIRCOM_DEV_DEPENDENCIES - +# ============================================================================== +# CIRCOM DEV DEPENDENCIES +# ============================================================================== serde = { version = "1.0", features = ["derive"] } serde_json = "1.0.94" - -# HALO2_DEV_DEPENDENCIES -# NOIR_DEV_DEPENDENCIES +# ============================================================================== +# HALO2 DEV DEPENDENCIES +# ============================================================================== +# ============================================================================== +# NOIR DEV DEPENDENCIES +# ============================================================================== serial_test = "3.0.0" - - - \ No newline at end of file diff --git a/benchmarking-suite/moPro/mopro-example-app/Config.toml b/benchmarking-suite/moPro/mopro-example-app/Config.toml index 0ca06e4d..e622635c 100644 --- a/benchmarking-suite/moPro/mopro-example-app/Config.toml +++ b/benchmarking-suite/moPro/mopro-example-app/Config.toml @@ -1,11 +1,7 @@ -build_mode = "debug" -target_adapters = [ - "circom", - "noir", - "halo2", -] +build_mode = "release" +target_adapters = ["noir"] target_platforms = ["android"] -android = ["x86_64-linux-android"] +android = ["aarch64-linux-android"] auto_update = false [update] diff --git a/benchmarking-suite/moPro/mopro-example-app/build.rs b/benchmarking-suite/moPro/mopro-example-app/build.rs index 0c17ce46..2e49ed44 100644 --- a/benchmarking-suite/moPro/mopro-example-app/build.rs +++ b/benchmarking-suite/moPro/mopro-example-app/build.rs @@ -1,6 +1,48 @@ fn main() { - // CIRCOM_TEMPLATE + // ============================================================================== + // CIRCOM + // ============================================================================== + let dir = "./test-vectors/circom"; + rust_witness::transpile::transpile_wasm(dir.to_string()); - rust_witness::transpile::transpile_wasm("./test-vectors/circom".to_string()); - + // Manual compilation of the generated C++ files if they exist (witnesscalc) + // This fixes "Undefined symbol" errors when rust-witness fails to link correctly + let witnesscalc_dir = std::path::Path::new(dir).join("witnesscalc"); + if witnesscalc_dir.exists() { + let mut build = cc::Build::new(); + build.cpp(true); + build.define("W2C2_LOOP_START", Some("")); + + // Collect C++ files + let paths = std::fs::read_dir(&witnesscalc_dir).unwrap(); + let mut has_cpp = false; + for path in paths { + let path = path.unwrap().path(); + if path.extension().map_or(false, |e| e == "cpp") { + build.file(&path); + has_cpp = true; + println!("cargo:warning=Compiling witness file: {:?}", path); + } + } + + if has_cpp { + build.compile("witnesses"); + println!("cargo:rustc-link-lib=static=witnesses"); + } + } + + // ============================================================================== + // RISC0 + // ============================================================================== + // Embed methods from the risc0-circuit crate + // This requires "methods" dependency in Cargo.toml + // methods = { path = "../risc0-circuit/methods" } + // Check if methods crate exists before trying to build + if std::path::Path::new("../risc0-circuit/methods").exists() { + println!("cargo:warning=Building Risc0 methods..."); + // Note: In some Mopro setups, this might be handled by the dependency itself. + // But if we are embedding them, we usually don't need explicit build.rs code + // unless we are compiling guests here. + // The `methods` crate build.rs usually handles guest compilation. + } } diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/ios/Podfile.lock b/benchmarking-suite/moPro/mopro-example-app/flutter/ios/Podfile.lock index bd3c007b..77479980 100644 --- a/benchmarking-suite/moPro/mopro-example-app/flutter/ios/Podfile.lock +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/ios/Podfile.lock @@ -1,4 +1,8 @@ PODS: + - battery_plus (1.0.0): + - Flutter + - device_info_plus (0.0.1): + - Flutter - Flutter (1.0.0) - integration_test (0.0.1): - Flutter @@ -9,12 +13,18 @@ PODS: - FlutterMacOS DEPENDENCIES: + - battery_plus (from `.symlinks/plugins/battery_plus/ios`) + - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - Flutter (from `Flutter`) - integration_test (from `.symlinks/plugins/integration_test/ios`) - mopro_flutter (from `.symlinks/plugins/mopro_flutter/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) EXTERNAL SOURCES: + battery_plus: + :path: ".symlinks/plugins/battery_plus/ios" + device_info_plus: + :path: ".symlinks/plugins/device_info_plus/ios" Flutter: :path: Flutter integration_test: @@ -25,10 +35,12 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/path_provider_foundation/darwin" SPEC CHECKSUMS: - Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + battery_plus: b42253f6d2dde71712f8c36fef456d99121c5977 + device_info_plus: 71ffc6ab7634ade6267c7a93088ed7e4f74e5896 + Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e - mopro_flutter: f77be3ea8c17c8f8b8730552544c0cc35dd5be50 - path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + mopro_flutter: 1cbc10da043ca49622b51a5932a185d31be10288 + path_provider_foundation: bb55f6dbba17d0dccd6737fe6f7f34fbd0376880 PODFILE CHECKSUM: 4f1c12611da7338d21589c0b2ecd6bd20b109694 diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/ios/Runner.xcodeproj/project.pbxproj b/benchmarking-suite/moPro/mopro-example-app/flutter/ios/Runner.xcodeproj/project.pbxproj index cbade98a..d3dcb331 100644 --- a/benchmarking-suite/moPro/mopro-example-app/flutter/ios/Runner.xcodeproj/project.pbxproj +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/ios/Runner.xcodeproj/project.pbxproj @@ -161,7 +161,6 @@ 3AFB0BD891B31C7FFBB2B409 /* Pods-RunnerTests.release.xcconfig */, 6864F87D76545C8C805562D1 /* Pods-RunnerTests.profile.xcconfig */, ); - name = Pods; path = Pods; sourceTree = ""; }; @@ -471,6 +470,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 3C8H767JD7; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -653,6 +653,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 3C8H767JD7; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -675,6 +676,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 3C8H767JD7; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/lib/main.dart b/benchmarking-suite/moPro/mopro-example-app/flutter/lib/main.dart index 4172cf2a..0ffc9d6e 100644 --- a/benchmarking-suite/moPro/mopro-example-app/flutter/lib/main.dart +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/lib/main.dart @@ -7,6 +7,7 @@ import 'dart:async'; import 'package:mopro_flutter/mopro_flutter.dart'; import 'package:mopro_flutter/mopro_types.dart'; +import 'package:path_provider/path_provider.dart'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:http/http.dart' as http; import 'package:system_info2/system_info2.dart'; @@ -21,7 +22,6 @@ class InputData { InputData({required this.name, required this.description, required this.values}); } - class AppTheme { static const Color primary = Color(0xFF5B56E6); static const Color secondary = Color(0xFF1E40AF); @@ -1610,28 +1610,32 @@ class _ProofResultPageState extends State { } } + + Future _generateCircomProof(MoproFlutter plugin) async { // Get input data based on algorithm (special case for Poseidon) final inputData = _getInputDataForAlgorithm(); final inputs = _inputDataToByteArrayJson(inputData); // Get the appropriate zkey path based on algorithm - final zkeyPath = _getZkeyPath(); - + final zkeyAssetPath = _getZkeyPath(); + print("DEBUG: Asset Path: $zkeyAssetPath"); + // Capture memory and battery BEFORE proof generation - _freeMemoryBeforeProof = SysInfo.getFreePhysicalMemory(); + final memSnapshotBefore = await _getMemorySnapshot(); + _freeMemoryBeforeProof = memSnapshotBefore.free; final battery = Battery(); _batteryBeforeProof = await battery.batteryLevel; - // Start timing final stopwatch = Stopwatch()..start(); // Start memory monitoring in background _startMemoryMonitoring(); - // Generate proof using actual MoPro + // Generate proof using actual MoPro - use asset path directly like Halo2/Noir + print("DEBUG: Calling generateCircomProof with asset path: $zkeyAssetPath"); final proofResult = await plugin.generateCircomProof( - zkeyPath, + zkeyAssetPath, inputs, ProofLib.arkworks ); @@ -1639,7 +1643,8 @@ class _ProofResultPageState extends State { stopwatch.stop(); // Capture memory and battery AFTER proof generation - _freeMemoryAfterProof = SysInfo.getFreePhysicalMemory(); + final memSnapshotAfter = await _getMemorySnapshot(); + _freeMemoryAfterProof = memSnapshotAfter.free; _batteryAfterProof = await battery.batteryLevel; if (proofResult == null) { @@ -1662,7 +1667,8 @@ class _ProofResultPageState extends State { }; // Capture memory and battery BEFORE proof generation - _freeMemoryBeforeProof = SysInfo.getFreePhysicalMemory(); + final memSnapshotBefore = await _getMemorySnapshot(); + _freeMemoryBeforeProof = memSnapshotBefore.free; final battery = Battery(); _batteryBeforeProof = await battery.batteryLevel; @@ -1683,7 +1689,8 @@ class _ProofResultPageState extends State { stopwatch.stop(); // Capture memory and battery AFTER proof generation - _freeMemoryAfterProof = SysInfo.getFreePhysicalMemory(); + final memSnapshotAfter = await _getMemorySnapshot(); + _freeMemoryAfterProof = memSnapshotAfter.free; _batteryAfterProof = await battery.batteryLevel; if (proofResult == null) { @@ -1709,7 +1716,8 @@ class _ProofResultPageState extends State { final (circuitPath, srsPath, onChain, vk) = await _getNoirSettings(); // Capture memory and battery BEFORE proof generation - _freeMemoryBeforeProof = SysInfo.getFreePhysicalMemory(); + final memSnapshotBefore = await _getMemorySnapshot(); + _freeMemoryBeforeProof = memSnapshotBefore.free; final battery = Battery(); _batteryBeforeProof = await battery.batteryLevel; @@ -1733,7 +1741,8 @@ class _ProofResultPageState extends State { stopwatch.stop(); // Capture memory and battery AFTER proof generation - _freeMemoryAfterProof = SysInfo.getFreePhysicalMemory(); + final memSnapshotAfter = await _getMemorySnapshot(); + _freeMemoryAfterProof = memSnapshotAfter.free; _batteryAfterProof = await battery.batteryLevel; // Store the proof result for verification @@ -1753,7 +1762,8 @@ class _ProofResultPageState extends State { int numericInput = int.tryParse(inputData.first) ?? 17; // Default to 17 if parsing fails // Capture memory and battery BEFORE proof generation - _freeMemoryBeforeProof = SysInfo.getFreePhysicalMemory(); + final memSnapshotBefore = await _getMemorySnapshot(); + _freeMemoryBeforeProof = memSnapshotBefore.free; final battery = Battery(); _batteryBeforeProof = await battery.batteryLevel; @@ -1770,7 +1780,8 @@ class _ProofResultPageState extends State { stopwatch.stop(); // Capture memory and battery AFTER proof generation - _freeMemoryAfterProof = SysInfo.getFreePhysicalMemory(); + final memSnapshotAfter = await _getMemorySnapshot(); + _freeMemoryAfterProof = memSnapshotAfter.free; _batteryAfterProof = await battery.batteryLevel; // Store the proof result for verification @@ -2137,12 +2148,12 @@ Timestamp: ${DateTime.now().millisecondsSinceEpoch} throw Exception('No proof available for verification'); } - final zkeyPath = _getZkeyPath(); + final zkeyAssetPath = _getZkeyPath(); // Start timing final stopwatch = Stopwatch()..start(); - final result = await plugin.verifyCircomProof(zkeyPath, _circomProofResult!, ProofLib.arkworks); + final result = await plugin.verifyCircomProof(zkeyAssetPath, _circomProofResult!, ProofLib.arkworks); // Stop timing and store stopwatch.stop(); @@ -2269,13 +2280,20 @@ Timestamp: ${DateTime.now().millisecondsSinceEpoch} }; } else if (Platform.isIOS) { final iosInfo = await deviceInfoPlugin.iosInfo; + final deviceName = _mapIOSDeviceName(iosInfo.utsname.machine); deviceData = { 'platform': 'iOS', - 'device': iosInfo.model, + 'device': deviceName, + 'manufacturer': 'Apple', + 'model': iosInfo.model, 'systemName': iosInfo.systemName, 'systemVersion': iosInfo.systemVersion, + 'osVersion': iosInfo.systemVersion, // Alias for generic display + 'androidVersion': iosInfo.systemVersion, // Fallback for dashboard compatibility 'name': iosInfo.name, 'identifierForVendor': iosInfo.identifierForVendor, + 'deviceId': iosInfo.identifierForVendor, // Alias for generic ID + 'androidId': iosInfo.identifierForVendor, // Fallback for dashboard compatibility 'isPhysicalDevice': iosInfo.isPhysicalDevice, 'utsname': { 'machine': iosInfo.utsname.machine, @@ -2296,7 +2314,8 @@ Timestamp: ${DateTime.now().millisecondsSinceEpoch} Future> _collectSystemInfo() async { try { // Get memory information - final totalPhysicalMemory = SysInfo.getTotalPhysicalMemory(); // in bytes + final memSnapshot = await _getMemorySnapshot(); + final totalPhysicalMemory = memSnapshot.total; // Calculate memory used during proof generation final memoryUsedBeforeProof = totalPhysicalMemory - _freeMemoryBeforeProof; @@ -2319,10 +2338,14 @@ Timestamp: ${DateTime.now().millisecondsSinceEpoch} 'memoryConsumedByProof': memoryConsumedByProof, // Peak memory load during percentage - 'peakMemoryLoadInPercentage': _peakMemoryUsage / totalPhysicalMemory * 100, + 'peakMemoryLoadInPercentage': totalPhysicalMemory > 0 + ? (_peakMemoryUsage / totalPhysicalMemory * 100) + : 0.0, // Memory consumed percentage - 'memoryConsumedInPercentage': memoryConsumedByProof / totalPhysicalMemory * 100, + 'memoryConsumedInPercentage': totalPhysicalMemory > 0 + ? (memoryConsumedByProof / totalPhysicalMemory * 100) + : 0.0, }, 'battery': { 'batteryBeforeProof': _batteryBeforeProof, @@ -2344,15 +2367,18 @@ Timestamp: ${DateTime.now().millisecondsSinceEpoch} _minFreeMemoryDuringProof = 0; // Sample memory every 100ms during proof generation - Timer.periodic(const Duration(milliseconds: 100), (timer) { + Timer.periodic(const Duration(milliseconds: 100), (timer) async { if (_isGenerating) { - final currentFreeMemory = SysInfo.getFreePhysicalMemory(); - final currentUsedMemory = SysInfo.getTotalPhysicalMemory() - currentFreeMemory; + // Skip memory monitoring on non-Android platforms, except iOS now supported + if (!Platform.isAndroid && !Platform.isIOS) return; + + final memSnapshot = await _getMemorySnapshot(); + final currentUsedMemory = memSnapshot.total - memSnapshot.free; // Track peak memory usage if (currentUsedMemory > _peakMemoryUsage) { _peakMemoryUsage = currentUsedMemory; - _minFreeMemoryDuringProof = currentFreeMemory; + _minFreeMemoryDuringProof = memSnapshot.free; } } else { timer.cancel(); @@ -2394,5 +2420,47 @@ Timestamp: ${DateTime.now().millisecondsSinceEpoch} return 0; } -} + // Helper to safely get current memory snapshot + Future<({int free, int total})> _getMemorySnapshot() async { + if (Platform.isAndroid) { + try { + return ( + free: SysInfo.getFreePhysicalMemory(), + total: SysInfo.getTotalPhysicalMemory() + ); + } catch (e) { + print("Error getting memory info: $e"); + } + } else if (Platform.isIOS) { + try { + final memoryInfo = await MoproFlutter().getIOSMemoryUsage(); + final used = memoryInfo['used'] ?? 0; + final total = memoryInfo['total'] ?? 0; + // Map iOS "App Used" to "Free" for compatibility with existing logic + // Logic: Used = Total - Free => Free = Total - Used + return (free: total - used, total: total); + } catch (e) { + print("Error getting iOS memory info: $e"); + } + } + return (free: 0, total: 0); + } + String _mapIOSDeviceName(String machineId) { + switch (machineId) { + case 'iPhone14,5': return 'iPhone 13'; + case 'iPhone14,4': return 'iPhone 13 Mini'; + case 'iPhone14,2': return 'iPhone 13 Pro'; + case 'iPhone14,3': return 'iPhone 13 Pro Max'; + case 'iPhone14,7': return 'iPhone 14'; + case 'iPhone14,8': return 'iPhone 14 Plus'; + case 'iPhone15,2': return 'iPhone 14 Pro'; + case 'iPhone15,3': return 'iPhone 14 Pro Max'; + case 'iPhone15,4': return 'iPhone 15'; + case 'iPhone15,5': return 'iPhone 15 Plus'; + case 'iPhone16,1': return 'iPhone 15 Pro'; + case 'iPhone16,2': return 'iPhone 15 Pro Max'; + default: return machineId; + } + } +} // End of class diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/android/src/main/jniLibs/arm64-v8a/.gitkeep b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/android/src/main/jniLibs/arm64-v8a/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/android/src/main/jniLibs/armeabi-v7a/.gitkeep b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/android/src/main/jniLibs/armeabi-v7a/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/android/src/main/jniLibs/x86/.gitkeep b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/android/src/main/jniLibs/x86/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/android/src/main/jniLibs/x86_64/.gitkeep b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/android/src/main/jniLibs/x86_64/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Classes/mopro.swift b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Classes/MoproCircom.swift similarity index 66% rename from benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Classes/mopro.swift rename to benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Classes/MoproCircom.swift index fdb4bc42..ab4d40df 100644 --- a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Classes/mopro.swift +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Classes/MoproCircom.swift @@ -7,35 +7,35 @@ import Foundation // Depending on the consumer's build setup, the low-level FFI code // might be in a separate module, or it might be compiled inline into // this module. This is a bit of light hackery to work with both. -#if canImport(mopro_example_appFFI) -import mopro_example_appFFI +#if canImport(deimos_circomFFI) +import deimos_circomFFI #endif -fileprivate extension RustBuffer { +fileprivate extension CircomRustBuffer { // Allocate a new buffer, copying the contents of a `UInt8` array. init(bytes: [UInt8]) { let rbuf = bytes.withUnsafeBufferPointer { ptr in - RustBuffer.from(ptr) + CircomRustBuffer.from(ptr) } self.init(capacity: rbuf.capacity, len: rbuf.len, data: rbuf.data) } - static func empty() -> RustBuffer { - RustBuffer(capacity: 0, len:0, data: nil) + static func empty() -> CircomRustBuffer { + CircomRustBuffer(capacity: 0, len:0, data: nil) } - static func from(_ ptr: UnsafeBufferPointer) -> RustBuffer { - try! rustCall { ffi_mopro_example_app_rustbuffer_from_bytes(ForeignBytes(bufferPointer: ptr), $0) } + static func from(_ ptr: UnsafeBufferPointer) -> CircomRustBuffer { + try! rustCall { ffi_deimos_circom_rustbuffer_from_bytes(CircomForeignBytes(bufferPointer: ptr), $0) } } // Frees the buffer in place. // The buffer must not be used after this is called. func deallocate() { - try! rustCall { ffi_mopro_example_app_rustbuffer_free(self, $0) } + try! rustCall { ffi_deimos_circom_rustbuffer_free(self, $0) } } } -fileprivate extension ForeignBytes { +fileprivate extension CircomForeignBytes { init(bufferPointer: UnsafeBufferPointer) { self.init(len: Int32(bufferPointer.count), data: bufferPointer.baseAddress) } @@ -49,7 +49,7 @@ fileprivate extension ForeignBytes { // Someday, this will be in a library of its own. fileprivate extension Data { - init(rustBuffer: RustBuffer) { + init(rustBuffer: CircomRustBuffer) { self.init( bytesNoCopy: rustBuffer.data!, count: Int(rustBuffer.len), @@ -185,15 +185,15 @@ extension FfiConverterPrimitive { } } -// Types conforming to `FfiConverterRustBuffer` lift and lower into a `RustBuffer`. +// Types conforming to `FfiConverterCircomRustBuffer` lift and lower into a `CircomRustBuffer`. // Used for complex types where it's hard to write a custom lift/lower. -fileprivate protocol FfiConverterRustBuffer: FfiConverter where FfiType == RustBuffer {} +fileprivate protocol FfiConverterCircomRustBuffer: FfiConverter where FfiType == CircomRustBuffer {} -extension FfiConverterRustBuffer { +extension FfiConverterCircomRustBuffer { #if swift(>=5.8) @_documentation(visibility: private) #endif - public static func lift(_ buf: RustBuffer) throws -> SwiftType { + public static func lift(_ buf: CircomRustBuffer) throws -> SwiftType { var reader = createReader(data: Data(rustBuffer: buf)) let value = try read(from: &reader) if hasRemaining(reader) { @@ -206,10 +206,10 @@ extension FfiConverterRustBuffer { #if swift(>=5.8) @_documentation(visibility: private) #endif - public static func lower(_ value: SwiftType) -> RustBuffer { + public static func lower(_ value: SwiftType) -> CircomRustBuffer { var writer = createWriter() write(value, into: &writer) - return RustBuffer(bytes: writer) + return CircomRustBuffer(bytes: writer) } } // An error type for FFI errors. These errors occur at the UniFFI level, not @@ -220,7 +220,7 @@ fileprivate enum UniffiInternalError: LocalizedError { case unexpectedOptionalTag case unexpectedEnumCase case unexpectedNullPointer - case unexpectedRustCallStatusCode + case unexpectedCircomRustCallStatusCode case unexpectedRustCallError case unexpectedStaleHandle case rustPanic(_ message: String) @@ -232,7 +232,7 @@ fileprivate enum UniffiInternalError: LocalizedError { case .unexpectedOptionalTag: return "Unexpected optional tag; should be 0 or 1" case .unexpectedEnumCase: return "Raw enum value doesn't match any cases" case .unexpectedNullPointer: return "Raw pointer value was null" - case .unexpectedRustCallStatusCode: return "Unexpected RustCallStatus code" + case .unexpectedCircomRustCallStatusCode: return "Unexpected CircomRustCallStatus code" case .unexpectedRustCallError: return "CALL_ERROR but no errorClass specified" case .unexpectedStaleHandle: return "The object in the handle map has been dropped already" case let .rustPanic(message): return message @@ -253,11 +253,11 @@ fileprivate let CALL_ERROR: Int8 = 1 fileprivate let CALL_UNEXPECTED_ERROR: Int8 = 2 fileprivate let CALL_CANCELLED: Int8 = 3 -fileprivate extension RustCallStatus { +fileprivate extension CircomRustCallStatus { init() { self.init( code: CALL_SUCCESS, - errorBuf: RustBuffer.init( + errorBuf: CircomRustBuffer.init( capacity: 0, len: 0, data: nil @@ -266,31 +266,31 @@ fileprivate extension RustCallStatus { } } -private func rustCall(_ callback: (UnsafeMutablePointer) -> T) throws -> T { - let neverThrow: ((RustBuffer) throws -> Never)? = nil +private func rustCall(_ callback: (UnsafeMutablePointer) -> T) throws -> T { + let neverThrow: ((CircomRustBuffer) throws -> Never)? = nil return try makeRustCall(callback, errorHandler: neverThrow) } private func rustCallWithError( - _ errorHandler: @escaping (RustBuffer) throws -> E, - _ callback: (UnsafeMutablePointer) -> T) throws -> T { + _ errorHandler: @escaping (CircomRustBuffer) throws -> E, + _ callback: (UnsafeMutablePointer) -> T) throws -> T { try makeRustCall(callback, errorHandler: errorHandler) } private func makeRustCall( - _ callback: (UnsafeMutablePointer) -> T, - errorHandler: ((RustBuffer) throws -> E)? + _ callback: (UnsafeMutablePointer) -> T, + errorHandler: ((CircomRustBuffer) throws -> E)? ) throws -> T { - uniffiEnsureMoproExampleAppInitialized() - var callStatus = RustCallStatus.init() + uniffiEnsureCircomInitialized() + var callStatus = CircomRustCallStatus.init() let returnedVal = callback(&callStatus) try uniffiCheckCallStatus(callStatus: callStatus, errorHandler: errorHandler) return returnedVal } private func uniffiCheckCallStatus( - callStatus: RustCallStatus, - errorHandler: ((RustBuffer) throws -> E)? + callStatus: CircomRustCallStatus, + errorHandler: ((CircomRustBuffer) throws -> E)? ) throws { switch callStatus.code { case CALL_SUCCESS: @@ -305,7 +305,7 @@ private func uniffiCheckCallStatus( } case CALL_UNEXPECTED_ERROR: - // When the rust code sees a panic, it tries to construct a RustBuffer + // When the rust code sees a panic, it tries to construct a CircomRustBuffer // with the message. But if that code panics, then it just sends back // an empty buffer. if callStatus.errorBuf.len > 0 { @@ -319,12 +319,12 @@ private func uniffiCheckCallStatus( fatalError("Cancellation not supported yet") default: - throw UniffiInternalError.unexpectedRustCallStatusCode + throw UniffiInternalError.unexpectedCircomRustCallStatusCode } } private func uniffiTraitInterfaceCall( - callStatus: UnsafeMutablePointer, + callStatus: UnsafeMutablePointer, makeCall: () throws -> T, writeReturn: (T) -> () ) { @@ -337,10 +337,10 @@ private func uniffiTraitInterfaceCall( } private func uniffiTraitInterfaceCallWithError( - callStatus: UnsafeMutablePointer, + callStatus: UnsafeMutablePointer, makeCall: () throws -> T, writeReturn: (T) -> (), - lowerError: (E) -> RustBuffer + lowerError: (E) -> CircomRustBuffer ) { do { try writeReturn(makeCall()) @@ -426,9 +426,9 @@ fileprivate struct FfiConverterBool : FfiConverter { #endif fileprivate struct FfiConverterString: FfiConverter { typealias SwiftType = String - typealias FfiType = RustBuffer + typealias FfiType = CircomRustBuffer - public static func lift(_ value: RustBuffer) throws -> String { + public static func lift(_ value: CircomRustBuffer) throws -> String { defer { value.deallocate() } @@ -439,13 +439,13 @@ fileprivate struct FfiConverterString: FfiConverter { return String(bytes: bytes, encoding: String.Encoding.utf8)! } - public static func lower(_ value: String) -> RustBuffer { + public static func lower(_ value: String) -> CircomRustBuffer { return value.utf8CString.withUnsafeBufferPointer { ptr in // The swift string gives us int8_t, we want uint8_t. ptr.withMemoryRebound(to: UInt8.self) { ptr in // The swift string gives us a trailing null byte, we don't want it. let buf = UnsafeBufferPointer(rebasing: ptr.prefix(upTo: ptr.count - 1)) - return RustBuffer.from(buf) + return CircomRustBuffer.from(buf) } } } @@ -462,24 +462,6 @@ fileprivate struct FfiConverterString: FfiConverter { } } -#if swift(>=5.8) -@_documentation(visibility: private) -#endif -fileprivate struct FfiConverterData: FfiConverterRustBuffer { - typealias SwiftType = Data - - public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Data { - let len: Int32 = try readInt(&buf) - return Data(try readBytes(&buf, count: Int(len))) - } - - public static func write(_ value: Data, into buf: inout [UInt8]) { - let len = Int32(value.count) - writeInt(&buf, len) - writeBytes(&buf, value) - } -} - public struct CircomProof { public var a: G1 @@ -538,7 +520,7 @@ extension CircomProof: Equatable, Hashable { #if swift(>=5.8) @_documentation(visibility: private) #endif -public struct FfiConverterTypeCircomProof: FfiConverterRustBuffer { +public struct FfiConverterTypeCircomProof: FfiConverterCircomRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> CircomProof { return try CircomProof( @@ -563,14 +545,14 @@ public struct FfiConverterTypeCircomProof: FfiConverterRustBuffer { #if swift(>=5.8) @_documentation(visibility: private) #endif -public func FfiConverterTypeCircomProof_lift(_ buf: RustBuffer) throws -> CircomProof { +public func FfiConverterTypeCircomProof_lift(_ buf: CircomRustBuffer) throws -> CircomProof { return try FfiConverterTypeCircomProof.lift(buf) } #if swift(>=5.8) @_documentation(visibility: private) #endif -public func FfiConverterTypeCircomProof_lower(_ value: CircomProof) -> RustBuffer { +public func FfiConverterTypeCircomProof_lower(_ value: CircomProof) -> CircomRustBuffer { return FfiConverterTypeCircomProof.lower(value) } @@ -614,7 +596,7 @@ extension CircomProofResult: Equatable, Hashable { #if swift(>=5.8) @_documentation(visibility: private) #endif -public struct FfiConverterTypeCircomProofResult: FfiConverterRustBuffer { +public struct FfiConverterTypeCircomProofResult: FfiConverterCircomRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> CircomProofResult { return try CircomProofResult( @@ -633,14 +615,14 @@ public struct FfiConverterTypeCircomProofResult: FfiConverterRustBuffer { #if swift(>=5.8) @_documentation(visibility: private) #endif -public func FfiConverterTypeCircomProofResult_lift(_ buf: RustBuffer) throws -> CircomProofResult { +public func FfiConverterTypeCircomProofResult_lift(_ buf: CircomRustBuffer) throws -> CircomProofResult { return try FfiConverterTypeCircomProofResult.lift(buf) } #if swift(>=5.8) @_documentation(visibility: private) #endif -public func FfiConverterTypeCircomProofResult_lower(_ value: CircomProofResult) -> RustBuffer { +public func FfiConverterTypeCircomProofResult_lower(_ value: CircomProofResult) -> CircomRustBuffer { return FfiConverterTypeCircomProofResult.lower(value) } @@ -690,7 +672,7 @@ extension G1: Equatable, Hashable { #if swift(>=5.8) @_documentation(visibility: private) #endif -public struct FfiConverterTypeG1: FfiConverterRustBuffer { +public struct FfiConverterTypeG1: FfiConverterCircomRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> G1 { return try G1( @@ -711,14 +693,14 @@ public struct FfiConverterTypeG1: FfiConverterRustBuffer { #if swift(>=5.8) @_documentation(visibility: private) #endif -public func FfiConverterTypeG1_lift(_ buf: RustBuffer) throws -> G1 { +public func FfiConverterTypeG1_lift(_ buf: CircomRustBuffer) throws -> G1 { return try FfiConverterTypeG1.lift(buf) } #if swift(>=5.8) @_documentation(visibility: private) #endif -public func FfiConverterTypeG1_lower(_ value: G1) -> RustBuffer { +public func FfiConverterTypeG1_lower(_ value: G1) -> CircomRustBuffer { return FfiConverterTypeG1.lower(value) } @@ -768,7 +750,7 @@ extension G2: Equatable, Hashable { #if swift(>=5.8) @_documentation(visibility: private) #endif -public struct FfiConverterTypeG2: FfiConverterRustBuffer { +public struct FfiConverterTypeG2: FfiConverterCircomRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> G2 { return try G2( @@ -789,108 +771,34 @@ public struct FfiConverterTypeG2: FfiConverterRustBuffer { #if swift(>=5.8) @_documentation(visibility: private) #endif -public func FfiConverterTypeG2_lift(_ buf: RustBuffer) throws -> G2 { +public func FfiConverterTypeG2_lift(_ buf: CircomRustBuffer) throws -> G2 { return try FfiConverterTypeG2.lift(buf) } #if swift(>=5.8) @_documentation(visibility: private) #endif -public func FfiConverterTypeG2_lower(_ value: G2) -> RustBuffer { +public func FfiConverterTypeG2_lower(_ value: G2) -> CircomRustBuffer { return FfiConverterTypeG2.lower(value) } -public struct Halo2ProofResult { - public var proof: Data - public var inputs: Data - - // Default memberwise initializers are never public by default, so we - // declare one manually. - public init(proof: Data, inputs: Data) { - self.proof = proof - self.inputs = inputs - } -} - -#if compiler(>=6) -extension Halo2ProofResult: Sendable {} -#endif - - -extension Halo2ProofResult: Equatable, Hashable { - public static func ==(lhs: Halo2ProofResult, rhs: Halo2ProofResult) -> Bool { - if lhs.proof != rhs.proof { - return false - } - if lhs.inputs != rhs.inputs { - return false - } - return true - } - - public func hash(into hasher: inout Hasher) { - hasher.combine(proof) - hasher.combine(inputs) - } -} - - - -#if swift(>=5.8) -@_documentation(visibility: private) -#endif -public struct FfiConverterTypeHalo2ProofResult: FfiConverterRustBuffer { - public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Halo2ProofResult { - return - try Halo2ProofResult( - proof: FfiConverterData.read(from: &buf), - inputs: FfiConverterData.read(from: &buf) - ) - } - - public static func write(_ value: Halo2ProofResult, into buf: inout [UInt8]) { - FfiConverterData.write(value.proof, into: &buf) - FfiConverterData.write(value.inputs, into: &buf) - } -} - - -#if swift(>=5.8) -@_documentation(visibility: private) -#endif -public func FfiConverterTypeHalo2ProofResult_lift(_ buf: RustBuffer) throws -> Halo2ProofResult { - return try FfiConverterTypeHalo2ProofResult.lift(buf) -} - -#if swift(>=5.8) -@_documentation(visibility: private) -#endif -public func FfiConverterTypeHalo2ProofResult_lower(_ value: Halo2ProofResult) -> RustBuffer { - return FfiConverterTypeHalo2ProofResult.lower(value) -} - - -public enum MoproError { +public enum CircomMoproError { case CircomError(String ) - case Halo2Error(String - ) - case NoirError(String - ) } #if swift(>=5.8) @_documentation(visibility: private) #endif -public struct FfiConverterTypeMoproError: FfiConverterRustBuffer { - typealias SwiftType = MoproError +public struct FfiConverterTypeCircomMoproError: FfiConverterCircomRustBuffer { + typealias SwiftType = CircomMoproError - public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MoproError { + public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> CircomMoproError { let variant: Int32 = try readInt(&buf) switch variant { @@ -900,18 +808,12 @@ public struct FfiConverterTypeMoproError: FfiConverterRustBuffer { case 1: return .CircomError( try FfiConverterString.read(from: &buf) ) - case 2: return .Halo2Error( - try FfiConverterString.read(from: &buf) - ) - case 3: return .NoirError( - try FfiConverterString.read(from: &buf) - ) default: throw UniffiInternalError.unexpectedEnumCase } } - public static func write(_ value: MoproError, into buf: inout [UInt8]) { + public static func write(_ value: CircomMoproError, into buf: inout [UInt8]) { switch value { @@ -922,16 +824,6 @@ public struct FfiConverterTypeMoproError: FfiConverterRustBuffer { writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - case let .Halo2Error(v1): - writeInt(&buf, Int32(2)) - FfiConverterString.write(v1, into: &buf) - - - case let .NoirError(v1): - writeInt(&buf, Int32(3)) - FfiConverterString.write(v1, into: &buf) - } } } @@ -940,23 +832,23 @@ public struct FfiConverterTypeMoproError: FfiConverterRustBuffer { #if swift(>=5.8) @_documentation(visibility: private) #endif -public func FfiConverterTypeMoproError_lift(_ buf: RustBuffer) throws -> MoproError { - return try FfiConverterTypeMoproError.lift(buf) +public func FfiConverterTypeCircomMoproError_lift(_ buf: CircomRustBuffer) throws -> CircomMoproError { + return try FfiConverterTypeCircomMoproError.lift(buf) } #if swift(>=5.8) @_documentation(visibility: private) #endif -public func FfiConverterTypeMoproError_lower(_ value: MoproError) -> RustBuffer { - return FfiConverterTypeMoproError.lower(value) +public func FfiConverterTypeCircomMoproError_lower(_ value: CircomMoproError) -> CircomRustBuffer { + return FfiConverterTypeCircomMoproError.lower(value) } -extension MoproError: Equatable, Hashable {} +extension CircomMoproError: Equatable, Hashable {} -extension MoproError: Foundation.LocalizedError { +extension CircomMoproError: Foundation.LocalizedError { public var errorDescription: String? { String(reflecting: self) } @@ -966,7 +858,7 @@ extension MoproError: Foundation.LocalizedError { // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. -public enum ProofLib { +public enum CircomProofLib { case arkworks case rapidsnark @@ -974,16 +866,16 @@ public enum ProofLib { #if compiler(>=6) -extension ProofLib: Sendable {} +extension CircomProofLib: Sendable {} #endif #if swift(>=5.8) @_documentation(visibility: private) #endif -public struct FfiConverterTypeProofLib: FfiConverterRustBuffer { - typealias SwiftType = ProofLib +public struct FfiConverterTypeCircomProofLib: FfiConverterCircomRustBuffer { + typealias SwiftType = CircomProofLib - public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ProofLib { + public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> CircomProofLib { let variant: Int32 = try readInt(&buf) switch variant { @@ -995,7 +887,7 @@ public struct FfiConverterTypeProofLib: FfiConverterRustBuffer { } } - public static func write(_ value: ProofLib, into buf: inout [UInt8]) { + public static func write(_ value: CircomProofLib, into buf: inout [UInt8]) { switch value { @@ -1014,50 +906,26 @@ public struct FfiConverterTypeProofLib: FfiConverterRustBuffer { #if swift(>=5.8) @_documentation(visibility: private) #endif -public func FfiConverterTypeProofLib_lift(_ buf: RustBuffer) throws -> ProofLib { - return try FfiConverterTypeProofLib.lift(buf) +public func FfiConverterTypeCircomProofLib_lift(_ buf: CircomRustBuffer) throws -> CircomProofLib { + return try FfiConverterTypeCircomProofLib.lift(buf) } #if swift(>=5.8) @_documentation(visibility: private) #endif -public func FfiConverterTypeProofLib_lower(_ value: ProofLib) -> RustBuffer { - return FfiConverterTypeProofLib.lower(value) +public func FfiConverterTypeCircomProofLib_lower(_ value: CircomProofLib) -> CircomRustBuffer { + return FfiConverterTypeCircomProofLib.lower(value) } -extension ProofLib: Equatable, Hashable {} - - - -#if swift(>=5.8) -@_documentation(visibility: private) -#endif -fileprivate struct FfiConverterOptionString: FfiConverterRustBuffer { - typealias SwiftType = String? +extension CircomProofLib: Equatable, Hashable {} - public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { - writeInt(&buf, Int8(0)) - return - } - writeInt(&buf, Int8(1)) - FfiConverterString.write(value, into: &buf) - } - public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { - switch try readInt(&buf) as Int8 { - case 0: return nil - case 1: return try FfiConverterString.read(from: &buf) - default: throw UniffiInternalError.unexpectedOptionalTag - } - } -} #if swift(>=5.8) @_documentation(visibility: private) #endif -fileprivate struct FfiConverterSequenceString: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceString: FfiConverterCircomRustBuffer { typealias SwiftType = [String] public static func write(_ value: [String], into buf: inout [UInt8]) { @@ -1078,109 +946,27 @@ fileprivate struct FfiConverterSequenceString: FfiConverterRustBuffer { return seq } } - -#if swift(>=5.8) -@_documentation(visibility: private) -#endif -fileprivate struct FfiConverterDictionaryStringSequenceString: FfiConverterRustBuffer { - public static func write(_ value: [String: [String]], into buf: inout [UInt8]) { - let len = Int32(value.count) - writeInt(&buf, len) - for (key, value) in value { - FfiConverterString.write(key, into: &buf) - FfiConverterSequenceString.write(value, into: &buf) - } - } - - public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> [String: [String]] { - let len: Int32 = try readInt(&buf) - var dict = [String: [String]]() - dict.reserveCapacity(Int(len)) - for _ in 0.. CircomProofResult { - return try FfiConverterTypeCircomProofResult_lift(try rustCallWithError(FfiConverterTypeMoproError_lift) { - uniffi_mopro_example_app_fn_func_generate_circom_proof( +public func generateCircomProof(zkeyPath: String, circuitInputs: String, proofLib: CircomProofLib)throws -> CircomProofResult { + return try FfiConverterTypeCircomProofResult_lift(try rustCallWithError(FfiConverterTypeCircomMoproError_lift) { + uniffi_deimos_circom_fn_func_generate_circom_proof( FfiConverterString.lower(zkeyPath), FfiConverterString.lower(circuitInputs), - FfiConverterTypeProofLib_lower(proofLib),$0 - ) -}) -} -public func generateHalo2Proof(srsPath: String, pkPath: String, circuitInputs: [String: [String]])throws -> Halo2ProofResult { - return try FfiConverterTypeHalo2ProofResult_lift(try rustCallWithError(FfiConverterTypeMoproError_lift) { - uniffi_mopro_example_app_fn_func_generate_halo2_proof( - FfiConverterString.lower(srsPath), - FfiConverterString.lower(pkPath), - FfiConverterDictionaryStringSequenceString.lower(circuitInputs),$0 - ) -}) -} -public func generateNoirProof(circuitPath: String, srsPath: String?, inputs: [String], onChain: Bool, vk: Data, lowMemoryMode: Bool)throws -> Data { - return try FfiConverterData.lift(try rustCallWithError(FfiConverterTypeMoproError_lift) { - uniffi_mopro_example_app_fn_func_generate_noir_proof( - FfiConverterString.lower(circuitPath), - FfiConverterOptionString.lower(srsPath), - FfiConverterSequenceString.lower(inputs), - FfiConverterBool.lower(onChain), - FfiConverterData.lower(vk), - FfiConverterBool.lower(lowMemoryMode),$0 + FfiConverterTypeCircomProofLib_lower(proofLib),$0 ) }) } -public func getNoirVerificationKey(circuitPath: String, srsPath: String?, onChain: Bool, lowMemoryMode: Bool)throws -> Data { - return try FfiConverterData.lift(try rustCallWithError(FfiConverterTypeMoproError_lift) { - uniffi_mopro_example_app_fn_func_get_noir_verification_key( - FfiConverterString.lower(circuitPath), - FfiConverterOptionString.lower(srsPath), - FfiConverterBool.lower(onChain), - FfiConverterBool.lower(lowMemoryMode),$0 - ) -}) -} -/** - * You can also customize the bindings by #[uniffi::export] - * Reference: https://mozilla.github.io/uniffi-rs/latest/proc_macro/index.html - */ -public func moproUniffiHelloWorld() -> String { +public func moproUniffiHelloWorld_Circom() -> String { return try! FfiConverterString.lift(try! rustCall() { - uniffi_mopro_example_app_fn_func_mopro_uniffi_hello_world($0 + uniffi_deimos_circom_fn_func_mopro_uniffi_hello_world($0 ) }) } -public func verifyCircomProof(zkeyPath: String, proofResult: CircomProofResult, proofLib: ProofLib)throws -> Bool { - return try FfiConverterBool.lift(try rustCallWithError(FfiConverterTypeMoproError_lift) { - uniffi_mopro_example_app_fn_func_verify_circom_proof( +public func verifyCircomProof(zkeyPath: String, proofResult: CircomProofResult, proofLib: CircomProofLib)throws -> Bool { + return try FfiConverterBool.lift(try rustCallWithError(FfiConverterTypeCircomMoproError_lift) { + uniffi_deimos_circom_fn_func_verify_circom_proof( FfiConverterString.lower(zkeyPath), FfiConverterTypeCircomProofResult_lower(proofResult), - FfiConverterTypeProofLib_lower(proofLib),$0 - ) -}) -} -public func verifyHalo2Proof(srsPath: String, vkPath: String, proof: Data, publicInput: Data)throws -> Bool { - return try FfiConverterBool.lift(try rustCallWithError(FfiConverterTypeMoproError_lift) { - uniffi_mopro_example_app_fn_func_verify_halo2_proof( - FfiConverterString.lower(srsPath), - FfiConverterString.lower(vkPath), - FfiConverterData.lower(proof), - FfiConverterData.lower(publicInput),$0 - ) -}) -} -public func verifyNoirProof(circuitPath: String, proof: Data, onChain: Bool, vk: Data, lowMemoryMode: Bool)throws -> Bool { - return try FfiConverterBool.lift(try rustCallWithError(FfiConverterTypeMoproError_lift) { - uniffi_mopro_example_app_fn_func_verify_noir_proof( - FfiConverterString.lower(circuitPath), - FfiConverterData.lower(proof), - FfiConverterBool.lower(onChain), - FfiConverterData.lower(vk), - FfiConverterBool.lower(lowMemoryMode),$0 + FfiConverterTypeCircomProofLib_lower(proofLib),$0 ) }) } @@ -1196,32 +982,17 @@ private let initializationResult: InitializationResult = { // Get the bindings contract version from our ComponentInterface let bindings_contract_version = 29 // Get the scaffolding contract version by calling the into the dylib - let scaffolding_contract_version = ffi_mopro_example_app_uniffi_contract_version() + let scaffolding_contract_version = ffi_deimos_circom_uniffi_contract_version() if bindings_contract_version != scaffolding_contract_version { return InitializationResult.contractVersionMismatch } - if (uniffi_mopro_example_app_checksum_func_generate_circom_proof() != 27552) { - return InitializationResult.apiChecksumMismatch - } - if (uniffi_mopro_example_app_checksum_func_generate_halo2_proof() != 12749) { - return InitializationResult.apiChecksumMismatch - } - if (uniffi_mopro_example_app_checksum_func_generate_noir_proof() != 56104) { - return InitializationResult.apiChecksumMismatch - } - if (uniffi_mopro_example_app_checksum_func_get_noir_verification_key() != 6414) { - return InitializationResult.apiChecksumMismatch - } - if (uniffi_mopro_example_app_checksum_func_mopro_uniffi_hello_world() != 57387) { - return InitializationResult.apiChecksumMismatch - } - if (uniffi_mopro_example_app_checksum_func_verify_circom_proof() != 8858) { + if (uniffi_deimos_circom_checksum_func_generate_circom_proof() != 61206) { return InitializationResult.apiChecksumMismatch } - if (uniffi_mopro_example_app_checksum_func_verify_halo2_proof() != 24595) { + if (uniffi_deimos_circom_checksum_func_mopro_uniffi_hello_world() != 64975) { return InitializationResult.apiChecksumMismatch } - if (uniffi_mopro_example_app_checksum_func_verify_noir_proof() != 50047) { + if (uniffi_deimos_circom_checksum_func_verify_circom_proof() != 26290) { return InitializationResult.apiChecksumMismatch } @@ -1230,7 +1001,7 @@ private let initializationResult: InitializationResult = { // Make the ensure init function public so that other modules which have external type references to // our types can call it. -public func uniffiEnsureMoproExampleAppInitialized() { +public func uniffiEnsureCircomInitialized() { switch initializationResult { case .ok: break diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Classes/MoproFlutterPlugin.swift b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Classes/MoproFlutterPlugin.swift index 746e342a..b144f262 100644 --- a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Classes/MoproFlutterPlugin.swift +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Classes/MoproFlutterPlugin.swift @@ -123,25 +123,31 @@ public class MoproFlutterPlugin: NSObject, FlutterPlugin { return } - do { - var moproProofLib: ProofLib - if proofLib == 0 { - moproProofLib = ProofLib.arkworks - } else { - moproProofLib = ProofLib.rapidsnark - } - // Call the function from mopro.swift - let proofResult = try generateCircomProof( - zkeyPath: zkeyPath, circuitInputs: inputs, proofLib: moproProofLib) - let resultMap = convertCircomProof(res: proofResult) + DispatchQueue.global(qos: .userInitiated).async { + do { + var moproProofLib: CircomProofLib + if proofLib == 0 { + moproProofLib = CircomProofLib.arkworks + } else { + moproProofLib = CircomProofLib.rapidsnark + } + // Call the function from mopro.swift + let proofResult = try generateCircomProof( + zkeyPath: zkeyPath, circuitInputs: inputs, proofLib: moproProofLib) + let resultMap = convertCircomProof(res: proofResult) - // Return the proof and inputs as a map supported by the StandardMethodCodec - result(resultMap) - } catch { - result( - FlutterError( - code: "PROOF_GENERATION_ERROR", message: "Failed to generate proof", - details: error.localizedDescription)) + // Return the proof and inputs as a map supported by the StandardMethodCodec + DispatchQueue.main.async { + result(resultMap) + } + } catch { + DispatchQueue.main.async { + result( + FlutterError( + code: "PROOF_GENERATION_ERROR", message: "Failed to generate proof", + details: error.localizedDescription)) + } + } } case "verifyCircomProof": @@ -154,95 +160,34 @@ public class MoproFlutterPlugin: NSObject, FlutterPlugin { return } - do { - var moproProofLib: ProofLib - if proofLib == 0 { - moproProofLib = ProofLib.arkworks - } else { - moproProofLib = ProofLib.rapidsnark - } - let circomProofResult = convertCircomProofResult(proof: proof) - // Call the function from mopro.swift - let valid = try verifyCircomProof( - zkeyPath: zkeyPath, proofResult: circomProofResult, proofLib: moproProofLib) - - // Return the proof and inputs as a map supported by the StandardMethodCodec - result(valid) - } catch { - result( - FlutterError( - code: "PROOF_VERIFICATION_ERROR", message: "Failed to verify proof", - details: error.localizedDescription)) - } - - case "generateHalo2Proof": - guard let args = call.arguments as? [String: Any], - let srsPath = args["srsPath"] as? String, - let pkPath = args["pkPath"] as? String, - let inputs = args["inputs"] as? [String: [String]] - else { - result(FlutterError(code: "ARGUMENT_ERROR", message: "Missing arguments", details: nil)) - return - } - - do { - let proofResult = try generateHalo2Proof( - srsPath: srsPath, pkPath: pkPath, circuitInputs: inputs) - let resultMap = [ - "proof": proofResult.proof, - "inputs": proofResult.inputs, - ] - result(resultMap) - } catch { - result( - FlutterError( - code: "PROOF_GENERATION_ERROR", message: "Failed to generate proof", - details: error.localizedDescription)) - } - - case "verifyHalo2Proof": - guard let args = call.arguments as? [String: Any], - let srsPath = args["srsPath"] as? String - else { - result( - FlutterError(code: "ARGUMENT_ERROR", message: "Missing arguments srsPath", details: nil)) - return - } - - guard let args = call.arguments as? [String: Any], - let vkPath = args["vkPath"] as? String - else { - result( - FlutterError(code: "ARGUMENT_ERROR", message: "Missing arguments vkPath", details: nil)) - return - } + DispatchQueue.global(qos: .userInitiated).async { + do { + var moproProofLib: CircomProofLib + if proofLib == 0 { + moproProofLib = CircomProofLib.arkworks + } else { + moproProofLib = CircomProofLib.rapidsnark + } + let circomProofResult = convertCircomProofResult(proof: proof) + // Call the function from mopro.swift + let valid = try verifyCircomProof( + zkeyPath: zkeyPath, proofResult: circomProofResult, proofLib: moproProofLib) - guard let args = call.arguments as? [String: Any], - let proof = args["proof"] as? FlutterStandardTypedData - else { - result( - FlutterError(code: "ARGUMENT_ERROR", message: "Missing arguments proof", details: nil)) - return + // Return the proof and inputs as a map supported by the StandardMethodCodec + DispatchQueue.main.async { + result(valid) + } + } catch { + DispatchQueue.main.async { + result( + FlutterError( + code: "PROOF_VERIFICATION_ERROR", message: "Failed to verify proof", + details: error.localizedDescription)) + } + } } - guard let args = call.arguments as? [String: Any], - let inputs = args["inputs"] as? FlutterStandardTypedData - else { - result( - FlutterError(code: "ARGUMENT_ERROR", message: "Missing arguments inputs", details: nil)) - return - } - do { - let valid = try verifyHalo2Proof( - srsPath: srsPath, vkPath: vkPath, proof: proof.data, publicInput: inputs.data) - result(valid) - } catch { - result( - FlutterError( - code: "PROOF_VERIFICATION_ERROR", message: "Failed to verify proof", - details: error.localizedDescription)) - } case "generateNoirProof": guard let args = call.arguments as? [String: Any], let circuitPath = args["circuitPath"] as? String, @@ -310,8 +255,30 @@ public class MoproFlutterPlugin: NSObject, FlutterPlugin { code: "VK_GENERATION_ERROR", message: "Failed to generate verification key", details: error.localizedDescription)) } + case "getIOSMemoryUsage": + let memoryInfo = getMemoryUsage() + result(memoryInfo) default: result(FlutterMethodNotImplemented) } } + + func getMemoryUsage() -> [String: Int64] { + var taskInfo = mach_task_basic_info() + var count = mach_msg_type_number_t(MemoryLayout.size) / 4 + let kerr: kern_return_t = withUnsafeMutablePointer(to: &taskInfo) { + $0.withMemoryRebound(to: integer_t.self, capacity: 1) { + task_info(mach_task_self_, task_flavor_t(MACH_TASK_BASIC_INFO), $0, &count) + } + } + + var usedMemory: Int64 = 0 + if kerr == KERN_SUCCESS { + usedMemory = Int64(taskInfo.resident_size) + } + + let totalMemory = Int64(ProcessInfo.processInfo.physicalMemory) + + return ["used": usedMemory, "total": totalMemory] + } } diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Classes/MoproNoir.swift b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Classes/MoproNoir.swift new file mode 100644 index 00000000..c9cbc3fa --- /dev/null +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Classes/MoproNoir.swift @@ -0,0 +1,846 @@ +// This file was autogenerated by some hot garbage in the `uniffi` crate. +// Trust me, you don't want to mess with it! + +// swiftlint:disable all +import Foundation + +// Depending on the consumer's build setup, the low-level FFI code +// might be in a separate module, or it might be compiled inline into +// this module. This is a bit of light hackery to work with both. +#if canImport(deimos_noirFFI) +import deimos_noirFFI +#endif + +fileprivate extension NoirRustBuffer { + // Allocate a new buffer, copying the contents of a `UInt8` array. + init(bytes: [UInt8]) { + let rbuf = bytes.withUnsafeBufferPointer { ptr in + NoirRustBuffer.from(ptr) + } + self.init(capacity: rbuf.capacity, len: rbuf.len, data: rbuf.data) + } + + static func empty() -> NoirRustBuffer { + NoirRustBuffer(capacity: 0, len:0, data: nil) + } + + static func from(_ ptr: UnsafeBufferPointer) -> NoirRustBuffer { + try! rustCall { ffi_deimos_noir_rustbuffer_from_bytes(NoirForeignBytes(bufferPointer: ptr), $0) } + } + + // Frees the buffer in place. + // The buffer must not be used after this is called. + func deallocate() { + try! rustCall { ffi_deimos_noir_rustbuffer_free(self, $0) } + } +} + +fileprivate extension NoirForeignBytes { + init(bufferPointer: UnsafeBufferPointer) { + self.init(len: Int32(bufferPointer.count), data: bufferPointer.baseAddress) + } +} + +// For every type used in the interface, we provide helper methods for conveniently +// lifting and lowering that type from C-compatible data, and for reading and writing +// values of that type in a buffer. + +// Helper classes/extensions that don't change. +// Someday, this will be in a library of its own. + +fileprivate extension Data { + init(rustBuffer: NoirRustBuffer) { + self.init( + bytesNoCopy: rustBuffer.data!, + count: Int(rustBuffer.len), + deallocator: .none + ) + } +} + +// Define reader functionality. Normally this would be defined in a class or +// struct, but we use standalone functions instead in order to make external +// types work. +// +// With external types, one swift source file needs to be able to call the read +// method on another source file's FfiConverter, but then what visibility +// should Reader have? +// - If Reader is fileprivate, then this means the read() must also +// be fileprivate, which doesn't work with external types. +// - If Reader is internal/public, we'll get compile errors since both source +// files will try define the same type. +// +// Instead, the read() method and these helper functions input a tuple of data + +fileprivate func createReader(data: Data) -> (data: Data, offset: Data.Index) { + (data: data, offset: 0) +} + +// Reads an integer at the current offset, in big-endian order, and advances +// the offset on success. Throws if reading the integer would move the +// offset past the end of the buffer. +fileprivate func readInt(_ reader: inout (data: Data, offset: Data.Index)) throws -> T { + let range = reader.offset...size + guard reader.data.count >= range.upperBound else { + throw UniffiInternalError.bufferOverflow + } + if T.self == UInt8.self { + let value = reader.data[reader.offset] + reader.offset += 1 + return value as! T + } + var value: T = 0 + let _ = withUnsafeMutableBytes(of: &value, { reader.data.copyBytes(to: $0, from: range)}) + reader.offset = range.upperBound + return value.bigEndian +} + +// Reads an arbitrary number of bytes, to be used to read +// raw bytes, this is useful when lifting strings +fileprivate func readBytes(_ reader: inout (data: Data, offset: Data.Index), count: Int) throws -> Array { + let range = reader.offset..<(reader.offset+count) + guard reader.data.count >= range.upperBound else { + throw UniffiInternalError.bufferOverflow + } + var value = [UInt8](repeating: 0, count: count) + value.withUnsafeMutableBufferPointer({ buffer in + reader.data.copyBytes(to: buffer, from: range) + }) + reader.offset = range.upperBound + return value +} + +// Reads a float at the current offset. +fileprivate func readFloat(_ reader: inout (data: Data, offset: Data.Index)) throws -> Float { + return Float(bitPattern: try readInt(&reader)) +} + +// Reads a float at the current offset. +fileprivate func readDouble(_ reader: inout (data: Data, offset: Data.Index)) throws -> Double { + return Double(bitPattern: try readInt(&reader)) +} + +// Indicates if the offset has reached the end of the buffer. +fileprivate func hasRemaining(_ reader: (data: Data, offset: Data.Index)) -> Bool { + return reader.offset < reader.data.count +} + +// Define writer functionality. Normally this would be defined in a class or +// struct, but we use standalone functions instead in order to make external +// types work. See the above discussion on Readers for details. + +fileprivate func createWriter() -> [UInt8] { + return [] +} + +fileprivate func writeBytes(_ writer: inout [UInt8], _ byteArr: S) where S: Sequence, S.Element == UInt8 { + writer.append(contentsOf: byteArr) +} + +// Writes an integer in big-endian order. +// +// Warning: make sure what you are trying to write +// is in the correct type! +fileprivate func writeInt(_ writer: inout [UInt8], _ value: T) { + var value = value.bigEndian + withUnsafeBytes(of: &value) { writer.append(contentsOf: $0) } +} + +fileprivate func writeFloat(_ writer: inout [UInt8], _ value: Float) { + writeInt(&writer, value.bitPattern) +} + +fileprivate func writeDouble(_ writer: inout [UInt8], _ value: Double) { + writeInt(&writer, value.bitPattern) +} + +// Protocol for types that transfer other types across the FFI. This is +// analogous to the Rust trait of the same name. +fileprivate protocol FfiConverter { + associatedtype FfiType + associatedtype SwiftType + + static func lift(_ value: FfiType) throws -> SwiftType + static func lower(_ value: SwiftType) -> FfiType + static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType + static func write(_ value: SwiftType, into buf: inout [UInt8]) +} + +// Types conforming to `Primitive` pass themselves directly over the FFI. +fileprivate protocol FfiConverterPrimitive: FfiConverter where FfiType == SwiftType { } + +extension FfiConverterPrimitive { +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public static func lift(_ value: FfiType) throws -> SwiftType { + return value + } + +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public static func lower(_ value: SwiftType) -> FfiType { + return value + } +} + +// Types conforming to `FfiConverterNoirRustBuffer` lift and lower into a `NoirRustBuffer`. +// Used for complex types where it's hard to write a custom lift/lower. +fileprivate protocol FfiConverterNoirRustBuffer: FfiConverter where FfiType == NoirRustBuffer {} + +extension FfiConverterNoirRustBuffer { +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public static func lift(_ buf: NoirRustBuffer) throws -> SwiftType { + var reader = createReader(data: Data(rustBuffer: buf)) + let value = try read(from: &reader) + if hasRemaining(reader) { + throw UniffiInternalError.incompleteData + } + buf.deallocate() + return value + } + +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public static func lower(_ value: SwiftType) -> NoirRustBuffer { + var writer = createWriter() + write(value, into: &writer) + return NoirRustBuffer(bytes: writer) + } +} +// An error type for FFI errors. These errors occur at the UniFFI level, not +// the library level. +fileprivate enum UniffiInternalError: LocalizedError { + case bufferOverflow + case incompleteData + case unexpectedOptionalTag + case unexpectedEnumCase + case unexpectedNullPointer + case unexpectedNoirRustCallStatusCode + case unexpectedRustCallError + case unexpectedStaleHandle + case rustPanic(_ message: String) + + public var errorDescription: String? { + switch self { + case .bufferOverflow: return "Reading the requested value would read past the end of the buffer" + case .incompleteData: return "The buffer still has data after lifting its containing value" + case .unexpectedOptionalTag: return "Unexpected optional tag; should be 0 or 1" + case .unexpectedEnumCase: return "Raw enum value doesn't match any cases" + case .unexpectedNullPointer: return "Raw pointer value was null" + case .unexpectedNoirRustCallStatusCode: return "Unexpected NoirRustCallStatus code" + case .unexpectedRustCallError: return "CALL_ERROR but no errorClass specified" + case .unexpectedStaleHandle: return "The object in the handle map has been dropped already" + case let .rustPanic(message): return message + } + } +} + +fileprivate extension NSLock { + func withLock(f: () throws -> T) rethrows -> T { + self.lock() + defer { self.unlock() } + return try f() + } +} + +fileprivate let CALL_SUCCESS: Int8 = 0 +fileprivate let CALL_ERROR: Int8 = 1 +fileprivate let CALL_UNEXPECTED_ERROR: Int8 = 2 +fileprivate let CALL_CANCELLED: Int8 = 3 + +fileprivate extension NoirRustCallStatus { + init() { + self.init( + code: CALL_SUCCESS, + errorBuf: NoirRustBuffer.init( + capacity: 0, + len: 0, + data: nil + ) + ) + } +} + +private func rustCall(_ callback: (UnsafeMutablePointer) -> T) throws -> T { + let neverThrow: ((NoirRustBuffer) throws -> Never)? = nil + return try makeRustCall(callback, errorHandler: neverThrow) +} + +private func rustCallWithError( + _ errorHandler: @escaping (NoirRustBuffer) throws -> E, + _ callback: (UnsafeMutablePointer) -> T) throws -> T { + try makeRustCall(callback, errorHandler: errorHandler) +} + +private func makeRustCall( + _ callback: (UnsafeMutablePointer) -> T, + errorHandler: ((NoirRustBuffer) throws -> E)? +) throws -> T { + uniffiEnsureNoirInitialized() + var callStatus = NoirRustCallStatus.init() + let returnedVal = callback(&callStatus) + try uniffiCheckCallStatus(callStatus: callStatus, errorHandler: errorHandler) + return returnedVal +} + +private func uniffiCheckCallStatus( + callStatus: NoirRustCallStatus, + errorHandler: ((NoirRustBuffer) throws -> E)? +) throws { + switch callStatus.code { + case CALL_SUCCESS: + return + + case CALL_ERROR: + if let errorHandler = errorHandler { + throw try errorHandler(callStatus.errorBuf) + } else { + callStatus.errorBuf.deallocate() + throw UniffiInternalError.unexpectedRustCallError + } + + case CALL_UNEXPECTED_ERROR: + // When the rust code sees a panic, it tries to construct a NoirRustBuffer + // with the message. But if that code panics, then it just sends back + // an empty buffer. + if callStatus.errorBuf.len > 0 { + throw UniffiInternalError.rustPanic(try FfiConverterString.lift(callStatus.errorBuf)) + } else { + callStatus.errorBuf.deallocate() + throw UniffiInternalError.rustPanic("Rust panic") + } + + case CALL_CANCELLED: + fatalError("Cancellation not supported yet") + + default: + throw UniffiInternalError.unexpectedNoirRustCallStatusCode + } +} + +private func uniffiTraitInterfaceCall( + callStatus: UnsafeMutablePointer, + makeCall: () throws -> T, + writeReturn: (T) -> () +) { + do { + try writeReturn(makeCall()) + } catch let error { + callStatus.pointee.code = CALL_UNEXPECTED_ERROR + callStatus.pointee.errorBuf = FfiConverterString.lower(String(describing: error)) + } +} + +private func uniffiTraitInterfaceCallWithError( + callStatus: UnsafeMutablePointer, + makeCall: () throws -> T, + writeReturn: (T) -> (), + lowerError: (E) -> NoirRustBuffer +) { + do { + try writeReturn(makeCall()) + } catch let error as E { + callStatus.pointee.code = CALL_ERROR + callStatus.pointee.errorBuf = lowerError(error) + } catch { + callStatus.pointee.code = CALL_UNEXPECTED_ERROR + callStatus.pointee.errorBuf = FfiConverterString.lower(String(describing: error)) + } +} +fileprivate final class UniffiHandleMap: @unchecked Sendable { + // All mutation happens with this lock held, which is why we implement @unchecked Sendable. + private let lock = NSLock() + private var map: [UInt64: T] = [:] + private var currentHandle: UInt64 = 1 + + func insert(obj: T) -> UInt64 { + lock.withLock { + let handle = currentHandle + currentHandle += 1 + map[handle] = obj + return handle + } + } + + func get(handle: UInt64) throws -> T { + try lock.withLock { + guard let obj = map[handle] else { + throw UniffiInternalError.unexpectedStaleHandle + } + return obj + } + } + + @discardableResult + func remove(handle: UInt64) throws -> T { + try lock.withLock { + guard let obj = map.removeValue(forKey: handle) else { + throw UniffiInternalError.unexpectedStaleHandle + } + return obj + } + } + + var count: Int { + get { + map.count + } + } +} + + +// Public interface members begin here. + + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +fileprivate struct FfiConverterBool : FfiConverter { + typealias FfiType = Int8 + typealias SwiftType = Bool + + public static func lift(_ value: Int8) throws -> Bool { + return value != 0 + } + + public static func lower(_ value: Bool) -> Int8 { + return value ? 1 : 0 + } + + public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Bool { + return try lift(readInt(&buf)) + } + + public static func write(_ value: Bool, into buf: inout [UInt8]) { + writeInt(&buf, lower(value)) + } +} + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +fileprivate struct FfiConverterString: FfiConverter { + typealias SwiftType = String + typealias FfiType = NoirRustBuffer + + public static func lift(_ value: NoirRustBuffer) throws -> String { + defer { + value.deallocate() + } + if value.data == nil { + return String() + } + let bytes = UnsafeBufferPointer(start: value.data!, count: Int(value.len)) + return String(bytes: bytes, encoding: String.Encoding.utf8)! + } + + public static func lower(_ value: String) -> NoirRustBuffer { + return value.utf8CString.withUnsafeBufferPointer { ptr in + // The swift string gives us int8_t, we want uint8_t. + ptr.withMemoryRebound(to: UInt8.self) { ptr in + // The swift string gives us a trailing null byte, we don't want it. + let buf = UnsafeBufferPointer(rebasing: ptr.prefix(upTo: ptr.count - 1)) + return NoirRustBuffer.from(buf) + } + } + } + + public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> String { + let len: Int32 = try readInt(&buf) + return String(bytes: try readBytes(&buf, count: Int(len)), encoding: String.Encoding.utf8)! + } + + public static func write(_ value: String, into buf: inout [UInt8]) { + let len = Int32(value.utf8.count) + writeInt(&buf, len) + writeBytes(&buf, value.utf8) + } +} + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +fileprivate struct FfiConverterData: FfiConverterNoirRustBuffer { + typealias SwiftType = Data + + public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Data { + let len: Int32 = try readInt(&buf) + return Data(try readBytes(&buf, count: Int(len))) + } + + public static func write(_ value: Data, into buf: inout [UInt8]) { + let len = Int32(value.count) + writeInt(&buf, len) + writeBytes(&buf, value) + } +} + + +public struct Halo2ProofResult { + public var proof: Data + public var inputs: Data + + // Default memberwise initializers are never public by default, so we + // declare one manually. + public init(proof: Data, inputs: Data) { + self.proof = proof + self.inputs = inputs + } +} + +#if compiler(>=6) +extension Halo2ProofResult: Sendable {} +#endif + + +extension Halo2ProofResult: Equatable, Hashable { + public static func ==(lhs: Halo2ProofResult, rhs: Halo2ProofResult) -> Bool { + if lhs.proof != rhs.proof { + return false + } + if lhs.inputs != rhs.inputs { + return false + } + return true + } + + public func hash(into hasher: inout Hasher) { + hasher.combine(proof) + hasher.combine(inputs) + } +} + + + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +public struct FfiConverterTypeHalo2ProofResult: FfiConverterNoirRustBuffer { + public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Halo2ProofResult { + return + try Halo2ProofResult( + proof: FfiConverterData.read(from: &buf), + inputs: FfiConverterData.read(from: &buf) + ) + } + + public static func write(_ value: Halo2ProofResult, into buf: inout [UInt8]) { + FfiConverterData.write(value.proof, into: &buf) + FfiConverterData.write(value.inputs, into: &buf) + } +} + + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +public func FfiConverterTypeHalo2ProofResult_lift(_ buf: NoirRustBuffer) throws -> Halo2ProofResult { + return try FfiConverterTypeHalo2ProofResult.lift(buf) +} + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +public func FfiConverterTypeHalo2ProofResult_lower(_ value: Halo2ProofResult) -> NoirRustBuffer { + return FfiConverterTypeHalo2ProofResult.lower(value) +} + + +public enum NoirMoproError { + + + + case NoirError(String + ) + case Halo2Error(String + ) +} + + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +public struct FfiConverterTypeNoirMoproError: FfiConverterNoirRustBuffer { + typealias SwiftType = NoirMoproError + + public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NoirMoproError { + let variant: Int32 = try readInt(&buf) + switch variant { + + + + + case 1: return .NoirError( + try FfiConverterString.read(from: &buf) + ) + case 2: return .Halo2Error( + try FfiConverterString.read(from: &buf) + ) + + default: throw UniffiInternalError.unexpectedEnumCase + } + } + + public static func write(_ value: NoirMoproError, into buf: inout [UInt8]) { + switch value { + + + + + + case let .NoirError(v1): + writeInt(&buf, Int32(1)) + FfiConverterString.write(v1, into: &buf) + + + case let .Halo2Error(v1): + writeInt(&buf, Int32(2)) + FfiConverterString.write(v1, into: &buf) + + } + } +} + + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +public func FfiConverterTypeNoirMoproError_lift(_ buf: NoirRustBuffer) throws -> NoirMoproError { + return try FfiConverterTypeNoirMoproError.lift(buf) +} + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +public func FfiConverterTypeNoirMoproError_lower(_ value: NoirMoproError) -> NoirRustBuffer { + return FfiConverterTypeNoirMoproError.lower(value) +} + + +extension NoirMoproError: Equatable, Hashable {} + + + +extension NoirMoproError: Foundation.LocalizedError { + public var errorDescription: String? { + String(reflecting: self) + } +} + + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +fileprivate struct FfiConverterOptionString: FfiConverterNoirRustBuffer { + typealias SwiftType = String? + + public static func write(_ value: SwiftType, into buf: inout [UInt8]) { + guard let value = value else { + writeInt(&buf, Int8(0)) + return + } + writeInt(&buf, Int8(1)) + FfiConverterString.write(value, into: &buf) + } + + public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { + switch try readInt(&buf) as Int8 { + case 0: return nil + case 1: return try FfiConverterString.read(from: &buf) + default: throw UniffiInternalError.unexpectedOptionalTag + } + } +} + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +fileprivate struct FfiConverterSequenceString: FfiConverterNoirRustBuffer { + typealias SwiftType = [String] + + public static func write(_ value: [String], into buf: inout [UInt8]) { + let len = Int32(value.count) + writeInt(&buf, len) + for item in value { + FfiConverterString.write(item, into: &buf) + } + } + + public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> [String] { + let len: Int32 = try readInt(&buf) + var seq = [String]() + seq.reserveCapacity(Int(len)) + for _ in 0 ..< len { + seq.append(try FfiConverterString.read(from: &buf)) + } + return seq + } +} + +#if swift(>=5.8) +@_documentation(visibility: private) +#endif +fileprivate struct FfiConverterDictionaryStringSequenceString: FfiConverterNoirRustBuffer { + public static func write(_ value: [String: [String]], into buf: inout [UInt8]) { + let len = Int32(value.count) + writeInt(&buf, len) + for (key, value) in value { + FfiConverterString.write(key, into: &buf) + FfiConverterSequenceString.write(value, into: &buf) + } + } + + public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> [String: [String]] { + let len: Int32 = try readInt(&buf) + var dict = [String: [String]]() + dict.reserveCapacity(Int(len)) + for _ in 0.. Halo2ProofResult { + return try FfiConverterTypeHalo2ProofResult_lift(try rustCallWithError(FfiConverterTypeNoirMoproError_lift) { + uniffi_deimos_noir_fn_func_generate_halo2_proof( + FfiConverterString.lower(srsPath), + FfiConverterString.lower(pkPath), + FfiConverterDictionaryStringSequenceString.lower(circuitInputs),$0 + ) +}) +} +/** + * Generates a Noir proof with automatic hash function selection + * + * This is the main proof generation function that automatically chooses + * the appropriate hash function based on the intended use case: + * + * - `on_chain = true`: Uses Keccak hash for Solidity verifier compatibility + * - `on_chain = false`: Uses Poseidon hash for better performance + */ +public func generateNoirProof(circuitPath: String, srsPath: String?, inputs: [String], onChain: Bool, vk: Data, lowMemoryMode: Bool)throws -> Data { + return try FfiConverterData.lift(try rustCallWithError(FfiConverterTypeNoirMoproError_lift) { + uniffi_deimos_noir_fn_func_generate_noir_proof( + FfiConverterString.lower(circuitPath), + FfiConverterOptionString.lower(srsPath), + FfiConverterSequenceString.lower(inputs), + FfiConverterBool.lower(onChain), + FfiConverterData.lower(vk), + FfiConverterBool.lower(lowMemoryMode),$0 + ) +}) +} +/** + * Generates a verification key with automatic hash function selection + * + * This function automatically chooses the appropriate hash function based + * on the intended use case: + * + * - `on_chain = true`: Uses Keccak hash for Solidity verifier compatibility + * - `on_chain = false`: Uses Poseidon hash fotr better performance + */ +public func getNoirVerificationKey(circuitPath: String, srsPath: String?, onChain: Bool, lowMemoryMode: Bool)throws -> Data { + return try FfiConverterData.lift(try rustCallWithError(FfiConverterTypeNoirMoproError_lift) { + uniffi_deimos_noir_fn_func_get_noir_verification_key( + FfiConverterString.lower(circuitPath), + FfiConverterOptionString.lower(srsPath), + FfiConverterBool.lower(onChain), + FfiConverterBool.lower(lowMemoryMode),$0 + ) +}) +} +public func moproUniffiHelloWorld() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_deimos_noir_fn_func_mopro_uniffi_hello_world($0 + ) +}) +} +public func verifyHalo2Proof(srsPath: String, vkPath: String, proof: Data, publicInput: Data)throws -> Bool { + return try FfiConverterBool.lift(try rustCallWithError(FfiConverterTypeNoirMoproError_lift) { + uniffi_deimos_noir_fn_func_verify_halo2_proof( + FfiConverterString.lower(srsPath), + FfiConverterString.lower(vkPath), + FfiConverterData.lower(proof), + FfiConverterData.lower(publicInput),$0 + ) +}) +} +/** + * Verifies a Noir proof with automatic hash function selection + * + * This function automatically uses the correct verification method based + * on how the proof was generated: + * + * - `on_chain = true`: Verifies Keccak-based proof (Solidity compatible) + * - `on_chain = false`: Verifies Poseidon-based proof (performance optimized) + */ +public func verifyNoirProof(circuitPath: String, proof: Data, onChain: Bool, vk: Data, lowMemoryMode: Bool)throws -> Bool { + return try FfiConverterBool.lift(try rustCallWithError(FfiConverterTypeNoirMoproError_lift) { + uniffi_deimos_noir_fn_func_verify_noir_proof( + FfiConverterString.lower(circuitPath), + FfiConverterData.lower(proof), + FfiConverterBool.lower(onChain), + FfiConverterData.lower(vk), + FfiConverterBool.lower(lowMemoryMode),$0 + ) +}) +} + +private enum InitializationResult { + case ok + case contractVersionMismatch + case apiChecksumMismatch +} +// Use a global variable to perform the versioning checks. Swift ensures that +// the code inside is only computed once. +private let initializationResult: InitializationResult = { + // Get the bindings contract version from our ComponentInterface + let bindings_contract_version = 29 + // Get the scaffolding contract version by calling the into the dylib + let scaffolding_contract_version = ffi_deimos_noir_uniffi_contract_version() + if bindings_contract_version != scaffolding_contract_version { + return InitializationResult.contractVersionMismatch + } + if (uniffi_deimos_noir_checksum_func_generate_halo2_proof() != 14655) { + return InitializationResult.apiChecksumMismatch + } + if (uniffi_deimos_noir_checksum_func_generate_noir_proof() != 59002) { + return InitializationResult.apiChecksumMismatch + } + if (uniffi_deimos_noir_checksum_func_get_noir_verification_key() != 8981) { + return InitializationResult.apiChecksumMismatch + } + if (uniffi_deimos_noir_checksum_func_mopro_uniffi_hello_world() != 29796) { + return InitializationResult.apiChecksumMismatch + } + if (uniffi_deimos_noir_checksum_func_verify_halo2_proof() != 58585) { + return InitializationResult.apiChecksumMismatch + } + if (uniffi_deimos_noir_checksum_func_verify_noir_proof() != 45608) { + return InitializationResult.apiChecksumMismatch + } + + return InitializationResult.ok +}() + +// Make the ensure init function public so that other modules which have external type references to +// our types can call it. +public func uniffiEnsureNoirInitialized() { + switch initializationResult { + case .ok: + break + case .contractVersionMismatch: + fatalError("UniFFI contract version mismatch: try cleaning and rebuilding your project") + case .apiChecksumMismatch: + fatalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project") + } +} + +// swiftlint:enable all \ No newline at end of file diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/Info.plist b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproCircomBindings.xcframework/Info.plist similarity index 52% rename from benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/Info.plist rename to benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproCircomBindings.xcframework/Info.plist index 5fde4a24..92c50200 100644 --- a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/Info.plist +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproCircomBindings.xcframework/Info.plist @@ -6,32 +6,13 @@ BinaryPath - libmopro_example_app.a - HeadersPath - Headers - LibraryIdentifier - ios-arm64_x86_64-simulator - LibraryPath - libmopro_example_app.a - SupportedArchitectures - - arm64 - x86_64 - - SupportedPlatform - ios - SupportedPlatformVariant - simulator - - - BinaryPath - libmopro_example_app.a + libdeimos_circom.a HeadersPath Headers LibraryIdentifier ios-arm64 LibraryPath - libmopro_example_app.a + libdeimos_circom.a SupportedArchitectures arm64 diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproCircomBindings.xcframework/ios-arm64/Headers/deimos_circom/deimos_circomFFI.h b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproCircomBindings.xcframework/ios-arm64/Headers/deimos_circom/deimos_circomFFI.h new file mode 100644 index 00000000..50d59150 --- /dev/null +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproCircomBindings.xcframework/ios-arm64/Headers/deimos_circom/deimos_circomFFI.h @@ -0,0 +1,574 @@ +// This file was autogenerated by some hot garbage in the `uniffi` crate. +// Trust me, you don't want to mess with it! + +#pragma once + +#include +#include +#include + +// The following structs are used to implement the lowest level +// of the FFI, and thus useful to multiple uniffied crates. +// We ensure they are declared exactly once, with a header guard, UNIFFI_SHARED_H_CIRCOM. +#ifdef UNIFFI_SHARED_H_CIRCOM + // We also try to prevent mixing versions of shared uniffi header structs. + // If you add anything to the #else block, you must increment the version suffix in UNIFFI_SHARED_H_CIRCOMEADER_V4 + #ifndef UNIFFI_SHARED_H_CIRCOMEADER_V4 + #error Combining helper code from multiple versions of uniffi is not supported + #endif // ndef UNIFFI_SHARED_H_CIRCOMEADER_V4 +#else +#define UNIFFI_SHARED_H_CIRCOM +#define UNIFFI_SHARED_H_CIRCOMEADER_V4 +// ⚠️ Attention: If you change this #else block (ending in `#endif // def UNIFFI_SHARED_H_CIRCOM`) you *must* ⚠️ +// ⚠️ increment the version suffix in all instances of UNIFFI_SHARED_H_CIRCOMEADER_V4 in this file. ⚠️ + +typedef struct CircomRustBuffer +{ + uint64_t capacity; + uint64_t len; + uint8_t *_Nullable data; +} CircomRustBuffer; + +typedef struct CircomForeignBytes +{ + int32_t len; + const uint8_t *_Nullable data; +} CircomForeignBytes; + +// Error definitions +typedef struct CircomRustCallStatus { + int8_t code; + CircomRustBuffer errorBuf; +} CircomRustCallStatus; + +// ⚠️ Attention: If you change this #else block (ending in `#endif // def UNIFFI_SHARED_H_CIRCOM`) you *must* ⚠️ +// ⚠️ increment the version suffix in all instances of UNIFFI_SHARED_H_CIRCOMEADER_V4 in this file. ⚠️ +#endif // def UNIFFI_SHARED_H_CIRCOM +#ifndef UNIFFI_FFIDEF_RUST_FUTURE_CONTINUATION_CALLBACK +#define UNIFFI_FFIDEF_RUST_FUTURE_CONTINUATION_CALLBACK +typedef void (*UniffiRustFutureContinuationCallback)(uint64_t, int8_t + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_FREE +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_FREE +typedef void (*UniffiForeignFutureFree)(uint64_t + ); + +#endif +#ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_FREE +#define UNIFFI_FFIDEF_CALLBACK_INTERFACE_FREE +typedef void (*UniffiCallbackInterfaceFree)(uint64_t + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE +#define UNIFFI_FFIDEF_FOREIGN_FUTURE +typedef struct UniffiForeignFuture { + uint64_t handle; + UniffiForeignFutureFree _Nonnull free; +} UniffiForeignFuture; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U8 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U8 +typedef struct UniffiForeignFutureStructU8 { + uint8_t returnValue; + CircomRustCallStatus callStatus; +} UniffiForeignFutureStructU8; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U8 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U8 +typedef void (*UniffiForeignFutureCompleteU8)(uint64_t, UniffiForeignFutureStructU8 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I8 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I8 +typedef struct UniffiForeignFutureStructI8 { + int8_t returnValue; + CircomRustCallStatus callStatus; +} UniffiForeignFutureStructI8; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I8 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I8 +typedef void (*UniffiForeignFutureCompleteI8)(uint64_t, UniffiForeignFutureStructI8 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U16 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U16 +typedef struct UniffiForeignFutureStructU16 { + uint16_t returnValue; + CircomRustCallStatus callStatus; +} UniffiForeignFutureStructU16; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U16 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U16 +typedef void (*UniffiForeignFutureCompleteU16)(uint64_t, UniffiForeignFutureStructU16 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I16 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I16 +typedef struct UniffiForeignFutureStructI16 { + int16_t returnValue; + CircomRustCallStatus callStatus; +} UniffiForeignFutureStructI16; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I16 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I16 +typedef void (*UniffiForeignFutureCompleteI16)(uint64_t, UniffiForeignFutureStructI16 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U32 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U32 +typedef struct UniffiForeignFutureStructU32 { + uint32_t returnValue; + CircomRustCallStatus callStatus; +} UniffiForeignFutureStructU32; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U32 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U32 +typedef void (*UniffiForeignFutureCompleteU32)(uint64_t, UniffiForeignFutureStructU32 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I32 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I32 +typedef struct UniffiForeignFutureStructI32 { + int32_t returnValue; + CircomRustCallStatus callStatus; +} UniffiForeignFutureStructI32; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I32 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I32 +typedef void (*UniffiForeignFutureCompleteI32)(uint64_t, UniffiForeignFutureStructI32 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U64 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U64 +typedef struct UniffiForeignFutureStructU64 { + uint64_t returnValue; + CircomRustCallStatus callStatus; +} UniffiForeignFutureStructU64; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U64 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U64 +typedef void (*UniffiForeignFutureCompleteU64)(uint64_t, UniffiForeignFutureStructU64 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I64 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I64 +typedef struct UniffiForeignFutureStructI64 { + int64_t returnValue; + CircomRustCallStatus callStatus; +} UniffiForeignFutureStructI64; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I64 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I64 +typedef void (*UniffiForeignFutureCompleteI64)(uint64_t, UniffiForeignFutureStructI64 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F32 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F32 +typedef struct UniffiForeignFutureStructF32 { + float returnValue; + CircomRustCallStatus callStatus; +} UniffiForeignFutureStructF32; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F32 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F32 +typedef void (*UniffiForeignFutureCompleteF32)(uint64_t, UniffiForeignFutureStructF32 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F64 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F64 +typedef struct UniffiForeignFutureStructF64 { + double returnValue; + CircomRustCallStatus callStatus; +} UniffiForeignFutureStructF64; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F64 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F64 +typedef void (*UniffiForeignFutureCompleteF64)(uint64_t, UniffiForeignFutureStructF64 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_POINTER +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_POINTER +typedef struct UniffiForeignFutureStructPointer { + void*_Nonnull returnValue; + CircomRustCallStatus callStatus; +} UniffiForeignFutureStructPointer; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_POINTER +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_POINTER +typedef void (*UniffiForeignFutureCompletePointer)(uint64_t, UniffiForeignFutureStructPointer + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_RUST_BUFFER +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_RUST_BUFFER +typedef struct UniffiForeignFutureStructCircomRustBuffer { + CircomRustBuffer returnValue; + CircomRustCallStatus callStatus; +} UniffiForeignFutureStructCircomRustBuffer; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_RUST_BUFFER +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_RUST_BUFFER +typedef void (*UniffiForeignFutureCompleteCircomRustBuffer)(uint64_t, UniffiForeignFutureStructCircomRustBuffer + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_VOID +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_VOID +typedef struct UniffiForeignFutureStructVoid { + CircomRustCallStatus callStatus; +} UniffiForeignFutureStructVoid; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_VOID +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_VOID +typedef void (*UniffiForeignFutureCompleteVoid)(uint64_t, UniffiForeignFutureStructVoid + ); + +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_CIRCOM_FN_FUNC_GENERATE_CIRCOM_PROOF +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_CIRCOM_FN_FUNC_GENERATE_CIRCOM_PROOF +CircomRustBuffer uniffi_deimos_circom_fn_func_generate_circom_proof(CircomRustBuffer zkey_path, CircomRustBuffer circuit_inputs, CircomRustBuffer proof_lib, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_CIRCOM_FN_FUNC_MOPRO_UNIFFI_HELLO_WORLD +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_CIRCOM_FN_FUNC_MOPRO_UNIFFI_HELLO_WORLD +CircomRustBuffer uniffi_deimos_circom_fn_func_mopro_uniffi_hello_world(CircomRustCallStatus *_Nonnull out_status + +); +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_CIRCOM_FN_FUNC_VERIFY_CIRCOM_PROOF +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_CIRCOM_FN_FUNC_VERIFY_CIRCOM_PROOF +int8_t uniffi_deimos_circom_fn_func_verify_circom_proof(CircomRustBuffer zkey_path, CircomRustBuffer proof_result, CircomRustBuffer proof_lib, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUSTBUFFER_ALLOC +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUSTBUFFER_ALLOC +CircomRustBuffer ffi_deimos_circom_rustbuffer_alloc(uint64_t size, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUSTBUFFER_FROM_BYTES +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUSTBUFFER_FROM_BYTES +CircomRustBuffer ffi_deimos_circom_rustbuffer_from_bytes(CircomForeignBytes bytes, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUSTBUFFER_FREE +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUSTBUFFER_FREE +void ffi_deimos_circom_rustbuffer_free(CircomRustBuffer buf, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUSTBUFFER_RESERVE +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUSTBUFFER_RESERVE +CircomRustBuffer ffi_deimos_circom_rustbuffer_reserve(CircomRustBuffer buf, uint64_t additional, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_U8 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_U8 +void ffi_deimos_circom_rust_future_poll_u8(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_U8 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_U8 +void ffi_deimos_circom_rust_future_cancel_u8(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_U8 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_U8 +void ffi_deimos_circom_rust_future_free_u8(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_U8 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_U8 +uint8_t ffi_deimos_circom_rust_future_complete_u8(uint64_t handle, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_I8 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_I8 +void ffi_deimos_circom_rust_future_poll_i8(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_I8 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_I8 +void ffi_deimos_circom_rust_future_cancel_i8(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_I8 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_I8 +void ffi_deimos_circom_rust_future_free_i8(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_I8 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_I8 +int8_t ffi_deimos_circom_rust_future_complete_i8(uint64_t handle, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_U16 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_U16 +void ffi_deimos_circom_rust_future_poll_u16(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_U16 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_U16 +void ffi_deimos_circom_rust_future_cancel_u16(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_U16 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_U16 +void ffi_deimos_circom_rust_future_free_u16(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_U16 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_U16 +uint16_t ffi_deimos_circom_rust_future_complete_u16(uint64_t handle, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_I16 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_I16 +void ffi_deimos_circom_rust_future_poll_i16(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_I16 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_I16 +void ffi_deimos_circom_rust_future_cancel_i16(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_I16 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_I16 +void ffi_deimos_circom_rust_future_free_i16(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_I16 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_I16 +int16_t ffi_deimos_circom_rust_future_complete_i16(uint64_t handle, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_U32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_U32 +void ffi_deimos_circom_rust_future_poll_u32(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_U32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_U32 +void ffi_deimos_circom_rust_future_cancel_u32(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_U32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_U32 +void ffi_deimos_circom_rust_future_free_u32(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_U32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_U32 +uint32_t ffi_deimos_circom_rust_future_complete_u32(uint64_t handle, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_I32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_I32 +void ffi_deimos_circom_rust_future_poll_i32(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_I32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_I32 +void ffi_deimos_circom_rust_future_cancel_i32(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_I32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_I32 +void ffi_deimos_circom_rust_future_free_i32(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_I32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_I32 +int32_t ffi_deimos_circom_rust_future_complete_i32(uint64_t handle, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_U64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_U64 +void ffi_deimos_circom_rust_future_poll_u64(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_U64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_U64 +void ffi_deimos_circom_rust_future_cancel_u64(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_U64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_U64 +void ffi_deimos_circom_rust_future_free_u64(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_U64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_U64 +uint64_t ffi_deimos_circom_rust_future_complete_u64(uint64_t handle, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_I64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_I64 +void ffi_deimos_circom_rust_future_poll_i64(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_I64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_I64 +void ffi_deimos_circom_rust_future_cancel_i64(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_I64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_I64 +void ffi_deimos_circom_rust_future_free_i64(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_I64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_I64 +int64_t ffi_deimos_circom_rust_future_complete_i64(uint64_t handle, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_F32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_F32 +void ffi_deimos_circom_rust_future_poll_f32(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_F32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_F32 +void ffi_deimos_circom_rust_future_cancel_f32(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_F32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_F32 +void ffi_deimos_circom_rust_future_free_f32(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_F32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_F32 +float ffi_deimos_circom_rust_future_complete_f32(uint64_t handle, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_F64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_F64 +void ffi_deimos_circom_rust_future_poll_f64(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_F64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_F64 +void ffi_deimos_circom_rust_future_cancel_f64(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_F64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_F64 +void ffi_deimos_circom_rust_future_free_f64(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_F64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_F64 +double ffi_deimos_circom_rust_future_complete_f64(uint64_t handle, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_POINTER +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_POINTER +void ffi_deimos_circom_rust_future_poll_pointer(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_POINTER +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_POINTER +void ffi_deimos_circom_rust_future_cancel_pointer(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_POINTER +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_POINTER +void ffi_deimos_circom_rust_future_free_pointer(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_POINTER +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_POINTER +void*_Nonnull ffi_deimos_circom_rust_future_complete_pointer(uint64_t handle, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_RUST_BUFFER +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_RUST_BUFFER +void ffi_deimos_circom_rust_future_poll_rust_buffer(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_RUST_BUFFER +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_RUST_BUFFER +void ffi_deimos_circom_rust_future_cancel_rust_buffer(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_RUST_BUFFER +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_RUST_BUFFER +void ffi_deimos_circom_rust_future_free_rust_buffer(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_RUST_BUFFER +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_RUST_BUFFER +CircomRustBuffer ffi_deimos_circom_rust_future_complete_rust_buffer(uint64_t handle, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_VOID +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_POLL_VOID +void ffi_deimos_circom_rust_future_poll_void(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_VOID +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_CANCEL_VOID +void ffi_deimos_circom_rust_future_cancel_void(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_VOID +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_FREE_VOID +void ffi_deimos_circom_rust_future_free_void(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_VOID +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_RUST_FUTURE_COMPLETE_VOID +void ffi_deimos_circom_rust_future_complete_void(uint64_t handle, CircomRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_CIRCOM_CHECKSUM_FUNC_GENERATE_CIRCOM_PROOF +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_CIRCOM_CHECKSUM_FUNC_GENERATE_CIRCOM_PROOF +uint16_t uniffi_deimos_circom_checksum_func_generate_circom_proof(void + +); +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_CIRCOM_CHECKSUM_FUNC_MOPRO_UNIFFI_HELLO_WORLD +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_CIRCOM_CHECKSUM_FUNC_MOPRO_UNIFFI_HELLO_WORLD +uint16_t uniffi_deimos_circom_checksum_func_mopro_uniffi_hello_world(void + +); +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_CIRCOM_CHECKSUM_FUNC_VERIFY_CIRCOM_PROOF +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_CIRCOM_CHECKSUM_FUNC_VERIFY_CIRCOM_PROOF +uint16_t uniffi_deimos_circom_checksum_func_verify_circom_proof(void + +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_UNIFFI_CONTRACT_VERSION +#define UNIFFI_FFIDEF_FFI_DEIMOS_CIRCOM_UNIFFI_CONTRACT_VERSION +uint32_t ffi_deimos_circom_uniffi_contract_version(void + +); +#endif + diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproCircomBindings.xcframework/ios-arm64/Headers/deimos_circom/module.modulemap b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproCircomBindings.xcframework/ios-arm64/Headers/deimos_circom/module.modulemap new file mode 100644 index 00000000..cb1175ce --- /dev/null +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproCircomBindings.xcframework/ios-arm64/Headers/deimos_circom/module.modulemap @@ -0,0 +1,4 @@ +module deimos_circomFFI { + header "deimos_circomFFI.h" + export * +} \ No newline at end of file diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproNoirBindings.xcframework/Info.plist b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproNoirBindings.xcframework/Info.plist new file mode 100644 index 00000000..0a564bf9 --- /dev/null +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproNoirBindings.xcframework/Info.plist @@ -0,0 +1,29 @@ + + + + + AvailableLibraries + + + BinaryPath + libdeimos_noir.a + HeadersPath + Headers + LibraryIdentifier + ios-arm64 + LibraryPath + libdeimos_noir.a + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproNoirBindings.xcframework/ios-arm64/Headers/deimos_noir/deimos_noirFFI.h b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproNoirBindings.xcframework/ios-arm64/Headers/deimos_noir/deimos_noirFFI.h new file mode 100644 index 00000000..57b12435 --- /dev/null +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproNoirBindings.xcframework/ios-arm64/Headers/deimos_noir/deimos_noirFFI.h @@ -0,0 +1,607 @@ +// This file was autogenerated by some hot garbage in the `uniffi` crate. +// Trust me, you don't want to mess with it! + +#pragma once + +#include +#include +#include + +// The following structs are used to implement the lowest level +// of the FFI, and thus useful to multiple uniffied crates. +// We ensure they are declared exactly once, with a header guard, UNIFFI_SHARED_H_NOIR. +#ifdef UNIFFI_SHARED_H_NOIR + // We also try to prevent mixing versions of shared uniffi header structs. + // If you add anything to the #else block, you must increment the version suffix in UNIFFI_SHARED_H_NOIREADER_V4 + #ifndef UNIFFI_SHARED_H_NOIREADER_V4 + #error Combining helper code from multiple versions of uniffi is not supported + #endif // ndef UNIFFI_SHARED_H_NOIREADER_V4 +#else +#define UNIFFI_SHARED_H_NOIR +#define UNIFFI_SHARED_H_NOIREADER_V4 +// ⚠️ Attention: If you change this #else block (ending in `#endif // def UNIFFI_SHARED_H_NOIR`) you *must* ⚠️ +// ⚠️ increment the version suffix in all instances of UNIFFI_SHARED_H_NOIREADER_V4 in this file. ⚠️ + +typedef struct NoirRustBuffer +{ + uint64_t capacity; + uint64_t len; + uint8_t *_Nullable data; +} NoirRustBuffer; + +typedef struct NoirForeignBytes +{ + int32_t len; + const uint8_t *_Nullable data; +} NoirForeignBytes; + +// Error definitions +typedef struct NoirRustCallStatus { + int8_t code; + NoirRustBuffer errorBuf; +} NoirRustCallStatus; + +// ⚠️ Attention: If you change this #else block (ending in `#endif // def UNIFFI_SHARED_H_NOIR`) you *must* ⚠️ +// ⚠️ increment the version suffix in all instances of UNIFFI_SHARED_H_NOIREADER_V4 in this file. ⚠️ +#endif // def UNIFFI_SHARED_H_NOIR +#ifndef UNIFFI_FFIDEF_RUST_FUTURE_CONTINUATION_CALLBACK +#define UNIFFI_FFIDEF_RUST_FUTURE_CONTINUATION_CALLBACK +typedef void (*UniffiRustFutureContinuationCallback)(uint64_t, int8_t + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_FREE +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_FREE +typedef void (*UniffiForeignFutureFree)(uint64_t + ); + +#endif +#ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_FREE +#define UNIFFI_FFIDEF_CALLBACK_INTERFACE_FREE +typedef void (*UniffiCallbackInterfaceFree)(uint64_t + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE +#define UNIFFI_FFIDEF_FOREIGN_FUTURE +typedef struct UniffiForeignFuture { + uint64_t handle; + UniffiForeignFutureFree _Nonnull free; +} UniffiForeignFuture; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U8 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U8 +typedef struct UniffiForeignFutureStructU8 { + uint8_t returnValue; + NoirRustCallStatus callStatus; +} UniffiForeignFutureStructU8; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U8 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U8 +typedef void (*UniffiForeignFutureCompleteU8)(uint64_t, UniffiForeignFutureStructU8 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I8 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I8 +typedef struct UniffiForeignFutureStructI8 { + int8_t returnValue; + NoirRustCallStatus callStatus; +} UniffiForeignFutureStructI8; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I8 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I8 +typedef void (*UniffiForeignFutureCompleteI8)(uint64_t, UniffiForeignFutureStructI8 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U16 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U16 +typedef struct UniffiForeignFutureStructU16 { + uint16_t returnValue; + NoirRustCallStatus callStatus; +} UniffiForeignFutureStructU16; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U16 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U16 +typedef void (*UniffiForeignFutureCompleteU16)(uint64_t, UniffiForeignFutureStructU16 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I16 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I16 +typedef struct UniffiForeignFutureStructI16 { + int16_t returnValue; + NoirRustCallStatus callStatus; +} UniffiForeignFutureStructI16; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I16 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I16 +typedef void (*UniffiForeignFutureCompleteI16)(uint64_t, UniffiForeignFutureStructI16 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U32 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U32 +typedef struct UniffiForeignFutureStructU32 { + uint32_t returnValue; + NoirRustCallStatus callStatus; +} UniffiForeignFutureStructU32; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U32 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U32 +typedef void (*UniffiForeignFutureCompleteU32)(uint64_t, UniffiForeignFutureStructU32 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I32 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I32 +typedef struct UniffiForeignFutureStructI32 { + int32_t returnValue; + NoirRustCallStatus callStatus; +} UniffiForeignFutureStructI32; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I32 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I32 +typedef void (*UniffiForeignFutureCompleteI32)(uint64_t, UniffiForeignFutureStructI32 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U64 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U64 +typedef struct UniffiForeignFutureStructU64 { + uint64_t returnValue; + NoirRustCallStatus callStatus; +} UniffiForeignFutureStructU64; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U64 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U64 +typedef void (*UniffiForeignFutureCompleteU64)(uint64_t, UniffiForeignFutureStructU64 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I64 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I64 +typedef struct UniffiForeignFutureStructI64 { + int64_t returnValue; + NoirRustCallStatus callStatus; +} UniffiForeignFutureStructI64; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I64 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I64 +typedef void (*UniffiForeignFutureCompleteI64)(uint64_t, UniffiForeignFutureStructI64 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F32 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F32 +typedef struct UniffiForeignFutureStructF32 { + float returnValue; + NoirRustCallStatus callStatus; +} UniffiForeignFutureStructF32; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F32 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F32 +typedef void (*UniffiForeignFutureCompleteF32)(uint64_t, UniffiForeignFutureStructF32 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F64 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F64 +typedef struct UniffiForeignFutureStructF64 { + double returnValue; + NoirRustCallStatus callStatus; +} UniffiForeignFutureStructF64; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F64 +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F64 +typedef void (*UniffiForeignFutureCompleteF64)(uint64_t, UniffiForeignFutureStructF64 + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_POINTER +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_POINTER +typedef struct UniffiForeignFutureStructPointer { + void*_Nonnull returnValue; + NoirRustCallStatus callStatus; +} UniffiForeignFutureStructPointer; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_POINTER +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_POINTER +typedef void (*UniffiForeignFutureCompletePointer)(uint64_t, UniffiForeignFutureStructPointer + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_RUST_BUFFER +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_RUST_BUFFER +typedef struct UniffiForeignFutureStructNoirRustBuffer { + NoirRustBuffer returnValue; + NoirRustCallStatus callStatus; +} UniffiForeignFutureStructNoirRustBuffer; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_RUST_BUFFER +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_RUST_BUFFER +typedef void (*UniffiForeignFutureCompleteNoirRustBuffer)(uint64_t, UniffiForeignFutureStructNoirRustBuffer + ); + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_VOID +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_VOID +typedef struct UniffiForeignFutureStructVoid { + NoirRustCallStatus callStatus; +} UniffiForeignFutureStructVoid; + +#endif +#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_VOID +#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_VOID +typedef void (*UniffiForeignFutureCompleteVoid)(uint64_t, UniffiForeignFutureStructVoid + ); + +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_FN_FUNC_GENERATE_HALO2_PROOF +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_FN_FUNC_GENERATE_HALO2_PROOF +NoirRustBuffer uniffi_deimos_noir_fn_func_generate_halo2_proof(NoirRustBuffer srs_path, NoirRustBuffer pk_path, NoirRustBuffer circuit_inputs, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_FN_FUNC_GENERATE_NOIR_PROOF +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_FN_FUNC_GENERATE_NOIR_PROOF +NoirRustBuffer uniffi_deimos_noir_fn_func_generate_noir_proof(NoirRustBuffer circuit_path, NoirRustBuffer srs_path, NoirRustBuffer inputs, int8_t on_chain, NoirRustBuffer vk, int8_t low_memory_mode, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_FN_FUNC_GET_NOIR_VERIFICATION_KEY +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_FN_FUNC_GET_NOIR_VERIFICATION_KEY +NoirRustBuffer uniffi_deimos_noir_fn_func_get_noir_verification_key(NoirRustBuffer circuit_path, NoirRustBuffer srs_path, int8_t on_chain, int8_t low_memory_mode, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_FN_FUNC_MOPRO_UNIFFI_HELLO_WORLD +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_FN_FUNC_MOPRO_UNIFFI_HELLO_WORLD +NoirRustBuffer uniffi_deimos_noir_fn_func_mopro_uniffi_hello_world(NoirRustCallStatus *_Nonnull out_status + +); +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_FN_FUNC_VERIFY_HALO2_PROOF +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_FN_FUNC_VERIFY_HALO2_PROOF +int8_t uniffi_deimos_noir_fn_func_verify_halo2_proof(NoirRustBuffer srs_path, NoirRustBuffer vk_path, NoirRustBuffer proof, NoirRustBuffer public_input, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_FN_FUNC_VERIFY_NOIR_PROOF +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_FN_FUNC_VERIFY_NOIR_PROOF +int8_t uniffi_deimos_noir_fn_func_verify_noir_proof(NoirRustBuffer circuit_path, NoirRustBuffer proof, int8_t on_chain, NoirRustBuffer vk, int8_t low_memory_mode, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUSTBUFFER_ALLOC +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUSTBUFFER_ALLOC +NoirRustBuffer ffi_deimos_noir_rustbuffer_alloc(uint64_t size, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUSTBUFFER_FROM_BYTES +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUSTBUFFER_FROM_BYTES +NoirRustBuffer ffi_deimos_noir_rustbuffer_from_bytes(NoirForeignBytes bytes, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUSTBUFFER_FREE +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUSTBUFFER_FREE +void ffi_deimos_noir_rustbuffer_free(NoirRustBuffer buf, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUSTBUFFER_RESERVE +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUSTBUFFER_RESERVE +NoirRustBuffer ffi_deimos_noir_rustbuffer_reserve(NoirRustBuffer buf, uint64_t additional, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_U8 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_U8 +void ffi_deimos_noir_rust_future_poll_u8(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_U8 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_U8 +void ffi_deimos_noir_rust_future_cancel_u8(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_U8 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_U8 +void ffi_deimos_noir_rust_future_free_u8(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_U8 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_U8 +uint8_t ffi_deimos_noir_rust_future_complete_u8(uint64_t handle, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_I8 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_I8 +void ffi_deimos_noir_rust_future_poll_i8(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_I8 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_I8 +void ffi_deimos_noir_rust_future_cancel_i8(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_I8 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_I8 +void ffi_deimos_noir_rust_future_free_i8(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_I8 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_I8 +int8_t ffi_deimos_noir_rust_future_complete_i8(uint64_t handle, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_U16 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_U16 +void ffi_deimos_noir_rust_future_poll_u16(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_U16 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_U16 +void ffi_deimos_noir_rust_future_cancel_u16(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_U16 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_U16 +void ffi_deimos_noir_rust_future_free_u16(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_U16 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_U16 +uint16_t ffi_deimos_noir_rust_future_complete_u16(uint64_t handle, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_I16 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_I16 +void ffi_deimos_noir_rust_future_poll_i16(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_I16 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_I16 +void ffi_deimos_noir_rust_future_cancel_i16(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_I16 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_I16 +void ffi_deimos_noir_rust_future_free_i16(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_I16 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_I16 +int16_t ffi_deimos_noir_rust_future_complete_i16(uint64_t handle, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_U32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_U32 +void ffi_deimos_noir_rust_future_poll_u32(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_U32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_U32 +void ffi_deimos_noir_rust_future_cancel_u32(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_U32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_U32 +void ffi_deimos_noir_rust_future_free_u32(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_U32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_U32 +uint32_t ffi_deimos_noir_rust_future_complete_u32(uint64_t handle, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_I32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_I32 +void ffi_deimos_noir_rust_future_poll_i32(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_I32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_I32 +void ffi_deimos_noir_rust_future_cancel_i32(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_I32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_I32 +void ffi_deimos_noir_rust_future_free_i32(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_I32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_I32 +int32_t ffi_deimos_noir_rust_future_complete_i32(uint64_t handle, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_U64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_U64 +void ffi_deimos_noir_rust_future_poll_u64(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_U64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_U64 +void ffi_deimos_noir_rust_future_cancel_u64(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_U64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_U64 +void ffi_deimos_noir_rust_future_free_u64(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_U64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_U64 +uint64_t ffi_deimos_noir_rust_future_complete_u64(uint64_t handle, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_I64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_I64 +void ffi_deimos_noir_rust_future_poll_i64(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_I64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_I64 +void ffi_deimos_noir_rust_future_cancel_i64(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_I64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_I64 +void ffi_deimos_noir_rust_future_free_i64(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_I64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_I64 +int64_t ffi_deimos_noir_rust_future_complete_i64(uint64_t handle, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_F32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_F32 +void ffi_deimos_noir_rust_future_poll_f32(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_F32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_F32 +void ffi_deimos_noir_rust_future_cancel_f32(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_F32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_F32 +void ffi_deimos_noir_rust_future_free_f32(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_F32 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_F32 +float ffi_deimos_noir_rust_future_complete_f32(uint64_t handle, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_F64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_F64 +void ffi_deimos_noir_rust_future_poll_f64(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_F64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_F64 +void ffi_deimos_noir_rust_future_cancel_f64(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_F64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_F64 +void ffi_deimos_noir_rust_future_free_f64(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_F64 +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_F64 +double ffi_deimos_noir_rust_future_complete_f64(uint64_t handle, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_POINTER +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_POINTER +void ffi_deimos_noir_rust_future_poll_pointer(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_POINTER +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_POINTER +void ffi_deimos_noir_rust_future_cancel_pointer(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_POINTER +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_POINTER +void ffi_deimos_noir_rust_future_free_pointer(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_POINTER +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_POINTER +void*_Nonnull ffi_deimos_noir_rust_future_complete_pointer(uint64_t handle, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_RUST_BUFFER +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_RUST_BUFFER +void ffi_deimos_noir_rust_future_poll_rust_buffer(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_RUST_BUFFER +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_RUST_BUFFER +void ffi_deimos_noir_rust_future_cancel_rust_buffer(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_RUST_BUFFER +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_RUST_BUFFER +void ffi_deimos_noir_rust_future_free_rust_buffer(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_RUST_BUFFER +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_RUST_BUFFER +NoirRustBuffer ffi_deimos_noir_rust_future_complete_rust_buffer(uint64_t handle, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_VOID +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_POLL_VOID +void ffi_deimos_noir_rust_future_poll_void(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_VOID +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_CANCEL_VOID +void ffi_deimos_noir_rust_future_cancel_void(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_VOID +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_FREE_VOID +void ffi_deimos_noir_rust_future_free_void(uint64_t handle +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_VOID +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_RUST_FUTURE_COMPLETE_VOID +void ffi_deimos_noir_rust_future_complete_void(uint64_t handle, NoirRustCallStatus *_Nonnull out_status +); +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_CHECKSUM_FUNC_GENERATE_HALO2_PROOF +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_CHECKSUM_FUNC_GENERATE_HALO2_PROOF +uint16_t uniffi_deimos_noir_checksum_func_generate_halo2_proof(void + +); +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_CHECKSUM_FUNC_GENERATE_NOIR_PROOF +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_CHECKSUM_FUNC_GENERATE_NOIR_PROOF +uint16_t uniffi_deimos_noir_checksum_func_generate_noir_proof(void + +); +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_CHECKSUM_FUNC_GET_NOIR_VERIFICATION_KEY +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_CHECKSUM_FUNC_GET_NOIR_VERIFICATION_KEY +uint16_t uniffi_deimos_noir_checksum_func_get_noir_verification_key(void + +); +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_CHECKSUM_FUNC_MOPRO_UNIFFI_HELLO_WORLD +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_CHECKSUM_FUNC_MOPRO_UNIFFI_HELLO_WORLD +uint16_t uniffi_deimos_noir_checksum_func_mopro_uniffi_hello_world(void + +); +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_CHECKSUM_FUNC_VERIFY_HALO2_PROOF +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_CHECKSUM_FUNC_VERIFY_HALO2_PROOF +uint16_t uniffi_deimos_noir_checksum_func_verify_halo2_proof(void + +); +#endif +#ifndef UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_CHECKSUM_FUNC_VERIFY_NOIR_PROOF +#define UNIFFI_FFIDEF_UNIFFI_DEIMOS_NOIR_CHECKSUM_FUNC_VERIFY_NOIR_PROOF +uint16_t uniffi_deimos_noir_checksum_func_verify_noir_proof(void + +); +#endif +#ifndef UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_UNIFFI_CONTRACT_VERSION +#define UNIFFI_FFIDEF_FFI_DEIMOS_NOIR_UNIFFI_CONTRACT_VERSION +uint32_t ffi_deimos_noir_uniffi_contract_version(void + +); +#endif + diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproNoirBindings.xcframework/ios-arm64/Headers/deimos_noir/module.modulemap b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproNoirBindings.xcframework/ios-arm64/Headers/deimos_noir/module.modulemap new file mode 100644 index 00000000..fd1745de --- /dev/null +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/Frameworks/MoproNoirBindings.xcframework/ios-arm64/Headers/deimos_noir/module.modulemap @@ -0,0 +1,4 @@ +module deimos_noirFFI { + header "deimos_noirFFI.h" + export * +} \ No newline at end of file diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64/Headers/mopro_example_app/module.modulemap b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64/Headers/mopro_example_app/module.modulemap deleted file mode 100644 index fbc84d1a..00000000 --- a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64/Headers/mopro_example_app/module.modulemap +++ /dev/null @@ -1,4 +0,0 @@ -module mopro_example_appFFI { - header "mopro_example_appFFI.h" - export * -} \ No newline at end of file diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64/Headers/mopro_example_app/mopro_example_appFFI.h b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64/Headers/mopro_example_app/mopro_example_appFFI.h deleted file mode 100644 index 1d4b0ec6..00000000 --- a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64/Headers/mopro_example_app/mopro_example_appFFI.h +++ /dev/null @@ -1,629 +0,0 @@ -// This file was autogenerated by some hot garbage in the `uniffi` crate. -// Trust me, you don't want to mess with it! - -#pragma once - -#include -#include -#include - -// The following structs are used to implement the lowest level -// of the FFI, and thus useful to multiple uniffied crates. -// We ensure they are declared exactly once, with a header guard, UNIFFI_SHARED_H. -#ifdef UNIFFI_SHARED_H - // We also try to prevent mixing versions of shared uniffi header structs. - // If you add anything to the #else block, you must increment the version suffix in UNIFFI_SHARED_HEADER_V4 - #ifndef UNIFFI_SHARED_HEADER_V4 - #error Combining helper code from multiple versions of uniffi is not supported - #endif // ndef UNIFFI_SHARED_HEADER_V4 -#else -#define UNIFFI_SHARED_H -#define UNIFFI_SHARED_HEADER_V4 -// ⚠️ Attention: If you change this #else block (ending in `#endif // def UNIFFI_SHARED_H`) you *must* ⚠️ -// ⚠️ increment the version suffix in all instances of UNIFFI_SHARED_HEADER_V4 in this file. ⚠️ - -typedef struct RustBuffer -{ - uint64_t capacity; - uint64_t len; - uint8_t *_Nullable data; -} RustBuffer; - -typedef struct ForeignBytes -{ - int32_t len; - const uint8_t *_Nullable data; -} ForeignBytes; - -// Error definitions -typedef struct RustCallStatus { - int8_t code; - RustBuffer errorBuf; -} RustCallStatus; - -// ⚠️ Attention: If you change this #else block (ending in `#endif // def UNIFFI_SHARED_H`) you *must* ⚠️ -// ⚠️ increment the version suffix in all instances of UNIFFI_SHARED_HEADER_V4 in this file. ⚠️ -#endif // def UNIFFI_SHARED_H -#ifndef UNIFFI_FFIDEF_RUST_FUTURE_CONTINUATION_CALLBACK -#define UNIFFI_FFIDEF_RUST_FUTURE_CONTINUATION_CALLBACK -typedef void (*UniffiRustFutureContinuationCallback)(uint64_t, int8_t - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_FREE -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_FREE -typedef void (*UniffiForeignFutureFree)(uint64_t - ); - -#endif -#ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_FREE -#define UNIFFI_FFIDEF_CALLBACK_INTERFACE_FREE -typedef void (*UniffiCallbackInterfaceFree)(uint64_t - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE -#define UNIFFI_FFIDEF_FOREIGN_FUTURE -typedef struct UniffiForeignFuture { - uint64_t handle; - UniffiForeignFutureFree _Nonnull free; -} UniffiForeignFuture; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U8 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U8 -typedef struct UniffiForeignFutureStructU8 { - uint8_t returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructU8; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U8 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U8 -typedef void (*UniffiForeignFutureCompleteU8)(uint64_t, UniffiForeignFutureStructU8 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I8 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I8 -typedef struct UniffiForeignFutureStructI8 { - int8_t returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructI8; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I8 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I8 -typedef void (*UniffiForeignFutureCompleteI8)(uint64_t, UniffiForeignFutureStructI8 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U16 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U16 -typedef struct UniffiForeignFutureStructU16 { - uint16_t returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructU16; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U16 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U16 -typedef void (*UniffiForeignFutureCompleteU16)(uint64_t, UniffiForeignFutureStructU16 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I16 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I16 -typedef struct UniffiForeignFutureStructI16 { - int16_t returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructI16; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I16 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I16 -typedef void (*UniffiForeignFutureCompleteI16)(uint64_t, UniffiForeignFutureStructI16 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U32 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U32 -typedef struct UniffiForeignFutureStructU32 { - uint32_t returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructU32; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U32 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U32 -typedef void (*UniffiForeignFutureCompleteU32)(uint64_t, UniffiForeignFutureStructU32 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I32 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I32 -typedef struct UniffiForeignFutureStructI32 { - int32_t returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructI32; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I32 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I32 -typedef void (*UniffiForeignFutureCompleteI32)(uint64_t, UniffiForeignFutureStructI32 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U64 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U64 -typedef struct UniffiForeignFutureStructU64 { - uint64_t returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructU64; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U64 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U64 -typedef void (*UniffiForeignFutureCompleteU64)(uint64_t, UniffiForeignFutureStructU64 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I64 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I64 -typedef struct UniffiForeignFutureStructI64 { - int64_t returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructI64; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I64 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I64 -typedef void (*UniffiForeignFutureCompleteI64)(uint64_t, UniffiForeignFutureStructI64 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F32 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F32 -typedef struct UniffiForeignFutureStructF32 { - float returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructF32; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F32 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F32 -typedef void (*UniffiForeignFutureCompleteF32)(uint64_t, UniffiForeignFutureStructF32 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F64 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F64 -typedef struct UniffiForeignFutureStructF64 { - double returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructF64; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F64 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F64 -typedef void (*UniffiForeignFutureCompleteF64)(uint64_t, UniffiForeignFutureStructF64 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_POINTER -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_POINTER -typedef struct UniffiForeignFutureStructPointer { - void*_Nonnull returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructPointer; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_POINTER -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_POINTER -typedef void (*UniffiForeignFutureCompletePointer)(uint64_t, UniffiForeignFutureStructPointer - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_RUST_BUFFER -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_RUST_BUFFER -typedef struct UniffiForeignFutureStructRustBuffer { - RustBuffer returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructRustBuffer; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_RUST_BUFFER -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_RUST_BUFFER -typedef void (*UniffiForeignFutureCompleteRustBuffer)(uint64_t, UniffiForeignFutureStructRustBuffer - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_VOID -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_VOID -typedef struct UniffiForeignFutureStructVoid { - RustCallStatus callStatus; -} UniffiForeignFutureStructVoid; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_VOID -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_VOID -typedef void (*UniffiForeignFutureCompleteVoid)(uint64_t, UniffiForeignFutureStructVoid - ); - -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_GENERATE_CIRCOM_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_GENERATE_CIRCOM_PROOF -RustBuffer uniffi_mopro_example_app_fn_func_generate_circom_proof(RustBuffer zkey_path, RustBuffer circuit_inputs, RustBuffer proof_lib, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_GENERATE_HALO2_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_GENERATE_HALO2_PROOF -RustBuffer uniffi_mopro_example_app_fn_func_generate_halo2_proof(RustBuffer srs_path, RustBuffer pk_path, RustBuffer circuit_inputs, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_GENERATE_NOIR_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_GENERATE_NOIR_PROOF -RustBuffer uniffi_mopro_example_app_fn_func_generate_noir_proof(RustBuffer circuit_path, RustBuffer srs_path, RustBuffer inputs, int8_t on_chain, RustBuffer vk, int8_t low_memory_mode, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_GET_NOIR_VERIFICATION_KEY -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_GET_NOIR_VERIFICATION_KEY -RustBuffer uniffi_mopro_example_app_fn_func_get_noir_verification_key(RustBuffer circuit_path, RustBuffer srs_path, int8_t on_chain, int8_t low_memory_mode, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_MOPRO_UNIFFI_HELLO_WORLD -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_MOPRO_UNIFFI_HELLO_WORLD -RustBuffer uniffi_mopro_example_app_fn_func_mopro_uniffi_hello_world(RustCallStatus *_Nonnull out_status - -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_VERIFY_CIRCOM_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_VERIFY_CIRCOM_PROOF -int8_t uniffi_mopro_example_app_fn_func_verify_circom_proof(RustBuffer zkey_path, RustBuffer proof_result, RustBuffer proof_lib, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_VERIFY_HALO2_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_VERIFY_HALO2_PROOF -int8_t uniffi_mopro_example_app_fn_func_verify_halo2_proof(RustBuffer srs_path, RustBuffer vk_path, RustBuffer proof, RustBuffer public_input, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_VERIFY_NOIR_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_VERIFY_NOIR_PROOF -int8_t uniffi_mopro_example_app_fn_func_verify_noir_proof(RustBuffer circuit_path, RustBuffer proof, int8_t on_chain, RustBuffer vk, int8_t low_memory_mode, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUSTBUFFER_ALLOC -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUSTBUFFER_ALLOC -RustBuffer ffi_mopro_example_app_rustbuffer_alloc(uint64_t size, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUSTBUFFER_FROM_BYTES -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUSTBUFFER_FROM_BYTES -RustBuffer ffi_mopro_example_app_rustbuffer_from_bytes(ForeignBytes bytes, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUSTBUFFER_FREE -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUSTBUFFER_FREE -void ffi_mopro_example_app_rustbuffer_free(RustBuffer buf, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUSTBUFFER_RESERVE -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUSTBUFFER_RESERVE -RustBuffer ffi_mopro_example_app_rustbuffer_reserve(RustBuffer buf, uint64_t additional, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_U8 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_U8 -void ffi_mopro_example_app_rust_future_poll_u8(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_U8 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_U8 -void ffi_mopro_example_app_rust_future_cancel_u8(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_U8 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_U8 -void ffi_mopro_example_app_rust_future_free_u8(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_U8 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_U8 -uint8_t ffi_mopro_example_app_rust_future_complete_u8(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_I8 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_I8 -void ffi_mopro_example_app_rust_future_poll_i8(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_I8 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_I8 -void ffi_mopro_example_app_rust_future_cancel_i8(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_I8 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_I8 -void ffi_mopro_example_app_rust_future_free_i8(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_I8 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_I8 -int8_t ffi_mopro_example_app_rust_future_complete_i8(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_U16 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_U16 -void ffi_mopro_example_app_rust_future_poll_u16(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_U16 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_U16 -void ffi_mopro_example_app_rust_future_cancel_u16(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_U16 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_U16 -void ffi_mopro_example_app_rust_future_free_u16(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_U16 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_U16 -uint16_t ffi_mopro_example_app_rust_future_complete_u16(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_I16 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_I16 -void ffi_mopro_example_app_rust_future_poll_i16(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_I16 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_I16 -void ffi_mopro_example_app_rust_future_cancel_i16(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_I16 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_I16 -void ffi_mopro_example_app_rust_future_free_i16(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_I16 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_I16 -int16_t ffi_mopro_example_app_rust_future_complete_i16(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_U32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_U32 -void ffi_mopro_example_app_rust_future_poll_u32(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_U32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_U32 -void ffi_mopro_example_app_rust_future_cancel_u32(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_U32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_U32 -void ffi_mopro_example_app_rust_future_free_u32(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_U32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_U32 -uint32_t ffi_mopro_example_app_rust_future_complete_u32(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_I32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_I32 -void ffi_mopro_example_app_rust_future_poll_i32(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_I32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_I32 -void ffi_mopro_example_app_rust_future_cancel_i32(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_I32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_I32 -void ffi_mopro_example_app_rust_future_free_i32(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_I32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_I32 -int32_t ffi_mopro_example_app_rust_future_complete_i32(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_U64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_U64 -void ffi_mopro_example_app_rust_future_poll_u64(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_U64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_U64 -void ffi_mopro_example_app_rust_future_cancel_u64(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_U64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_U64 -void ffi_mopro_example_app_rust_future_free_u64(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_U64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_U64 -uint64_t ffi_mopro_example_app_rust_future_complete_u64(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_I64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_I64 -void ffi_mopro_example_app_rust_future_poll_i64(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_I64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_I64 -void ffi_mopro_example_app_rust_future_cancel_i64(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_I64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_I64 -void ffi_mopro_example_app_rust_future_free_i64(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_I64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_I64 -int64_t ffi_mopro_example_app_rust_future_complete_i64(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_F32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_F32 -void ffi_mopro_example_app_rust_future_poll_f32(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_F32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_F32 -void ffi_mopro_example_app_rust_future_cancel_f32(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_F32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_F32 -void ffi_mopro_example_app_rust_future_free_f32(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_F32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_F32 -float ffi_mopro_example_app_rust_future_complete_f32(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_F64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_F64 -void ffi_mopro_example_app_rust_future_poll_f64(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_F64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_F64 -void ffi_mopro_example_app_rust_future_cancel_f64(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_F64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_F64 -void ffi_mopro_example_app_rust_future_free_f64(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_F64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_F64 -double ffi_mopro_example_app_rust_future_complete_f64(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_POINTER -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_POINTER -void ffi_mopro_example_app_rust_future_poll_pointer(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_POINTER -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_POINTER -void ffi_mopro_example_app_rust_future_cancel_pointer(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_POINTER -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_POINTER -void ffi_mopro_example_app_rust_future_free_pointer(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_POINTER -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_POINTER -void*_Nonnull ffi_mopro_example_app_rust_future_complete_pointer(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_RUST_BUFFER -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_RUST_BUFFER -void ffi_mopro_example_app_rust_future_poll_rust_buffer(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_RUST_BUFFER -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_RUST_BUFFER -void ffi_mopro_example_app_rust_future_cancel_rust_buffer(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_RUST_BUFFER -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_RUST_BUFFER -void ffi_mopro_example_app_rust_future_free_rust_buffer(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_RUST_BUFFER -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_RUST_BUFFER -RustBuffer ffi_mopro_example_app_rust_future_complete_rust_buffer(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_VOID -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_VOID -void ffi_mopro_example_app_rust_future_poll_void(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_VOID -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_VOID -void ffi_mopro_example_app_rust_future_cancel_void(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_VOID -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_VOID -void ffi_mopro_example_app_rust_future_free_void(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_VOID -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_VOID -void ffi_mopro_example_app_rust_future_complete_void(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_GENERATE_CIRCOM_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_GENERATE_CIRCOM_PROOF -uint16_t uniffi_mopro_example_app_checksum_func_generate_circom_proof(void - -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_GENERATE_HALO2_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_GENERATE_HALO2_PROOF -uint16_t uniffi_mopro_example_app_checksum_func_generate_halo2_proof(void - -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_GENERATE_NOIR_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_GENERATE_NOIR_PROOF -uint16_t uniffi_mopro_example_app_checksum_func_generate_noir_proof(void - -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_GET_NOIR_VERIFICATION_KEY -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_GET_NOIR_VERIFICATION_KEY -uint16_t uniffi_mopro_example_app_checksum_func_get_noir_verification_key(void - -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_MOPRO_UNIFFI_HELLO_WORLD -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_MOPRO_UNIFFI_HELLO_WORLD -uint16_t uniffi_mopro_example_app_checksum_func_mopro_uniffi_hello_world(void - -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_VERIFY_CIRCOM_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_VERIFY_CIRCOM_PROOF -uint16_t uniffi_mopro_example_app_checksum_func_verify_circom_proof(void - -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_VERIFY_HALO2_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_VERIFY_HALO2_PROOF -uint16_t uniffi_mopro_example_app_checksum_func_verify_halo2_proof(void - -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_VERIFY_NOIR_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_VERIFY_NOIR_PROOF -uint16_t uniffi_mopro_example_app_checksum_func_verify_noir_proof(void - -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_UNIFFI_CONTRACT_VERSION -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_UNIFFI_CONTRACT_VERSION -uint32_t ffi_mopro_example_app_uniffi_contract_version(void - -); -#endif - diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64/libmopro_example_app.a b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64/libmopro_example_app.a deleted file mode 100644 index f6d9efdf..00000000 Binary files a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64/libmopro_example_app.a and /dev/null differ diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64_x86_64-simulator/Headers/mopro_example_app/module.modulemap b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64_x86_64-simulator/Headers/mopro_example_app/module.modulemap deleted file mode 100644 index fbc84d1a..00000000 --- a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64_x86_64-simulator/Headers/mopro_example_app/module.modulemap +++ /dev/null @@ -1,4 +0,0 @@ -module mopro_example_appFFI { - header "mopro_example_appFFI.h" - export * -} \ No newline at end of file diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64_x86_64-simulator/Headers/mopro_example_app/mopro_example_appFFI.h b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64_x86_64-simulator/Headers/mopro_example_app/mopro_example_appFFI.h deleted file mode 100644 index 1d4b0ec6..00000000 --- a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64_x86_64-simulator/Headers/mopro_example_app/mopro_example_appFFI.h +++ /dev/null @@ -1,629 +0,0 @@ -// This file was autogenerated by some hot garbage in the `uniffi` crate. -// Trust me, you don't want to mess with it! - -#pragma once - -#include -#include -#include - -// The following structs are used to implement the lowest level -// of the FFI, and thus useful to multiple uniffied crates. -// We ensure they are declared exactly once, with a header guard, UNIFFI_SHARED_H. -#ifdef UNIFFI_SHARED_H - // We also try to prevent mixing versions of shared uniffi header structs. - // If you add anything to the #else block, you must increment the version suffix in UNIFFI_SHARED_HEADER_V4 - #ifndef UNIFFI_SHARED_HEADER_V4 - #error Combining helper code from multiple versions of uniffi is not supported - #endif // ndef UNIFFI_SHARED_HEADER_V4 -#else -#define UNIFFI_SHARED_H -#define UNIFFI_SHARED_HEADER_V4 -// ⚠️ Attention: If you change this #else block (ending in `#endif // def UNIFFI_SHARED_H`) you *must* ⚠️ -// ⚠️ increment the version suffix in all instances of UNIFFI_SHARED_HEADER_V4 in this file. ⚠️ - -typedef struct RustBuffer -{ - uint64_t capacity; - uint64_t len; - uint8_t *_Nullable data; -} RustBuffer; - -typedef struct ForeignBytes -{ - int32_t len; - const uint8_t *_Nullable data; -} ForeignBytes; - -// Error definitions -typedef struct RustCallStatus { - int8_t code; - RustBuffer errorBuf; -} RustCallStatus; - -// ⚠️ Attention: If you change this #else block (ending in `#endif // def UNIFFI_SHARED_H`) you *must* ⚠️ -// ⚠️ increment the version suffix in all instances of UNIFFI_SHARED_HEADER_V4 in this file. ⚠️ -#endif // def UNIFFI_SHARED_H -#ifndef UNIFFI_FFIDEF_RUST_FUTURE_CONTINUATION_CALLBACK -#define UNIFFI_FFIDEF_RUST_FUTURE_CONTINUATION_CALLBACK -typedef void (*UniffiRustFutureContinuationCallback)(uint64_t, int8_t - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_FREE -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_FREE -typedef void (*UniffiForeignFutureFree)(uint64_t - ); - -#endif -#ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_FREE -#define UNIFFI_FFIDEF_CALLBACK_INTERFACE_FREE -typedef void (*UniffiCallbackInterfaceFree)(uint64_t - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE -#define UNIFFI_FFIDEF_FOREIGN_FUTURE -typedef struct UniffiForeignFuture { - uint64_t handle; - UniffiForeignFutureFree _Nonnull free; -} UniffiForeignFuture; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U8 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U8 -typedef struct UniffiForeignFutureStructU8 { - uint8_t returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructU8; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U8 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U8 -typedef void (*UniffiForeignFutureCompleteU8)(uint64_t, UniffiForeignFutureStructU8 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I8 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I8 -typedef struct UniffiForeignFutureStructI8 { - int8_t returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructI8; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I8 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I8 -typedef void (*UniffiForeignFutureCompleteI8)(uint64_t, UniffiForeignFutureStructI8 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U16 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U16 -typedef struct UniffiForeignFutureStructU16 { - uint16_t returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructU16; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U16 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U16 -typedef void (*UniffiForeignFutureCompleteU16)(uint64_t, UniffiForeignFutureStructU16 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I16 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I16 -typedef struct UniffiForeignFutureStructI16 { - int16_t returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructI16; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I16 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I16 -typedef void (*UniffiForeignFutureCompleteI16)(uint64_t, UniffiForeignFutureStructI16 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U32 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U32 -typedef struct UniffiForeignFutureStructU32 { - uint32_t returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructU32; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U32 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U32 -typedef void (*UniffiForeignFutureCompleteU32)(uint64_t, UniffiForeignFutureStructU32 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I32 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I32 -typedef struct UniffiForeignFutureStructI32 { - int32_t returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructI32; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I32 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I32 -typedef void (*UniffiForeignFutureCompleteI32)(uint64_t, UniffiForeignFutureStructI32 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U64 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U64 -typedef struct UniffiForeignFutureStructU64 { - uint64_t returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructU64; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U64 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U64 -typedef void (*UniffiForeignFutureCompleteU64)(uint64_t, UniffiForeignFutureStructU64 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I64 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I64 -typedef struct UniffiForeignFutureStructI64 { - int64_t returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructI64; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I64 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I64 -typedef void (*UniffiForeignFutureCompleteI64)(uint64_t, UniffiForeignFutureStructI64 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F32 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F32 -typedef struct UniffiForeignFutureStructF32 { - float returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructF32; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F32 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F32 -typedef void (*UniffiForeignFutureCompleteF32)(uint64_t, UniffiForeignFutureStructF32 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F64 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F64 -typedef struct UniffiForeignFutureStructF64 { - double returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructF64; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F64 -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F64 -typedef void (*UniffiForeignFutureCompleteF64)(uint64_t, UniffiForeignFutureStructF64 - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_POINTER -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_POINTER -typedef struct UniffiForeignFutureStructPointer { - void*_Nonnull returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructPointer; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_POINTER -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_POINTER -typedef void (*UniffiForeignFutureCompletePointer)(uint64_t, UniffiForeignFutureStructPointer - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_RUST_BUFFER -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_RUST_BUFFER -typedef struct UniffiForeignFutureStructRustBuffer { - RustBuffer returnValue; - RustCallStatus callStatus; -} UniffiForeignFutureStructRustBuffer; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_RUST_BUFFER -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_RUST_BUFFER -typedef void (*UniffiForeignFutureCompleteRustBuffer)(uint64_t, UniffiForeignFutureStructRustBuffer - ); - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_VOID -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_VOID -typedef struct UniffiForeignFutureStructVoid { - RustCallStatus callStatus; -} UniffiForeignFutureStructVoid; - -#endif -#ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_VOID -#define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_VOID -typedef void (*UniffiForeignFutureCompleteVoid)(uint64_t, UniffiForeignFutureStructVoid - ); - -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_GENERATE_CIRCOM_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_GENERATE_CIRCOM_PROOF -RustBuffer uniffi_mopro_example_app_fn_func_generate_circom_proof(RustBuffer zkey_path, RustBuffer circuit_inputs, RustBuffer proof_lib, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_GENERATE_HALO2_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_GENERATE_HALO2_PROOF -RustBuffer uniffi_mopro_example_app_fn_func_generate_halo2_proof(RustBuffer srs_path, RustBuffer pk_path, RustBuffer circuit_inputs, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_GENERATE_NOIR_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_GENERATE_NOIR_PROOF -RustBuffer uniffi_mopro_example_app_fn_func_generate_noir_proof(RustBuffer circuit_path, RustBuffer srs_path, RustBuffer inputs, int8_t on_chain, RustBuffer vk, int8_t low_memory_mode, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_GET_NOIR_VERIFICATION_KEY -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_GET_NOIR_VERIFICATION_KEY -RustBuffer uniffi_mopro_example_app_fn_func_get_noir_verification_key(RustBuffer circuit_path, RustBuffer srs_path, int8_t on_chain, int8_t low_memory_mode, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_MOPRO_UNIFFI_HELLO_WORLD -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_MOPRO_UNIFFI_HELLO_WORLD -RustBuffer uniffi_mopro_example_app_fn_func_mopro_uniffi_hello_world(RustCallStatus *_Nonnull out_status - -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_VERIFY_CIRCOM_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_VERIFY_CIRCOM_PROOF -int8_t uniffi_mopro_example_app_fn_func_verify_circom_proof(RustBuffer zkey_path, RustBuffer proof_result, RustBuffer proof_lib, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_VERIFY_HALO2_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_VERIFY_HALO2_PROOF -int8_t uniffi_mopro_example_app_fn_func_verify_halo2_proof(RustBuffer srs_path, RustBuffer vk_path, RustBuffer proof, RustBuffer public_input, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_VERIFY_NOIR_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_FN_FUNC_VERIFY_NOIR_PROOF -int8_t uniffi_mopro_example_app_fn_func_verify_noir_proof(RustBuffer circuit_path, RustBuffer proof, int8_t on_chain, RustBuffer vk, int8_t low_memory_mode, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUSTBUFFER_ALLOC -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUSTBUFFER_ALLOC -RustBuffer ffi_mopro_example_app_rustbuffer_alloc(uint64_t size, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUSTBUFFER_FROM_BYTES -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUSTBUFFER_FROM_BYTES -RustBuffer ffi_mopro_example_app_rustbuffer_from_bytes(ForeignBytes bytes, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUSTBUFFER_FREE -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUSTBUFFER_FREE -void ffi_mopro_example_app_rustbuffer_free(RustBuffer buf, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUSTBUFFER_RESERVE -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUSTBUFFER_RESERVE -RustBuffer ffi_mopro_example_app_rustbuffer_reserve(RustBuffer buf, uint64_t additional, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_U8 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_U8 -void ffi_mopro_example_app_rust_future_poll_u8(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_U8 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_U8 -void ffi_mopro_example_app_rust_future_cancel_u8(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_U8 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_U8 -void ffi_mopro_example_app_rust_future_free_u8(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_U8 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_U8 -uint8_t ffi_mopro_example_app_rust_future_complete_u8(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_I8 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_I8 -void ffi_mopro_example_app_rust_future_poll_i8(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_I8 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_I8 -void ffi_mopro_example_app_rust_future_cancel_i8(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_I8 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_I8 -void ffi_mopro_example_app_rust_future_free_i8(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_I8 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_I8 -int8_t ffi_mopro_example_app_rust_future_complete_i8(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_U16 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_U16 -void ffi_mopro_example_app_rust_future_poll_u16(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_U16 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_U16 -void ffi_mopro_example_app_rust_future_cancel_u16(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_U16 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_U16 -void ffi_mopro_example_app_rust_future_free_u16(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_U16 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_U16 -uint16_t ffi_mopro_example_app_rust_future_complete_u16(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_I16 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_I16 -void ffi_mopro_example_app_rust_future_poll_i16(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_I16 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_I16 -void ffi_mopro_example_app_rust_future_cancel_i16(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_I16 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_I16 -void ffi_mopro_example_app_rust_future_free_i16(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_I16 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_I16 -int16_t ffi_mopro_example_app_rust_future_complete_i16(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_U32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_U32 -void ffi_mopro_example_app_rust_future_poll_u32(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_U32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_U32 -void ffi_mopro_example_app_rust_future_cancel_u32(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_U32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_U32 -void ffi_mopro_example_app_rust_future_free_u32(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_U32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_U32 -uint32_t ffi_mopro_example_app_rust_future_complete_u32(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_I32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_I32 -void ffi_mopro_example_app_rust_future_poll_i32(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_I32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_I32 -void ffi_mopro_example_app_rust_future_cancel_i32(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_I32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_I32 -void ffi_mopro_example_app_rust_future_free_i32(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_I32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_I32 -int32_t ffi_mopro_example_app_rust_future_complete_i32(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_U64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_U64 -void ffi_mopro_example_app_rust_future_poll_u64(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_U64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_U64 -void ffi_mopro_example_app_rust_future_cancel_u64(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_U64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_U64 -void ffi_mopro_example_app_rust_future_free_u64(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_U64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_U64 -uint64_t ffi_mopro_example_app_rust_future_complete_u64(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_I64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_I64 -void ffi_mopro_example_app_rust_future_poll_i64(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_I64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_I64 -void ffi_mopro_example_app_rust_future_cancel_i64(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_I64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_I64 -void ffi_mopro_example_app_rust_future_free_i64(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_I64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_I64 -int64_t ffi_mopro_example_app_rust_future_complete_i64(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_F32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_F32 -void ffi_mopro_example_app_rust_future_poll_f32(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_F32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_F32 -void ffi_mopro_example_app_rust_future_cancel_f32(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_F32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_F32 -void ffi_mopro_example_app_rust_future_free_f32(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_F32 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_F32 -float ffi_mopro_example_app_rust_future_complete_f32(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_F64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_F64 -void ffi_mopro_example_app_rust_future_poll_f64(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_F64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_F64 -void ffi_mopro_example_app_rust_future_cancel_f64(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_F64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_F64 -void ffi_mopro_example_app_rust_future_free_f64(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_F64 -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_F64 -double ffi_mopro_example_app_rust_future_complete_f64(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_POINTER -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_POINTER -void ffi_mopro_example_app_rust_future_poll_pointer(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_POINTER -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_POINTER -void ffi_mopro_example_app_rust_future_cancel_pointer(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_POINTER -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_POINTER -void ffi_mopro_example_app_rust_future_free_pointer(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_POINTER -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_POINTER -void*_Nonnull ffi_mopro_example_app_rust_future_complete_pointer(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_RUST_BUFFER -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_RUST_BUFFER -void ffi_mopro_example_app_rust_future_poll_rust_buffer(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_RUST_BUFFER -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_RUST_BUFFER -void ffi_mopro_example_app_rust_future_cancel_rust_buffer(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_RUST_BUFFER -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_RUST_BUFFER -void ffi_mopro_example_app_rust_future_free_rust_buffer(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_RUST_BUFFER -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_RUST_BUFFER -RustBuffer ffi_mopro_example_app_rust_future_complete_rust_buffer(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_VOID -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_POLL_VOID -void ffi_mopro_example_app_rust_future_poll_void(uint64_t handle, UniffiRustFutureContinuationCallback _Nonnull callback, uint64_t callback_data -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_VOID -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_CANCEL_VOID -void ffi_mopro_example_app_rust_future_cancel_void(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_VOID -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_FREE_VOID -void ffi_mopro_example_app_rust_future_free_void(uint64_t handle -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_VOID -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_RUST_FUTURE_COMPLETE_VOID -void ffi_mopro_example_app_rust_future_complete_void(uint64_t handle, RustCallStatus *_Nonnull out_status -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_GENERATE_CIRCOM_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_GENERATE_CIRCOM_PROOF -uint16_t uniffi_mopro_example_app_checksum_func_generate_circom_proof(void - -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_GENERATE_HALO2_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_GENERATE_HALO2_PROOF -uint16_t uniffi_mopro_example_app_checksum_func_generate_halo2_proof(void - -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_GENERATE_NOIR_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_GENERATE_NOIR_PROOF -uint16_t uniffi_mopro_example_app_checksum_func_generate_noir_proof(void - -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_GET_NOIR_VERIFICATION_KEY -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_GET_NOIR_VERIFICATION_KEY -uint16_t uniffi_mopro_example_app_checksum_func_get_noir_verification_key(void - -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_MOPRO_UNIFFI_HELLO_WORLD -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_MOPRO_UNIFFI_HELLO_WORLD -uint16_t uniffi_mopro_example_app_checksum_func_mopro_uniffi_hello_world(void - -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_VERIFY_CIRCOM_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_VERIFY_CIRCOM_PROOF -uint16_t uniffi_mopro_example_app_checksum_func_verify_circom_proof(void - -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_VERIFY_HALO2_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_VERIFY_HALO2_PROOF -uint16_t uniffi_mopro_example_app_checksum_func_verify_halo2_proof(void - -); -#endif -#ifndef UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_VERIFY_NOIR_PROOF -#define UNIFFI_FFIDEF_UNIFFI_MOPRO_EXAMPLE_APP_CHECKSUM_FUNC_VERIFY_NOIR_PROOF -uint16_t uniffi_mopro_example_app_checksum_func_verify_noir_proof(void - -); -#endif -#ifndef UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_UNIFFI_CONTRACT_VERSION -#define UNIFFI_FFIDEF_FFI_MOPRO_EXAMPLE_APP_UNIFFI_CONTRACT_VERSION -uint32_t ffi_mopro_example_app_uniffi_contract_version(void - -); -#endif - diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64_x86_64-simulator/libmopro_example_app.a b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64_x86_64-simulator/libmopro_example_app.a deleted file mode 100644 index 945b625d..00000000 Binary files a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/MoproBindings.xcframework/ios-arm64_x86_64-simulator/libmopro_example_app.a and /dev/null differ diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/mopro_flutter.podspec b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/mopro_flutter.podspec index 6e0449c3..bce31467 100644 --- a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/mopro_flutter.podspec +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/ios/mopro_flutter.podspec @@ -15,85 +15,19 @@ A new Flutter plugin project. s.author = { 'Your Company' => 'email@example.com' } s.source = { :path => '.' } s.source_files = 'Classes/**/*' - s.vendored_frameworks = 'MoproBindings.xcframework' - s.preserve_paths = 'MoproBindings.xcframework/**/*' + + # Vendor both frameworks + s.vendored_frameworks = 'Frameworks/MoproCircomBindings.xcframework', 'Frameworks/MoproNoirBindings.xcframework' + s.preserve_paths = 'Frameworks/MoproCircomBindings.xcframework/**/*', 'Frameworks/MoproNoirBindings.xcframework/**/*' s.dependency 'Flutter' s.platform = :ios, '11.0' - # Dynamically determine which architectures to exclude based on xcframework availability - xcframework_path = File.join(File.dirname(__FILE__), 'MoproBindings.xcframework') - info_plist_path = File.join(xcframework_path, 'Info.plist') - - excluded_config = {} - - if File.exist?(info_plist_path) - begin - content = File.read(info_plist_path) - simulator_archs = [] - device_archs = [] - - # Simple XML parsing to extract architectures - current_lib = nil - in_supported_archs = false - is_simulator = false - - content.each_line do |line| - line = line.strip - - # Detect library blocks - if line.include?('LibraryIdentifier') - current_lib = :new_lib - is_simulator = false - elsif current_lib == :new_lib && line.include?('') && line.include?('simulator') - is_simulator = true - elsif line.include?('SupportedArchitectures') - in_supported_archs = true - elsif in_supported_archs && line.include?('') - in_supported_archs = false - current_lib = nil - elsif in_supported_archs && line.include?('') && line.include?('') - # Extract architecture name - arch = line.gsub(/<\/?string>/, '').strip - if is_simulator - simulator_archs << arch - else - device_archs << arch - end - end - end - - # All possible architectures - all_simulator_archs = ['x86_64', 'arm64'] - all_device_archs = ['arm64', 'armv7'] - - # Exclude unsupported simulator architectures - excluded_simulator = all_simulator_archs - simulator_archs.uniq - if !excluded_simulator.empty? - excluded_config['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = excluded_simulator.join(' ') - end - - # Exclude unsupported device architectures - excluded_device = all_device_archs - device_archs.uniq - if !excluded_device.empty? - excluded_config['EXCLUDED_ARCHS[sdk=iphoneos*]'] = excluded_device.join(' ') - end - - rescue => e - puts "Warning: Could not parse xcframework Info.plist: #{e.message}" - # Fallback to safe defaults - exclude x86_64 only if we can't parse - excluded_config['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'x86_64' - end - else - puts "Warning: xcframework Info.plist not found, using safe defaults" - # Fallback to safe defaults - excluded_config['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'x86_64' - end - - # Build the pod_target_xcconfig with dynamic exclusions - base_config = { 'DEFINES_MODULE' => 'YES' } - final_config = base_config.merge(excluded_config) - - s.pod_target_xcconfig = final_config + s.pod_target_xcconfig = { + 'DEFINES_MODULE' => 'YES', + 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'x86_64', + 'HEADER_SEARCH_PATHS' => '"$(PODS_TARGET_SRCROOT)/Frameworks/MoproCircomBindings.xcframework/ios-arm64/Headers/deimos_circom" "$(PODS_TARGET_SRCROOT)/Frameworks/MoproNoirBindings.xcframework/ios-arm64/Headers/deimos_noir"', + 'OTHER_SWIFT_FLAGS' => '-Xcc -fmodule-map-file="$(PODS_TARGET_SRCROOT)/Frameworks/MoproCircomBindings.xcframework/ios-arm64/Headers/deimos_circom/module.modulemap" -Xcc -fmodule-map-file="$(PODS_TARGET_SRCROOT)/Frameworks/MoproNoirBindings.xcframework/ios-arm64/Headers/deimos_noir/module.modulemap"' + } s.swift_version = '5.0' end diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/lib/mopro_flutter.dart b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/lib/mopro_flutter.dart index 0dce9f56..2f7bcbef 100644 --- a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/lib/mopro_flutter.dart +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/lib/mopro_flutter.dart @@ -95,4 +95,8 @@ class MoproFlutter { Future verifyRisc0Proof(Uint8List receiptBytes) async { return await MoproFlutterPlatform.instance.verifyRisc0Proof(receiptBytes); } + + Future> getIOSMemoryUsage() async { + return await MoproFlutterPlatform.instance.getIOSMemoryUsage(); + } } diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/lib/mopro_flutter_method_channel.dart b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/lib/mopro_flutter_method_channel.dart index 570fcf13..b0f8b5bb 100644 --- a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/lib/mopro_flutter_method_channel.dart +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/lib/mopro_flutter_method_channel.dart @@ -137,4 +137,16 @@ class MethodChannelMoproFlutter extends MoproFlutterPlatform { return Risc0VerifyOutput.fromMap(verifyResult); } + + @override + Future> getIOSMemoryUsage() async { + final result = await methodChannel.invokeMethod>('getIOSMemoryUsage'); + if (result == null) { + return {'used': 0, 'total': 0}; + } + return { + 'used': result['used'] as int? ?? 0, + 'total': result['total'] as int? ?? 0, + }; + } } diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/lib/mopro_flutter_platform_interface.dart b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/lib/mopro_flutter_platform_interface.dart index 9401a678..b304320a 100644 --- a/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/lib/mopro_flutter_platform_interface.dart +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/mopro_flutter_plugin/lib/mopro_flutter_platform_interface.dart @@ -66,4 +66,8 @@ abstract class MoproFlutterPlatform extends PlatformInterface { Future verifyRisc0Proof(Uint8List receiptBytes) { throw UnimplementedError('verifyRisc0Proof() has not been implemented.'); } + + Future> getIOSMemoryUsage() { + throw UnimplementedError('getIOSMemoryUsage() has not been implemented.'); + } } diff --git a/benchmarking-suite/moPro/mopro-example-app/flutter/pubspec.yaml b/benchmarking-suite/moPro/mopro-example-app/flutter/pubspec.yaml index a9c3f4b3..591eb25d 100644 --- a/benchmarking-suite/moPro/mopro-example-app/flutter/pubspec.yaml +++ b/benchmarking-suite/moPro/mopro-example-app/flutter/pubspec.yaml @@ -28,6 +28,7 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.6 + path_provider: ^2.0.0 # Device info and HTTP client device_info_plus: ^10.1.0 diff --git a/benchmarking-suite/moPro/mopro-example-app/generate_ios_bindings.sh b/benchmarking-suite/moPro/mopro-example-app/generate_ios_bindings.sh new file mode 100755 index 00000000..a8649457 --- /dev/null +++ b/benchmarking-suite/moPro/mopro-example-app/generate_ios_bindings.sh @@ -0,0 +1,119 @@ +#!/bin/bash + +# Exit on error +set -e + +# Directories +CONFIG_DIR="src/configs" +BACKUP_DIR="src/backup_tmp" +FLUTTER_IOS_PLUGIN_DIR="flutter/mopro_flutter_plugin/ios/Classes" +IOS_BINDINGS_DIR="MoproiOSBindings" + +echo "==========================================================" +echo " Generating iOS Bindings for Circom & Noir (Auto-Swap)" +echo "==========================================================" + +# 1. Backup current config +echo "[+] Backing up current configuration..." +mkdir -p "$BACKUP_DIR" +cp src/lib.rs "$BACKUP_DIR/" +cp Cargo.toml "$BACKUP_DIR/" +cp build.rs "$BACKUP_DIR/" + +cleanup() { + echo "[+] Restoring original configuration..." + cp "$BACKUP_DIR/lib.rs" src/lib.rs + cp "$BACKUP_DIR/Cargo.toml" Cargo.toml + cp "$BACKUP_DIR/build.rs" build.rs + rm -rf "$BACKUP_DIR" + echo "[+] Done. Environment restored for standard Android build." +} + +# Ensure cleanup runs on exit or interrupt +trap cleanup EXIT + +# ============================================================================== +# PHASE 1: Build Circom +# ============================================================================== +echo "" +echo ">>> Building CIRCOM Bindings..." +cp "$CONFIG_DIR/lib_circom.rs" src/lib.rs +cp "$CONFIG_DIR/Cargo_circom.toml" Cargo.toml +cp "$CONFIG_DIR/build_circom.rs" build.rs + +# Fix for w2c2/rust-witness compatibility issue +export CFLAGS="-DW2C2_LOOP_START=" + +# Clean previous build artifacts to ensure fresh witness compilation +echo "[+] Cleaning previous artifacts..." +rm -rf test-vectors/circom/witnesscalc +cargo clean + +# Build (iOS only) +mopro build --platforms ios + +# Copy generated binding to plugin dir as MoproCircom.swift +echo "[+] Copying generated bindings to MoproCircom.swift..." +cp "$IOS_BINDINGS_DIR/mopro.swift" "$FLUTTER_IOS_PLUGIN_DIR/MoproCircom.swift" + +# Copy generated framework to plugin dir as MoproCircomBindings.xcframework +echo "[+] Copying generated framework to MoproCircomBindings.xcframework..." +rm -rf "$FLUTTER_IOS_PLUGIN_DIR/../Frameworks/MoproCircomBindings.xcframework" +cp -R "$IOS_BINDINGS_DIR/MoproBindings.xcframework" "$FLUTTER_IOS_PLUGIN_DIR/../Frameworks/MoproCircomBindings.xcframework" + +# PATCH HEADER FILES (Manual fix automation) +# Rename RustBuffer -> CircomRustBuffer, etc. in the DEPLOYED headers +CIRCOM_HEADERS_DIR="$FLUTTER_IOS_PLUGIN_DIR/../Frameworks/MoproCircomBindings.xcframework/ios-arm64/Headers/deimos_circom" +if [ -d "$CIRCOM_HEADERS_DIR" ]; then + echo "[+] Renaming types in deployed Circom header files..." + find "$CIRCOM_HEADERS_DIR" -name "*.h" -exec sed -i '' 's/RustBuffer/CircomRustBuffer/g' {} + + find "$CIRCOM_HEADERS_DIR" -name "*.h" -exec sed -i '' 's/ForeignBytes/CircomForeignBytes/g' {} + + find "$CIRCOM_HEADERS_DIR" -name "*.h" -exec sed -i '' 's/RustCallStatus/CircomRustCallStatus/g' {} + + find "$CIRCOM_HEADERS_DIR" -name "*.h" -exec sed -i '' 's/UNIFFI_SHARED_H/UNIFFI_SHARED_H_CIRCOM/g' {} + + find "$CIRCOM_HEADERS_DIR" -name "*.h" -exec sed -i '' 's/UNIFFI_SHARED_HEADER_V4/UNIFFI_SHARED_HEADER_V4_CIRCOM/g' {} + +else + echo "WARNING: Circom headers not found at $CIRCOM_HEADERS_DIR" +fi + +# Run rename script +./update_mopro_circom.sh + +# ============================================================================== +# PHASE 2: Build Noir +# ============================================================================== +echo "" +echo ">>> Building NOIR Bindings..." +cp "$CONFIG_DIR/lib_noir.rs" src/lib.rs +cp "$CONFIG_DIR/Cargo_noir.toml" Cargo.toml +cp "$CONFIG_DIR/build_noir.rs" build.rs + +# Build (iOS only) +mopro build --platforms ios + +# Copy generated binding to plugin dir as MoproNoir.swift +echo "[+] Copying generated bindings to MoproNoir.swift..." +cp "$IOS_BINDINGS_DIR/mopro.swift" "$FLUTTER_IOS_PLUGIN_DIR/MoproNoir.swift" + +# Copy generated framework to plugin dir as MoproNoirBindings.xcframework +echo "[+] Copying generated framework to MoproNoirBindings.xcframework..." +rm -rf "$FLUTTER_IOS_PLUGIN_DIR/../Frameworks/MoproNoirBindings.xcframework" +cp -R "$IOS_BINDINGS_DIR/MoproBindings.xcframework" "$FLUTTER_IOS_PLUGIN_DIR/../Frameworks/MoproNoirBindings.xcframework" + +# PATCH HEADER FILES (Manual fix automation) +NOIR_HEADERS_DIR="$FLUTTER_IOS_PLUGIN_DIR/../Frameworks/MoproNoirBindings.xcframework/ios-arm64/Headers/deimos_noir" +if [ -d "$NOIR_HEADERS_DIR" ]; then + echo "[+] Renaming types in deployed Noir header files..." + find "$NOIR_HEADERS_DIR" -name "*.h" -exec sed -i '' 's/RustBuffer/NoirRustBuffer/g' {} + + find "$NOIR_HEADERS_DIR" -name "*.h" -exec sed -i '' 's/ForeignBytes/NoirForeignBytes/g' {} + + find "$NOIR_HEADERS_DIR" -name "*.h" -exec sed -i '' 's/RustCallStatus/NoirRustCallStatus/g' {} + + find "$NOIR_HEADERS_DIR" -name "*.h" -exec sed -i '' 's/UNIFFI_SHARED_H/UNIFFI_SHARED_H_NOIR/g' {} + + find "$NOIR_HEADERS_DIR" -name "*.h" -exec sed -i '' 's/UNIFFI_SHARED_HEADER_V4/UNIFFI_SHARED_HEADER_V4_NOIR/g' {} + +else + echo "WARNING: Noir headers not found at $NOIR_HEADERS_DIR" +fi + +# Run rename script +./update_mopro_noir.sh + +echo "" +echo ">>> SUCCESS: Both bindings generated and renamed." diff --git a/benchmarking-suite/moPro/mopro-example-app/src/configs/Cargo_circom.toml b/benchmarking-suite/moPro/mopro-example-app/src/configs/Cargo_circom.toml new file mode 100644 index 00000000..85630fe3 --- /dev/null +++ b/benchmarking-suite/moPro/mopro-example-app/src/configs/Cargo_circom.toml @@ -0,0 +1,86 @@ + +[package] +name = "deimos-circom" +version = { workspace = true } +edition = { workspace = true } + +[lib] +crate-type = ["lib", "cdylib", "staticlib"] + +# Adapters for different proof systems +[features] +default = [] + +[dependencies] +mopro-wasm = { git = "https://github.com/zkmopro/mopro.git", branch = "v0.2.x" } +mopro-ffi = { version = "0.3.1", features = ["uniffi"] } +thiserror = "2.0.12" +anyhow = "1.0.99" +bincode = "1.3" + +# RISC0 +# risc0-circuit = { workspace = true } +# risc0-zkvm = { workspace = true, features = ["prove", "metal", "unstable"] } +# methods = { path = "../risc0-circuit/methods" } + + +# ============================================================================== +# CIRCOM DEPENDENCIES (Uncomment to build for Circom) +# ============================================================================== +circom-prover = "0.1" +rust-witness = "0.1" +num-bigint = "0.4.0" + +# ============================================================================== +# HALO2 DEPENDENCIES +# ============================================================================== +# plonk-fibonacci = { package = "plonk-fibonacci", git = "https://github.com/sifnoc/plonkish-fibonacci-sample.git" } +# hyperplonk-fibonacci = { package = "hyperplonk-fibonacci", git = "https://github.com/sifnoc/plonkish-fibonacci-sample.git" } +# gemini-fibonacci = { package = "gemini-fibonacci", git = "https://github.com/sifnoc/plonkish-fibonacci-sample.git" } + +# ============================================================================== +# NOIR DEPENDENCIES (Comment out if building for Circom) +# ============================================================================== +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0.94" + +# noir_rs = { package = "noir", git = "https://github.com/zkmopro/noir-rs", features = [ +# "barretenberg", +# "android-compat", +# ], branch = "v1.0.0-beta.8-3" } + + +[build-dependencies] +# ============================================================================== +# CIRCOM BUILD DEPENDENCIES (Uncomment to build for Circom) +# ============================================================================== +witnesscalc-adapter = "0.1" +rust-witness = "0.1" +cc = "1.0" + +# ============================================================================== +# HALO2 BUILD DEPENDENCIES +# ============================================================================== + +# ============================================================================== +# NOIR BUILD DEPENDENCIES +# ============================================================================== + + +[dev-dependencies] +mopro-ffi = { version = "0.3.1", features = ["uniffi-tests"] } + +# ============================================================================== +# CIRCOM DEV DEPENDENCIES +# ============================================================================== +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0.94" + +# ============================================================================== +# HALO2 DEV DEPENDENCIES +# ============================================================================== + +# ============================================================================== +# NOIR DEV DEPENDENCIES +# ============================================================================== +serial_test = "3.0.0" diff --git a/benchmarking-suite/moPro/mopro-example-app/src/configs/Cargo_noir.toml b/benchmarking-suite/moPro/mopro-example-app/src/configs/Cargo_noir.toml new file mode 100644 index 00000000..fe2094fa --- /dev/null +++ b/benchmarking-suite/moPro/mopro-example-app/src/configs/Cargo_noir.toml @@ -0,0 +1,85 @@ + +[package] +name = "deimos-noir" +version = { workspace = true } +edition = { workspace = true } + +[lib] +crate-type = ["lib", "cdylib", "staticlib"] + +# Adapters for different proof systems +[features] +default = [] + +[dependencies] +mopro-wasm = { git = "https://github.com/zkmopro/mopro.git", branch = "v0.2.x" } +mopro-ffi = { version = "0.3.1", features = ["uniffi"] } +thiserror = "2.0.12" +anyhow = "1.0.99" +bincode = "1.3" + +# RISC0 +# risc0-circuit = { workspace = true } +# risc0-zkvm = { workspace = true, features = ["prove", "metal", "unstable"] } +# methods = { path = "../risc0-circuit/methods" } + + +# ============================================================================== +# CIRCOM DEPENDENCIES (Uncomment to build for Circom) +# ============================================================================== +# circom-prover = "0.1" +# rust-witness = "0.1" +# num-bigint = "0.4.0" + +# ============================================================================== +# HALO2 DEPENDENCIES +# ============================================================================== +plonk-fibonacci = { package = "plonk-fibonacci", git = "https://github.com/sifnoc/plonkish-fibonacci-sample.git" } +hyperplonk-fibonacci = { package = "hyperplonk-fibonacci", git = "https://github.com/sifnoc/plonkish-fibonacci-sample.git" } +gemini-fibonacci = { package = "gemini-fibonacci", git = "https://github.com/sifnoc/plonkish-fibonacci-sample.git" } + +# ============================================================================== +# NOIR DEPENDENCIES (Comment out if building for Circom) +# ============================================================================== +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0.94" + +noir_rs = { package = "noir", git = "https://github.com/zkmopro/noir-rs", features = [ + "barretenberg", + "android-compat", +], branch = "v1.0.0-beta.8-3" } + + +[build-dependencies] +# ============================================================================== +# CIRCOM BUILD DEPENDENCIES (Uncomment to build for Circom) +# ============================================================================== +# witnesscalc-adapter = "0.1" +# rust-witness = "0.1" + +# ============================================================================== +# HALO2 BUILD DEPENDENCIES +# ============================================================================== + +# ============================================================================== +# NOIR BUILD DEPENDENCIES +# ============================================================================== + + +[dev-dependencies] +mopro-ffi = { version = "0.3.1", features = ["uniffi-tests"] } + +# ============================================================================== +# CIRCOM DEV DEPENDENCIES +# ============================================================================== +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0.94" + +# ============================================================================== +# HALO2 DEV DEPENDENCIES +# ============================================================================== + +# ============================================================================== +# NOIR DEV DEPENDENCIES +# ============================================================================== +serial_test = "3.0.0" diff --git a/benchmarking-suite/moPro/mopro-example-app/src/configs/build_circom.rs b/benchmarking-suite/moPro/mopro-example-app/src/configs/build_circom.rs new file mode 100644 index 00000000..d2d9f5cc --- /dev/null +++ b/benchmarking-suite/moPro/mopro-example-app/src/configs/build_circom.rs @@ -0,0 +1,7 @@ +fn main() { + // ============================================================================== + // CIRCOM TEMPLATE (Uncomment to build for Circom) + // ============================================================================== + let dir = "./test-vectors/circom"; + rust_witness::transpile::transpile_wasm(dir.to_string()); +} diff --git a/benchmarking-suite/moPro/mopro-example-app/src/configs/build_noir.rs b/benchmarking-suite/moPro/mopro-example-app/src/configs/build_noir.rs new file mode 100644 index 00000000..a07ea400 --- /dev/null +++ b/benchmarking-suite/moPro/mopro-example-app/src/configs/build_noir.rs @@ -0,0 +1,6 @@ +fn main() { + // ============================================================================== + // CIRCOM TEMPLATE (Uncomment to build for Circom) + // ============================================================================== + // rust_witness::transpile::transpile_wasm("./test-vectors/circom".to_string()); +} diff --git a/benchmarking-suite/moPro/mopro-example-app/src/configs/lib_circom.rs b/benchmarking-suite/moPro/mopro-example-app/src/configs/lib_circom.rs new file mode 100644 index 00000000..a1cc6891 --- /dev/null +++ b/benchmarking-suite/moPro/mopro-example-app/src/configs/lib_circom.rs @@ -0,0 +1,85 @@ +mopro_ffi::app!(); + +#[derive(Debug, thiserror::Error, uniffi::Error)] +pub enum MoproError { + #[error("Circom error: {0}")] + CircomError(String), +} + +mod circom; + +use std::collections::HashMap; +use num_bigint::BigInt; + +rust_witness::witness!(keccak); +rust_witness::witness!(blake2s256); +rust_witness::witness!(mimc256); +rust_witness::witness!(pedersen); +rust_witness::witness!(poseidon); +rust_witness::witness!(sha256); + +set_circom_circuits! { + ("keccak.zkey", circom_prover::witness::WitnessFn::RustWitness(keccak_witness)), + ("blake2s256.zkey", circom_prover::witness::WitnessFn::RustWitness(blake2s256_witness)), + ("mimc256.zkey", circom_prover::witness::WitnessFn::RustWitness(mimc256_witness)), + ("pedersen.zkey", circom_prover::witness::WitnessFn::RustWitness(pedersen_witness)), + ("poseidon.zkey", circom_prover::witness::WitnessFn::RustWitness(poseidon_witness)), + ("sha256.zkey", circom_prover::witness::WitnessFn::RustWitness(sha256_witness)), +} + +#[uniffi::export] +fn mopro_uniffi_hello_world() -> String { + "Hello, World!".to_string() +} + +#[cfg(test)] +mod circom_tests { + use crate::circom::{generate_circom_proof, verify_circom_proof, ProofLib}; + + const ZKEY_PATH: &str = "./test-vectors/circom/mimc256.zkey"; + + #[test] + fn test_circom() { + let circuit_inputs = r#"{ + "in": [ + "72", + "101", + "108", + "108", + "111", + "32", + "87", + "111", + "114", + "108", + "100", + "33", + "32", + "84", + "104", + "105", + "115", + "32", + "105", + "115", + "32", + "97", + "32", + "116", + "101", + "115", + "116", + "32", + "109", + "115", + "103", + "46" + ] + }"#.to_string(); + let result = + generate_circom_proof(ZKEY_PATH.to_string(), circuit_inputs, ProofLib::Arkworks); + assert!(result.is_ok()); + let proof = result.unwrap(); + assert!(verify_circom_proof(ZKEY_PATH.to_string(), proof, ProofLib::Arkworks).is_ok()); + } +} diff --git a/benchmarking-suite/moPro/mopro-example-app/src/configs/lib_noir.rs b/benchmarking-suite/moPro/mopro-example-app/src/configs/lib_noir.rs new file mode 100644 index 00000000..ba3aad9f --- /dev/null +++ b/benchmarking-suite/moPro/mopro-example-app/src/configs/lib_noir.rs @@ -0,0 +1,44 @@ +mopro_ffi::app!(); + +#[derive(Debug, thiserror::Error, uniffi::Error)] +pub enum MoproError { + #[error("Noir error: {0}")] + NoirError(String), + #[error("Halo2 error: {0}")] + Halo2Error(String), +} + +#[uniffi::export] +fn mopro_uniffi_hello_world() -> String { + "Hello, World!".to_string() +} + +#[macro_use] +mod stubs; + +// NOIR_TEMPLATE +// --- Noir Example of using Ultra Honk proving and verifying circuits --- + +// Module containing the Noir circuit logic (Multiplier2) +mod noir; + +// HALO2_TEMPLATE +// --- Halo2 Example of using Plonk proving and verifying circuits --- + +// Module containing the Halo2 circuit logic (FibonacciMoproCircuit) +#[macro_use] +mod halo2; + +set_halo2_circuits! { + ("plonk_fibonacci_pk.bin", plonk_fibonacci::prove, "plonk_fibonacci_vk.bin", plonk_fibonacci::verify), + ("hyperplonk_fibonacci_pk.bin", hyperplonk_fibonacci::prove, "hyperplonk_fibonacci_vk.bin", hyperplonk_fibonacci::verify), + ("gemini_fibonacci_pk.bin", gemini_fibonacci::prove, "gemini_fibonacci_vk.bin", gemini_fibonacci::verify), +} + +#[cfg(test)] +mod uniffi_tests { + #[test] + fn test_mopro_uniffi_hello_world() { + assert_eq!(super::mopro_uniffi_hello_world(), "Hello, World!"); + } +} diff --git a/benchmarking-suite/moPro/mopro-example-app/src/lib.rs b/benchmarking-suite/moPro/mopro-example-app/src/lib.rs index 50fc7f10..3e0068d6 100644 --- a/benchmarking-suite/moPro/mopro-example-app/src/lib.rs +++ b/benchmarking-suite/moPro/mopro-example-app/src/lib.rs @@ -423,4 +423,4 @@ mod tests { ); } } -} +} \ No newline at end of file diff --git a/benchmarking-suite/moPro/mopro-example-app/test-vectors/circom/pedersen.h b/benchmarking-suite/moPro/mopro-example-app/test-vectors/circom/pedersen.h new file mode 100644 index 00000000..4b1fcd03 --- /dev/null +++ b/benchmarking-suite/moPro/mopro-example-app/test-vectors/circom/pedersen.h @@ -0,0 +1,309 @@ +#ifndef pedersen_H +#define pedersen_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "w2c2_base.h" + +typedef struct pedersenInstance { +wasmModuleInstance common; +wasmMemory* m0; +wasmTable t0; +} pedersenInstance; + +void runtime__exceptionHandler(void*,U32); + +void runtime__printErrorMessage(void*); + +void runtime__writeBufferMessage(void*); + +void runtime__showSharedRWMemory(void*); + +void f4(pedersenInstance*,U32,U32); + +void f5(pedersenInstance*,U32); + +U32 f6(pedersenInstance*,U32); + +void f7(pedersenInstance*,U32); + +U32 f8(pedersenInstance*,U32,U32); + +U32 f9(pedersenInstance*,U32,U32); + +U32 f10(pedersenInstance*,U32,U32); + +U32 f11(pedersenInstance*,U32,U32,U32); + +U32 f12(pedersenInstance*,U32,U32,U32); + +void f13(pedersenInstance*,U32,U32,U32); + +void f14(pedersenInstance*,U32,U32); + +void f15(pedersenInstance*,U32,U32); + +void f16(pedersenInstance*,U32,U64,U32); + +void f17(pedersenInstance*,U32,U64); + +void f18(pedersenInstance*,U32,U32,U32,U32); + +void f19(pedersenInstance*,U32,U32,U32); + +void f20(pedersenInstance*,U32,U32,U32); + +void f21(pedersenInstance*,U32,U32,U32); + +void f22(pedersenInstance*,U32,U32); + +void f23(pedersenInstance*,U32,U32); + +void f24(pedersenInstance*,U32,U32,U32); + +void f25(pedersenInstance*,U32,U32); + +void f26(pedersenInstance*,U32,U32); + +void f27(pedersenInstance*,U32,U32); + +void f28(pedersenInstance*,U32,U32); + +U32 f29(pedersenInstance*,U32); + +void f30(pedersenInstance*,U32,U32); + +void f31(pedersenInstance*,U32); + +void f32(pedersenInstance*,U32,U32,U32); + +void f33(pedersenInstance*,U32,U32,U32,U32); + +void f34(pedersenInstance*,U32,U32,U32,U32); + +void f35(pedersenInstance*,U32,U32); + +U32 f36(pedersenInstance*,U32); + +void f37(pedersenInstance*,U32,U32); + +void f38(pedersenInstance*,U32,U32,U32); + +U32 f39(pedersenInstance*,U32); + +void f40(pedersenInstance*,U32,U64); + +void f41(pedersenInstance*,U32); + +void f42(pedersenInstance*,U32); + +void f43(pedersenInstance*,U32); + +U32 f44(pedersenInstance*,U32); + +void f45(pedersenInstance*,U32,U32); + +U32 f46(pedersenInstance*,U32); + +U32 f47(pedersenInstance*,U32); + +void f48(pedersenInstance*,U32,U32,U32); + +void f49(pedersenInstance*,U32,U32,U32); + +U32 f50(pedersenInstance*,U32,U32); + +U32 f51(pedersenInstance*,U32,U32); + +void f52(pedersenInstance*,U32,U32,U32); + +void f53(pedersenInstance*,U32,U32,U32); + +void f54(pedersenInstance*,U32,U32,U32); + +void f55(pedersenInstance*,U32,U32,U32); + +void f56(pedersenInstance*,U32,U32,U32); + +void f57(pedersenInstance*,U32,U32,U32); + +void f58(pedersenInstance*,U32,U32,U32); + +void f59(pedersenInstance*,U32,U32,U32); + +void f60(pedersenInstance*,U32,U32,U32); + +void f61(pedersenInstance*,U32,U32); + +void f62(pedersenInstance*,U32,U32,U32); + +void f63(pedersenInstance*,U32,U32,U32); + +U64 f64(pedersenInstance*,U64,U64); + +U64 f65(pedersenInstance*,U64,U64); + +U64 f66(pedersenInstance*,U32,U32); + +void f67(pedersenInstance*,U32,U32,U32); + +void f68(pedersenInstance*,U32,U32,U32); + +void f69(pedersenInstance*,U32); + +void f70(pedersenInstance*,U32,U32,U32); + +void f71(pedersenInstance*,U32,U32,U32); + +void f72(pedersenInstance*,U32,U32,U32); + +void f73(pedersenInstance*,U32,U32,U32); + +void f74(pedersenInstance*,U32,U32,U32); + +void f75(pedersenInstance*,U32,U32,U32); + +void f76(pedersenInstance*,U32,U32,U32); + +void f77(pedersenInstance*,U32,U32,U32); + +void f78(pedersenInstance*,U32,U32,U32); + +void f79(pedersenInstance*,U32,U32,U32); + +void f80(pedersenInstance*,U32,U32); + +void f81(pedersenInstance*,U32,U32); + +void f82(pedersenInstance*,U32,U32,U32); + +void f83(pedersenInstance*,U32,U32,U32); + +void f84(pedersenInstance*,U32,U32); + +U32 f85(pedersenInstance*,U32,U32); + +U32 f86(pedersenInstance*); + +U32 f87(pedersenInstance*); + +U32 f88(pedersenInstance*); + +U32 f89(pedersenInstance*); + +U32 f90(pedersenInstance*,U32); + +void f91(pedersenInstance*,U32,U32); + +U32 f92(pedersenInstance*,U32); + +void f93(pedersenInstance*,U32); + +U32 f94(pedersenInstance*,U64); + +U32 f95(pedersenInstance*,U32); + +void f96(pedersenInstance*,U32,U32,U32); + +U32 f97(pedersenInstance*,U32,U32); + +void f98(pedersenInstance*); + +U32 f99(pedersenInstance*); + +U32 f100(pedersenInstance*); + +U32 f101(pedersenInstance*); + +void f102(pedersenInstance*,U32); + +void f103(pedersenInstance*,U32); + +void f104(pedersenInstance*,U32); + +U32 f105(pedersenInstance*); + +void f106(pedersenInstance*,U32,U32); + +void f107(pedersenInstance*,U32); + +U32 f108(pedersenInstance*,U32); + +U32 f109(pedersenInstance*,U32); + +U32 f110(pedersenInstance*,U32); + +U32 f111(pedersenInstance*,U32); + +U32 f112(pedersenInstance*,U32); + +U32 f113(pedersenInstance*,U32); + +U32 f114(pedersenInstance*,U32); + +U32 f115(pedersenInstance*,U32); + +U32 f116(pedersenInstance*,U32); + +U32 f117(pedersenInstance*,U32); + +U32 f118(pedersenInstance*,U32); + +U32 f119(pedersenInstance*,U32); + +U32 f120(pedersenInstance*,U32); + +U32 f121(pedersenInstance*,U32); + +U32 f122(pedersenInstance*,U32); + +U32 f123(pedersenInstance*,U32); + +U32 f124(pedersenInstance*,U32); + +U32 f125(pedersenInstance*,U32); + +wasmMemory*pedersen_memory(pedersenInstance* i); + +U32 pedersen_getVersion(pedersenInstance*i); + +U32 pedersen_getMinorVersion(pedersenInstance*i); + +U32 pedersen_getPatchVersion(pedersenInstance*i); + +U32 pedersen_getSharedRWMemoryStart(pedersenInstance*i); + +U32 pedersen_readSharedRWMemory(pedersenInstance*i,U32 l0); + +void pedersen_writeSharedRWMemory(pedersenInstance*i,U32 l0,U32 l1); + +void pedersen_init(pedersenInstance*i,U32 l0); + +void pedersen_setInputSignal(pedersenInstance*i,U32 l0,U32 l1,U32 l2); + +U32 pedersen_getInputSignalSize(pedersenInstance*i,U32 l0,U32 l1); + +void pedersen_getRawPrime(pedersenInstance*i); + +U32 pedersen_getFieldNumLen32(pedersenInstance*i); + +U32 pedersen_getWitnessSize(pedersenInstance*i); + +U32 pedersen_getInputSize(pedersenInstance*i); + +void pedersen_getWitness(pedersenInstance*i,U32 l0); + +U32 pedersen_getMessageChar(pedersenInstance*i); + +void pedersenInstantiate(pedersenInstance* instance, void* resolve(const char* module, const char* name)); + +void pedersenFreeInstance(pedersenInstance* instance); + +#ifdef __cplusplus +} +#endif + +#endif /* pedersen_H */ + diff --git a/benchmarking-suite/moPro/mopro-example-app/test-vectors/circom/witnesscalc/multiplier2_wc.cpp b/benchmarking-suite/moPro/mopro-example-app/test-vectors/circom/witnesscalc/multiplier2_wc.cpp deleted file mode 100644 index a21d5507..00000000 --- a/benchmarking-suite/moPro/mopro-example-app/test-vectors/circom/witnesscalc/multiplier2_wc.cpp +++ /dev/null @@ -1,100 +0,0 @@ -#include -#include -#include -#include "circom.hpp" -#include "calcwit.hpp" -void Multiplier2_0_create(uint soffset,uint coffset,Circom_CalcWit* ctx,std::string componentName,uint componentFather); -void Multiplier2_0_run(uint ctx_index,Circom_CalcWit* ctx); -Circom_TemplateFunction _functionTable[1] = { -Multiplier2_0_run }; -Circom_TemplateFunction _functionTableParallel[1] = { -NULL }; -uint get_main_input_signal_start() {return 2;} - -uint get_main_input_signal_no() {return 2;} - -uint get_total_signal_no() {return 4;} - -uint get_number_of_components() {return 1;} - -uint get_size_of_input_hashmap() {return 256;} - -uint get_size_of_witness() {return 4;} - -uint get_size_of_constants() {return 0;} - -uint get_size_of_io_map() {return 0;} - -void release_memory_component(Circom_CalcWit* ctx, uint pos) {{ - -if (pos != 0){{ - -if(ctx->componentMemory[pos].subcomponents) -delete []ctx->componentMemory[pos].subcomponents; - -if(ctx->componentMemory[pos].subcomponentsParallel) -delete []ctx->componentMemory[pos].subcomponentsParallel; - -if(ctx->componentMemory[pos].outputIsSet) -delete []ctx->componentMemory[pos].outputIsSet; - -if(ctx->componentMemory[pos].mutexes) -delete []ctx->componentMemory[pos].mutexes; - -if(ctx->componentMemory[pos].cvs) -delete []ctx->componentMemory[pos].cvs; - -if(ctx->componentMemory[pos].sbct) -delete []ctx->componentMemory[pos].sbct; - -}} - - -}} - - -// function declarations -// template declarations -void Multiplier2_0_create(uint soffset,uint coffset,Circom_CalcWit* ctx,std::string componentName,uint componentFather){ -ctx->componentMemory[coffset].templateId = 0; -ctx->componentMemory[coffset].templateName = "Multiplier2"; -ctx->componentMemory[coffset].signalStart = soffset; -ctx->componentMemory[coffset].inputCounter = 2; -ctx->componentMemory[coffset].componentName = componentName; -ctx->componentMemory[coffset].idFather = componentFather; -ctx->componentMemory[coffset].subcomponents = new uint[0]; -} - -void Multiplier2_0_run(uint ctx_index,Circom_CalcWit* ctx){ -FrElement* signalValues = ctx->signalValues; -u64 mySignalStart = ctx->componentMemory[ctx_index].signalStart; -std::string myTemplateName = ctx->componentMemory[ctx_index].templateName; -std::string myComponentName = ctx->componentMemory[ctx_index].componentName; -u64 myFather = ctx->componentMemory[ctx_index].idFather; -u64 myId = ctx_index; -u32* mySubcomponents = ctx->componentMemory[ctx_index].subcomponents; -bool* mySubcomponentsParallel = ctx->componentMemory[ctx_index].subcomponentsParallel; -FrElement* circuitConstants = ctx->circuitConstants; -std::string* listOfTemplateMessages = ctx->listOfTemplateMessages; -FrElement expaux[3]; -FrElement lvar[0]; -uint sub_component_aux; -uint index_multiple_eq; -{ -PFrElement aux_dest = &signalValues[mySignalStart + 0]; -// load src -Fr_mul(&expaux[0],&signalValues[mySignalStart + 1],&signalValues[mySignalStart + 2]); // line circom 13 -// end load src -Fr_copy(aux_dest,&expaux[0]); -} -for (uint i = 0; i < 0; i++){ -uint index_subc = ctx->componentMemory[ctx_index].subcomponents[i]; -if (index_subc != 0)release_memory_component(ctx,index_subc); -} -} - -void run(Circom_CalcWit* ctx){ -Multiplier2_0_create(1,0,ctx,"main",0); -Multiplier2_0_run(0,ctx); -} - diff --git a/benchmarking-suite/moPro/mopro-example-app/test-vectors/circom/witnesscalc/multiplier2_wc.dat b/benchmarking-suite/moPro/mopro-example-app/test-vectors/circom/witnesscalc/multiplier2_wc.dat deleted file mode 100644 index c95f7b7c..00000000 Binary files a/benchmarking-suite/moPro/mopro-example-app/test-vectors/circom/witnesscalc/multiplier2_wc.dat and /dev/null differ diff --git a/benchmarking-suite/moPro/mopro-example-app/test-vectors/circom/witnesscalc/multiplier2_wc_final.zkey b/benchmarking-suite/moPro/mopro-example-app/test-vectors/circom/witnesscalc/multiplier2_wc_final.zkey deleted file mode 100644 index a1bc4d37..00000000 Binary files a/benchmarking-suite/moPro/mopro-example-app/test-vectors/circom/witnesscalc/multiplier2_wc_final.zkey and /dev/null differ diff --git a/benchmarking-suite/moPro/mopro-example-app/update_mopro_circom.sh b/benchmarking-suite/moPro/mopro-example-app/update_mopro_circom.sh new file mode 100755 index 00000000..6ec282cd --- /dev/null +++ b/benchmarking-suite/moPro/mopro-example-app/update_mopro_circom.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -e +FILE="flutter/mopro_flutter_plugin/ios/Classes/MoproCircom.swift" + +echo "Updating MoproCircom.swift..." + +# Common C Types (must match header) +sed -i '' 's/RustBuffer/CircomRustBuffer/g' "$FILE" +sed -i '' 's/ForeignBytes/CircomForeignBytes/g' "$FILE" +sed -i '' 's/RustCallStatus/CircomRustCallStatus/g' "$FILE" + +# Function prefixes (already namespaced by package name, but keeping safety check or mapping if needed) +# The generated code will have uniffi_deimos_circom_... +# We might want to rename ffi_deimos_circom? +# Imports +# Force the correct module import +sed -i '' 's/import deimos_circom[[:>:]]/import deimos_circomFFI/g' "$FILE" +# (No-op, just ensuring we don't break things if we change logic later) + +# Types +sed -i '' 's/MoproError/CircomMoproError/g' "$FILE" +sed -i '' 's/ProofLib/CircomProofLib/g' "$FILE" + +# Structs +# G1/G2 are common, so rename them. +sed -i '' 's/\bG1\b/CircomG1/g' "$FILE" +sed -i '' 's/\bG2\b/CircomG2/g' "$FILE" + +# CircomProof/Result are already specific, but to be 100% safe against "CircomProof" in Noir (unlikely), we leave them or just rename if needed. +# For now, LEAVE CircomProof/CircomProofResult as is to avoid CircomCircom... +# sed -i '' 's/\bCircomProofResult\b/CircomCircomProofResult/g' "$FILE" +# sed -i '' 's/\bCircomProof\b/CircomCircomProof/g' "$FILE" + +# Function Names (to avoid conflicts) +sed -i '' 's/func generateHalo2Proof/func generateHalo2Proof_Circom/g' "$FILE" +sed -i '' 's/func verifyHalo2Proof/func verifyHalo2Proof_Circom/g' "$FILE" +sed -i '' 's/func moproUniffiHelloWorld/func moproUniffiHelloWorld_Circom/g' "$FILE" +# Note: Keeping generateCircomProof as is, because it is the primary function for this module. + +# Init function +# Init function +sed -i '' 's/uniffiEnsureDeimosCircomInitialized/uniffiEnsureCircomInitialized/g' "$FILE" + +echo "Done." diff --git a/benchmarking-suite/moPro/mopro-example-app/update_mopro_noir.sh b/benchmarking-suite/moPro/mopro-example-app/update_mopro_noir.sh new file mode 100755 index 00000000..ec59261c --- /dev/null +++ b/benchmarking-suite/moPro/mopro-example-app/update_mopro_noir.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -e +FILE="flutter/mopro_flutter_plugin/ios/Classes/MoproNoir.swift" + +echo "Updating MoproNoir.swift..." + +# Common C Types (must match header) +sed -i '' 's/RustBuffer/NoirRustBuffer/g' "$FILE" +sed -i '' 's/ForeignBytes/NoirForeignBytes/g' "$FILE" +sed -i '' 's/RustCallStatus/NoirRustCallStatus/g' "$FILE" + +# Imports +# Force the correct module import +sed -i '' 's/import deimos_noir[[:>:]]/import deimos_noirFFI/g' "$FILE" + +# Types +sed -i '' 's/MoproError/NoirMoproError/g' "$FILE" +sed -i '' 's/ProofLib/NoirProofLib/g' "$FILE" + +# Structs +# Rename G1/G2 if they exist +sed -i '' 's/\bG1\b/NoirG1/g' "$FILE" +sed -i '' 's/\bG2\b/NoirG2/g' "$FILE" + +# Function Names (if any conflicts remain, but expecting separate functions) +# If generateCircomProof exists (unlikely), rename it. +sed -i '' 's/func generateCircomProof/func generateCircomProof_Noir/g' "$FILE" +sed -i '' 's/func verifyCircomProof/func verifyCircomProof_Noir/g' "$FILE" + +# Init function +sed -i '' 's/uniffiEnsureDeimosNoirInitialized/uniffiEnsureNoirInitialized/g' "$FILE" + +echo "Done." diff --git a/website/.npmrc b/website/.npmrc new file mode 100644 index 00000000..521a9f7c --- /dev/null +++ b/website/.npmrc @@ -0,0 +1 @@ +legacy-peer-deps=true diff --git a/website/src/app/benchmarks/page.tsx b/website/src/app/benchmarks/page.tsx index f5674370..764f0bae 100644 --- a/website/src/app/benchmarks/page.tsx +++ b/website/src/app/benchmarks/page.tsx @@ -11,14 +11,14 @@ export default function BenchmarksPage() { const [filterPlatform, setFilterPlatform] = useState('all'); const [currentPage, setCurrentPage] = useState(1); const [itemsPerPage, setItemsPerPage] = useState(10); - + const [benchmarkData, setBenchmarkData] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const [totalPages, setTotalPages] = useState(0); const [totalCount, setTotalCount] = useState(0); const [expandedRows, setExpandedRows] = useState>(new Set()); - + const [circuits, setCircuits] = useState(['all']); const [frameworks, setFrameworks] = useState(['all']); const [languages, setLanguages] = useState(['all']); @@ -49,7 +49,7 @@ export default function BenchmarksPage() { const fetchData = async () => { setLoading(true); setError(null); - + try { const params = new URLSearchParams({ circuit: filterCircuit, @@ -61,11 +61,11 @@ export default function BenchmarksPage() { }); const response = await fetch(`${API_URL}/api/benchmarks?${params}`); - + if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } - + const result = await response.json(); setBenchmarkData(result.data); setTotalPages(result.pagination.totalPages); @@ -151,10 +151,10 @@ export default function BenchmarksPage() { const day = date.getDate(); const month = date.toLocaleString('en-US', { month: 'long' }); const year = date.getFullYear(); - const time = date.toLocaleTimeString('en-US', { - hour: '2-digit', + const time = date.toLocaleTimeString('en-US', { + hour: '2-digit', minute: '2-digit', - hour12: true + hour12: true }); return `${day} ${month} ${year}, ${time}`; }; @@ -262,7 +262,7 @@ export default function BenchmarksPage() { return ( {/* Main Row */} - toggleRow(item.id || index.toString())} > @@ -278,9 +278,8 @@ export default function BenchmarksPage() { - + {item.deviceInfo?.platform || 'Unknown'} @@ -288,135 +287,135 @@ export default function BenchmarksPage() { {(item.provingTimeMiliSeconds / 1000).toFixed(2)} {(item.verificationTimeMiliSeconds / 1000).toFixed(2)} - + {/* Expanded Details Row */} {isExpanded && (
- {/* Device Info */} -
-

- - - - Device Information -

-
-
- Device: - {item.deviceInfo?.device || 'N/A'} -
- {item.deviceInfo?.manufacturer && ( -
- Manufacturer: - {item.deviceInfo.manufacturer} -
- )} - {item.deviceInfo?.androidVersion && ( -
- Android Version: - {item.deviceInfo.androidVersion} -
- )} - {item.deviceInfo?.androidId && ( -
- Android ID: - {item.deviceInfo.androidId} -
- )} -
- Proof Size: - {formatBytes(item.proofSize)} -
-
-
- - {/* Memory Info */} - {item.deviceInfo?.memory && ( -
-

- - - - Memory Usage -

-
-
- Total RAM: - {formatBytes(item.deviceInfo.memory.totalPhysicalMemory)} -
-
- Peak Usage: - {formatBytes(item.deviceInfo.memory.peakMemoryUsage)} -
-
- Consumed: - {formatBytes(item.deviceInfo.memory.memoryConsumedByProof)} -
-
- Peak Load: - {item.deviceInfo.memory.peakMemoryLoadInPercentage.toFixed(1)}% -
-
- Consumed %: - {item.deviceInfo.memory.memoryConsumedInPercentage.toFixed(1)}% -
-
-
- )} - - {/* Battery & Timing Info */} -
-

- - - - Performance Metrics -

-
-
- Proving Time: - {(item.provingTimeMiliSeconds / 1000).toFixed(3)}s -
-
- Verification Time: - {(item.verificationTimeMiliSeconds / 1000).toFixed(3)}s -
-
- Total Time: - {((item.provingTimeMiliSeconds + item.verificationTimeMiliSeconds) / 1000).toFixed(3)}s -
- {item.deviceInfo?.battery && ( - <> -
- Battery Before: - {item.deviceInfo.battery.batteryBeforeProof}% + {/* Device Info */} +
+

+ + + + Device Information +

+
+
+ Device: + {item.deviceInfo?.device || 'N/A'} +
+ {item.deviceInfo?.manufacturer && ( +
+ Manufacturer: + {item.deviceInfo.manufacturer} +
+ )} + {item.deviceInfo?.androidVersion && ( +
+ Android Version: + {item.deviceInfo.androidVersion} +
+ )} + {item.deviceInfo?.androidId && ( +
+ Android ID: + {item.deviceInfo.androidId} +
+ )} +
+ Proof Size: + {formatBytes(item.proofSize)} +
+
-
- Battery After: - {item.deviceInfo.battery.batteryAfterProof}% + + {/* Memory Info */} + {item.deviceInfo?.memory && ( +
+

+ + + + Memory Usage +

+
+
+ Total RAM: + {formatBytes(item.deviceInfo.memory.totalPhysicalMemory)} +
+
+ Peak Usage: + {formatBytes(item.deviceInfo.memory.peakMemoryUsage)} +
+
+ Consumed: + {formatBytes(item.deviceInfo.memory.memoryConsumedByProof)} +
+
+ Peak Load: + {item.deviceInfo.memory.peakMemoryLoadInPercentage.toFixed(1)}% +
+
+ Consumed %: + {item.deviceInfo.memory.memoryConsumedInPercentage.toFixed(1)}% +
+
+
+ )} + + {/* Battery & Timing Info */} +
+

+ + + + Performance Metrics +

+
+
+ Proving Time: + {(item.provingTimeMiliSeconds / 1000).toFixed(3)}s +
+
+ Verification Time: + {(item.verificationTimeMiliSeconds / 1000).toFixed(3)}s +
+
+ Total Time: + {((item.provingTimeMiliSeconds + item.verificationTimeMiliSeconds) / 1000).toFixed(3)}s +
+ {item.deviceInfo?.battery && ( + <> +
+ Battery Before: + {item.deviceInfo.battery.batteryBeforeProof}% +
+
+ Battery After: + {item.deviceInfo.battery.batteryAfterProof}% +
+
+ Consumed: + {item.deviceInfo.battery.batteryConsumed}% +
+ + )} +
-
- Consumed: - {item.deviceInfo.battery.batteryConsumed}% + + {/* Timestamp */} +
+
+
+ + + + Benchmark recorded on: {formatTimestamp(item.timestamp)} +
+
- - )} -
-
- - {/* Timestamp */} -
-
-
- - - - Benchmark recorded on: {formatTimestamp(item.timestamp)} -
-
-
@@ -432,85 +431,82 @@ export default function BenchmarksPage() {

No benchmark data matches the selected filters

) - } + }
{/* Pagination Controls */} {!loading && !error && totalCount > 0 && (
- {/* Items per page selector */} -
- Show - - per page -
+ {/* Items per page selector */} +
+ Show + + per page +
- {/* Page info */} -
- Showing {(currentPage - 1) * itemsPerPage + 1} to{' '} - {Math.min(currentPage * itemsPerPage, totalCount)} of{' '} - {totalCount} results -
+ {/* Page info */} +
+ Showing {(currentPage - 1) * itemsPerPage + 1} to{' '} + {Math.min(currentPage * itemsPerPage, totalCount)} of{' '} + {totalCount} results +
- {/* Page numbers */} -
- {/* Previous button */} - + }`} + > + Previous + - {/* Page numbers */} - {getPageNumbers().map((page, index) => ( - - ))} - - {/* Next button */} - + ))} + + {/* Next button */} + + }`} + > + Next + +
-
)} {/* Summary Stats */}