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

fix: blob fees & l1-publisher logging #11029

Merged
merged 45 commits into from
Jan 10, 2025
Merged

fix: blob fees & l1-publisher logging #11029

merged 45 commits into from
Jan 10, 2025

Conversation

spypsy
Copy link
Member

@spypsy spypsy commented Jan 3, 2025

fixes: #11005
fixes: #10066

Few things ended up being included here:

  • Tx calculation for blobs
  • Configuration to allow for fixed priority fee on all TXs
  • Fixes around user configuration to allow for fractional percentages (e.g. 8.55% increase on fees per retry)
  • Stripping errors from eth nodes that included massive hex strings of data
  • Attempting to get revert errors for all actions of l1-publisher
  • introduce 5s bot tx interval & fixed priority fee for our sepolia deployments

@spypsy spypsy marked this pull request as ready for review January 3, 2025 13:58
Copy link
Collaborator

@spalladino spalladino left a comment

Choose a reason for hiding this comment

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

I think we still need to make a few more changes to how the price bump is computed, but this should fix the error we're seeing now in Sepolia.

Also, I'm not a fan of passing the blobs as a separate third argument in the API. I'd expect them to be part of the request object. I know you didn't introduce it though, but I'd consider changing it eventually.

yarn-project/ethereum/src/l1_tx_utils.test.ts Show resolved Hide resolved
const blobBaseFeeHex = await this.publicClient.request({ method: 'eth_blobBaseFee' });
blobBaseFee = BigInt(blobBaseFeeHex);
} catch {
// Ignore if not supported
Copy link
Collaborator

Choose a reason for hiding this comment

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

Let's at least log this as a warn. I'm worried about a scenario where the blobBaseFee request fails due to a connectivity error and we end up sending the tx with zero fee.

yarn-project/ethereum/src/l1_tx_utils.ts Show resolved Hide resolved
Comment on lines 423 to 428
const bumpPercentage =
gasConfig.priorityFeeRetryBumpPercentage! > MIN_REPLACEMENT_BUMP_PERCENTAGE
? gasConfig.priorityFeeRetryBumpPercentage!
: MIN_REPLACEMENT_BUMP_PERCENTAGE;

blobBaseFee = (previousGasPrice.maxFeePerBlobGas * (100n + bumpPercentage)) / 100n;
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why do we use the priorityFeeRetryBumpPercentage here? I'd expect that we just need to use the MIN_REPLACEMENT_BUMP_PERCENTAGE expected by geth (which comes from here apparently).

Also, we need to account for the current blob base fee, and do something similar to what we do for the calldata fee: use the minimum between the current chain blob base fee (bumped by 12.5% per stall time) and geth's minimum bump (10%) wrt the previous price.

Copy link
Member Author

Choose a reason for hiding this comment

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

thanks for that 🙏
I was googling to find if there was such a percentage but couldn't find it so I used this patchy solution.
I should go directly to geth code from now on

Copy link
Collaborator

Choose a reason for hiding this comment

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

I should go directly to geth code from now on

Yup. I learned that the hard way. Anything related to mempool management is out of protocol, so it depends on the clients, and is awfully undocumented.

Comment on lines +356 to +357
// Blob transactions should require more gas
expect(blobEstimate).toBeGreaterThan(baseEstimate);
Copy link
Collaborator

Choose a reason for hiding this comment

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

Curious: why is this? Does eth_estimateGas return both the execution gas and the blob gas mixed up together?

Copy link
Member Author

@spypsy spypsy Jan 6, 2025

Choose a reason for hiding this comment

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

it seems in our estimateGas, we have to use prepareTransactionRequest to get a full estimation, which does increase a lot compared to estimateGas so I assumed that includes the blob gas

@spypsy spypsy force-pushed the spy/tx-utils-blobs branch from d07b6ed to e7b3f71 Compare January 6, 2025 15:13
Copy link
Collaborator

@spalladino spalladino left a comment

Choose a reason for hiding this comment

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

Good find on the blob bump being 100% instead of 10%. But note that the 100% bump is applied to all gas fields, not just maxFeePerBlobGas according to this code. In other words, if the tx has blobs, the minimum bump is 100% for the maxFeePerBlobGas, the maxFeePerGas, and the maxPriorityFeePerGas.

@spypsy spypsy changed the title fix: bump blob fees on retries fix: blob fees Jan 9, 2025
Copy link
Contributor

github-actions bot commented Jan 10, 2025

Changes to public function bytecode sizes

Generated at commit: 5df4a4541991053b25d1c340023bf60ce6790109, compared to commit: ccf28f56c408381867a4ac9435c5f0cc46690271

🧾 Summary (100% most significant diffs)

Program Bytecode size in bytes (+/-) %
NFT::owner_of +426 ❌ +23.36%
NFT::mint +503 ❌ +23.21%
Token::mint_to_public +379 ❌ +16.41%
TokenBlacklist::mint_public +415 ❌ +11.52%
AuthRegistry::public_dispatch +751 ❌ +10.49%
AuthWitTest::public_dispatch +149 ❌ +9.93%
Lending::public_dispatch +2,450 ❌ +9.67%
TokenBlacklist::transfer_public +500 ❌ +9.18%
Lending::get_position +389 ❌ +9.10%
Token::public_dispatch +2,596 ❌ +8.61%
TokenBlacklist::public_dispatch +1,725 ❌ +7.73%
TokenBlacklist::burn_public +379 ❌ +7.55%
TokenBlacklist::shield +392 ❌ +6.82%
StatefulTest::public_dispatch +360 ❌ +6.25%
FPC::public_dispatch +462 ❌ +6.21%
FeeJuice::public_dispatch +271 ❌ +5.85%
NFT::public_dispatch +1,334 ❌ +5.85%
AppSubscription::public_dispatch +215 ❌ +5.34%
Parent::public_dispatch +392 ❌ +5.19%
StaticParent::public_dispatch +288 ❌ +5.12%
DocsExample::public_dispatch +189 ❌ +5.03%
AvmTest::nested_call_to_nothing_recovers +13 ❌ +4.30%
Test::public_dispatch +640 ❌ +3.55%
Benchmarking::public_dispatch +120 ❌ +3.36%
AvmTest::public_dispatch +1,844 ❌ +2.90%
Uniswap::public_dispatch +612 ❌ +2.55%
TokenBridge::public_dispatch +490 ❌ +2.41%
AvmTest::keccak_hash +52 ❌ +2.21%
CardGame::public_dispatch +277 ❌ +1.87%
Test::emit_unencrypted +26 ❌ +1.79%
TestLog::public_dispatch +39 ❌ +1.73%
NFT::finalize_transfer_to_private +91 ❌ +1.71%
NFT::_finalize_transfer_to_private_unsafe +91 ❌ +1.70%
AvmTest::n_storage_writes +26 ❌ +1.60%
Token::finalize_mint_to_private +91 ❌ +1.52%
Token::_finalize_mint_to_private_unsafe +91 ❌ +1.50%
Auth::get_scheduled_authorized +26 ❌ +1.46%
Token::finalize_transfer_to_private +91 ❌ +1.43%
AvmTest::emit_unencrypted_log +39 ❌ +1.42%
Token::_finalize_transfer_to_private_unsafe +91 ❌ +1.42%
Crowdfunding::_publish_donation_receipts +13 ❌ +1.41%
AvmTest::get_args_hash +26 ❌ +1.40%
EasyPrivateVoting::public_dispatch +67 ❌ +1.40%
Auth::get_authorized +26 ❌ +1.38%
AvmTest::external_call_to_divide_by_zero_recovers +39 ❌ +1.36%
Token::complete_refund +91 ❌ +1.33%
CardGame::on_cards_claimed +91 ❌ +1.29%
Lending::get_asset +26 ❌ +1.27%
Test::create_l2_to_l1_message_public +26 ❌ +1.19%
ImportTest::public_dispatch +13 ❌ +1.17%
TestLog::emit_unencrypted_events +13 ❌ +1.15%
Lending::_deposit +26 ❌ +1.10%
Parent::public_nested_static_call +39 ❌ +1.09%
CardGame::on_game_joined +52 ❌ +1.09%
NFT::_store_payload_in_transient_storage_unsafe +13 ❌ +1.08%
Token::_store_payload_in_transient_storage_unsafe +13 ❌ +1.08%
AvmTest::pedersen_commit +13 ❌ +1.02%
AvmTest::sha256_hash +39 ❌ +1.00%
Lending::repay_public +26 ❌ +0.99%
FPC::pull_funds +26 ❌ +0.98%
FPC::constructor +26 ❌ +0.97%
TokenBridge::constructor +26 ❌ +0.95%
CardGame::on_card_played +52 ❌ +0.95%
Lending::deposit_public +26 ❌ +0.94%
Lending::init +26 ❌ +0.94%
AMM::_add_liquidity +78 ❌ +0.93%
Claim::constructor +26 ❌ +0.92%
AvmTest::pedersen_hash_with_index +26 ❌ +0.84%
AvmTest::pedersen_hash +26 ❌ +0.84%
AvmTest::poseidon2_hash +13 ❌ +0.84%
StatefulTest::increment_public_value_no_init_check +13 ❌ +0.83%
AuthRegistry::set_reject_all +13 ❌ +0.83%
Test::consume_message_from_arbitrary_sender_public +65 ❌ +0.83%
AvmTest::read_storage_map +13 ❌ +0.82%
StatefulTest::get_public_value +13 ❌ +0.81%
StatefulTest::increment_public_value +13 ❌ +0.81%
AuthRegistry::is_reject_all +13 ❌ +0.80%
AvmTest::set_storage_map +13 ❌ +0.80%
PriceFeed::get_price +13 ❌ +0.80%
Benchmarking::broadcast +13 ❌ +0.79%
CardGame::start_game +52 ❌ +0.79%
NFT::_finish_transfer_to_public +13 ❌ +0.79%
Token::set_minter +13 ❌ +0.78%
Token::is_minter +13 ❌ +0.78%
NFT::set_minter +13 ❌ +0.78%
NFT::is_minter +13 ❌ +0.78%
PriceFeed::set_price +13 ❌ +0.78%
FeeJuice::balance_of_public +13 ❌ +0.76%
AvmTest::add_storage_map +13 ❌ +0.75%
AMM::_remove_liquidity +52 ❌ +0.75%
Uniswap::_approve_bridge_and_exit_input_asset_to_L1 +52 ❌ +0.75%
TokenBlacklist::balance_of_public +13 ❌ +0.73%
Token::balance_of_public +13 ❌ +0.73%
AvmTest::returndata_copy_oracle +13 ❌ +0.73%
Claim::public_dispatch +26 ❌ +0.73%
Test::consume_mint_to_public_message +78 ❌ +0.72%
EasyPrivateVoting::add_to_tally_public +13 ❌ +0.69%
TokenBridge::claim_public +78 ❌ +0.69%
AvmInitializerTest::constructor +13 ❌ +0.68%
AMM::public_dispatch +137 ❌ +0.66%
Auth::get_authorized_delay +13 ❌ +0.65%
Lending::withdraw_public +13 ❌ +0.65%
Lending::borrow_public +13 ❌ +0.65%
FeeJuice::_increase_public_balance +13 ❌ +0.64%
FeeJuice::check_balance +13 ❌ +0.62%
StaticParent::public_nested_static_call +13 ❌ +0.60%
Lending::_withdraw +52 ❌ +0.60%
FPC::pay_refund +13 ❌ +0.60%
TokenBridge::exit_to_l1_public +39 ❌ +0.60%
Benchmarking::increment_balance +13 ❌ +0.58%
Spam::public_spam +13 ❌ +0.58%
TokenBlacklist::_increase_public_balance +13 ❌ +0.56%
Token::_increase_public_balance +13 ❌ +0.56%
Child::public_dispatch +26 ❌ +0.55%
AvmInitializerTest::public_dispatch +13 ❌ +0.49%
TokenBlacklist::get_roles +13 ❌ +0.47%
Lending::_repay +26 ❌ +0.47%
Lending::update_accumulator +26 ❌ +0.47%
PriceFeed::public_dispatch +13 ❌ +0.45%
Spam::public_dispatch +13 ❌ +0.43%
AuthRegistry::consume +13 ❌ +0.43%
AppSubscription::constructor +13 ❌ +0.42%
Uniswap::swap_public +59 ❌ +0.38%
NFT::transfer_in_public +13 ❌ +0.37%
Lending::_borrow +26 ❌ +0.36%
TokenBlacklist::mint_private +13 ❌ +0.35%
NFT::constructor +13 ❌ +0.30%
Token::constructor +13 ❌ +0.30%
Token::transfer_in_public +13 ❌ +0.29%
Crowdfunding::public_dispatch +13 ❌ +0.28%
Auth::set_authorized +13 ❌ +0.26%
Auth::set_authorized_delay +13 ❌ +0.26%
AvmTest::bulk_testing +53 ❌ +0.22%
TokenBlacklist::update_roles +13 ❌ +0.20%
TokenBlacklist::constructor +13 ❌ +0.19%
Auth::public_dispatch -64 ✅ -0.68%
AuthRegistry::is_consumable -26 ✅ -1.47%
AuthRegistry::_set_authorized -26 ✅ -1.48%
AuthRegistry::set_authorized -26 ✅ -1.52%
InclusionProofs::public_dispatch -77 ✅ -1.99%

Full diff report 👇
Program Bytecode size in bytes (+/-) %
NFT::owner_of 2,250 (+426) +23.36%
NFT::mint 2,670 (+503) +23.21%
Token::mint_to_public 2,689 (+379) +16.41%
TokenBlacklist::mint_public 4,016 (+415) +11.52%
AuthRegistry::public_dispatch 7,907 (+751) +10.49%
AuthWitTest::public_dispatch 1,650 (+149) +9.93%
Lending::public_dispatch 27,782 (+2,450) +9.67%
TokenBlacklist::transfer_public 5,949 (+500) +9.18%
Lending::get_position 4,662 (+389) +9.10%
Token::public_dispatch 32,739 (+2,596) +8.61%
TokenBlacklist::public_dispatch 24,039 (+1,725) +7.73%
TokenBlacklist::burn_public 5,401 (+379) +7.55%
TokenBlacklist::shield 6,137 (+392) +6.82%
StatefulTest::public_dispatch 6,124 (+360) +6.25%
FPC::public_dispatch 7,905 (+462) +6.21%
FeeJuice::public_dispatch 4,900 (+271) +5.85%
NFT::public_dispatch 24,129 (+1,334) +5.85%
AppSubscription::public_dispatch 4,243 (+215) +5.34%
Parent::public_dispatch 7,943 (+392) +5.19%
StaticParent::public_dispatch 5,912 (+288) +5.12%
DocsExample::public_dispatch 3,950 (+189) +5.03%
AvmTest::nested_call_to_nothing_recovers 315 (+13) +4.30%
Test::public_dispatch 18,646 (+640) +3.55%
Benchmarking::public_dispatch 3,690 (+120) +3.36%
AvmTest::public_dispatch 65,412 (+1,844) +2.90%
Uniswap::public_dispatch 24,634 (+612) +2.55%
TokenBridge::public_dispatch 20,836 (+490) +2.41%
AvmTest::keccak_hash 2,401 (+52) +2.21%
CardGame::public_dispatch 15,088 (+277) +1.87%
Test::emit_unencrypted 1,479 (+26) +1.79%
TestLog::public_dispatch 2,288 (+39) +1.73%
NFT::finalize_transfer_to_private 5,404 (+91) +1.71%
NFT::_finalize_transfer_to_private_unsafe 5,451 (+91) +1.70%
AvmTest::n_storage_writes 1,649 (+26) +1.60%
Token::finalize_mint_to_private 6,092 (+91) +1.52%
Token::_finalize_mint_to_private_unsafe 6,139 (+91) +1.50%
Auth::get_scheduled_authorized 1,811 (+26) +1.46%
Token::finalize_transfer_to_private 6,444 (+91) +1.43%
AvmTest::emit_unencrypted_log 2,777 (+39) +1.42%
Token::_finalize_transfer_to_private_unsafe 6,491 (+91) +1.42%
Crowdfunding::_publish_donation_receipts 935 (+13) +1.41%
AvmTest::get_args_hash 1,879 (+26) +1.40%
EasyPrivateVoting::public_dispatch 4,863 (+67) +1.40%
Auth::get_authorized 1,906 (+26) +1.38%
AvmTest::external_call_to_divide_by_zero_recovers 2,912 (+39) +1.36%
Token::complete_refund 6,948 (+91) +1.33%
CardGame::on_cards_claimed 7,141 (+91) +1.29%
Lending::get_asset 2,079 (+26) +1.27%
Test::create_l2_to_l1_message_public 2,210 (+26) +1.19%
ImportTest::public_dispatch 1,126 (+13) +1.17%
TestLog::emit_unencrypted_events 1,144 (+13) +1.15%
Lending::_deposit 2,398 (+26) +1.10%
Parent::public_nested_static_call 3,612 (+39) +1.09%
CardGame::on_game_joined 4,844 (+52) +1.09%
NFT::_store_payload_in_transient_storage_unsafe 1,215 (+13) +1.08%
Token::_store_payload_in_transient_storage_unsafe 1,215 (+13) +1.08%
AvmTest::pedersen_commit 1,284 (+13) +1.02%
AvmTest::sha256_hash 3,927 (+39) +1.00%
Lending::repay_public 2,659 (+26) +0.99%
FPC::pull_funds 2,677 (+26) +0.98%
FPC::constructor 2,711 (+26) +0.97%
TokenBridge::constructor 2,750 (+26) +0.95%
CardGame::on_card_played 5,541 (+52) +0.95%
Lending::deposit_public 2,789 (+26) +0.94%
Lending::init 2,789 (+26) +0.94%
AMM::_add_liquidity 8,483 (+78) +0.93%
Claim::constructor 2,846 (+26) +0.92%
AvmTest::pedersen_hash_with_index 3,103 (+26) +0.84%
AvmTest::pedersen_hash 3,103 (+26) +0.84%
AvmTest::poseidon2_hash 1,561 (+13) +0.84%
StatefulTest::increment_public_value_no_init_check 1,577 (+13) +0.83%
AuthRegistry::set_reject_all 1,582 (+13) +0.83%
Test::consume_message_from_arbitrary_sender_public 7,925 (+65) +0.83%
AvmTest::read_storage_map 1,590 (+13) +0.82%
StatefulTest::get_public_value 1,616 (+13) +0.81%
StatefulTest::increment_public_value 1,626 (+13) +0.81%
AuthRegistry::is_reject_all 1,631 (+13) +0.80%
AvmTest::set_storage_map 1,635 (+13) +0.80%
PriceFeed::get_price 1,641 (+13) +0.80%
Benchmarking::broadcast 1,650 (+13) +0.79%
CardGame::start_game 6,613 (+52) +0.79%
NFT::_finish_transfer_to_public 1,666 (+13) +0.79%
Token::set_minter 1,679 (+13) +0.78%
Token::is_minter 1,680 (+13) +0.78%
NFT::set_minter 1,684 (+13) +0.78%
NFT::is_minter 1,685 (+13) +0.78%
PriceFeed::set_price 1,685 (+13) +0.78%
FeeJuice::balance_of_public 1,729 (+13) +0.76%
AvmTest::add_storage_map 1,737 (+13) +0.75%
AMM::_remove_liquidity 6,963 (+52) +0.75%
Uniswap::_approve_bridge_and_exit_input_asset_to_L1 6,976 (+52) +0.75%
TokenBlacklist::balance_of_public 1,783 (+13) +0.73%
Token::balance_of_public 1,783 (+13) +0.73%
AvmTest::returndata_copy_oracle 1,793 (+13) +0.73%
Claim::public_dispatch 3,611 (+26) +0.73%
Test::consume_mint_to_public_message 10,886 (+78) +0.72%
EasyPrivateVoting::add_to_tally_public 1,889 (+13) +0.69%
TokenBridge::claim_public 11,406 (+78) +0.69%
AvmInitializerTest::constructor 1,923 (+13) +0.68%
AMM::public_dispatch 20,979 (+137) +0.66%
Auth::get_authorized_delay 2,009 (+13) +0.65%
Lending::withdraw_public 2,011 (+13) +0.65%
Lending::borrow_public 2,011 (+13) +0.65%
FeeJuice::_increase_public_balance 2,055 (+13) +0.64%
FeeJuice::check_balance 2,102 (+13) +0.62%
StaticParent::public_nested_static_call 2,163 (+13) +0.60%
Lending::_withdraw 8,667 (+52) +0.60%
FPC::pay_refund 2,171 (+13) +0.60%
TokenBridge::exit_to_l1_public 6,573 (+39) +0.60%
Benchmarking::increment_balance 2,238 (+13) +0.58%
Spam::public_spam 2,260 (+13) +0.58%
TokenBlacklist::_increase_public_balance 2,314 (+13) +0.56%
Token::_increase_public_balance 2,314 (+13) +0.56%
Child::public_dispatch 4,779 (+26) +0.55%
AvmInitializerTest::public_dispatch 2,681 (+13) +0.49%
TokenBlacklist::get_roles 2,756 (+13) +0.47%
Lending::_repay 5,522 (+26) +0.47%
Lending::update_accumulator 5,573 (+26) +0.47%
PriceFeed::public_dispatch 2,895 (+13) +0.45%
Spam::public_dispatch 3,041 (+13) +0.43%
AuthRegistry::consume 3,062 (+13) +0.43%
AppSubscription::constructor 3,100 (+13) +0.42%
Uniswap::swap_public 15,584 (+59) +0.38%
NFT::transfer_in_public 3,571 (+13) +0.37%
Lending::_borrow 7,269 (+26) +0.36%
TokenBlacklist::mint_private 3,767 (+13) +0.35%
NFT::constructor 4,304 (+13) +0.30%
Token::constructor 4,379 (+13) +0.30%
Token::transfer_in_public 4,451 (+13) +0.29%
Crowdfunding::public_dispatch 4,620 (+13) +0.28%
Auth::set_authorized 4,966 (+13) +0.26%
Auth::set_authorized_delay 5,062 (+13) +0.26%
AvmTest::bulk_testing 23,859 (+53) +0.22%
TokenBlacklist::update_roles 6,572 (+13) +0.20%
TokenBlacklist::constructor 6,839 (+13) +0.19%
Auth::public_dispatch 9,397 (-64) -0.68%
AuthRegistry::is_consumable 1,740 (-26) -1.47%
AuthRegistry::_set_authorized 1,733 (-26) -1.48%
AuthRegistry::set_authorized 1,686 (-26) -1.52%
InclusionProofs::public_dispatch 3,802 (-77) -1.99%

Copy link
Contributor

github-actions bot commented Jan 10, 2025

Changes to circuit sizes

Generated at commit: 5df4a4541991053b25d1c340023bf60ce6790109, compared to commit: ccf28f56c408381867a4ac9435c5f0cc46690271

🧾 Summary (100% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
rollup_base_private +392,658 ❌ +238.79% +410,720 ❌ +22.67%
private_kernel_init +5,333 ❌ +23.57% +6,178 ❌ +14.57%
rollup_base_public +443,187 ❌ +109.10% +439,041 ❌ +13.26%
private_kernel_inner +7,715 ❌ +20.01% +8,219 ❌ +10.16%
private_kernel_tail_to_public +2,113 ❌ +14.86% +2,565 ❌ +6.35%
rollup_block_root +135,247 ❌ +23.16% +174,214 ❌ +4.14%
private_kernel_reset_0_0_64_0_0_0_0_0_0 +589 ❌ +4.70% +604 ❌ +1.66%
private_kernel_reset_64_0_0_0_0_0_0_0_0 +589 ❌ +4.70% +604 ❌ +1.66%
private_kernel_tail +150 ❌ +3.02% +166 ❌ +0.61%
rollup_block_merge +7,118 ❌ +22.69% +7,621 ❌ +0.39%
private_kernel_reset_32_4_32_4_4_4_64_64_32 +3,499 ❌ +7.94% +372 ❌ +0.27%
private_kernel_reset_0_0_0_0_64_0_0_0_0 +206 ❌ +1.36% +253 ❌ +0.26%
private_kernel_reset_0_64_0_0_0_0_0_0_0 +589 ❌ +2.00% +604 ❌ +0.23%
private_kernel_reset_0_0_0_64_0_0_0_0_0 +589 ❌ +1.91% +604 ❌ +0.22%
private_kernel_reset_32_16_32_4_4_4_64_64_32 +3,499 ❌ +7.34% +372 ❌ +0.21%
private_kernel_reset_32_4_32_16_4_4_64_64_32 +3,499 ❌ +7.31% +372 ❌ +0.21%
private_kernel_reset_32_16_32_16_4_4_64_64_32 +3,499 ❌ +6.80% +372 ❌ +0.17%
private_kernel_reset_32_4_32_4_4_4_64_64_4 +3,331 ❌ +8.32% +162 ❌ +0.12%
private_kernel_reset_32_4_32_4_4_4_4_64_32 +3,319 ❌ +7.98% +146 ❌ +0.12%
private_kernel_reset_32_4_32_4_4_4_64_4_32 +3,319 ❌ +7.86% +146 ❌ +0.11%
private_kernel_reset_32_16_32_4_4_4_64_64_4 +3,331 ❌ +7.64% +162 ❌ +0.09%
private_kernel_reset_32_4_32_16_4_4_64_64_4 +3,331 ❌ +7.60% +162 ❌ +0.09%
private_kernel_reset_32_16_32_4_4_4_4_64_32 +3,319 ❌ +7.34% +146 ❌ +0.09%
private_kernel_reset_32_4_32_16_4_4_4_64_32 +3,319 ❌ +7.30% +146 ❌ +0.09%
private_kernel_reset_32_16_32_4_4_4_64_4_32 +3,319 ❌ +7.25% +146 ❌ +0.08%
private_kernel_reset_32_4_32_16_4_4_64_4_32 +3,319 ❌ +7.21% +146 ❌ +0.08%
private_kernel_reset_32_16_32_16_4_4_64_64_4 +3,331 ❌ +7.02% +162 ❌ +0.07%
private_kernel_reset_32_16_32_16_4_4_4_64_32 +3,319 ❌ +6.77% +146 ❌ +0.07%
private_kernel_reset_32_16_32_16_4_4_64_4_32 +3,319 ❌ +6.69% +146 ❌ +0.07%
parity_base +18 ❌ +0.51% +20 ❌ +0.07%
rollup_root +7,118 ❌ +22.70% +7,623 ❌ +0.05%
rollup_merge +13 ❌ +0.72% +15 ❌ +0.00%
parity_root +18 ❌ +0.42% +20 ❌ +0.00%
private_kernel_reset_32_16_32_16_4_4_64_4_4 +3,151 ❌ +6.91% -63 ✅ -0.03%
private_kernel_reset_32_16_32_16_4_4_4_64_4 +3,151 ❌ +7.00% -63 ✅ -0.03%
private_kernel_reset_32_4_32_16_4_4_64_4_4 +3,151 ❌ +7.50% -63 ✅ -0.04%
private_kernel_reset_32_16_32_4_4_4_64_4_4 +3,151 ❌ +7.55% -63 ✅ -0.04%
private_kernel_reset_32_16_32_16_4_4_4_4_32 +3,139 ❌ +6.65% -78 ✅ -0.04%
private_kernel_reset_32_4_32_16_4_4_4_64_4 +3,151 ❌ +7.61% -63 ✅ -0.04%
private_kernel_reset_32_16_32_4_4_4_4_64_4 +3,151 ❌ +7.66% -63 ✅ -0.04%
private_kernel_reset_32_4_32_16_4_4_4_4_32 +3,139 ❌ +7.20% -78 ✅ -0.05%
private_kernel_reset_32_16_32_4_4_4_4_4_32 +3,139 ❌ +7.24% -78 ✅ -0.05%
private_kernel_reset_32_4_32_4_4_4_64_4_4 +3,151 ❌ +8.25% -63 ✅ -0.05%
private_kernel_reset_32_4_32_4_4_4_4_64_4 +3,151 ❌ +8.39% -63 ✅ -0.06%
private_kernel_reset_16_16_16_16_16_16_16_16_16 +3,196 ❌ +6.86% -127 ✅ -0.06%
private_kernel_reset_32_32_32_32_32_32_32_32_32 +3,400 ❌ +5.31% -216 ✅ -0.06%
private_kernel_reset_32_4_32_4_4_4_4_4_32 +3,139 ❌ +7.90% -78 ✅ -0.07%
private_kernel_reset_32_16_32_16_4_4_4_4_4 +2,971 ❌ +6.89% -288 ✅ -0.15%
private_kernel_reset_32_4_32_16_4_4_4_4_4 +2,971 ❌ +7.51% -288 ✅ -0.19%
private_kernel_reset_32_16_32_4_4_4_4_4_4 +2,971 ❌ +7.56% -288 ✅ -0.19%
private_kernel_reset +3,332 ❌ +3.53% -1,610 ✅ -0.25%
private_kernel_reset_32_4_32_4_4_4_4_4_4 +2,971 ❌ +8.32% -288 ✅ -0.27%
private_kernel_reset_4_4_4_4_4_4_4_4_4 +2,971 ❌ +8.83% -288 ✅ -0.27%
private_kernel_reset_0_0_0_0_0_64_0_0_0 +1,010 ❌ +3.51% -4,250 ✅ -6.63%
rollup_block_root_empty -1,064 ✅ -51.80% -875,967 ✅ -99.49%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
rollup_base_private 557,093 (+392,658) +238.79% 2,222,741 (+410,720) +22.67%
private_kernel_init 27,955 (+5,333) +23.57% 48,587 (+6,178) +14.57%
rollup_base_public 849,413 (+443,187) +109.10% 3,749,002 (+439,041) +13.26%
private_kernel_inner 46,279 (+7,715) +20.01% 89,088 (+8,219) +10.16%
private_kernel_tail_to_public 16,335 (+2,113) +14.86% 42,934 (+2,565) +6.35%
rollup_block_root 719,214 (+135,247) +23.16% 4,379,531 (+174,214) +4.14%
private_kernel_reset_0_0_64_0_0_0_0_0_0 13,114 (+589) +4.70% 36,896 (+604) +1.66%
private_kernel_reset_64_0_0_0_0_0_0_0_0 13,114 (+589) +4.70% 36,896 (+604) +1.66%
private_kernel_tail 5,123 (+150) +3.02% 27,276 (+166) +0.61%
rollup_block_merge 38,484 (+7,118) +22.69% 1,962,780 (+7,621) +0.39%
private_kernel_reset_32_4_32_4_4_4_64_64_32 47,571 (+3,499) +7.94% 136,827 (+372) +0.27%
private_kernel_reset_0_0_0_0_64_0_0_0_0 15,344 (+206) +1.36% 97,090 (+253) +0.26%
private_kernel_reset_0_64_0_0_0_0_0_0_0 30,010 (+589) +2.00% 262,750 (+604) +0.23%
private_kernel_reset_0_0_0_64_0_0_0_0_0 31,356 (+589) +1.91% 274,496 (+604) +0.22%
private_kernel_reset_32_16_32_4_4_4_64_64_32 51,159 (+3,499) +7.34% 179,613 (+372) +0.21%
private_kernel_reset_32_4_32_16_4_4_64_64_32 51,395 (+3,499) +7.31% 181,775 (+372) +0.21%
private_kernel_reset_32_16_32_16_4_4_64_64_32 54,983 (+3,499) +6.80% 224,561 (+372) +0.17%
private_kernel_reset_32_4_32_4_4_4_64_64_4 43,362 (+3,331) +8.32% 130,804 (+162) +0.12%
private_kernel_reset_32_4_32_4_4_4_4_64_32 44,933 (+3,319) +7.98% 120,493 (+146) +0.12%
private_kernel_reset_32_4_32_4_4_4_64_4_32 45,534 (+3,319) +7.86% 130,036 (+146) +0.11%
private_kernel_reset_32_16_32_4_4_4_64_64_4 46,950 (+3,331) +7.64% 173,590 (+162) +0.09%
private_kernel_reset_32_4_32_16_4_4_64_64_4 47,186 (+3,331) +7.60% 175,752 (+162) +0.09%
private_kernel_reset_32_16_32_4_4_4_4_64_32 48,521 (+3,319) +7.34% 163,279 (+146) +0.09%
private_kernel_reset_32_4_32_16_4_4_4_64_32 48,757 (+3,319) +7.30% 165,441 (+146) +0.09%
private_kernel_reset_32_16_32_4_4_4_64_4_32 49,122 (+3,319) +7.25% 172,822 (+146) +0.08%
private_kernel_reset_32_4_32_16_4_4_64_4_32 49,358 (+3,319) +7.21% 174,984 (+146) +0.08%
private_kernel_reset_32_16_32_16_4_4_64_64_4 50,774 (+3,331) +7.02% 218,538 (+162) +0.07%
private_kernel_reset_32_16_32_16_4_4_4_64_32 52,345 (+3,319) +6.77% 208,227 (+146) +0.07%
private_kernel_reset_32_16_32_16_4_4_64_4_32 52,946 (+3,319) +6.69% 217,770 (+146) +0.07%
parity_base 3,557 (+18) +0.51% 29,954 (+20) +0.07%
rollup_root 38,468 (+7,118) +22.70% 14,601,781 (+7,623) +0.05%
rollup_merge 1,821 (+13) +0.72% 1,800,379 (+15) +0.00%
parity_root 4,290 (+18) +0.42% 3,487,877 (+20) +0.00%
private_kernel_reset_32_16_32_16_4_4_64_4_4 48,737 (+3,151) +6.91% 211,747 (-63) -0.03%
private_kernel_reset_32_16_32_16_4_4_4_64_4 48,136 (+3,151) +7.00% 202,204 (-63) -0.03%
private_kernel_reset_32_4_32_16_4_4_64_4_4 45,149 (+3,151) +7.50% 168,961 (-63) -0.04%
private_kernel_reset_32_16_32_4_4_4_64_4_4 44,913 (+3,151) +7.55% 166,799 (-63) -0.04%
private_kernel_reset_32_16_32_16_4_4_4_4_32 50,308 (+3,139) +6.65% 201,437 (-78) -0.04%
private_kernel_reset_32_4_32_16_4_4_4_64_4 44,548 (+3,151) +7.61% 159,418 (-63) -0.04%
private_kernel_reset_32_16_32_4_4_4_4_64_4 44,312 (+3,151) +7.66% 157,256 (-63) -0.04%
private_kernel_reset_32_4_32_16_4_4_4_4_32 46,720 (+3,139) +7.20% 158,651 (-78) -0.05%
private_kernel_reset_32_16_32_4_4_4_4_4_32 46,484 (+3,139) +7.24% 156,489 (-78) -0.05%
private_kernel_reset_32_4_32_4_4_4_64_4_4 41,325 (+3,151) +8.25% 124,013 (-63) -0.05%
private_kernel_reset_32_4_32_4_4_4_4_64_4 40,724 (+3,151) +8.39% 114,470 (-63) -0.06%
private_kernel_reset_16_16_16_16_16_16_16_16_16 49,811 (+3,196) +6.86% 214,450 (-127) -0.06%
private_kernel_reset_32_32_32_32_32_32_32_32_32 67,396 (+3,400) +5.31% 360,369 (-216) -0.06%
private_kernel_reset_32_4_32_4_4_4_4_4_32 42,896 (+3,139) +7.90% 113,703 (-78) -0.07%
private_kernel_reset_32_16_32_16_4_4_4_4_4 46,099 (+2,971) +6.89% 195,413 (-288) -0.15%
private_kernel_reset_32_4_32_16_4_4_4_4_4 42,511 (+2,971) +7.51% 152,627 (-288) -0.19%
private_kernel_reset_32_16_32_4_4_4_4_4_4 42,275 (+2,971) +7.56% 150,465 (-288) -0.19%
private_kernel_reset 97,779 (+3,332) +3.53% 645,994 (-1,610) -0.25%
private_kernel_reset_32_4_32_4_4_4_4_4_4 38,687 (+2,971) +8.32% 107,679 (-288) -0.27%
private_kernel_reset_4_4_4_4_4_4_4_4_4 36,615 (+2,971) +8.83% 105,005 (-288) -0.27%
private_kernel_reset_0_0_0_0_0_64_0_0_0 29,821 (+1,010) +3.51% 59,894 (-4,250) -6.63%
rollup_block_root_empty 990 (-1,064) -51.80% 4,508 (-875,967) -99.49%

@spypsy spypsy changed the title fix: blob fees fix: blob fees & l1-publisher logging Jan 10, 2025
Comment on lines +428 to +435
let blobBaseFee = 0n;
try {
const blobBaseFeeHex = await this.publicClient.request({ method: 'eth_blobBaseFee' });
blobBaseFee = BigInt(blobBaseFeeHex);
this.logger?.debug('Blob base fee:', { blobBaseFee: formatGwei(blobBaseFee) });
} catch {
this.logger?.warn('Failed to get blob base fee', attempt);
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

Should we just skip all this if isBlobTx is false? And fail loudly if we fail to get the blob base fee, so the tx does not get rejected?

yarn-project/ethereum/src/l1_tx_utils.ts Outdated Show resolved Hide resolved
Comment on lines +442 to +443
// try to maintain precision up to 1000000 wei
priorityFee = BigInt(gasConfig.fixedPriorityFeePerGas * 1_000_000) * (WEI_CONST / 1_000_000n);
Copy link
Collaborator

Choose a reason for hiding this comment

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

Not sure I follow. Why not just BigInt(gasConfig.fixedPriorityFeePerGas) * 1_000_000_000n? Also, shouldn't WEI_CONST actually be GWEI_CONST?

Copy link
Member Author

Choose a reason for hiding this comment

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

I think I was going for readability, to make it clear the 1,000,000 we're multiplying & dividing by is for precision.
As for naming I think either sort of works? happy to rename to GWEI_CONST

Copy link
Collaborator

Choose a reason for hiding this comment

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

I had initially thought that WEI_CONST would be 1e18. I checked ethers for inspiration and they have WeiPerEther. Maybe GWEI_IN_WEI, as horrible as it looks?

Comment on lines 462 to 463
const configBump =
gasConfig.priorityFeeRetryBumpPercentage ?? defaultL1TxUtilsConfig.priorityFeeRetryBumpPercentage!;
Copy link
Collaborator

Choose a reason for hiding this comment

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

Nit: it'll be a bit confusing that the priorityFeeRetryBumpPercentage ends up being used for bumping not just the priority fee but all fees. Should we rename it? Or use it strictly for the priority fee only? I vote for the latter, since it probably doesn't make sense to bump the base fee too much.

yarn-project/ethereum/src/utils.ts Outdated Show resolved Hide resolved
Comment on lines +70 to +81
export function prettyLogViemErrorMsg(err: any) {
if (err instanceof BaseError) {
const revertError = err.walk(err => err instanceof ContractFunctionRevertedError);
if (revertError instanceof ContractFunctionRevertedError) {
const errorName = revertError.data?.errorName ?? '';
const args =
revertError.metaMessages && revertError.metaMessages?.length > 1 ? revertError.metaMessages[1].trimStart() : '';
return `${errorName}${args}`;
}
}
return err?.message ?? err;
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

The idea would be to drop this function in favor of the other? Or to keep both?

Copy link
Member Author

Choose a reason for hiding this comment

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

yeah I think this isn't used anywhere anymore actually, can remove

Comment on lines +171 to +174
return JSON.stringify({ error: extractAndFormatRequestBody(error?.message || String(error)) }, null, 2).replace(
/\\n/g,
'\n',
);
Copy link
Collaborator

Choose a reason for hiding this comment

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

Should we check this error is actually a viem error before running all this logic? Also, let's add a big try/catch, so we don't throw again while trying to format the error if something goes wrong.

Comment on lines +84 to +95
const truncateHex = (hex: string, length = 100) => {
if (!hex || typeof hex !== 'string') {
return hex;
}
if (!hex.startsWith('0x')) {
return hex;
}
if (hex.length <= length * 2) {
return hex;
}
return `${hex.slice(0, length)}...${hex.slice(-length)}`;
};
Copy link
Collaborator

Choose a reason for hiding this comment

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

Do we keep the full calldata hex being submitted somewhere in the log? It'd be handy when trying to re-simulate failed tx.

spypsy and others added 2 commits January 10, 2025 18:36
Co-authored-by: Santiago Palladino <santiago@aztecprotocol.com>
Co-authored-by: Santiago Palladino <santiago@aztecprotocol.com>
@just-mitch
Copy link
Collaborator

Merging after talking with @spalladino.

@just-mitch just-mitch merged commit c2c0bc6 into master Jan 10, 2025
48 checks passed
@just-mitch just-mitch deleted the spy/tx-utils-blobs branch January 10, 2025 21:18
rahul-kothari pushed a commit that referenced this pull request Jan 15, 2025
🤖 I have created a release *beep* *boop*
---


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

##
[0.70.0](aztec-package-v0.69.1...aztec-package-v0.70.0)
(2025-01-15)


### Features

* Blob sink in sandbox without extra process
([#11032](#11032))
([4600f54](4600f54))
* Browser chunking
([#11102](#11102))
([393e843](393e843))


### Miscellaneous

* Greater stability at 1TPS
([#10981](#10981))
([1c23662](1c23662))
* Prover db config
([#11126](#11126))
([9d49393](9d49393)),
closes
[#10267](#10267)
* Rpc server cleanup & misc fixes
([#11145](#11145))
([8a927eb](8a927eb))
</details>

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

##
[0.70.0](barretenberg.js-v0.69.1...barretenberg.js-v0.70.0)
(2025-01-15)


### Miscellaneous

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

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

##
[0.70.0](aztec-packages-v0.69.1...aztec-packages-v0.70.0)
(2025-01-15)


### ⚠ BREAKING CHANGES

* disallow calling unconstrained functions outside of `unsafe` blocks
and passing unconstrained functions in place of constrained functions
(noir-lang/noir#6938)
* Disable mocks in `execute`
(noir-lang/noir#6869)
* require trait primitive functions/calls to have their trait in scope
(noir-lang/noir#6901)
* Reserve `enum` and `match` keywords
(noir-lang/noir#6961)
* require trait method calls (`foo.bar()`) to have the trait in scope
(imported) (noir-lang/noir#6895)
* type-check trait default methods
(noir-lang/noir#6645)
* update `aes128_encrypt` to return an array
(noir-lang/noir#6973)
* turn TypeIsMorePrivateThenItem into an error
(noir-lang/noir#6953)
* turn CannotReexportItemWithLessVisibility into an error
(noir-lang/noir#6952)

### Features

* `--pedantic-solving` flag
(noir-lang/noir#6716)
([3883a0e](3883a0e))
* 7 bit long `note_type_id`
([#10951](#10951))
([6fc5673](6fc5673))
* **avm2:** Avm redesign init
([#10906](#10906))
([231f017](231f017))
* Blob sink in sandbox without extra process
([#11032](#11032))
([4600f54](4600f54))
* Browser chunking
([#11102](#11102))
([393e843](393e843))
* Build blocks using txs with higher fee first
([#11093](#11093))
([def7cd7](def7cd7)),
closes
[#11084](#11084)
* **cli:** Add CLI option to filter by contract function name
(noir-lang/noir#7018)
([9189120](9189120))
* **comptime:** Implement to_be_bits and to_le_bits in the interpreter
(noir-lang/noir#7008)
([9189120](9189120))
* Contract class must be registered before deployment
([#10949](#10949))
([7176a70](7176a70))
* Dashboard in gcp
([#11201](#11201))
([2790bd7](2790bd7))
* Disable mocks in `execute`
(noir-lang/noir#6869)
([9189120](9189120))
* Disallow calling unconstrained functions outside of `unsafe` blocks
and passing unconstrained functions in place of constrained functions
(noir-lang/noir#6938)
([9189120](9189120))
* Don't report warnings for dependencies
(noir-lang/noir#6926)
([3883a0e](3883a0e))
* Don't simplify SSA instructions when creating them from a string
(noir-lang/noir#6948)
([3883a0e](3883a0e))
* Expose getL2ToL1Membership on the pxe
([#11215](#11215))
([ffd3625](ffd3625))
* Impl Default for U128 (noir-lang/noir#6984)
([3883a0e](3883a0e))
* Inject protocol nullifier conditionally
([#11155](#11155))
([93ade26](93ade26))
* Kickoff tube circuits at the beginning of proving job
([#11139](#11139))
([85d389f](85d389f)),
closes
[#10998](#10998)
* Lock on Nargo.toml on several nargo commands
(noir-lang/noir#6941)
([3883a0e](3883a0e))
* **lsp:** Use trait method docs for trait impl method docs on hover
(noir-lang/noir#7003)
([9189120](9189120))
* Monitor event loop lag
([#11127](#11127))
([422f125](422f125))
* Permutation argument optimizations
([#10960](#10960))
([de99603](de99603))
* PXE db contract store
([#10867](#10867))
([b5d51eb](b5d51eb))
* Require trait function calls (`Foo::bar()`) to have the trait in scope
(imported) (noir-lang/noir#6882)
([3883a0e](3883a0e))
* Require trait method calls (`foo.bar()`) to have the trait in scope
(imported) (noir-lang/noir#6895)
([3883a0e](3883a0e))
* Require trait primitive functions/calls to have their trait in scope
(noir-lang/noir#6901)
([9189120](9189120))
* Simulator split
([#11144](#11144))
([9b99126](9b99126))
* Single tx block root rollup
([#11096](#11096))
([bcc0168](bcc0168))
* SSA globals in monomorphization and SSA gen
(noir-lang/noir#6985)
([9189120](9189120))
* **ssa:** Immediately simplify away RefCount instructions in ACIR
functions (noir-lang/noir#6893)
([3883a0e](3883a0e))
* **test:** Enable the test fuzzer for Wasm
(noir-lang/noir#6835)
([3883a0e](3883a0e))
* Track nodejs runtime metrics
([#11160](#11160))
([1d24fab](1d24fab))
* Turn CannotReexportItemWithLessVisibility into an error
(noir-lang/noir#6952)
([3883a0e](3883a0e))
* Turn TypeIsMorePrivateThenItem into an error
(noir-lang/noir#6953)
([3883a0e](3883a0e))
* Type-check trait default methods
(noir-lang/noir#6645)
([3883a0e](3883a0e))
* Unchecked math operations in SSA
(noir-lang/noir#7011)
([9189120](9189120))
* Update `aes128_encrypt` to return an array
(noir-lang/noir#6973)
([3883a0e](3883a0e))
* Use tail public inputs as transaction hash
([#11100](#11100))
([34be2c3](34be2c3))
* Validator deadline for reexecution
([#11050](#11050))
([1aa34e7](1aa34e7)),
closes
[#10959](#10959)


### Bug Fixes

* Added start/stop guards to running promise and serial queue
([#11120](#11120))
([23e642f](23e642f))
* Allow multiple trait impls for the same trait as long as one is in
scope (noir-lang/noir#6987)
([9189120](9189120))
* **avm:** AVM circuit fixes related calldata, returndata and call_ptr
([#11207](#11207))
([2f05dc0](2f05dc0))
* **avm:** Mac build
([#11195](#11195))
([c4f4452](c4f4452))
* **avm:** Mac build (retry)
([#11197](#11197))
([0a4b763](0a4b763))
* Aztec-spartan config var
([#11137](#11137))
([acbfad4](acbfad4))
* Blob fees & l1-publisher logging
([#11029](#11029))
([c2c0bc6](c2c0bc6))
* **bootstrap:** Don't download bad cache if unstaged changes
([#11198](#11198))
([2bd895b](2bd895b))
* **boxes:** Fix attempt 2
([#11175](#11175))
([e87b11a](e87b11a))
* Bump inotify limits on tester
([#11217](#11217))
([60bdf1d](60bdf1d))
* Do not emit range check for multiplication by bool
(noir-lang/noir#6983)
([3883a0e](3883a0e))
* Do not panic on indices which are not valid `u32`s
(noir-lang/noir#6976)
([3883a0e](3883a0e))
* Docs rebuild patterns
([#11191](#11191))
([1999990](1999990))
* Don't fail parsing macro if there are parser warnings
(noir-lang/noir#6969)
([3883a0e](3883a0e))
* Don't retransmit txs upon node restart
([#11123](#11123))
([39535c9](39535c9))
* Duplicate env vars
([#11166](#11166))
([2507b6f](2507b6f))
* Error on missing function parameters
(noir-lang/noir#6967)
([3883a0e](3883a0e))
* Get_next_power_exponent off by 1
([#11169](#11169))
([80ec19e](80ec19e))
* Let static_assert fail with the provided message
(noir-lang/noir#7005)
([9189120](9189120))
* Max_note_len computation
([#10438](#10438))
([099c17b](099c17b))
* Non-determinism from under constrained checks
(noir-lang/noir#6945)
([3883a0e](3883a0e))
* Prover node aborts execution at epoch end
([#11111](#11111))
([2a77616](2a77616)),
closes
[#10802](#10802)
* Prover node does not err upon an empty epoch
([#11204](#11204))
([2c3ab84](2c3ab84))
* Remove arch tag in sandbox images
([#11233](#11233))
([80a872d](80a872d))
* Remove max lookup table size constant (for now)
([#11095](#11095))
([7e9e268](7e9e268))
* Reproduce and fix bytecode blowup
(noir-lang/noir#6972)
([9189120](9189120))
* Require generic trait impls to be in scope to call them
(noir-lang/noir#6913)
([9189120](9189120))
* Restore upload_logs script in use by acir bench
([2d88497](2d88497))
* Return trait impl method as FuncId if there's only one
(noir-lang/noir#6989)
([9189120](9189120))
* Revert "chore: use L1 Tx Utils"
([#11167](#11167))
([f4e5c79](f4e5c79))
* Sequencer times out L1 tx at end of L2 slot
([#11112](#11112))
([1b88a34](1b88a34))
* Show output of `test_program_is_idempotent` on failure
(noir-lang/noir#6942)
([3883a0e](3883a0e))
* Start RC at 1 again (noir-lang/noir#6958)
([3883a0e](3883a0e))
* Underconstrained bug
([#11174](#11174))
([0b3088b](0b3088b))
* Update fs max user instances for k8s
([#11220](#11220))
([b42da6d](b42da6d))
* Use absolute path for docker bind in e2e-test
([f2885ec](f2885ec))
* Wrong module to lookup trait when using crate or super
(noir-lang/noir#6974)
([3883a0e](3883a0e))


### Miscellaneous

* Add cli option to specify withdrawer address in the add-l1-validator …
([#11199](#11199))
([107f175](107f175))
* Add memsuspend to parallel in bootstrap
([#11040](#11040))
([c78cb82](c78cb82))
* Add more Field use info (noir-lang/noir#7019)
([9189120](9189120))
* Add reproduction case for bignum test failure
(noir-lang/noir#6464)
([3883a0e](3883a0e))
* Add short circuit in ssa-gen for known if conditions
(noir-lang/noir#7007)
([9189120](9189120))
* Also print test output to stdout in CI
(noir-lang/noir#6930)
([3883a0e](3883a0e))
* **avm:** Fix mac build
([#11147](#11147))
([1775e53](1775e53))
* **avm:** Improve column stats
([#11135](#11135))
([535a14c](535a14c))
* **avm:** Re-enable bb-prover tests in CI, change some to
check-circuit-only, enable multi-enqueued call tests
([#11180](#11180))
([3092212](3092212))
* **avm:** Vm2 followup cleanup
([#11186](#11186))
([6de4013](6de4013))
* Block building benchmark via github-action-benchmark
([#11202](#11202))
([c107b6b](c107b6b)),
closes
[#11154](#11154)
* Bump `noir-gates-diff` (noir-lang/noir#6943)
([3883a0e](3883a0e))
* Bump `noir-gates-diff` (noir-lang/noir#6944)
([3883a0e](3883a0e))
* Bump `noir-gates-diff` (noir-lang/noir#6949)
([3883a0e](3883a0e))
* Bump arkworks to version `0.5.0`
(noir-lang/noir#6871)
([3883a0e](3883a0e))
* **ci:** Easier to use mac ci
([#11194](#11194))
([9ab4cee](9ab4cee))
* **ci:** Ensure that prover.toml files in protocol circuits are in sync
([#11141](#11141))
([db769bd](db769bd))
* **ci:** Fail properly in `external-repo-checks`
(noir-lang/noir#6988)
([9189120](9189120))
* **ci:** Try fix boxes-test
([#11162](#11162))
([a66349f](a66349f))
* Clarity fix in docs (noir-lang/noir#7016)
([9189120](9189120))
* Delete a bunch of dead code from `noirc_evaluator`
(noir-lang/noir#6939)
([3883a0e](3883a0e))
* Delete docs for versions which aren't used
(noir-lang/noir#7020)
([9189120](9189120))
* Disable reorg test
([#11176](#11176))
([78bec44](78bec44))
* Disallow inserting ACIR-only instructions into brillig functions
(noir-lang/noir#7017)
([9189120](9189120))
* **docs:** Backport 1.0.0-beta.0 doc fixes
(noir-lang/noir#7014)
([9189120](9189120))
* **docs:** Edit Aztec.nr Guide section
([#10866](#10866))
([4051ba8](4051ba8))
* **docs:** Remove node pages
([#11161](#11161))
([e494f6b](e494f6b))
* **docs:** Update tx concepts page
([#10947](#10947))
([d9d9798](d9d9798))
* Document aztec-nargo in readme
([#11173](#11173))
([927eabf](927eabf))
* Greater stability at 1TPS
([#10981](#10981))
([1c23662](1c23662))
* Jest reporters for CI
([#11125](#11125))
([90cd9d2](90cd9d2))
* Log number of instructions executed for call in AVM. Misc fix.
([#11110](#11110))
([44e01f4](44e01f4))
* Mark `aztec-nr` as expected to compile
(noir-lang/noir#7015)
([9189120](9189120))
* Mark casts as able to be deduplicated
(noir-lang/noir#6996)
([9189120](9189120))
* Missed test account retrieval simplification in one spot
([#11172](#11172))
([b72234e](b72234e))
* Move comment as part of
[#6945](#6945)
(noir-lang/noir#6959)
([3883a0e](3883a0e))
* Move witness computation into class plus some other cleanup
([#11140](#11140))
([d41e9ab](d41e9ab))
* Nuke unused `getSiblingPath` oracle
([#11090](#11090))
([36b640a](36b640a))
* Nuking mental model of "packing into a hash"
([#11200](#11200))
([e1ebcc0](e1ebcc0))
* Only resolved globals monomorphization
(noir-lang/noir#7006)
([9189120](9189120))
* Prover db config
([#11126](#11126))
([9d49393](9d49393)),
closes
[#10267](#10267)
* Redo typo PR by longxiangqiao
([#11109](#11109))
([b8ef30e](b8ef30e))
* Refactor `get_tx_effects_hash_input_helper`
([#11213](#11213))
([5becb99](5becb99))
* Refactor Solidity Transcript and improve error handling in sol_honk
flow
([#11158](#11158))
([58fdf87](58fdf87))
* Remove explicit collector address
([#11227](#11227))
([dfb0db5](dfb0db5))
* Remove resolve_is_unconstrained pass
(noir-lang/noir#7004)
([9189120](9189120))
* Removing noir bug workaround
([#10535](#10535))
([8be882f](8be882f))
* Replace relative paths to noir-protocol-circuits
([d8619fa](d8619fa))
* Replace relative paths to noir-protocol-circuits
([70cad1c](70cad1c))
* Replace relative paths to noir-protocol-circuits
([e962534](e962534))
* Replace relative paths to noir-protocol-circuits
([ba5a589](ba5a589))
* Replace relative paths to noir-protocol-circuits
([b7c3fa2](b7c3fa2))
* Replace relative paths to noir-protocol-circuits
([32840c6](32840c6))
* Require safety doc comment for unsafe instead of
`//[@safety](https://github.com/safety)`
(noir-lang/noir#6992)
([9189120](9189120))
* Reserve `enum` and `match` keywords
(noir-lang/noir#6961)
([9189120](9189120))
* Rpc server cleanup & misc fixes
([#11145](#11145))
([8a927eb](8a927eb))
* Sanity checking of proving job IDs
([#11134](#11134))
([61c3e95](61c3e95))
* Save kind smoke test logs as artifact
([#11212](#11212))
([1389a5b](1389a5b))
* Separate unconstrained functions during monomorphization
(noir-lang/noir#6894)
([3883a0e](3883a0e))
* Simplify a couple of enum variants
(noir-lang/noir#7025)
([9189120](9189120))
* Simplify boolean in a mul of a mul
(noir-lang/noir#6951)
([3883a0e](3883a0e))
* SmallSubgroupIPA tests
([#11106](#11106))
([f034e2a](f034e2a))
* **spartan:** Making the spartan script install jq
([#11231](#11231))
([7e628cc](7e628cc))
* Test:e2e defaults to no-docker
([#10966](#10966))
([15e0d71](15e0d71))
* Turn on averaging for protocol circuits metrics in CI
(noir-lang/noir#6999)
([9189120](9189120))
* Update aztec-spartan.sh script
([#11228](#11228))
([52b3a87](52b3a87))
* Use DFG in SSA printer (noir-lang/noir#6986)
([9189120](9189120))
* Use L1 Tx Utils
([#10759](#10759))
([ccf28f5](ccf28f5)),
closes
[#10464](#10464)
* Use logs for benchmarking
(noir-lang/noir#6911)
([3883a0e](3883a0e))
* VariableMerkleTree readability improvements
([#11165](#11165))
([010d1b0](010d1b0))
* Wait for ethereum in each pod
([#11238](#11238))
([9c08e00](9c08e00))


### Documentation

* Enable protocol specs for docs in dev mode
([#11219](#11219))
([10c8afe](10c8afe))
</details>

<details><summary>barretenberg: 0.70.0</summary>

##
[0.70.0](barretenberg-v0.69.1...barretenberg-v0.70.0)
(2025-01-15)


### Features

* **avm2:** Avm redesign init
([#10906](#10906))
([231f017](231f017))
* Permutation argument optimizations
([#10960](#10960))
([de99603](de99603))
* Use tail public inputs as transaction hash
([#11100](#11100))
([34be2c3](34be2c3))


### Bug Fixes

* **avm:** AVM circuit fixes related calldata, returndata and call_ptr
([#11207](#11207))
([2f05dc0](2f05dc0))
* **avm:** Mac build
([#11195](#11195))
([c4f4452](c4f4452))
* **avm:** Mac build (retry)
([#11197](#11197))
([0a4b763](0a4b763))
* **bootstrap:** Don't download bad cache if unstaged changes
([#11198](#11198))
([2bd895b](2bd895b))
* Remove max lookup table size constant (for now)
([#11095](#11095))
([7e9e268](7e9e268))


### Miscellaneous

* **avm:** Fix mac build
([#11147](#11147))
([1775e53](1775e53))
* **avm:** Improve column stats
([#11135](#11135))
([535a14c](535a14c))
* **avm:** Re-enable bb-prover tests in CI, change some to
check-circuit-only, enable multi-enqueued call tests
([#11180](#11180))
([3092212](3092212))
* **avm:** Vm2 followup cleanup
([#11186](#11186))
([6de4013](6de4013))
* **docs:** Update tx concepts page
([#10947](#10947))
([d9d9798](d9d9798))
* Move witness computation into class plus some other cleanup
([#11140](#11140))
([d41e9ab](d41e9ab))
* Redo typo PR by longxiangqiao
([#11109](#11109))
([b8ef30e](b8ef30e))
* Refactor Solidity Transcript and improve error handling in sol_honk
flow
([#11158](#11158))
([58fdf87](58fdf87))
* SmallSubgroupIPA tests
([#11106](#11106))
([f034e2a](f034e2a))
</details>

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


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

##
[0.70.0](AztecProtocol/aztec-packages@aztec-package-v0.69.1...aztec-package-v0.70.0)
(2025-01-15)


### Features

* Blob sink in sandbox without extra process
([#11032](AztecProtocol/aztec-packages#11032))
([4600f54](AztecProtocol/aztec-packages@4600f54))
* Browser chunking
([#11102](AztecProtocol/aztec-packages#11102))
([393e843](AztecProtocol/aztec-packages@393e843))


### Miscellaneous

* Greater stability at 1TPS
([#10981](AztecProtocol/aztec-packages#10981))
([1c23662](AztecProtocol/aztec-packages@1c23662))
* Prover db config
([#11126](AztecProtocol/aztec-packages#11126))
([9d49393](AztecProtocol/aztec-packages@9d49393)),
closes
[#10267](AztecProtocol/aztec-packages#10267)
* Rpc server cleanup & misc fixes
([#11145](AztecProtocol/aztec-packages#11145))
([8a927eb](AztecProtocol/aztec-packages@8a927eb))
</details>

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

##
[0.70.0](AztecProtocol/aztec-packages@barretenberg.js-v0.69.1...barretenberg.js-v0.70.0)
(2025-01-15)


### Miscellaneous

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

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

##
[0.70.0](AztecProtocol/aztec-packages@aztec-packages-v0.69.1...aztec-packages-v0.70.0)
(2025-01-15)


### ⚠ BREAKING CHANGES

* disallow calling unconstrained functions outside of `unsafe` blocks
and passing unconstrained functions in place of constrained functions
(noir-lang/noir#6938)
* Disable mocks in `execute`
(noir-lang/noir#6869)
* require trait primitive functions/calls to have their trait in scope
(noir-lang/noir#6901)
* Reserve `enum` and `match` keywords
(noir-lang/noir#6961)
* require trait method calls (`foo.bar()`) to have the trait in scope
(imported) (noir-lang/noir#6895)
* type-check trait default methods
(noir-lang/noir#6645)
* update `aes128_encrypt` to return an array
(noir-lang/noir#6973)
* turn TypeIsMorePrivateThenItem into an error
(noir-lang/noir#6953)
* turn CannotReexportItemWithLessVisibility into an error
(noir-lang/noir#6952)

### Features

* `--pedantic-solving` flag
(noir-lang/noir#6716)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* 7 bit long `note_type_id`
([#10951](AztecProtocol/aztec-packages#10951))
([6fc5673](AztecProtocol/aztec-packages@6fc5673))
* **avm2:** Avm redesign init
([#10906](AztecProtocol/aztec-packages#10906))
([231f017](AztecProtocol/aztec-packages@231f017))
* Blob sink in sandbox without extra process
([#11032](AztecProtocol/aztec-packages#11032))
([4600f54](AztecProtocol/aztec-packages@4600f54))
* Browser chunking
([#11102](AztecProtocol/aztec-packages#11102))
([393e843](AztecProtocol/aztec-packages@393e843))
* Build blocks using txs with higher fee first
([#11093](AztecProtocol/aztec-packages#11093))
([def7cd7](AztecProtocol/aztec-packages@def7cd7)),
closes
[#11084](AztecProtocol/aztec-packages#11084)
* **cli:** Add CLI option to filter by contract function name
(noir-lang/noir#7018)
([9189120](AztecProtocol/aztec-packages@9189120))
* **comptime:** Implement to_be_bits and to_le_bits in the interpreter
(noir-lang/noir#7008)
([9189120](AztecProtocol/aztec-packages@9189120))
* Contract class must be registered before deployment
([#10949](AztecProtocol/aztec-packages#10949))
([7176a70](AztecProtocol/aztec-packages@7176a70))
* Dashboard in gcp
([#11201](AztecProtocol/aztec-packages#11201))
([2790bd7](AztecProtocol/aztec-packages@2790bd7))
* Disable mocks in `execute`
(noir-lang/noir#6869)
([9189120](AztecProtocol/aztec-packages@9189120))
* Disallow calling unconstrained functions outside of `unsafe` blocks
and passing unconstrained functions in place of constrained functions
(noir-lang/noir#6938)
([9189120](AztecProtocol/aztec-packages@9189120))
* Don't report warnings for dependencies
(noir-lang/noir#6926)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Don't simplify SSA instructions when creating them from a string
(noir-lang/noir#6948)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Expose getL2ToL1Membership on the pxe
([#11215](AztecProtocol/aztec-packages#11215))
([ffd3625](AztecProtocol/aztec-packages@ffd3625))
* Impl Default for U128 (noir-lang/noir#6984)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Inject protocol nullifier conditionally
([#11155](AztecProtocol/aztec-packages#11155))
([93ade26](AztecProtocol/aztec-packages@93ade26))
* Kickoff tube circuits at the beginning of proving job
([#11139](AztecProtocol/aztec-packages#11139))
([85d389f](AztecProtocol/aztec-packages@85d389f)),
closes
[#10998](AztecProtocol/aztec-packages#10998)
* Lock on Nargo.toml on several nargo commands
(noir-lang/noir#6941)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* **lsp:** Use trait method docs for trait impl method docs on hover
(noir-lang/noir#7003)
([9189120](AztecProtocol/aztec-packages@9189120))
* Monitor event loop lag
([#11127](AztecProtocol/aztec-packages#11127))
([422f125](AztecProtocol/aztec-packages@422f125))
* Permutation argument optimizations
([#10960](AztecProtocol/aztec-packages#10960))
([de99603](AztecProtocol/aztec-packages@de99603))
* PXE db contract store
([#10867](AztecProtocol/aztec-packages#10867))
([b5d51eb](AztecProtocol/aztec-packages@b5d51eb))
* Require trait function calls (`Foo::bar()`) to have the trait in scope
(imported) (noir-lang/noir#6882)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Require trait method calls (`foo.bar()`) to have the trait in scope
(imported) (noir-lang/noir#6895)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Require trait primitive functions/calls to have their trait in scope
(noir-lang/noir#6901)
([9189120](AztecProtocol/aztec-packages@9189120))
* Simulator split
([#11144](AztecProtocol/aztec-packages#11144))
([9b99126](AztecProtocol/aztec-packages@9b99126))
* Single tx block root rollup
([#11096](AztecProtocol/aztec-packages#11096))
([bcc0168](AztecProtocol/aztec-packages@bcc0168))
* SSA globals in monomorphization and SSA gen
(noir-lang/noir#6985)
([9189120](AztecProtocol/aztec-packages@9189120))
* **ssa:** Immediately simplify away RefCount instructions in ACIR
functions (noir-lang/noir#6893)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* **test:** Enable the test fuzzer for Wasm
(noir-lang/noir#6835)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Track nodejs runtime metrics
([#11160](AztecProtocol/aztec-packages#11160))
([1d24fab](AztecProtocol/aztec-packages@1d24fab))
* Turn CannotReexportItemWithLessVisibility into an error
(noir-lang/noir#6952)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Turn TypeIsMorePrivateThenItem into an error
(noir-lang/noir#6953)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Type-check trait default methods
(noir-lang/noir#6645)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Unchecked math operations in SSA
(noir-lang/noir#7011)
([9189120](AztecProtocol/aztec-packages@9189120))
* Update `aes128_encrypt` to return an array
(noir-lang/noir#6973)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Use tail public inputs as transaction hash
([#11100](AztecProtocol/aztec-packages#11100))
([34be2c3](AztecProtocol/aztec-packages@34be2c3))
* Validator deadline for reexecution
([#11050](AztecProtocol/aztec-packages#11050))
([1aa34e7](AztecProtocol/aztec-packages@1aa34e7)),
closes
[#10959](AztecProtocol/aztec-packages#10959)


### Bug Fixes

* Added start/stop guards to running promise and serial queue
([#11120](AztecProtocol/aztec-packages#11120))
([23e642f](AztecProtocol/aztec-packages@23e642f))
* Allow multiple trait impls for the same trait as long as one is in
scope (noir-lang/noir#6987)
([9189120](AztecProtocol/aztec-packages@9189120))
* **avm:** AVM circuit fixes related calldata, returndata and call_ptr
([#11207](AztecProtocol/aztec-packages#11207))
([2f05dc0](AztecProtocol/aztec-packages@2f05dc0))
* **avm:** Mac build
([#11195](AztecProtocol/aztec-packages#11195))
([c4f4452](AztecProtocol/aztec-packages@c4f4452))
* **avm:** Mac build (retry)
([#11197](AztecProtocol/aztec-packages#11197))
([0a4b763](AztecProtocol/aztec-packages@0a4b763))
* Aztec-spartan config var
([#11137](AztecProtocol/aztec-packages#11137))
([acbfad4](AztecProtocol/aztec-packages@acbfad4))
* Blob fees & l1-publisher logging
([#11029](AztecProtocol/aztec-packages#11029))
([c2c0bc6](AztecProtocol/aztec-packages@c2c0bc6))
* **bootstrap:** Don't download bad cache if unstaged changes
([#11198](AztecProtocol/aztec-packages#11198))
([2bd895b](AztecProtocol/aztec-packages@2bd895b))
* **boxes:** Fix attempt 2
([#11175](AztecProtocol/aztec-packages#11175))
([e87b11a](AztecProtocol/aztec-packages@e87b11a))
* Bump inotify limits on tester
([#11217](AztecProtocol/aztec-packages#11217))
([60bdf1d](AztecProtocol/aztec-packages@60bdf1d))
* Do not emit range check for multiplication by bool
(noir-lang/noir#6983)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Do not panic on indices which are not valid `u32`s
(noir-lang/noir#6976)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Docs rebuild patterns
([#11191](AztecProtocol/aztec-packages#11191))
([1999990](AztecProtocol/aztec-packages@1999990))
* Don't fail parsing macro if there are parser warnings
(noir-lang/noir#6969)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Don't retransmit txs upon node restart
([#11123](AztecProtocol/aztec-packages#11123))
([39535c9](AztecProtocol/aztec-packages@39535c9))
* Duplicate env vars
([#11166](AztecProtocol/aztec-packages#11166))
([2507b6f](AztecProtocol/aztec-packages@2507b6f))
* Error on missing function parameters
(noir-lang/noir#6967)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Get_next_power_exponent off by 1
([#11169](AztecProtocol/aztec-packages#11169))
([80ec19e](AztecProtocol/aztec-packages@80ec19e))
* Let static_assert fail with the provided message
(noir-lang/noir#7005)
([9189120](AztecProtocol/aztec-packages@9189120))
* Max_note_len computation
([#10438](AztecProtocol/aztec-packages#10438))
([099c17b](AztecProtocol/aztec-packages@099c17b))
* Non-determinism from under constrained checks
(noir-lang/noir#6945)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Prover node aborts execution at epoch end
([#11111](AztecProtocol/aztec-packages#11111))
([2a77616](AztecProtocol/aztec-packages@2a77616)),
closes
[#10802](AztecProtocol/aztec-packages#10802)
* Prover node does not err upon an empty epoch
([#11204](AztecProtocol/aztec-packages#11204))
([2c3ab84](AztecProtocol/aztec-packages@2c3ab84))
* Remove arch tag in sandbox images
([#11233](AztecProtocol/aztec-packages#11233))
([80a872d](AztecProtocol/aztec-packages@80a872d))
* Remove max lookup table size constant (for now)
([#11095](AztecProtocol/aztec-packages#11095))
([7e9e268](AztecProtocol/aztec-packages@7e9e268))
* Reproduce and fix bytecode blowup
(noir-lang/noir#6972)
([9189120](AztecProtocol/aztec-packages@9189120))
* Require generic trait impls to be in scope to call them
(noir-lang/noir#6913)
([9189120](AztecProtocol/aztec-packages@9189120))
* Restore upload_logs script in use by acir bench
([2d88497](AztecProtocol/aztec-packages@2d88497))
* Return trait impl method as FuncId if there's only one
(noir-lang/noir#6989)
([9189120](AztecProtocol/aztec-packages@9189120))
* Revert "chore: use L1 Tx Utils"
([#11167](AztecProtocol/aztec-packages#11167))
([f4e5c79](AztecProtocol/aztec-packages@f4e5c79))
* Sequencer times out L1 tx at end of L2 slot
([#11112](AztecProtocol/aztec-packages#11112))
([1b88a34](AztecProtocol/aztec-packages@1b88a34))
* Show output of `test_program_is_idempotent` on failure
(noir-lang/noir#6942)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Start RC at 1 again (noir-lang/noir#6958)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Underconstrained bug
([#11174](AztecProtocol/aztec-packages#11174))
([0b3088b](AztecProtocol/aztec-packages@0b3088b))
* Update fs max user instances for k8s
([#11220](AztecProtocol/aztec-packages#11220))
([b42da6d](AztecProtocol/aztec-packages@b42da6d))
* Use absolute path for docker bind in e2e-test
([f2885ec](AztecProtocol/aztec-packages@f2885ec))
* Wrong module to lookup trait when using crate or super
(noir-lang/noir#6974)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))


### Miscellaneous

* Add cli option to specify withdrawer address in the add-l1-validator …
([#11199](AztecProtocol/aztec-packages#11199))
([107f175](AztecProtocol/aztec-packages@107f175))
* Add memsuspend to parallel in bootstrap
([#11040](AztecProtocol/aztec-packages#11040))
([c78cb82](AztecProtocol/aztec-packages@c78cb82))
* Add more Field use info (noir-lang/noir#7019)
([9189120](AztecProtocol/aztec-packages@9189120))
* Add reproduction case for bignum test failure
(noir-lang/noir#6464)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Add short circuit in ssa-gen for known if conditions
(noir-lang/noir#7007)
([9189120](AztecProtocol/aztec-packages@9189120))
* Also print test output to stdout in CI
(noir-lang/noir#6930)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* **avm:** Fix mac build
([#11147](AztecProtocol/aztec-packages#11147))
([1775e53](AztecProtocol/aztec-packages@1775e53))
* **avm:** Improve column stats
([#11135](AztecProtocol/aztec-packages#11135))
([535a14c](AztecProtocol/aztec-packages@535a14c))
* **avm:** Re-enable bb-prover tests in CI, change some to
check-circuit-only, enable multi-enqueued call tests
([#11180](AztecProtocol/aztec-packages#11180))
([3092212](AztecProtocol/aztec-packages@3092212))
* **avm:** Vm2 followup cleanup
([#11186](AztecProtocol/aztec-packages#11186))
([6de4013](AztecProtocol/aztec-packages@6de4013))
* Block building benchmark via github-action-benchmark
([#11202](AztecProtocol/aztec-packages#11202))
([c107b6b](AztecProtocol/aztec-packages@c107b6b)),
closes
[#11154](AztecProtocol/aztec-packages#11154)
* Bump `noir-gates-diff` (noir-lang/noir#6943)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Bump `noir-gates-diff` (noir-lang/noir#6944)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Bump `noir-gates-diff` (noir-lang/noir#6949)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Bump arkworks to version `0.5.0`
(noir-lang/noir#6871)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* **ci:** Easier to use mac ci
([#11194](AztecProtocol/aztec-packages#11194))
([9ab4cee](AztecProtocol/aztec-packages@9ab4cee))
* **ci:** Ensure that prover.toml files in protocol circuits are in sync
([#11141](AztecProtocol/aztec-packages#11141))
([db769bd](AztecProtocol/aztec-packages@db769bd))
* **ci:** Fail properly in `external-repo-checks`
(noir-lang/noir#6988)
([9189120](AztecProtocol/aztec-packages@9189120))
* **ci:** Try fix boxes-test
([#11162](AztecProtocol/aztec-packages#11162))
([a66349f](AztecProtocol/aztec-packages@a66349f))
* Clarity fix in docs (noir-lang/noir#7016)
([9189120](AztecProtocol/aztec-packages@9189120))
* Delete a bunch of dead code from `noirc_evaluator`
(noir-lang/noir#6939)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Delete docs for versions which aren't used
(noir-lang/noir#7020)
([9189120](AztecProtocol/aztec-packages@9189120))
* Disable reorg test
([#11176](AztecProtocol/aztec-packages#11176))
([78bec44](AztecProtocol/aztec-packages@78bec44))
* Disallow inserting ACIR-only instructions into brillig functions
(noir-lang/noir#7017)
([9189120](AztecProtocol/aztec-packages@9189120))
* **docs:** Backport 1.0.0-beta.0 doc fixes
(noir-lang/noir#7014)
([9189120](AztecProtocol/aztec-packages@9189120))
* **docs:** Edit Aztec.nr Guide section
([#10866](AztecProtocol/aztec-packages#10866))
([4051ba8](AztecProtocol/aztec-packages@4051ba8))
* **docs:** Remove node pages
([#11161](AztecProtocol/aztec-packages#11161))
([e494f6b](AztecProtocol/aztec-packages@e494f6b))
* **docs:** Update tx concepts page
([#10947](AztecProtocol/aztec-packages#10947))
([d9d9798](AztecProtocol/aztec-packages@d9d9798))
* Document aztec-nargo in readme
([#11173](AztecProtocol/aztec-packages#11173))
([927eabf](AztecProtocol/aztec-packages@927eabf))
* Greater stability at 1TPS
([#10981](AztecProtocol/aztec-packages#10981))
([1c23662](AztecProtocol/aztec-packages@1c23662))
* Jest reporters for CI
([#11125](AztecProtocol/aztec-packages#11125))
([90cd9d2](AztecProtocol/aztec-packages@90cd9d2))
* Log number of instructions executed for call in AVM. Misc fix.
([#11110](AztecProtocol/aztec-packages#11110))
([44e01f4](AztecProtocol/aztec-packages@44e01f4))
* Mark `aztec-nr` as expected to compile
(noir-lang/noir#7015)
([9189120](AztecProtocol/aztec-packages@9189120))
* Mark casts as able to be deduplicated
(noir-lang/noir#6996)
([9189120](AztecProtocol/aztec-packages@9189120))
* Missed test account retrieval simplification in one spot
([#11172](AztecProtocol/aztec-packages#11172))
([b72234e](AztecProtocol/aztec-packages@b72234e))
* Move comment as part of
[#6945](AztecProtocol/aztec-packages#6945)
(noir-lang/noir#6959)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Move witness computation into class plus some other cleanup
([#11140](AztecProtocol/aztec-packages#11140))
([d41e9ab](AztecProtocol/aztec-packages@d41e9ab))
* Nuke unused `getSiblingPath` oracle
([#11090](AztecProtocol/aztec-packages#11090))
([36b640a](AztecProtocol/aztec-packages@36b640a))
* Nuking mental model of "packing into a hash"
([#11200](AztecProtocol/aztec-packages#11200))
([e1ebcc0](AztecProtocol/aztec-packages@e1ebcc0))
* Only resolved globals monomorphization
(noir-lang/noir#7006)
([9189120](AztecProtocol/aztec-packages@9189120))
* Prover db config
([#11126](AztecProtocol/aztec-packages#11126))
([9d49393](AztecProtocol/aztec-packages@9d49393)),
closes
[#10267](AztecProtocol/aztec-packages#10267)
* Redo typo PR by longxiangqiao
([#11109](AztecProtocol/aztec-packages#11109))
([b8ef30e](AztecProtocol/aztec-packages@b8ef30e))
* Refactor `get_tx_effects_hash_input_helper`
([#11213](AztecProtocol/aztec-packages#11213))
([5becb99](AztecProtocol/aztec-packages@5becb99))
* Refactor Solidity Transcript and improve error handling in sol_honk
flow
([#11158](AztecProtocol/aztec-packages#11158))
([58fdf87](AztecProtocol/aztec-packages@58fdf87))
* Remove explicit collector address
([#11227](AztecProtocol/aztec-packages#11227))
([dfb0db5](AztecProtocol/aztec-packages@dfb0db5))
* Remove resolve_is_unconstrained pass
(noir-lang/noir#7004)
([9189120](AztecProtocol/aztec-packages@9189120))
* Removing noir bug workaround
([#10535](AztecProtocol/aztec-packages#10535))
([8be882f](AztecProtocol/aztec-packages@8be882f))
* Replace relative paths to noir-protocol-circuits
([d8619fa](AztecProtocol/aztec-packages@d8619fa))
* Replace relative paths to noir-protocol-circuits
([70cad1c](AztecProtocol/aztec-packages@70cad1c))
* Replace relative paths to noir-protocol-circuits
([e962534](AztecProtocol/aztec-packages@e962534))
* Replace relative paths to noir-protocol-circuits
([ba5a589](AztecProtocol/aztec-packages@ba5a589))
* Replace relative paths to noir-protocol-circuits
([b7c3fa2](AztecProtocol/aztec-packages@b7c3fa2))
* Replace relative paths to noir-protocol-circuits
([32840c6](AztecProtocol/aztec-packages@32840c6))
* Require safety doc comment for unsafe instead of
`//[@safety](https://github.com/safety)`
(noir-lang/noir#6992)
([9189120](AztecProtocol/aztec-packages@9189120))
* Reserve `enum` and `match` keywords
(noir-lang/noir#6961)
([9189120](AztecProtocol/aztec-packages@9189120))
* Rpc server cleanup & misc fixes
([#11145](AztecProtocol/aztec-packages#11145))
([8a927eb](AztecProtocol/aztec-packages@8a927eb))
* Sanity checking of proving job IDs
([#11134](AztecProtocol/aztec-packages#11134))
([61c3e95](AztecProtocol/aztec-packages@61c3e95))
* Save kind smoke test logs as artifact
([#11212](AztecProtocol/aztec-packages#11212))
([1389a5b](AztecProtocol/aztec-packages@1389a5b))
* Separate unconstrained functions during monomorphization
(noir-lang/noir#6894)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Simplify a couple of enum variants
(noir-lang/noir#7025)
([9189120](AztecProtocol/aztec-packages@9189120))
* Simplify boolean in a mul of a mul
(noir-lang/noir#6951)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* SmallSubgroupIPA tests
([#11106](AztecProtocol/aztec-packages#11106))
([f034e2a](AztecProtocol/aztec-packages@f034e2a))
* **spartan:** Making the spartan script install jq
([#11231](AztecProtocol/aztec-packages#11231))
([7e628cc](AztecProtocol/aztec-packages@7e628cc))
* Test:e2e defaults to no-docker
([#10966](AztecProtocol/aztec-packages#10966))
([15e0d71](AztecProtocol/aztec-packages@15e0d71))
* Turn on averaging for protocol circuits metrics in CI
(noir-lang/noir#6999)
([9189120](AztecProtocol/aztec-packages@9189120))
* Update aztec-spartan.sh script
([#11228](AztecProtocol/aztec-packages#11228))
([52b3a87](AztecProtocol/aztec-packages@52b3a87))
* Use DFG in SSA printer (noir-lang/noir#6986)
([9189120](AztecProtocol/aztec-packages@9189120))
* Use L1 Tx Utils
([#10759](AztecProtocol/aztec-packages#10759))
([ccf28f5](AztecProtocol/aztec-packages@ccf28f5)),
closes
[#10464](AztecProtocol/aztec-packages#10464)
* Use logs for benchmarking
(noir-lang/noir#6911)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* VariableMerkleTree readability improvements
([#11165](AztecProtocol/aztec-packages#11165))
([010d1b0](AztecProtocol/aztec-packages@010d1b0))
* Wait for ethereum in each pod
([#11238](AztecProtocol/aztec-packages#11238))
([9c08e00](AztecProtocol/aztec-packages@9c08e00))


### Documentation

* Enable protocol specs for docs in dev mode
([#11219](AztecProtocol/aztec-packages#11219))
([10c8afe](AztecProtocol/aztec-packages@10c8afe))
</details>

<details><summary>barretenberg: 0.70.0</summary>

##
[0.70.0](AztecProtocol/aztec-packages@barretenberg-v0.69.1...barretenberg-v0.70.0)
(2025-01-15)


### Features

* **avm2:** Avm redesign init
([#10906](AztecProtocol/aztec-packages#10906))
([231f017](AztecProtocol/aztec-packages@231f017))
* Permutation argument optimizations
([#10960](AztecProtocol/aztec-packages#10960))
([de99603](AztecProtocol/aztec-packages@de99603))
* Use tail public inputs as transaction hash
([#11100](AztecProtocol/aztec-packages#11100))
([34be2c3](AztecProtocol/aztec-packages@34be2c3))


### Bug Fixes

* **avm:** AVM circuit fixes related calldata, returndata and call_ptr
([#11207](AztecProtocol/aztec-packages#11207))
([2f05dc0](AztecProtocol/aztec-packages@2f05dc0))
* **avm:** Mac build
([#11195](AztecProtocol/aztec-packages#11195))
([c4f4452](AztecProtocol/aztec-packages@c4f4452))
* **avm:** Mac build (retry)
([#11197](AztecProtocol/aztec-packages#11197))
([0a4b763](AztecProtocol/aztec-packages@0a4b763))
* **bootstrap:** Don't download bad cache if unstaged changes
([#11198](AztecProtocol/aztec-packages#11198))
([2bd895b](AztecProtocol/aztec-packages@2bd895b))
* Remove max lookup table size constant (for now)
([#11095](AztecProtocol/aztec-packages#11095))
([7e9e268](AztecProtocol/aztec-packages@7e9e268))


### Miscellaneous

* **avm:** Fix mac build
([#11147](AztecProtocol/aztec-packages#11147))
([1775e53](AztecProtocol/aztec-packages@1775e53))
* **avm:** Improve column stats
([#11135](AztecProtocol/aztec-packages#11135))
([535a14c](AztecProtocol/aztec-packages@535a14c))
* **avm:** Re-enable bb-prover tests in CI, change some to
check-circuit-only, enable multi-enqueued call tests
([#11180](AztecProtocol/aztec-packages#11180))
([3092212](AztecProtocol/aztec-packages@3092212))
* **avm:** Vm2 followup cleanup
([#11186](AztecProtocol/aztec-packages#11186))
([6de4013](AztecProtocol/aztec-packages@6de4013))
* **docs:** Update tx concepts page
([#10947](AztecProtocol/aztec-packages#10947))
([d9d9798](AztecProtocol/aztec-packages@d9d9798))
* Move witness computation into class plus some other cleanup
([#11140](AztecProtocol/aztec-packages#11140))
([d41e9ab](AztecProtocol/aztec-packages@d41e9ab))
* Redo typo PR by longxiangqiao
([#11109](AztecProtocol/aztec-packages#11109))
([b8ef30e](AztecProtocol/aztec-packages@b8ef30e))
* Refactor Solidity Transcript and improve error handling in sol_honk
flow
([#11158](AztecProtocol/aztec-packages#11158))
([58fdf87](AztecProtocol/aztec-packages@58fdf87))
* SmallSubgroupIPA tests
([#11106](AztecProtocol/aztec-packages#11106))
([f034e2a](AztecProtocol/aztec-packages@f034e2a))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Tx fees need to account for blobs Simplify L1 Publisher error tracking
3 participants