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: add poseidon2 hashing to native transcript #3718

Merged
merged 43 commits into from
Jan 30, 2024

Conversation

lucasxia01
Copy link
Contributor

@lucasxia01 lucasxia01 commented Dec 15, 2023

Change the transcript proof to be a vector of field elements instead of a vector of bytes. We want this more crucially for the stdlib transcript, but the native transcript should be implemented similarly.

The key contribution is the conversion functions in field_conversion.hpp/cpp, which allow for types, in particular grumpkin::fr, to be converted to and from bb::fr elements.

Some notes about why this was chosen: https://hackmd.io/2XU21v9WTx6XUSnMgZIUig. In short, it is the most efficient in terms of the number of gates.

Updates the transcript deserialization/serialization and corresponding tests and makes other style updates.

Resolves AztecProtocol/barretenberg#777

Also some notes from trying to resolve bb.js ACIR tests: https://hackmd.io/OrQUD_nTQLeIZVvy4zpzHA

Checklist:

Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge.

  • If the pull request requires a cryptography review (e.g. cryptographic algorithm implementations) I have added the 'crypto' tag.
  • I have reviewed my diff in github, line by line and removed unexpected formatting changes, testing logs, or commented-out code.
  • Every change is related to the PR description.
  • I have linked this pull request to relevant issues (if any exist).

@AztecBot
Copy link
Collaborator

AztecBot commented Dec 15, 2023

Benchmark results

No metrics with a significant change found.

Detailed results

All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.

This benchmark source data is available in JSON format on S3 here.

Values are compared against data from master at commit 6e1d958b and shown if the difference exceeds 1%.

L2 block published to L1

Each column represents the number of txs on an L2 block published to L1.

Metric 8 txs 32 txs 128 txs
l1_rollup_calldata_size_in_bytes 45,412 179,524 716,068
l1_rollup_calldata_gas 221,692 866,788 3,448,492
l1_rollup_execution_gas 314,179 984,528 3,668,149
l2_block_processing_time_in_ms 1,153 4,391 17,328 (+1%)
note_successful_decrypting_time_in_ms 267 916 (+1%) 3,494 (+1%)
note_trial_decrypting_time_in_ms 76.5 (-1%) 45.4 (+28%) 145 (+1%)
l2_block_building_time_in_ms 18,099 (+1%) 71,494 287,147
l2_block_rollup_simulation_time_in_ms 12,987 51,283 206,750
l2_block_public_tx_process_time_in_ms 5,080 20,070 80,147

L2 chain processing

Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric 5 blocks 10 blocks
node_history_sync_time_in_ms 13,410 (-1%) 25,704 (+1%)
note_history_successful_decrypting_time_in_ms 2,285 (-9%) 4,404 (-1%)
note_history_trial_decrypting_time_in_ms 158 (+58%) 194 (-4%)
node_database_size_in_bytes 17,322,064 33,026,128 (-1%)
pxe_database_size_in_bytes 29,923 59,478

Circuits stats

Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit circuit_simulation_time_in_ms circuit_input_size_in_bytes circuit_output_size_in_bytes
private-kernel-init 314 44,897 26,193
private-kernel-ordering 192 44,513 14,929
base-rollup 1,395 128,970 881
root-rollup 81.6 4,088 677
private-kernel-inner 421 72,056 26,193
public-kernel-private-input 240 32,615 26,193
public-kernel-non-first-iteration 240 32,657 26,193
merge-rollup 7.58 2,608 881

Tree insertion stats

The duration to insert a fixed batch of leaves into each tree type.

Metric 1 leaves 2 leaves 8 leaves 16 leaves 32 leaves 128 leaves 64 leaves 512 leaves 1024 leaves 2048 leaves 8192 leaves
batch_insert_into_append_only_tree_16_depth_ms 10.2 11.6 (+9%) 12.6 16.5 (-3%) 23.0 63.8 N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_16_depth_hash_count 16.9 17.5 23.0 31.6 47.0 143 N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_16_depth_hash_ms 0.592 0.647 (+9%) 0.536 0.512 (-3%) 0.479 0.441 N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_32_depth_ms N/A N/A N/A N/A N/A 74.5 47.6 239 (-1%) 460 901 3,556
batch_insert_into_append_only_tree_32_depth_hash_count N/A N/A N/A N/A N/A 159 96.0 543 1,055 2,079 8,223
batch_insert_into_append_only_tree_32_depth_hash_ms N/A N/A N/A N/A N/A 0.461 0.488 0.436 (-1%) 0.431 0.428 0.428
batch_insert_into_indexed_tree_20_depth_ms N/A N/A N/A N/A N/A 104 57.0 (+1%) 348 685 1,371 5,427 (+1%)
batch_insert_into_indexed_tree_20_depth_hash_count N/A N/A N/A N/A N/A 197 104 691 1,363 2,707 10,771
batch_insert_into_indexed_tree_20_depth_hash_ms N/A N/A N/A N/A N/A 0.494 0.501 (+1%) 0.475 0.472 0.476 0.473
batch_insert_into_indexed_tree_40_depth_ms N/A N/A N/A 56.6 N/A N/A N/A N/A N/A N/A N/A
batch_insert_into_indexed_tree_40_depth_hash_count N/A N/A N/A 94.1 N/A N/A N/A N/A N/A N/A N/A
batch_insert_into_indexed_tree_40_depth_hash_ms N/A N/A N/A 0.580 N/A N/A N/A N/A N/A N/A N/A

Miscellaneous

Transaction sizes based on how many contracts are deployed in the tx.

Metric 0 deployed contracts 1 deployed contracts
tx_size_in_bytes 15,575 36,576

Transaction processing duration by data writes.

Metric 0 new commitments 1 new commitments
tx_pxe_processing_time_ms 520 (+3%) 1,354
Metric 1 public data writes
tx_sequencer_processing_time_ms 623

Base automatically changed from lx/poseidon2-stdlib to master January 11, 2024 23:18
@lucasxia01 lucasxia01 force-pushed the lx/transcript-native-field-refactor branch from a36db49 to 029350c Compare January 13, 2024 01:32
@lucasxia01 lucasxia01 self-assigned this Jan 19, 2024
}

template <std::integral T>
constexpr size_t calc_num_frs(T* /*unused*/) // TODO: check if std integral includes uint256 and uint512, those are too
Copy link
Collaborator

@ludamad ludamad Jan 19, 2024

Choose a reason for hiding this comment

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

integral does not include uint128 or above

return fr_vec;
}

// TODO: why is this needed here but not for the other 3 functions?
Copy link
Contributor Author

Choose a reason for hiding this comment

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

seems like we have an asymmetry in our sumcheck prover/verifier. We send_to_verifier a ClaimedEvaluations (Flavor::AllValues) object, and receive_from_prover a std::array<FF, NUM_POLYNOMIALS> object. The underlying data of Flavor::AllValues ends up being a std::array<FF, NUM_POLYNOMIALS>, but its annoying that this asymmetry exists.

Transcript verifier_transcript{ prover_transcript.export_proof() };
// export resets read/write state and sets start in prep for next export
EXPECT_STATE(prover_transcript, /*start*/ 32, /*written*/ 0, /*read*/ 0);
EXPECT_STATE(prover_transcript, /*start*/ 1, /*written*/ 0, /*read*/ 0);
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 test should probably try sending all the different types of objects.

Copy link
Contributor

Choose a reason for hiding this comment

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

agreed

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

Copy link
Contributor

@ledwards2225 ledwards2225 left a comment

Choose a reason for hiding this comment

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

Overall looks good. Seems like a nice simplification conceptually in many ways. Definitely glad I don't have to look at things like auto proof = proof.proof_data; anymore. Left comments mostly trying to get some clarification and ensure that unresolved TODOs are addressed appropriately.

