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: bytecode hashing init #8535

Merged
merged 4 commits into from
Oct 25, 2024
Merged

Conversation

IlyasRidhuan
Copy link
Contributor

@IlyasRidhuan IlyasRidhuan commented Sep 13, 2024

This adds proper computation of the public bytecode commitment (i.e. pair-wise poseidon hashing of the public bytecode). This hash is also computed in the witgen although the circuit remains unconstrained.

Follow up PRs will handle:

  1. Deriving class id, including tracing and hinting the artifact hash, etc
  2. Deriving the address, including tracing and hinting the contract instance
  3. Merkle path hinting and verification in the AVM

@IlyasRidhuan IlyasRidhuan force-pushed the ir/09-10-feat_bytecode_hashing_init branch from e0cfbcb to 8b2cce3 Compare September 13, 2024 16:00
@IlyasRidhuan IlyasRidhuan force-pushed the ir/09-10-feat_bytecode_hashing_init branch 3 times, most recently from e5c162b to a11a57d Compare September 24, 2024 22:49
uint32_t side_effect_counter,
std::vector<FF> calldata)
std::vector<FF> calldata,
const std::vector<uint8_t>& contract_bytecode)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Same as above - changing the order was more of a pain

@@ -2606,12 +2611,12 @@ void AvmTraceBuilder::op_emit_unencrypted_log(uint8_t indirect,
// Truncate the hash to 31 bytes so it will be a valid field element
FF trunc_hash = FF(from_buffer<uint256_t>(output.data()) >> 8);

// The + 32 here is for the contract_address in bytes, the +4 is for the extra 4 bytes that contain log_size and is
// prefixed to message see toBuffer in unencrypted_l2_log.ts
// The + 32 here is for the contract_address in bytes, the +4 is for the extra 4 bytes that contain log_size and
Copy link
Contributor Author

Choose a reason for hiding this comment

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

🤷 not sure why the formatting has changed slightly?

@@ -0,0 +1,14 @@

namespace bytecode(256);
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Just a placeholder for now

@IlyasRidhuan IlyasRidhuan force-pushed the ir/09-10-feat_bytecode_hashing_init branch from a11a57d to 02ecd19 Compare September 24, 2024 22:55
@@ -56,8 +57,19 @@ export type ContractClassIdPreimage = {
publicBytecodeCommitment: Fr;
};

// TODO(#5860): Replace with actual implementation
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is removed here, but there are a few more instances which need to be fixed before this issue can be considered "done"

@IlyasRidhuan IlyasRidhuan force-pushed the ir/09-10-feat_bytecode_hashing_init branch from 02ecd19 to 1bdd083 Compare September 24, 2024 22:57
@IlyasRidhuan IlyasRidhuan marked this pull request as ready for review September 24, 2024 22:57
@AztecBot
Copy link
Collaborator

AztecBot commented Sep 24, 2024

Docs Preview

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

Copy link
Contributor

@fcarreiro fcarreiro left a comment

Choose a reason for hiding this comment

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

Please add to the description what is done and what remains to be done.

barretenberg/cpp/pil/avm/bytecode.pil Outdated Show resolved Hide resolved
} // namespace bb
Copy link
Contributor

Choose a reason for hiding this comment

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

[Re: line +157]

nit: change not needed

See this comment inline on Graphite.

barretenberg/cpp/src/barretenberg/vm/avm/trace/trace.cpp Outdated Show resolved Hide resolved
@IlyasRidhuan IlyasRidhuan force-pushed the ir/09-10-feat_bytecode_hashing_init branch 5 times, most recently from 8429d29 to c093e9f Compare September 25, 2024 14:29
@IlyasRidhuan IlyasRidhuan marked this pull request as draft September 25, 2024 15:50
@IlyasRidhuan IlyasRidhuan force-pushed the ir/09-10-feat_bytecode_hashing_init branch from f7e7f7a to 81dd3de Compare October 1, 2024 09:01
@IlyasRidhuan IlyasRidhuan force-pushed the ir/09-30-refactor_avm_type_aliasing_for_vmpublicinputs branch from 4ff6d28 to c28dbaa Compare October 1, 2024 13:05
@IlyasRidhuan IlyasRidhuan force-pushed the ir/09-10-feat_bytecode_hashing_init branch from 81dd3de to 769d979 Compare October 1, 2024 13:05
@IlyasRidhuan IlyasRidhuan force-pushed the ir/09-30-refactor_avm_type_aliasing_for_vmpublicinputs branch from c28dbaa to bfa433f Compare October 10, 2024 12:12
Base automatically changed from ir/09-30-refactor_avm_type_aliasing_for_vmpublicinputs to master October 10, 2024 15:58
@IlyasRidhuan IlyasRidhuan force-pushed the ir/09-10-feat_bytecode_hashing_init branch from 769d979 to 66ab86f Compare October 18, 2024 09:41
@IlyasRidhuan IlyasRidhuan marked this pull request as ready for review October 18, 2024 09:52
@IlyasRidhuan IlyasRidhuan force-pushed the ir/09-10-feat_bytecode_hashing_init branch 5 times, most recently from 2930541 to 22a3cb8 Compare October 25, 2024 08:44
@IlyasRidhuan IlyasRidhuan force-pushed the ir/09-10-feat_bytecode_hashing_init branch from 22a3cb8 to 0486b5d Compare October 25, 2024 10:59
@IlyasRidhuan IlyasRidhuan force-pushed the ir/09-10-feat_bytecode_hashing_init branch from 0486b5d to 265bb38 Compare October 25, 2024 11:18
@IlyasRidhuan IlyasRidhuan force-pushed the ir/09-10-feat_bytecode_hashing_init branch from 265bb38 to 5b44970 Compare October 25, 2024 11:48
Copy link
Collaborator

@dbanks12 dbanks12 left a comment

Choose a reason for hiding this comment

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

LGTM! Excellent work. Some comments, but let's get this merged.

Are there tests that specifically test that bytecode hashing is working as intended?

Comment on lines +31 to +52
// This is the main loop that will generate the bytecode trace
for (auto& contract_bytecode : all_contracts_bytecode) {
FF running_hash = FF::zero();
auto packed_bytecode = pack_bytecode(contract_bytecode);
// This size is already based on the number of fields
for (size_t i = 0; i < packed_bytecode.size(); ++i) {
bytecode_trace.push_back(BytecodeTraceEntry{
.packed_bytecode = packed_bytecode[i],
.running_hash = running_hash,
.bytecode_length_remaining = static_cast<uint16_t>(packed_bytecode.size() - i),
});
running_hash = poseidon2::hash({ packed_bytecode[i], running_hash });
}
// Now running_hash actually contains the bytecode hash
BytecodeTraceEntry last_entry;
last_entry.running_hash = running_hash;
last_entry.bytecode_length_remaining = 0;
// TODO: Come back to this later
// last_entry.class_id = _
// last_entry.contract_address = _
}
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

So the 0th bytecode trace row has running_hash = 0, and then the 1st row has running_hash = hash({bytecode[0], 0}). Okay yeah that makes sense! Probably would be good to comment this a bit more thoroughly, but it didn't take long to parse what's going on. 👍

Copy link
Contributor Author

Choose a reason for hiding this comment

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

will add a comment to the PR at the top of the stack

@IlyasRidhuan
Copy link
Contributor Author

LGTM! Excellent work. Some comments, but let's get this merged.

Are there tests that specifically test that bytecode hashing is working as intended?

Yep, in the other PRs we will enforce that the bytecode hashing we perform matches the hints received by the hints. So effectively avm_proving_test will also be the test for bytecode hashing + address derivation

Copy link
Contributor

@fcarreiro fcarreiro left a comment

Choose a reason for hiding this comment

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

Typescript side looks ok, except for the length in packedBytecode

);
} else {
// Any bytes after the bytecode length must be 0
assert_eq(packed_public_bytecode[i + 1], 0);
Copy link
Contributor

Choose a reason for hiding this comment

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

Hmm interesting, is this overprotective?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

hmmm i think this is required or someone could sneak in extra bytecode that will not be part of the hash (since length of the bytecode is essentially user-defined)

for i in 0..(MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS - 1) {
// While we are forced to run the hash MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS times in the circuit,
// we want the bytecode commitment to be based on the actual length
if (i < bytecode_length_in_fields) {
Copy link
Contributor

Choose a reason for hiding this comment

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

(optional, or for later) Assuming we don't need the check of the "else" branch, maybe this if can be made more efficient with something like:

u1 pred = i < bytecode_length_in_fields;
computed_public_bytecode_commitment =
    pred * std::hash::poseidon2::Poseidon2::hash([packed_public_bytecode[i + 1], computed_public_bytecode_commitment], 2) +
    (1 - pred) * computed_public_bytecode_commitment;

export function computePublicBytecodeCommitment(packedBytecode: Buffer) {
// Encode the buffer into field elements (chunked into 31 bytes each)
const encodedBytecode: Fr[] = bufferAsFields(packedBytecode, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS);
// The first element is the length of the bytecode (in bytes)
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this still the case? Given that a buffer holds its length, I thought I would've avoided this extra byte in the packedBytecode.

You can however add it here in this function if you need it (but not in the function that generates the packedBytecode).

Copy link
Contributor

Choose a reason for hiding this comment

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

You can however add it here in this function
I meant in the function that passes the bytecode to the contract registerer

Here you should be able to use the buffer size since we are in TS?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah that's true, I was just re-using the bufferAsFields utility since that's what's used when broadcasting public functions and i didnt want to re-implement the "packing into fields" logic.

I could remove the length from the encoded-bytecode that is used in pop_capsule, but we would need to then add it as a parameter to the class register function.

@IlyasRidhuan IlyasRidhuan merged commit 2bb09e5 into master Oct 25, 2024
62 checks passed
@IlyasRidhuan IlyasRidhuan deleted the ir/09-10-feat_bytecode_hashing_init branch October 25, 2024 14:13
TomAFrench pushed a commit that referenced this pull request Oct 30, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.61.0](aztec-package-v0.60.0...aztec-package-v0.61.0)
(2024-10-30)


### Miscellaneous

* **aztec-package:** Synchronize aztec-packages versions
</details>

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

##
[0.61.0](barretenberg.js-v0.60.0...barretenberg.js-v0.61.0)
(2024-10-30)


### Miscellaneous

* **barretenberg.js:** Synchronize aztec-packages versions
</details>

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

##
[0.61.0](aztec-packages-v0.60.0...aztec-packages-v0.61.0)
(2024-10-30)


### ⚠ BREAKING CHANGES

* **avm:** cleanup CALL
([#9551](#9551))
* **avm:** returndatasize + returndatacopy
([#9475](#9475))
* use Brillig opcode when possible for less-than operations on fields
([#9416](#9416))
* **profiler:** New flamegraph command that profiles the opcodes
executed (noir-lang/noir#6327)
* split base rollup and remove public kernel proving
([#9434](#9434))
* getcontractinstance instruction returns only a specified member
([#9300](#9300))
* **avm/brillig:** revert/rethrow oracle
([#9408](#9408))

### Features

* `bytes_to_fields` requiring only 1 generic param
([#9417](#9417))
([2217da6](2217da6))
* 20-30% cost reduction in recursive ipa algorithm
([#9420](#9420))
([a4bd3e1](a4bd3e1))
* Add capacities to brillig vectors and use them in slice ops
(noir-lang/noir#6332)
([b82f3d1](b82f3d1))
* Added indexes and a way to store/retrieve tagged secrets
([#9468](#9468))
([1c685b1](1c685b1))
* **avm/brillig:** Revert/rethrow oracle
([#9408](#9408))
([1bbd724](1bbd724))
* **avm:** Avm replace zeromorph pcs by shplemini
([#9389](#9389))
([07d6dc2](07d6dc2))
* **avm:** Cleanup CALL
([#9551](#9551))
([26adc55](26adc55))
* **avm:** Merkle tree gadget
([#9205](#9205))
([d52b616](d52b616))
* **avm:** Returndatasize + returndatacopy
([#9475](#9475))
([8f71006](8f71006))
* **avm:** Trace contract class and contract instance
([#8840](#8840))
([84205d8](84205d8))
* Better LSP hover for functions
(noir-lang/noir#6376)
([b82f3d1](b82f3d1))
* Bytecode hashing init
([#8535](#8535))
([2bb09e5](2bb09e5))
* Check trait where clause (noir-lang/noir#6325)
([d67381b](d67381b))
* Comptime deriving generators in macros
([#9195](#9195))
([c4b629c](c4b629c))
* Derive address and class id in avm
([#8897](#8897))
([2ebe361](2ebe361))
* Do not increment reference counts on arrays through references
(noir-lang/noir#6375)
([f386612](f386612))
* **docs:** Function transforms (hidden macros)
([#7784](#7784))
([831cc66](831cc66))
* Fee pricing to 0 for old instances
([#9296](#9296))
([7bc3a21](7bc3a21))
* Fixed number of pub inputs for databus commitment propagation
([#9336](#9336))
([8658abd](8658abd))
* Getcontractinstance instruction returns only a specified member
([#9300](#9300))
([29b692f](29b692f))
* Implement encryption to an address point and decryption from an
address secret
([#9272](#9272))
([6d77dd0](6d77dd0))
* Initial block reward + external libraries
([#9297](#9297))
([240e9b5](240e9b5))
* Let LSP suggest traits in trait bounds
(noir-lang/noir#6370)
([f386612](f386612))
* Let the formatter remove lambda block braces for single-statement
blocks (noir-lang/noir#6335)
([d67381b](d67381b))
* Let the LSP import code action insert into existing use statements
(noir-lang/noir#6358)
([f386612](f386612))
* Let the LSP import code action insert into existing use statements
(noir-lang/noir#6358)
([d67381b](d67381b))
* LSP auto-import will try to add to existing use statements
(noir-lang/noir#6354)
([f386612](f386612))
* LSP auto-import will try to add to existing use statements
(noir-lang/noir#6354)
([d67381b](d67381b))
* Merge and sort imports (noir-lang/noir#6322)
([b4db379](b4db379))
* Note tagging oracle
([#9429](#9429))
([cec6306](cec6306))
* Ownable sysstia
([#9398](#9398))
([30314ec](30314ec)),
closes
[#9351](#9351)
* **perf:** Use [u32;16] for message block in sha256
(noir-lang/noir#6324)
([d67381b](d67381b))
* Print finalized size and log dyadic size during Ultra proof
construction
([#9411](#9411))
([84fdc52](84fdc52))
* **profiler:** New flamegraph command that profiles the opcodes
executed (noir-lang/noir#6327)
([d67381b](d67381b))
* Prover coordination test with a reorg
([#9405](#9405))
([9efe288](9efe288))
* **prover:** Perform prover coordination via p2p layer
([#9325](#9325))
([2132bc2](2132bc2)),
closes
[#9264](#9264)
* Reject programs with unconditional recursion
(noir-lang/noir#6292)
([b4db379](b4db379))
* Remove 'single use' intermediate variables
(noir-lang/noir#6268)
([d67381b](d67381b))
* Reorder blocks for efficiency
([#9560](#9560))
([10874f4](10874f4))
* Simulate latency with network chaos
([#9469](#9469))
([10aefbb](10aefbb))
* Sol shplemini in acir tests + contract_gen
([#8874](#8874))
([1c0275d](1c0275d))
* Suggest removing `!` from macro call that doesn't return Quoted
(noir-lang/noir#6384)
([b82f3d1](b82f3d1))
* Support specifying generics on a struct when calling an associated
function (noir-lang/noir#6306)
([b82f3d1](b82f3d1))
* Sync from aztec-packages (noir-lang/noir#6345)
([d67381b](d67381b))
* Tally AVM opcodes executed in simulator
([#9473](#9473))
([9a06ada](9a06ada))
* **test:** Run test matrix on stdlib tests
(noir-lang/noir#6352)
([f386612](f386612))
* **test:** Run test matrix on stdlib tests
(noir-lang/noir#6352)
([d67381b](d67381b))


### Bug Fixes

* (formatter) correctly format quote delimiters
(noir-lang/noir#6377)
([b82f3d1](b82f3d1))
* (formatter) indent after infix lhs
(noir-lang/noir#6331)
([b4db379](b4db379))
* (LSP) check visibility of module that re-exports item, if any
(noir-lang/noir#6371)
([f386612](f386612))
* Add native verification test to honk keccak
([#9501](#9501))
([59810e0](59810e0))
* Allow globals in format strings
(noir-lang/noir#6382)
([b82f3d1](b82f3d1))
* Allow more resources for 4epochs tests
([#9418](#9418))
([74a8ad1](74a8ad1))
* Allow type aliases in let patterns
(noir-lang/noir#6356)
([f386612](f386612))
* Allow type aliases in let patterns
(noir-lang/noir#6356)
([d67381b](d67381b))
* Always inline `derive_generators`
(noir-lang/noir#6350)
([f386612](f386612))
* Always inline `derive_generators`
(noir-lang/noir#6350)
([d67381b](d67381b))
* **avm:** Address bytecode hashing comments
([#9436](#9436))
([a85f92a](a85f92a))
* **avm:** Disable sha256 in bulk test until we debug it
([#9482](#9482))
([078c318](078c318))
* **avm:** Re-enable sha256 in bulk test, fix bug in AVM SHL/SHR
([#9496](#9496))
([0fe64df](0fe64df))
* Bb-only-change fix e2e build instability
([#9441](#9441))
([ca3abaa](ca3abaa))
* Better formatting of leading/trailing line/block comments in
expression lists (noir-lang/noir#6338)
([d67381b](d67381b))
* Cleanup of janky encryption apis
([#9390](#9390))
([9e3e536](9e3e536))
* Deploy & version aztec-up scripts
([#9435](#9435))
([ad80169](ad80169))
* Display every bit in integer tokens
(noir-lang/noir#6360)
([b82f3d1](b82f3d1))
* Docker fast
([#9467](#9467))
([34e6dd0](34e6dd0))
* **docs:** Update getting started docs
([#9426](#9426))
([985190b](985190b))
* Fix panic in comptime code
(noir-lang/noir#6361)
([f386612](f386612))
* Fix panic in comptime code
(noir-lang/noir#6361)
([d67381b](d67381b))
* Formatter didn't format `&gt;>=` well
(noir-lang/noir#6337)
([b4db379](b4db379))
* Honk shplemini acir artifacts
([#9550](#9550))
([468c100](468c100))
* Issue in partial notes API
([#9555](#9555))
([9d66c1a](9d66c1a))
* LSP auto-import would import public item inside private module
(noir-lang/noir#6366)
([f386612](f386612))
* Make keccak256 work with input lengths greater than 136 bytes
(noir-lang/noir#6393)
([b82f3d1](b82f3d1))
* Make sure kind tests run every master commit
([#9478](#9478))
([78de316](78de316))
* Mutable global pattern didn't have a span
(noir-lang/noir#6328)
([b4db379](b4db379))
* Remove assumed parent traits
(noir-lang/noir#6365)
([f386612](f386612))
* Remove unnecessary ivpk's from aztec-nr
([#9460](#9460))
([c6437cc](c6437cc))
* Replace npk_m_hash with addresses
([#9461](#9461))
([f4ed55b](f4ed55b))
* Revert "feat: sol shplemini in acir tests + contract_gen"
([#9505](#9505))
([3351217](3351217))
* Slightly better formatting of empty blocks with comments
(noir-lang/noir#6367)
([f386612](f386612))
* Spot_strategy passing
([#9428](#9428))
([1e38d3e](1e38d3e))
* **ssa:** Do not mark an array from a parameter mutable
(noir-lang/noir#6355)
([f386612](f386612))
* **ssa:** Do not mark an array from a parameter mutable
(noir-lang/noir#6355)
([d67381b](d67381b))
* Yarn build:fast
([#9464](#9464))
([bbe6d06](bbe6d06))
* Yarn project bootstrap fast
([#9440](#9440))
([c1ebed5](c1ebed5))


### Miscellaneous

* Add serdes and eq for address note
([#9544](#9544))
([74bcfab](74bcfab))
* Add some tests for type aliases
([d67381b](d67381b))
* Add test to check that duplicate definitions generated from macros
throws error (noir-lang/noir#6351)
([f386612](f386612))
* Add test to check that duplicate definitions generated from macros
throws error (noir-lang/noir#6351)
([d67381b](d67381b))
* Align debug logging between AVM sim & witgen
([#9498](#9498))
([7c2d67a](7c2d67a))
* **avm::** Fix execution tests in proving mode
([#9466](#9466))
([8e07de8](8e07de8))
* **avm:** Allocate memory for unshifted polynomials according to their
trace col size
([#9345](#9345))
([a67d0e2](a67d0e2))
* Bumping L2 gas and public reads constants
([#9431](#9431))
([91c50dd](91c50dd))
* **CI:** Remove end-to-end/Earthfile
([#9364](#9364))
([2823cbb](2823cbb)),
closes
[#9221](#9221)
* Clean up note processor after changes due to address
([#9401](#9401))
([d33c988](d33c988))
* Disable e2e_fees_dapp_subscription
([#9489](#9489))
([26416b6](26416b6))
* Disable flakey e2e_synching.test.ts
([#9439](#9439))
([01147a5](01147a5))
* Dont show aws creds in docker fast
([#9465](#9465))
([a6d8f48](a6d8f48))
* Fix sync scripts
([#9423](#9423))
([7766c8e](7766c8e))
* Have 'aztec' honour the 'DEBUG' env var
([#9413](#9413))
([771a2ac](771a2ac))
* Minor tweaks to comptime doc
(noir-lang/noir#6357)
([f386612](f386612))
* Minor tweaks to comptime doc
(noir-lang/noir#6357)
([d67381b](d67381b))
* Minting only private or public balance in Token TXE tests
([#9491](#9491))
([b8c015b](b8c015b))
* Node follow prune and extend chain
([#9328](#9328))
([a653fd3](a653fd3))
* Noir bug workaround
([#9443](#9443))
([f619687](f619687))
* Passing partial note logs through transient storage
([#9356](#9356))
([8835b31](8835b31))
* Redo typo PR by defitricks
([#9571](#9571))
([9a5dce3](9a5dce3))
* Remove ovpk as param in boxes contracts
([#9495](#9495))
([2b24b98](2b24b98))
* Remove unnecessary trait
([#9437](#9437))
([1db2eec](1db2eec))
* Rename private function in L2 block stream
([#9481](#9481))
([a34d4aa](a34d4aa)),
closes
[#9314](#9314)
* Replace relative paths to noir-protocol-circuits
([4f2d67c](4f2d67c))
* Replace relative paths to noir-protocol-circuits
([33f2151](33f2151))
* Replace relative paths to noir-protocol-circuits
([5247be2](5247be2))
* Replace relative paths to noir-protocol-circuits
([49467ba](49467ba))
* Replace relative paths to noir-protocol-circuits
([f6d714f](f6d714f))
* Replace relative paths to noir-protocol-circuits
([b4841ad](b4841ad))
* Replace token note with uint note
([#8143](#8143))
([493a3f3](493a3f3))
* Run tests in metaprogramming.rs
(noir-lang/noir#6339)
([d67381b](d67381b))
* Split base rollup and remove public kernel proving
([#9434](#9434))
([4316242](4316242))
* Switch to btreeset for deterministic ordering
(noir-lang/noir#6348)
([d67381b](d67381b))
* Update title from feedback
(noir-lang/noir#6334)
([b4db379](b4db379))
* Use array instead of Vec in keccak256
(noir-lang/noir#6395)
([b82f3d1](b82f3d1))
* Use big endian in sha
([#9471](#9471))
([bc9828e](bc9828e))
* Use Brillig opcode when possible for less-than operations on fields
([#9416](#9416))
([e50303d](e50303d))


### Documentation

* Clean up docker messaging
([#9419](#9419))
([4c4974f](4c4974f))
</details>

<details><summary>barretenberg: 0.61.0</summary>

##
[0.61.0](barretenberg-v0.60.0...barretenberg-v0.61.0)
(2024-10-30)


### ⚠ BREAKING CHANGES

* **avm:** cleanup CALL
([#9551](#9551))
* **avm:** returndatasize + returndatacopy
([#9475](#9475))
* getcontractinstance instruction returns only a specified member
([#9300](#9300))
* **avm/brillig:** revert/rethrow oracle
([#9408](#9408))

### Features

* 20-30% cost reduction in recursive ipa algorithm
([#9420](#9420))
([a4bd3e1](a4bd3e1))
* **avm/brillig:** Revert/rethrow oracle
([#9408](#9408))
([1bbd724](1bbd724))
* **avm:** Avm replace zeromorph pcs by shplemini
([#9389](#9389))
([07d6dc2](07d6dc2))
* **avm:** Cleanup CALL
([#9551](#9551))
([26adc55](26adc55))
* **avm:** Merkle tree gadget
([#9205](#9205))
([d52b616](d52b616))
* **avm:** Returndatasize + returndatacopy
([#9475](#9475))
([8f71006](8f71006))
* **avm:** Trace contract class and contract instance
([#8840](#8840))
([84205d8](84205d8))
* Bytecode hashing init
([#8535](#8535))
([2bb09e5](2bb09e5))
* Derive address and class id in avm
([#8897](#8897))
([2ebe361](2ebe361))
* Fixed number of pub inputs for databus commitment propagation
([#9336](#9336))
([8658abd](8658abd))
* Getcontractinstance instruction returns only a specified member
([#9300](#9300))
([29b692f](29b692f))
* Print finalized size and log dyadic size during Ultra proof
construction
([#9411](#9411))
([84fdc52](84fdc52))
* Reorder blocks for efficiency
([#9560](#9560))
([10874f4](10874f4))
* Sol shplemini in acir tests + contract_gen
([#8874](#8874))
([1c0275d](1c0275d))


### Bug Fixes

* Add native verification test to honk keccak
([#9501](#9501))
([59810e0](59810e0))
* **avm:** Address bytecode hashing comments
([#9436](#9436))
([a85f92a](a85f92a))
* **avm:** Re-enable sha256 in bulk test, fix bug in AVM SHL/SHR
([#9496](#9496))
([0fe64df](0fe64df))
* Honk shplemini acir artifacts
([#9550](#9550))
([468c100](468c100))
* Revert "feat: sol shplemini in acir tests + contract_gen"
([#9505](#9505))
([3351217](3351217))


### Miscellaneous

* Align debug logging between AVM sim & witgen
([#9498](#9498))
([7c2d67a](7c2d67a))
* **avm::** Fix execution tests in proving mode
([#9466](#9466))
([8e07de8](8e07de8))
* **avm:** Allocate memory for unshifted polynomials according to their
trace col size
([#9345](#9345))
([a67d0e2](a67d0e2))
* Bumping L2 gas and public reads constants
([#9431](#9431))
([91c50dd](91c50dd))
* Use big endian in sha
([#9471](#9471))
([bc9828e](bc9828e))
</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 Oct 31, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.61.0](AztecProtocol/aztec-packages@aztec-package-v0.60.0...aztec-package-v0.61.0)
(2024-10-30)


### Miscellaneous

* **aztec-package:** Synchronize aztec-packages versions
</details>

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

##
[0.61.0](AztecProtocol/aztec-packages@barretenberg.js-v0.60.0...barretenberg.js-v0.61.0)
(2024-10-30)


### Miscellaneous

* **barretenberg.js:** Synchronize aztec-packages versions
</details>

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

##
[0.61.0](AztecProtocol/aztec-packages@aztec-packages-v0.60.0...aztec-packages-v0.61.0)
(2024-10-30)


### ⚠ BREAKING CHANGES

* **avm:** cleanup CALL
([#9551](AztecProtocol/aztec-packages#9551))
* **avm:** returndatasize + returndatacopy
([#9475](AztecProtocol/aztec-packages#9475))
* use Brillig opcode when possible for less-than operations on fields
([#9416](AztecProtocol/aztec-packages#9416))
* **profiler:** New flamegraph command that profiles the opcodes
executed (noir-lang/noir#6327)
* split base rollup and remove public kernel proving
([#9434](AztecProtocol/aztec-packages#9434))
* getcontractinstance instruction returns only a specified member
([#9300](AztecProtocol/aztec-packages#9300))
* **avm/brillig:** revert/rethrow oracle
([#9408](AztecProtocol/aztec-packages#9408))

### Features

* `bytes_to_fields` requiring only 1 generic param
([#9417](AztecProtocol/aztec-packages#9417))
([2217da6](AztecProtocol/aztec-packages@2217da6))
* 20-30% cost reduction in recursive ipa algorithm
([#9420](AztecProtocol/aztec-packages#9420))
([a4bd3e1](AztecProtocol/aztec-packages@a4bd3e1))
* Add capacities to brillig vectors and use them in slice ops
(noir-lang/noir#6332)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* Added indexes and a way to store/retrieve tagged secrets
([#9468](AztecProtocol/aztec-packages#9468))
([1c685b1](AztecProtocol/aztec-packages@1c685b1))
* **avm/brillig:** Revert/rethrow oracle
([#9408](AztecProtocol/aztec-packages#9408))
([1bbd724](AztecProtocol/aztec-packages@1bbd724))
* **avm:** Avm replace zeromorph pcs by shplemini
([#9389](AztecProtocol/aztec-packages#9389))
([07d6dc2](AztecProtocol/aztec-packages@07d6dc2))
* **avm:** Cleanup CALL
([#9551](AztecProtocol/aztec-packages#9551))
([26adc55](AztecProtocol/aztec-packages@26adc55))
* **avm:** Merkle tree gadget
([#9205](AztecProtocol/aztec-packages#9205))
([d52b616](AztecProtocol/aztec-packages@d52b616))
* **avm:** Returndatasize + returndatacopy
([#9475](AztecProtocol/aztec-packages#9475))
([8f71006](AztecProtocol/aztec-packages@8f71006))
* **avm:** Trace contract class and contract instance
([#8840](AztecProtocol/aztec-packages#8840))
([84205d8](AztecProtocol/aztec-packages@84205d8))
* Better LSP hover for functions
(noir-lang/noir#6376)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* Bytecode hashing init
([#8535](AztecProtocol/aztec-packages#8535))
([2bb09e5](AztecProtocol/aztec-packages@2bb09e5))
* Check trait where clause (noir-lang/noir#6325)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Comptime deriving generators in macros
([#9195](AztecProtocol/aztec-packages#9195))
([c4b629c](AztecProtocol/aztec-packages@c4b629c))
* Derive address and class id in avm
([#8897](AztecProtocol/aztec-packages#8897))
([2ebe361](AztecProtocol/aztec-packages@2ebe361))
* Do not increment reference counts on arrays through references
(noir-lang/noir#6375)
([f386612](AztecProtocol/aztec-packages@f386612))
* **docs:** Function transforms (hidden macros)
([#7784](AztecProtocol/aztec-packages#7784))
([831cc66](AztecProtocol/aztec-packages@831cc66))
* Fee pricing to 0 for old instances
([#9296](AztecProtocol/aztec-packages#9296))
([7bc3a21](AztecProtocol/aztec-packages@7bc3a21))
* Fixed number of pub inputs for databus commitment propagation
([#9336](AztecProtocol/aztec-packages#9336))
([8658abd](AztecProtocol/aztec-packages@8658abd))
* Getcontractinstance instruction returns only a specified member
([#9300](AztecProtocol/aztec-packages#9300))
([29b692f](AztecProtocol/aztec-packages@29b692f))
* Implement encryption to an address point and decryption from an
address secret
([#9272](AztecProtocol/aztec-packages#9272))
([6d77dd0](AztecProtocol/aztec-packages@6d77dd0))
* Initial block reward + external libraries
([#9297](AztecProtocol/aztec-packages#9297))
([240e9b5](AztecProtocol/aztec-packages@240e9b5))
* Let LSP suggest traits in trait bounds
(noir-lang/noir#6370)
([f386612](AztecProtocol/aztec-packages@f386612))
* Let the formatter remove lambda block braces for single-statement
blocks (noir-lang/noir#6335)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Let the LSP import code action insert into existing use statements
(noir-lang/noir#6358)
([f386612](AztecProtocol/aztec-packages@f386612))
* Let the LSP import code action insert into existing use statements
(noir-lang/noir#6358)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* LSP auto-import will try to add to existing use statements
(noir-lang/noir#6354)
([f386612](AztecProtocol/aztec-packages@f386612))
* LSP auto-import will try to add to existing use statements
(noir-lang/noir#6354)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Merge and sort imports (noir-lang/noir#6322)
([b4db379](AztecProtocol/aztec-packages@b4db379))
* Note tagging oracle
([#9429](AztecProtocol/aztec-packages#9429))
([cec6306](AztecProtocol/aztec-packages@cec6306))
* Ownable sysstia
([#9398](AztecProtocol/aztec-packages#9398))
([30314ec](AztecProtocol/aztec-packages@30314ec)),
closes
[#9351](AztecProtocol/aztec-packages#9351)
* **perf:** Use [u32;16] for message block in sha256
(noir-lang/noir#6324)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Print finalized size and log dyadic size during Ultra proof
construction
([#9411](AztecProtocol/aztec-packages#9411))
([84fdc52](AztecProtocol/aztec-packages@84fdc52))
* **profiler:** New flamegraph command that profiles the opcodes
executed (noir-lang/noir#6327)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Prover coordination test with a reorg
([#9405](AztecProtocol/aztec-packages#9405))
([9efe288](AztecProtocol/aztec-packages@9efe288))
* **prover:** Perform prover coordination via p2p layer
([#9325](AztecProtocol/aztec-packages#9325))
([2132bc2](AztecProtocol/aztec-packages@2132bc2)),
closes
[#9264](AztecProtocol/aztec-packages#9264)
* Reject programs with unconditional recursion
(noir-lang/noir#6292)
([b4db379](AztecProtocol/aztec-packages@b4db379))
* Remove 'single use' intermediate variables
(noir-lang/noir#6268)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Reorder blocks for efficiency
([#9560](AztecProtocol/aztec-packages#9560))
([10874f4](AztecProtocol/aztec-packages@10874f4))
* Simulate latency with network chaos
([#9469](AztecProtocol/aztec-packages#9469))
([10aefbb](AztecProtocol/aztec-packages@10aefbb))
* Sol shplemini in acir tests + contract_gen
([#8874](AztecProtocol/aztec-packages#8874))
([1c0275d](AztecProtocol/aztec-packages@1c0275d))
* Suggest removing `!` from macro call that doesn't return Quoted
(noir-lang/noir#6384)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* Support specifying generics on a struct when calling an associated
function (noir-lang/noir#6306)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* Sync from aztec-packages (noir-lang/noir#6345)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Tally AVM opcodes executed in simulator
([#9473](AztecProtocol/aztec-packages#9473))
([9a06ada](AztecProtocol/aztec-packages@9a06ada))
* **test:** Run test matrix on stdlib tests
(noir-lang/noir#6352)
([f386612](AztecProtocol/aztec-packages@f386612))
* **test:** Run test matrix on stdlib tests
(noir-lang/noir#6352)
([d67381b](AztecProtocol/aztec-packages@d67381b))


### Bug Fixes

* (formatter) correctly format quote delimiters
(noir-lang/noir#6377)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* (formatter) indent after infix lhs
(noir-lang/noir#6331)
([b4db379](AztecProtocol/aztec-packages@b4db379))
* (LSP) check visibility of module that re-exports item, if any
(noir-lang/noir#6371)
([f386612](AztecProtocol/aztec-packages@f386612))
* Add native verification test to honk keccak
([#9501](AztecProtocol/aztec-packages#9501))
([59810e0](AztecProtocol/aztec-packages@59810e0))
* Allow globals in format strings
(noir-lang/noir#6382)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* Allow more resources for 4epochs tests
([#9418](AztecProtocol/aztec-packages#9418))
([74a8ad1](AztecProtocol/aztec-packages@74a8ad1))
* Allow type aliases in let patterns
(noir-lang/noir#6356)
([f386612](AztecProtocol/aztec-packages@f386612))
* Allow type aliases in let patterns
(noir-lang/noir#6356)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Always inline `derive_generators`
(noir-lang/noir#6350)
([f386612](AztecProtocol/aztec-packages@f386612))
* Always inline `derive_generators`
(noir-lang/noir#6350)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* **avm:** Address bytecode hashing comments
([#9436](AztecProtocol/aztec-packages#9436))
([a85f92a](AztecProtocol/aztec-packages@a85f92a))
* **avm:** Disable sha256 in bulk test until we debug it
([#9482](AztecProtocol/aztec-packages#9482))
([078c318](AztecProtocol/aztec-packages@078c318))
* **avm:** Re-enable sha256 in bulk test, fix bug in AVM SHL/SHR
([#9496](AztecProtocol/aztec-packages#9496))
([0fe64df](AztecProtocol/aztec-packages@0fe64df))
* Bb-only-change fix e2e build instability
([#9441](AztecProtocol/aztec-packages#9441))
([ca3abaa](AztecProtocol/aztec-packages@ca3abaa))
* Better formatting of leading/trailing line/block comments in
expression lists (noir-lang/noir#6338)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Cleanup of janky encryption apis
([#9390](AztecProtocol/aztec-packages#9390))
([9e3e536](AztecProtocol/aztec-packages@9e3e536))
* Deploy & version aztec-up scripts
([#9435](AztecProtocol/aztec-packages#9435))
([ad80169](AztecProtocol/aztec-packages@ad80169))
* Display every bit in integer tokens
(noir-lang/noir#6360)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* Docker fast
([#9467](AztecProtocol/aztec-packages#9467))
([34e6dd0](AztecProtocol/aztec-packages@34e6dd0))
* **docs:** Update getting started docs
([#9426](AztecProtocol/aztec-packages#9426))
([985190b](AztecProtocol/aztec-packages@985190b))
* Fix panic in comptime code
(noir-lang/noir#6361)
([f386612](AztecProtocol/aztec-packages@f386612))
* Fix panic in comptime code
(noir-lang/noir#6361)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Formatter didn't format `&gt;>=` well
(noir-lang/noir#6337)
([b4db379](AztecProtocol/aztec-packages@b4db379))
* Honk shplemini acir artifacts
([#9550](AztecProtocol/aztec-packages#9550))
([468c100](AztecProtocol/aztec-packages@468c100))
* Issue in partial notes API
([#9555](AztecProtocol/aztec-packages#9555))
([9d66c1a](AztecProtocol/aztec-packages@9d66c1a))
* LSP auto-import would import public item inside private module
(noir-lang/noir#6366)
([f386612](AztecProtocol/aztec-packages@f386612))
* Make keccak256 work with input lengths greater than 136 bytes
(noir-lang/noir#6393)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* Make sure kind tests run every master commit
([#9478](AztecProtocol/aztec-packages#9478))
([78de316](AztecProtocol/aztec-packages@78de316))
* Mutable global pattern didn't have a span
(noir-lang/noir#6328)
([b4db379](AztecProtocol/aztec-packages@b4db379))
* Remove assumed parent traits
(noir-lang/noir#6365)
([f386612](AztecProtocol/aztec-packages@f386612))
* Remove unnecessary ivpk's from aztec-nr
([#9460](AztecProtocol/aztec-packages#9460))
([c6437cc](AztecProtocol/aztec-packages@c6437cc))
* Replace npk_m_hash with addresses
([#9461](AztecProtocol/aztec-packages#9461))
([f4ed55b](AztecProtocol/aztec-packages@f4ed55b))
* Revert "feat: sol shplemini in acir tests + contract_gen"
([#9505](AztecProtocol/aztec-packages#9505))
([3351217](AztecProtocol/aztec-packages@3351217))
* Slightly better formatting of empty blocks with comments
(noir-lang/noir#6367)
([f386612](AztecProtocol/aztec-packages@f386612))
* Spot_strategy passing
([#9428](AztecProtocol/aztec-packages#9428))
([1e38d3e](AztecProtocol/aztec-packages@1e38d3e))
* **ssa:** Do not mark an array from a parameter mutable
(noir-lang/noir#6355)
([f386612](AztecProtocol/aztec-packages@f386612))
* **ssa:** Do not mark an array from a parameter mutable
(noir-lang/noir#6355)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Yarn build:fast
([#9464](AztecProtocol/aztec-packages#9464))
([bbe6d06](AztecProtocol/aztec-packages@bbe6d06))
* Yarn project bootstrap fast
([#9440](AztecProtocol/aztec-packages#9440))
([c1ebed5](AztecProtocol/aztec-packages@c1ebed5))


### Miscellaneous

* Add serdes and eq for address note
([#9544](AztecProtocol/aztec-packages#9544))
([74bcfab](AztecProtocol/aztec-packages@74bcfab))
* Add some tests for type aliases
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Add test to check that duplicate definitions generated from macros
throws error (noir-lang/noir#6351)
([f386612](AztecProtocol/aztec-packages@f386612))
* Add test to check that duplicate definitions generated from macros
throws error (noir-lang/noir#6351)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Align debug logging between AVM sim & witgen
([#9498](AztecProtocol/aztec-packages#9498))
([7c2d67a](AztecProtocol/aztec-packages@7c2d67a))
* **avm::** Fix execution tests in proving mode
([#9466](AztecProtocol/aztec-packages#9466))
([8e07de8](AztecProtocol/aztec-packages@8e07de8))
* **avm:** Allocate memory for unshifted polynomials according to their
trace col size
([#9345](AztecProtocol/aztec-packages#9345))
([a67d0e2](AztecProtocol/aztec-packages@a67d0e2))
* Bumping L2 gas and public reads constants
([#9431](AztecProtocol/aztec-packages#9431))
([91c50dd](AztecProtocol/aztec-packages@91c50dd))
* **CI:** Remove end-to-end/Earthfile
([#9364](AztecProtocol/aztec-packages#9364))
([2823cbb](AztecProtocol/aztec-packages@2823cbb)),
closes
[#9221](AztecProtocol/aztec-packages#9221)
* Clean up note processor after changes due to address
([#9401](AztecProtocol/aztec-packages#9401))
([d33c988](AztecProtocol/aztec-packages@d33c988))
* Disable e2e_fees_dapp_subscription
([#9489](AztecProtocol/aztec-packages#9489))
([26416b6](AztecProtocol/aztec-packages@26416b6))
* Disable flakey e2e_synching.test.ts
([#9439](AztecProtocol/aztec-packages#9439))
([01147a5](AztecProtocol/aztec-packages@01147a5))
* Dont show aws creds in docker fast
([#9465](AztecProtocol/aztec-packages#9465))
([a6d8f48](AztecProtocol/aztec-packages@a6d8f48))
* Fix sync scripts
([#9423](AztecProtocol/aztec-packages#9423))
([7766c8e](AztecProtocol/aztec-packages@7766c8e))
* Have 'aztec' honour the 'DEBUG' env var
([#9413](AztecProtocol/aztec-packages#9413))
([771a2ac](AztecProtocol/aztec-packages@771a2ac))
* Minor tweaks to comptime doc
(noir-lang/noir#6357)
([f386612](AztecProtocol/aztec-packages@f386612))
* Minor tweaks to comptime doc
(noir-lang/noir#6357)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Minting only private or public balance in Token TXE tests
([#9491](AztecProtocol/aztec-packages#9491))
([b8c015b](AztecProtocol/aztec-packages@b8c015b))
* Node follow prune and extend chain
([#9328](AztecProtocol/aztec-packages#9328))
([a653fd3](AztecProtocol/aztec-packages@a653fd3))
* Noir bug workaround
([#9443](AztecProtocol/aztec-packages#9443))
([f619687](AztecProtocol/aztec-packages@f619687))
* Passing partial note logs through transient storage
([#9356](AztecProtocol/aztec-packages#9356))
([8835b31](AztecProtocol/aztec-packages@8835b31))
* Redo typo PR by defitricks
([#9571](AztecProtocol/aztec-packages#9571))
([9a5dce3](AztecProtocol/aztec-packages@9a5dce3))
* Remove ovpk as param in boxes contracts
([#9495](AztecProtocol/aztec-packages#9495))
([2b24b98](AztecProtocol/aztec-packages@2b24b98))
* Remove unnecessary trait
([#9437](AztecProtocol/aztec-packages#9437))
([1db2eec](AztecProtocol/aztec-packages@1db2eec))
* Rename private function in L2 block stream
([#9481](AztecProtocol/aztec-packages#9481))
([a34d4aa](AztecProtocol/aztec-packages@a34d4aa)),
closes
[#9314](AztecProtocol/aztec-packages#9314)
* Replace relative paths to noir-protocol-circuits
([4f2d67c](AztecProtocol/aztec-packages@4f2d67c))
* Replace relative paths to noir-protocol-circuits
([33f2151](AztecProtocol/aztec-packages@33f2151))
* Replace relative paths to noir-protocol-circuits
([5247be2](AztecProtocol/aztec-packages@5247be2))
* Replace relative paths to noir-protocol-circuits
([49467ba](AztecProtocol/aztec-packages@49467ba))
* Replace relative paths to noir-protocol-circuits
([f6d714f](AztecProtocol/aztec-packages@f6d714f))
* Replace relative paths to noir-protocol-circuits
([b4841ad](AztecProtocol/aztec-packages@b4841ad))
* Replace token note with uint note
([#8143](AztecProtocol/aztec-packages#8143))
([493a3f3](AztecProtocol/aztec-packages@493a3f3))
* Run tests in metaprogramming.rs
(noir-lang/noir#6339)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Split base rollup and remove public kernel proving
([#9434](AztecProtocol/aztec-packages#9434))
([4316242](AztecProtocol/aztec-packages@4316242))
* Switch to btreeset for deterministic ordering
(noir-lang/noir#6348)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Update title from feedback
(noir-lang/noir#6334)
([b4db379](AztecProtocol/aztec-packages@b4db379))
* Use array instead of Vec in keccak256
(noir-lang/noir#6395)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* Use big endian in sha
([#9471](AztecProtocol/aztec-packages#9471))
([bc9828e](AztecProtocol/aztec-packages@bc9828e))
* Use Brillig opcode when possible for less-than operations on fields
([#9416](AztecProtocol/aztec-packages#9416))
([e50303d](AztecProtocol/aztec-packages@e50303d))


### Documentation

* Clean up docker messaging
([#9419](AztecProtocol/aztec-packages#9419))
([4c4974f](AztecProtocol/aztec-packages@4c4974f))
</details>

<details><summary>barretenberg: 0.61.0</summary>

##
[0.61.0](AztecProtocol/aztec-packages@barretenberg-v0.60.0...barretenberg-v0.61.0)
(2024-10-30)


### ⚠ BREAKING CHANGES

* **avm:** cleanup CALL
([#9551](AztecProtocol/aztec-packages#9551))
* **avm:** returndatasize + returndatacopy
([#9475](AztecProtocol/aztec-packages#9475))
* getcontractinstance instruction returns only a specified member
([#9300](AztecProtocol/aztec-packages#9300))
* **avm/brillig:** revert/rethrow oracle
([#9408](AztecProtocol/aztec-packages#9408))

### Features

* 20-30% cost reduction in recursive ipa algorithm
([#9420](AztecProtocol/aztec-packages#9420))
([a4bd3e1](AztecProtocol/aztec-packages@a4bd3e1))
* **avm/brillig:** Revert/rethrow oracle
([#9408](AztecProtocol/aztec-packages#9408))
([1bbd724](AztecProtocol/aztec-packages@1bbd724))
* **avm:** Avm replace zeromorph pcs by shplemini
([#9389](AztecProtocol/aztec-packages#9389))
([07d6dc2](AztecProtocol/aztec-packages@07d6dc2))
* **avm:** Cleanup CALL
([#9551](AztecProtocol/aztec-packages#9551))
([26adc55](AztecProtocol/aztec-packages@26adc55))
* **avm:** Merkle tree gadget
([#9205](AztecProtocol/aztec-packages#9205))
([d52b616](AztecProtocol/aztec-packages@d52b616))
* **avm:** Returndatasize + returndatacopy
([#9475](AztecProtocol/aztec-packages#9475))
([8f71006](AztecProtocol/aztec-packages@8f71006))
* **avm:** Trace contract class and contract instance
([#8840](AztecProtocol/aztec-packages#8840))
([84205d8](AztecProtocol/aztec-packages@84205d8))
* Bytecode hashing init
([#8535](AztecProtocol/aztec-packages#8535))
([2bb09e5](AztecProtocol/aztec-packages@2bb09e5))
* Derive address and class id in avm
([#8897](AztecProtocol/aztec-packages#8897))
([2ebe361](AztecProtocol/aztec-packages@2ebe361))
* Fixed number of pub inputs for databus commitment propagation
([#9336](AztecProtocol/aztec-packages#9336))
([8658abd](AztecProtocol/aztec-packages@8658abd))
* Getcontractinstance instruction returns only a specified member
([#9300](AztecProtocol/aztec-packages#9300))
([29b692f](AztecProtocol/aztec-packages@29b692f))
* Print finalized size and log dyadic size during Ultra proof
construction
([#9411](AztecProtocol/aztec-packages#9411))
([84fdc52](AztecProtocol/aztec-packages@84fdc52))
* Reorder blocks for efficiency
([#9560](AztecProtocol/aztec-packages#9560))
([10874f4](AztecProtocol/aztec-packages@10874f4))
* Sol shplemini in acir tests + contract_gen
([#8874](AztecProtocol/aztec-packages#8874))
([1c0275d](AztecProtocol/aztec-packages@1c0275d))


### Bug Fixes

* Add native verification test to honk keccak
([#9501](AztecProtocol/aztec-packages#9501))
([59810e0](AztecProtocol/aztec-packages@59810e0))
* **avm:** Address bytecode hashing comments
([#9436](AztecProtocol/aztec-packages#9436))
([a85f92a](AztecProtocol/aztec-packages@a85f92a))
* **avm:** Re-enable sha256 in bulk test, fix bug in AVM SHL/SHR
([#9496](AztecProtocol/aztec-packages#9496))
([0fe64df](AztecProtocol/aztec-packages@0fe64df))
* Honk shplemini acir artifacts
([#9550](AztecProtocol/aztec-packages#9550))
([468c100](AztecProtocol/aztec-packages@468c100))
* Revert "feat: sol shplemini in acir tests + contract_gen"
([#9505](AztecProtocol/aztec-packages#9505))
([3351217](AztecProtocol/aztec-packages@3351217))


### Miscellaneous

* Align debug logging between AVM sim & witgen
([#9498](AztecProtocol/aztec-packages#9498))
([7c2d67a](AztecProtocol/aztec-packages@7c2d67a))
* **avm::** Fix execution tests in proving mode
([#9466](AztecProtocol/aztec-packages#9466))
([8e07de8](AztecProtocol/aztec-packages@8e07de8))
* **avm:** Allocate memory for unshifted polynomials according to their
trace col size
([#9345](AztecProtocol/aztec-packages#9345))
([a67d0e2](AztecProtocol/aztec-packages@a67d0e2))
* Bumping L2 gas and public reads constants
([#9431](AztecProtocol/aztec-packages#9431))
([91c50dd](AztecProtocol/aztec-packages@91c50dd))
* Use big endian in sha
([#9471](AztecProtocol/aztec-packages#9471))
([bc9828e](AztecProtocol/aztec-packages@bc9828e))
</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.

4 participants