Skip to content

refactor: update benches to reflect the new metrics [skip-line-limit]#1527

Merged
0xjei merged 2 commits into
mainfrom
ref/benches
Apr 27, 2026
Merged

refactor: update benches to reflect the new metrics [skip-line-limit]#1527
0xjei merged 2 commits into
mainfrom
ref/benches

Conversation

@0xjei

@0xjei 0xjei commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

This PR updates the previous benchmark scripts for the circuits to record the new metrics. Note that the reports, both secure and insecure, have been regenerated following this metric.

Summary by CodeRabbit

  • Documentation

    • Updated benchmark procedures with detailed rerun instructions and new report section specifications.
  • New Features

    • Added gas verification metrics capture and reporting in benchmark results.
    • Introduced calldata cost analytics to benchmark output.
    • Redesigned reports with condensed "Protocol Summary" view including artifacts and role/phase/activity breakdown.

@0xjei 0xjei added this to the PHASE 3: PROD PARAMS milestone Apr 27, 2026
@0xjei 0xjei requested a review from cedoor April 27, 2026 12:50
@0xjei 0xjei self-assigned this Apr 27, 2026
@vercel

vercel Bot commented Apr 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
crisp Ready Ready Preview, Comment Apr 27, 2026 1:12pm
enclave-docs Ready Ready Preview, Comment Apr 27, 2026 1:12pm

Request Review

@coderabbitai

coderabbitai Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@0xjei has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 39 minutes and 13 seconds before requesting another review.

To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8fa51b5e-24f3-4ef3-8e93-998097b5d162

📥 Commits

Reviewing files that changed from the base of the PR and between 4a96563 and 60e9be4.

📒 Files selected for processing (3)
  • circuits/benchmarks/README.md
  • circuits/benchmarks/scripts/extract_crisp_verify_gas.sh
  • circuits/benchmarks/scripts/run_benchmarks.sh
📝 Walkthrough

Walkthrough

This PR introduces benchmark gas estimation and reporting infrastructure for circuit verification. It adds scripts to extract CRISP verifier gas metrics, computes calldata gas from proof artifacts, generates on-chain gas estimates via verifier contract simulation, and replaces detailed benchmark reports with a condensed protocol-oriented format showing circuit constraints, performance, gas, and role/phase analysis.

Changes

Cohort / File(s) Summary
Benchmark Documentation
circuits/benchmarks/README.md
Extended with detailed instructions for rerunning benchmarks, regenerating reports, and deriving metrics; documents new protocol-oriented report sections, deterministic circuit mapping rules, and gas data sources.
Gas Metric Collection
circuits/benchmarks/scripts/extract_crisp_verify_gas.sh, circuits/benchmarks/results_insecure/crisp_verify_gas.json, circuits/benchmarks/results_secure/crisp_verify_gas.json
New Bash script that orchestrates CRISP, folded-proof, and enclave benchmarking steps, extracts verify gas metrics, and outputs structured JSON; data files record verify_gas values for DKG/user/dec circuits with test exit codes.
Benchmark Report Scripts
circuits/benchmarks/scripts/benchmark_circuit.sh, circuits/benchmarks/scripts/generate_report.sh, circuits/benchmarks/scripts/run_benchmarks.sh
benchmark_circuit.sh adds calldata gas computation from proof/input hex; generate_report.sh replaces multi-section detailed reporting with fixed "Circuit Benchmarks," "Artifacts," and "Role / Phase / Activity" tables sourcing from optional gas JSON; run_benchmarks.sh integrates gas extraction and passes gas JSON to report generation.
Benchmark Reports
circuits/benchmarks/results_insecure/report.md, circuits/benchmarks/results_secure/report.md
Condensed "Protocol Summary" format replacing detailed DKG/Threshold/Config sections with unified constraint/performance tables, aggregated artifact-level gas metrics, and protocol role/phase/activity mapping; timestamps and metadata updated.
On-Chain Gas Benchmarking
packages/enclave-contracts/scripts/benchmarkGasFromRaw.ts
New TypeScript script that reads benchmark artifacts, deploys verifier contracts with linking, derives ABI-encoded proof payloads, estimates on-chain gas for DKG and decryption verification, and writes results to JSON.
Test Integration
crates/tests/tests/integration.rs, examples/CRISP/.../crisp.contracts.test.ts, packages/enclave-contracts/tasks/enclave.ts
integration.rs adds conditional dumping of folded proof benchmarks on BENCHMARK_FOLDED_OUTPUT env var; CRISP test adds gas estimation call; enclave.ts minor formatting improvements.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • gnosisguild/enclave#1512: Modifies circuit benchmarking/reporting surface by adding/splitting user_data_encryption circuits and updating report generation to handle split circuits and aggregated artifacts.
  • gnosisguild/enclave#1295: Adds verifier contract generation and deployment tooling alongside ZKTranscriptLib exports—directly related to gas estimation contract deployment and invocation surfaces introduced here.
  • gnosisguild/enclave#1520: Updates secure benchmark report metrics; shares modified report file surface with this PR's condensed "Protocol Summary" format.

