-
Notifications
You must be signed in to change notification settings - Fork 397
[PQ-Accounts] SHAKE hint and direct variants #1730
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 3 commits
3b9ee6a
bdd723e
96110a6
ceea8d6
b266b9e
53aa1ee
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -44,12 +44,25 @@ jobs: | |
| *.md | ||
| !PULL_REQUEST_TEMPLATE.md | ||
|
|
||
| - name: Verify generated Falcon NTT sources | ||
| run: | | ||
| python3 scripts/falcon_512/generate_ntt.py --write | ||
| git diff --exit-code -- packages/account/src/falcon_512/ntt | ||
|
|
||
| - name: Cairo lint | ||
| run: scarb fmt --check --workspace | ||
|
|
||
| - name: Run tests | ||
| run: snforge test --workspace --features fuzzing --fuzzer-runs 200 | ||
|
|
||
| - name: Run Falcon release-profile tests | ||
| run: | | ||
| snforge test -p openzeppelin_account --release --features falcon_fast_tests falcon_512 --max-n-steps 100000000 | ||
| snforge test -p openzeppelin_presets --release --features falcon_presets_tests falcon_512 --max-n-steps 100000000 | ||
|
|
||
| - name: Build release-profile presets | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Severity 3 — Medium: CI never compiles the presets to CASM, and the default profile silently produces an undeclarable class. With
A future regression lands with green CI, and headroom is ~24.8k felts. Suggested fix: enable CASM for the release target and assert bytecode size < 81,920 in CI; document that these presets are release-profile-only; consider recording them in |
||
| run: scarb --release build -p openzeppelin_presets | ||
|
|
||
| - name: Run tests and generate coverage report | ||
| run: snforge test --workspace --coverage | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | |
|
|
||
| ### Added | ||
|
|
||
| - `Falcon512AccountComponent`, SHAKE-256 hint and direct verifier strategies, | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Severity 3 — Medium: CHANGELOG omits most of the new public API. Missing, though all newly public: |
||
| `Falcon512ShakeAccountUpgradeable` and `Falcon512ShakeDirectAccountUpgradeable` presets with SRC9 | ||
| and class upgrades, and felt-array deployment and public-key interfaces for Falcon-512 accounts | ||
| (#1730) | ||
| - `SafeERC20DispatcherTrait` in `openzeppelin_token::erc20::utils` with `assert_transfer`, `assert_transfer_from`, `assert_increase_allowance`, and `assert_decrease_allowance` (#1683) | ||
|
|
||
| ### Changed (Breaking) | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Severity 2 — Low: CI runs the expensive Falcon suite redundantly.
The 65 dev-profile Falcon tests run twice (here and in the coverage run at line 67), several above 1e9 L2 gas, serial in one job — and the coverage run doesn't enable
falcon_presets_tests, so the Falcon presets (SRC9 routing,upgrade'sassert_only_self) report as entirely untested in Codecov anyway. Two further cost sinks:test_fast_ntt_matches_generic_reference_for_every_basis_vectoralone costs 7.65B gas (~76M steps) and is single-handedly why the 100M step cap is needed (the boundary/pseudorandom test already covers the interesting cases — sample every 16th basis vector or feature-gate it); and the#[cfg(test)]felt wrapper re-inlines the 31k-statement NTT body, making ~26.7% of the test program duplicate code and a 44 MB test artifact (have it callntt_falcon512_fast_u16_uncheckedand convert instead).