@@ -125,14 +127,16 @@ WASM_EXPORT void acir_get_proving_key(in_ptr acir_composer_ptr, uint8_t const* a
WASM_EXPORT void acir_goblin_verify_accumulator(in_ptr acir_composer_ptr, uint8_t const* proof_buf, bool* result)
{
auto acir_composer = reinterpret_cast<acir_proofs::GoblinAcirComposer*>(*acir_composer_ptr);
auto proof = from_buffer<std::vector<uint8_t>>(proof_buf);
auto proof_data_buf = from_buffer<std::vector<uint8_t>>(proof_buf);
auto proof = from_buffer<std::vector<bb::fr>>(proof_data_buf);
Copy link
Contributor

Choose a reason for hiding this comment

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

flagging: should these transformations just become part of the methods the data is input to?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

clarify what that means?

Copy link
Contributor

Choose a reason for hiding this comment

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

never mind - this was a note to self as I was going through. Nothing to do here

*result = acir_composer->verify_accumulator(proof);
}

WASM_EXPORT void acir_goblin_verify(in_ptr acir_composer_ptr, uint8_t const* proof_buf, bool* result)
{
auto acir_composer = reinterpret_cast<acir_proofs::GoblinAcirComposer*>(*acir_composer_ptr);
auto proof = from_buffer<std::vector<uint8_t>>(proof_buf);
auto proof_data_buf = from_buffer<std::vector<uint8_t>>(proof_buf);
auto proof = from_buffer<std::vector<bb::fr>>(proof_data_buf);
Copy link
Contributor

Choose a reason for hiding this comment

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

So here and elsewhere we're taking a uint8_t* then reading into a std::vector<uint8_t> then reading that into a std::vector<bb::fr>. Any reason we can't skip the intermediate step?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We can't skip an intermediate step because to_heap_buffer does not call to_buffer on the first call. If I can change that part of to_heap_buffer without breaking other things, then it might be fine, but just went with this to be safe.

*/
grumpkin::fr convert_bn254_frs_to_grumpkin_fr(const bb::fr& low_bits_in, const bb::fr& high_bits_in)
{
// TODO: figure out can_overflow, maximum_bitlength in stdlib version
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 resolved? Can you make an issue if not?

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, I'll remove this here. Shouldn't impact the native stuff.

* @param input
* @return std::array<bb::fr, 2>
*/
std::array<bb::fr, 2> convert_grumpkin_fr_to_bn254_frs(const grumpkin::fr& input)
Copy link
Contributor

Choose a reason for hiding this comment

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

If I understand correctly, this is implicitly assuming that the base field modulus for bn254 is less than that for grumpkin? (Can't remember whether that's true). Can you add some comments explaining why this conversion is ok?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes, that's right. I'll add a comment though

Transcript verifier_transcript{ prover_transcript.export_proof() };
// export resets read/write state and sets start in prep for next export
EXPECT_STATE(prover_transcript, /*start*/ 32, /*written*/ 0, /*read*/ 0);
EXPECT_STATE(prover_transcript, /*start*/ 1, /*written*/ 0, /*read*/ 0);
Copy link
Contributor

Choose a reason for hiding this comment

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

agreed

@@ -35,17 +35,18 @@ class GoblinUltraTranscriptTests : public ::testing::Test {
size_t MAX_PARTIAL_RELATION_LENGTH = Flavor::BATCHED_RELATION_PARTIAL_LENGTH;
size_t NUM_SUBRELATIONS = Flavor::NUM_SUBRELATIONS;

size_t size_FF = sizeof(FF);
Copy link
Contributor

Choose a reason for hiding this comment

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

agreed

size_t size_uni = MAX_PARTIAL_RELATION_LENGTH * size_FF;
size_t size_evals = (Flavor::NUM_ALL_ENTITIES)*size_FF;
size_t size_uint32 = 4;
size_t size_Fr = 1;
Copy link
Contributor

Choose a reason for hiding this comment

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

Think I already called this out somewhere but if a "size" variable isnt specific, I assume it refers to bytes. Can we make this frs_per_whatever or something?

curve::BN254::AffineElement x1(1, 2);
check_conversion(x1);

curve::BN254::AffineElement x2(grumpkin::fr::modulus_minus_two, grumpkin::fr::modulus_minus_two);
Copy link
Contributor

Choose a reason for hiding this comment

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

I notice you're using modulus_minus_two a lot (reasonable) but never modulus_minus_one which actually seems like the more natural choice. Any particular reason?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

modulus_minus_one didn't seem to exist, but modulus_minus_two did. Not sure why that happened in the first place but I could definitely just create modulus minus one.

* @tparam T
* @return constexpr size_t
*/
template <typename T> constexpr size_t calc_num_254_frs();
Copy link
Contributor Author

Choose a reason for hiding this comment

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

whoops, that's a typo. Should be calc_num_bn254_frs

Copy link
Contributor

@ledwards2225 ledwards2225 left a comment

Choose a reason for hiding this comment

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

LG, nice work. Thanks for the updates. Left just a couple more minor suggestions to consider

return fr_vec;
}
/**
* @brief Converts grumpkin::fr to 2 bb::fr elements
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm slightly torn on this because I generally think more documentation is better but I think it's best to only add this level of description to either the declaration OR the definition, not both. It's a bit less clutter that way and it also avoids the two things diverging and causing confusion about the source of truth. Excellent comments here - but maybe only need them in one place

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 put the comment in the definition then since it has implementation details

@lucasxia01 lucasxia01 enabled auto-merge (squash) January 30, 2024 22:02
@lucasxia01 lucasxia01 enabled auto-merge (squash) January 30, 2024 22:36
@lucasxia01 lucasxia01 merged commit afcfa71 into master Jan 30, 2024
80 of 82 checks passed
@lucasxia01 lucasxia01 deleted the lx/transcript-native-field-refactor branch January 30, 2024 23:01
@Maddiaa0 Maddiaa0 mentioned this pull request Jan 31, 2024
ludamad pushed a commit that referenced this pull request Jan 31, 2024
fix dirty merge after
#3718
AztecBot pushed a commit to AztecProtocol/barretenberg that referenced this pull request Jan 31, 2024
rahul-kothari pushed a commit that referenced this pull request Feb 6, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.22.0](aztec-packages-v0.21.0...aztec-packages-v0.22.0)
(2024-02-06)


### ⚠ BREAKING CHANGES

* rename bigint_neg into bigint_sub
([#4420](#4420))
* Add expression width into acir
([#4014](#4014))
* Use NoteSerialize and NoteDeserialize traits for note specific
serialization
([#4383](#4383))
* Unencrypted logs are not strings
([#4392](#4392))
* init storage macro
([#4200](#4200))
* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](#4221))
* introduce compute_note_hash_for_(consumption/insertion)
([#4344](#4344))
* replace Note::compute_note_hash with Note::compute_note_content_hash
([#4342](#4342))
* Include contract class id in deployment info
([#4223](#4223))
* Serialize, Deserialize and NoteInterface as Traits
([#4135](#4135))

### Features

* Add aztec node to client execution and nuke state info provider
[#4320](#4320)
([#4401](#4401))
([2dec0cc](2dec0cc))
* Add bit size to const opcode
([#4385](#4385))
([b2a000e](b2a000e))
* Add expression width into acir
([#4014](#4014))
([f09e8fc](f09e8fc))
* Add meta_hwm to PrivateCircuitPublicInputs
([#4341](#4341))
([4f248b5](4f248b5))
* Add poseidon2 hashing to native transcript
([#3718](#3718))
([afcfa71](afcfa71))
* Adding slitherin detectors
([#4246](#4246))
([7cdc186](7cdc186))
* Allow using of current block in inclusion proofs
([#4285](#4285))
([728c5ac](728c5ac)),
closes
[#4274](#4274)
* **avm-transpiler:** Brillig to AVM transpiler
([#4227](#4227))
([c366c6e](c366c6e))
* **avm:** Add command to call avm proving in bb binary
([#4369](#4369))
([4f6d607](4f6d607)),
closes
[#4039](#4039)
* **avm:** Add revert tracking to the journal
([#4349](#4349))
([1615803](1615803))
* **avm:** Back in avm context with macro - refactor context
([#4438](#4438))
([ccf9b17](ccf9b17))
* **avm:** Complete SET instruction
([#4378](#4378))
([013891f](013891f))
* **avm:** Implement avm state getter opcodes within noir contracts
([#4402](#4402))
([9f2a6eb](9f2a6eb))
* **avm:** Implement serialization for all existing operations
([#4338](#4338))
([13e0683](13e0683))
* **avm:** Keep history of reads and writes in journal
([#4315](#4315))
([cdf1baf](cdf1baf))
* **aztec-nr:** Initial work for aztec public vm macro
([#4400](#4400))
([0024590](0024590))
* **bb:** Wasmtime and remote benchmarking
([#4204](#4204))
([fd27808](fd27808))
* Contract class registerer contract
([#4403](#4403))
([d953090](d953090)),
closes
[#4069](#4069)
[#4070](#4070)
* Crude stable var implementation
([#4289](#4289))
([5f9eee4](5f9eee4))
* **docs:** Docs deeper dive into unconstrained functions
([#4233](#4233))
([6af548e](6af548e))
* Emit single functions from class registerer
([#4429](#4429))
([19e03ad](19e03ad)),
closes
[#4427](#4427)
* Extend Historical Access APIs
[#4179](#4179)
([#4375](#4375))
([c918d8d](c918d8d))
* Folding `GoblinUltra` instances in ProtoGalaxy
([#4340](#4340))
([8569e7c](8569e7c))
* Hashing output of `serialize()` in noir + more tests
([#4365](#4365))
([5a71bb9](5a71bb9))
* Implementation for bigint opcodes
([#4288](#4288))
([b61dace](b61dace))
* Improve ivc bench
([#4242](#4242))
([9d28354](9d28354))
* Include contract class id in deployment info
([#4223](#4223))
([0ed4126](0ed4126)),
closes
[#4054](#4054)
* Init storage macro
([#4200](#4200))
([11d9697](11d9697))
* Memory only brillig
([#4215](#4215))
([018177b](018177b))
* Nullified note retrieval in get_notes and view_notes
([#4238](#4238))
([8d02eb7](8d02eb7))
* Private calls and initialization of undeployed contracts
([#4362](#4362))
([f31c181](f31c181)),
closes
[#4057](#4057)
[#4058](#4058)
[#4059](#4059)
* Sequencer processes transactions in phases
([#4345](#4345))
([78cc709](78cc709))
* Unencrypted logs are not strings
([#4392](#4392))
([25a7ea7](25a7ea7))
* Verify function against contract class id in private kernel
([#4337](#4337))
([e1d832d](e1d832d)),
closes
[#4056](#4056)


### Bug Fixes

* **avm-transpiler:** Avm-transpiler bootstrap by tying down rust
version
([#4347](#4347))
([09d0730](09d0730))
* **avm-transpiler:** Bump rust toolchain version for transpiler
([#4356](#4356))
([75e30b9](75e30b9))
* **avm:** Fix SendL2ToL1Message implementation
([#4367](#4367))
([ee560c3](ee560c3))
* Aztec binary fixes
([#4273](#4273))
([84e1f7d](84e1f7d))
* Bb build
([#4317](#4317))
([82f5f03](82f5f03))
* Load contract artifact from json
([#4352](#4352))
([47a0a79](47a0a79))
* Mac build
([#4336](#4336))
([aeb4cf0](aeb4cf0))
* **noir-contracts:** Disable transpilation for now
([#4372](#4372))
([37662b7](37662b7))
* Nr codegen to use new protocol types path
([#4353](#4353))
([84e63b1](84e63b1)),
closes
[#4193](#4193)
* Relative LogFn import
([#4328](#4328))
([1faead5](1faead5))
* Release the size of goblin translator
([#4259](#4259))
([6e1d958](6e1d958))
* Transpiler build
([#4386](#4386))
([032ddc5](032ddc5))


### Miscellaneous

* `PublicCircuitPublicInputs` and `PrivateCircuitPublicInputs` cleanup
([#4360](#4360))
([b92d690](b92d690))
* `toFields()`/`fromFields(...)` methods in more classes
([#4335](#4335))
([433b9eb](433b9eb))
* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](#4221))
([9c965a7](9c965a7))
* Add bigint solver in ACVM and add a unit test for bigints in Noir
([#4415](#4415))
([e4a2fe9](e4a2fe9))
* Add bootstrap_cache for avm-transpiler
([#4357](#4357))
([bfebebb](bfebebb))
* Add disclaimer
([#4393](#4393))
([6895f52](6895f52))
* Add migration note for serialization change
([#4414](#4414))
([968a3a0](968a3a0))
* **avm:** Make interpreter a function not a class
([#4272](#4272))
([14e8c5c](14e8c5c))
* **avm:** Refactor AVM Simulator and fix issues
([#4424](#4424))
([a6179bd](a6179bd))
* Call stack item cleanup
([#4381](#4381))
([341b0a1](341b0a1))
* Check loading Nargo artifacts works in the cli
([#4355](#4355))
([43b58b3](43b58b3))
* Cleanup + various doc improvements
([#4282](#4282))
([648229c](648229c)),
closes
[#4264](#4264)
* Collapse bb::honk
([#4318](#4318))
([5853af4](5853af4))
* Consistent naming of serialization method
([#4379](#4379))
([148d5dc](148d5dc))
* Do not run forge fmt because not everyone has forge installed
([#4430](#4430))
([ecb6c3f](ecb6c3f))
* **docs:** Update broken link ref in slow_updates_tree.md
([#4339](#4339))
([2599d7f](2599d7f))
* Eth address tech debt cleanup
([#4442](#4442))
([153989f](153989f))
* Extract merge from UC and simplify
([#4343](#4343))
([54fd794](54fd794))
* Fix bb wasm build when using remote cache
([#4397](#4397))
([14e57cb](14e57cb))
* Fix clippy warnings in `avm-transpiler`
([#4416](#4416))
([e54ecd2](e54ecd2))
* Format l1-contracts after generating constants
([#4448](#4448))
([de11994](de11994))
* Git subrepo commit (merge) noir
([#4321](#4321))
([348d18a](348d18a))
* Git subrepo pull (merge) noir
([#4331](#4331))
([683f782](683f782))
* Implementing `deserialize()` in Noir structs
([#4384](#4384))
([e63bbae](e63bbae))
* Introduce compute_note_hash_for_(consumption/insertion)
([#4344](#4344))
([26a0d49](26a0d49))
* Optimize prove_note_validity
[#4418](#4418)
([#4426](#4426))
([4de2540](4de2540))
* Poseidon2 hash uses span instead of vector
([#4003](#4003))
([f63e7a9](f63e7a9))
* Reenable private kernel function tree checks
([#4358](#4358))
([e7db0da](e7db0da))
* Remove hardcoded storage slot values
([#4398](#4398))
([d2294a4](d2294a4))
* Rename bigint_neg into bigint_sub
([#4420](#4420))
([57824fe](57824fe))
* Replace Note::compute_note_hash with Note::compute_note_content_hash
([#4342](#4342))
([8368659](8368659))
* Replace relative paths to noir-protocol-circuits
([23de650](23de650))
* Replace relative paths to noir-protocol-circuits
([b8d427f](b8d427f))
* Replace relative paths to noir-protocol-circuits
([113dec1](113dec1))
* Replace relative paths to noir-protocol-circuits
([a79093b](a79093b))
* Replace relative paths to noir-protocol-circuits
([808b4eb](808b4eb))
* Serialize, Deserialize and NoteInterface as Traits
([#4135](#4135))
([9e6605c](9e6605c))
* Simpler noir sync
([#4376](#4376))
([665b35e](665b35e))
* Surpress chained macro warning
([#4396](#4396))
([5e9c790](5e9c790))
* Switch to macos-14 for m1 runners
([#3456](#3456))
([ca5b6f8](ca5b6f8))
* Testing `toFields()` length
([#4364](#4364))
([5d3fce3](5d3fce3))
* Typing contents of `MessageLoadOracleInputs`
([#4351](#4351))
([433babd](433babd))
* Update docs on comparators
([#4281](#4281))
([cc2ce9c](cc2ce9c))
* Updating block hash to be header.hash()
([#4286](#4286))
([d4125e1](d4125e1))
* Use NoteSerialize and NoteDeserialize traits for note specific
serialization
([#4383](#4383))
([14dd0b8](14dd0b8))


### Documentation

* Add simple api description for note_getter_options.status
([#4329](#4329))
([cc17afe](cc17afe))
* Document stable public state usage
([#4324](#4324))
([13f709b](13f709b)),
closes
[#4325](#4325)
* Minor quickstart fixes
([#4330](#4330))
([f85a870](f85a870))
* Update contract deployment section in YP
([#4290](#4290))
([e99a882](e99a882))
* **yp:** AVM circuit - user memory section
([#4323](#4323))
([8928fb1](8928fb1)),
closes
[#4043](#4043)
</details>

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

##
[0.22.0](barretenberg.js-v0.21.0...barretenberg.js-v0.22.0)
(2024-02-06)


### ⚠ BREAKING CHANGES

* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](#4221))

### Miscellaneous

* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](#4221))
([9c965a7](9c965a7))
</details>

<details><summary>barretenberg: 0.22.0</summary>

##
[0.22.0](barretenberg-v0.21.0...barretenberg-v0.22.0)
(2024-02-06)


### ⚠ BREAKING CHANGES

* rename bigint_neg into bigint_sub
([#4420](#4420))
* Add expression width into acir
([#4014](#4014))
* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](#4221))

### Features

* Add bit size to const opcode
([#4385](#4385))
([b2a000e](b2a000e))
* Add expression width into acir
([#4014](#4014))
([f09e8fc](f09e8fc))
* Add poseidon2 hashing to native transcript
([#3718](#3718))
([afcfa71](afcfa71))
* **avm:** Add command to call avm proving in bb binary
([#4369](#4369))
([4f6d607](4f6d607)),
closes
[#4039](#4039)
* **avm:** Back in avm context with macro - refactor context
([#4438](#4438))
([ccf9b17](ccf9b17))
* **bb:** Wasmtime and remote benchmarking
([#4204](#4204))
([fd27808](fd27808))
* Folding `GoblinUltra` instances in ProtoGalaxy
([#4340](#4340))
([8569e7c](8569e7c))
* Implementation for bigint opcodes
([#4288](#4288))
([b61dace](b61dace))
* Improve ivc bench
([#4242](#4242))
([9d28354](9d28354))
* Memory only brillig
([#4215](#4215))
([018177b](018177b))


### Bug Fixes

* Bb build
([#4317](#4317))
([82f5f03](82f5f03))
* Mac build
([#4336](#4336))
([aeb4cf0](aeb4cf0))
* Release the size of goblin translator
([#4259](#4259))
([6e1d958](6e1d958))


### Miscellaneous

* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](#4221))
([9c965a7](9c965a7))
* Collapse bb::honk
([#4318](#4318))
([5853af4](5853af4))
* Extract merge from UC and simplify
([#4343](#4343))
([54fd794](54fd794))
* Fix bb wasm build when using remote cache
([#4397](#4397))
([14e57cb](14e57cb))
* Poseidon2 hash uses span instead of vector
([#4003](#4003))
([f63e7a9](f63e7a9))
* Rename bigint_neg into bigint_sub
([#4420](#4420))
([57824fe](57824fe))
</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 Feb 7, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.22.0](AztecProtocol/aztec-packages@aztec-packages-v0.21.0...aztec-packages-v0.22.0)
(2024-02-06)


### ⚠ BREAKING CHANGES

* rename bigint_neg into bigint_sub
([#4420](AztecProtocol/aztec-packages#4420))
* Add expression width into acir
([#4014](AztecProtocol/aztec-packages#4014))
* Use NoteSerialize and NoteDeserialize traits for note specific
serialization
([#4383](AztecProtocol/aztec-packages#4383))
* Unencrypted logs are not strings
([#4392](AztecProtocol/aztec-packages#4392))
* init storage macro
([#4200](AztecProtocol/aztec-packages#4200))
* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](AztecProtocol/aztec-packages#4221))
* introduce compute_note_hash_for_(consumption/insertion)
([#4344](AztecProtocol/aztec-packages#4344))
* replace Note::compute_note_hash with Note::compute_note_content_hash
([#4342](AztecProtocol/aztec-packages#4342))
* Include contract class id in deployment info
([#4223](AztecProtocol/aztec-packages#4223))
* Serialize, Deserialize and NoteInterface as Traits
([#4135](AztecProtocol/aztec-packages#4135))

### Features

* Add aztec node to client execution and nuke state info provider
[#4320](AztecProtocol/aztec-packages#4320)
([#4401](AztecProtocol/aztec-packages#4401))
([2dec0cc](AztecProtocol/aztec-packages@2dec0cc))
* Add bit size to const opcode
([#4385](AztecProtocol/aztec-packages#4385))
([b2a000e](AztecProtocol/aztec-packages@b2a000e))
* Add expression width into acir
([#4014](AztecProtocol/aztec-packages#4014))
([f09e8fc](AztecProtocol/aztec-packages@f09e8fc))
* Add meta_hwm to PrivateCircuitPublicInputs
([#4341](AztecProtocol/aztec-packages#4341))
([4f248b5](AztecProtocol/aztec-packages@4f248b5))
* Add poseidon2 hashing to native transcript
([#3718](AztecProtocol/aztec-packages#3718))
([afcfa71](AztecProtocol/aztec-packages@afcfa71))
* Adding slitherin detectors
([#4246](AztecProtocol/aztec-packages#4246))
([7cdc186](AztecProtocol/aztec-packages@7cdc186))
* Allow using of current block in inclusion proofs
([#4285](AztecProtocol/aztec-packages#4285))
([728c5ac](AztecProtocol/aztec-packages@728c5ac)),
closes
[#4274](AztecProtocol/aztec-packages#4274)
* **avm-transpiler:** Brillig to AVM transpiler
([#4227](AztecProtocol/aztec-packages#4227))
([c366c6e](AztecProtocol/aztec-packages@c366c6e))
* **avm:** Add command to call avm proving in bb binary
([#4369](AztecProtocol/aztec-packages#4369))
([4f6d607](AztecProtocol/aztec-packages@4f6d607)),
closes
[#4039](AztecProtocol/aztec-packages#4039)
* **avm:** Add revert tracking to the journal
([#4349](AztecProtocol/aztec-packages#4349))
([1615803](AztecProtocol/aztec-packages@1615803))
* **avm:** Back in avm context with macro - refactor context
([#4438](AztecProtocol/aztec-packages#4438))
([ccf9b17](AztecProtocol/aztec-packages@ccf9b17))
* **avm:** Complete SET instruction
([#4378](AztecProtocol/aztec-packages#4378))
([013891f](AztecProtocol/aztec-packages@013891f))
* **avm:** Implement avm state getter opcodes within noir contracts
([#4402](AztecProtocol/aztec-packages#4402))
([9f2a6eb](AztecProtocol/aztec-packages@9f2a6eb))
* **avm:** Implement serialization for all existing operations
([#4338](AztecProtocol/aztec-packages#4338))
([13e0683](AztecProtocol/aztec-packages@13e0683))
* **avm:** Keep history of reads and writes in journal
([#4315](AztecProtocol/aztec-packages#4315))
([cdf1baf](AztecProtocol/aztec-packages@cdf1baf))
* **aztec-nr:** Initial work for aztec public vm macro
([#4400](AztecProtocol/aztec-packages#4400))
([0024590](AztecProtocol/aztec-packages@0024590))
* **bb:** Wasmtime and remote benchmarking
([#4204](AztecProtocol/aztec-packages#4204))
([fd27808](AztecProtocol/aztec-packages@fd27808))
* Contract class registerer contract
([#4403](AztecProtocol/aztec-packages#4403))
([d953090](AztecProtocol/aztec-packages@d953090)),
closes
[#4069](AztecProtocol/aztec-packages#4069)
[#4070](AztecProtocol/aztec-packages#4070)
* Crude stable var implementation
([#4289](AztecProtocol/aztec-packages#4289))
([5f9eee4](AztecProtocol/aztec-packages@5f9eee4))
* **docs:** Docs deeper dive into unconstrained functions
([#4233](AztecProtocol/aztec-packages#4233))
([6af548e](AztecProtocol/aztec-packages@6af548e))
* Emit single functions from class registerer
([#4429](AztecProtocol/aztec-packages#4429))
([19e03ad](AztecProtocol/aztec-packages@19e03ad)),
closes
[#4427](AztecProtocol/aztec-packages#4427)
* Extend Historical Access APIs
[#4179](AztecProtocol/aztec-packages#4179)
([#4375](AztecProtocol/aztec-packages#4375))
([c918d8d](AztecProtocol/aztec-packages@c918d8d))
* Folding `GoblinUltra` instances in ProtoGalaxy
([#4340](AztecProtocol/aztec-packages#4340))
([8569e7c](AztecProtocol/aztec-packages@8569e7c))
* Hashing output of `serialize()` in noir + more tests
([#4365](AztecProtocol/aztec-packages#4365))
([5a71bb9](AztecProtocol/aztec-packages@5a71bb9))
* Implementation for bigint opcodes
([#4288](AztecProtocol/aztec-packages#4288))
([b61dace](AztecProtocol/aztec-packages@b61dace))
* Improve ivc bench
([#4242](AztecProtocol/aztec-packages#4242))
([9d28354](AztecProtocol/aztec-packages@9d28354))
* Include contract class id in deployment info
([#4223](AztecProtocol/aztec-packages#4223))
([0ed4126](AztecProtocol/aztec-packages@0ed4126)),
closes
[#4054](AztecProtocol/aztec-packages#4054)
* Init storage macro
([#4200](AztecProtocol/aztec-packages#4200))
([11d9697](AztecProtocol/aztec-packages@11d9697))
* Memory only brillig
([#4215](AztecProtocol/aztec-packages#4215))
([018177b](AztecProtocol/aztec-packages@018177b))
* Nullified note retrieval in get_notes and view_notes
([#4238](AztecProtocol/aztec-packages#4238))
([8d02eb7](AztecProtocol/aztec-packages@8d02eb7))
* Private calls and initialization of undeployed contracts
([#4362](AztecProtocol/aztec-packages#4362))
([f31c181](AztecProtocol/aztec-packages@f31c181)),
closes
[#4057](AztecProtocol/aztec-packages#4057)
[#4058](AztecProtocol/aztec-packages#4058)
[#4059](AztecProtocol/aztec-packages#4059)
* Sequencer processes transactions in phases
([#4345](AztecProtocol/aztec-packages#4345))
([78cc709](AztecProtocol/aztec-packages@78cc709))
* Unencrypted logs are not strings
([#4392](AztecProtocol/aztec-packages#4392))
([25a7ea7](AztecProtocol/aztec-packages@25a7ea7))
* Verify function against contract class id in private kernel
([#4337](AztecProtocol/aztec-packages#4337))
([e1d832d](AztecProtocol/aztec-packages@e1d832d)),
closes
[#4056](AztecProtocol/aztec-packages#4056)


### Bug Fixes

* **avm-transpiler:** Avm-transpiler bootstrap by tying down rust
version
([#4347](AztecProtocol/aztec-packages#4347))
([09d0730](AztecProtocol/aztec-packages@09d0730))
* **avm-transpiler:** Bump rust toolchain version for transpiler
([#4356](AztecProtocol/aztec-packages#4356))
([75e30b9](AztecProtocol/aztec-packages@75e30b9))
* **avm:** Fix SendL2ToL1Message implementation
([#4367](AztecProtocol/aztec-packages#4367))
([ee560c3](AztecProtocol/aztec-packages@ee560c3))
* Aztec binary fixes
([#4273](AztecProtocol/aztec-packages#4273))
([84e1f7d](AztecProtocol/aztec-packages@84e1f7d))
* Bb build
([#4317](AztecProtocol/aztec-packages#4317))
([82f5f03](AztecProtocol/aztec-packages@82f5f03))
* Load contract artifact from json
([#4352](AztecProtocol/aztec-packages#4352))
([47a0a79](AztecProtocol/aztec-packages@47a0a79))
* Mac build
([#4336](AztecProtocol/aztec-packages#4336))
([aeb4cf0](AztecProtocol/aztec-packages@aeb4cf0))
* **noir-contracts:** Disable transpilation for now
([#4372](AztecProtocol/aztec-packages#4372))
([37662b7](AztecProtocol/aztec-packages@37662b7))
* Nr codegen to use new protocol types path
([#4353](AztecProtocol/aztec-packages#4353))
([84e63b1](AztecProtocol/aztec-packages@84e63b1)),
closes
[#4193](AztecProtocol/aztec-packages#4193)
* Relative LogFn import
([#4328](AztecProtocol/aztec-packages#4328))
([1faead5](AztecProtocol/aztec-packages@1faead5))
* Release the size of goblin translator
([#4259](AztecProtocol/aztec-packages#4259))
([6e1d958](AztecProtocol/aztec-packages@6e1d958))
* Transpiler build
([#4386](AztecProtocol/aztec-packages#4386))
([032ddc5](AztecProtocol/aztec-packages@032ddc5))


### Miscellaneous

* `PublicCircuitPublicInputs` and `PrivateCircuitPublicInputs` cleanup
([#4360](AztecProtocol/aztec-packages#4360))
([b92d690](AztecProtocol/aztec-packages@b92d690))
* `toFields()`/`fromFields(...)` methods in more classes
([#4335](AztecProtocol/aztec-packages#4335))
([433b9eb](AztecProtocol/aztec-packages@433b9eb))
* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](AztecProtocol/aztec-packages#4221))
([9c965a7](AztecProtocol/aztec-packages@9c965a7))
* Add bigint solver in ACVM and add a unit test for bigints in Noir
([#4415](AztecProtocol/aztec-packages#4415))
([e4a2fe9](AztecProtocol/aztec-packages@e4a2fe9))
* Add bootstrap_cache for avm-transpiler
([#4357](AztecProtocol/aztec-packages#4357))
([bfebebb](AztecProtocol/aztec-packages@bfebebb))
* Add disclaimer
([#4393](AztecProtocol/aztec-packages#4393))
([6895f52](AztecProtocol/aztec-packages@6895f52))
* Add migration note for serialization change
([#4414](AztecProtocol/aztec-packages#4414))
([968a3a0](AztecProtocol/aztec-packages@968a3a0))
* **avm:** Make interpreter a function not a class
([#4272](AztecProtocol/aztec-packages#4272))
([14e8c5c](AztecProtocol/aztec-packages@14e8c5c))
* **avm:** Refactor AVM Simulator and fix issues
([#4424](AztecProtocol/aztec-packages#4424))
([a6179bd](AztecProtocol/aztec-packages@a6179bd))
* Call stack item cleanup
([#4381](AztecProtocol/aztec-packages#4381))
([341b0a1](AztecProtocol/aztec-packages@341b0a1))
* Check loading Nargo artifacts works in the cli
([#4355](AztecProtocol/aztec-packages#4355))
([43b58b3](AztecProtocol/aztec-packages@43b58b3))
* Cleanup + various doc improvements
([#4282](AztecProtocol/aztec-packages#4282))
([648229c](AztecProtocol/aztec-packages@648229c)),
closes
[#4264](AztecProtocol/aztec-packages#4264)
* Collapse bb::honk
([#4318](AztecProtocol/aztec-packages#4318))
([5853af4](AztecProtocol/aztec-packages@5853af4))
* Consistent naming of serialization method
([#4379](AztecProtocol/aztec-packages#4379))
([148d5dc](AztecProtocol/aztec-packages@148d5dc))
* Do not run forge fmt because not everyone has forge installed
([#4430](AztecProtocol/aztec-packages#4430))
([ecb6c3f](AztecProtocol/aztec-packages@ecb6c3f))
* **docs:** Update broken link ref in slow_updates_tree.md
([#4339](AztecProtocol/aztec-packages#4339))
([2599d7f](AztecProtocol/aztec-packages@2599d7f))
* Eth address tech debt cleanup
([#4442](AztecProtocol/aztec-packages#4442))
([153989f](AztecProtocol/aztec-packages@153989f))
* Extract merge from UC and simplify
([#4343](AztecProtocol/aztec-packages#4343))
([54fd794](AztecProtocol/aztec-packages@54fd794))
* Fix bb wasm build when using remote cache
([#4397](AztecProtocol/aztec-packages#4397))
([14e57cb](AztecProtocol/aztec-packages@14e57cb))
* Fix clippy warnings in `avm-transpiler`
([#4416](AztecProtocol/aztec-packages#4416))
([e54ecd2](AztecProtocol/aztec-packages@e54ecd2))
* Format l1-contracts after generating constants
([#4448](AztecProtocol/aztec-packages#4448))
([de11994](AztecProtocol/aztec-packages@de11994))
* Git subrepo commit (merge) noir
([#4321](AztecProtocol/aztec-packages#4321))
([348d18a](AztecProtocol/aztec-packages@348d18a))
* Git subrepo pull (merge) noir
([#4331](AztecProtocol/aztec-packages#4331))
([683f782](AztecProtocol/aztec-packages@683f782))
* Implementing `deserialize()` in Noir structs
([#4384](AztecProtocol/aztec-packages#4384))
([e63bbae](AztecProtocol/aztec-packages@e63bbae))
* Introduce compute_note_hash_for_(consumption/insertion)
([#4344](AztecProtocol/aztec-packages#4344))
([26a0d49](AztecProtocol/aztec-packages@26a0d49))
* Optimize prove_note_validity
[#4418](AztecProtocol/aztec-packages#4418)
([#4426](AztecProtocol/aztec-packages#4426))
([4de2540](AztecProtocol/aztec-packages@4de2540))
* Poseidon2 hash uses span instead of vector
([#4003](AztecProtocol/aztec-packages#4003))
([f63e7a9](AztecProtocol/aztec-packages@f63e7a9))
* Reenable private kernel function tree checks
([#4358](AztecProtocol/aztec-packages#4358))
([e7db0da](AztecProtocol/aztec-packages@e7db0da))
* Remove hardcoded storage slot values
([#4398](AztecProtocol/aztec-packages#4398))
([d2294a4](AztecProtocol/aztec-packages@d2294a4))
* Rename bigint_neg into bigint_sub
([#4420](AztecProtocol/aztec-packages#4420))
([57824fe](AztecProtocol/aztec-packages@57824fe))
* Replace Note::compute_note_hash with Note::compute_note_content_hash
([#4342](AztecProtocol/aztec-packages#4342))
([8368659](AztecProtocol/aztec-packages@8368659))
* Replace relative paths to noir-protocol-circuits
([23de650](AztecProtocol/aztec-packages@23de650))
* Replace relative paths to noir-protocol-circuits
([b8d427f](AztecProtocol/aztec-packages@b8d427f))
* Replace relative paths to noir-protocol-circuits
([113dec1](AztecProtocol/aztec-packages@113dec1))
* Replace relative paths to noir-protocol-circuits
([a79093b](AztecProtocol/aztec-packages@a79093b))
* Replace relative paths to noir-protocol-circuits
([808b4eb](AztecProtocol/aztec-packages@808b4eb))
* Serialize, Deserialize and NoteInterface as Traits
([#4135](AztecProtocol/aztec-packages#4135))
([9e6605c](AztecProtocol/aztec-packages@9e6605c))
* Simpler noir sync
([#4376](AztecProtocol/aztec-packages#4376))
([665b35e](AztecProtocol/aztec-packages@665b35e))
* Surpress chained macro warning
([#4396](AztecProtocol/aztec-packages#4396))
([5e9c790](AztecProtocol/aztec-packages@5e9c790))
* Switch to macos-14 for m1 runners
([#3456](AztecProtocol/aztec-packages#3456))
([ca5b6f8](AztecProtocol/aztec-packages@ca5b6f8))
* Testing `toFields()` length
([#4364](AztecProtocol/aztec-packages#4364))
([5d3fce3](AztecProtocol/aztec-packages@5d3fce3))
* Typing contents of `MessageLoadOracleInputs`
([#4351](AztecProtocol/aztec-packages#4351))
([433babd](AztecProtocol/aztec-packages@433babd))
* Update docs on comparators
([#4281](AztecProtocol/aztec-packages#4281))
([cc2ce9c](AztecProtocol/aztec-packages@cc2ce9c))
* Updating block hash to be header.hash()
([#4286](AztecProtocol/aztec-packages#4286))
([d4125e1](AztecProtocol/aztec-packages@d4125e1))
* Use NoteSerialize and NoteDeserialize traits for note specific
serialization
([#4383](AztecProtocol/aztec-packages#4383))
([14dd0b8](AztecProtocol/aztec-packages@14dd0b8))


### Documentation

* Add simple api description for note_getter_options.status
([#4329](AztecProtocol/aztec-packages#4329))
([cc17afe](AztecProtocol/aztec-packages@cc17afe))
* Document stable public state usage
([#4324](AztecProtocol/aztec-packages#4324))
([13f709b](AztecProtocol/aztec-packages@13f709b)),
closes
[#4325](AztecProtocol/aztec-packages#4325)
* Minor quickstart fixes
([#4330](AztecProtocol/aztec-packages#4330))
([f85a870](AztecProtocol/aztec-packages@f85a870))
* Update contract deployment section in YP
([#4290](AztecProtocol/aztec-packages#4290))
([e99a882](AztecProtocol/aztec-packages@e99a882))
* **yp:** AVM circuit - user memory section
([#4323](AztecProtocol/aztec-packages#4323))
([8928fb1](AztecProtocol/aztec-packages@8928fb1)),
closes
[#4043](AztecProtocol/aztec-packages#4043)
</details>

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

##
[0.22.0](AztecProtocol/aztec-packages@barretenberg.js-v0.21.0...barretenberg.js-v0.22.0)
(2024-02-06)


### ⚠ BREAKING CHANGES

* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](AztecProtocol/aztec-packages#4221))

### Miscellaneous

* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](AztecProtocol/aztec-packages#4221))
([9c965a7](AztecProtocol/aztec-packages@9c965a7))
</details>

<details><summary>barretenberg: 0.22.0</summary>

##
[0.22.0](AztecProtocol/aztec-packages@barretenberg-v0.21.0...barretenberg-v0.22.0)
(2024-02-06)


### ⚠ BREAKING CHANGES

* rename bigint_neg into bigint_sub
([#4420](AztecProtocol/aztec-packages#4420))
* Add expression width into acir
([#4014](AztecProtocol/aztec-packages#4014))
* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](AztecProtocol/aztec-packages#4221))

### Features

* Add bit size to const opcode
([#4385](AztecProtocol/aztec-packages#4385))
([b2a000e](AztecProtocol/aztec-packages@b2a000e))
* Add expression width into acir
([#4014](AztecProtocol/aztec-packages#4014))
([f09e8fc](AztecProtocol/aztec-packages@f09e8fc))
* Add poseidon2 hashing to native transcript
([#3718](AztecProtocol/aztec-packages#3718))
([afcfa71](AztecProtocol/aztec-packages@afcfa71))
* **avm:** Add command to call avm proving in bb binary
([#4369](AztecProtocol/aztec-packages#4369))
([4f6d607](AztecProtocol/aztec-packages@4f6d607)),
closes
[#4039](AztecProtocol/aztec-packages#4039)
* **avm:** Back in avm context with macro - refactor context
([#4438](AztecProtocol/aztec-packages#4438))
([ccf9b17](AztecProtocol/aztec-packages@ccf9b17))
* **bb:** Wasmtime and remote benchmarking
([#4204](AztecProtocol/aztec-packages#4204))
([fd27808](AztecProtocol/aztec-packages@fd27808))
* Folding `GoblinUltra` instances in ProtoGalaxy
([#4340](AztecProtocol/aztec-packages#4340))
([8569e7c](AztecProtocol/aztec-packages@8569e7c))
* Implementation for bigint opcodes
([#4288](AztecProtocol/aztec-packages#4288))
([b61dace](AztecProtocol/aztec-packages@b61dace))
* Improve ivc bench
([#4242](AztecProtocol/aztec-packages#4242))
([9d28354](AztecProtocol/aztec-packages@9d28354))
* Memory only brillig
([#4215](AztecProtocol/aztec-packages#4215))
([018177b](AztecProtocol/aztec-packages@018177b))


### Bug Fixes

* Bb build
([#4317](AztecProtocol/aztec-packages#4317))
([82f5f03](AztecProtocol/aztec-packages@82f5f03))
* Mac build
([#4336](AztecProtocol/aztec-packages#4336))
([aeb4cf0](AztecProtocol/aztec-packages@aeb4cf0))
* Release the size of goblin translator
([#4259](AztecProtocol/aztec-packages#4259))
([6e1d958](AztecProtocol/aztec-packages@6e1d958))


### Miscellaneous

* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](AztecProtocol/aztec-packages#4221))
([9c965a7](AztecProtocol/aztec-packages@9c965a7))
* Collapse bb::honk
([#4318](AztecProtocol/aztec-packages#4318))
([5853af4](AztecProtocol/aztec-packages@5853af4))
* Extract merge from UC and simplify
([#4343](AztecProtocol/aztec-packages#4343))
([54fd794](AztecProtocol/aztec-packages@54fd794))
* Fix bb wasm build when using remote cache
([#4397](AztecProtocol/aztec-packages#4397))
([14e57cb](AztecProtocol/aztec-packages@14e57cb))
* Poseidon2 hash uses span instead of vector
([#4003](AztecProtocol/aztec-packages#4003))
([f63e7a9](AztecProtocol/aztec-packages@f63e7a9))
* Rename bigint_neg into bigint_sub
([#4420](AztecProtocol/aztec-packages#4420))
([57824fe](AztecProtocol/aztec-packages@57824fe))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
TomAFrench pushed a commit that referenced this pull request Feb 7, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.22.0](aztec-packages-v0.21.0...aztec-packages-v0.22.0)
(2024-02-06)


### ⚠ BREAKING CHANGES

* rename bigint_neg into bigint_sub
([#4420](#4420))
* Add expression width into acir
([#4014](#4014))
* Use NoteSerialize and NoteDeserialize traits for note specific
serialization
([#4383](#4383))
* Unencrypted logs are not strings
([#4392](#4392))
* init storage macro
([#4200](#4200))
* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](#4221))
* introduce compute_note_hash_for_(consumption/insertion)
([#4344](#4344))
* replace Note::compute_note_hash with Note::compute_note_content_hash
([#4342](#4342))
* Include contract class id in deployment info
([#4223](#4223))
* Serialize, Deserialize and NoteInterface as Traits
([#4135](#4135))

### Features

* Add aztec node to client execution and nuke state info provider
[#4320](#4320)
([#4401](#4401))
([2dec0cc](2dec0cc))
* Add bit size to const opcode
([#4385](#4385))
([b2a000e](b2a000e))
* Add expression width into acir
([#4014](#4014))
([f09e8fc](f09e8fc))
* Add meta_hwm to PrivateCircuitPublicInputs
([#4341](#4341))
([4f248b5](4f248b5))
* Add poseidon2 hashing to native transcript
([#3718](#3718))
([afcfa71](afcfa71))
* Adding slitherin detectors
([#4246](#4246))
([7cdc186](7cdc186))
* Allow using of current block in inclusion proofs
([#4285](#4285))
([728c5ac](728c5ac)),
closes
[#4274](#4274)
* **avm-transpiler:** Brillig to AVM transpiler
([#4227](#4227))
([c366c6e](c366c6e))
* **avm:** Add command to call avm proving in bb binary
([#4369](#4369))
([4f6d607](4f6d607)),
closes
[#4039](#4039)
* **avm:** Add revert tracking to the journal
([#4349](#4349))
([1615803](1615803))
* **avm:** Back in avm context with macro - refactor context
([#4438](#4438))
([ccf9b17](ccf9b17))
* **avm:** Complete SET instruction
([#4378](#4378))
([013891f](013891f))
* **avm:** Implement avm state getter opcodes within noir contracts
([#4402](#4402))
([9f2a6eb](9f2a6eb))
* **avm:** Implement serialization for all existing operations
([#4338](#4338))
([13e0683](13e0683))
* **avm:** Keep history of reads and writes in journal
([#4315](#4315))
([cdf1baf](cdf1baf))
* **aztec-nr:** Initial work for aztec public vm macro
([#4400](#4400))
([0024590](0024590))
* **bb:** Wasmtime and remote benchmarking
([#4204](#4204))
([fd27808](fd27808))
* Contract class registerer contract
([#4403](#4403))
([d953090](d953090)),
closes
[#4069](#4069)
[#4070](#4070)
* Crude stable var implementation
([#4289](#4289))
([5f9eee4](5f9eee4))
* **docs:** Docs deeper dive into unconstrained functions
([#4233](#4233))
([6af548e](6af548e))
* Emit single functions from class registerer
([#4429](#4429))
([19e03ad](19e03ad)),
closes
[#4427](#4427)
* Extend Historical Access APIs
[#4179](#4179)
([#4375](#4375))
([c918d8d](c918d8d))
* Folding `GoblinUltra` instances in ProtoGalaxy
([#4340](#4340))
([8569e7c](8569e7c))
* Hashing output of `serialize()` in noir + more tests
([#4365](#4365))
([5a71bb9](5a71bb9))
* Implementation for bigint opcodes
([#4288](#4288))
([b61dace](b61dace))
* Improve ivc bench
([#4242](#4242))
([9d28354](9d28354))
* Include contract class id in deployment info
([#4223](#4223))
([0ed4126](0ed4126)),
closes
[#4054](#4054)
* Init storage macro
([#4200](#4200))
([11d9697](11d9697))
* Memory only brillig
([#4215](#4215))
([018177b](018177b))
* Nullified note retrieval in get_notes and view_notes
([#4238](#4238))
([8d02eb7](8d02eb7))
* Private calls and initialization of undeployed contracts
([#4362](#4362))
([f31c181](f31c181)),
closes
[#4057](#4057)
[#4058](#4058)
[#4059](#4059)
* Sequencer processes transactions in phases
([#4345](#4345))
([78cc709](78cc709))
* Unencrypted logs are not strings
([#4392](#4392))
([25a7ea7](25a7ea7))
* Verify function against contract class id in private kernel
([#4337](#4337))
([e1d832d](e1d832d)),
closes
[#4056](#4056)


### Bug Fixes

* **avm-transpiler:** Avm-transpiler bootstrap by tying down rust
version
([#4347](#4347))
([09d0730](09d0730))
* **avm-transpiler:** Bump rust toolchain version for transpiler
([#4356](#4356))
([75e30b9](75e30b9))
* **avm:** Fix SendL2ToL1Message implementation
([#4367](#4367))
([ee560c3](ee560c3))
* Aztec binary fixes
([#4273](#4273))
([84e1f7d](84e1f7d))
* Bb build
([#4317](#4317))
([82f5f03](82f5f03))
* Load contract artifact from json
([#4352](#4352))
([47a0a79](47a0a79))
* Mac build
([#4336](#4336))
([aeb4cf0](aeb4cf0))
* **noir-contracts:** Disable transpilation for now
([#4372](#4372))
([37662b7](37662b7))
* Nr codegen to use new protocol types path
([#4353](#4353))
([84e63b1](84e63b1)),
closes
[#4193](#4193)
* Relative LogFn import
([#4328](#4328))
([1faead5](1faead5))
* Release the size of goblin translator
([#4259](#4259))
([6e1d958](6e1d958))
* Transpiler build
([#4386](#4386))
([032ddc5](032ddc5))


### Miscellaneous

* `PublicCircuitPublicInputs` and `PrivateCircuitPublicInputs` cleanup
([#4360](#4360))
([b92d690](b92d690))
* `toFields()`/`fromFields(...)` methods in more classes
([#4335](#4335))
([433b9eb](433b9eb))
* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](#4221))
([9c965a7](9c965a7))
* Add bigint solver in ACVM and add a unit test for bigints in Noir
([#4415](#4415))
([e4a2fe9](e4a2fe9))
* Add bootstrap_cache for avm-transpiler
([#4357](#4357))
([bfebebb](bfebebb))
* Add disclaimer
([#4393](#4393))
([6895f52](6895f52))
* Add migration note for serialization change
([#4414](#4414))
([968a3a0](968a3a0))
* **avm:** Make interpreter a function not a class
([#4272](#4272))
([14e8c5c](14e8c5c))
* **avm:** Refactor AVM Simulator and fix issues
([#4424](#4424))
([a6179bd](a6179bd))
* Call stack item cleanup
([#4381](#4381))
([341b0a1](341b0a1))
* Check loading Nargo artifacts works in the cli
([#4355](#4355))
([43b58b3](43b58b3))
* Cleanup + various doc improvements
([#4282](#4282))
([648229c](648229c)),
closes
[#4264](#4264)
* Collapse bb::honk
([#4318](#4318))
([5853af4](5853af4))
* Consistent naming of serialization method
([#4379](#4379))
([148d5dc](148d5dc))
* Do not run forge fmt because not everyone has forge installed
([#4430](#4430))
([ecb6c3f](ecb6c3f))
* **docs:** Update broken link ref in slow_updates_tree.md
([#4339](#4339))
([2599d7f](2599d7f))
* Eth address tech debt cleanup
([#4442](#4442))
([153989f](153989f))
* Extract merge from UC and simplify
([#4343](#4343))
([54fd794](54fd794))
* Fix bb wasm build when using remote cache
([#4397](#4397))
([14e57cb](14e57cb))
* Fix clippy warnings in `avm-transpiler`
([#4416](#4416))
([e54ecd2](e54ecd2))
* Format l1-contracts after generating constants
([#4448](#4448))
([de11994](de11994))
* Git subrepo commit (merge) noir
([#4321](#4321))
([348d18a](348d18a))
* Git subrepo pull (merge) noir
([#4331](#4331))
([683f782](683f782))
* Implementing `deserialize()` in Noir structs
([#4384](#4384))
([e63bbae](e63bbae))
* Introduce compute_note_hash_for_(consumption/insertion)
([#4344](#4344))
([26a0d49](26a0d49))
* Optimize prove_note_validity
[#4418](#4418)
([#4426](#4426))
([4de2540](4de2540))
* Poseidon2 hash uses span instead of vector
([#4003](#4003))
([f63e7a9](f63e7a9))
* Reenable private kernel function tree checks
([#4358](#4358))
([e7db0da](e7db0da))
* Remove hardcoded storage slot values
([#4398](#4398))
([d2294a4](d2294a4))
* Rename bigint_neg into bigint_sub
([#4420](#4420))
([57824fe](57824fe))
* Replace Note::compute_note_hash with Note::compute_note_content_hash
([#4342](#4342))
([8368659](8368659))
* Replace relative paths to noir-protocol-circuits
([23de650](23de650))
* Replace relative paths to noir-protocol-circuits
([b8d427f](b8d427f))
* Replace relative paths to noir-protocol-circuits
([113dec1](113dec1))
* Replace relative paths to noir-protocol-circuits
([a79093b](a79093b))
* Replace relative paths to noir-protocol-circuits
([808b4eb](808b4eb))
* Serialize, Deserialize and NoteInterface as Traits
([#4135](#4135))
([9e6605c](9e6605c))
* Simpler noir sync
([#4376](#4376))
([665b35e](665b35e))
* Surpress chained macro warning
([#4396](#4396))
([5e9c790](5e9c790))
* Switch to macos-14 for m1 runners
([#3456](#3456))
([ca5b6f8](ca5b6f8))
* Testing `toFields()` length
([#4364](#4364))
([5d3fce3](5d3fce3))
* Typing contents of `MessageLoadOracleInputs`
([#4351](#4351))
([433babd](433babd))
* Update docs on comparators
([#4281](#4281))
([cc2ce9c](cc2ce9c))
* Updating block hash to be header.hash()
([#4286](#4286))
([d4125e1](d4125e1))
* Use NoteSerialize and NoteDeserialize traits for note specific
serialization
([#4383](#4383))
([14dd0b8](14dd0b8))


### Documentation

* Add simple api description for note_getter_options.status
([#4329](#4329))
([cc17afe](cc17afe))
* Document stable public state usage
([#4324](#4324))
([13f709b](13f709b)),
closes
[#4325](#4325)
* Minor quickstart fixes
([#4330](#4330))
([f85a870](f85a870))
* Update contract deployment section in YP
([#4290](#4290))
([e99a882](e99a882))
* **yp:** AVM circuit - user memory section
([#4323](#4323))
([8928fb1](8928fb1)),
closes
[#4043](#4043)
</details>

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

##
[0.22.0](barretenberg.js-v0.21.0...barretenberg.js-v0.22.0)
(2024-02-06)


### ⚠ BREAKING CHANGES

* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](#4221))

### Miscellaneous

* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](#4221))
([9c965a7](9c965a7))
</details>

<details><summary>barretenberg: 0.22.0</summary>

##
[0.22.0](barretenberg-v0.21.0...barretenberg-v0.22.0)
(2024-02-06)


### ⚠ BREAKING CHANGES

* rename bigint_neg into bigint_sub
([#4420](#4420))
* Add expression width into acir
([#4014](#4014))
* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](#4221))

### Features

* Add bit size to const opcode
([#4385](#4385))
([b2a000e](b2a000e))
* Add expression width into acir
([#4014](#4014))
([f09e8fc](f09e8fc))
* Add poseidon2 hashing to native transcript
([#3718](#3718))
([afcfa71](afcfa71))
* **avm:** Add command to call avm proving in bb binary
([#4369](#4369))
([4f6d607](4f6d607)),
closes
[#4039](#4039)
* **avm:** Back in avm context with macro - refactor context
([#4438](#4438))
([ccf9b17](ccf9b17))
* **bb:** Wasmtime and remote benchmarking
([#4204](#4204))
([fd27808](fd27808))
* Folding `GoblinUltra` instances in ProtoGalaxy
([#4340](#4340))
([8569e7c](8569e7c))
* Implementation for bigint opcodes
([#4288](#4288))
([b61dace](b61dace))
* Improve ivc bench
([#4242](#4242))
([9d28354](9d28354))
* Memory only brillig
([#4215](#4215))
([018177b](018177b))


### Bug Fixes

* Bb build
([#4317](#4317))
([82f5f03](82f5f03))
* Mac build
([#4336](#4336))
([aeb4cf0](aeb4cf0))
* Release the size of goblin translator
([#4259](#4259))
([6e1d958](6e1d958))


### Miscellaneous

* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([#4221](#4221))
([9c965a7](9c965a7))
* Collapse bb::honk
([#4318](#4318))
([5853af4](5853af4))
* Extract merge from UC and simplify
([#4343](#4343))
([54fd794](54fd794))
* Fix bb wasm build when using remote cache
([#4397](#4397))
([14e57cb](14e57cb))
* Poseidon2 hash uses span instead of vector
([#4003](#4003))
([f63e7a9](f63e7a9))
* Rename bigint_neg into bigint_sub
([#4420](#4420))
([57824fe](57824fe))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
michaelelliot pushed a commit to Swoir/noir_rs that referenced this pull request Feb 28, 2024
Change the transcript proof to be a vector of field elements instead of
a vector of bytes. We want this more crucially for the stdlib
transcript, but the native transcript should be implemented similarly.

The key contribution is the conversion functions in
field_conversion.hpp/cpp, which allow for types, in particular
grumpkin::fr, to be converted to and from bb::fr elements.

Some notes about why this was chosen:
https://hackmd.io/2XU21v9WTx6XUSnMgZIUig. In short, it is the most
efficient in terms of the number of gates.

Updates the transcript deserialization/serialization and corresponding
tests and makes other style updates.

Resolves AztecProtocol/barretenberg#777

Also some notes from trying to resolve bb.js ACIR tests:
https://hackmd.io/OrQUD_nTQLeIZVvy4zpzHA
michaelelliot pushed a commit to Swoir/noir_rs that referenced this pull request Feb 28, 2024
michaelelliot pushed a commit to Swoir/noir_rs that referenced this pull request Feb 28, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.22.0](AztecProtocol/aztec-packages@aztec-packages-v0.21.0...aztec-packages-v0.22.0)
(2024-02-06)


### ⚠ BREAKING CHANGES

* rename bigint_neg into bigint_sub
([AztecProtocol#4420](AztecProtocol#4420))
* Add expression width into acir
([AztecProtocol#4014](AztecProtocol#4014))
* Use NoteSerialize and NoteDeserialize traits for note specific
serialization
([AztecProtocol#4383](AztecProtocol#4383))
* Unencrypted logs are not strings
([AztecProtocol#4392](AztecProtocol#4392))
* init storage macro
([AztecProtocol#4200](AztecProtocol#4200))
* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([AztecProtocol#4221](AztecProtocol#4221))
* introduce compute_note_hash_for_(consumption/insertion)
([AztecProtocol#4344](AztecProtocol#4344))
* replace Note::compute_note_hash with Note::compute_note_content_hash
([AztecProtocol#4342](AztecProtocol#4342))
* Include contract class id in deployment info
([AztecProtocol#4223](AztecProtocol#4223))
* Serialize, Deserialize and NoteInterface as Traits
([AztecProtocol#4135](AztecProtocol#4135))

### Features

* Add aztec node to client execution and nuke state info provider
[AztecProtocol#4320](AztecProtocol#4320)
([AztecProtocol#4401](AztecProtocol#4401))
([2dec0cc](AztecProtocol@2dec0cc))
* Add bit size to const opcode
([AztecProtocol#4385](AztecProtocol#4385))
([b2a000e](AztecProtocol@b2a000e))
* Add expression width into acir
([AztecProtocol#4014](AztecProtocol#4014))
([f09e8fc](AztecProtocol@f09e8fc))
* Add meta_hwm to PrivateCircuitPublicInputs
([AztecProtocol#4341](AztecProtocol#4341))
([4f248b5](AztecProtocol@4f248b5))
* Add poseidon2 hashing to native transcript
([AztecProtocol#3718](AztecProtocol#3718))
([afcfa71](AztecProtocol@afcfa71))
* Adding slitherin detectors
([AztecProtocol#4246](AztecProtocol#4246))
([7cdc186](AztecProtocol@7cdc186))
* Allow using of current block in inclusion proofs
([AztecProtocol#4285](AztecProtocol#4285))
([728c5ac](AztecProtocol@728c5ac)),
closes
[AztecProtocol#4274](AztecProtocol#4274)
* **avm-transpiler:** Brillig to AVM transpiler
([AztecProtocol#4227](AztecProtocol#4227))
([c366c6e](AztecProtocol@c366c6e))
* **avm:** Add command to call avm proving in bb binary
([AztecProtocol#4369](AztecProtocol#4369))
([4f6d607](AztecProtocol@4f6d607)),
closes
[AztecProtocol#4039](AztecProtocol#4039)
* **avm:** Add revert tracking to the journal
([AztecProtocol#4349](AztecProtocol#4349))
([1615803](AztecProtocol@1615803))
* **avm:** Back in avm context with macro - refactor context
([AztecProtocol#4438](AztecProtocol#4438))
([ccf9b17](AztecProtocol@ccf9b17))
* **avm:** Complete SET instruction
([AztecProtocol#4378](AztecProtocol#4378))
([013891f](AztecProtocol@013891f))
* **avm:** Implement avm state getter opcodes within noir contracts
([AztecProtocol#4402](AztecProtocol#4402))
([9f2a6eb](AztecProtocol@9f2a6eb))
* **avm:** Implement serialization for all existing operations
([AztecProtocol#4338](AztecProtocol#4338))
([13e0683](AztecProtocol@13e0683))
* **avm:** Keep history of reads and writes in journal
([AztecProtocol#4315](AztecProtocol#4315))
([cdf1baf](AztecProtocol@cdf1baf))
* **aztec-nr:** Initial work for aztec public vm macro
([AztecProtocol#4400](AztecProtocol#4400))
([0024590](AztecProtocol@0024590))
* **bb:** Wasmtime and remote benchmarking
([AztecProtocol#4204](AztecProtocol#4204))
([fd27808](AztecProtocol@fd27808))
* Contract class registerer contract
([AztecProtocol#4403](AztecProtocol#4403))
([d953090](AztecProtocol@d953090)),
closes
[AztecProtocol#4069](AztecProtocol#4069)
[AztecProtocol#4070](AztecProtocol#4070)
* Crude stable var implementation
([AztecProtocol#4289](AztecProtocol#4289))
([5f9eee4](AztecProtocol@5f9eee4))
* **docs:** Docs deeper dive into unconstrained functions
([AztecProtocol#4233](AztecProtocol#4233))
([6af548e](AztecProtocol@6af548e))
* Emit single functions from class registerer
([AztecProtocol#4429](AztecProtocol#4429))
([19e03ad](AztecProtocol@19e03ad)),
closes
[AztecProtocol#4427](AztecProtocol#4427)
* Extend Historical Access APIs
[AztecProtocol#4179](AztecProtocol#4179)
([AztecProtocol#4375](AztecProtocol#4375))
([c918d8d](AztecProtocol@c918d8d))
* Folding `GoblinUltra` instances in ProtoGalaxy
([AztecProtocol#4340](AztecProtocol#4340))
([8569e7c](AztecProtocol@8569e7c))
* Hashing output of `serialize()` in noir + more tests
([AztecProtocol#4365](AztecProtocol#4365))
([5a71bb9](AztecProtocol@5a71bb9))
* Implementation for bigint opcodes
([AztecProtocol#4288](AztecProtocol#4288))
([b61dace](AztecProtocol@b61dace))
* Improve ivc bench
([AztecProtocol#4242](AztecProtocol#4242))
([9d28354](AztecProtocol@9d28354))
* Include contract class id in deployment info
([AztecProtocol#4223](AztecProtocol#4223))
([0ed4126](AztecProtocol@0ed4126)),
closes
[AztecProtocol#4054](AztecProtocol#4054)
* Init storage macro
([AztecProtocol#4200](AztecProtocol#4200))
([11d9697](AztecProtocol@11d9697))
* Memory only brillig
([AztecProtocol#4215](AztecProtocol#4215))
([018177b](AztecProtocol@018177b))
* Nullified note retrieval in get_notes and view_notes
([AztecProtocol#4238](AztecProtocol#4238))
([8d02eb7](AztecProtocol@8d02eb7))
* Private calls and initialization of undeployed contracts
([AztecProtocol#4362](AztecProtocol#4362))
([f31c181](AztecProtocol@f31c181)),
closes
[AztecProtocol#4057](AztecProtocol#4057)
[AztecProtocol#4058](AztecProtocol#4058)
[AztecProtocol#4059](AztecProtocol#4059)
* Sequencer processes transactions in phases
([AztecProtocol#4345](AztecProtocol#4345))
([78cc709](AztecProtocol@78cc709))
* Unencrypted logs are not strings
([AztecProtocol#4392](AztecProtocol#4392))
([25a7ea7](AztecProtocol@25a7ea7))
* Verify function against contract class id in private kernel
([AztecProtocol#4337](AztecProtocol#4337))
([e1d832d](AztecProtocol@e1d832d)),
closes
[AztecProtocol#4056](AztecProtocol#4056)


### Bug Fixes

* **avm-transpiler:** Avm-transpiler bootstrap by tying down rust
version
([AztecProtocol#4347](AztecProtocol#4347))
([09d0730](AztecProtocol@09d0730))
* **avm-transpiler:** Bump rust toolchain version for transpiler
([AztecProtocol#4356](AztecProtocol#4356))
([75e30b9](AztecProtocol@75e30b9))
* **avm:** Fix SendL2ToL1Message implementation
([AztecProtocol#4367](AztecProtocol#4367))
([ee560c3](AztecProtocol@ee560c3))
* Aztec binary fixes
([AztecProtocol#4273](AztecProtocol#4273))
([84e1f7d](AztecProtocol@84e1f7d))
* Bb build
([AztecProtocol#4317](AztecProtocol#4317))
([82f5f03](AztecProtocol@82f5f03))
* Load contract artifact from json
([AztecProtocol#4352](AztecProtocol#4352))
([47a0a79](AztecProtocol@47a0a79))
* Mac build
([AztecProtocol#4336](AztecProtocol#4336))
([aeb4cf0](AztecProtocol@aeb4cf0))
* **noir-contracts:** Disable transpilation for now
([AztecProtocol#4372](AztecProtocol#4372))
([37662b7](AztecProtocol@37662b7))
* Nr codegen to use new protocol types path
([AztecProtocol#4353](AztecProtocol#4353))
([84e63b1](AztecProtocol@84e63b1)),
closes
[AztecProtocol#4193](AztecProtocol#4193)
* Relative LogFn import
([AztecProtocol#4328](AztecProtocol#4328))
([1faead5](AztecProtocol@1faead5))
* Release the size of goblin translator
([AztecProtocol#4259](AztecProtocol#4259))
([6e1d958](AztecProtocol@6e1d958))
* Transpiler build
([AztecProtocol#4386](AztecProtocol#4386))
([032ddc5](AztecProtocol@032ddc5))


### Miscellaneous

* `PublicCircuitPublicInputs` and `PrivateCircuitPublicInputs` cleanup
([AztecProtocol#4360](AztecProtocol#4360))
([b92d690](AztecProtocol@b92d690))
* `toFields()`/`fromFields(...)` methods in more classes
([AztecProtocol#4335](AztecProtocol#4335))
([433b9eb](AztecProtocol@433b9eb))
* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([AztecProtocol#4221](AztecProtocol#4221))
([9c965a7](AztecProtocol@9c965a7))
* Add bigint solver in ACVM and add a unit test for bigints in Noir
([AztecProtocol#4415](AztecProtocol#4415))
([e4a2fe9](AztecProtocol@e4a2fe9))
* Add bootstrap_cache for avm-transpiler
([AztecProtocol#4357](AztecProtocol#4357))
([bfebebb](AztecProtocol@bfebebb))
* Add disclaimer
([AztecProtocol#4393](AztecProtocol#4393))
([6895f52](AztecProtocol@6895f52))
* Add migration note for serialization change
([AztecProtocol#4414](AztecProtocol#4414))
([968a3a0](AztecProtocol@968a3a0))
* **avm:** Make interpreter a function not a class
([AztecProtocol#4272](AztecProtocol#4272))
([14e8c5c](AztecProtocol@14e8c5c))
* **avm:** Refactor AVM Simulator and fix issues
([AztecProtocol#4424](AztecProtocol#4424))
([a6179bd](AztecProtocol@a6179bd))
* Call stack item cleanup
([AztecProtocol#4381](AztecProtocol#4381))
([341b0a1](AztecProtocol@341b0a1))
* Check loading Nargo artifacts works in the cli
([AztecProtocol#4355](AztecProtocol#4355))
([43b58b3](AztecProtocol@43b58b3))
* Cleanup + various doc improvements
([AztecProtocol#4282](AztecProtocol#4282))
([648229c](AztecProtocol@648229c)),
closes
[AztecProtocol#4264](AztecProtocol#4264)
* Collapse bb::honk
([AztecProtocol#4318](AztecProtocol#4318))
([5853af4](AztecProtocol@5853af4))
* Consistent naming of serialization method
([AztecProtocol#4379](AztecProtocol#4379))
([148d5dc](AztecProtocol@148d5dc))
* Do not run forge fmt because not everyone has forge installed
([AztecProtocol#4430](AztecProtocol#4430))
([ecb6c3f](AztecProtocol@ecb6c3f))
* **docs:** Update broken link ref in slow_updates_tree.md
([AztecProtocol#4339](AztecProtocol#4339))
([2599d7f](AztecProtocol@2599d7f))
* Eth address tech debt cleanup
([AztecProtocol#4442](AztecProtocol#4442))
([153989f](AztecProtocol@153989f))
* Extract merge from UC and simplify
([AztecProtocol#4343](AztecProtocol#4343))
([54fd794](AztecProtocol@54fd794))
* Fix bb wasm build when using remote cache
([AztecProtocol#4397](AztecProtocol#4397))
([14e57cb](AztecProtocol@14e57cb))
* Fix clippy warnings in `avm-transpiler`
([AztecProtocol#4416](AztecProtocol#4416))
([e54ecd2](AztecProtocol@e54ecd2))
* Format l1-contracts after generating constants
([AztecProtocol#4448](AztecProtocol#4448))
([de11994](AztecProtocol@de11994))
* Git subrepo commit (merge) noir
([AztecProtocol#4321](AztecProtocol#4321))
([348d18a](AztecProtocol@348d18a))
* Git subrepo pull (merge) noir
([AztecProtocol#4331](AztecProtocol#4331))
([683f782](AztecProtocol@683f782))
* Implementing `deserialize()` in Noir structs
([AztecProtocol#4384](AztecProtocol#4384))
([e63bbae](AztecProtocol@e63bbae))
* Introduce compute_note_hash_for_(consumption/insertion)
([AztecProtocol#4344](AztecProtocol#4344))
([26a0d49](AztecProtocol@26a0d49))
* Optimize prove_note_validity
[AztecProtocol#4418](AztecProtocol#4418)
([AztecProtocol#4426](AztecProtocol#4426))
([4de2540](AztecProtocol@4de2540))
* Poseidon2 hash uses span instead of vector
([AztecProtocol#4003](AztecProtocol#4003))
([f63e7a9](AztecProtocol@f63e7a9))
* Reenable private kernel function tree checks
([AztecProtocol#4358](AztecProtocol#4358))
([e7db0da](AztecProtocol@e7db0da))
* Remove hardcoded storage slot values
([AztecProtocol#4398](AztecProtocol#4398))
([d2294a4](AztecProtocol@d2294a4))
* Rename bigint_neg into bigint_sub
([AztecProtocol#4420](AztecProtocol#4420))
([57824fe](AztecProtocol@57824fe))
* Replace Note::compute_note_hash with Note::compute_note_content_hash
([AztecProtocol#4342](AztecProtocol#4342))
([8368659](AztecProtocol@8368659))
* Replace relative paths to noir-protocol-circuits
([23de650](AztecProtocol@23de650))
* Replace relative paths to noir-protocol-circuits
([b8d427f](AztecProtocol@b8d427f))
* Replace relative paths to noir-protocol-circuits
([113dec1](AztecProtocol@113dec1))
* Replace relative paths to noir-protocol-circuits
([a79093b](AztecProtocol@a79093b))
* Replace relative paths to noir-protocol-circuits
([808b4eb](AztecProtocol@808b4eb))
* Serialize, Deserialize and NoteInterface as Traits
([AztecProtocol#4135](AztecProtocol#4135))
([9e6605c](AztecProtocol@9e6605c))
* Simpler noir sync
([AztecProtocol#4376](AztecProtocol#4376))
([665b35e](AztecProtocol@665b35e))
* Surpress chained macro warning
([AztecProtocol#4396](AztecProtocol#4396))
([5e9c790](AztecProtocol@5e9c790))
* Switch to macos-14 for m1 runners
([AztecProtocol#3456](AztecProtocol#3456))
([ca5b6f8](AztecProtocol@ca5b6f8))
* Testing `toFields()` length
([AztecProtocol#4364](AztecProtocol#4364))
([5d3fce3](AztecProtocol@5d3fce3))
* Typing contents of `MessageLoadOracleInputs`
([AztecProtocol#4351](AztecProtocol#4351))
([433babd](AztecProtocol@433babd))
* Update docs on comparators
([AztecProtocol#4281](AztecProtocol#4281))
([cc2ce9c](AztecProtocol@cc2ce9c))
* Updating block hash to be header.hash()
([AztecProtocol#4286](AztecProtocol#4286))
([d4125e1](AztecProtocol@d4125e1))
* Use NoteSerialize and NoteDeserialize traits for note specific
serialization
([AztecProtocol#4383](AztecProtocol#4383))
([14dd0b8](AztecProtocol@14dd0b8))


### Documentation

* Add simple api description for note_getter_options.status
([AztecProtocol#4329](AztecProtocol#4329))
([cc17afe](AztecProtocol@cc17afe))
* Document stable public state usage
([AztecProtocol#4324](AztecProtocol#4324))
([13f709b](AztecProtocol@13f709b)),
closes
[AztecProtocol#4325](AztecProtocol#4325)
* Minor quickstart fixes
([AztecProtocol#4330](AztecProtocol#4330))
([f85a870](AztecProtocol@f85a870))
* Update contract deployment section in YP
([AztecProtocol#4290](AztecProtocol#4290))
([e99a882](AztecProtocol@e99a882))
* **yp:** AVM circuit - user memory section
([AztecProtocol#4323](AztecProtocol#4323))
([8928fb1](AztecProtocol@8928fb1)),
closes
[AztecProtocol#4043](AztecProtocol#4043)
</details>

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

##
[0.22.0](AztecProtocol/aztec-packages@barretenberg.js-v0.21.0...barretenberg.js-v0.22.0)
(2024-02-06)


### ⚠ BREAKING CHANGES

* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([AztecProtocol#4221](AztecProtocol#4221))

### Miscellaneous

* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([AztecProtocol#4221](AztecProtocol#4221))
([9c965a7](AztecProtocol@9c965a7))
</details>

<details><summary>barretenberg: 0.22.0</summary>

##
[0.22.0](AztecProtocol/aztec-packages@barretenberg-v0.21.0...barretenberg-v0.22.0)
(2024-02-06)


### ⚠ BREAKING CHANGES

* rename bigint_neg into bigint_sub
([AztecProtocol#4420](AztecProtocol#4420))
* Add expression width into acir
([AztecProtocol#4014](AztecProtocol#4014))
* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([AztecProtocol#4221](AztecProtocol#4221))

### Features

* Add bit size to const opcode
([AztecProtocol#4385](AztecProtocol#4385))
([b2a000e](AztecProtocol@b2a000e))
* Add expression width into acir
([AztecProtocol#4014](AztecProtocol#4014))
([f09e8fc](AztecProtocol@f09e8fc))
* Add poseidon2 hashing to native transcript
([AztecProtocol#3718](AztecProtocol#3718))
([afcfa71](AztecProtocol@afcfa71))
* **avm:** Add command to call avm proving in bb binary
([AztecProtocol#4369](AztecProtocol#4369))
([4f6d607](AztecProtocol@4f6d607)),
closes
[AztecProtocol#4039](AztecProtocol#4039)
* **avm:** Back in avm context with macro - refactor context
([AztecProtocol#4438](AztecProtocol#4438))
([ccf9b17](AztecProtocol@ccf9b17))
* **bb:** Wasmtime and remote benchmarking
([AztecProtocol#4204](AztecProtocol#4204))
([fd27808](AztecProtocol@fd27808))
* Folding `GoblinUltra` instances in ProtoGalaxy
([AztecProtocol#4340](AztecProtocol#4340))
([8569e7c](AztecProtocol@8569e7c))
* Implementation for bigint opcodes
([AztecProtocol#4288](AztecProtocol#4288))
([b61dace](AztecProtocol@b61dace))
* Improve ivc bench
([AztecProtocol#4242](AztecProtocol#4242))
([9d28354](AztecProtocol@9d28354))
* Memory only brillig
([AztecProtocol#4215](AztecProtocol#4215))
([018177b](AztecProtocol@018177b))


### Bug Fixes

* Bb build
([AztecProtocol#4317](AztecProtocol#4317))
([82f5f03](AztecProtocol@82f5f03))
* Mac build
([AztecProtocol#4336](AztecProtocol#4336))
([aeb4cf0](AztecProtocol@aeb4cf0))
* Release the size of goblin translator
([AztecProtocol#4259](AztecProtocol#4259))
([6e1d958](AztecProtocol@6e1d958))


### Miscellaneous

* **acir:** Move `is_recursive` flag to be part of the circuit
definition
([AztecProtocol#4221](AztecProtocol#4221))
([9c965a7](AztecProtocol@9c965a7))
* Collapse bb::honk
([AztecProtocol#4318](AztecProtocol#4318))
([5853af4](AztecProtocol@5853af4))
* Extract merge from UC and simplify
([AztecProtocol#4343](AztecProtocol#4343))
([54fd794](AztecProtocol@54fd794))
* Fix bb wasm build when using remote cache
([AztecProtocol#4397](AztecProtocol#4397))
([14e57cb](AztecProtocol@14e57cb))
* Poseidon2 hash uses span instead of vector
([AztecProtocol#4003](AztecProtocol#4003))
([f63e7a9](AztecProtocol@f63e7a9))
* Rename bigint_neg into bigint_sub
([AztecProtocol#4420](AztecProtocol#4420))
([57824fe](AztecProtocol@57824fe))
</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
Archived in project
Development

Successfully merging this pull request may close these issues.

adding updating native transcript with poseidon2, modify transcript to be vector of bn254 fr
4 participants