Suggested labels

documentation, chore

Suggested reviewers

  • cedoor
  • hmzakhalid

Poem

🐰 Hop through gas clouds, measure the proof—
Verify costs with contract-based truth!
Scripts extract metrics, reports condense,
Protocol summaries make perfect sense.
Benchmarks now bloom with on-chain defense! 📊✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 17.65% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: updating benchmark scripts and reports to reflect new metrics, which aligns with all file modifications across documentation, scripts, and generated reports.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ref/benches

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (6)
crates/tests/tests/integration.rs (1)

1338-1377: Optional: simplify hex/JSON construction in the benchmark dump.

The block is correct and only runs when BENCHMARK_FOLDED_OUTPUT is set. The local to_hex helper allocates per byte via format!; using hex::encode (available in workspace) and serde_json::json! would reduce this to a few lines and avoid hand-rolled JSON construction. This requires adding hex and serde_json as workspace dependencies to crates/tests/Cargo.toml, which is a minor overhead given both are widely used elsewhere in the codebase.

♻️ Sketch
-            fn to_hex(bytes: &[u8]) -> String {
-                let mut out = String::from("0x");
-                for b in bytes {
-                    out.push_str(&format!("{:02x}", b));
-                }
-                out
-            }
-            let json = format!(
-                concat!(
-                    "{{\n",
-                    "  \"dkg_aggregator\": {{\n",
-                    ...
-                ),
-                to_hex(&dkg_proof.data),
-                ...
-            );
+            let to_hex = |b: &[u8]| format!("0x{}", hex::encode(b));
+            let json = serde_json::json!({
+                "dkg_aggregator": {
+                    "proof_hex": to_hex(&dkg_proof.data),
+                    "public_inputs_hex": to_hex(&dkg_proof.public_signals),
+                },
+                "decryption_aggregator": {
+                    "proof_hex": to_hex(&dec_proof.data),
+                    "public_inputs_hex": to_hex(&dec_proof.public_signals),
+                },
+            }).to_string();
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@crates/tests/tests/integration.rs` around lines 1338 - 1377, The benchmark
dump builds hex strings with a local to_hex and hand-rolled JSON; replace that
with hex::encode for byte->hex and serde_json::json! to build the JSON object
and then write serde_json::to_string_pretty(...) to path (preserve the same
fields: dkg_aggregator (dkg_aggregator_proof.data/public_signals) and
decryption_aggregator
(decryption_aggregator_proofs.first().data/public_signals)), updating the code
that currently references to_hex, the BENCHMARK_FOLDED_OUTPUT branch, fs::write
and the dkg_aggregator_proof / decryption_aggregator_proofs variables; also add
hex and serde_json to crates/tests/Cargo.toml workspace dependencies.
packages/enclave-contracts/scripts/benchmarkGasFromRaw.ts (2)

35-52: Document the implicit "8 little-endian bytes per coefficient" contract.

plaintextHashFromPublicInputs assumes:

  • the last 100 public inputs are message coefficients,
  • each coefficient fits in 8 bytes,
  • they should be packed little-endian before hashing.

These three assumptions must match the on-chain verifier's plaintextHash derivation exactly; any divergence produces a hash mismatch and estimateGas reverts. A short comment referencing the source spec (and ideally a constant for messageCoeffsCount/bytesPerCoeff) would prevent silent breakage if the message layout changes.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/enclave-contracts/scripts/benchmarkGasFromRaw.ts` around lines 35 -
52, plaintextHashFromPublicInputs currently embeds three implicit assumptions
(last 100 inputs are message coefficients, each coefficient is 8 bytes, and
coefficients are packed little-endian) which must exactly match the on-chain
verifier; update the function by extracting messageCoeffsCount and bytesPerCoeff
into named constants, add a concise comment referencing the verifier/spec that
defines the packing/layout, and validate/guard against inputs that violate coeff
size or layout so any divergence is obvious (use the constants inside
plaintextHashFromPublicInputs to compute offset, buffer size, and byte shifts).

