Skip to content

feat: merge-train/fairies#20721

Merged
benesjan merged 27 commits intonextfrom
merge-train/fairies
Feb 23, 2026
Merged

feat: merge-train/fairies#20721
benesjan merged 27 commits intonextfrom
merge-train/fairies

Conversation

@AztecBot
Copy link
Collaborator

@AztecBot AztecBot commented Feb 20, 2026

BEGIN_COMMIT_OVERRIDE
refactor: aztec new and init creating 2 crates (#20681)
fix: hodgepodge of small things (#20720)
test: aztec new scaffold works (#20711)
feat: add aztec profile command with gate count profiling (#20695)
fix(txe): committing after txs (#20714)
feat: add aztec profile flamegraph command (#20741)
feat: printing out public contract function debug logs in a tx (#20749)
END_COMMIT_OVERRIDE

benesjan and others added 4 commits February 20, 2026 07:54
`aztec new` and `aztec init` now create a workspace with two crates instead of a single contract crate:

- A `contract` crate (type = "contract") for the smart contract code
- A `test` crate (type = "lib") for Noir tests, which depends on the contract crate

This was done as it allow us to not re-compile contracts when only a test is modified.

The new project structure looks like:

```
my_project/
├── Nargo.toml           # [workspace] members = ["contract", "test"]
├── contract/
│   ├── src/main.nr
│   └── Nargo.toml       # type = "contract"
└── test/
    ├── src/lib.nr
    └── Nargo.toml        # type = "lib"
```

**What changed:**
- The `--contract` and `--lib` flags have been removed from `aztec new` and `aztec init`. These commands now always create a contract workspace.
- Contract code is now at `contract/src/main.nr` instead of `src/main.nr`.
- The `Nargo.toml` in the project root is now a workspace file. Contract dependencies go in `contract/Nargo.toml`.
- Tests should be written in the separate `test` crate (`test/src/lib.nr`) and import the contract by package name (e.g., `use my_contract::MyContract;`) instead of using `crate::`.

Other than the above the commands now generate a `README.md` and `.gitignore` files in the project root.

Closes https://linear.app/aztec-labs/issue/F-195/make-aztec-init-create-a-contract-crate-and-a-test-crate

Co-authored-by: Jan Beneš <janbenes1234@gmail.com>
Stuff I don't want hanging over my head while I'm out. Potentially
(read: recommended) portable to current devnet.

* Comment about the protocol contracts `generate_data` script requested
by @nchamo
* Fix for Niall's issue with deployments that require authwitnesses:
https://linear.app/aztec-labs/issue/F-302/authwits-are-not-being-forwarded-to-the-executionpayload-in
* Update playground's devnet URL
* Avoid reregistering accounts on every operation in `EmbeddedWallet`
Copy link
Collaborator

@ludamad ludamad left a comment

Choose a reason for hiding this comment

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

🤖 Auto-approved

@AztecBot
Copy link
Collaborator Author

🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass.

@AztecBot AztecBot added this pull request to the merge queue Feb 20, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Feb 20, 2026
AztecBot and others added 5 commits February 21, 2026 11:38
Job handling in TXE was broken and it has been working until now because
everything we have been querying was obtainable within one job. This is
not the case with private events because those are obtainable only after
being committed.

I described
[here](https://linear.app/aztec-labs/issue/F-335/make-job-committing-in-txe-reasonable)
TXE is need of large refactor but Nico said on
[slack](https://aztecprotocol.slack.com/archives/C07R3GTKJ49/p1771550087677089?thread_ts=1771488780.235399&cid=C07R3GTKJ49)
that we are not yet confident enough in the current design for it to be
worth it to invest time in it. For this reason I have created this ugly
PR that makes it all work but results in the abstractions being
thoroughly broken. I think it's an ok interim solution.

The main problems fixed here:
1. We didn't commit jobs after a call has been performed,
2. we didn't sync contract private state before `txeGetPrivateEvents`
get executed,
3. the `jobId` in `TXEOracleTopLevelContext` was set to just the initial
`jobId` and was not correctly updated.

Issue 3. was handled by me passing the jobId down to individual
functions that needed it.
@benesjan benesjan added this pull request to the merge queue Feb 23, 2026
@AztecBot
Copy link
Collaborator Author

Flakey Tests

🤖 says: This CI run detected 1 tests that failed, but were tolerated due to a .test_patterns.yml entry.

\033FLAKED\033 (8;;http://ci.aztec-labs.com/5aa0411ce548938b�5aa0411ce548938b8;;�):  yarn-project/end-to-end/scripts/run_test.sh simple src/e2e_p2p/gossip_network.test.ts (213s) (code: 0) group:e2e-p2p-epoch-flakes

Merged via the queue into next with commit 5e861b4 Feb 23, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants