-
Notifications
You must be signed in to change notification settings - Fork 240
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
refactor: append-only merkle tree generics #5355
refactor: append-only merkle tree generics #5355
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Benchmark resultsMetrics with a significant change:
Detailed resultsAll benchmarks are run on txs on the This benchmark source data is available in JSON format on S3 here. Values are compared against data from master at commit L2 block published to L1Each column represents the number of txs on an L2 block published to L1.
L2 chain processingEach column represents the number of blocks on the L2 chain where each block has 16 txs.
Circuits statsStats on running time and I/O sizes collected for every circuit run across all benchmarks.
Tree insertion statsThe duration to insert a fixed batch of leaves into each tree type.
MiscellaneousTransaction sizes based on how many contract classes are registered in the tx.
Transaction size based on fee payment method
Transaction processing duration by data writes.
|
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.
API looks a lot nicer, thanks for tackling this! I left a bunch of "Here" comments just as bookmarks so I can try doing something about those any
s later, but I doubt I'll be able to crack it.
treeId: ID, | ||
index: bigint, | ||
): Promise<MerkleTreeLeafType<typeof treeId> | undefined> { | ||
return this.trees.getLeafValue(treeId, index, this.includeUncommitted) as Promise< |
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.
Here
|
||
/** | ||
* Merkle tree operations on readonly tree snapshots. | ||
*/ | ||
export class MerkleTreeSnapshotOperationsFacade implements MerkleTreeOperations { | ||
#treesDb: MerkleTreeDb; | ||
#blockNumber: number; | ||
#treeSnapshots: ReadonlyArray<TreeSnapshot | IndexedTreeSnapshot> = []; | ||
#treeSnapshots: TreeSnapshots = {} as any; |
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.
Here
const tree = await this.#getTreeSnapshot(treeId); | ||
return tree.findLeafIndex(value); | ||
return tree.findLeafIndex(value as any); |
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.
Here
includeUncommitted: boolean, | ||
): Promise<bigint | undefined> { | ||
return await this.synchronize(() => { | ||
const tree = this.trees[treeId]; | ||
return Promise.resolve(tree.findLeafIndex(value, includeUncommitted)); | ||
return Promise.resolve(tree.findLeafIndex(value as any, includeUncommitted)); |
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.
Here
const tree = this.trees[treeId]; | ||
if (!('appendLeaves' in tree)) { | ||
throw new Error('Tree does not support `appendLeaves` method'); | ||
} | ||
return await tree.appendLeaves(leaves); | ||
return await tree.appendLeaves(leaves as any[]); |
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.
Here
@@ -64,7 +92,8 @@ class PublicDataTree extends StandardIndexedTree { | |||
* A convenience class for managing multiple merkle trees. | |||
*/ | |||
export class MerkleTrees implements MerkleTreeDb { | |||
private trees: (AppendOnlyTree | UpdateOnlyTree)[] = []; | |||
// gets initialized in #init | |||
private trees: MerkleTreeMap = null as any; |
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.
I'd move the initialization logic to the static new
method, and have the constructor receive the MerkleTreeMap
already initialized, so we don't have to do this hack.
@@ -79,6 +79,7 @@ | |||
"erc", | |||
"falsey", | |||
"fargate", | |||
"Fieldeable", |
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.
Where did you end up using it?
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.
The type exists already and it has a squiggly line 😬
export type Fieldeable = |
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.
This is really nice!
yarn-project/merkle-tree/src/snapshots/snapshot_builder_test_suite.ts
Outdated
Show resolved
Hide resolved
9a8af31
to
9b26b13
Compare
9b26b13
to
26ca197
Compare
26ca197
to
a8497ac
Compare
I have created #5448 to track all of the Thanks for fixing the snapshots @spalladino |
19e2df3
to
fd4f972
Compare
fd4f972
to
0060129
Compare
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.32.0</summary> ## [0.32.0](aztec-package-v0.31.0...aztec-package-v0.32.0) (2024-03-27) ### Features * Sequencer checks list of allowed FPCs ([#5310](#5310)) ([adf20dc](adf20dc)), closes [#5000](#5000) </details> <details><summary>barretenberg.js: 0.32.0</summary> ## [0.32.0](barretenberg.js-v0.31.0...barretenberg.js-v0.32.0) (2024-03-27) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-cli: 0.32.0</summary> ## [0.32.0](aztec-cli-v0.31.0...aztec-cli-v0.32.0) (2024-03-27) ### Miscellaneous * **aztec-cli:** Synchronize aztec-packages versions </details> <details><summary>aztec-packages: 0.32.0</summary> ## [0.32.0](aztec-packages-v0.31.0...aztec-packages-v0.32.0) (2024-03-27) ### ⚠ BREAKING CHANGES * Brillig typed memory ([#5395](#5395)) ### Features * Add specific error for attempting `string[x] = ".."` (noir-lang/noir#4611) ([27bd8d3](27bd8d3)) * **avm:** Dynamic gas costs for arithmetic, calldatacopy, and set ([#5473](#5473)) ([bbd33fb](bbd33fb)) * **avm:** EQ opcode output u8 and execution ([#5402](#5402)) ([3450e24](3450e24)), closes [#5290](#5290) * Benchmark tx size with fee ([#5414](#5414)) ([543f8a2](543f8a2)), closes [#5403](#5403) * Brillig typed memory ([#5395](#5395)) ([16b0bdd](16b0bdd)) * Sequencer checks list of allowed FPCs ([#5310](#5310)) ([adf20dc](adf20dc)), closes [#5000](#5000) ### Bug Fixes * `l1-contracts/bootstrap.sh` ([#5479](#5479)) ([f7d1d70](f7d1d70)) * Add FPC to allowlist ([#5464](#5464)) ([424960f](424960f)) * **ci:** Fix earthly ctest ([#5424](#5424)) ([9cac8a4](9cac8a4)) * Docs example e2e test ([#5456](#5456)) ([ae5126a](ae5126a)) * Serial bb builds for mac ([#5462](#5462)) ([4317819](4317819)) * Slice coercions (noir-lang/noir#4640) ([27bd8d3](27bd8d3)) * **ssa:** Fix slice intrinsic handling in the capacity tracker (noir-lang/noir#4643) ([27bd8d3](27bd8d3)) * **ssa:** Use accurate type during SSA AsSlice simplficiation (noir-lang/noir#4610) ([27bd8d3](27bd8d3)) ### Miscellaneous * Append-only merkle tree generics ([#5355](#5355)) ([ef7bf79](ef7bf79)) * **avm:** Deterministic codegen from pil and some renaming ([#5476](#5476)) ([ba834a4](ba834a4)) * **avm:** Test cleanup and update yp to allow for zero gas ([#5459](#5459)) ([1829741](1829741)) * **avm:** Unify noir macros flow ([#5461](#5461)) ([54aee58](54aee58)) * **ci:** Add missing dependency to circleci config ([#5437](#5437)) ([753cb78](753cb78)) * **ci:** Add warning sticky comment (noir-lang/noir#4647) ([27bd8d3](27bd8d3)) * Convert `BlockExpression` into a standard struct (noir-lang/noir#4623) ([27bd8d3](27bd8d3)) * Delete `R1CSTransformer` (noir-lang/noir#4649) ([27bd8d3](27bd8d3)) * Fallback to building barretenberg targets sequentially when RAM constrained ([#5426](#5426)) ([29588e0](29588e0)) * Fix acvm crates reporting errors as JS packages (noir-lang/noir#4637) ([27bd8d3](27bd8d3)) * Fix versioning of `bn254_blackbox_solver` crate (noir-lang/noir#4638) ([27bd8d3](27bd8d3)) * **github:** Improve PR template "document later" checkbox description (noir-lang/noir#4625) ([27bd8d3](27bd8d3)) * Introduce selectors to enable range checks of 8-bit and 16-bit sizes ([#5465](#5465)) ([ef44674](ef44674)) * Leveraging `Bufferable` in `pedersenHash(...)` and `sha256ToField(...)` ([#5444](#5444)) ([0e0748c](0e0748c)) * Release Noir(0.26.0) (noir-lang/noir#4526) ([27bd8d3](27bd8d3)) * Renaming rand() as unsafe_rand() ([#5457](#5457)) ([19ad2bb](19ad2bb)), closes [#3746](#3746) * Replace relative paths to noir-protocol-circuits ([d332ad1](d332ad1)) * Timestamp as u64 instead of a Field ([#5453](#5453)) ([d80dbbf](d80dbbf)), closes [#5446](#5446) * Typed encrypted and unencrypted L2 log containers ([#5422](#5422)) ([a4d4ee8](a4d4ee8)) * Update docs with function names to match version 0.25.0 specifications (noir-lang/noir#4466) ([27bd8d3](27bd8d3)) * Update integers.md to note support for Fields using `from_integer` (noir-lang/noir#4536) ([27bd8d3](27bd8d3)) ### Documentation * **yp:** Spec how bytecode is encoded in class registerer ([#5471](#5471)) ([e3bced2](e3bced2)) </details> <details><summary>barretenberg: 0.32.0</summary> ## [0.32.0](barretenberg-v0.31.0...barretenberg-v0.32.0) (2024-03-27) ### ⚠ BREAKING CHANGES * Brillig typed memory ([#5395](#5395)) ### Features * **avm:** EQ opcode output u8 and execution ([#5402](#5402)) ([3450e24](3450e24)), closes [#5290](#5290) * Brillig typed memory ([#5395](#5395)) ([16b0bdd](16b0bdd)) ### Bug Fixes * **ci:** Fix earthly ctest ([#5424](#5424)) ([9cac8a4](9cac8a4)) * Serial bb builds for mac ([#5462](#5462)) ([4317819](4317819)) ### Miscellaneous * **avm:** Deterministic codegen from pil and some renaming ([#5476](#5476)) ([ba834a4](ba834a4)) * Fallback to building barretenberg targets sequentially when RAM constrained ([#5426](#5426)) ([29588e0](29588e0)) * Introduce selectors to enable range checks of 8-bit and 16-bit sizes ([#5465](#5465)) ([ef44674](ef44674)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.32.0</summary> ## [0.32.0](AztecProtocol/aztec-packages@aztec-package-v0.31.0...aztec-package-v0.32.0) (2024-03-27) ### Features * Sequencer checks list of allowed FPCs ([#5310](AztecProtocol/aztec-packages#5310)) ([adf20dc](AztecProtocol/aztec-packages@adf20dc)), closes [#5000](AztecProtocol/aztec-packages#5000) </details> <details><summary>barretenberg.js: 0.32.0</summary> ## [0.32.0](AztecProtocol/aztec-packages@barretenberg.js-v0.31.0...barretenberg.js-v0.32.0) (2024-03-27) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-cli: 0.32.0</summary> ## [0.32.0](AztecProtocol/aztec-packages@aztec-cli-v0.31.0...aztec-cli-v0.32.0) (2024-03-27) ### Miscellaneous * **aztec-cli:** Synchronize aztec-packages versions </details> <details><summary>aztec-packages: 0.32.0</summary> ## [0.32.0](AztecProtocol/aztec-packages@aztec-packages-v0.31.0...aztec-packages-v0.32.0) (2024-03-27) ### ⚠ BREAKING CHANGES * Brillig typed memory ([#5395](AztecProtocol/aztec-packages#5395)) ### Features * Add specific error for attempting `string[x] = ".."` (#4611) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * **avm:** Dynamic gas costs for arithmetic, calldatacopy, and set ([#5473](AztecProtocol/aztec-packages#5473)) ([bbd33fb](AztecProtocol/aztec-packages@bbd33fb)) * **avm:** EQ opcode output u8 and execution ([#5402](AztecProtocol/aztec-packages#5402)) ([3450e24](AztecProtocol/aztec-packages@3450e24)), closes [#5290](AztecProtocol/aztec-packages#5290) * Benchmark tx size with fee ([#5414](AztecProtocol/aztec-packages#5414)) ([543f8a2](AztecProtocol/aztec-packages@543f8a2)), closes [#5403](AztecProtocol/aztec-packages#5403) * Brillig typed memory ([#5395](AztecProtocol/aztec-packages#5395)) ([16b0bdd](AztecProtocol/aztec-packages@16b0bdd)) * Sequencer checks list of allowed FPCs ([#5310](AztecProtocol/aztec-packages#5310)) ([adf20dc](AztecProtocol/aztec-packages@adf20dc)), closes [#5000](AztecProtocol/aztec-packages#5000) ### Bug Fixes * `l1-contracts/bootstrap.sh` ([#5479](AztecProtocol/aztec-packages#5479)) ([f7d1d70](AztecProtocol/aztec-packages@f7d1d70)) * Add FPC to allowlist ([#5464](AztecProtocol/aztec-packages#5464)) ([424960f](AztecProtocol/aztec-packages@424960f)) * **ci:** Fix earthly ctest ([#5424](AztecProtocol/aztec-packages#5424)) ([9cac8a4](AztecProtocol/aztec-packages@9cac8a4)) * Docs example e2e test ([#5456](AztecProtocol/aztec-packages#5456)) ([ae5126a](AztecProtocol/aztec-packages@ae5126a)) * Serial bb builds for mac ([#5462](AztecProtocol/aztec-packages#5462)) ([4317819](AztecProtocol/aztec-packages@4317819)) * Slice coercions (#4640) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * **ssa:** Fix slice intrinsic handling in the capacity tracker (#4643) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * **ssa:** Use accurate type during SSA AsSlice simplficiation (#4610) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) ### Miscellaneous * Append-only merkle tree generics ([#5355](AztecProtocol/aztec-packages#5355)) ([ef7bf79](AztecProtocol/aztec-packages@ef7bf79)) * **avm:** Deterministic codegen from pil and some renaming ([#5476](AztecProtocol/aztec-packages#5476)) ([ba834a4](AztecProtocol/aztec-packages@ba834a4)) * **avm:** Test cleanup and update yp to allow for zero gas ([#5459](AztecProtocol/aztec-packages#5459)) ([1829741](AztecProtocol/aztec-packages@1829741)) * **avm:** Unify noir macros flow ([#5461](AztecProtocol/aztec-packages#5461)) ([54aee58](AztecProtocol/aztec-packages@54aee58)) * **ci:** Add missing dependency to circleci config ([#5437](AztecProtocol/aztec-packages#5437)) ([753cb78](AztecProtocol/aztec-packages@753cb78)) * **ci:** Add warning sticky comment (#4647) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * Convert `BlockExpression` into a standard struct (#4623) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * Delete `R1CSTransformer` (#4649) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * Fallback to building barretenberg targets sequentially when RAM constrained ([#5426](AztecProtocol/aztec-packages#5426)) ([29588e0](AztecProtocol/aztec-packages@29588e0)) * Fix acvm crates reporting errors as JS packages (#4637) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * Fix versioning of `bn254_blackbox_solver` crate (#4638) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * **github:** Improve PR template "document later" checkbox description (#4625) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * Introduce selectors to enable range checks of 8-bit and 16-bit sizes ([#5465](AztecProtocol/aztec-packages#5465)) ([ef44674](AztecProtocol/aztec-packages@ef44674)) * Leveraging `Bufferable` in `pedersenHash(...)` and `sha256ToField(...)` ([#5444](AztecProtocol/aztec-packages#5444)) ([0e0748c](AztecProtocol/aztec-packages@0e0748c)) * Release Noir(0.26.0) (#4526) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * Renaming rand() as unsafe_rand() ([#5457](AztecProtocol/aztec-packages#5457)) ([19ad2bb](AztecProtocol/aztec-packages@19ad2bb)), closes [#3746](AztecProtocol/aztec-packages#3746) * Replace relative paths to noir-protocol-circuits ([d332ad1](AztecProtocol/aztec-packages@d332ad1)) * Timestamp as u64 instead of a Field ([#5453](AztecProtocol/aztec-packages#5453)) ([d80dbbf](AztecProtocol/aztec-packages@d80dbbf)), closes [#5446](AztecProtocol/aztec-packages#5446) * Typed encrypted and unencrypted L2 log containers ([#5422](AztecProtocol/aztec-packages#5422)) ([a4d4ee8](AztecProtocol/aztec-packages@a4d4ee8)) * Update docs with function names to match version 0.25.0 specifications (#4466) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * Update integers.md to note support for Fields using `from_integer` (#4536) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) ### Documentation * **yp:** Spec how bytecode is encoded in class registerer ([#5471](AztecProtocol/aztec-packages#5471)) ([e3bced2](AztecProtocol/aztec-packages@e3bced2)) </details> <details><summary>barretenberg: 0.32.0</summary> ## [0.32.0](AztecProtocol/aztec-packages@barretenberg-v0.31.0...barretenberg-v0.32.0) (2024-03-27) ### ⚠ BREAKING CHANGES * Brillig typed memory ([#5395](AztecProtocol/aztec-packages#5395)) ### Features * **avm:** EQ opcode output u8 and execution ([#5402](AztecProtocol/aztec-packages#5402)) ([3450e24](AztecProtocol/aztec-packages@3450e24)), closes [#5290](AztecProtocol/aztec-packages#5290) * Brillig typed memory ([#5395](AztecProtocol/aztec-packages#5395)) ([16b0bdd](AztecProtocol/aztec-packages@16b0bdd)) ### Bug Fixes * **ci:** Fix earthly ctest ([#5424](AztecProtocol/aztec-packages#5424)) ([9cac8a4](AztecProtocol/aztec-packages@9cac8a4)) * Serial bb builds for mac ([#5462](AztecProtocol/aztec-packages#5462)) ([4317819](AztecProtocol/aztec-packages@4317819)) ### Miscellaneous * **avm:** Deterministic codegen from pil and some renaming ([#5476](AztecProtocol/aztec-packages#5476)) ([ba834a4](AztecProtocol/aztec-packages@ba834a4)) * Fallback to building barretenberg targets sequentially when RAM constrained ([#5426](AztecProtocol/aztec-packages#5426)) ([29588e0](AztecProtocol/aztec-packages@29588e0)) * Introduce selectors to enable range checks of 8-bit and 16-bit sizes ([#5465](AztecProtocol/aztec-packages#5465)) ([ef44674](AztecProtocol/aztec-packages@ef44674)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.32.0</summary> ## [0.32.0](AztecProtocol/aztec-packages@aztec-package-v0.31.0...aztec-package-v0.32.0) (2024-03-27) ### Features * Sequencer checks list of allowed FPCs ([#5310](AztecProtocol/aztec-packages#5310)) ([adf20dc](AztecProtocol/aztec-packages@adf20dc)), closes [#5000](AztecProtocol/aztec-packages#5000) </details> <details><summary>barretenberg.js: 0.32.0</summary> ## [0.32.0](AztecProtocol/aztec-packages@barretenberg.js-v0.31.0...barretenberg.js-v0.32.0) (2024-03-27) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-cli: 0.32.0</summary> ## [0.32.0](AztecProtocol/aztec-packages@aztec-cli-v0.31.0...aztec-cli-v0.32.0) (2024-03-27) ### Miscellaneous * **aztec-cli:** Synchronize aztec-packages versions </details> <details><summary>aztec-packages: 0.32.0</summary> ## [0.32.0](AztecProtocol/aztec-packages@aztec-packages-v0.31.0...aztec-packages-v0.32.0) (2024-03-27) ### ⚠ BREAKING CHANGES * Brillig typed memory ([#5395](AztecProtocol/aztec-packages#5395)) ### Features * Add specific error for attempting `string[x] = ".."` (noir-lang/noir#4611) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * **avm:** Dynamic gas costs for arithmetic, calldatacopy, and set ([#5473](AztecProtocol/aztec-packages#5473)) ([bbd33fb](AztecProtocol/aztec-packages@bbd33fb)) * **avm:** EQ opcode output u8 and execution ([#5402](AztecProtocol/aztec-packages#5402)) ([3450e24](AztecProtocol/aztec-packages@3450e24)), closes [#5290](AztecProtocol/aztec-packages#5290) * Benchmark tx size with fee ([#5414](AztecProtocol/aztec-packages#5414)) ([543f8a2](AztecProtocol/aztec-packages@543f8a2)), closes [#5403](AztecProtocol/aztec-packages#5403) * Brillig typed memory ([#5395](AztecProtocol/aztec-packages#5395)) ([16b0bdd](AztecProtocol/aztec-packages@16b0bdd)) * Sequencer checks list of allowed FPCs ([#5310](AztecProtocol/aztec-packages#5310)) ([adf20dc](AztecProtocol/aztec-packages@adf20dc)), closes [#5000](AztecProtocol/aztec-packages#5000) ### Bug Fixes * `l1-contracts/bootstrap.sh` ([#5479](AztecProtocol/aztec-packages#5479)) ([f7d1d70](AztecProtocol/aztec-packages@f7d1d70)) * Add FPC to allowlist ([#5464](AztecProtocol/aztec-packages#5464)) ([424960f](AztecProtocol/aztec-packages@424960f)) * **ci:** Fix earthly ctest ([#5424](AztecProtocol/aztec-packages#5424)) ([9cac8a4](AztecProtocol/aztec-packages@9cac8a4)) * Docs example e2e test ([#5456](AztecProtocol/aztec-packages#5456)) ([ae5126a](AztecProtocol/aztec-packages@ae5126a)) * Serial bb builds for mac ([#5462](AztecProtocol/aztec-packages#5462)) ([4317819](AztecProtocol/aztec-packages@4317819)) * Slice coercions (noir-lang/noir#4640) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * **ssa:** Fix slice intrinsic handling in the capacity tracker (noir-lang/noir#4643) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * **ssa:** Use accurate type during SSA AsSlice simplficiation (noir-lang/noir#4610) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) ### Miscellaneous * Append-only merkle tree generics ([#5355](AztecProtocol/aztec-packages#5355)) ([ef7bf79](AztecProtocol/aztec-packages@ef7bf79)) * **avm:** Deterministic codegen from pil and some renaming ([#5476](AztecProtocol/aztec-packages#5476)) ([ba834a4](AztecProtocol/aztec-packages@ba834a4)) * **avm:** Test cleanup and update yp to allow for zero gas ([#5459](AztecProtocol/aztec-packages#5459)) ([1829741](AztecProtocol/aztec-packages@1829741)) * **avm:** Unify noir macros flow ([#5461](AztecProtocol/aztec-packages#5461)) ([54aee58](AztecProtocol/aztec-packages@54aee58)) * **ci:** Add missing dependency to circleci config ([#5437](AztecProtocol/aztec-packages#5437)) ([753cb78](AztecProtocol/aztec-packages@753cb78)) * **ci:** Add warning sticky comment (noir-lang/noir#4647) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * Convert `BlockExpression` into a standard struct (noir-lang/noir#4623) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * Delete `R1CSTransformer` (noir-lang/noir#4649) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * Fallback to building barretenberg targets sequentially when RAM constrained ([#5426](AztecProtocol/aztec-packages#5426)) ([29588e0](AztecProtocol/aztec-packages@29588e0)) * Fix acvm crates reporting errors as JS packages (noir-lang/noir#4637) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * Fix versioning of `bn254_blackbox_solver` crate (noir-lang/noir#4638) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * **github:** Improve PR template "document later" checkbox description (noir-lang/noir#4625) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * Introduce selectors to enable range checks of 8-bit and 16-bit sizes ([#5465](AztecProtocol/aztec-packages#5465)) ([ef44674](AztecProtocol/aztec-packages@ef44674)) * Leveraging `Bufferable` in `pedersenHash(...)` and `sha256ToField(...)` ([#5444](AztecProtocol/aztec-packages#5444)) ([0e0748c](AztecProtocol/aztec-packages@0e0748c)) * Release Noir(0.26.0) (noir-lang/noir#4526) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * Renaming rand() as unsafe_rand() ([#5457](AztecProtocol/aztec-packages#5457)) ([19ad2bb](AztecProtocol/aztec-packages@19ad2bb)), closes [#3746](AztecProtocol/aztec-packages#3746) * Replace relative paths to noir-protocol-circuits ([d332ad1](AztecProtocol/aztec-packages@d332ad1)) * Timestamp as u64 instead of a Field ([#5453](AztecProtocol/aztec-packages#5453)) ([d80dbbf](AztecProtocol/aztec-packages@d80dbbf)), closes [#5446](AztecProtocol/aztec-packages#5446) * Typed encrypted and unencrypted L2 log containers ([#5422](AztecProtocol/aztec-packages#5422)) ([a4d4ee8](AztecProtocol/aztec-packages@a4d4ee8)) * Update docs with function names to match version 0.25.0 specifications (noir-lang/noir#4466) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) * Update integers.md to note support for Fields using `from_integer` (noir-lang/noir#4536) ([27bd8d3](AztecProtocol/aztec-packages@27bd8d3)) ### Documentation * **yp:** Spec how bytecode is encoded in class registerer ([#5471](AztecProtocol/aztec-packages#5471)) ([e3bced2](AztecProtocol/aztec-packages@e3bced2)) </details> <details><summary>barretenberg: 0.32.0</summary> ## [0.32.0](AztecProtocol/aztec-packages@barretenberg-v0.31.0...barretenberg-v0.32.0) (2024-03-27) ### ⚠ BREAKING CHANGES * Brillig typed memory ([#5395](AztecProtocol/aztec-packages#5395)) ### Features * **avm:** EQ opcode output u8 and execution ([#5402](AztecProtocol/aztec-packages#5402)) ([3450e24](AztecProtocol/aztec-packages@3450e24)), closes [#5290](AztecProtocol/aztec-packages#5290) * Brillig typed memory ([#5395](AztecProtocol/aztec-packages#5395)) ([16b0bdd](AztecProtocol/aztec-packages@16b0bdd)) ### Bug Fixes * **ci:** Fix earthly ctest ([#5424](AztecProtocol/aztec-packages#5424)) ([9cac8a4](AztecProtocol/aztec-packages@9cac8a4)) * Serial bb builds for mac ([#5462](AztecProtocol/aztec-packages#5462)) ([4317819](AztecProtocol/aztec-packages@4317819)) ### Miscellaneous * **avm:** Deterministic codegen from pil and some renaming ([#5476](AztecProtocol/aztec-packages#5476)) ([ba834a4](AztecProtocol/aztec-packages@ba834a4)) * Fallback to building barretenberg targets sequentially when RAM constrained ([#5426](AztecProtocol/aztec-packages#5426)) ([29588e0](AztecProtocol/aztec-packages@29588e0)) * Introduce selectors to enable range checks of 8-bit and 16-bit sizes ([#5465](AztecProtocol/aztec-packages#5465)) ([ef44674](AztecProtocol/aztec-packages@ef44674)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Give Merkle Trees generic type arguments for the leaves they store.