-
Notifications
You must be signed in to change notification settings - Fork 332
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add minter role to TestERC20 #12889
Conversation
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.
Mainly the ownerships that need to be addressed such that we don't just give everyone with any rights admin rights.
l1-contracts/src/mock/TestERC20.sol
Outdated
minters[_owner] = true; | ||
} | ||
|
||
function addMinter(address _minter) external override(IMintableERC20) onlyMinter { |
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.
Should probably be onlyOwner
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.
Also, for good measure there should probably be an event here and in the removeMinter
l1-contracts/src/mock/TestERC20.sol
Outdated
// solhint-disable-next-line comprehensive-interface | ||
function setFreeForAll(bool _freeForAll) external onlyOwner { | ||
freeForAll = _freeForAll; | ||
function removeMinter(address _minter) external override(IMintableERC20) onlyMinter { |
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.
Should probably be onlyOwner
. Separate, but why don't you want the ability to remove the owner?
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.
since this is onlyOwner
now, it is safe to allow owner to relinquish their minting. I didn't want someone else to remove the owner as a minter.
@@ -126,6 +126,10 @@ contract RollupCore is | |||
CheatLib.setProtocolContractTreeRoot(_protocolContractTreeRoot); | |||
} | |||
|
|||
function updateManaTarget(uint256 _manaTarget) external override(ITestRollup) onlyOwner { | |||
FeeLib.updateManaTarget(_manaTarget); |
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.
We should have an event here. We have been pretty bad generally at adding events when state change, but it is usually good practice since it makes analysis and such much simpler.
l1-contracts/src/mock/TestERC20.sol
Outdated
revert("Not owner or free for all"); | ||
} | ||
modifier onlyMinter() { | ||
require(minters[msg.sender], "Not authorized to mint"); |
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.
Should use custom errors, e.g., adding error NotMinter(address)
or something like that.
l1-contracts/src/mock/TestERC20.sol
Outdated
} | ||
|
||
function addMinter(address _minter) external override(IMintableERC20) onlyMinter { | ||
require(_minter != address(0), "Invalid address"); |
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.
Why this extra step, when would it help you?
l1-contracts/test/TestERC20.t.sol
Outdated
|
||
function setUp() public { | ||
testERC20 = new TestERC20("test", "TEST", address(this)); | ||
} | ||
|
||
function test_addRemoveMinter(address _minter) public { |
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 don't particularly like the way the test is setup. But it feels like part of the bigger test refactor. Should create a whole bunch of issues for that.
750bbfc
to
51fb64a
Compare
Creates a FeeAssetHandler in the periphery to allow mints of a fixed size. Also allows rollup owner to update the mana target (and thus, the mana limit which is twice the target).
51fb64a
to
46e86d8
Compare
l1-contracts/src/mock/TestERC20.sol
Outdated
if (msg.sender != owner() && !freeForAll) { | ||
revert("Not owner or free for all"); | ||
} | ||
event MinterAdded(address indexed minter); |
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 the linter would be yelling at you here, but maybe not 🤔
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.
no it isn't. would you expect state variable below events and errors?
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.
Oh, no actually https://docs.soliditylang.org/en/latest/style-guide.html#order-of-layout you are right. Think just not used to seeing them as they are usually in the interface. Would probably move them in there actually, such that just with the IMintableERC20
you have what you need to understand the errors.
l1-contracts/src/mock/TestERC20.sol
Outdated
} | ||
minters[owner()] = false; | ||
_transferOwnership(newOwner); | ||
minters[newOwner] = true; |
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.
Slightly annoying here, but this is not emitting the events that you would probably expect, simplest might be to make the add and remove public and call those directly.
assertEq(testERC20.balanceOf(_recipient), feeAssetHandler.mintAmount()); | ||
} | ||
|
||
function setUp() public { |
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.
Usually you would write the setup at the top so it is easier to read through.
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.
Yep, I didn't realize setUp could be external. linter was yelling at me to have external above public.
vm.assume(_recipient != address(this)); | ||
vm.assume(_recipient != address(0)); | ||
feeAssetHandler.mint(_recipient); | ||
assertEq(testERC20.balanceOf(_recipient), feeAssetHandler.mintAmount()); |
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 caller is not changed here, so it don't make sense to be WhenAnyoneCallsMint
it is only the recipient that is changed here. Should change the caller with a prank as well.
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.
my mistake! Thank you
@@ -0,0 +1,7 @@ | |||
FeeAssetHandlerTest |
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.
Would say that the tree is slightly misused here, or maybe just used differently that what I would.
I would probably do it for just one function instead, and then see the branches more clearly defined. Take the branches that revert first so we can have all of those dealt with and use the modifiers to read what goes on deeper down.
# when caller is not owner
## it reverts
# when caller is owner
## it updates the mint amount
## it emit {MintAmountUpdated} event
@@ -7,6 +7,7 @@ if [ -n "$REGISTRY_CONTRACT_ADDRESS" ] && [ -n "$BOOTSTRAP_NODES" ]; then | |||
export BOOTSTRAP_NODES=$BOOTSTRAP_NODES | |||
export REGISTRY_CONTRACT_ADDRESS=$REGISTRY_CONTRACT_ADDRESS | |||
export SLASH_FACTORY_CONTRACT_ADDRESS=$SLASH_FACTORY_CONTRACT_ADDRESS | |||
export FEE_ASSET_HANDLER_CONTRACT_ADDRESS=$FEE_ASSET_HANDLER_CONTRACT_ADDRESS |
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.
yarn-project/bot/src/factory.ts
Outdated
@@ -101,7 +101,7 @@ export class BotFactory { | |||
const address = account.getAddress(); | |||
this.log.info(`Deploying account at ${address}`); | |||
|
|||
const claim = await this.bridgeL1FeeJuice(address, 10n ** 22n); | |||
const claim = await this.bridgeL1FeeJuice(address, MINT_AMOUNT); |
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.
Would we need it to mint itself a couple of times, or do we get sufficient to cover our fees for some time? Just thinking that it would be annoying if we run into the issue where at block 4000 it runs out of juice.
|
||
const originalVersionSalt = 42; | ||
|
||
describe('Registry', () => { |
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.
Why registry?
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.
copy pasta
// See https://github.com/AztecProtocol/engineering-designs/blob/42455c99b867cde4d67700bc97ac12309c2332ea/docs/faucets/dd.md#choosing-the-mint-amount | ||
export const MINT_AMOUNT = 1_000_000_000_000_000n; | ||
|
||
export class FeeAssetHandlerContract { |
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.
Potentially make more sense here to have a getMintAmount
to fetch it 🤷 If we always expect to start out with the same value, we could just have it specified in the contract. To change it we would call the update, but then we don't end up having multiple places where we need to keep track of the MINT or passing it around.
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.
Yeah agreed.
event MinterAdded(address indexed minter); | ||
event MinterRemoved(address indexed minter); | ||
|
||
error NotMinter(address caller); |
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.
🫡
emit MinterRemoved(_minter); | ||
} | ||
|
||
function transferOwnership(address newOwner) public override(Ownable) onlyOwner { |
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.
Micronit, but arg should be _newOwner
.
@@ -4,7 +4,7 @@ ACCOUNT_ALIAS=main | |||
section "Deploying token contract (alias: $TOKEN_ALIAS) and creating a funded account (alias: $ACCOUNT_ALIAS)" | |||
|
|||
aztec-wallet create-account -a $ACCOUNT_ALIAS --register-only | |||
aztec-wallet bridge-fee-juice 100000000000000000 $ACCOUNT_ALIAS --mint --no-wait | |||
aztec-wallet bridge-fee-juice 1000000000000000000 $ACCOUNT_ALIAS --mint --no-wait |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This feels like something that will bit us in the ass.
🤖 I have created a new Aztec Packages release --- ## [0.82.0](v0.81.0...v0.82.0) (2025-03-21) ### ⚠ BREAKING CHANGES * `AztecNode.findLeavesIndexes` returning block info ([#12890](#12890)) * make `ResolverError::UnnecessaryPub` a hard error (noir-lang/noir#7664) ### Features * `AztecNode.findLeavesIndexes` returning block info ([#12890](#12890)) ([9770e15](9770e15)) * add `EmbeddedCurvePoint::generator()` to return generator point (noir-lang/noir#7754) ([ce84b2d](ce84b2d)) * add AMM support to transaction bot ([#12897](#12897)) ([b2c35cc](b2c35cc)) * add minter role to TestERC20 ([#12889](#12889)) ([716ab4f](716ab4f)), closes [#12887](#12887) [#12882](#12882) * allow `fn` returning `()` without having to write `-> ()` (noir-lang/noir#7717) ([e9526cf](e9526cf)) * avm merkle gadget in vm2 ([#12726](#12726)) ([898d50e](898d50e)) * **avm:** instruction fetching parsing error ([#12804](#12804)) ([09a09d5](09a09d5)) * **bb:** Introduce chunks for univariate computation for the AVM ([#12707](#12707)) ([c912bd6](c912bd6)) * can associate error regex with entry in flake file ([#12785](#12785)) ([da48e38](da48e38)) * capture app stacks for bb usage ([#12383](#12383)) ([293eb9d](293eb9d)) * **docs:** Docs on shared mutable, contract classes, and injecting data ([#12043](#12043)) ([94beffe](94beffe)) * Fallback to blobscan API on blob miss ([#12857](#12857)) ([f2f0d72](f2f0d72)), closes [#12856](#12856) * Fast node_modules caching in CI. ([#12371](#12371)) ([09f50d7](09f50d7)) * generate subrelation-label comment in generated relation hpp ([#12914](#12914)) ([fa2bf95](fa2bf95)) * lets try grinding ([4342491](4342491)) * Montgomery optimisation (partial) ([#12822](#12822)) ([c524339](c524339)) * **noir sync:** Calculate noir hash based on just `noir-repo-ref` and `noir-repo.patch` ([#12861](#12861)) ([fa5991f](fa5991f)) * observe L1 and init proposal counter ([#12681](#12681)) ([1e3d71e](1e3d71e)) * precomputed ClientIVC VKs ([#12126](#12126)) ([65bd276](65bd276)) * reapplying reverted circuits recorder with a fix ([#12919](#12919)) ([bf9a034](bf9a034)) * recording circuit inputs + oracles ([#12148](#12148)) ([5436627](5436627)) * rotate over instances on request fail ([#12270](#12270)) ([7ee2e24](7ee2e24)) * Separate Aztec Node Admin API ([#12790](#12790)) ([ccac9ff](ccac9ff)), closes [#12789](#12789) * slim wallet ([#12803](#12803)) ([3f9f30a](3f9f30a)) * **sol:** setup epoch - sampling without replacement ([#12753](#12753)) ([096f739](096f739)) * **ssa:** Basic control dependent LICM (noir-lang/noir#7660) ([ce84b2d](ce84b2d)) * **ssa:** Dominance frontiers (noir-lang/noir#7692) ([e9526cf](e9526cf)) * **ssa:** Post dominator tree (noir-lang/noir#7595) ([e9526cf](e9526cf)) ### Bug Fixes * add missing inputs to `BlackBoxFuncCall::get_inputs_vec` for EcAdd (noir-lang/noir#7752) ([ce84b2d](ce84b2d)) * add random deployment salt to sandbox ([#12869](#12869)) ([49acd71](49acd71)) * agent reporting jobs completion correctly ([#12835](#12835)) ([18d68f0](18d68f0)) * allow method call after block, if and match (noir-lang/noir#7655) ([e9526cf](e9526cf)) * allow omitting ';' after last block statement if it's an assignment (noir-lang/noir#7718) ([e9526cf](e9526cf)) * allow referring to comptime locals at runtime (noir-lang/noir#7681) ([e9526cf](e9526cf)) * allow renaming a trait when importing it (noir-lang/noir#7688) ([e9526cf](e9526cf)) * avm merkle cpp broke darwin ([#12917](#12917)) ([75c9098](75c9098)) * **bb.js:** remove size metadata from UH proof ([#12775](#12775)) ([5b064bc](5b064bc)) * bench upload logic ([#12800](#12800)) ([52575d8](52575d8)) * bring back matrix on grind. try several things to resolve txe port in use. ([79af7a3](79af7a3)) * CI Tweaks ([#12908](#12908)) ([326767c](326767c)) * ci.sh gh-bench logic ([#12776](#12776)) ([8080f47](8080f47)) * **ci:** Exclude inliner specific reference count tests from Brillig trace report (noir-lang/noir#7761) ([ce84b2d](ce84b2d)) * **ci:** Fail the CI job on a Brillig report failure (noir-lang/noir#7762) ([ce84b2d](ce84b2d)) * clientivc capture benchmarks include authwits ([#12873](#12873)) ([5df2aea](5df2aea)) * config ordering ([#12893](#12893)) ([44af76e](44af76e)) * consensus URL as CLI config ([#12796](#12796)) ([66e8028](66e8028)) * correctly format let followed by comment before unsafe (noir-lang/noir#7659) ([e9526cf](e9526cf)) * cpp ivc bench ([#12815](#12815)) ([95a0ec1](95a0ec1)) * disable gpg signing for noir bootstrap ([#12840](#12840)) ([2a76c8c](2a76c8c)) * Disallow registration of contract classes with no public bytecode ([#12910](#12910)) ([41bf13e](41bf13e)) * doc comments on functions warn unexpectedly (noir-lang/noir#7721) ([e9526cf](e9526cf)) * don't gpg sign the noir patch ([#12912](#12912)) ([43191e0](43191e0)) * Don't log config ([#12876](#12876)) ([545b4e0](545b4e0)) * Experiment with `DecrementRc` (noir-lang/noir#7629) ([66a62d0](66a62d0)) * Fix prover node publisher for multi-proofs ([#12924](#12924)) ([42733a6](42733a6)) * Fix stdout testing when running test programs (noir-lang/noir#7741) ([66a62d0](66a62d0)) * Fixes regressed LSP and adds a test to sanity check. ([#12915](#12915)) ([30f9087](30f9087)) * generate ivc benchmarks ([#12811](#12811)) ([3ee32a9](3ee32a9)) * handle predicate value reduction in array get also for the databus (noir-lang/noir#7730) ([66a62d0](66a62d0)) * hotfix git user config ([d58efbb](d58efbb)) * kind on sepolia + balance consolidation + sepolia values service indices ([#12473](#12473)) ([000d515](000d515)) * misleading test ([#12877](#12877)) ([dc8ab31](dc8ab31)) * nightly versioning ([#12872](#12872)) ([7586192](7586192)) * oracles handlers ([#12864](#12864)) ([4bae397](4bae397)) * pass bot salt ([#12923](#12923)) ([7aa0b87](7aa0b87)) * post-checkout hook installation to include `$@` ([#12781](#12781)) ([323c958](323c958)) * redact sensitive fields in logs ([#12913](#12913)) ([31feb0b](31feb0b)) * redo "fix: make vk metadata actual witnesses" ([#12535](#12535)) ([392abc2](392abc2)) * **redo:** "fix: Switch to `noir-repo` context for cache content hashing" ([#12825](#12825)) ([5a98d20](5a98d20)) * Remove hack to register contract class directly on node ([#12795](#12795)) ([eff2501](eff2501)), closes [#10007](#10007) * Removed logged config object in L1 Tx Utils ([#12901](#12901)) ([5d871f8](5d871f8)) * Restart proving job if epoch content changes ([#12655](#12655)) ([613994f](613994f)) * retries starting txe ([3fcc601](3fcc601)) * revert "Switch to `noir-repo` context for cache content hashing" ([#12824](#12824)) ([37ccc38](37ccc38)) * Run aztec-up tests as ubuntu not root. ([#12875](#12875)) ([41cf5a4](41cf5a4)) * run nightly as bot ([#12833](#12833)) ([3799330](3799330)) * Some basic re-org handling ([#12812](#12812)) ([558e315](558e315)) * source_refname ([#12827](#12827)) ([b4a0b71](b4a0b71)) * **ssa:** don't check Brillig calls for coverage if they don't return anything (e.g. println) (noir-lang/noir#7644) ([e9526cf](e9526cf)) * Stop blockstream on world-state sync error ([#12854](#12854)) ([810ee2d](810ee2d)) * Switch to `noir-repo` context for cache content hashing ([#12784](#12784)) ([6214c8c](6214c8c)) * update join split test hash ([#12798](#12798)) ([2fd47f6](2fd47f6)) * Use schnorr lib with reduced sig.e ([#12844](#12844)) ([d03d61c](d03d61c)) * validators verify tx proofs ([#12939](#12939)) ([c02132d](c02132d)) * wrong printing of line comment in quoted (noir-lang/noir#7694) ([e9526cf](e9526cf)) * yolo annotated tag on nightlies. only run kind smoke test. ([8cdfb9a](8cdfb9a)) * yolo debug info ([6681c8f](6681c8f)) * yolo fix ([aec93df](aec93df)) * yolo mark flakey discv5 timeout test ([b45a994](b45a994)) * yolo trying to fix txe port ([ea553d2](ea553d2)) * yolo wait for docker to be up on aztec-up tests. ([8dcc1b5](8dcc1b5)) ### Miscellaneous * add `mapi`/`for_eachi` functions (noir-lang/noir#7705) ([66a62d0](66a62d0)) * add `shared` module within `noirc_frontend` (noir-lang/noir#7746) ([ce84b2d](ce84b2d)) * add acir_test for bb.js classes ([#12892](#12892)) ([ffe1f4f](ffe1f4f)) * add cargo deny advisory (noir-lang/noir#7691) ([e9526cf](e9526cf)) * Add comment on verifyHistoricBlock ([#12933](#12933)) ([cb978b5](cb978b5)) * add extra docs lint (noir-lang/noir#7742) ([66a62d0](66a62d0)) * Add GITHUB_TOKEN for downloading prost_prebuilt to acvm.js build (noir-lang/noir#7745) ([ce84b2d](ce84b2d)) * add kind diagnostics during startup ([#12805](#12805)) ([450f9bb](450f9bb)) * add lambda calculus test (noir-lang/noir#7646) ([e9526cf](e9526cf)) * add more test suites to CI (noir-lang/noir#7757) ([ce84b2d](ce84b2d)) * add regression tests for PR [#7570](#7570) from lambda interpreter test (noir-lang/noir#7638) ([e9526cf](e9526cf)) * add support for caching `node_modules` within a nested repository ([#12862](#12862)) ([16232c8](16232c8)) * add tests for trait renaming in imports (noir-lang/noir#7631) ([e9526cf](e9526cf)) * add timeouts to CI (noir-lang/noir#7725) ([e9526cf](e9526cf)) * add trailing slash to link on docs homepage (noir-lang/noir#7682) ([e9526cf](e9526cf)) * add workflow to publish rustdoc to github pages (noir-lang/noir#7687) ([e9526cf](e9526cf)) * address recurring typo in docs (noir-lang/noir#7656) ([e9526cf](e9526cf)) * allow individual service data map size configuration ([#12853](#12853)) ([b9e6a19](b9e6a19)), closes [#12831](#12831) * **artifact_cli:** Print circuit output to stdout (noir-lang/noir#7696) ([e9526cf](e9526cf)) * **avm:** Constrain pc_size_in_bits column and rename ([#12899](#12899)) ([d69901f](d69901f)) * **avm:** make contract db returns optional ([#12867](#12867)) ([cf2beb2](cf2beb2)) * **avm:** vm2 lazy bytecode loading ([#12847](#12847)) ([233ca3e](233ca3e)) * **avm:** vm2 recursive execution ([#12842](#12842)) ([04981e2](04981e2)) * avoid syncing recursive proofs between repositories ([#12769](#12769)) ([7259b92](7259b92)) * begin splitting out note discovery ([#12819](#12819)) ([75d545a](75d545a)) * begin the introduction of log type id and standard log layouts ([#12823](#12823)) ([e86a258](e86a258)) * bump bb (noir-lang/noir#7726) ([66a62d0](66a62d0)) * bump external pinned commits (noir-lang/noir#7667) ([e9526cf](e9526cf)) * bump external pinned commits (noir-lang/noir#7728) ([e9526cf](e9526cf)) * bump JS dependencies (noir-lang/noir#7669) ([e9526cf](e9526cf)) * bump node to v22.18.3 (noir-lang/noir#7668) ([e9526cf](e9526cf)) * bump wasm-pack to 0.13.1 (noir-lang/noir#7675) ([e9526cf](e9526cf)) * check test program execution success output (noir-lang/noir#7713) ([e9526cf](e9526cf)) * **ci:** enforce rustdoc lints (noir-lang/noir#7738) ([66a62d0](66a62d0)) * **ci:** Exclude enum tests from Brillig reports (noir-lang/noir#7661) ([e9526cf](e9526cf)) * **ci:** private-kernel-inner timeout bump (noir-lang/noir#7732) ([66a62d0](66a62d0)) * Cleanup and re-specify sequencer config in RC1 ([#12898](#12898)) ([13aa4f5](13aa4f5)) * comment out kind tests ([#12793](#12793)) ([39986e5](39986e5)) * delete honk programs from `test_programs` (noir-lang/noir#7727) ([66a62d0](66a62d0)) * **docs:** Avoid colliding filenames (noir-lang/noir#7771) ([ce84b2d](ce84b2d)) * **docs:** Brillig opcodes (noir-lang/noir#7722) ([e9526cf](e9526cf)) * **docs:** Document BlackBoxFuncCall enum (noir-lang/noir#7702) ([e9526cf](e9526cf)) * **docs:** Extend stable documentation versions to build to cover multiple `beta.n` releases (noir-lang/noir#7685) ([e9526cf](e9526cf)) * **docs:** Landing page jargonless intro (noir-lang/noir#7649) ([66a62d0](66a62d0)) * **docs:** Minor fixes on local documentation development workflows (noir-lang/noir#7684) ([e9526cf](e9526cf)) * **docs:** More acir docs (noir-lang/noir#7731) ([66a62d0](66a62d0)) * **docs:** update bb commands to match the new version (noir-lang/noir#7677) ([e9526cf](e9526cf)) * **docs:** update profiler usage docs ([#12782](#12782)) ([3b2fccb](3b2fccb)) * don't switch out bb.js install in noir repo ([#12771](#12771)) ([79c3c62](79c3c62)) * easier way to test monormophization errors (noir-lang/noir#7679) ([e9526cf](e9526cf)) * enable wtr debug logging ([#12848](#12848)) ([0fc5528](0fc5528)) * encapsulate `Index` within `LocalModuleId` (noir-lang/noir#7719) ([e9526cf](e9526cf)) * Faster tx production on masternet ([#12878](#12878)) ([17d0301](17d0301)) * fix archiver.test.ts ([#12907](#12907)) ([fd7adb1](fd7adb1)) * fix gemini ([#12602](#12602)) ([3eb9e9a](3eb9e9a)) * fix rustdoc issues (noir-lang/noir#7712) ([e9526cf](e9526cf)) * Fix rustdocs error (noir-lang/noir#7750) ([ce84b2d](ce84b2d)) * fixing timeouts (noir-lang/noir#7666) ([e9526cf](e9526cf)) * **frontend:** Regression test for creating a mutable reference to an array element (noir-lang/noir#7699) ([e9526cf](e9526cf)) * hide Ident fields (noir-lang/noir#7709) ([e9526cf](e9526cf)) * Increase bracket_depth to 2048 ([#12801](#12801)) ([2e9a7a3](2e9a7a3)) * make `ResolverError::UnnecessaryPub` a hard error (noir-lang/noir#7664) ([e9526cf](e9526cf)) * migrate to use new flat eslint config file (noir-lang/noir#7676) ([e9526cf](e9526cf)) * minor `CommitmentsDB` cleanup ([#12817](#12817)) ([ff8a199](ff8a199)) * more descriptive SSA tests (noir-lang/noir#7697) ([e9526cf](e9526cf)) * more logging in kind setup ([#12852](#12852)) ([9824336](9824336)) * note getter internals ([#12809](#12809)) ([3a89a24](3a89a24)) * nuking MemoryArchiveStore ([#12826](#12826)) ([c5405d8](c5405d8)) * once again skip the uniswap tests ([#12859](#12859)) ([4f37dec](4f37dec)) * **p2p:** add tx queue to prevent ddos attacks ([#12603](#12603)) ([a96a908](a96a908)) * pr linking job for merge queue ([#12546](#12546)) ([a0cee9f](a0cee9f)) * pull most logic from `get_all_contracts` up out of the `CrateDefMap` (noir-lang/noir#7715) ([e9526cf](e9526cf)) * pull out pure functions from interpreter (noir-lang/noir#7755) ([ce84b2d](ce84b2d)) * push users towards nargo in tutorial (noir-lang/noir#7736) ([ce84b2d](ce84b2d)) * re-enable nightly tests ([#12673](#12673)) ([d2f8f18](d2f8f18)), closes [#12107](#12107) * Refactor entrypoints ([#12868](#12868)) ([5f48055](5f48055)) * **refactor:** Move resolved error structures out of acir crate (noir-lang/noir#7734) ([66a62d0](66a62d0)) * remove `examples` from testing of noir ([#12768](#12768)) ([cd6a3af](cd6a3af)) * remove `noir-lang/ec` dependency ([#12507](#12507)) ([181d6e0](181d6e0)) * remove bun from docs in favour of yarn (noir-lang/noir#7756) ([ce84b2d](ce84b2d)) * Remove magic number from AVM bytecode ([#12900](#12900)) ([4d96fc0](4d96fc0)) * Remove seemingly unused compose files ([#12794](#12794)) ([1a75797](1a75797)) * remove some unnecessary mod.nr files ([#12797](#12797)) ([99fc705](99fc705)) * remove some unused HIR code (noir-lang/noir#7643) ([e9526cf](e9526cf)) * remove ultraplonk tests (noir-lang/noir#7680) ([e9526cf](e9526cf)) * remove unconditional sleep ([#12814](#12814)) ([e61c376](e61c376)) * remove whyle, use native while ([#12820](#12820)) ([889bc48](889bc48)) * rename note discovery to message discovery ([#12755](#12755)) ([ae4f935](ae4f935)) * replace relative paths to noir-protocol-circuits ([070ad0a](070ad0a)) * replace relative paths to noir-protocol-circuits ([f62614d](f62614d)) * replace relative paths to noir-protocol-circuits ([742162c](742162c)) * replace relative paths to noir-protocol-circuits ([801244c](801244c)) * replace relative paths to noir-protocol-circuits ([c39d88b](c39d88b)) * replace relative paths to noir-protocol-circuits ([2cb1a37](2cb1a37)) * replace relative paths to noir-protocol-circuits ([a42309b](a42309b)) * Resolve various rustdoc warnings (noir-lang/noir#7724) ([e9526cf](e9526cf)) * run `noir_wasm` over `test_programs` (noir-lang/noir#7765) ([ce84b2d](ce84b2d)) * separated multi map and fixed indexeddb map ([#12896](#12896)) ([05af647](05af647)) * Set max txs per block ([#12837](#12837)) ([74476ff](74476ff)) * simplify note getter oracle ([#12807](#12807)) ([2fc01a3](2fc01a3)) * **ssa:** Do not print entire functions in underconstrained values check trace (noir-lang/noir#7665) ([e9526cf](e9526cf)) * update docusaurus config to correct trailing slash issue (noir-lang/noir#7720) ([e9526cf](e9526cf)) * update examples to use UltraHonk (noir-lang/noir#7653) ([e9526cf](e9526cf)) * Update README.md to add trailing docs `/` (noir-lang/noir#7689) ([e9526cf](e9526cf)) * Update references to GH issues to reflect recent changes ([#12722](#12722)) ([100d31f](100d31f)) * update yarn version to 4.5.2 (noir-lang/noir#7678) ([e9526cf](e9526cf)) * use rollup.ts more consistenty ([#12863](#12863)) ([bd9f3ce](bd9f3ce)) * vars for --network ignition-testnet ([#12886](#12886)) ([6efc8ce](6efc8ce)) ### Documentation * Add sponsoredFPC ([#12485](#12485)) ([87bb6da](87bb6da)) * additions ([#12551](#12551)) ([c9ea1cd](c9ea1cd)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Allows multiple accounts to be minters of the staking and fee assets. Creates a FeeAssetHandler in the periphery to allow mints of a fixed size. Also allows rollup owner to update the mana target (and thus, the mana limit which is twice the target). See [design](https://github.com/AztecProtocol/engineering-designs/blob/42455c99b867cde4d67700bc97ac12309c2332ea/docs/faucets/dd.md#testerc20) Fix #12887 Fix #12882
🤖 I have created a new Aztec Packages release --- ## [0.82.0](v0.81.0...v0.82.0) (2025-03-21) ### ⚠ BREAKING CHANGES * `AztecNode.findLeavesIndexes` returning block info ([#12890](#12890)) * make `ResolverError::UnnecessaryPub` a hard error (noir-lang/noir#7664) ### Features * `AztecNode.findLeavesIndexes` returning block info ([#12890](#12890)) ([9770e15](9770e15)) * add `EmbeddedCurvePoint::generator()` to return generator point (noir-lang/noir#7754) ([ce84b2d](ce84b2d)) * add AMM support to transaction bot ([#12897](#12897)) ([b2c35cc](b2c35cc)) * add minter role to TestERC20 ([#12889](#12889)) ([716ab4f](716ab4f)), closes [#12887](#12887) [#12882](#12882) * allow `fn` returning `()` without having to write `-> ()` (noir-lang/noir#7717) ([e9526cf](e9526cf)) * avm merkle gadget in vm2 ([#12726](#12726)) ([898d50e](898d50e)) * **avm:** instruction fetching parsing error ([#12804](#12804)) ([09a09d5](09a09d5)) * **bb:** Introduce chunks for univariate computation for the AVM ([#12707](#12707)) ([c912bd6](c912bd6)) * can associate error regex with entry in flake file ([#12785](#12785)) ([da48e38](da48e38)) * capture app stacks for bb usage ([#12383](#12383)) ([293eb9d](293eb9d)) * **docs:** Docs on shared mutable, contract classes, and injecting data ([#12043](#12043)) ([94beffe](94beffe)) * Fallback to blobscan API on blob miss ([#12857](#12857)) ([f2f0d72](f2f0d72)), closes [#12856](#12856) * Fast node_modules caching in CI. ([#12371](#12371)) ([09f50d7](09f50d7)) * generate subrelation-label comment in generated relation hpp ([#12914](#12914)) ([fa2bf95](fa2bf95)) * lets try grinding ([4342491](4342491)) * Montgomery optimisation (partial) ([#12822](#12822)) ([c524339](c524339)) * **noir sync:** Calculate noir hash based on just `noir-repo-ref` and `noir-repo.patch` ([#12861](#12861)) ([fa5991f](fa5991f)) * observe L1 and init proposal counter ([#12681](#12681)) ([1e3d71e](1e3d71e)) * precomputed ClientIVC VKs ([#12126](#12126)) ([65bd276](65bd276)) * reapplying reverted circuits recorder with a fix ([#12919](#12919)) ([bf9a034](bf9a034)) * recording circuit inputs + oracles ([#12148](#12148)) ([5436627](5436627)) * rotate over instances on request fail ([#12270](#12270)) ([7ee2e24](7ee2e24)) * Separate Aztec Node Admin API ([#12790](#12790)) ([ccac9ff](ccac9ff)), closes [#12789](#12789) * slim wallet ([#12803](#12803)) ([3f9f30a](3f9f30a)) * **sol:** setup epoch - sampling without replacement ([#12753](#12753)) ([096f739](096f739)) * **ssa:** Basic control dependent LICM (noir-lang/noir#7660) ([ce84b2d](ce84b2d)) * **ssa:** Dominance frontiers (noir-lang/noir#7692) ([e9526cf](e9526cf)) * **ssa:** Post dominator tree (noir-lang/noir#7595) ([e9526cf](e9526cf)) ### Bug Fixes * add missing inputs to `BlackBoxFuncCall::get_inputs_vec` for EcAdd (noir-lang/noir#7752) ([ce84b2d](ce84b2d)) * add random deployment salt to sandbox ([#12869](#12869)) ([49acd71](49acd71)) * agent reporting jobs completion correctly ([#12835](#12835)) ([18d68f0](18d68f0)) * allow method call after block, if and match (noir-lang/noir#7655) ([e9526cf](e9526cf)) * allow omitting ';' after last block statement if it's an assignment (noir-lang/noir#7718) ([e9526cf](e9526cf)) * allow referring to comptime locals at runtime (noir-lang/noir#7681) ([e9526cf](e9526cf)) * allow renaming a trait when importing it (noir-lang/noir#7688) ([e9526cf](e9526cf)) * avm merkle cpp broke darwin ([#12917](#12917)) ([75c9098](75c9098)) * **bb.js:** remove size metadata from UH proof ([#12775](#12775)) ([5b064bc](5b064bc)) * bench upload logic ([#12800](#12800)) ([52575d8](52575d8)) * bring back matrix on grind. try several things to resolve txe port in use. ([79af7a3](79af7a3)) * CI Tweaks ([#12908](#12908)) ([326767c](326767c)) * ci.sh gh-bench logic ([#12776](#12776)) ([8080f47](8080f47)) * **ci:** Exclude inliner specific reference count tests from Brillig trace report (noir-lang/noir#7761) ([ce84b2d](ce84b2d)) * **ci:** Fail the CI job on a Brillig report failure (noir-lang/noir#7762) ([ce84b2d](ce84b2d)) * clientivc capture benchmarks include authwits ([#12873](#12873)) ([5df2aea](5df2aea)) * config ordering ([#12893](#12893)) ([44af76e](44af76e)) * consensus URL as CLI config ([#12796](#12796)) ([66e8028](66e8028)) * correctly format let followed by comment before unsafe (noir-lang/noir#7659) ([e9526cf](e9526cf)) * cpp ivc bench ([#12815](#12815)) ([95a0ec1](95a0ec1)) * disable gpg signing for noir bootstrap ([#12840](#12840)) ([2a76c8c](2a76c8c)) * Disallow registration of contract classes with no public bytecode ([#12910](#12910)) ([41bf13e](41bf13e)) * doc comments on functions warn unexpectedly (noir-lang/noir#7721) ([e9526cf](e9526cf)) * don't gpg sign the noir patch ([#12912](#12912)) ([43191e0](43191e0)) * Don't log config ([#12876](#12876)) ([545b4e0](545b4e0)) * Experiment with `DecrementRc` (noir-lang/noir#7629) ([66a62d0](66a62d0)) * Fix prover node publisher for multi-proofs ([#12924](#12924)) ([42733a6](42733a6)) * Fix stdout testing when running test programs (noir-lang/noir#7741) ([66a62d0](66a62d0)) * Fixes regressed LSP and adds a test to sanity check. ([#12915](#12915)) ([30f9087](30f9087)) * generate ivc benchmarks ([#12811](#12811)) ([3ee32a9](3ee32a9)) * handle predicate value reduction in array get also for the databus (noir-lang/noir#7730) ([66a62d0](66a62d0)) * hotfix git user config ([d58efbb](d58efbb)) * kind on sepolia + balance consolidation + sepolia values service indices ([#12473](#12473)) ([000d515](000d515)) * misleading test ([#12877](#12877)) ([dc8ab31](dc8ab31)) * nightly versioning ([#12872](#12872)) ([7586192](7586192)) * oracles handlers ([#12864](#12864)) ([4bae397](4bae397)) * pass bot salt ([#12923](#12923)) ([7aa0b87](7aa0b87)) * post-checkout hook installation to include `$@` ([#12781](#12781)) ([323c958](323c958)) * redact sensitive fields in logs ([#12913](#12913)) ([31feb0b](31feb0b)) * redo "fix: make vk metadata actual witnesses" ([#12535](#12535)) ([392abc2](392abc2)) * **redo:** "fix: Switch to `noir-repo` context for cache content hashing" ([#12825](#12825)) ([5a98d20](5a98d20)) * Remove hack to register contract class directly on node ([#12795](#12795)) ([eff2501](eff2501)), closes [#10007](#10007) * Removed logged config object in L1 Tx Utils ([#12901](#12901)) ([5d871f8](5d871f8)) * Restart proving job if epoch content changes ([#12655](#12655)) ([613994f](613994f)) * retries starting txe ([3fcc601](3fcc601)) * revert "Switch to `noir-repo` context for cache content hashing" ([#12824](#12824)) ([37ccc38](37ccc38)) * Run aztec-up tests as ubuntu not root. ([#12875](#12875)) ([41cf5a4](41cf5a4)) * run nightly as bot ([#12833](#12833)) ([3799330](3799330)) * Some basic re-org handling ([#12812](#12812)) ([558e315](558e315)) * source_refname ([#12827](#12827)) ([b4a0b71](b4a0b71)) * **ssa:** don't check Brillig calls for coverage if they don't return anything (e.g. println) (noir-lang/noir#7644) ([e9526cf](e9526cf)) * Stop blockstream on world-state sync error ([#12854](#12854)) ([810ee2d](810ee2d)) * Switch to `noir-repo` context for cache content hashing ([#12784](#12784)) ([6214c8c](6214c8c)) * update join split test hash ([#12798](#12798)) ([2fd47f6](2fd47f6)) * Use schnorr lib with reduced sig.e ([#12844](#12844)) ([d03d61c](d03d61c)) * validators verify tx proofs ([#12939](#12939)) ([c02132d](c02132d)) * wrong printing of line comment in quoted (noir-lang/noir#7694) ([e9526cf](e9526cf)) * yolo annotated tag on nightlies. only run kind smoke test. ([8cdfb9a](8cdfb9a)) * yolo debug info ([6681c8f](6681c8f)) * yolo fix ([aec93df](aec93df)) * yolo mark flakey discv5 timeout test ([b45a994](b45a994)) * yolo trying to fix txe port ([ea553d2](ea553d2)) * yolo wait for docker to be up on aztec-up tests. ([8dcc1b5](8dcc1b5)) ### Miscellaneous * add `mapi`/`for_eachi` functions (noir-lang/noir#7705) ([66a62d0](66a62d0)) * add `shared` module within `noirc_frontend` (noir-lang/noir#7746) ([ce84b2d](ce84b2d)) * add acir_test for bb.js classes ([#12892](#12892)) ([ffe1f4f](ffe1f4f)) * add cargo deny advisory (noir-lang/noir#7691) ([e9526cf](e9526cf)) * Add comment on verifyHistoricBlock ([#12933](#12933)) ([cb978b5](cb978b5)) * add extra docs lint (noir-lang/noir#7742) ([66a62d0](66a62d0)) * Add GITHUB_TOKEN for downloading prost_prebuilt to acvm.js build (noir-lang/noir#7745) ([ce84b2d](ce84b2d)) * add kind diagnostics during startup ([#12805](#12805)) ([450f9bb](450f9bb)) * add lambda calculus test (noir-lang/noir#7646) ([e9526cf](e9526cf)) * add more test suites to CI (noir-lang/noir#7757) ([ce84b2d](ce84b2d)) * add regression tests for PR [#7570](#7570) from lambda interpreter test (noir-lang/noir#7638) ([e9526cf](e9526cf)) * add support for caching `node_modules` within a nested repository ([#12862](#12862)) ([16232c8](16232c8)) * add tests for trait renaming in imports (noir-lang/noir#7631) ([e9526cf](e9526cf)) * add timeouts to CI (noir-lang/noir#7725) ([e9526cf](e9526cf)) * add trailing slash to link on docs homepage (noir-lang/noir#7682) ([e9526cf](e9526cf)) * add workflow to publish rustdoc to github pages (noir-lang/noir#7687) ([e9526cf](e9526cf)) * address recurring typo in docs (noir-lang/noir#7656) ([e9526cf](e9526cf)) * allow individual service data map size configuration ([#12853](#12853)) ([b9e6a19](b9e6a19)), closes [#12831](#12831) * **artifact_cli:** Print circuit output to stdout (noir-lang/noir#7696) ([e9526cf](e9526cf)) * **avm:** Constrain pc_size_in_bits column and rename ([#12899](#12899)) ([d69901f](d69901f)) * **avm:** make contract db returns optional ([#12867](#12867)) ([cf2beb2](cf2beb2)) * **avm:** vm2 lazy bytecode loading ([#12847](#12847)) ([233ca3e](233ca3e)) * **avm:** vm2 recursive execution ([#12842](#12842)) ([04981e2](04981e2)) * avoid syncing recursive proofs between repositories ([#12769](#12769)) ([7259b92](7259b92)) * begin splitting out note discovery ([#12819](#12819)) ([75d545a](75d545a)) * begin the introduction of log type id and standard log layouts ([#12823](#12823)) ([e86a258](e86a258)) * bump bb (noir-lang/noir#7726) ([66a62d0](66a62d0)) * bump external pinned commits (noir-lang/noir#7667) ([e9526cf](e9526cf)) * bump external pinned commits (noir-lang/noir#7728) ([e9526cf](e9526cf)) * bump JS dependencies (noir-lang/noir#7669) ([e9526cf](e9526cf)) * bump node to v22.18.3 (noir-lang/noir#7668) ([e9526cf](e9526cf)) * bump wasm-pack to 0.13.1 (noir-lang/noir#7675) ([e9526cf](e9526cf)) * check test program execution success output (noir-lang/noir#7713) ([e9526cf](e9526cf)) * **ci:** enforce rustdoc lints (noir-lang/noir#7738) ([66a62d0](66a62d0)) * **ci:** Exclude enum tests from Brillig reports (noir-lang/noir#7661) ([e9526cf](e9526cf)) * **ci:** private-kernel-inner timeout bump (noir-lang/noir#7732) ([66a62d0](66a62d0)) * Cleanup and re-specify sequencer config in RC1 ([#12898](#12898)) ([13aa4f5](13aa4f5)) * comment out kind tests ([#12793](#12793)) ([39986e5](39986e5)) * delete honk programs from `test_programs` (noir-lang/noir#7727) ([66a62d0](66a62d0)) * **docs:** Avoid colliding filenames (noir-lang/noir#7771) ([ce84b2d](ce84b2d)) * **docs:** Brillig opcodes (noir-lang/noir#7722) ([e9526cf](e9526cf)) * **docs:** Document BlackBoxFuncCall enum (noir-lang/noir#7702) ([e9526cf](e9526cf)) * **docs:** Extend stable documentation versions to build to cover multiple `beta.n` releases (noir-lang/noir#7685) ([e9526cf](e9526cf)) * **docs:** Landing page jargonless intro (noir-lang/noir#7649) ([66a62d0](66a62d0)) * **docs:** Minor fixes on local documentation development workflows (noir-lang/noir#7684) ([e9526cf](e9526cf)) * **docs:** More acir docs (noir-lang/noir#7731) ([66a62d0](66a62d0)) * **docs:** update bb commands to match the new version (noir-lang/noir#7677) ([e9526cf](e9526cf)) * **docs:** update profiler usage docs ([#12782](#12782)) ([3b2fccb](3b2fccb)) * don't switch out bb.js install in noir repo ([#12771](#12771)) ([79c3c62](79c3c62)) * easier way to test monormophization errors (noir-lang/noir#7679) ([e9526cf](e9526cf)) * enable wtr debug logging ([#12848](#12848)) ([0fc5528](0fc5528)) * encapsulate `Index` within `LocalModuleId` (noir-lang/noir#7719) ([e9526cf](e9526cf)) * Faster tx production on masternet ([#12878](#12878)) ([17d0301](17d0301)) * fix archiver.test.ts ([#12907](#12907)) ([fd7adb1](fd7adb1)) * fix gemini ([#12602](#12602)) ([3eb9e9a](3eb9e9a)) * fix rustdoc issues (noir-lang/noir#7712) ([e9526cf](e9526cf)) * Fix rustdocs error (noir-lang/noir#7750) ([ce84b2d](ce84b2d)) * fixing timeouts (noir-lang/noir#7666) ([e9526cf](e9526cf)) * **frontend:** Regression test for creating a mutable reference to an array element (noir-lang/noir#7699) ([e9526cf](e9526cf)) * hide Ident fields (noir-lang/noir#7709) ([e9526cf](e9526cf)) * Increase bracket_depth to 2048 ([#12801](#12801)) ([2e9a7a3](2e9a7a3)) * make `ResolverError::UnnecessaryPub` a hard error (noir-lang/noir#7664) ([e9526cf](e9526cf)) * migrate to use new flat eslint config file (noir-lang/noir#7676) ([e9526cf](e9526cf)) * minor `CommitmentsDB` cleanup ([#12817](#12817)) ([ff8a199](ff8a199)) * more descriptive SSA tests (noir-lang/noir#7697) ([e9526cf](e9526cf)) * more logging in kind setup ([#12852](#12852)) ([9824336](9824336)) * note getter internals ([#12809](#12809)) ([3a89a24](3a89a24)) * nuking MemoryArchiveStore ([#12826](#12826)) ([c5405d8](c5405d8)) * once again skip the uniswap tests ([#12859](#12859)) ([4f37dec](4f37dec)) * **p2p:** add tx queue to prevent ddos attacks ([#12603](#12603)) ([a96a908](a96a908)) * pr linking job for merge queue ([#12546](#12546)) ([a0cee9f](a0cee9f)) * pull most logic from `get_all_contracts` up out of the `CrateDefMap` (noir-lang/noir#7715) ([e9526cf](e9526cf)) * pull out pure functions from interpreter (noir-lang/noir#7755) ([ce84b2d](ce84b2d)) * push users towards nargo in tutorial (noir-lang/noir#7736) ([ce84b2d](ce84b2d)) * re-enable nightly tests ([#12673](#12673)) ([d2f8f18](d2f8f18)), closes [#12107](#12107) * Refactor entrypoints ([#12868](#12868)) ([5f48055](5f48055)) * **refactor:** Move resolved error structures out of acir crate (noir-lang/noir#7734) ([66a62d0](66a62d0)) * remove `examples` from testing of noir ([#12768](#12768)) ([cd6a3af](cd6a3af)) * remove `noir-lang/ec` dependency ([#12507](#12507)) ([181d6e0](181d6e0)) * remove bun from docs in favour of yarn (noir-lang/noir#7756) ([ce84b2d](ce84b2d)) * Remove magic number from AVM bytecode ([#12900](#12900)) ([4d96fc0](4d96fc0)) * Remove seemingly unused compose files ([#12794](#12794)) ([1a75797](1a75797)) * remove some unnecessary mod.nr files ([#12797](#12797)) ([99fc705](99fc705)) * remove some unused HIR code (noir-lang/noir#7643) ([e9526cf](e9526cf)) * remove ultraplonk tests (noir-lang/noir#7680) ([e9526cf](e9526cf)) * remove unconditional sleep ([#12814](#12814)) ([e61c376](e61c376)) * remove whyle, use native while ([#12820](#12820)) ([889bc48](889bc48)) * rename note discovery to message discovery ([#12755](#12755)) ([ae4f935](ae4f935)) * replace relative paths to noir-protocol-circuits ([070ad0a](070ad0a)) * replace relative paths to noir-protocol-circuits ([f62614d](f62614d)) * replace relative paths to noir-protocol-circuits ([742162c](742162c)) * replace relative paths to noir-protocol-circuits ([801244c](801244c)) * replace relative paths to noir-protocol-circuits ([c39d88b](c39d88b)) * replace relative paths to noir-protocol-circuits ([2cb1a37](2cb1a37)) * replace relative paths to noir-protocol-circuits ([a42309b](a42309b)) * Resolve various rustdoc warnings (noir-lang/noir#7724) ([e9526cf](e9526cf)) * run `noir_wasm` over `test_programs` (noir-lang/noir#7765) ([ce84b2d](ce84b2d)) * separated multi map and fixed indexeddb map ([#12896](#12896)) ([05af647](05af647)) * Set max txs per block ([#12837](#12837)) ([74476ff](74476ff)) * simplify note getter oracle ([#12807](#12807)) ([2fc01a3](2fc01a3)) * **ssa:** Do not print entire functions in underconstrained values check trace (noir-lang/noir#7665) ([e9526cf](e9526cf)) * update docusaurus config to correct trailing slash issue (noir-lang/noir#7720) ([e9526cf](e9526cf)) * update examples to use UltraHonk (noir-lang/noir#7653) ([e9526cf](e9526cf)) * Update README.md to add trailing docs `/` (noir-lang/noir#7689) ([e9526cf](e9526cf)) * Update references to GH issues to reflect recent changes ([#12722](#12722)) ([100d31f](100d31f)) * update yarn version to 4.5.2 (noir-lang/noir#7678) ([e9526cf](e9526cf)) * use rollup.ts more consistenty ([#12863](#12863)) ([bd9f3ce](bd9f3ce)) * vars for --network ignition-testnet ([#12886](#12886)) ([6efc8ce](6efc8ce)) ### Documentation * Add sponsoredFPC ([#12485](#12485)) ([87bb6da](87bb6da)) * additions ([#12551](#12551)) ([c9ea1cd](c9ea1cd)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Allows multiple accounts to be minters of the staking and fee assets. Creates a FeeAssetHandler in the periphery to allow mints of a fixed size. Also allows rollup owner to update the mana target (and thus, the mana limit which is twice the target). See [design](https://github.com/AztecProtocol/engineering-designs/blob/42455c99b867cde4d67700bc97ac12309c2332ea/docs/faucets/dd.md#testerc20) Fix #12887 Fix #12882
🤖 I have created a new Aztec Packages release --- ## [0.82.0](v0.81.0...v0.82.0) (2025-03-21) ### ⚠ BREAKING CHANGES * `AztecNode.findLeavesIndexes` returning block info ([#12890](#12890)) * make `ResolverError::UnnecessaryPub` a hard error (noir-lang/noir#7664) ### Features * `AztecNode.findLeavesIndexes` returning block info ([#12890](#12890)) ([9770e15](9770e15)) * add `EmbeddedCurvePoint::generator()` to return generator point (noir-lang/noir#7754) ([ce84b2d](ce84b2d)) * add AMM support to transaction bot ([#12897](#12897)) ([b2c35cc](b2c35cc)) * add minter role to TestERC20 ([#12889](#12889)) ([716ab4f](716ab4f)), closes [#12887](#12887) [#12882](#12882) * allow `fn` returning `()` without having to write `-> ()` (noir-lang/noir#7717) ([e9526cf](e9526cf)) * avm merkle gadget in vm2 ([#12726](#12726)) ([898d50e](898d50e)) * **avm:** instruction fetching parsing error ([#12804](#12804)) ([09a09d5](09a09d5)) * **bb:** Introduce chunks for univariate computation for the AVM ([#12707](#12707)) ([c912bd6](c912bd6)) * can associate error regex with entry in flake file ([#12785](#12785)) ([da48e38](da48e38)) * capture app stacks for bb usage ([#12383](#12383)) ([293eb9d](293eb9d)) * **docs:** Docs on shared mutable, contract classes, and injecting data ([#12043](#12043)) ([94beffe](94beffe)) * Fallback to blobscan API on blob miss ([#12857](#12857)) ([f2f0d72](f2f0d72)), closes [#12856](#12856) * Fast node_modules caching in CI. ([#12371](#12371)) ([09f50d7](09f50d7)) * generate subrelation-label comment in generated relation hpp ([#12914](#12914)) ([fa2bf95](fa2bf95)) * lets try grinding ([4342491](4342491)) * Montgomery optimisation (partial) ([#12822](#12822)) ([c524339](c524339)) * **noir sync:** Calculate noir hash based on just `noir-repo-ref` and `noir-repo.patch` ([#12861](#12861)) ([fa5991f](fa5991f)) * observe L1 and init proposal counter ([#12681](#12681)) ([1e3d71e](1e3d71e)) * precomputed ClientIVC VKs ([#12126](#12126)) ([65bd276](65bd276)) * reapplying reverted circuits recorder with a fix ([#12919](#12919)) ([bf9a034](bf9a034)) * recording circuit inputs + oracles ([#12148](#12148)) ([5436627](5436627)) * rotate over instances on request fail ([#12270](#12270)) ([7ee2e24](7ee2e24)) * Separate Aztec Node Admin API ([#12790](#12790)) ([ccac9ff](ccac9ff)), closes [#12789](#12789) * slim wallet ([#12803](#12803)) ([3f9f30a](3f9f30a)) * **sol:** setup epoch - sampling without replacement ([#12753](#12753)) ([096f739](096f739)) * **ssa:** Basic control dependent LICM (noir-lang/noir#7660) ([ce84b2d](ce84b2d)) * **ssa:** Dominance frontiers (noir-lang/noir#7692) ([e9526cf](e9526cf)) * **ssa:** Post dominator tree (noir-lang/noir#7595) ([e9526cf](e9526cf)) ### Bug Fixes * add missing inputs to `BlackBoxFuncCall::get_inputs_vec` for EcAdd (noir-lang/noir#7752) ([ce84b2d](ce84b2d)) * add random deployment salt to sandbox ([#12869](#12869)) ([49acd71](49acd71)) * agent reporting jobs completion correctly ([#12835](#12835)) ([18d68f0](18d68f0)) * allow method call after block, if and match (noir-lang/noir#7655) ([e9526cf](e9526cf)) * allow omitting ';' after last block statement if it's an assignment (noir-lang/noir#7718) ([e9526cf](e9526cf)) * allow referring to comptime locals at runtime (noir-lang/noir#7681) ([e9526cf](e9526cf)) * allow renaming a trait when importing it (noir-lang/noir#7688) ([e9526cf](e9526cf)) * avm merkle cpp broke darwin ([#12917](#12917)) ([75c9098](75c9098)) * **bb.js:** remove size metadata from UH proof ([#12775](#12775)) ([5b064bc](5b064bc)) * bench upload logic ([#12800](#12800)) ([52575d8](52575d8)) * bring back matrix on grind. try several things to resolve txe port in use. ([79af7a3](79af7a3)) * CI Tweaks ([#12908](#12908)) ([326767c](326767c)) * ci.sh gh-bench logic ([#12776](#12776)) ([8080f47](8080f47)) * **ci:** Exclude inliner specific reference count tests from Brillig trace report (noir-lang/noir#7761) ([ce84b2d](ce84b2d)) * **ci:** Fail the CI job on a Brillig report failure (noir-lang/noir#7762) ([ce84b2d](ce84b2d)) * clientivc capture benchmarks include authwits ([#12873](#12873)) ([5df2aea](5df2aea)) * config ordering ([#12893](#12893)) ([44af76e](44af76e)) * consensus URL as CLI config ([#12796](#12796)) ([66e8028](66e8028)) * correctly format let followed by comment before unsafe (noir-lang/noir#7659) ([e9526cf](e9526cf)) * cpp ivc bench ([#12815](#12815)) ([95a0ec1](95a0ec1)) * disable gpg signing for noir bootstrap ([#12840](#12840)) ([2a76c8c](2a76c8c)) * Disallow registration of contract classes with no public bytecode ([#12910](#12910)) ([41bf13e](41bf13e)) * doc comments on functions warn unexpectedly (noir-lang/noir#7721) ([e9526cf](e9526cf)) * don't gpg sign the noir patch ([#12912](#12912)) ([43191e0](43191e0)) * Don't log config ([#12876](#12876)) ([545b4e0](545b4e0)) * Experiment with `DecrementRc` (noir-lang/noir#7629) ([66a62d0](66a62d0)) * Fix prover node publisher for multi-proofs ([#12924](#12924)) ([42733a6](42733a6)) * Fix stdout testing when running test programs (noir-lang/noir#7741) ([66a62d0](66a62d0)) * Fixes regressed LSP and adds a test to sanity check. ([#12915](#12915)) ([30f9087](30f9087)) * generate ivc benchmarks ([#12811](#12811)) ([3ee32a9](3ee32a9)) * handle predicate value reduction in array get also for the databus (noir-lang/noir#7730) ([66a62d0](66a62d0)) * hotfix git user config ([d58efbb](d58efbb)) * kind on sepolia + balance consolidation + sepolia values service indices ([#12473](#12473)) ([000d515](000d515)) * misleading test ([#12877](#12877)) ([dc8ab31](dc8ab31)) * nightly versioning ([#12872](#12872)) ([7586192](7586192)) * oracles handlers ([#12864](#12864)) ([4bae397](4bae397)) * pass bot salt ([#12923](#12923)) ([7aa0b87](7aa0b87)) * post-checkout hook installation to include `$@` ([#12781](#12781)) ([323c958](323c958)) * redact sensitive fields in logs ([#12913](#12913)) ([31feb0b](31feb0b)) * redo "fix: make vk metadata actual witnesses" ([#12535](#12535)) ([392abc2](392abc2)) * **redo:** "fix: Switch to `noir-repo` context for cache content hashing" ([#12825](#12825)) ([5a98d20](5a98d20)) * Remove hack to register contract class directly on node ([#12795](#12795)) ([eff2501](eff2501)), closes [#10007](#10007) * Removed logged config object in L1 Tx Utils ([#12901](#12901)) ([5d871f8](5d871f8)) * Restart proving job if epoch content changes ([#12655](#12655)) ([613994f](613994f)) * retries starting txe ([3fcc601](3fcc601)) * revert "Switch to `noir-repo` context for cache content hashing" ([#12824](#12824)) ([37ccc38](37ccc38)) * Run aztec-up tests as ubuntu not root. ([#12875](#12875)) ([41cf5a4](41cf5a4)) * run nightly as bot ([#12833](#12833)) ([3799330](3799330)) * Some basic re-org handling ([#12812](#12812)) ([558e315](558e315)) * source_refname ([#12827](#12827)) ([b4a0b71](b4a0b71)) * **ssa:** don't check Brillig calls for coverage if they don't return anything (e.g. println) (noir-lang/noir#7644) ([e9526cf](e9526cf)) * Stop blockstream on world-state sync error ([#12854](#12854)) ([810ee2d](810ee2d)) * Switch to `noir-repo` context for cache content hashing ([#12784](#12784)) ([6214c8c](6214c8c)) * update join split test hash ([#12798](#12798)) ([2fd47f6](2fd47f6)) * Use schnorr lib with reduced sig.e ([#12844](#12844)) ([d03d61c](d03d61c)) * validators verify tx proofs ([#12939](#12939)) ([c02132d](c02132d)) * wrong printing of line comment in quoted (noir-lang/noir#7694) ([e9526cf](e9526cf)) * yolo annotated tag on nightlies. only run kind smoke test. ([8cdfb9a](8cdfb9a)) * yolo debug info ([6681c8f](6681c8f)) * yolo fix ([aec93df](aec93df)) * yolo mark flakey discv5 timeout test ([b45a994](b45a994)) * yolo trying to fix txe port ([ea553d2](ea553d2)) * yolo wait for docker to be up on aztec-up tests. ([8dcc1b5](8dcc1b5)) ### Miscellaneous * add `mapi`/`for_eachi` functions (noir-lang/noir#7705) ([66a62d0](66a62d0)) * add `shared` module within `noirc_frontend` (noir-lang/noir#7746) ([ce84b2d](ce84b2d)) * add acir_test for bb.js classes ([#12892](#12892)) ([ffe1f4f](ffe1f4f)) * add cargo deny advisory (noir-lang/noir#7691) ([e9526cf](e9526cf)) * Add comment on verifyHistoricBlock ([#12933](#12933)) ([cb978b5](cb978b5)) * add extra docs lint (noir-lang/noir#7742) ([66a62d0](66a62d0)) * Add GITHUB_TOKEN for downloading prost_prebuilt to acvm.js build (noir-lang/noir#7745) ([ce84b2d](ce84b2d)) * add kind diagnostics during startup ([#12805](#12805)) ([450f9bb](450f9bb)) * add lambda calculus test (noir-lang/noir#7646) ([e9526cf](e9526cf)) * add more test suites to CI (noir-lang/noir#7757) ([ce84b2d](ce84b2d)) * add regression tests for PR [#7570](#7570) from lambda interpreter test (noir-lang/noir#7638) ([e9526cf](e9526cf)) * add support for caching `node_modules` within a nested repository ([#12862](#12862)) ([16232c8](16232c8)) * add tests for trait renaming in imports (noir-lang/noir#7631) ([e9526cf](e9526cf)) * add timeouts to CI (noir-lang/noir#7725) ([e9526cf](e9526cf)) * add trailing slash to link on docs homepage (noir-lang/noir#7682) ([e9526cf](e9526cf)) * add workflow to publish rustdoc to github pages (noir-lang/noir#7687) ([e9526cf](e9526cf)) * address recurring typo in docs (noir-lang/noir#7656) ([e9526cf](e9526cf)) * allow individual service data map size configuration ([#12853](#12853)) ([b9e6a19](b9e6a19)), closes [#12831](#12831) * **artifact_cli:** Print circuit output to stdout (noir-lang/noir#7696) ([e9526cf](e9526cf)) * **avm:** Constrain pc_size_in_bits column and rename ([#12899](#12899)) ([d69901f](d69901f)) * **avm:** make contract db returns optional ([#12867](#12867)) ([cf2beb2](cf2beb2)) * **avm:** vm2 lazy bytecode loading ([#12847](#12847)) ([233ca3e](233ca3e)) * **avm:** vm2 recursive execution ([#12842](#12842)) ([04981e2](04981e2)) * avoid syncing recursive proofs between repositories ([#12769](#12769)) ([7259b92](7259b92)) * begin splitting out note discovery ([#12819](#12819)) ([75d545a](75d545a)) * begin the introduction of log type id and standard log layouts ([#12823](#12823)) ([e86a258](e86a258)) * bump bb (noir-lang/noir#7726) ([66a62d0](66a62d0)) * bump external pinned commits (noir-lang/noir#7667) ([e9526cf](e9526cf)) * bump external pinned commits (noir-lang/noir#7728) ([e9526cf](e9526cf)) * bump JS dependencies (noir-lang/noir#7669) ([e9526cf](e9526cf)) * bump node to v22.18.3 (noir-lang/noir#7668) ([e9526cf](e9526cf)) * bump wasm-pack to 0.13.1 (noir-lang/noir#7675) ([e9526cf](e9526cf)) * check test program execution success output (noir-lang/noir#7713) ([e9526cf](e9526cf)) * **ci:** enforce rustdoc lints (noir-lang/noir#7738) ([66a62d0](66a62d0)) * **ci:** Exclude enum tests from Brillig reports (noir-lang/noir#7661) ([e9526cf](e9526cf)) * **ci:** private-kernel-inner timeout bump (noir-lang/noir#7732) ([66a62d0](66a62d0)) * Cleanup and re-specify sequencer config in RC1 ([#12898](#12898)) ([13aa4f5](13aa4f5)) * comment out kind tests ([#12793](#12793)) ([39986e5](39986e5)) * delete honk programs from `test_programs` (noir-lang/noir#7727) ([66a62d0](66a62d0)) * **docs:** Avoid colliding filenames (noir-lang/noir#7771) ([ce84b2d](ce84b2d)) * **docs:** Brillig opcodes (noir-lang/noir#7722) ([e9526cf](e9526cf)) * **docs:** Document BlackBoxFuncCall enum (noir-lang/noir#7702) ([e9526cf](e9526cf)) * **docs:** Extend stable documentation versions to build to cover multiple `beta.n` releases (noir-lang/noir#7685) ([e9526cf](e9526cf)) * **docs:** Landing page jargonless intro (noir-lang/noir#7649) ([66a62d0](66a62d0)) * **docs:** Minor fixes on local documentation development workflows (noir-lang/noir#7684) ([e9526cf](e9526cf)) * **docs:** More acir docs (noir-lang/noir#7731) ([66a62d0](66a62d0)) * **docs:** update bb commands to match the new version (noir-lang/noir#7677) ([e9526cf](e9526cf)) * **docs:** update profiler usage docs ([#12782](#12782)) ([3b2fccb](3b2fccb)) * don't switch out bb.js install in noir repo ([#12771](#12771)) ([79c3c62](79c3c62)) * easier way to test monormophization errors (noir-lang/noir#7679) ([e9526cf](e9526cf)) * enable wtr debug logging ([#12848](#12848)) ([0fc5528](0fc5528)) * encapsulate `Index` within `LocalModuleId` (noir-lang/noir#7719) ([e9526cf](e9526cf)) * Faster tx production on masternet ([#12878](#12878)) ([17d0301](17d0301)) * fix archiver.test.ts ([#12907](#12907)) ([fd7adb1](fd7adb1)) * fix gemini ([#12602](#12602)) ([3eb9e9a](3eb9e9a)) * fix rustdoc issues (noir-lang/noir#7712) ([e9526cf](e9526cf)) * Fix rustdocs error (noir-lang/noir#7750) ([ce84b2d](ce84b2d)) * fixing timeouts (noir-lang/noir#7666) ([e9526cf](e9526cf)) * **frontend:** Regression test for creating a mutable reference to an array element (noir-lang/noir#7699) ([e9526cf](e9526cf)) * hide Ident fields (noir-lang/noir#7709) ([e9526cf](e9526cf)) * Increase bracket_depth to 2048 ([#12801](#12801)) ([2e9a7a3](2e9a7a3)) * make `ResolverError::UnnecessaryPub` a hard error (noir-lang/noir#7664) ([e9526cf](e9526cf)) * migrate to use new flat eslint config file (noir-lang/noir#7676) ([e9526cf](e9526cf)) * minor `CommitmentsDB` cleanup ([#12817](#12817)) ([ff8a199](ff8a199)) * more descriptive SSA tests (noir-lang/noir#7697) ([e9526cf](e9526cf)) * more logging in kind setup ([#12852](#12852)) ([9824336](9824336)) * note getter internals ([#12809](#12809)) ([3a89a24](3a89a24)) * nuking MemoryArchiveStore ([#12826](#12826)) ([c5405d8](c5405d8)) * once again skip the uniswap tests ([#12859](#12859)) ([4f37dec](4f37dec)) * **p2p:** add tx queue to prevent ddos attacks ([#12603](#12603)) ([a96a908](a96a908)) * pr linking job for merge queue ([#12546](#12546)) ([a0cee9f](a0cee9f)) * pull most logic from `get_all_contracts` up out of the `CrateDefMap` (noir-lang/noir#7715) ([e9526cf](e9526cf)) * pull out pure functions from interpreter (noir-lang/noir#7755) ([ce84b2d](ce84b2d)) * push users towards nargo in tutorial (noir-lang/noir#7736) ([ce84b2d](ce84b2d)) * re-enable nightly tests ([#12673](#12673)) ([d2f8f18](d2f8f18)), closes [#12107](#12107) * Refactor entrypoints ([#12868](#12868)) ([5f48055](5f48055)) * **refactor:** Move resolved error structures out of acir crate (noir-lang/noir#7734) ([66a62d0](66a62d0)) * remove `examples` from testing of noir ([#12768](#12768)) ([cd6a3af](cd6a3af)) * remove `noir-lang/ec` dependency ([#12507](#12507)) ([181d6e0](181d6e0)) * remove bun from docs in favour of yarn (noir-lang/noir#7756) ([ce84b2d](ce84b2d)) * Remove magic number from AVM bytecode ([#12900](#12900)) ([4d96fc0](4d96fc0)) * Remove seemingly unused compose files ([#12794](#12794)) ([1a75797](1a75797)) * remove some unnecessary mod.nr files ([#12797](#12797)) ([99fc705](99fc705)) * remove some unused HIR code (noir-lang/noir#7643) ([e9526cf](e9526cf)) * remove ultraplonk tests (noir-lang/noir#7680) ([e9526cf](e9526cf)) * remove unconditional sleep ([#12814](#12814)) ([e61c376](e61c376)) * remove whyle, use native while ([#12820](#12820)) ([889bc48](889bc48)) * rename note discovery to message discovery ([#12755](#12755)) ([ae4f935](ae4f935)) * replace relative paths to noir-protocol-circuits ([070ad0a](070ad0a)) * replace relative paths to noir-protocol-circuits ([f62614d](f62614d)) * replace relative paths to noir-protocol-circuits ([742162c](742162c)) * replace relative paths to noir-protocol-circuits ([801244c](801244c)) * replace relative paths to noir-protocol-circuits ([c39d88b](c39d88b)) * replace relative paths to noir-protocol-circuits ([2cb1a37](2cb1a37)) * replace relative paths to noir-protocol-circuits ([a42309b](a42309b)) * Resolve various rustdoc warnings (noir-lang/noir#7724) ([e9526cf](e9526cf)) * run `noir_wasm` over `test_programs` (noir-lang/noir#7765) ([ce84b2d](ce84b2d)) * separated multi map and fixed indexeddb map ([#12896](#12896)) ([05af647](05af647)) * Set max txs per block ([#12837](#12837)) ([74476ff](74476ff)) * simplify note getter oracle ([#12807](#12807)) ([2fc01a3](2fc01a3)) * **ssa:** Do not print entire functions in underconstrained values check trace (noir-lang/noir#7665) ([e9526cf](e9526cf)) * update docusaurus config to correct trailing slash issue (noir-lang/noir#7720) ([e9526cf](e9526cf)) * update examples to use UltraHonk (noir-lang/noir#7653) ([e9526cf](e9526cf)) * Update README.md to add trailing docs `/` (noir-lang/noir#7689) ([e9526cf](e9526cf)) * Update references to GH issues to reflect recent changes ([#12722](#12722)) ([100d31f](100d31f)) * update yarn version to 4.5.2 (noir-lang/noir#7678) ([e9526cf](e9526cf)) * use rollup.ts more consistenty ([#12863](#12863)) ([bd9f3ce](bd9f3ce)) * vars for --network ignition-testnet ([#12886](#12886)) ([6efc8ce](6efc8ce)) ### Documentation * Add sponsoredFPC ([#12485](#12485)) ([87bb6da](87bb6da)) * additions ([#12551](#12551)) ([c9ea1cd](c9ea1cd)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Allows multiple accounts to be minters of the staking and fee assets.
Creates a FeeAssetHandler in the periphery to allow mints of a fixed size.
Also allows rollup owner to update the mana target (and thus, the mana limit which is twice the target).
See design
Fix #12887
Fix #12882