-
Notifications
You must be signed in to change notification settings - Fork 270
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: bytes to fields and back #8590
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
@@ -0,0 +1,120 @@ | |||
// Converts the input bytes into an array of fields. A Field is ~254 bits meaning that each field can store 31 bytes. | |||
// This implies that M = ceil(N / 31). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The M
value is free however - is the caller expected to pass the correct one? It seems they could just e.g. use a lower M
value and not convert some of the bytes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a check for this. Can you confirm that it's a compile time check so should not add constraints?
I am asking because the test seems to correctly handle the comp time checks which is either a pleasant surprise (somewhat expected the test to just not compile) or it's not a comptime check.
BTW added asserts also to fields_to_bytes
checking that the ignored bytes in the input fields are zero. So hopefully user friendly enough now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm I don't think this is comptime - the assertion will run when the function is called. We can do static_assert
for this however, and get a compilation error (which is I think what we want here). We should also be able to compute the ceil
value.
The annoying part is that the caller has to do the math. So e.g. if I have a log of length 40, I need to do
let fields: [Field; 2] = bytes_to_fields(logs);
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there no way to determine this automatically using numeric generic arithmetic?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jfecher is it in the realm of possibility to have rounding in arithmetic over generics?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it will do integer division so you can use:
pub fn bytes_to_fields<let N: u32>(input: [u8; N]) -> [Field; (N+30) / 31] {
let M: u32 = (N + 30) / 31;
...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Thunkar good idea! Will try implementing that in a PR up the stack to unblock this one and the NFT from merging. Thanks
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@benesjan yep, you can get rounding behavior with division or modulus.
We had a bug a little while ago where we were actually simplifying N / M * M
to just N
which is incorrect since we use integer division. E.g. 3 / 2 * 2
is 2
, not 3
. So also be aware if you do use division you can't cancel it out with a multiplication.
37f6f23
to
12b6dc9
Compare
12b6dc9
to
bd1de81
Compare
@@ -0,0 +1,120 @@ | |||
// Converts the input bytes into an array of fields. A Field is ~254 bits meaning that each field can store 31 bytes. | |||
// This implies that M = ceil(N / 31). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm I don't think this is comptime - the assertion will run when the function is called. We can do static_assert
for this however, and get a compilation error (which is I think what we want here). We should also be able to compute the ceil
value.
The annoying part is that the caller has to do the math. So e.g. if I have a log of length 40, I need to do
let fields: [Field; 2] = bytes_to_fields(logs);
@@ -0,0 +1,120 @@ | |||
// Converts the input bytes into an array of fields. A Field is ~254 bits meaning that each field can store 31 bytes. | |||
// This implies that M = ceil(N / 31). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there no way to determine this automatically using numeric generic arithmetic?
@@ -0,0 +1,206 @@ | |||
// Converts the input bytes into an array of fields. A Field is ~254 bits meaning that each field can store 31 bytes. | |||
// This implies that M = ceil(N / 31). | |||
pub fn bytes_to_fields<let N: u32, let M: u32>(input: [u8; N]) -> [Field; M] { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you think about creating new traits as discussed in #7728 and making these fns the impl for u8 arrays?
bd1de81
to
cb760fc
Compare
700d64b
to
b7df9c3
Compare
b7df9c3
to
e87ada7
Compare
e87ada7
to
84342d5
Compare
Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com>
84342d5
to
3271b22
Compare
Changes to public function bytecode sizes
🧾 Summary (100% most significant diffs)
Full diff report 👇
|
Changes to circuit sizes
🧾 Summary (100% most significant diffs)
Full diff report 👇
|
* master: (66 commits) feat: Get logs by tags (#9353) feat: bytes to fields and back (#8590) feat: eccvm translator zk sumcheck (#9199) chore: bump node types (#9397) refactor: quick account manager refactor (#9357) chore: quick keystore refactor (#9355) chore: implement Fq add (#9354) chore: fix and re-enable prover coordination e2e test (#9344) feat: introduce default public keys and replace empty public keys (#9277) chore: remove unnecessary `is_integral_bit_size` function (#9352) feat(nr): serde for signed ints (#9211) feat(docs): nits (#8948) chore: unstake the bond when the proof lands (#9363) chore: print out gas at start and end of each enqueued call (#9377) fix: broken constants gen (#9387) chore: redo typo PR by pucedoteth (#9385) git subrepo push --branch=master noir-projects/aztec-nr git_subrepo.sh: Fix parent in .gitrepo file. [skip ci] chore: replace relative paths to noir-protocol-circuits git subrepo push --branch=master barretenberg ...
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.60.0</summary> ## [0.60.0](aztec-package-v0.59.0...aztec-package-v0.60.0) (2024-10-24) ### Features * Introduce default public keys and replace empty public keys ([#9277](#9277)) ([47718ea](47718ea)) * Sequencer cast votes ([#9247](#9247)) ([bd05d87](bd05d87)) </details> <details><summary>barretenberg.js: 0.60.0</summary> ## [0.60.0](barretenberg.js-v0.59.0...barretenberg.js-v0.60.0) (2024-10-24) ### Features * Eccvm translator zk sumcheck ([#9199](#9199)) ([c7d4572](c7d4572)) ### Miscellaneous * Remove noir_js_backend_barretenberg ([#9338](#9338)) ([cefe3d9](cefe3d9)) </details> <details><summary>aztec-packages: 0.60.0</summary> ## [0.60.0](aztec-packages-v0.59.0...aztec-packages-v0.60.0) (2024-10-24) ### ⚠ BREAKING CHANGES * replace usage of vector in keccakf1600 input with array ([#9350](#9350)) * TXE single execution env ([#9183](#9183)) * remove hash opcodes from AVM ([#9209](#9209)) * remove delegate call and storage address ([#9330](#9330)) ### Features * Apella ([#9084](#9084)) ([205ce69](205ce69)) * **avm:** Full poseidon2 ([#9141](#9141)) ([eae7587](eae7587)) * Bytes to fields and back ([#8590](#8590)) ([65b8493](65b8493)) * Constrain protocol VK hashing ([#9304](#9304)) ([3d17e13](3d17e13)) * **docs:** Nits ([#8948](#8948)) ([008fdd1](008fdd1)) * Eccvm translator zk sumcheck ([#9199](#9199)) ([c7d4572](c7d4572)) * Gerousia ([#8942](#8942)) ([54b5ba2](54b5ba2)) * Get logs by tags ([#9353](#9353)) ([719c33e](719c33e)) * Handle reorgs on sequencer ([#9201](#9201)) ([d4dea16](d4dea16)) * **interpreter:** Comptime derive generators (noir-lang/noir#6303) ([a166203](a166203)) * Introduce default public keys and replace empty public keys ([#9277](#9277)) ([47718ea](47718ea)) * Modify private calldata to use public keys ([#9276](#9276)) ([e42e219](e42e219)) * New formatter (noir-lang/noir#6300) ([a166203](a166203)) * **nr:** Serde for signed ints ([#9211](#9211)) ([66f31c7](66f31c7)) * Publicly accessible bootstrap cache ([#9335](#9335)) ([28392d5](28392d5)) * Remove hash opcodes from AVM ([#9209](#9209)) ([e6db535](e6db535)), closes [#9208](#9208) * Sequencer cast votes ([#9247](#9247)) ([bd05d87](bd05d87)) * Sha256 refactoring and benchmark with longer input (noir-lang/noir#6318) ([a166203](a166203)) * **ssa:** Various mem2reg reverts to reduce memory and compilation time (noir-lang/noir#6307) ([a166203](a166203)) * Sync from aztec-packages (noir-lang/noir#6301) ([a166203](a166203)) * Translator on Shplemini ([#9329](#9329)) ([21fa3cf](21fa3cf)) * TXE single execution env ([#9183](#9183)) ([1d1d76d](1d1d76d)) * Warn about private types leaking in public functions and struct fields (noir-lang/noir#6296) ([a166203](a166203)) ### Bug Fixes * 4epochs kind test et al ([#9358](#9358)) ([e480e6b](e480e6b)) * Allow array map on empty arrays (noir-lang/noir#6305) ([a166203](a166203)) * **avm:** Public dispatch in proving tests ([#9331](#9331)) ([42e5221](42e5221)) * Barretenberg readme scare warning ([#9313](#9313)) ([f759d55](f759d55)) * Broken constants gen ([#9387](#9387)) ([eb7bc6b](eb7bc6b)) * Ci github clone edge case ([#9320](#9320)) ([15abe6f](15abe6f)) * **ci:** Report 4 epochs true ([#9346](#9346)) ([1ce0fa5](1ce0fa5)) * Display function name and body when inlining recursion limit hit (noir-lang/noir#6291) ([a166203](a166203)) * Do not warn on unused self in traits (noir-lang/noir#6298) ([a166203](a166203)) * Enforce correctness of decompositions performed at compile time (noir-lang/noir#6278) ([a166203](a166203)) * Reject invalid expression with in CLI parser (noir-lang/noir#6287) ([a166203](a166203)) * Remove reliance on invalid decompositions in selector calculation ([#9337](#9337)) ([c8e4260](c8e4260)) * Support empty epochs ([#9341](#9341)) ([9dda91e](9dda91e)) * Use github.actor on publish workflow dispatch ([#9324](#9324)) ([5fa660d](5fa660d)) ### Miscellaneous * **avm:** Some cleaning in avm prover ([#9311](#9311)) ([523aa23](523aa23)) * Bump node types ([#9397](#9397)) ([763d5b1](763d5b1)) * Copying world state binary to yarn project is on generate ([#9194](#9194)) ([8d75dd4](8d75dd4)) * Disable bench-process-history ([#9360](#9360)) ([8e6734e](8e6734e)) * **docs:** Refactoring guides and some other nits (noir-lang/noir#6175) ([a166203](a166203)) * Fix and re-enable prover coordination e2e test ([#9344](#9344)) ([3a1a62c](3a1a62c)) * Implement Fq add ([#9354](#9354)) ([1711fac](1711fac)) * Minor test cleanup ([#9339](#9339)) ([a2ed567](a2ed567)) * Print out gas at start and end of each enqueued call ([#9377](#9377)) ([29c0b95](29c0b95)) * Quick account manager refactor ([#9357](#9357)) ([648d043](648d043)) * Quick keystore refactor ([#9355](#9355)) ([31b9999](31b9999)) * Redo typo PR by pucedoteth ([#9385](#9385)) ([fd1a0d1](fd1a0d1)) * Release Noir(0.36.0) (noir-lang/noir#6213) ([a166203](a166203)) * Remove dead function (noir-lang/noir#6308) ([a166203](a166203)) * Remove delegate call and storage address ([#9330](#9330)) ([465f88e](465f88e)) * Remove noir_js_backend_barretenberg ([#9338](#9338)) ([cefe3d9](cefe3d9)) * Remove unnecessary `is_integral_bit_size` function ([#9352](#9352)) ([ac8e6d7](ac8e6d7)) * Remove usage of slices in pedersen hash (noir-lang/noir#6295) ([a166203](a166203)) * Replace relative paths to noir-protocol-circuits ([32bd7b9](32bd7b9)) * Replace relative paths to noir-protocol-circuits ([add4605](add4605)) * Replace relative paths to noir-protocol-circuits ([8cb89af](8cb89af)) * Replace usage of vector in keccakf1600 input with array ([#9350](#9350)) ([cb58490](cb58490)) * Scenario for upgrading gerousia ([#9246](#9246)) ([66f59d6](66f59d6)) * Silence cache-download.sh ([#9317](#9317)) ([314d9d2](314d9d2)) * Test 4epochs in native-network ([#9309](#9309)) ([ddb312a](ddb312a)) * Unstake the bond when the proof lands ([#9363](#9363)) ([b25b913](b25b913)) * Update `noir-edwards` repo to point at `noir-lang` org (noir-lang/noir#6323) ([a166203](a166203)) * Updated NFT flows ([#9150](#9150)) ([407f8b4](407f8b4)) </details> <details><summary>barretenberg: 0.60.0</summary> ## [0.60.0](barretenberg-v0.59.0...barretenberg-v0.60.0) (2024-10-24) ### ⚠ BREAKING CHANGES * replace usage of vector in keccakf1600 input with array ([#9350](#9350)) * remove hash opcodes from AVM ([#9209](#9209)) * remove delegate call and storage address ([#9330](#9330)) ### Features * **avm:** Full poseidon2 ([#9141](#9141)) ([eae7587](eae7587)) * Eccvm translator zk sumcheck ([#9199](#9199)) ([c7d4572](c7d4572)) * Remove hash opcodes from AVM ([#9209](#9209)) ([e6db535](e6db535)), closes [#9208](#9208) * Translator on Shplemini ([#9329](#9329)) ([21fa3cf](21fa3cf)) ### Bug Fixes * **avm:** Public dispatch in proving tests ([#9331](#9331)) ([42e5221](42e5221)) * Barretenberg readme scare warning ([#9313](#9313)) ([f759d55](f759d55)) ### Miscellaneous * **avm:** Some cleaning in avm prover ([#9311](#9311)) ([523aa23](523aa23)) * Copying world state binary to yarn project is on generate ([#9194](#9194)) ([8d75dd4](8d75dd4)) * Remove delegate call and storage address ([#9330](#9330)) ([465f88e](465f88e)) * Remove noir_js_backend_barretenberg ([#9338](#9338)) ([cefe3d9](cefe3d9)) * Replace usage of vector in keccakf1600 input with array ([#9350](#9350)) ([cb58490](cb58490)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.60.0</summary> ## [0.60.0](AztecProtocol/aztec-packages@aztec-package-v0.59.0...aztec-package-v0.60.0) (2024-10-24) ### Features * Introduce default public keys and replace empty public keys ([#9277](AztecProtocol/aztec-packages#9277)) ([47718ea](AztecProtocol/aztec-packages@47718ea)) * Sequencer cast votes ([#9247](AztecProtocol/aztec-packages#9247)) ([bd05d87](AztecProtocol/aztec-packages@bd05d87)) </details> <details><summary>barretenberg.js: 0.60.0</summary> ## [0.60.0](AztecProtocol/aztec-packages@barretenberg.js-v0.59.0...barretenberg.js-v0.60.0) (2024-10-24) ### Features * Eccvm translator zk sumcheck ([#9199](AztecProtocol/aztec-packages#9199)) ([c7d4572](AztecProtocol/aztec-packages@c7d4572)) ### Miscellaneous * Remove noir_js_backend_barretenberg ([#9338](AztecProtocol/aztec-packages#9338)) ([cefe3d9](AztecProtocol/aztec-packages@cefe3d9)) </details> <details><summary>aztec-packages: 0.60.0</summary> ## [0.60.0](AztecProtocol/aztec-packages@aztec-packages-v0.59.0...aztec-packages-v0.60.0) (2024-10-24) ### ⚠ BREAKING CHANGES * replace usage of vector in keccakf1600 input with array ([#9350](AztecProtocol/aztec-packages#9350)) * TXE single execution env ([#9183](AztecProtocol/aztec-packages#9183)) * remove hash opcodes from AVM ([#9209](AztecProtocol/aztec-packages#9209)) * remove delegate call and storage address ([#9330](AztecProtocol/aztec-packages#9330)) ### Features * Apella ([#9084](AztecProtocol/aztec-packages#9084)) ([205ce69](AztecProtocol/aztec-packages@205ce69)) * **avm:** Full poseidon2 ([#9141](AztecProtocol/aztec-packages#9141)) ([eae7587](AztecProtocol/aztec-packages@eae7587)) * Bytes to fields and back ([#8590](AztecProtocol/aztec-packages#8590)) ([65b8493](AztecProtocol/aztec-packages@65b8493)) * Constrain protocol VK hashing ([#9304](AztecProtocol/aztec-packages#9304)) ([3d17e13](AztecProtocol/aztec-packages@3d17e13)) * **docs:** Nits ([#8948](AztecProtocol/aztec-packages#8948)) ([008fdd1](AztecProtocol/aztec-packages@008fdd1)) * Eccvm translator zk sumcheck ([#9199](AztecProtocol/aztec-packages#9199)) ([c7d4572](AztecProtocol/aztec-packages@c7d4572)) * Gerousia ([#8942](AztecProtocol/aztec-packages#8942)) ([54b5ba2](AztecProtocol/aztec-packages@54b5ba2)) * Get logs by tags ([#9353](AztecProtocol/aztec-packages#9353)) ([719c33e](AztecProtocol/aztec-packages@719c33e)) * Handle reorgs on sequencer ([#9201](AztecProtocol/aztec-packages#9201)) ([d4dea16](AztecProtocol/aztec-packages@d4dea16)) * **interpreter:** Comptime derive generators (noir-lang/noir#6303) ([a166203](AztecProtocol/aztec-packages@a166203)) * Introduce default public keys and replace empty public keys ([#9277](AztecProtocol/aztec-packages#9277)) ([47718ea](AztecProtocol/aztec-packages@47718ea)) * Modify private calldata to use public keys ([#9276](AztecProtocol/aztec-packages#9276)) ([e42e219](AztecProtocol/aztec-packages@e42e219)) * New formatter (noir-lang/noir#6300) ([a166203](AztecProtocol/aztec-packages@a166203)) * **nr:** Serde for signed ints ([#9211](AztecProtocol/aztec-packages#9211)) ([66f31c7](AztecProtocol/aztec-packages@66f31c7)) * Publicly accessible bootstrap cache ([#9335](AztecProtocol/aztec-packages#9335)) ([28392d5](AztecProtocol/aztec-packages@28392d5)) * Remove hash opcodes from AVM ([#9209](AztecProtocol/aztec-packages#9209)) ([e6db535](AztecProtocol/aztec-packages@e6db535)), closes [#9208](AztecProtocol/aztec-packages#9208) * Sequencer cast votes ([#9247](AztecProtocol/aztec-packages#9247)) ([bd05d87](AztecProtocol/aztec-packages@bd05d87)) * Sha256 refactoring and benchmark with longer input (noir-lang/noir#6318) ([a166203](AztecProtocol/aztec-packages@a166203)) * **ssa:** Various mem2reg reverts to reduce memory and compilation time (noir-lang/noir#6307) ([a166203](AztecProtocol/aztec-packages@a166203)) * Sync from aztec-packages (noir-lang/noir#6301) ([a166203](AztecProtocol/aztec-packages@a166203)) * Translator on Shplemini ([#9329](AztecProtocol/aztec-packages#9329)) ([21fa3cf](AztecProtocol/aztec-packages@21fa3cf)) * TXE single execution env ([#9183](AztecProtocol/aztec-packages#9183)) ([1d1d76d](AztecProtocol/aztec-packages@1d1d76d)) * Warn about private types leaking in public functions and struct fields (noir-lang/noir#6296) ([a166203](AztecProtocol/aztec-packages@a166203)) ### Bug Fixes * 4epochs kind test et al ([#9358](AztecProtocol/aztec-packages#9358)) ([e480e6b](AztecProtocol/aztec-packages@e480e6b)) * Allow array map on empty arrays (noir-lang/noir#6305) ([a166203](AztecProtocol/aztec-packages@a166203)) * **avm:** Public dispatch in proving tests ([#9331](AztecProtocol/aztec-packages#9331)) ([42e5221](AztecProtocol/aztec-packages@42e5221)) * Barretenberg readme scare warning ([#9313](AztecProtocol/aztec-packages#9313)) ([f759d55](AztecProtocol/aztec-packages@f759d55)) * Broken constants gen ([#9387](AztecProtocol/aztec-packages#9387)) ([eb7bc6b](AztecProtocol/aztec-packages@eb7bc6b)) * Ci github clone edge case ([#9320](AztecProtocol/aztec-packages#9320)) ([15abe6f](AztecProtocol/aztec-packages@15abe6f)) * **ci:** Report 4 epochs true ([#9346](AztecProtocol/aztec-packages#9346)) ([1ce0fa5](AztecProtocol/aztec-packages@1ce0fa5)) * Display function name and body when inlining recursion limit hit (noir-lang/noir#6291) ([a166203](AztecProtocol/aztec-packages@a166203)) * Do not warn on unused self in traits (noir-lang/noir#6298) ([a166203](AztecProtocol/aztec-packages@a166203)) * Enforce correctness of decompositions performed at compile time (noir-lang/noir#6278) ([a166203](AztecProtocol/aztec-packages@a166203)) * Reject invalid expression with in CLI parser (noir-lang/noir#6287) ([a166203](AztecProtocol/aztec-packages@a166203)) * Remove reliance on invalid decompositions in selector calculation ([#9337](AztecProtocol/aztec-packages#9337)) ([c8e4260](AztecProtocol/aztec-packages@c8e4260)) * Support empty epochs ([#9341](AztecProtocol/aztec-packages#9341)) ([9dda91e](AztecProtocol/aztec-packages@9dda91e)) * Use github.actor on publish workflow dispatch ([#9324](AztecProtocol/aztec-packages#9324)) ([5fa660d](AztecProtocol/aztec-packages@5fa660d)) ### Miscellaneous * **avm:** Some cleaning in avm prover ([#9311](AztecProtocol/aztec-packages#9311)) ([523aa23](AztecProtocol/aztec-packages@523aa23)) * Bump node types ([#9397](AztecProtocol/aztec-packages#9397)) ([763d5b1](AztecProtocol/aztec-packages@763d5b1)) * Copying world state binary to yarn project is on generate ([#9194](AztecProtocol/aztec-packages#9194)) ([8d75dd4](AztecProtocol/aztec-packages@8d75dd4)) * Disable bench-process-history ([#9360](AztecProtocol/aztec-packages#9360)) ([8e6734e](AztecProtocol/aztec-packages@8e6734e)) * **docs:** Refactoring guides and some other nits (noir-lang/noir#6175) ([a166203](AztecProtocol/aztec-packages@a166203)) * Fix and re-enable prover coordination e2e test ([#9344](AztecProtocol/aztec-packages#9344)) ([3a1a62c](AztecProtocol/aztec-packages@3a1a62c)) * Implement Fq add ([#9354](AztecProtocol/aztec-packages#9354)) ([1711fac](AztecProtocol/aztec-packages@1711fac)) * Minor test cleanup ([#9339](AztecProtocol/aztec-packages#9339)) ([a2ed567](AztecProtocol/aztec-packages@a2ed567)) * Print out gas at start and end of each enqueued call ([#9377](AztecProtocol/aztec-packages#9377)) ([29c0b95](AztecProtocol/aztec-packages@29c0b95)) * Quick account manager refactor ([#9357](AztecProtocol/aztec-packages#9357)) ([648d043](AztecProtocol/aztec-packages@648d043)) * Quick keystore refactor ([#9355](AztecProtocol/aztec-packages#9355)) ([31b9999](AztecProtocol/aztec-packages@31b9999)) * Redo typo PR by pucedoteth ([#9385](AztecProtocol/aztec-packages#9385)) ([fd1a0d1](AztecProtocol/aztec-packages@fd1a0d1)) * Release Noir(0.36.0) (noir-lang/noir#6213) ([a166203](AztecProtocol/aztec-packages@a166203)) * Remove dead function (noir-lang/noir#6308) ([a166203](AztecProtocol/aztec-packages@a166203)) * Remove delegate call and storage address ([#9330](AztecProtocol/aztec-packages#9330)) ([465f88e](AztecProtocol/aztec-packages@465f88e)) * Remove noir_js_backend_barretenberg ([#9338](AztecProtocol/aztec-packages#9338)) ([cefe3d9](AztecProtocol/aztec-packages@cefe3d9)) * Remove unnecessary `is_integral_bit_size` function ([#9352](AztecProtocol/aztec-packages#9352)) ([ac8e6d7](AztecProtocol/aztec-packages@ac8e6d7)) * Remove usage of slices in pedersen hash (noir-lang/noir#6295) ([a166203](AztecProtocol/aztec-packages@a166203)) * Replace relative paths to noir-protocol-circuits ([32bd7b9](AztecProtocol/aztec-packages@32bd7b9)) * Replace relative paths to noir-protocol-circuits ([add4605](AztecProtocol/aztec-packages@add4605)) * Replace relative paths to noir-protocol-circuits ([8cb89af](AztecProtocol/aztec-packages@8cb89af)) * Replace usage of vector in keccakf1600 input with array ([#9350](AztecProtocol/aztec-packages#9350)) ([cb58490](AztecProtocol/aztec-packages@cb58490)) * Scenario for upgrading gerousia ([#9246](AztecProtocol/aztec-packages#9246)) ([66f59d6](AztecProtocol/aztec-packages@66f59d6)) * Silence cache-download.sh ([#9317](AztecProtocol/aztec-packages#9317)) ([314d9d2](AztecProtocol/aztec-packages@314d9d2)) * Test 4epochs in native-network ([#9309](AztecProtocol/aztec-packages#9309)) ([ddb312a](AztecProtocol/aztec-packages@ddb312a)) * Unstake the bond when the proof lands ([#9363](AztecProtocol/aztec-packages#9363)) ([b25b913](AztecProtocol/aztec-packages@b25b913)) * Update `noir-edwards` repo to point at `noir-lang` org (noir-lang/noir#6323) ([a166203](AztecProtocol/aztec-packages@a166203)) * Updated NFT flows ([#9150](AztecProtocol/aztec-packages#9150)) ([407f8b4](AztecProtocol/aztec-packages@407f8b4)) </details> <details><summary>barretenberg: 0.60.0</summary> ## [0.60.0](AztecProtocol/aztec-packages@barretenberg-v0.59.0...barretenberg-v0.60.0) (2024-10-24) ### ⚠ BREAKING CHANGES * replace usage of vector in keccakf1600 input with array ([#9350](AztecProtocol/aztec-packages#9350)) * remove hash opcodes from AVM ([#9209](AztecProtocol/aztec-packages#9209)) * remove delegate call and storage address ([#9330](AztecProtocol/aztec-packages#9330)) ### Features * **avm:** Full poseidon2 ([#9141](AztecProtocol/aztec-packages#9141)) ([eae7587](AztecProtocol/aztec-packages@eae7587)) * Eccvm translator zk sumcheck ([#9199](AztecProtocol/aztec-packages#9199)) ([c7d4572](AztecProtocol/aztec-packages@c7d4572)) * Remove hash opcodes from AVM ([#9209](AztecProtocol/aztec-packages#9209)) ([e6db535](AztecProtocol/aztec-packages@e6db535)), closes [#9208](AztecProtocol/aztec-packages#9208) * Translator on Shplemini ([#9329](AztecProtocol/aztec-packages#9329)) ([21fa3cf](AztecProtocol/aztec-packages@21fa3cf)) ### Bug Fixes * **avm:** Public dispatch in proving tests ([#9331](AztecProtocol/aztec-packages#9331)) ([42e5221](AztecProtocol/aztec-packages@42e5221)) * Barretenberg readme scare warning ([#9313](AztecProtocol/aztec-packages#9313)) ([f759d55](AztecProtocol/aztec-packages@f759d55)) ### Miscellaneous * **avm:** Some cleaning in avm prover ([#9311](AztecProtocol/aztec-packages#9311)) ([523aa23](AztecProtocol/aztec-packages@523aa23)) * Copying world state binary to yarn project is on generate ([#9194](AztecProtocol/aztec-packages#9194)) ([8d75dd4](AztecProtocol/aztec-packages@8d75dd4)) * Remove delegate call and storage address ([#9330](AztecProtocol/aztec-packages#9330)) ([465f88e](AztecProtocol/aztec-packages@465f88e)) * Remove noir_js_backend_barretenberg ([#9338](AztecProtocol/aztec-packages#9338)) ([cefe3d9](AztecProtocol/aztec-packages@cefe3d9)) * Replace usage of vector in keccakf1600 input with array ([#9350](AztecProtocol/aztec-packages#9350)) ([cb58490](AztecProtocol/aztec-packages@cb58490)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Adds functionality to convert byte array to field array in Noir and back.