10-18: findRawJson returns the first readdirSync match in OS-dependent order.

fs.readdirSync does not guarantee any particular ordering across platforms/filesystems, so when multiple files in rawDir happen to contain the same fragment (e.g. share_encryption matching variants), you may pick a different artifact between runs and ship inconsistent gas numbers in the report.

Sort the entries before iterating, or assert that exactly one file matches.

♻️ Proposed fix
 function findRawJson(rawDir: string, fragment: string): any {
-  const entries = fs.readdirSync(rawDir).filter((f) => f.endsWith(".json"));
-  for (const f of entries) {
-    if (!f.includes(fragment)) continue;
-    const full = path.join(rawDir, f);
-    return JSON.parse(fs.readFileSync(full, "utf8"));
-  }
-  throw new Error(`Missing raw benchmark JSON for fragment: ${fragment}`);
+  const entries = fs
+    .readdirSync(rawDir)
+    .filter((f) => f.endsWith(".json") && f.includes(fragment))
+    .sort();
+  if (entries.length === 0) {
+    throw new Error(`Missing raw benchmark JSON for fragment: ${fragment}`);
+  }
+  return JSON.parse(fs.readFileSync(path.join(rawDir, entries[0]), "utf8"));
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/enclave-contracts/scripts/benchmarkGasFromRaw.ts` around lines 10 -
18, findRawJson currently returns the first filesystem entry in OS-dependent
order which can yield inconsistent results when multiple JSON filenames contain
the same fragment; update findRawJson to deterministically select the file by
first filtering entries to those that include fragment, then sort that filtered
list (or assert its length is 1) before picking the file to read and JSON.parse
it; reference the function findRawJson and variables entries/rawDir/fragment
when making the change so the selection is deterministic (e.g., sort the
filtered filenames lexically or throw if multiple matches).
circuits/benchmarks/scripts/extract_crisp_verify_gas.sh (2)

49-51: OUTPUT_DIR resolution fails opaquely if --output's parent directory doesn't exist.

cd "$(dirname "$OUTPUT_JSON")" && pwd aborts under set -e with a confusing cd: No such file or directory if the user passes a path whose parent (e.g. results_secure/) hasn't been created yet. A defensive mkdir -p plus a clearer error makes onboarding and CI failures easier to debug.

♻️ Proposed fix
 ENCLAVE_CONTRACTS_DIR="${REPO_ROOT}/packages/enclave-contracts"
-OUTPUT_DIR="$(cd "$(dirname "$OUTPUT_JSON")" && pwd)"
+OUTPUT_PARENT="$(dirname "$OUTPUT_JSON")"
+mkdir -p "$OUTPUT_PARENT"
+OUTPUT_DIR="$(cd "$OUTPUT_PARENT" && pwd)"
 RAW_DIR="${OUTPUT_DIR}/raw"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@circuits/benchmarks/scripts/extract_crisp_verify_gas.sh` around lines 49 -
51, The script currently sets OUTPUT_DIR with OUTPUT_DIR="$(cd "$(dirname
"$OUTPUT_JSON")" && pwd)" which fails with a cryptic "cd: No such file or
directory" when the parent directory of --output (OUTPUT_JSON) does not exist;
update the logic around OUTPUT_DIR/RAW_DIR to defensively create the parent
directory (use mkdir -p on the dirname of OUTPUT_JSON before resolving
OUTPUT_DIR) and then resolve OUTPUT_DIR, and when mkdir or cd fails emit a clear
error mentioning OUTPUT_JSON so failures are easier to debug; ensure changes
target the OUTPUT_DIR/RAW_DIR initialization in this script.

60-77: Three test stages run unconditionally even after upstream failure.

The folded-export step depends on artifacts built in the previous compilation, and the enclave-contracts step (line 71) reads BENCHMARK_FOLDED_JSON="$TMP_JSON_FOLDED" produced by the folded step. If the folded step fails, the third stage will hit the findRawJson/folded-fallback branch in benchmarkGasFromRaw.ts and likely throw — which is recorded as just another non-zero exit code in the JSON. Consider short-circuiting (or at least surfacing in the JSON note) when an upstream stage fails, so consumers don't treat the resulting null gas values as legitimate measurements.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@circuits/benchmarks/scripts/extract_crisp_verify_gas.sh` around lines 60 -
77, The script currently runs three stages unconditionally which lets downstream
stages run with missing artifacts; after each stage run (check the exit codes
CRISP_TEST_EXIT_CODE and FOLDED_TEST_EXIT_CODE) short-circuit on failure by
either exiting immediately with a non-zero status or by creating a minimal JSON
result that includes a clear "note" field and avoids invoking the next stage;
specifically, update extract_crisp_verify_gas.sh to if CRISP_TEST_EXIT_CODE != 0
then write a folded/enclave JSON with a note and exit, and if
FOLDED_TEST_EXIT_CODE != 0 then avoid calling the pnpm hardhat run that invokes
benchmarkGasFromRaw.ts (which reads BENCHMARK_FOLDED_JSON="$TMP_JSON_FOLDED"),
instead emit the appropriate TMP_JSON_ENCLAVE with a diagnostic note and set
ENCLAVE_TEST_EXIT_CODE non-zero (or exit), so consumers don’t treat null/invalid
gas values as valid.
circuits/benchmarks/scripts/generate_report.sh (1)

242-242: Replace ls with find to handle non-alphanumeric names safely (SC2012).

Parsing ls output is fragile when filenames contain unusual characters. Use find (or a nullglob glob) so the first JSON is selected reliably and predictably.

♻️ Proposed fix
-first_json=$(ls "$INPUT_DIR"/*.json 2>/dev/null | head -1)
+first_json=$(find "$INPUT_DIR" -maxdepth 1 -type f -name '*.json' -print 2>/dev/null | sort | head -n 1)
 if [ -n "$first_json" ]; then
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@circuits/benchmarks/scripts/generate_report.sh` at line 242, The current use
of ls to populate first_json is fragile for filenames with special characters;
update the logic that sets the first_json variable (using INPUT_DIR) to use find
instead of ls: run find on INPUT_DIR limited to the top-level (maxdepth 1) for
files matching *.json and stop after the first match, ensuring you handle
special characters safely (use a null-safe output like -print0 and read with a
null delimiter or -print -quit depending on your shell) and preserve the
existing behavior when no JSON exists.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@circuits/benchmarks/README.md`:
- Around line 52-53: The README's row list uses `user-data-enc` but the report
generator (`generate_report.sh`) emits `user_data_encryption`; update the README
entry in the "Circuit Benchmarks" row list to `user_data_encryption` so it
matches the identifier emitted by generate_report.sh (or alternatively change
the three occurrences in generate_report.sh from `user_data_encryption` to
`user-data-enc` if you prefer the README version).

In `@circuits/benchmarks/results_secure/report.md`:
- Around line 5-6: The secure report
(circuits/benchmarks/results_secure/report.md) was regenerated on branch name
`fix/configs-circuit` (commit `eca330d9a…`) while the insecure report shows `Git
Branch: main`; to align provenance, regenerate the secure report on the merge
target (either regenerate both reports on `main` after merging or regenerate the
secure report on the merge branch that matches the insecure report) so the `Git
Branch:` and commit fields in report.md match across secure and insecure
reports; update the file header to reflect the correct branch/commit if you
regenerate.

In `@circuits/benchmarks/scripts/extract_crisp_verify_gas.sh`:
- Around line 32-47: The script creates temporary files TMP_LOG_CRISP,
TMP_LOG_FOLDED, TMP_LOG_ENCLAVE, TMP_JSON_ENCLAVE, and TMP_JSON_FOLDED with
mktemp but only removes them later, causing leaks on early exits; add a cleanup
function (e.g., cleanup_tmp_files) that removes those five temp files and
register it with trap to run on EXIT (and optionally on ERR), then replace the
existing manual removals with a call to that cleanup or rely on the trap so any
early-return paths (including the CRISP_CONTRACTS_DIR not found branch and
failures during pnpm build:circuits) always remove the temp files. Ensure the
trap is set immediately after the mktemp lines and references the same TMP_*
variable names used in the script.

In `@circuits/benchmarks/scripts/run_benchmarks.sh`:
- Around line 216-222: The current run_benchmarks.sh flow can leave a stale
"${GAS_JSON_FILE}" from a prior successful run and then silently reuse it when
extract_crisp_verify_gas.sh fails; before invoking extract_crisp_verify_gas.sh
(or alternately write to a temp file and atomically mv on success), remove or
unlink the existing GAS_JSON_FILE so a failed extraction cannot leak old data;
update the block around GAS_JSON_FILE and the extract_crisp_verify_gas.sh call
(or adjust the post-extract move) to ensure generate_report.sh only sees a gas
JSON if the current extraction succeeded (refer to GAS_JSON_FILE,
extract_crisp_verify_gas.sh, generate_report.sh and the verify_gas_for_artifact
check).

---

Nitpick comments:
In `@circuits/benchmarks/scripts/extract_crisp_verify_gas.sh`:
- Around line 49-51: The script currently sets OUTPUT_DIR with OUTPUT_DIR="$(cd
"$(dirname "$OUTPUT_JSON")" && pwd)" which fails with a cryptic "cd: No such
file or directory" when the parent directory of --output (OUTPUT_JSON) does not
exist; update the logic around OUTPUT_DIR/RAW_DIR to defensively create the
parent directory (use mkdir -p on the dirname of OUTPUT_JSON before resolving
OUTPUT_DIR) and then resolve OUTPUT_DIR, and when mkdir or cd fails emit a clear
error mentioning OUTPUT_JSON so failures are easier to debug; ensure changes
target the OUTPUT_DIR/RAW_DIR initialization in this script.
- Around line 60-77: The script currently runs three stages unconditionally
which lets downstream stages run with missing artifacts; after each stage run
(check the exit codes CRISP_TEST_EXIT_CODE and FOLDED_TEST_EXIT_CODE)
short-circuit on failure by either exiting immediately with a non-zero status or
by creating a minimal JSON result that includes a clear "note" field and avoids
invoking the next stage; specifically, update extract_crisp_verify_gas.sh to if
CRISP_TEST_EXIT_CODE != 0 then write a folded/enclave JSON with a note and exit,
and if FOLDED_TEST_EXIT_CODE != 0 then avoid calling the pnpm hardhat run that
invokes benchmarkGasFromRaw.ts (which reads
BENCHMARK_FOLDED_JSON="$TMP_JSON_FOLDED"), instead emit the appropriate
TMP_JSON_ENCLAVE with a diagnostic note and set ENCLAVE_TEST_EXIT_CODE non-zero
(or exit), so consumers don’t treat null/invalid gas values as valid.

In `@circuits/benchmarks/scripts/generate_report.sh`:
- Line 242: The current use of ls to populate first_json is fragile for
filenames with special characters; update the logic that sets the first_json
variable (using INPUT_DIR) to use find instead of ls: run find on INPUT_DIR
limited to the top-level (maxdepth 1) for files matching *.json and stop after
the first match, ensuring you handle special characters safely (use a null-safe
output like -print0 and read with a null delimiter or -print -quit depending on
your shell) and preserve the existing behavior when no JSON exists.

In `@crates/tests/tests/integration.rs`:
- Around line 1338-1377: The benchmark dump builds hex strings with a local
to_hex and hand-rolled JSON; replace that with hex::encode for byte->hex and
serde_json::json! to build the JSON object and then write
serde_json::to_string_pretty(...) to path (preserve the same fields:
dkg_aggregator (dkg_aggregator_proof.data/public_signals) and
decryption_aggregator
(decryption_aggregator_proofs.first().data/public_signals)), updating the code
that currently references to_hex, the BENCHMARK_FOLDED_OUTPUT branch, fs::write
and the dkg_aggregator_proof / decryption_aggregator_proofs variables; also add
hex and serde_json to crates/tests/Cargo.toml workspace dependencies.

In `@packages/enclave-contracts/scripts/benchmarkGasFromRaw.ts`:
- Around line 35-52: plaintextHashFromPublicInputs currently embeds three
implicit assumptions (last 100 inputs are message coefficients, each coefficient
is 8 bytes, and coefficients are packed little-endian) which must exactly match
the on-chain verifier; update the function by extracting messageCoeffsCount and
bytesPerCoeff into named constants, add a concise comment referencing the
verifier/spec that defines the packing/layout, and validate/guard against inputs
that violate coeff size or layout so any divergence is obvious (use the
constants inside plaintextHashFromPublicInputs to compute offset, buffer size,
and byte shifts).
- Around line 10-18: findRawJson currently returns the first filesystem entry in
OS-dependent order which can yield inconsistent results when multiple JSON
filenames contain the same fragment; update findRawJson to deterministically
select the file by first filtering entries to those that include fragment, then
sort that filtered list (or assert its length is 1) before picking the file to
read and JSON.parse it; reference the function findRawJson and variables
entries/rawDir/fragment when making the change so the selection is deterministic
(e.g., sort the filtered filenames lexically or throw if multiple matches).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8162c52c-5086-4cb8-830b-fde1e985f344

📥 Commits

Reviewing files that changed from the base of the PR and between 5a574e3 and 4a96563.

📒 Files selected for processing (13)
  • circuits/benchmarks/README.md
  • circuits/benchmarks/results_insecure/crisp_verify_gas.json
  • circuits/benchmarks/results_insecure/report.md
  • circuits/benchmarks/results_secure/crisp_verify_gas.json
  • circuits/benchmarks/results_secure/report.md
  • circuits/benchmarks/scripts/benchmark_circuit.sh
  • circuits/benchmarks/scripts/extract_crisp_verify_gas.sh
  • circuits/benchmarks/scripts/generate_report.sh
  • circuits/benchmarks/scripts/run_benchmarks.sh
  • crates/tests/tests/integration.rs
  • examples/CRISP/packages/crisp-contracts/tests/crisp.contracts.test.ts
  • packages/enclave-contracts/scripts/benchmarkGasFromRaw.ts
  • packages/enclave-contracts/tasks/enclave.ts

Comment thread circuits/benchmarks/README.md Outdated
Comment thread circuits/benchmarks/results_secure/report.md
Comment thread circuits/benchmarks/scripts/extract_crisp_verify_gas.sh
Comment thread circuits/benchmarks/scripts/run_benchmarks.sh

@cedoor cedoor left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants