Skip to content

AztecProtocol/aztec-packages

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date
Aug 4, 2023
Aug 2, 2023
May 16, 2023
Aug 2, 2023
Aug 3, 2023
Aug 3, 2023
Aug 3, 2023
Aug 1, 2023
Aug 4, 2023
Feb 24, 2023
Jul 13, 2023
May 19, 2023
Aug 2, 2023
Apr 10, 2023
Feb 24, 2023
Jul 20, 2023
Feb 28, 2023
Mar 2, 2023
Jul 20, 2023
Jul 10, 2023
Aug 3, 2023
Apr 1, 2023
Aug 3, 2023
Jul 31, 2023

Repository files navigation

Aztec Monorepo

All the packages that make up Aztec.

  • circuits: C++ code for circuits and cryptographic functions
  • l1-contracts: Solidity code for the Ethereum contracts that process rollups
  • yarn-project: Typescript code for client and backend

Issues Board

All issues being worked on are tracked on the Aztec Github Project. For a higher-level roadmap, check the milestones overview section of our docs.

Development Setup

Run bootstrap.sh in the project root to set up your environment. This will update git submodules, download ignition transcripts, build all C++ circuits code, install Foundry, compile Solidity contracts, install the current node version via nvm, and build all typescript packages.

To build the C++ code, follow the instructions in the circuits subdirectory, which contains all of the ZK circuit logic for Aztec. Note that "barretenberg", Aztec's underlying cryptographic library, can be found inside the circuits subdirectory as well and is automatically built as a side effect of building the circuits.

To build Typescript code, make sure to have nvm (node version manager) installed.

Continuous Integration

This repository uses CircleCI for continuous integration. Build steps are managed using build-system. Small packages are built and tested as part of a docker build operation, while larger ones and end-to-end tests spin up a large AWS spot instance. Each successful build step creates a new docker image that gets tagged with the package name and commit.

All packages need to be included in the build manifest, which declares what paths belong to each package, as well as dependencies between packages. When the CI runs, if none of the rebuild patterns or dependencies were changed, then the build step is skipped and the last successful image is re-tagged with the current commit. Read more on the build-system repository README.

Debugging

Logging goes through the info and debug functions in C++, and through the DebugLogger module in Typescript. To see the log output, set a DEBUG environment variable to the name of the module you want to debug, to aztec:*, or to * to see all logs.

Contribute

There are many ways you can participate and help build high quality software. Check out the contribution guide!