Skip to content
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

feat: Packable trait + using it for public storage #11136

Merged
merged 16 commits into from
Jan 22, 2025

Conversation

benesjan
Copy link
Contributor

@benesjan benesjan commented Jan 9, 2025

Fixes #11285
Fixes #7728

Notes for reviewer

  • Created an issue for implementation of #[derive(Packable)] macro. Didn't include that in this PR to keep the scope smaller.
  • This does not yet pack note content (resulting in a large DA cost for the UintNote). This will be done in a follow-up PR. Issue here.
  • Didn't run CI on latest commit as it's just migration notes and the ci-rest task in the previous commit didn't pass because of unrelated flake.

@benesjan benesjan force-pushed the 01-09-feat_packable_trait branch 4 times, most recently from 2c8f7e1 to 67fafc2 Compare January 17, 2025 22:10
@benesjan benesjan changed the base branch from master to 01-10-refactor_using_u128_in_contract_function_args January 17, 2025 22:10
@benesjan benesjan marked this pull request as ready for review January 18, 2025 00:06
@olehmisar
Copy link
Contributor

Would this require users to implement Serialize, Deserialize and Packable traits for custom structs that will be used as function parameters and can be stored in the storage?

Does it make sense to add this blanket implementation, so users are not forced to impl Packable if the storage size is irrelevant or is not more efficient than Serialize?

impl<let N: u32> Packable<N> for T 
where 
    T: Serialize<N> + Deserialize<N> 
{
    fn pack(self) -> [Field; N] {
        self.serialize()
    }

    fn unpack(packed: [Field; N]) -> Self {
        Self::deserialize(packed)
    }
}

@benesjan benesjan marked this pull request as draft January 19, 2025 22:00
@benesjan benesjan marked this pull request as ready for review January 19, 2025 23:04
@benesjan
Copy link
Contributor Author

benesjan commented Jan 19, 2025

Would this require users to implement Serialize, Deserialize and Packable traits for custom structs that will be used as function parameters and can be stored in the storage?

@olehmisar Yes, it would.

Does it make sense to add this blanket implementation, so users are not forced to impl Packable if the storage size is irrelevant or is not more efficient than Serialize?

Great idea. I think I will add it in a follow-up PR or alternatively I will implement an alternative to #[derive(Serialize, Deserialize)] macro.

@fcarreiro fcarreiro removed their request for review January 20, 2025 11:13
@benesjan benesjan force-pushed the 01-10-refactor_using_u128_in_contract_function_args branch from 0084dea to c745b1e Compare January 20, 2025 15:34
@benesjan benesjan force-pushed the 01-09-feat_packable_trait branch from 9d33138 to b0360ed Compare January 20, 2025 15:35
Copy link
Contributor

github-actions bot commented Jan 20, 2025

Changes to public function bytecode sizes

Generated at commit: 2fb989bf495b7e6accfd64a1d0d2e61eebbcdce3, compared to commit: 01510f45aa5d385a08584df674d9caf9522e6be2

🧾 Summary (100% most significant diffs)

Program Bytecode size in bytes (+/-) %
Token::total_supply +76 ❌ +28.68%
TokenBlacklist::total_supply +51 ❌ +17.35%
TokenBlacklist::_reduce_total_supply +78 ❌ +16.96%
Token::_reduce_total_supply +55 ❌ +14.32%
Spam::public_spam +160 ❌ +7.87%
Spam::public_dispatch +160 ❌ +5.69%
PriceFeed::get_price +84 ❌ +5.28%
FeeJuice::balance_of_public +72 ❌ +4.49%
FeeJuice::check_balance +82 ❌ +4.35%
Token::balance_of_public +72 ❌ +4.34%
PriceFeed::public_dispatch +91 ❌ +3.50%
TokenBlacklist::balance_of_public +55 ❌ +3.28%
TokenBlacklist::_increase_public_balance +68 ❌ +3.10%
FeeJuice::_increase_public_balance +50 ❌ +2.69%
Lending::_deposit +55 ❌ +2.25%
TokenBlacklist::mint_private +78 ❌ +2.16%
Token::_increase_public_balance +45 ❌ +2.12%
Token::burn_public +86 ❌ +2.04%
Token::mint_to_public +36 ❌ +1.62%
Token::transfer_in_public +65 ❌ +1.51%
Token::complete_refund +83 ❌ +1.46%
TokenBlacklist::shield +73 ❌ +1.31%
PriceFeed::set_price +20 ❌ +1.30%
Token::finalize_mint_to_private +55 ❌ +1.14%
Token::_finalize_mint_to_private_unsafe +55 ❌ +1.13%
Token::finalize_transfer_to_private +50 ❌ +0.96%
Token::_finalize_transfer_to_private_unsafe +50 ❌ +0.95%
AppSubscription::constructor +16 ❌ +0.53%
Lending::_repay +24 ❌ +0.45%
NFT::public_dispatch +96 ❌ +0.42%
Lending::public_dispatch +44 ❌ +0.17%
Token::public_dispatch +44 ❌ +0.14%
Uniswap::public_dispatch +27 ❌ +0.11%
TokenBlacklist::public_dispatch +14 ❌ +0.06%
TokenBlacklist::mint_public -5 ✅ -0.14%
FeeJuice::public_dispatch -8 ✅ -0.17%
AvmTest::public_dispatch -196 ✅ -0.32%
Lending::_withdraw -102 ✅ -1.20%
Lending::_borrow -102 ✅ -1.22%
Lending::get_position -64 ✅ -1.48%
Benchmarking::public_dispatch -90 ✅ -2.55%
AppSubscription::public_dispatch -135 ✅ -3.21%
AuthRegistry::public_dispatch -264 ✅ -3.71%

Full diff report 👇
Program Bytecode size in bytes (+/-) %
Token::total_supply 341 (+76) +28.68%
TokenBlacklist::total_supply 345 (+51) +17.35%
TokenBlacklist::_reduce_total_supply 538 (+78) +16.96%
Token::_reduce_total_supply 439 (+55) +14.32%
Spam::public_spam 2,193 (+160) +7.87%
Spam::public_dispatch 2,974 (+160) +5.69%
PriceFeed::get_price 1,676 (+84) +5.28%
FeeJuice::balance_of_public 1,676 (+72) +4.49%
FeeJuice::check_balance 1,965 (+82) +4.35%
Token::balance_of_public 1,730 (+72) +4.34%
PriceFeed::public_dispatch 2,688 (+91) +3.50%
TokenBlacklist::balance_of_public 1,734 (+55) +3.28%
TokenBlacklist::_increase_public_balance 2,265 (+68) +3.10%
FeeJuice::_increase_public_balance 1,907 (+50) +2.69%
Lending::_deposit 2,495 (+55) +2.25%
TokenBlacklist::mint_private 3,682 (+78) +2.16%
Token::_increase_public_balance 2,166 (+45) +2.12%
Token::burn_public 4,299 (+86) +2.04%
Token::mint_to_public 2,263 (+36) +1.62%
Token::transfer_in_public 4,374 (+65) +1.51%
Token::complete_refund 5,771 (+83) +1.46%
TokenBlacklist::shield 5,642 (+73) +1.31%
PriceFeed::set_price 1,559 (+20) +1.30%
Token::finalize_mint_to_private 4,895 (+55) +1.14%
Token::_finalize_mint_to_private_unsafe 4,942 (+55) +1.13%
Token::finalize_transfer_to_private 5,247 (+50) +0.96%
Token::_finalize_transfer_to_private_unsafe 5,294 (+50) +0.95%
AppSubscription::constructor 3,023 (+16) +0.53%
Lending::_repay 5,378 (+24) +0.45%
NFT::public_dispatch 22,732 (+96) +0.42%
Lending::public_dispatch 25,980 (+44) +0.17%
Token::public_dispatch 31,145 (+44) +0.14%
Uniswap::public_dispatch 24,954 (+27) +0.11%
TokenBlacklist::public_dispatch 23,507 (+14) +0.06%
TokenBlacklist::mint_public 3,529 (-5) -0.14%
FeeJuice::public_dispatch 4,577 (-8) -0.17%
AvmTest::public_dispatch 61,944 (-196) -0.32%
Lending::_withdraw 8,420 (-102) -1.20%
Lending::_borrow 8,254 (-102) -1.22%
Lending::get_position 4,253 (-64) -1.48%
Benchmarking::public_dispatch 3,444 (-90) -2.55%
AppSubscription::public_dispatch 4,065 (-135) -3.21%
AuthRegistry::public_dispatch 6,843 (-264) -3.71%

@benesjan benesjan added the e2e-all CI: Enables this CI job. label Jan 20, 2025
@benesjan benesjan requested review from nventuro and sklppy88 and removed request for dbanks12 January 20, 2025 19:09
@benesjan benesjan force-pushed the 01-09-feat_packable_trait branch from 2d64573 to df3dba9 Compare January 20, 2025 19:10
@benesjan benesjan changed the title feat: Packable trait feat: Packable trait + using it for public storage Jan 21, 2025
Copy link
Contributor

@sklppy88 sklppy88 left a comment

Choose a reason for hiding this comment

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

The lack of continuity between Packable and Serialize / Deserialize (vs Serializable) hurts my head a bit.

Otherwise it looks great, thanks for the in-depth comments on when to use Packable vs Serialize / Deserialize.

@benesjan benesjan marked this pull request as draft January 21, 2025 14:42
@benesjan benesjan force-pushed the 01-10-refactor_using_u128_in_contract_function_args branch from c745b1e to 8ea6152 Compare January 21, 2025 14:56
@benesjan benesjan marked this pull request as ready for review January 21, 2025 21:38
@benesjan benesjan requested a review from nventuro January 21, 2025 22:23
Copy link
Contributor

@nventuro nventuro left a comment

Choose a reason for hiding this comment

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

Lovely thanks!

@benesjan benesjan removed the e2e-all CI: Enables this CI job. label Jan 22, 2025
@benesjan benesjan force-pushed the 01-09-feat_packable_trait branch from a5abd16 to 6dfa110 Compare January 22, 2025 14:50
@benesjan benesjan enabled auto-merge (squash) January 22, 2025 14:51
@AztecBot
Copy link
Collaborator

AztecBot commented Jan 22, 2025

Docs Preview

Hey there! 👋 You can check your preview at https://679161f444f0091ef098bc20--aztec-docs-dev.netlify.app

@benesjan benesjan merged commit e74ce15 into master Jan 22, 2025
53 checks passed
@benesjan benesjan deleted the 01-09-feat_packable_trait branch January 22, 2025 21:52
just-mitch pushed a commit that referenced this pull request Jan 24, 2025
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.72.0</summary>

##
[0.72.0](aztec-package-v0.71.0...aztec-package-v0.72.0)
(2025-01-24)


### Features

* Gaztec
([#11229](#11229))
([79f810d](79f810d))
* Lazy wasm pt. 2
([#11410](#11410))
([01510f4](01510f4))
* Lazy wasm pt3
([#11435](#11435))
([7068d05](7068d05))


### Bug Fixes

* Init fee juice contract in sandbox
([#11379](#11379))
([caab526](caab526))
* Use simulation to estimate gas used
([#11211](#11211))
([63776f0](63776f0))


### Miscellaneous

* Trace propagation from json rpc client to server
([#11325](#11325))
([85ccc15](85ccc15))
</details>

<details><summary>barretenberg.js: 0.72.0</summary>

##
[0.72.0](barretenberg.js-v0.71.0...barretenberg.js-v0.72.0)
(2025-01-24)


### Features

* Gaztec
([#11229](#11229))
([79f810d](79f810d))
* Lazy wasm pt.1
([#11371](#11371))
([864bc6f](864bc6f))
* Lazy wasm pt3
([#11435](#11435))
([7068d05](7068d05))
* UH recursion in the browser
([#11049](#11049))
([c3c04a4](c3c04a4))


### Bug Fixes

* Lint
([#11389](#11389))
([87b0dee](87b0dee))
</details>

<details><summary>aztec-packages: 0.72.0</summary>

##
[0.72.0](aztec-packages-v0.71.0...aztec-packages-v0.72.0)
(2025-01-24)


### ⚠ BREAKING CHANGES

* **aztec.js:** remove field from aztec address like
([#11350](#11350))
* public logs
([#11091](#11091))

### Features

* **avm:** Address and class id derivation setup
([#11354](#11354))
([5f3cffc](5f3cffc))
* **avm:** Bytecode manager changes
([#11347](#11347))
([4a9c072](4a9c072))
* **avm:** Include initial tree roots in DB
([#11360](#11360))
([4d149be](4d149be))
* **avm:** Interactive debugger
([#11477](#11477))
([53e57d3](53e57d3))
* Consensus layer in spartan
([#11105](#11105))
([55dd03c](55dd03c))
* Eccvm sumcheck with commitments to round univariates
([#11206](#11206))
([fe34b05](fe34b05))
* Gaztec
([#11229](#11229))
([79f810d](79f810d))
* Lazy wasm pt. 2
([#11410](#11410))
([01510f4](01510f4))
* Lazy wasm pt.1
([#11371](#11371))
([864bc6f](864bc6f))
* Lazy wasm pt3
([#11435](#11435))
([7068d05](7068d05))
* **p2p:** Batch request response
([#11331](#11331))
([13b379d](13b379d))
* **p2p:** Request response node sampling
([#11330](#11330))
([6426d90](6426d90))
* **p2p:** Send goodbye messages on disconnecting to peers
([#10920](#10920))
([046968f](046968f))
* **p2p:** Validator use batch requests
([#11332](#11332))
([29f7ce4](29f7ce4))
* Packable trait + using it for public storage
([#11136](#11136))
([e74ce15](e74ce15))
* Public logs
([#11091](#11091))
([f4725d2](f4725d2))
* Re-exposing `compute_initialization_hash`
([#11423](#11423))
([1ad2b70](1ad2b70))
* **reqresp:** Request l2 blocks
([#11337](#11337))
([73a6698](73a6698))
* **spartan:** Extra acounts with cl config
([#11301](#11301))
([13fed74](13fed74))
* UH recursion in the browser
([#11049](#11049))
([c3c04a4](c3c04a4))


### Bug Fixes

* **aztec.js:** Remove field from aztec address like
([#11350](#11350))
([26093f7](26093f7))
* **bootstrap:** Include crates in noir projects hashes
([#11344](#11344))
([1075113](1075113))
* **bootstrap:** Include crates in noir projects hashes take 2
([#11351](#11351))
([1f36a04](1f36a04))
* Clarify sepolia GA secrets
([#11424](#11424))
([cf3c911](cf3c911))
* **docs:** Downgrade docusaurus to v 3.6
([#11386](#11386))
([1e5d225](1e5d225))
* Don't publish a block if we failed to create the block proposal
([#11475](#11475))
([f589c90](f589c90))
* Flakey e2e_pruned_blocks test
([#11431](#11431))
([887b8ff](887b8ff))
* Hackily fix the public input columns of avm recursion constraint
([#11428](#11428))
([436c3c6](436c3c6))
* Hardcode value in constants
([#11442](#11442))
([dd0684a](dd0684a))
* Init fee juice contract in sandbox
([#11379](#11379))
([caab526](caab526))
* Lint
([#11389](#11389))
([87b0dee](87b0dee))
* Mnemonic needs quotes
([#11429](#11429))
([de8dad4](de8dad4))
* Move eslint in circuits.js to dev deps
([#11340](#11340))
([079a2c4](079a2c4))
* Network deployments
([#11463](#11463))
([0804913](0804913))
* Pad base fee in aztec.js
([#11370](#11370))
([d0e9a55](d0e9a55))
* Prevent PXE from making historical queries during note discovery
([#11406](#11406))
([23000d4](23000d4))
* Publish aztec packages
([#11434](#11434))
([d9bfd51](d9bfd51))
* Re-stage the git hook formatted files - doh
([#11430](#11430))
([02e6529](02e6529))
* **readme:** Remove stale link
([#11333](#11333))
([bfcd8a5](bfcd8a5))
* Spartan accounts
([#11321](#11321))
([fa9c9ce](fa9c9ce))
* **spartan:** Beacon node networking policy
([#11484](#11484))
([d5b9892](d5b9892))
* Stale selector comments
([#11311](#11311))
([629bd64](629bd64))
* Txe partial note support
([#11414](#11414))
([cd9cad9](cd9cad9))
* Update devbox
([#11339](#11339))
([aca84ff](aca84ff))
* Use simulation to estimate gas used
([#11211](#11211))
([63776f0](63776f0))
* Verify start state of a block
([#11290](#11290))
([5eb3e8f](5eb3e8f))
* Version undefined does not exist for tree NULLIFIER_TREE
([#11421](#11421))
([b1cb502](b1cb502))


### Miscellaneous

* Add a couple of comments in the AVM range check gadget
([#11402](#11402))
([f1fd2d1](f1fd2d1))
* Add OTEL_EXCLUDE_METRICS
([#11317](#11317))
([37d4fa8](37d4fa8))
* **avm:** Do not use commit_sparse
([#11447](#11447))
([9796e1e](9796e1e))
* **avm:** Remove some codegen bloat
([#11418](#11418))
([6b0106c](6b0106c))
* **bootstrap:** Refine noir contracts rebuild pattern
([#11367](#11367))
([90f5e8f](90f5e8f))
* Bump CRS and constants
([#11306](#11306))
([9e5ea3a](9e5ea3a))
* **ci:** Set correct image version in aztec image docker releases
([#11334](#11334))
([197db95](197db95))
* Dont install and run metrics stack on kind network smoke
([#11366](#11366))
([f66db63](f66db63))
* Exclude system metrics from k8s deployments
([#11401](#11401))
([31be5fb](31be5fb))
* Exp 2 with 128 validators
([#11483](#11483))
([206ca8d](206ca8d))
* Fix devnet deploy
([#11387](#11387))
([71d8ede](71d8ede))
* Fixed VK in MegaZK/ECCVM/Translator/Tube Recursive Verifier circuits
([#11377](#11377))
([5018c94](5018c94))
* Improving clarity of serialization in macros
([#11460](#11460))
([7790973](7790973))
* Increase initial fee juice mint
([#11369](#11369))
([bca7052](bca7052))
* Minor Gemini refactor to prep for opening k-shifts
([#11393](#11393))
([30a063a](30a063a))
* More granular error handling for toradixBE
([#11378](#11378))
([64f4052](64f4052)),
closes
[#11295](#11295)
* Nargo fmt pre-commit hook
([#11416](#11416))
([6f2e2e0](6f2e2e0))
* Nuking redundant oracle
([#11368](#11368))
([b32d9a1](b32d9a1))
* **p2p:** Disable flakey test
([#11380](#11380))
([94012b5](94012b5))
* **p2p:** Reorganise reqresp handlers
([#11327](#11327))
([f048acd](f048acd))
* Point to monorepo's nargo in vscode workspace settings
([#11349](#11349))
([bb96e7c](bb96e7c))
* Print warning in builder when failure happens.
([#11205](#11205))
([5a52e95](5a52e95))
* Public network with sepolia
([#11488](#11488))
([80f5a46](80f5a46))
* Rc-2 release on Sepolia
([#11479](#11479))
([bef7b0f](bef7b0f))
* Redo typo PR by Daulox92
([#11458](#11458))
([f3ba327](f3ba327))
* Redo typo PR by Dimitrolito
([#11413](#11413))
([d4b7075](d4b7075))
* Redo typo PR by nnsW3
([#11322](#11322))
([de64823](de64823))
* Redo typo PR by offensif
([#11411](#11411))
([a756578](a756578))
* Redo typo PR by savvar9991
([#11412](#11412))
([53ea3af](53ea3af))
* Redo typo PR by teenager-ETH
([#11320](#11320))
([77854e2](77854e2))
* Redo typo PR by teenager-ETH
([#11450](#11450))
([dd46152](dd46152))
* Reenable reqresp offline peers test
([#11384](#11384))
([931dfa6](931dfa6))
* Renaming emit unencrypted -&gt; emit public
([#11361](#11361))
([c047a12](c047a12))
* Replace relative paths to noir-protocol-circuits
([6f644cd](6f644cd))
* Replace relative paths to noir-protocol-circuits
([fe24778](fe24778))
* Replace relative paths to noir-protocol-circuits
([fcdb409](fcdb409))
* Replace relative paths to noir-protocol-circuits
([ea43aed](ea43aed))
* Replace relative paths to noir-protocol-circuits
([7653c69](7653c69))
* Replace relative paths to noir-protocol-circuits
([204476e](204476e))
* Serialize trait impls for U128 following intrinsic Noir serialization
([#11142](#11142))
([c5671d2](c5671d2))
* Slower exp2
([#11487](#11487))
([e995c0f](e995c0f))
* **sol:** Generate & compile verifier contract in bootstrap
([#11364](#11364))
([bf3b12a](bf3b12a))
* **spartan:** Apply release fixes post cl
([#11385](#11385))
([2bbf562](2bbf562))
* Stricter contributing rules
([#11462](#11462))
([2535425](2535425))
* Temporarily disable boxes
([#11472](#11472))
([f6c63fe](f6c63fe))
* Test starting multiple anvils allocates distinct ports
([#11314](#11314))
([e385ea9](e385ea9))
* Trace propagation from json rpc client to server
([#11325](#11325))
([85ccc15](85ccc15))
* Try fix e2e block building flake
([#11359](#11359))
([38fbd5c](38fbd5c))
* Try fix flakey public processor test
([#11348](#11348))
([8de55d4](8de55d4))
* Updated ethereum resource config
([#11485](#11485))
([8788561](8788561))
</details>

<details><summary>barretenberg: 0.72.0</summary>

##
[0.72.0](barretenberg-v0.71.0...barretenberg-v0.72.0)
(2025-01-24)


### ⚠ BREAKING CHANGES

* public logs
([#11091](#11091))

### Features

* **avm:** Address and class id derivation setup
([#11354](#11354))
([5f3cffc](5f3cffc))
* **avm:** Bytecode manager changes
([#11347](#11347))
([4a9c072](4a9c072))
* **avm:** Include initial tree roots in DB
([#11360](#11360))
([4d149be](4d149be))
* **avm:** Interactive debugger
([#11477](#11477))
([53e57d3](53e57d3))
* Eccvm sumcheck with commitments to round univariates
([#11206](#11206))
([fe34b05](fe34b05))
* Lazy wasm pt. 2
([#11410](#11410))
([01510f4](01510f4))
* Public logs
([#11091](#11091))
([f4725d2](f4725d2))
* UH recursion in the browser
([#11049](#11049))
([c3c04a4](c3c04a4))


### Bug Fixes

* Hackily fix the public input columns of avm recursion constraint
([#11428](#11428))
([436c3c6](436c3c6))
* Verify start state of a block
([#11290](#11290))
([5eb3e8f](5eb3e8f))


### Miscellaneous

* Add a couple of comments in the AVM range check gadget
([#11402](#11402))
([f1fd2d1](f1fd2d1))
* **avm:** Do not use commit_sparse
([#11447](#11447))
([9796e1e](9796e1e))
* **avm:** Remove some codegen bloat
([#11418](#11418))
([6b0106c](6b0106c))
* Bump CRS and constants
([#11306](#11306))
([9e5ea3a](9e5ea3a))
* Fixed VK in MegaZK/ECCVM/Translator/Tube Recursive Verifier circuits
([#11377](#11377))
([5018c94](5018c94))
* Minor Gemini refactor to prep for opening k-shifts
([#11393](#11393))
([30a063a](30a063a))
* More granular error handling for toradixBE
([#11378](#11378))
([64f4052](64f4052)),
closes
[#11295](#11295)
* Print warning in builder when failure happens.
([#11205](#11205))
([5a52e95](5a52e95))
* Redo typo PR by Daulox92
([#11458](#11458))
([f3ba327](f3ba327))
* Redo typo PR by teenager-ETH
([#11320](#11320))
([77854e2](77854e2))
* **sol:** Generate & compile verifier contract in bootstrap
([#11364](#11364))
([bf3b12a](bf3b12a))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
AztecBot added a commit to AztecProtocol/barretenberg that referenced this pull request Jan 25, 2025
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.72.0</summary>

##
[0.72.0](AztecProtocol/aztec-packages@aztec-package-v0.71.0...aztec-package-v0.72.0)
(2025-01-24)


### Features

* Gaztec
([#11229](AztecProtocol/aztec-packages#11229))
([79f810d](AztecProtocol/aztec-packages@79f810d))
* Lazy wasm pt. 2
([#11410](AztecProtocol/aztec-packages#11410))
([01510f4](AztecProtocol/aztec-packages@01510f4))
* Lazy wasm pt3
([#11435](AztecProtocol/aztec-packages#11435))
([7068d05](AztecProtocol/aztec-packages@7068d05))


### Bug Fixes

* Init fee juice contract in sandbox
([#11379](AztecProtocol/aztec-packages#11379))
([caab526](AztecProtocol/aztec-packages@caab526))
* Use simulation to estimate gas used
([#11211](AztecProtocol/aztec-packages#11211))
([63776f0](AztecProtocol/aztec-packages@63776f0))


### Miscellaneous

* Trace propagation from json rpc client to server
([#11325](AztecProtocol/aztec-packages#11325))
([85ccc15](AztecProtocol/aztec-packages@85ccc15))
</details>

<details><summary>barretenberg.js: 0.72.0</summary>

##
[0.72.0](AztecProtocol/aztec-packages@barretenberg.js-v0.71.0...barretenberg.js-v0.72.0)
(2025-01-24)


### Features

* Gaztec
([#11229](AztecProtocol/aztec-packages#11229))
([79f810d](AztecProtocol/aztec-packages@79f810d))
* Lazy wasm pt.1
([#11371](AztecProtocol/aztec-packages#11371))
([864bc6f](AztecProtocol/aztec-packages@864bc6f))
* Lazy wasm pt3
([#11435](AztecProtocol/aztec-packages#11435))
([7068d05](AztecProtocol/aztec-packages@7068d05))
* UH recursion in the browser
([#11049](AztecProtocol/aztec-packages#11049))
([c3c04a4](AztecProtocol/aztec-packages@c3c04a4))


### Bug Fixes

* Lint
([#11389](AztecProtocol/aztec-packages#11389))
([87b0dee](AztecProtocol/aztec-packages@87b0dee))
</details>

<details><summary>aztec-packages: 0.72.0</summary>

##
[0.72.0](AztecProtocol/aztec-packages@aztec-packages-v0.71.0...aztec-packages-v0.72.0)
(2025-01-24)


### ⚠ BREAKING CHANGES

* **aztec.js:** remove field from aztec address like
([#11350](AztecProtocol/aztec-packages#11350))
* public logs
([#11091](AztecProtocol/aztec-packages#11091))

### Features

* **avm:** Address and class id derivation setup
([#11354](AztecProtocol/aztec-packages#11354))
([5f3cffc](AztecProtocol/aztec-packages@5f3cffc))
* **avm:** Bytecode manager changes
([#11347](AztecProtocol/aztec-packages#11347))
([4a9c072](AztecProtocol/aztec-packages@4a9c072))
* **avm:** Include initial tree roots in DB
([#11360](AztecProtocol/aztec-packages#11360))
([4d149be](AztecProtocol/aztec-packages@4d149be))
* **avm:** Interactive debugger
([#11477](AztecProtocol/aztec-packages#11477))
([53e57d3](AztecProtocol/aztec-packages@53e57d3))
* Consensus layer in spartan
([#11105](AztecProtocol/aztec-packages#11105))
([55dd03c](AztecProtocol/aztec-packages@55dd03c))
* Eccvm sumcheck with commitments to round univariates
([#11206](AztecProtocol/aztec-packages#11206))
([fe34b05](AztecProtocol/aztec-packages@fe34b05))
* Gaztec
([#11229](AztecProtocol/aztec-packages#11229))
([79f810d](AztecProtocol/aztec-packages@79f810d))
* Lazy wasm pt. 2
([#11410](AztecProtocol/aztec-packages#11410))
([01510f4](AztecProtocol/aztec-packages@01510f4))
* Lazy wasm pt.1
([#11371](AztecProtocol/aztec-packages#11371))
([864bc6f](AztecProtocol/aztec-packages@864bc6f))
* Lazy wasm pt3
([#11435](AztecProtocol/aztec-packages#11435))
([7068d05](AztecProtocol/aztec-packages@7068d05))
* **p2p:** Batch request response
([#11331](AztecProtocol/aztec-packages#11331))
([13b379d](AztecProtocol/aztec-packages@13b379d))
* **p2p:** Request response node sampling
([#11330](AztecProtocol/aztec-packages#11330))
([6426d90](AztecProtocol/aztec-packages@6426d90))
* **p2p:** Send goodbye messages on disconnecting to peers
([#10920](AztecProtocol/aztec-packages#10920))
([046968f](AztecProtocol/aztec-packages@046968f))
* **p2p:** Validator use batch requests
([#11332](AztecProtocol/aztec-packages#11332))
([29f7ce4](AztecProtocol/aztec-packages@29f7ce4))
* Packable trait + using it for public storage
([#11136](AztecProtocol/aztec-packages#11136))
([e74ce15](AztecProtocol/aztec-packages@e74ce15))
* Public logs
([#11091](AztecProtocol/aztec-packages#11091))
([f4725d2](AztecProtocol/aztec-packages@f4725d2))
* Re-exposing `compute_initialization_hash`
([#11423](AztecProtocol/aztec-packages#11423))
([1ad2b70](AztecProtocol/aztec-packages@1ad2b70))
* **reqresp:** Request l2 blocks
([#11337](AztecProtocol/aztec-packages#11337))
([73a6698](AztecProtocol/aztec-packages@73a6698))
* **spartan:** Extra acounts with cl config
([#11301](AztecProtocol/aztec-packages#11301))
([13fed74](AztecProtocol/aztec-packages@13fed74))
* UH recursion in the browser
([#11049](AztecProtocol/aztec-packages#11049))
([c3c04a4](AztecProtocol/aztec-packages@c3c04a4))


### Bug Fixes

* **aztec.js:** Remove field from aztec address like
([#11350](AztecProtocol/aztec-packages#11350))
([26093f7](AztecProtocol/aztec-packages@26093f7))
* **bootstrap:** Include crates in noir projects hashes
([#11344](AztecProtocol/aztec-packages#11344))
([1075113](AztecProtocol/aztec-packages@1075113))
* **bootstrap:** Include crates in noir projects hashes take 2
([#11351](AztecProtocol/aztec-packages#11351))
([1f36a04](AztecProtocol/aztec-packages@1f36a04))
* Clarify sepolia GA secrets
([#11424](AztecProtocol/aztec-packages#11424))
([cf3c911](AztecProtocol/aztec-packages@cf3c911))
* **docs:** Downgrade docusaurus to v 3.6
([#11386](AztecProtocol/aztec-packages#11386))
([1e5d225](AztecProtocol/aztec-packages@1e5d225))
* Don't publish a block if we failed to create the block proposal
([#11475](AztecProtocol/aztec-packages#11475))
([f589c90](AztecProtocol/aztec-packages@f589c90))
* Flakey e2e_pruned_blocks test
([#11431](AztecProtocol/aztec-packages#11431))
([887b8ff](AztecProtocol/aztec-packages@887b8ff))
* Hackily fix the public input columns of avm recursion constraint
([#11428](AztecProtocol/aztec-packages#11428))
([436c3c6](AztecProtocol/aztec-packages@436c3c6))
* Hardcode value in constants
([#11442](AztecProtocol/aztec-packages#11442))
([dd0684a](AztecProtocol/aztec-packages@dd0684a))
* Init fee juice contract in sandbox
([#11379](AztecProtocol/aztec-packages#11379))
([caab526](AztecProtocol/aztec-packages@caab526))
* Lint
([#11389](AztecProtocol/aztec-packages#11389))
([87b0dee](AztecProtocol/aztec-packages@87b0dee))
* Mnemonic needs quotes
([#11429](AztecProtocol/aztec-packages#11429))
([de8dad4](AztecProtocol/aztec-packages@de8dad4))
* Move eslint in circuits.js to dev deps
([#11340](AztecProtocol/aztec-packages#11340))
([079a2c4](AztecProtocol/aztec-packages@079a2c4))
* Network deployments
([#11463](AztecProtocol/aztec-packages#11463))
([0804913](AztecProtocol/aztec-packages@0804913))
* Pad base fee in aztec.js
([#11370](AztecProtocol/aztec-packages#11370))
([d0e9a55](AztecProtocol/aztec-packages@d0e9a55))
* Prevent PXE from making historical queries during note discovery
([#11406](AztecProtocol/aztec-packages#11406))
([23000d4](AztecProtocol/aztec-packages@23000d4))
* Publish aztec packages
([#11434](AztecProtocol/aztec-packages#11434))
([d9bfd51](AztecProtocol/aztec-packages@d9bfd51))
* Re-stage the git hook formatted files - doh
([#11430](AztecProtocol/aztec-packages#11430))
([02e6529](AztecProtocol/aztec-packages@02e6529))
* **readme:** Remove stale link
([#11333](AztecProtocol/aztec-packages#11333))
([bfcd8a5](AztecProtocol/aztec-packages@bfcd8a5))
* Spartan accounts
([#11321](AztecProtocol/aztec-packages#11321))
([fa9c9ce](AztecProtocol/aztec-packages@fa9c9ce))
* **spartan:** Beacon node networking policy
([#11484](AztecProtocol/aztec-packages#11484))
([d5b9892](AztecProtocol/aztec-packages@d5b9892))
* Stale selector comments
([#11311](AztecProtocol/aztec-packages#11311))
([629bd64](AztecProtocol/aztec-packages@629bd64))
* Txe partial note support
([#11414](AztecProtocol/aztec-packages#11414))
([cd9cad9](AztecProtocol/aztec-packages@cd9cad9))
* Update devbox
([#11339](AztecProtocol/aztec-packages#11339))
([aca84ff](AztecProtocol/aztec-packages@aca84ff))
* Use simulation to estimate gas used
([#11211](AztecProtocol/aztec-packages#11211))
([63776f0](AztecProtocol/aztec-packages@63776f0))
* Verify start state of a block
([#11290](AztecProtocol/aztec-packages#11290))
([5eb3e8f](AztecProtocol/aztec-packages@5eb3e8f))
* Version undefined does not exist for tree NULLIFIER_TREE
([#11421](AztecProtocol/aztec-packages#11421))
([b1cb502](AztecProtocol/aztec-packages@b1cb502))


### Miscellaneous

* Add a couple of comments in the AVM range check gadget
([#11402](AztecProtocol/aztec-packages#11402))
([f1fd2d1](AztecProtocol/aztec-packages@f1fd2d1))
* Add OTEL_EXCLUDE_METRICS
([#11317](AztecProtocol/aztec-packages#11317))
([37d4fa8](AztecProtocol/aztec-packages@37d4fa8))
* **avm:** Do not use commit_sparse
([#11447](AztecProtocol/aztec-packages#11447))
([9796e1e](AztecProtocol/aztec-packages@9796e1e))
* **avm:** Remove some codegen bloat
([#11418](AztecProtocol/aztec-packages#11418))
([6b0106c](AztecProtocol/aztec-packages@6b0106c))
* **bootstrap:** Refine noir contracts rebuild pattern
([#11367](AztecProtocol/aztec-packages#11367))
([90f5e8f](AztecProtocol/aztec-packages@90f5e8f))
* Bump CRS and constants
([#11306](AztecProtocol/aztec-packages#11306))
([9e5ea3a](AztecProtocol/aztec-packages@9e5ea3a))
* **ci:** Set correct image version in aztec image docker releases
([#11334](AztecProtocol/aztec-packages#11334))
([197db95](AztecProtocol/aztec-packages@197db95))
* Dont install and run metrics stack on kind network smoke
([#11366](AztecProtocol/aztec-packages#11366))
([f66db63](AztecProtocol/aztec-packages@f66db63))
* Exclude system metrics from k8s deployments
([#11401](AztecProtocol/aztec-packages#11401))
([31be5fb](AztecProtocol/aztec-packages@31be5fb))
* Exp 2 with 128 validators
([#11483](AztecProtocol/aztec-packages#11483))
([206ca8d](AztecProtocol/aztec-packages@206ca8d))
* Fix devnet deploy
([#11387](AztecProtocol/aztec-packages#11387))
([71d8ede](AztecProtocol/aztec-packages@71d8ede))
* Fixed VK in MegaZK/ECCVM/Translator/Tube Recursive Verifier circuits
([#11377](AztecProtocol/aztec-packages#11377))
([5018c94](AztecProtocol/aztec-packages@5018c94))
* Improving clarity of serialization in macros
([#11460](AztecProtocol/aztec-packages#11460))
([7790973](AztecProtocol/aztec-packages@7790973))
* Increase initial fee juice mint
([#11369](AztecProtocol/aztec-packages#11369))
([bca7052](AztecProtocol/aztec-packages@bca7052))
* Minor Gemini refactor to prep for opening k-shifts
([#11393](AztecProtocol/aztec-packages#11393))
([30a063a](AztecProtocol/aztec-packages@30a063a))
* More granular error handling for toradixBE
([#11378](AztecProtocol/aztec-packages#11378))
([64f4052](AztecProtocol/aztec-packages@64f4052)),
closes
[#11295](AztecProtocol/aztec-packages#11295)
* Nargo fmt pre-commit hook
([#11416](AztecProtocol/aztec-packages#11416))
([6f2e2e0](AztecProtocol/aztec-packages@6f2e2e0))
* Nuking redundant oracle
([#11368](AztecProtocol/aztec-packages#11368))
([b32d9a1](AztecProtocol/aztec-packages@b32d9a1))
* **p2p:** Disable flakey test
([#11380](AztecProtocol/aztec-packages#11380))
([94012b5](AztecProtocol/aztec-packages@94012b5))
* **p2p:** Reorganise reqresp handlers
([#11327](AztecProtocol/aztec-packages#11327))
([f048acd](AztecProtocol/aztec-packages@f048acd))
* Point to monorepo's nargo in vscode workspace settings
([#11349](AztecProtocol/aztec-packages#11349))
([bb96e7c](AztecProtocol/aztec-packages@bb96e7c))
* Print warning in builder when failure happens.
([#11205](AztecProtocol/aztec-packages#11205))
([5a52e95](AztecProtocol/aztec-packages@5a52e95))
* Public network with sepolia
([#11488](AztecProtocol/aztec-packages#11488))
([80f5a46](AztecProtocol/aztec-packages@80f5a46))
* Rc-2 release on Sepolia
([#11479](AztecProtocol/aztec-packages#11479))
([bef7b0f](AztecProtocol/aztec-packages@bef7b0f))
* Redo typo PR by Daulox92
([#11458](AztecProtocol/aztec-packages#11458))
([f3ba327](AztecProtocol/aztec-packages@f3ba327))
* Redo typo PR by Dimitrolito
([#11413](AztecProtocol/aztec-packages#11413))
([d4b7075](AztecProtocol/aztec-packages@d4b7075))
* Redo typo PR by nnsW3
([#11322](AztecProtocol/aztec-packages#11322))
([de64823](AztecProtocol/aztec-packages@de64823))
* Redo typo PR by offensif
([#11411](AztecProtocol/aztec-packages#11411))
([a756578](AztecProtocol/aztec-packages@a756578))
* Redo typo PR by savvar9991
([#11412](AztecProtocol/aztec-packages#11412))
([53ea3af](AztecProtocol/aztec-packages@53ea3af))
* Redo typo PR by teenager-ETH
([#11320](AztecProtocol/aztec-packages#11320))
([77854e2](AztecProtocol/aztec-packages@77854e2))
* Redo typo PR by teenager-ETH
([#11450](AztecProtocol/aztec-packages#11450))
([dd46152](AztecProtocol/aztec-packages@dd46152))
* Reenable reqresp offline peers test
([#11384](AztecProtocol/aztec-packages#11384))
([931dfa6](AztecProtocol/aztec-packages@931dfa6))
* Renaming emit unencrypted -&gt; emit public
([#11361](AztecProtocol/aztec-packages#11361))
([c047a12](AztecProtocol/aztec-packages@c047a12))
* Replace relative paths to noir-protocol-circuits
([6f644cd](AztecProtocol/aztec-packages@6f644cd))
* Replace relative paths to noir-protocol-circuits
([fe24778](AztecProtocol/aztec-packages@fe24778))
* Replace relative paths to noir-protocol-circuits
([fcdb409](AztecProtocol/aztec-packages@fcdb409))
* Replace relative paths to noir-protocol-circuits
([ea43aed](AztecProtocol/aztec-packages@ea43aed))
* Replace relative paths to noir-protocol-circuits
([7653c69](AztecProtocol/aztec-packages@7653c69))
* Replace relative paths to noir-protocol-circuits
([204476e](AztecProtocol/aztec-packages@204476e))
* Serialize trait impls for U128 following intrinsic Noir serialization
([#11142](AztecProtocol/aztec-packages#11142))
([c5671d2](AztecProtocol/aztec-packages@c5671d2))
* Slower exp2
([#11487](AztecProtocol/aztec-packages#11487))
([e995c0f](AztecProtocol/aztec-packages@e995c0f))
* **sol:** Generate & compile verifier contract in bootstrap
([#11364](AztecProtocol/aztec-packages#11364))
([bf3b12a](AztecProtocol/aztec-packages@bf3b12a))
* **spartan:** Apply release fixes post cl
([#11385](AztecProtocol/aztec-packages#11385))
([2bbf562](AztecProtocol/aztec-packages@2bbf562))
* Stricter contributing rules
([#11462](AztecProtocol/aztec-packages#11462))
([2535425](AztecProtocol/aztec-packages@2535425))
* Temporarily disable boxes
([#11472](AztecProtocol/aztec-packages#11472))
([f6c63fe](AztecProtocol/aztec-packages@f6c63fe))
* Test starting multiple anvils allocates distinct ports
([#11314](AztecProtocol/aztec-packages#11314))
([e385ea9](AztecProtocol/aztec-packages@e385ea9))
* Trace propagation from json rpc client to server
([#11325](AztecProtocol/aztec-packages#11325))
([85ccc15](AztecProtocol/aztec-packages@85ccc15))
* Try fix e2e block building flake
([#11359](AztecProtocol/aztec-packages#11359))
([38fbd5c](AztecProtocol/aztec-packages@38fbd5c))
* Try fix flakey public processor test
([#11348](AztecProtocol/aztec-packages#11348))
([8de55d4](AztecProtocol/aztec-packages@8de55d4))
* Updated ethereum resource config
([#11485](AztecProtocol/aztec-packages#11485))
([8788561](AztecProtocol/aztec-packages@8788561))
</details>

<details><summary>barretenberg: 0.72.0</summary>

##
[0.72.0](AztecProtocol/aztec-packages@barretenberg-v0.71.0...barretenberg-v0.72.0)
(2025-01-24)


### ⚠ BREAKING CHANGES

* public logs
([#11091](AztecProtocol/aztec-packages#11091))

### Features

* **avm:** Address and class id derivation setup
([#11354](AztecProtocol/aztec-packages#11354))
([5f3cffc](AztecProtocol/aztec-packages@5f3cffc))
* **avm:** Bytecode manager changes
([#11347](AztecProtocol/aztec-packages#11347))
([4a9c072](AztecProtocol/aztec-packages@4a9c072))
* **avm:** Include initial tree roots in DB
([#11360](AztecProtocol/aztec-packages#11360))
([4d149be](AztecProtocol/aztec-packages@4d149be))
* **avm:** Interactive debugger
([#11477](AztecProtocol/aztec-packages#11477))
([53e57d3](AztecProtocol/aztec-packages@53e57d3))
* Eccvm sumcheck with commitments to round univariates
([#11206](AztecProtocol/aztec-packages#11206))
([fe34b05](AztecProtocol/aztec-packages@fe34b05))
* Lazy wasm pt. 2
([#11410](AztecProtocol/aztec-packages#11410))
([01510f4](AztecProtocol/aztec-packages@01510f4))
* Public logs
([#11091](AztecProtocol/aztec-packages#11091))
([f4725d2](AztecProtocol/aztec-packages@f4725d2))
* UH recursion in the browser
([#11049](AztecProtocol/aztec-packages#11049))
([c3c04a4](AztecProtocol/aztec-packages@c3c04a4))


### Bug Fixes

* Hackily fix the public input columns of avm recursion constraint
([#11428](AztecProtocol/aztec-packages#11428))
([436c3c6](AztecProtocol/aztec-packages@436c3c6))
* Verify start state of a block
([#11290](AztecProtocol/aztec-packages#11290))
([5eb3e8f](AztecProtocol/aztec-packages@5eb3e8f))


### Miscellaneous

* Add a couple of comments in the AVM range check gadget
([#11402](AztecProtocol/aztec-packages#11402))
([f1fd2d1](AztecProtocol/aztec-packages@f1fd2d1))
* **avm:** Do not use commit_sparse
([#11447](AztecProtocol/aztec-packages#11447))
([9796e1e](AztecProtocol/aztec-packages@9796e1e))
* **avm:** Remove some codegen bloat
([#11418](AztecProtocol/aztec-packages#11418))
([6b0106c](AztecProtocol/aztec-packages@6b0106c))
* Bump CRS and constants
([#11306](AztecProtocol/aztec-packages#11306))
([9e5ea3a](AztecProtocol/aztec-packages@9e5ea3a))
* Fixed VK in MegaZK/ECCVM/Translator/Tube Recursive Verifier circuits
([#11377](AztecProtocol/aztec-packages#11377))
([5018c94](AztecProtocol/aztec-packages@5018c94))
* Minor Gemini refactor to prep for opening k-shifts
([#11393](AztecProtocol/aztec-packages#11393))
([30a063a](AztecProtocol/aztec-packages@30a063a))
* More granular error handling for toradixBE
([#11378](AztecProtocol/aztec-packages#11378))
([64f4052](AztecProtocol/aztec-packages@64f4052)),
closes
[#11295](AztecProtocol/aztec-packages#11295)
* Print warning in builder when failure happens.
([#11205](AztecProtocol/aztec-packages#11205))
([5a52e95](AztecProtocol/aztec-packages@5a52e95))
* Redo typo PR by Daulox92
([#11458](AztecProtocol/aztec-packages#11458))
([f3ba327](AztecProtocol/aztec-packages@f3ba327))
* Redo typo PR by teenager-ETH
([#11320](AztecProtocol/aztec-packages#11320))
([77854e2](AztecProtocol/aztec-packages@77854e2))
* **sol:** Generate & compile verifier contract in bootstrap
([#11364](AztecProtocol/aztec-packages#11364))
([bf3b12a](AztecProtocol/aztec-packages@bf3b12a))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
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.

Implement Packable trait and use it for storage Separate Noir and Noir<>TS concerns from Serialize
6 participants