diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 616bdec..122568a 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -2,8 +2,8 @@ FROM --platform=linux/amd64 ubuntu:24.04 SHELL ["/bin/bash", "-c"] ENV NVM_DIR=/root/.nvm -ENV NODE_VERSION=22.15.0 -ARG AZTEC_VERSION=4.0.0-devnet.2-patch.1 +ENV NODE_VERSION=24.12.0 +ARG AZTEC_VERSION=4.2.0-aztecnr-rc.2 ENV AZTEC_VERSION=$AZTEC_VERSION ENV NON_INTERACTIVE=1 ENV BIN_PATH=/usr/local/bin diff --git a/.github/workflows/devnet.yaml b/.github/workflows/devnet.yaml deleted file mode 100644 index 28b1166..0000000 --- a/.github/workflows/devnet.yaml +++ /dev/null @@ -1,40 +0,0 @@ -name: Devnet Tests - -on: - push: - branches: - - next - - dev - pull_request: - branches: - - next - - dev - workflow_dispatch: - -concurrency: - group: devnet-${{ github.ref }} - cancel-in-progress: true - -jobs: - devnet-deploy-account: - name: Deploy Account to Devnet - runs-on: ubuntu-latest - env: - AZTEC_ENV: devnet - AZTEC_VERSION: 4.0.0-devnet.2-patch.1 - - steps: - - name: Checkout repository - uses: actions/checkout@v5 - - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: "22" - cache: "yarn" - - - name: Install project dependencies - run: yarn - - - name: Deploy account to devnet - run: yarn deploy-account::devnet diff --git a/.github/workflows/local-network.yaml b/.github/workflows/local-network.yaml index 2314e46..26b5d5f 100644 --- a/.github/workflows/local-network.yaml +++ b/.github/workflows/local-network.yaml @@ -22,6 +22,7 @@ jobs: runs-on: ubuntu-latest env: AZTEC_ENV: local-network + AZTEC_VERSION: 4.2.0-aztecnr-rc.2 steps: - name: Checkout repository @@ -33,7 +34,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: "22" + node-version: "24" cache: "yarn" - name: Install Foundry diff --git a/.github/workflows/testnet.yaml b/.github/workflows/testnet.yaml index 49c6ef0..77cb77e 100644 --- a/.github/workflows/testnet.yaml +++ b/.github/workflows/testnet.yaml @@ -31,7 +31,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: "22" + node-version: "24" cache: "yarn" - name: Install project dependencies diff --git a/CLAUDE.md b/CLAUDE.md index 48dae3a..81812b4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co Aztec Starter — a Pod Racing game contract built with Noir on the Aztec network. Two players allocate points across 5 tracks over 3 rounds with private state; scores are revealed at the end (commit-reveal pattern). The player who wins more tracks (best of 5) wins. -**Aztec version: `4.1.0`** — pinned across `Nargo.toml`, `package.json`, `config/*.json`, and README. All must stay in sync when updating. +**Aztec version: `4.2.0-aztecnr-rc.2`** — pinned across `Nargo.toml`, `package.json`, `config/*.json`, and README. All must stay in sync when updating. ## Build & Development Commands @@ -47,33 +47,31 @@ NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache -- ## Deployment & Scripts -All scripts support `::devnet` and `::testnet` suffixes for remote network targeting: +All scripts support `::testnet` suffixes for remote network targeting: ```bash yarn deploy # Deploy contract to local network -yarn deploy::devnet # Deploy contract to devnet yarn deploy::testnet # Deploy contract to testnet yarn deploy-account # Deploy a Schnorr account yarn multiple-wallet # Deploy from one wallet, interact from another yarn profile # Profile a transaction deployment yarn read-logs # Demo utility function for client-side debug logging -yarn read-logs::devnet # Same on devnet yarn read-logs::testnet # Same on testnet ``` ## Environment Configuration -- `AZTEC_ENV` variable selects config: `local-network` (default), `devnet`, or `testnet` -- Config files: `config/local-network.json`, `config/devnet.json`, `config/testnet.json` +- `AZTEC_ENV` variable selects config: `local-network` (default) or `testnet` +- Config files: `config/local-network.json`, `config/testnet.json` - `config/config.ts` — singleton `ConfigManager` loads the appropriate JSON based on `AZTEC_ENV` - `.env` stores secrets (SECRET, SIGNING_KEY, SALT, contract keys) — never commit ## Branch Model -- **`next` branch** — default branch; used for local network and devnet development +- **`next` branch** — default branch; used for local network development - **`testnet` branch** — used for testnet development; may run a different Aztec version -Devnet PRs target `next`. Testnet PRs target `testnet`. Each branch pins its own Aztec version independently. +PRs target `next`. Testnet PRs target `testnet`. Each branch pins its own Aztec version independently. ## Project Structure @@ -98,7 +96,7 @@ Devnet PRs target `next`. Testnet PRs target `testnet`. Each branch pins its own **TypeScript utilities:** -- `src/utils/setup_wallet.ts` — creates `EmbeddedWallet` with environment-aware config (prover enabled on devnet) +- `src/utils/setup_wallet.ts` — creates `EmbeddedWallet` with environment-aware config - `src/utils/create_account_from_env.ts` — Schnorr account from env vars - `src/utils/deploy_account.ts` — account deployment with sponsored fees - `src/utils/sponsored_fpc.ts` — SponsoredFPC (Fee Payment Contract) setup @@ -113,7 +111,7 @@ Devnet PRs target `next`. Testnet PRs target `testnet`. Each branch pins its own - **ESM project**: `"type": "module"` in package.json. All TS scripts run via `node --loader ts-node/esm`. - **Private-public interaction**: `play_round` is private (creates `GameRoundNote` notes), then enqueues a public call (`validate_and_play_round`) to update round counters. `finish_game` reads private notes, sums them, and enqueues a public call to reveal totals. - **Fee payment**: All transactions use `SponsoredFeePaymentMethod` via the SponsoredFPC contract. -- **Wallet setup**: `EmbeddedWallet.create()` with `ephemeral: true` for tests; prover is enabled only on devnet. +- **Wallet setup**: `EmbeddedWallet.create()` with `ephemeral: true` for tests. - **PXE store**: Data persists in `./store`. Must delete after local network restart to avoid stale state errors. ## Simulate Before Send (IMPORTANT) @@ -152,7 +150,7 @@ When updating the Aztec version, update all of these locations: 1. `Nargo.toml` — `aztec` dependency tag 2. `package.json` — all `@aztec/*` dependency versions -3. `config/local-network.json`, `config/devnet.json`, and/or `config/testnet.json` — `settings.version` (update the configs relevant to the branch you're on) +3. `config/local-network.json` and/or `config/testnet.json` — `settings.version` (update the configs relevant to the branch you're on) 4. `README.md` — install command version > **Note:** The `next` and `testnet` branches may pin different Aztec versions. Only update the config files relevant to the branch. diff --git a/Nargo.toml b/Nargo.toml index 17a7b4b..1de7d4c 100644 --- a/Nargo.toml +++ b/Nargo.toml @@ -5,4 +5,4 @@ authors = [ "" ] compiler_version = ">=0.18.0" [dependencies] -aztec = { git = "https://github.com/AztecProtocol/aztec-nr/", tag = "v4.1.0", directory = "aztec" } +aztec = { git = "https://github.com/AztecProtocol/aztec-nr/", tag = "v4.2.0-aztecnr-rc.2", directory = "aztec" } diff --git a/ONBOARDING.md b/ONBOARDING.md index 2b202a9..72a3aa7 100644 --- a/ONBOARDING.md +++ b/ONBOARDING.md @@ -1,6 +1,6 @@ # Onboarding: From Ethereum to Aztec -This guide takes you from "reading code in a browser" to "deploying on devnet" — progressively, with no install required until Phase 3. +This guide takes you from "reading code in a browser" to "deploying contracts" — progressively, with no install required until Phase 3. **What you'll learn:** How Aztec contracts work by studying a Pod Racing game — a two-player competitive game that uses private state to implement commit-reveal in a single transaction. @@ -9,7 +9,7 @@ This guide takes you from "reading code in a browser" to "deploying on devnet" * **Phases 1-2** need only a browser (read code, compile in a Codespace) * **Phases 3-6** need local tools (deploy, interact, extend, advanced topics) -**Aztec version pinned in this repo:** `4.1.0` (check `Nargo.toml` and `package.json` for source of truth) +**Aztec version pinned in this repo:** `4.2.0-aztecnr-rc.2` (check `Nargo.toml` and `package.json` for source of truth) **Links:** @@ -101,7 +101,7 @@ struct Storage { } ``` -Source code: /src/main.nr#Lstorage +Source code: /src/main.nr#Lstorage **What is `Context`?** You'll notice `Context` appears as a generic parameter throughout the storage definition. In Aztec, the context is the execution environment passed to every function — it's how your contract accesses blockchain state like `context.msg_sender()` (the caller's address) and `context.block_number()`. Think of it as an expanded version of Solidity's global variables (`msg.sender`, `block.number`, etc.), but packaged as an object. The `` generic on storage types lets the same storage struct work in both public and private execution contexts. You don't need to construct it yourself — the framework provides `self.context` automatically in every contract function. @@ -149,7 +149,7 @@ fn constructor(admin: AztecAddress) { } ``` -Source code: /src/main.nr#Lconstructor +Source code: /src/main.nr#Lconstructor Sets the admin address. The `#[initializer]` macro means this runs once at deployment, like a Solidity constructor. @@ -180,7 +180,7 @@ fn create_game(game_id: Field) { } ``` -Source code: /src/main.nr#Lcreate-game +Source code: /src/main.nr#Lcreate-game Creates a new game. Checks the game ID isn't taken (player1 must be zero address), then writes a new `Race` struct with the caller as player1 and an expiration time. @@ -202,7 +202,7 @@ fn join_game(game_id: Field) { } ``` -Source code: /src/main.nr#Ljoin-game +Source code: /src/main.nr#Ljoin-game A second player joins. The `Race::join()` method validates that player1 exists, the player2 slot is empty, and the joiner isn't player1. @@ -236,7 +236,7 @@ fn finalize_game(game_id: Field) { } ``` -Source code: /src/main.nr#Lfinalize-game +Source code: /src/main.nr#Lfinalize-game After both players have revealed, this compares track scores, determines the winner, and updates the leaderboard. @@ -336,15 +336,11 @@ fn play_round( // Enqueue a public function call to update the round counter // This reveals that a round was played, but not the point allocation - self.enqueue_self.validate_and_play_round( - player, - game_id, - round, - ); + self.enqueue_self.validate_and_play_round(player, game_id, round); } ``` -Source code: /src/main.nr#Lplay-round +Source code: /src/main.nr#Lplay-round Three things happen here that have no direct Ethereum equivalent: @@ -406,7 +402,7 @@ fn finish_game(game_id: Field) { } ``` -Source code: /src/main.nr#Lfinish-game +Source code: /src/main.nr#Lfinish-game This is the "reveal" phase: @@ -526,7 +522,7 @@ The `.devcontainer/` configures: * **Base image:** Ubuntu 24.04 with Node.js v22.15.0 * **Docker-in-Docker** for running the Aztec local network -* **Aztec CLI** installed via `curl -fsSL "https://install.aztec.network/4.1.0" | VERSION="4.1.0" bash -s` +* **Aztec CLI** installed via `curl -fsSL "https://install.aztec.network/4.2.0-aztecnr-rc.2" | VERSION="4.2.0-aztecnr-rc.2" bash -s` * **VS Code extension:** `noir-lang.vscode-noir` for Noir syntax highlighting * **Dependencies:** `yarn install` runs automatically @@ -737,7 +733,7 @@ pub unconstrained fn setup() -> (TestEnvironment, AztecAddress, AztecAddress) { **Aztec toolkit:** ```bash -export VERSION=4.1.0 +export VERSION=4.2.0-aztecnr-rc.2 curl -fsSL "https://install.aztec.network/${VERSION}" | VERSION="${VERSION}" bash -s ``` @@ -801,25 +797,11 @@ private constructor() { } ``` -**`config/devnet.json`:** - -```json -{ - "name": "devnet", - "environment": "devnet", - "network": { - "nodeUrl": "https://next.devnet.aztec-labs.com", - "l1RpcUrl": "https://ethereum-sepolia-rpc.publicnode.com", - "l1ChainId": 11155111 - } -} -``` - Key exports from `config/config.ts`: * `getAztecNodeUrl()` — returns the node URL for the current environment -* `getTimeouts()` — returns environment-specific timeout values (local: 60s tx, devnet: 180s tx) -* `getEnv()` — returns the environment name (`"local-network"` or `"devnet"`) +* `getTimeouts()` — returns environment-specific timeout values +* `getEnv()` — returns the environment name (e.g. `"local-network"`) *** @@ -849,7 +831,7 @@ export async function getSponsoredFPCInstance(): PromiseSource code: /src/utils/sponsored_fpc.ts#Lget-sponsored-fpc +Source code: /src/utils/sponsored_fpc.ts#Lget-sponsored-fpc **Run it:** @@ -880,12 +862,12 @@ const deployRequest = PodRacingContract.deploy(wallet, address); await deployRequest.simulate({ from: address, }); -const { receipt } = await deployRequest.send({ +const { contract: podRacingContract, receipt: deployReceipt } = await deployRequest.send({ from: address, fee: { paymentMethod: sponsoredPaymentMethod }, - wait: { timeout: timeouts.deployTimeout, returnReceipt: true } + wait: { timeout: timeouts.deployTimeout } }); -const podRacingContract = receipt.contract; +const instance = deployReceipt.instance; ``` Source code: /scripts/deploy_contract.ts#Ldeploy-contract @@ -1018,7 +1000,7 @@ yarn test:js ## Phase 6: Advanced Topics -**Goal:** Explore multi-wallet patterns, fee strategies, devnet, and profiling. +**Goal:** Explore multi-wallet patterns, fee strategies, and profiling. ### 6.1 — Multiple Wallets / Multiple PXEs @@ -1033,7 +1015,7 @@ const wallet1 = await EmbeddedWallet.create(node, walletOpts); const wallet2 = await EmbeddedWallet.create(node, walletOpts); ``` -Source code: /scripts/multiple_wallet.ts#Lmultiple-wallets +Source code: /scripts/multiple_wallet.ts#Lmultiple-wallets It then deploys a Token contract from wallet1, creates an account on wallet2, mints tokens to wallet2's account, registers the token contract on wallet2, and reads balances. @@ -1059,20 +1041,7 @@ yarn multiple-wallet yarn fees ``` -### 6.3 — Deploying to Devnet - -All scripts support a `::devnet` suffix: - -```bash -yarn deploy::devnet -yarn deploy-account::devnet -yarn interaction-existing-contract::devnet -yarn test::devnet -``` - -Devnet uses real provers and connects to the Aztec devnet at `https://next.devnet.aztec-labs.com` with Sepolia as the L1. Timeouts are longer (deploy: 20 min, tx: 3 min) to account for real proving time. - -### 6.4 — Transaction Profiling +### 6.3 — Transaction Profiling **`scripts/profile_deploy.ts`** shows how to profile a transaction: @@ -1089,7 +1058,7 @@ The `.profile()` method runs the transaction through the prover and returns deta yarn profile ``` -### 6.5 — Querying Blocks +### 6.4 — Querying Blocks **`scripts/get_block.ts`** shows how to query the Aztec node directly: @@ -1138,7 +1107,6 @@ yarn get-block | `scripts/get_block.ts` | Block querying | | `config/config.ts` | Config manager (loads JSON by env) | | `config/local-network.json` | Local network configuration | -| `config/devnet.json` | Devnet configuration | | `Nargo.toml` | Noir project manifest | | `.devcontainer/devcontainer.json` | GitHub Codespace configuration | | `.devcontainer/Dockerfile` | Codespace Docker image | @@ -1163,8 +1131,6 @@ yarn get-block | `yarn get-block` | Query block data | | `yarn clean` | Delete `./src/artifacts` and `./target` | | `yarn clear-store` | Delete `./store` (PXE data) | -| `yarn deploy::devnet` | Deploy to devnet | -| `yarn test::devnet` | Run E2E tests on devnet | ### C. Troubleshooting @@ -1172,7 +1138,6 @@ yarn get-block | -------------------------------------------------------- | ------------------------------------------------------------------------ | | "Store" or PXE errors after restarting the local network | Delete `./store`: `rm -rf ./store` | | Compilation errors after updating dependencies | Run `yarn compile` again | -| Timeout errors on devnet | Check timeout values in `config/devnet.json` (deploy: 20 min, tx: 3 min) | | "Contract not registered" error | Call `wallet.registerContract(instance, artifact)` before interacting | | Account not found | Ensure `.env` has correct `SECRET`, `SIGNING_KEY`, and `SALT` values | | Local network not starting | Ensure Docker is running and the correct Aztec version is installed | diff --git a/README.md b/README.md index 1566f0a..5763657 100644 --- a/README.md +++ b/README.md @@ -10,22 +10,21 @@ This repo is meant to be a starting point for learning to write Aztec contracts and tests on the Aztec local network (local development environment). It includes an example contract, useful commands in `package.json` and helpful scripts in `./scripts`. -**New to Aztec? Start with the [Onboarding Guide](./ONBOARDING.md)** — a progressive walkthrough that takes Ethereum developers from reading code to deploying on devnet. +**New to Aztec? Start with the [Onboarding Guide](./ONBOARDING.md)** — a progressive walkthrough that takes Ethereum developers from reading code to deploying contracts. You can find the **Pod Racing Game contract** in `./src/main.nr`. A simple integration test is in `./src/test/e2e/index.test.ts`. The Pod Racing contract is a two-player competitive game where players allocate points across 5 tracks over multiple rounds. The game demonstrates Aztec's private state capabilities - round choices remain private until players reveal their final scores. -## Devnet & Testnet +## Testnet -This repo connects to a locally running Aztec local network by default, but can be configured to connect to remote networks: +This repo connects to a locally running Aztec local network by default, but can be configured to connect to testnet: -- **Devnet**: `AZTEC_ENV=devnet` — development network on the `next` branch - **Testnet**: `AZTEC_ENV=testnet` — test network on the `testnet` branch -Set the variable in a `.env` file or prefix a command, e.g. `AZTEC_ENV=devnet yarn deploy`. +Set the variable in a `.env` file or prefix a command, e.g. `AZTEC_ENV=testnet yarn deploy`. -> **Branch model:** Devnet code lives on the `next` branch. Testnet code lives on the `testnet` branch. Each branch may run a different Aztec version. +> **Branch model:** Local development code lives on the `next` branch. Testnet code lives on the `testnet` branch. Each branch may run a different Aztec version.
@@ -50,7 +49,7 @@ Use **Node.js version 22.15.0**. Install the **Aztec toolkit** (local network, CLI, and other tooling) at the correct version: ```bash -export VERSION=4.1.0 +export VERSION=4.2.0-aztecnr-rc.2 curl -fsSL "https://install.aztec.network/${VERSION}" | VERSION="${VERSION}" bash -s ``` @@ -61,7 +60,6 @@ Then install project dependencies: This project uses JSON configuration files to manage environment-specific settings: - `config/local-network.json` - Configuration for local network development -- `config/devnet.json` - Configuration for devnet deployment - `config/testnet.json` - Configuration for testnet deployment The system automatically loads the appropriate configuration file based on the `AZTEC_ENV` environment variable. If `AZTEC_ENV` is not set, it defaults to `local-network`. @@ -84,22 +82,9 @@ yarn deploy # Deploy to local network yarn test # Run tests on local network ``` -### Running on Devnet - -All scripts support a `::devnet` suffix to automatically use devnet configuration: - -```bash -yarn deploy::devnet # Deploy to devnet -yarn test::devnet # Run tests on devnet -yarn deploy-account::devnet # Deploy account to devnet -yarn interaction-existing-contract::devnet # Interact with devnet contracts -``` - -The `::devnet` suffix automatically sets `AZTEC_ENV=devnet`, loading configuration from `config/devnet.json`. - ### Running on Testnet -Similarly, all scripts support a `::testnet` suffix: +All scripts support a `::testnet` suffix: ```bash yarn deploy::testnet # Deploy to testnet @@ -110,7 +95,7 @@ yarn interaction-existing-contract::testnet # Interact with testnet contracts The `::testnet` suffix sets `AZTEC_ENV=testnet`, loading configuration from `config/testnet.json`. -> **Note:** Testnet code should be developed and merged into the `testnet` branch, not `next`. The `testnet` branch may use a different Aztec version than the `next` (devnet) branch. +> **Note:** Testnet code should be developed and merged into the `testnet` branch, not `next`. The `testnet` branch may use a different Aztec version than the `next` branch. --- diff --git a/config/config.ts b/config/config.ts index 3bb110d..7ebd206 100644 --- a/config/config.ts +++ b/config/config.ts @@ -19,7 +19,7 @@ export interface TimeoutConfig { export interface EnvironmentConfig { name: string; - environment: 'local' | 'testnet' | 'devnet' | 'mainnet'; + environment: 'local' | 'testnet' | 'mainnet'; network: NetworkConfig; settings: { skipLocalNetwork: boolean; @@ -67,18 +67,10 @@ export class ConfigManager { return this.config.network; } - public isDevnet(): boolean { - return this.config.environment === 'devnet'; - } - public isTestnet(): boolean { return this.config.environment === 'testnet'; } - public isRemoteNetwork(): boolean { - return this.isDevnet() || this.isTestnet(); - } - public isLocalNetwork(): boolean { return this.config.environment === 'local'; } @@ -100,15 +92,7 @@ export class ConfigManager { return this.config.timeouts; } - // Otherwise, use defaults based on environment - if (this.isRemoteNetwork()) { - return { - deployTimeout: 1200000, // 20 minutes - txTimeout: 180000, // 3 minutes - waitTimeout: 60000 // 1 minute - }; - } - + // Otherwise, use defaults return { deployTimeout: 120000, // 2 minutes txTimeout: 60000, // 1 minute diff --git a/config/devnet.json b/config/devnet.json deleted file mode 100644 index 0ca16e7..0000000 --- a/config/devnet.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "devnet", - "environment": "devnet", - "network": { - "nodeUrl": "https://v4-devnet-2.aztec-labs.com", - "l1RpcUrl": "https://ethereum-sepolia-rpc.publicnode.com", - "l1ChainId": 11155111 - }, - "settings": { - "skipLocalNetwork": true, - "version": "4.0.0-devnet.2-patch.1" - }, - "timeouts": { - "deployTimeout": 1200000, - "txTimeout": 180000, - "waitTimeout": 60000 - } -} diff --git a/config/local-network.json b/config/local-network.json index fd812ac..028767a 100644 --- a/config/local-network.json +++ b/config/local-network.json @@ -8,7 +8,7 @@ }, "settings": { "skipLocalNetwork": false, - "version": "4.1.0" + "version": "4.2.0-aztecnr-rc.2" }, "timeouts": { "deployTimeout": 120000, diff --git a/config/testnet.json b/config/testnet.json index 0d80561..3e45a28 100644 --- a/config/testnet.json +++ b/config/testnet.json @@ -8,7 +8,7 @@ }, "settings": { "skipLocalNetwork": true, - "version": "4.1.0" + "version": "4.2.0-aztecnr-rc.2" }, "timeouts": { "deployTimeout": 1200000, diff --git a/docs/ONBOARDING.src.md b/docs/ONBOARDING.src.md index 69c7fcc..47abd7c 100644 --- a/docs/ONBOARDING.src.md +++ b/docs/ONBOARDING.src.md @@ -1,6 +1,6 @@ # Onboarding: From Ethereum to Aztec -This guide takes you from "reading code in a browser" to "deploying on devnet" — progressively, with no install required until Phase 3. +This guide takes you from "reading code in a browser" to "deploying contracts" — progressively, with no install required until Phase 3. **What you'll learn:** How Aztec contracts work by studying a Pod Racing game — a two-player competitive game that uses private state to implement commit-reveal in a single transaction. @@ -9,7 +9,7 @@ This guide takes you from "reading code in a browser" to "deploying on devnet" - **Phases 1-2** need only a browser (read code, compile in a Codespace) - **Phases 3-6** need local tools (deploy, interact, extend, advanced topics) -**Aztec version pinned in this repo:** `4.1.0` (check `Nargo.toml` and `package.json` for source of truth) +**Aztec version pinned in this repo:** `4.2.0-aztecnr-rc.2` (check `Nargo.toml` and `package.json` for source of truth) **Links:** @@ -262,7 +262,7 @@ The `.devcontainer/` configures: - **Base image:** Ubuntu 24.04 with Node.js v22.15.0 - **Docker-in-Docker** for running the Aztec local network -- **Aztec CLI** installed via `curl -fsSL "https://install.aztec.network/4.1.0" | VERSION="4.1.0" bash -s` +- **Aztec CLI** installed via `curl -fsSL "https://install.aztec.network/4.2.0-aztecnr-rc.2" | VERSION="4.2.0-aztecnr-rc.2" bash -s` - **VS Code extension:** `noir-lang.vscode-noir` for Noir syntax highlighting - **Dependencies:** `yarn install` runs automatically @@ -357,7 +357,7 @@ And higher-level helpers: **Aztec toolkit:** ```bash -export VERSION=4.1.0 +export VERSION=4.2.0-aztecnr-rc.2 curl -fsSL "https://install.aztec.network/${VERSION}" | VERSION="${VERSION}" bash -s ``` @@ -412,25 +412,11 @@ The project uses JSON config files selected by the `AZTEC_ENV` environment varia } ``` -**`config/devnet.json`:** - -```json -{ - "name": "devnet", - "environment": "devnet", - "network": { - "nodeUrl": "https://next.devnet.aztec-labs.com", - "l1RpcUrl": "https://ethereum-sepolia-rpc.publicnode.com", - "l1ChainId": 11155111 - } -} -``` - Key exports from `config/config.ts`: - `getAztecNodeUrl()` — returns the node URL for the current environment -- `getTimeouts()` — returns environment-specific timeout values (local: 60s tx, devnet: 180s tx) -- `getEnv()` — returns the environment name (`"local-network"` or `"devnet"`) +- `getTimeouts()` — returns environment-specific timeout values +- `getEnv()` — returns the environment name (e.g. `"local-network"`) --- @@ -586,7 +572,7 @@ yarn test:js ## Phase 6: Advanced Topics -**Goal:** Explore multi-wallet patterns, fee strategies, devnet, and profiling. +**Goal:** Explore multi-wallet patterns, fee strategies, and profiling. ### 6.1 — Multiple Wallets / Multiple PXEs @@ -622,20 +608,7 @@ yarn multiple-wallet yarn fees ``` -### 6.3 — Deploying to Devnet - -All scripts support a `::devnet` suffix: - -```bash -yarn deploy::devnet -yarn deploy-account::devnet -yarn interaction-existing-contract::devnet -yarn test::devnet -``` - -Devnet uses real provers and connects to the Aztec devnet at `https://next.devnet.aztec-labs.com` with Sepolia as the L1. Timeouts are longer (deploy: 20 min, tx: 3 min) to account for real proving time. - -### 6.4 — Transaction Profiling +### 6.3 — Transaction Profiling **`scripts/profile_deploy.ts`** shows how to profile a transaction: @@ -647,7 +620,7 @@ The `.profile()` method runs the transaction through the prover and returns deta yarn profile ``` -### 6.5 — Querying Blocks +### 6.4 — Querying Blocks **`scripts/get_block.ts`** shows how to query the Aztec node directly: @@ -689,7 +662,6 @@ yarn get-block | `scripts/get_block.ts` | Block querying | | `config/config.ts` | Config manager (loads JSON by env) | | `config/local-network.json` | Local network configuration | -| `config/devnet.json` | Devnet configuration | | `Nargo.toml` | Noir project manifest | | `.devcontainer/devcontainer.json` | GitHub Codespace configuration | | `.devcontainer/Dockerfile` | Codespace Docker image | @@ -714,8 +686,6 @@ yarn get-block | `yarn get-block` | Query block data | | `yarn clean` | Delete `./src/artifacts` and `./target` | | `yarn clear-store` | Delete `./store` (PXE data) | -| `yarn deploy::devnet` | Deploy to devnet | -| `yarn test::devnet` | Run E2E tests on devnet | ### C. Troubleshooting @@ -723,7 +693,6 @@ yarn get-block | -------------------------------------------------------- | ------------------------------------------------------------------------ | | "Store" or PXE errors after restarting the local network | Delete `./store`: `rm -rf ./store` | | Compilation errors after updating dependencies | Run `yarn compile` again | -| Timeout errors on devnet | Check timeout values in `config/devnet.json` (deploy: 20 min, tx: 3 min) | | "Contract not registered" error | Call `wallet.registerContract(instance, artifact)` before interacting | | Account not found | Ensure `.env` has correct `SECRET`, `SIGNING_KEY`, and `SALT` values | | Local network not starting | Ensure Docker is running and the correct Aztec version is installed | diff --git a/package.json b/package.json index 1a7bbab..828424e 100644 --- a/package.json +++ b/package.json @@ -9,52 +9,35 @@ "type": "module", "scripts": { "fees": "NODE_NO_WARNINGS=1 node --loader ts-node/esm scripts/fees.ts", - "fees::devnet": "NODE_NO_WARNINGS=1 AZTEC_ENV=devnet node --loader ts-node/esm scripts/fees.ts", - "fees::testnet": "NODE_NO_WARNINGS=1 AZTEC_ENV=testnet node --loader ts-node/esm scripts/fees.ts", "clean": "rm -rf ./src/artifacts ./target ./codegenCache.json", "clear-store": "rm -rf ./store", "codegen": "aztec codegen target --outdir src/artifacts", "compile": "aztec compile", "deploy": "NODE_NO_WARNINGS=1 node --loader ts-node/esm scripts/deploy_contract.ts", - "deploy::devnet": "NODE_NO_WARNINGS=1 AZTEC_ENV=devnet node --loader ts-node/esm scripts/deploy_contract.ts", - "deploy::testnet": "NODE_NO_WARNINGS=1 AZTEC_ENV=testnet node --loader ts-node/esm scripts/deploy_contract.ts", "deploy-account": "NODE_NO_WARNINGS=1 node --loader ts-node/esm scripts/deploy_account.ts", - "deploy-account::devnet": "NODE_NO_WARNINGS=1 AZTEC_ENV=devnet node --loader ts-node/esm scripts/deploy_account.ts", "deploy-account::testnet": "NODE_NO_WARNINGS=1 AZTEC_ENV=testnet node --loader ts-node/esm scripts/deploy_account.ts", "interaction-existing-contract": "NODE_NO_WARNINGS=1 node --loader ts-node/esm scripts/interaction_existing_contract.ts", - "interaction-existing-contract::devnet": "NODE_NO_WARNINGS=1 AZTEC_ENV=devnet node --loader ts-node/esm scripts/interaction_existing_contract.ts", - "interaction-existing-contract::testnet": "NODE_NO_WARNINGS=1 AZTEC_ENV=testnet node --loader ts-node/esm scripts/interaction_existing_contract.ts", "multiple-wallet": "NODE_NO_WARNINGS=1 node --loader ts-node/esm scripts/multiple_wallet.ts", - "multiple-wallet::devnet": "NODE_NO_WARNINGS=1 AZTEC_ENV=devnet node --loader ts-node/esm scripts/multiple_wallet.ts", - "multiple-wallet::testnet": "NODE_NO_WARNINGS=1 AZTEC_ENV=testnet node --loader ts-node/esm scripts/multiple_wallet.ts", "get-block": "NODE_NO_WARNINGS=1 node --loader ts-node/esm scripts/get_block.ts", - "get-block::devnet": "NODE_NO_WARNINGS=1 AZTEC_ENV=devnet node --loader ts-node/esm scripts/get_block.ts", - "get-block::testnet": "NODE_NO_WARNINGS=1 AZTEC_ENV=testnet node --loader ts-node/esm scripts/get_block.ts", "profile": "NODE_NO_WARNINGS=1 node --loader ts-node/esm scripts/profile_deploy.ts", - "profile::devnet": "NODE_NO_WARNINGS=1 AZTEC_ENV=devnet node --loader ts-node/esm scripts/profile_deploy.ts", - "profile::testnet": "NODE_NO_WARNINGS=1 AZTEC_ENV=testnet node --loader ts-node/esm scripts/profile_deploy.ts", "read-logs": "NODE_NO_WARNINGS=1 LOG_LEVEL='info; debug:contract_log' node --loader ts-node/esm scripts/read_debug_logs.ts", - "read-logs::devnet": "NODE_NO_WARNINGS=1 LOG_LEVEL='info; debug:contract_log' AZTEC_ENV=devnet node --loader ts-node/esm scripts/read_debug_logs.ts", - "read-logs::testnet": "NODE_NO_WARNINGS=1 LOG_LEVEL='info; debug:contract_log' AZTEC_ENV=testnet node --loader ts-node/esm scripts/read_debug_logs.ts", "test": "yarn test:js && yarn test:nr", - "test::devnet": "AZTEC_ENV=devnet yarn test:js", - "test::testnet": "AZTEC_ENV=testnet yarn test:js", "test:js": "rm -rf store/pxe && NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --runInBand --config jest.integration.config.json", "test:nr": "aztec test", "docs:build": "remark docs/ONBOARDING.src.md -o ONBOARDING.md", "update-readme-version": "node ./.github/scripts/update-readme-version.js" }, "dependencies": { - "@aztec/accounts": "4.1.0", - "@aztec/aztec.js": "4.1.0", - "@aztec/constants": "4.1.0", - "@aztec/entrypoints": "4.1.0", - "@aztec/noir-contracts.js": "4.1.0", - "@aztec/protocol-contracts": "4.1.0", - "@aztec/pxe": "4.1.0", - "@aztec/stdlib": "4.1.0", - "@aztec/wallet-sdk": "4.1.0", - "@aztec/wallets": "4.1.0", + "@aztec/accounts": "4.2.0-aztecnr-rc.2", + "@aztec/aztec.js": "4.2.0-aztecnr-rc.2", + "@aztec/constants": "4.2.0-aztecnr-rc.2", + "@aztec/entrypoints": "4.2.0-aztecnr-rc.2", + "@aztec/noir-contracts.js": "4.2.0-aztecnr-rc.2", + "@aztec/protocol-contracts": "4.2.0-aztecnr-rc.2", + "@aztec/pxe": "4.2.0-aztecnr-rc.2", + "@aztec/stdlib": "4.2.0-aztecnr-rc.2", + "@aztec/wallet-sdk": "4.2.0-aztecnr-rc.2", + "@aztec/wallets": "4.2.0-aztecnr-rc.2", "dotenv": "^17.2.2" }, "devDependencies": { diff --git a/scripts/deploy_contract.ts b/scripts/deploy_contract.ts index a00526a..b3683aa 100644 --- a/scripts/deploy_contract.ts +++ b/scripts/deploy_contract.ts @@ -46,14 +46,13 @@ async function main() { await deployRequest.simulate({ from: address, }); - const { receipt } = await deployRequest.send({ + const { contract: podRacingContract, receipt: deployReceipt } = await deployRequest.send({ from: address, fee: { paymentMethod: sponsoredPaymentMethod }, - wait: { timeout: timeouts.deployTimeout, returnReceipt: true } + wait: { timeout: timeouts.deployTimeout } }); - const podRacingContract = receipt.contract; + const instance = deployReceipt.instance; // docs:end:deploy-contract - const instance = receipt.instance; logger.info(`🎉 Pod Racing Contract deployed successfully!`); logger.info(`📍 Contract address: ${podRacingContract.address}`); diff --git a/scripts/fees.ts b/scripts/fees.ts index 69cf90d..bd86629 100644 --- a/scripts/fees.ts +++ b/scripts/fees.ts @@ -22,6 +22,7 @@ import { SponsoredFPCContractArtifact } from '@aztec/noir-contracts.js/Sponsored import { getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice'; import { createAztecNodeClient } from '@aztec/aztec.js/node'; import { AztecAddress } from '@aztec/aztec.js/addresses'; +import { NO_FROM } from '@aztec/aztec.js/account'; import { getAztecNodeUrl, getTimeouts } from '../config/config.js'; import { GasSettings } from '@aztec/stdlib/gas'; @@ -92,7 +93,7 @@ async function main() { const claimAndPay = new FeeJuicePaymentMethodWithClaim(account2.address, claim); const deployMethod = await account2.getDeployMethod(); - await deployMethod.send({ from: AztecAddress.ZERO, fee: { paymentMethod: claimAndPay }, wait: { timeout: timeouts.deployTimeout } }); + await deployMethod.send({ from: NO_FROM, fee: { paymentMethod: claimAndPay }, wait: { timeout: timeouts.deployTimeout } }); logger.info(`New account at ${account2.address} deployed using claimed funds for fees.`) // Pay fees yourself @@ -135,11 +136,11 @@ async function main() { fee: { paymentMethod }, wait: { timeout: timeouts.txTimeout } }); - const bananaBalanceResult = await bananaCoin.methods.balance_of_private(account2.address).simulate({ + const { result: bananaBalance } = await bananaCoin.methods.balance_of_private(account2.address).simulate({ from: account2.address }); - logger.info(`BananaCoin balance of newWallet is ${bananaBalanceResult.result ?? bananaBalanceResult}`) + logger.info(`BananaCoin balance of newWallet is ${bananaBalance}`) const feeJuiceInstance = await getCanonicalFeeJuice(); await wallet.registerContract(feeJuiceInstance.instance, FeeJuiceContract.artifact); @@ -147,10 +148,9 @@ async function main() { await feeJuice.methods.claim(fpc.address, fpcClaim.claimAmount, fpcClaim.claimSecret, fpcClaim.messageLeafIndex).send({ from: account2.address, wait: { timeout: timeouts.txTimeout } }); - const fpcBalance = await feeJuice.methods.balance_of_public(fpc.address).simulate({ + logger.info(`Fpc fee juice balance ${(await feeJuice.methods.balance_of_public(fpc.address).simulate({ from: account2.address - }); - logger.info(`Fpc fee juice balance ${fpcBalance.result ?? fpcBalance}`); + })).result}`); const maxFeesPerGas = (await node.getCurrentMinFees()).mul(1.5); const gasSettings = GasSettings.default({ maxFeesPerGas }); diff --git a/scripts/interaction_existing_contract.ts b/scripts/interaction_existing_contract.ts index b7ba3e9..e09b9c3 100644 --- a/scripts/interaction_existing_contract.ts +++ b/scripts/interaction_existing_contract.ts @@ -8,7 +8,7 @@ import { setupWallet } from "../src/utils/setup_wallet.js"; import { getSponsoredFPCInstance } from "../src/utils/sponsored_fpc.js"; import { getAccountFromEnv } from "../src/utils/create_account_from_env.js"; import { getTimeouts } from "../config/config.js"; -import { getContractInstanceFromInstantiationParams } from "@aztec/stdlib/contract"; +import { getContractInstanceFromInstantiationParams } from "@aztec/aztec.js/contracts"; async function main() { let logger: Logger; diff --git a/scripts/multiple_wallet.ts b/scripts/multiple_wallet.ts index a432c37..b56a202 100644 --- a/scripts/multiple_wallet.ts +++ b/scripts/multiple_wallet.ts @@ -1,23 +1,40 @@ import { Fr } from "@aztec/aztec.js/fields"; import { GrumpkinScalar } from "@aztec/foundation/curves/grumpkin"; +import { getContractInstanceFromInstantiationParams, type ContractInstanceWithAddress } from "@aztec/aztec.js/contracts"; import { AztecAddress } from "@aztec/aztec.js/addresses"; +import { NO_FROM } from "@aztec/aztec.js/account"; import { SponsoredFeePaymentMethod } from "@aztec/aztec.js/fee"; import { createAztecNodeClient } from "@aztec/aztec.js/node"; import { TokenContract } from "@aztec/noir-contracts.js/Token" import { getSponsoredFPCInstance } from "../src/utils/sponsored_fpc.js"; import { SponsoredFPCContractArtifact } from "@aztec/noir-contracts.js/SponsoredFPC"; -import configManager, { getAztecNodeUrl, getTimeouts } from "../config/config.js"; +import { getAztecNodeUrl, getTimeouts } from "../config/config.js"; import { EmbeddedWallet } from "@aztec/wallets/embedded"; const nodeUrl = getAztecNodeUrl(); const node = createAztecNodeClient(nodeUrl); const walletOpts = { ephemeral: true, - pxeConfig: { proverEnabled: configManager.isRemoteNetwork() }, }; const L2_TOKEN_CONTRACT_SALT = Fr.random(); +export async function getL2TokenContractInstance(deployerAddress: any, ownerAztecAddress: AztecAddress): Promise { + return await getContractInstanceFromInstantiationParams( + TokenContract.artifact, + { + salt: L2_TOKEN_CONTRACT_SALT, + deployer: deployerAddress, + constructorArgs: [ + ownerAztecAddress, + 'Clean USDC', + 'USDC', + 6 + ] + } + ) +} + async function main() { // docs:start:multiple-wallets const wallet1 = await EmbeddedWallet.create(node, walletOpts); @@ -36,19 +53,18 @@ async function main() { let salt = Fr.random(); let schnorrAccount = await wallet1.createSchnorrAccount(secretKey, salt, signingKey); const deployMethod = await schnorrAccount.getDeployMethod(); - await deployMethod.send({ from: AztecAddress.ZERO, fee: { paymentMethod }, wait: { timeout: timeouts.deployTimeout } }); + await deployMethod.send({ from: NO_FROM, fee: { paymentMethod }, wait: { timeout: timeouts.deployTimeout } }); let ownerAddress = schnorrAccount.address; // Simulate before sending to surface revert reasons const tokenDeploy = TokenContract.deploy(wallet1, ownerAddress, 'Clean USDC', 'USDC', 6); await tokenDeploy.simulate({ from: ownerAddress }); - const { receipt } = await tokenDeploy.send({ + const { contract: token } = await tokenDeploy.send({ from: ownerAddress, contractAddressSalt: L2_TOKEN_CONTRACT_SALT, fee: { paymentMethod }, - wait: { timeout: timeouts.deployTimeout, returnReceipt: true } + wait: { timeout: timeouts.deployTimeout } }); - const token = receipt.contract; // setup account on 2nd pxe @@ -61,7 +77,7 @@ async function main() { // deploy account on 2nd pxe const deployMethod2 = await schnorrAccount2.getDeployMethod(); - await deployMethod2.send({ from: AztecAddress.ZERO, fee: { paymentMethod }, wait: { timeout: timeouts.deployTimeout } }); + await deployMethod2.send({ from: NO_FROM, fee: { paymentMethod }, wait: { timeout: timeouts.deployTimeout } }); let wallet2Address = schnorrAccount2.address; await wallet2.registerSender(ownerAddress, '') @@ -69,11 +85,12 @@ async function main() { // Simulate before sending to surface revert reasons await token.methods.mint_to_private(schnorrAccount2.address, 100).simulate({ from: ownerAddress }); - await token.methods.mint_to_private(schnorrAccount2.address, 100).send({ + const { receipt: private_mint_tx } = await token.methods.mint_to_private(schnorrAccount2.address, 100).send({ from: ownerAddress, fee: { paymentMethod }, wait: { timeout: timeouts.txTimeout } }); + console.log(await node.getTxEffect(private_mint_tx.txHash)) await token.methods.mint_to_public(schnorrAccount2.address, 100).simulate({ from: ownerAddress }); await token.methods.mint_to_public(schnorrAccount2.address, 100).send({ @@ -96,15 +113,15 @@ async function main() { ) // Check balances - const balanceResult = await l2TokenContract.methods.balance_of_private(wallet2Address).simulate({ + const { result: balance } = await l2TokenContract.methods.balance_of_private(wallet2Address).simulate({ from: wallet2Address }) - console.log("private balance should be 100", balanceResult.result ?? balanceResult) + console.log("private balance should be 100", balance) - const publicBalanceResult = await l2TokenContract.methods.balance_of_public(wallet2Address).simulate({ + const { result: publicBalance } = await l2TokenContract.methods.balance_of_public(wallet2Address).simulate({ from: wallet2Address }) - console.log("public balance should be 100", publicBalanceResult.result ?? publicBalanceResult) + console.log("public balance should be 100", publicBalance) } diff --git a/scripts/read_debug_logs.ts b/scripts/read_debug_logs.ts index cb65ebd..b592336 100644 --- a/scripts/read_debug_logs.ts +++ b/scripts/read_debug_logs.ts @@ -14,7 +14,7 @@ import { PodRacingContract } from "../src/artifacts/PodRacing.js"; import { createLogger } from "@aztec/foundation/log"; import { SponsoredFeePaymentMethod } from "@aztec/aztec.js/fee"; import { SponsoredFPCContractArtifact } from "@aztec/noir-contracts.js/SponsoredFPC"; -import { AztecAddress } from "@aztec/aztec.js/addresses"; +import { NO_FROM } from "@aztec/aztec.js/account"; import { Fr } from "@aztec/aztec.js/fields"; import { GrumpkinScalar } from "@aztec/foundation/curves/grumpkin"; import { setupWallet } from "../src/utils/setup_wallet.js"; @@ -36,14 +36,14 @@ async function main() { // Create two player accounts const p1Account = await wallet.createSchnorrAccount(Fr.random(), Fr.random(), GrumpkinScalar.random()); await (await p1Account.getDeployMethod()).send({ - from: AztecAddress.ZERO, + from: NO_FROM, fee: { paymentMethod }, wait: { timeout: timeouts.deployTimeout }, }); const p2Account = await wallet.createSchnorrAccount(Fr.random(), Fr.random(), GrumpkinScalar.random()); await (await p2Account.getDeployMethod()).send({ - from: AztecAddress.ZERO, + from: NO_FROM, fee: { paymentMethod }, wait: { timeout: timeouts.deployTimeout }, }); diff --git a/src/main.nr b/src/main.nr index ef6477d..fa597ef 100644 --- a/src/main.nr +++ b/src/main.nr @@ -151,11 +151,7 @@ pub contract PodRacing { // Enqueue a public function call to update the round counter // This reveals that a round was played, but not the point allocation - self.enqueue_self.validate_and_play_round( - player, - game_id, - round, - ); + self.enqueue_self.validate_and_play_round(player, game_id, round); } // docs:end:play-round diff --git a/src/test/e2e/accounts.test.ts b/src/test/e2e/accounts.test.ts index 7e841dd..16f2293 100644 --- a/src/test/e2e/accounts.test.ts +++ b/src/test/e2e/accounts.test.ts @@ -12,8 +12,9 @@ import { EmbeddedWallet } from "@aztec/wallets/embedded"; import { type AztecNode, createAztecNodeClient } from "@aztec/aztec.js/node"; import { L1FeeJuicePortalManager, type L2AmountClaim } from "@aztec/aztec.js/ethereum"; import { AztecAddress } from "@aztec/aztec.js/addresses"; +import { NO_FROM } from "@aztec/aztec.js/account"; import { type Logger, createLogger } from "@aztec/foundation/log"; -import { type ContractInstanceWithAddress, getContractInstanceFromInstantiationParams } from "@aztec/stdlib/contract"; +import { type ContractInstanceWithAddress, getContractInstanceFromInstantiationParams } from "@aztec/aztec.js/contracts"; import { Fr } from "@aztec/aztec.js/fields"; import { GrumpkinScalar } from "@aztec/foundation/curves/grumpkin"; import { ContractDeployer } from "@aztec/aztec.js/deployment"; @@ -68,7 +69,7 @@ describe("Accounts", () => { let salt = Fr.random(); ownerAccount = await wallet.createSchnorrAccount(secretKey, salt, signingKey); await (await ownerAccount.getDeployMethod()).send({ - from: AztecAddress.ZERO, + from: NO_FROM, fee: { paymentMethod: sponsoredPaymentMethod }, wait: { timeout: getTimeouts().deployTimeout } }); @@ -90,17 +91,16 @@ describe("Accounts", () => { }) it("Creates accounts with fee juice", async () => { - if (getEnv() === 'devnet') return; + if (getEnv() !== 'local-network') return; console.log('Starting "Creates accounts with fee juice" test'); console.log(`Random addresses: ${randomAddresses.map(a => a.toString()).join(', ')}`); // balance of each random account is 0 before bridge console.log('Checking initial balances...'); - let balanceResults = await Promise.all(randomAddresses.map(async a => - await feeJuiceContract.methods.balance_of_public(a).simulate({ from: ownerAccount.address }) + let balances = await Promise.all(randomAddresses.map(async a => + (await feeJuiceContract.methods.balance_of_public(a).simulate({ from: ownerAccount.address })).result )); - let balances = balanceResults.map(b => typeof b === 'object' && b !== null && 'result' in b ? b.result : b); console.log(`Initial balances: ${balances.join(', ')}`); balances.forEach(b => expect(b).toBe(0n)); @@ -138,7 +138,7 @@ describe("Accounts", () => { for (let i = 0; i < randomAccountManagers.length; i++) { const paymentMethod = new FeeJuicePaymentMethodWithClaim(randomAddresses[i], claims[i]); await (await randomAccountManagers[i].getDeployMethod()).send({ - from: AztecAddress.ZERO, + from: NO_FROM, fee: { paymentMethod }, wait: { timeout: getTimeouts().deployTimeout } }); @@ -146,15 +146,15 @@ describe("Accounts", () => { }); it("Deploys first unfunded account from first funded account", async () => { - const receipt = await (await randomAccountManagers[0].getDeployMethod()) + const { receipt } = await (await randomAccountManagers[0].getDeployMethod()) .send({ - from: AztecAddress.ZERO, + from: NO_FROM, fee: { paymentMethod: sponsoredPaymentMethod }, wait: { timeout: getTimeouts().deployTimeout, returnReceipt: true } }); // Transaction succeeded if we got here - status could be PROPOSED, CHECKPOINTED, PROVEN, or FINALIZED - expect([TxStatus.PROPOSED, TxStatus.CHECKPOINTED, TxStatus.PROVEN, TxStatus.FINALIZED]).toContain(receipt.receipt.status); + expect([TxStatus.PROPOSED, TxStatus.CHECKPOINTED, TxStatus.PROVEN, TxStatus.FINALIZED]).toContain(receipt.status); const deployedAccount = await randomAccountManagers[0].getAccount(); expect(deployedAccount.getAddress()).toEqual(randomAccountManagers[0].address); @@ -178,7 +178,7 @@ describe("Accounts", () => { await Promise.all(accounts.map(async (a, i) => { logger.info(`Deploying account ${i}: ${a.address.toString()}`); return (await a.getDeployMethod()).send({ - from: AztecAddress.ZERO, + from: NO_FROM, fee: { paymentMethod: sponsoredPaymentMethod }, wait: { timeout: getTimeouts().deployTimeout } }); @@ -198,7 +198,7 @@ describe("Accounts", () => { deployer: deployerAccount.getAddress() }); const deployer = new ContractDeployer(PodRacingArtifact, wallet); - const receipt = await deployer.deploy(adminAddress).send({ + const { receipt } = await deployer.deploy(adminAddress).send({ from: deployerAddress, contractAddressSalt: salt, fee: { paymentMethod: sponsoredPaymentMethod }, @@ -209,8 +209,8 @@ describe("Accounts", () => { const metadata = await wallet.getContractMetadata(deploymentData.address); expect(metadata.instance).toBeTruthy(); // Transaction succeeded if we got here - status could be PROPOSED, CHECKPOINTED, PROVEN, or FINALIZED - expect([TxStatus.PROPOSED, TxStatus.CHECKPOINTED, TxStatus.PROVEN, TxStatus.FINALIZED]).toContain(receipt.receipt.status); - expect(receipt.receipt.contract.address).toEqual(deploymentData.address); + expect([TxStatus.PROPOSED, TxStatus.CHECKPOINTED, TxStatus.PROVEN, TxStatus.FINALIZED]).toContain(receipt.status); + expect(receipt.contract.address).toEqual(deploymentData.address); }) }); diff --git a/src/test/e2e/index.test.ts b/src/test/e2e/index.test.ts index 4ba8cfb..7f35400 100644 --- a/src/test/e2e/index.test.ts +++ b/src/test/e2e/index.test.ts @@ -8,8 +8,9 @@ import { setupWallet } from "../../utils/setup_wallet.js"; import { SponsoredFPCContractArtifact } from "@aztec/noir-contracts.js/SponsoredFPC"; import { getTimeouts } from "../../../config/config.js"; import { AztecAddress } from "@aztec/aztec.js/addresses"; +import { NO_FROM } from "@aztec/aztec.js/account"; import { type Logger, createLogger } from "@aztec/foundation/log"; -import { type ContractInstanceWithAddress } from "@aztec/stdlib/contract"; +import { type ContractInstanceWithAddress } from "@aztec/aztec.js/contracts"; import { Fr } from "@aztec/aztec.js/fields"; import { GrumpkinScalar } from "@aztec/foundation/curves/grumpkin"; import { TxStatus } from "@aztec/stdlib/tx"; @@ -54,7 +55,7 @@ async function playRound( strategy.track1, strategy.track2, strategy.track3, strategy.track4, strategy.track5 ).simulate({ from: playerAccount }); - return await contract.methods.play_round( + const { receipt } = await contract.methods.play_round( gameId, round, strategy.track1, @@ -67,6 +68,7 @@ async function playRound( fee: { paymentMethod: sponsoredPaymentMethod }, wait: { timeout } }); + return receipt; } // Helper to setup a game (create + join) @@ -119,7 +121,7 @@ describe("Pod Racing Game", () => { let salt1 = Fr.random(); player1Account = await wallet.createSchnorrAccount(secretKey1, salt1, signingKey1); await (await player1Account.getDeployMethod()).send({ - from: AztecAddress.ZERO, + from: NO_FROM, fee: { paymentMethod: sponsoredPaymentMethod }, wait: { timeout: getTimeouts().deployTimeout } }); @@ -129,7 +131,7 @@ describe("Pod Racing Game", () => { let salt2 = Fr.random(); player2Account = await wallet.createSchnorrAccount(secretKey2, salt2, signingKey2); await (await player2Account.getDeployMethod()).send({ - from: AztecAddress.ZERO, + from: NO_FROM, fee: { paymentMethod: sponsoredPaymentMethod }, wait: { timeout: getTimeouts().deployTimeout } }); @@ -141,12 +143,11 @@ describe("Pod Racing Game", () => { // Deploy the contract once for all tests logger.info('Deploying Pod Racing contract...'); const adminAddress = player1Account.address; - const deployResult = await PodRacingContract.deploy(wallet, adminAddress).send({ + ({ contract } = await PodRacingContract.deploy(wallet, adminAddress).send({ from: adminAddress, fee: { paymentMethod: sponsoredPaymentMethod }, wait: { timeout: getTimeouts().deployTimeout } - }); - contract = deployResult.contract; + })); logger.info(`Contract deployed at: ${contract.address.toString()}`); }, 600000) @@ -161,14 +162,14 @@ describe("Pod Racing Game", () => { logger.info('Starting create game test'); const gameId = new Fr(TEST_GAME_IDS.CREATE); - const tx = await contract.methods.create_game(gameId).send({ + const { receipt: tx } = await contract.methods.create_game(gameId).send({ from: player1Account.address, fee: { paymentMethod: sponsoredPaymentMethod }, wait: { timeout: getTimeouts().txTimeout } }); // Transaction succeeded if we got here - status could be PROPOSED, CHECKPOINTED, PROVEN, or FINALIZED - expect([TxStatus.PROPOSED, TxStatus.CHECKPOINTED, TxStatus.PROVEN, TxStatus.FINALIZED]).toContain(tx.receipt.status); + expect([TxStatus.PROPOSED, TxStatus.CHECKPOINTED, TxStatus.PROVEN, TxStatus.FINALIZED]).toContain(tx.status); logger.info('Game created successfully'); }, 600000) @@ -215,7 +216,7 @@ describe("Pod Racing Game", () => { ); // Transaction succeeded if we got here - status could be PROPOSED, CHECKPOINTED, PROVEN, or FINALIZED - expect([TxStatus.PROPOSED, TxStatus.CHECKPOINTED, TxStatus.PROVEN, TxStatus.FINALIZED]).toContain(playTx.receipt.status); + expect([TxStatus.PROPOSED, TxStatus.CHECKPOINTED, TxStatus.PROVEN, TxStatus.FINALIZED]).toContain(playTx.status); logger.info('Round played successfully'); }, 600000) @@ -385,7 +386,7 @@ describe("Pod Racing Game", () => { ); // Transaction succeeded if we got here - status could be PROPOSED, CHECKPOINTED, PROVEN, or FINALIZED - expect([TxStatus.PROPOSED, TxStatus.CHECKPOINTED, TxStatus.PROVEN, TxStatus.FINALIZED]).toContain(tx.receipt.status); + expect([TxStatus.PROPOSED, TxStatus.CHECKPOINTED, TxStatus.PROVEN, TxStatus.FINALIZED]).toContain(tx.status); logger.info('Max points allocation successful'); }, 600000) @@ -414,7 +415,7 @@ describe("Pod Racing Game", () => { ); // Transaction succeeded if we got here - status could be PROPOSED, CHECKPOINTED, PROVEN, or FINALIZED - expect([TxStatus.PROPOSED, TxStatus.CHECKPOINTED, TxStatus.PROVEN, TxStatus.FINALIZED]).toContain(tx.receipt.status); + expect([TxStatus.PROPOSED, TxStatus.CHECKPOINTED, TxStatus.PROVEN, TxStatus.FINALIZED]).toContain(tx.status); logger.info('Zero points allocation successful'); }, 600000) }); diff --git a/src/test/e2e/public_logging.test.ts b/src/test/e2e/public_logging.test.ts index 9778404..db8ace7 100644 --- a/src/test/e2e/public_logging.test.ts +++ b/src/test/e2e/public_logging.test.ts @@ -16,8 +16,9 @@ import { setupWallet } from "../../utils/setup_wallet.js"; import { SponsoredFPCContractArtifact } from "@aztec/noir-contracts.js/SponsoredFPC"; import { getTimeouts } from "../../../config/config.js"; import { AztecAddress } from "@aztec/aztec.js/addresses"; +import { NO_FROM } from "@aztec/aztec.js/account"; import { type Logger, createLogger } from "@aztec/foundation/log"; -import { type ContractInstanceWithAddress } from "@aztec/stdlib/contract"; +import { type ContractInstanceWithAddress } from "@aztec/aztec.js/contracts"; import { Fr } from "@aztec/aztec.js/fields"; import { GrumpkinScalar } from "@aztec/foundation/curves/grumpkin"; import { EmbeddedWallet } from '@aztec/wallets/embedded'; @@ -48,7 +49,7 @@ describe("Public Function Logging", () => { let salt1 = Fr.random(); player1Account = await wallet.createSchnorrAccount(secretKey1, salt1, signingKey1); await (await player1Account.getDeployMethod()).send({ - from: AztecAddress.ZERO, + from: NO_FROM, fee: { paymentMethod: sponsoredPaymentMethod }, wait: { timeout: getTimeouts().deployTimeout } }); @@ -58,7 +59,7 @@ describe("Public Function Logging", () => { let salt2 = Fr.random(); player2Account = await wallet.createSchnorrAccount(secretKey2, salt2, signingKey2); await (await player2Account.getDeployMethod()).send({ - from: AztecAddress.ZERO, + from: NO_FROM, fee: { paymentMethod: sponsoredPaymentMethod }, wait: { timeout: getTimeouts().deployTimeout } }); @@ -70,12 +71,11 @@ describe("Public Function Logging", () => { // Deploy the contract logger.info('Deploying Pod Racing contract...'); const adminAddress = player1Account.address; - const deployResult = await PodRacingContract.deploy(wallet, adminAddress).send({ + ({ contract } = await PodRacingContract.deploy(wallet, adminAddress).send({ from: adminAddress, fee: { paymentMethod: sponsoredPaymentMethod }, wait: { timeout: getTimeouts().deployTimeout } - }); - contract = deployResult.contract; + })); logger.info(`Contract deployed at: ${contract.address.toString()}`); }, 600000) diff --git a/src/utils/deploy_account.ts b/src/utils/deploy_account.ts index 6b4ab91..666c5c1 100644 --- a/src/utils/deploy_account.ts +++ b/src/utils/deploy_account.ts @@ -7,8 +7,8 @@ import { Fr } from "@aztec/aztec.js/fields"; import { GrumpkinScalar } from "@aztec/foundation/curves/grumpkin"; import { type Logger, createLogger } from "@aztec/foundation/log"; import { setupWallet } from "./setup_wallet.js"; -import { AztecAddress } from "@aztec/aztec.js/addresses"; import { AccountManager } from "@aztec/aztec.js/wallet"; +import { NO_FROM } from "@aztec/aztec.js/account"; import { EmbeddedWallet } from "@aztec/wallets/embedded"; import { createAztecNodeClient } from "@aztec/aztec.js/node"; import { deriveStorageSlotInMap } from "@aztec/stdlib/hash"; @@ -56,7 +56,7 @@ export async function deploySchnorrAccount(wallet?: EmbeddedWallet): Promise { const node = createAztecNodeClient(nodeUrl); const wallet = await EmbeddedWallet.create(node, { ephemeral: true, - pxeConfig: { proverEnabled: configManager.isRemoteNetwork() }, + pxeConfig: { proverEnabled: configManager.isTestnet() }, }); return wallet; } diff --git a/yarn.lock b/yarn.lock index 3704412..db7a625 100644 --- a/yarn.lock +++ b/yarn.lock @@ -583,59 +583,59 @@ resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.1.1.tgz#2e67f17040b930bde00a79ffb484eb9e77472b06" integrity sha512-RcLam17LdlbSOSp9VxmUu1eI6Mwxp+OwhD2QhiSNmNCzoDb0EeUXTD2n/WbcnrAYMGlmf05th6QYq23VqvJqpA== -"@aztec/accounts@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/accounts/-/accounts-4.1.0.tgz#7b1f0b2d74c4717018440dac73a4e05551c86e49" - integrity sha512-7YfiKT5oqw4cAb2Za12hunko/nUGOfbGb0JEejl3ENGGka8zMfo9TDUmmICrep95wCDk1t29SQCAdWeybCGctQ== - dependencies: - "@aztec/aztec.js" "4.1.0" - "@aztec/entrypoints" "4.1.0" - "@aztec/ethereum" "4.1.0" - "@aztec/foundation" "4.1.0" - "@aztec/stdlib" "4.1.0" +"@aztec/accounts@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/accounts/-/accounts-4.2.0-aztecnr-rc.2.tgz#490c39d3c82f016271c12a0a9a075077b1b89cff" + integrity sha512-CTIBp0WafXcnsHQcPeGnANCIHPhibvfZFoS0lvwlY4ypeVJoNDOQTwTkvPkG1TXjnuiY2rOZ0qLK7yreJf/oFw== + dependencies: + "@aztec/aztec.js" "4.2.0-aztecnr-rc.2" + "@aztec/entrypoints" "4.2.0-aztecnr-rc.2" + "@aztec/ethereum" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" tslib "^2.4.0" -"@aztec/aztec.js@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/aztec.js/-/aztec.js-4.1.0.tgz#b4e51c58bd1f3ae45bb254b2af8dc3f3fce3997d" - integrity sha512-o6NupuEt2yVBELl0NkjvS0u2EvRYQeXuuCzsCPRM6VOW/dnIgJ8Rnp566qbEKLdgIyR1zsA0UKEy5vTcGWfYdA== - dependencies: - "@aztec/constants" "4.1.0" - "@aztec/entrypoints" "4.1.0" - "@aztec/ethereum" "4.1.0" - "@aztec/foundation" "4.1.0" - "@aztec/l1-artifacts" "4.1.0" - "@aztec/protocol-contracts" "4.1.0" - "@aztec/stdlib" "4.1.0" +"@aztec/aztec.js@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/aztec.js/-/aztec.js-4.2.0-aztecnr-rc.2.tgz#0aaf280d9839e27b210019a66691e62f5754cfee" + integrity sha512-tAlj7kYEto0zGa+OwvtnRENQmGbYCeKFcQEVXqAmiox8P+/iHt4KI+mRxmLgPWqhFbsZJPr33lJXSS08s8MPSA== + dependencies: + "@aztec/constants" "4.2.0-aztecnr-rc.2" + "@aztec/entrypoints" "4.2.0-aztecnr-rc.2" + "@aztec/ethereum" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/l1-artifacts" "4.2.0-aztecnr-rc.2" + "@aztec/protocol-contracts" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" axios "^1.13.5" tslib "^2.4.0" viem "npm:@aztec/viem@2.38.2" zod "^3.23.8" -"@aztec/bb-prover@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/bb-prover/-/bb-prover-4.1.0.tgz#8b5b669f2e7d6cac1e18acb0d54726b5b7b99353" - integrity sha512-KqYC7Xj5RnsFL8SUh25Vj0xJy1erAoyFBiEAF85a9/yylsJHuz5IG/iu4l0nGctyMcErGIlNtQxLHAFkcybhmQ== - dependencies: - "@aztec/bb.js" "4.1.0" - "@aztec/constants" "4.1.0" - "@aztec/foundation" "4.1.0" - "@aztec/noir-noirc_abi" "4.1.0" - "@aztec/noir-protocol-circuits-types" "4.1.0" - "@aztec/noir-types" "4.1.0" - "@aztec/simulator" "4.1.0" - "@aztec/stdlib" "4.1.0" - "@aztec/telemetry-client" "4.1.0" - "@aztec/world-state" "4.1.0" +"@aztec/bb-prover@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/bb-prover/-/bb-prover-4.2.0-aztecnr-rc.2.tgz#3f4d5438c1a4e416cce62d7f3be6419ecfab1aa4" + integrity sha512-DcVksNFCF+wKsxQoKCnm/c0KSHVwkE42qt2uH5v1xibBsRHE24ftlRYHYrBZ9CWcZXa4Zz7beXzQEr2ZydmQQQ== + dependencies: + "@aztec/bb.js" "4.2.0-aztecnr-rc.2" + "@aztec/constants" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/noir-noirc_abi" "4.2.0-aztecnr-rc.2" + "@aztec/noir-protocol-circuits-types" "4.2.0-aztecnr-rc.2" + "@aztec/noir-types" "4.2.0-aztecnr-rc.2" + "@aztec/simulator" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" + "@aztec/telemetry-client" "4.2.0-aztecnr-rc.2" + "@aztec/world-state" "4.2.0-aztecnr-rc.2" commander "^12.1.0" pako "^2.1.0" source-map-support "^0.5.21" tslib "^2.4.0" -"@aztec/bb.js@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/bb.js/-/bb.js-4.1.0.tgz#b90845b1684ccd7f96405e02376ff4142b5f56fa" - integrity sha512-VB1wHoKl/1QUI6xmYfNsja3rnakwR/zzAjkXzCQ4JTxvjoIO+82GwUvK9KxJkKM8wwJlbG9UER5AFStl7JfIwA== +"@aztec/bb.js@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/bb.js/-/bb.js-4.2.0-aztecnr-rc.2.tgz#9eab340c5aa1621caf5ed1e98e8ea99daba97064" + integrity sha512-ksFWHrm8QYAXP059paItEKCM/UhpHg5Dwl/eSp2BI6EAtD9+JlonkOwJ+94TYai2y5Gz0qnrgd65dsvDwJelVQ== dependencies: comlink "^4.4.1" commander "^12.1.0" @@ -644,54 +644,54 @@ pako "^2.1.0" tslib "^2.4.0" -"@aztec/blob-lib@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/blob-lib/-/blob-lib-4.1.0.tgz#602e84ce2200878c3a2f5a57f2745d2e6a5f01a6" - integrity sha512-ZhuB9KnwWGjIGBDc6vtCIkaZPu0CGSLLNxa5vcKzcJJR5QFX+HKunXJQ4NTi3uUYS3KxDgbxJGFJn1KDw5ud/Q== +"@aztec/blob-lib@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/blob-lib/-/blob-lib-4.2.0-aztecnr-rc.2.tgz#6acdb7d95486012d2c520fadb074c9a7f649f2bb" + integrity sha512-iXFx9S8W5Q4AmpqtgYHB6jxnJnGIFz/68YCoZbKj6Gy+jfelU1VYCKvZc3YbqcY9s/QGN68Y9HSf8lNSMCZOcQ== dependencies: - "@aztec/constants" "4.1.0" - "@aztec/foundation" "4.1.0" + "@aztec/constants" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" "@crate-crypto/node-eth-kzg" "^0.10.0" tslib "^2.4.0" -"@aztec/builder@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/builder/-/builder-4.1.0.tgz#a1cd6338595b74fa63b821eabdd9568b5167ba74" - integrity sha512-c9aU8Hjv2TUFIt1x6McU+O5PXkosHJ0bBETuGXpXzFe06b3uLWPGdrUNQOmobWaonEr5kmUtLHgc9COujkhq0A== +"@aztec/builder@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/builder/-/builder-4.2.0-aztecnr-rc.2.tgz#dcc52b99b3a217472cd36948125ff2d6c20bacdf" + integrity sha512-W4AjGJgi0AhGiniO3cVTBFnsy5wUOJ6922EoOcMFQ1CP/ZMOIYAqRfYagF2eFaYnExEeZC46cuOgHhir9at1PA== dependencies: - "@aztec/foundation" "4.1.0" - "@aztec/stdlib" "4.1.0" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" commander "^12.1.0" -"@aztec/constants@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/constants/-/constants-4.1.0.tgz#ab0e4afac0d27aa1e90d0dc845f0a479254884cf" - integrity sha512-woAnss6VHszb8lTGAu3npQnYg7eTL7dJqlE6D28cR8uzUAXhEXhOyUOyeIqAyQjXJ9ml7c5zcD/N2M3AUx+Fhw== +"@aztec/constants@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/constants/-/constants-4.2.0-aztecnr-rc.2.tgz#f065f4159f8e3b02874b738d5f6a8576ebdcb27c" + integrity sha512-CxctSLeUP59HJoxHXmczleJyta7DLuqz5FV2Jbq0Bqx/saMbhkCXfm6I9KnnlhvXdFZ+y2d3J1BrDTg0dEapIg== dependencies: - "@aztec/foundation" "4.1.0" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" tslib "^2.4.0" -"@aztec/entrypoints@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/entrypoints/-/entrypoints-4.1.0.tgz#94c587ed2ff2333e9fc60db1faa10df943a5558f" - integrity sha512-2VuEDTPE9zBhzRFEUyyxmtOF/6fw9V2pSSHaNuYrf9yyN9jX2PeoT19u4dLDkDU6ARrWPjauz4BiXk85FVO4rQ== +"@aztec/entrypoints@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/entrypoints/-/entrypoints-4.2.0-aztecnr-rc.2.tgz#5ea8f8edfbd8b4928f5d5201be13282a2ad5b3e9" + integrity sha512-2+/GWwJ/UsOIJArXqP4MaNXl4xZrN4d74znkTbLio6us5NBK/B/4OjtCkEZD5Qwb7DdNGfXSP088bs/yQX8Y6A== dependencies: - "@aztec/constants" "4.1.0" - "@aztec/foundation" "4.1.0" - "@aztec/protocol-contracts" "4.1.0" - "@aztec/stdlib" "4.1.0" + "@aztec/constants" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/protocol-contracts" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" tslib "^2.4.0" zod "^3.23.8" -"@aztec/ethereum@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/ethereum/-/ethereum-4.1.0.tgz#7fef31f79801ac6b86321b0eec0d160f6929eeb2" - integrity sha512-kOtB9m7FJ3TD9z9pEFsABDJ80SVciuDcA5i9UfFq2/CfBU6FNB9G+SddXXQaVKKeyb6PuL8Dx0PjSTS91liWlA== +"@aztec/ethereum@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/ethereum/-/ethereum-4.2.0-aztecnr-rc.2.tgz#76cb2bfd7ec78a7126275ea4cafe1d3247d155f1" + integrity sha512-Xbrr0TqXZrY2OAsP72MINmiV9xBqDTd8zk8zTudUlnv8947wsYYPS6O0HcegM3xzQkJJoFDE5ZH3QiHiVxePoA== dependencies: - "@aztec/blob-lib" "4.1.0" - "@aztec/constants" "4.1.0" - "@aztec/foundation" "4.1.0" - "@aztec/l1-artifacts" "4.1.0" + "@aztec/blob-lib" "4.2.0-aztecnr-rc.2" + "@aztec/constants" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/l1-artifacts" "4.2.0-aztecnr-rc.2" "@viem/anvil" "^0.0.10" dotenv "^16.0.3" lodash.chunk "^4.2.0" @@ -700,12 +700,12 @@ viem "npm:@aztec/viem@2.38.2" zod "^3.23.8" -"@aztec/foundation@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/foundation/-/foundation-4.1.0.tgz#5029052448f8f2a27aa003df8454dfe23bede2cd" - integrity sha512-j6gd07W0Ze+zykVYy+dxvJlLHf020z20EOdo4Vca60mCYsQRa3vSXcoZixX6BxkE/0xuBQpRuECEvzyMEZOiCQ== +"@aztec/foundation@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/foundation/-/foundation-4.2.0-aztecnr-rc.2.tgz#fd422e642bb424072e16b40ba2c932cdf11b0718" + integrity sha512-iNLLuhWISJIY1Mo4TSqDuMhP7lbVNKcHzYLCujY7sTIQHg358vNShDiFqUat9fMuigBFD8o+JuRr+xX8jl1WPQ== dependencies: - "@aztec/bb.js" "4.1.0" + "@aztec/bb.js" "4.2.0-aztecnr-rc.2" "@koa/cors" "^5.0.0" "@noble/curves" "=1.7.0" "@noble/hashes" "^1.6.1" @@ -728,140 +728,140 @@ undici "^5.28.5" zod "^3.23.8" -"@aztec/key-store@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/key-store/-/key-store-4.1.0.tgz#801eb1c1e3acec2a4c2f6070aa6a4eedc8d51bd8" - integrity sha512-Q5Aer2ecRTQnZVrPj+8+hPaoE6bmvJnR8NLlhjIboR+RZrKUoQVPoxsJS+eU5xGkVC16Un9TnenszHPnGonLjA== +"@aztec/key-store@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/key-store/-/key-store-4.2.0-aztecnr-rc.2.tgz#93c52fbd3f8cf875343669b1d00b5d86c0ed9925" + integrity sha512-48v0REsHRYbD5ShwN3GpQNTmsHB5k9Yvme43Yf4HpCNNl7Z3JPnxKs395HZSb6pNUltvV8s8pjN9+9q3o0fr1w== dependencies: - "@aztec/constants" "4.1.0" - "@aztec/foundation" "4.1.0" - "@aztec/kv-store" "4.1.0" - "@aztec/stdlib" "4.1.0" + "@aztec/constants" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/kv-store" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" tslib "^2.4.0" -"@aztec/kv-store@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/kv-store/-/kv-store-4.1.0.tgz#7d6bac482b842e222701425089811d6af1ad4d2d" - integrity sha512-2G/D6B2JV66xWj2bJZvUiDf4r8Xi5NwRBEiNj3pE7MnpB7jUU7DeBF6GTrW88o3t5HoEMj6DmxYBwVXLh1eujg== - dependencies: - "@aztec/constants" "4.1.0" - "@aztec/ethereum" "4.1.0" - "@aztec/foundation" "4.1.0" - "@aztec/native" "4.1.0" - "@aztec/stdlib" "4.1.0" +"@aztec/kv-store@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/kv-store/-/kv-store-4.2.0-aztecnr-rc.2.tgz#97f1e1e4dd5e595061a2f3b85ab394b9d2a6aa57" + integrity sha512-svqtFq0PzAd9WUnAGtOKg9OFQQZbxlbklkbX00Jk4OLYnA0U6cWQLwPUWedzYQfE/ueK6wSoFjWj2ghQe8gMGg== + dependencies: + "@aztec/constants" "4.2.0-aztecnr-rc.2" + "@aztec/ethereum" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/native" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" idb "^8.0.0" lmdb "^3.2.0" msgpackr "^1.11.2" ohash "^2.0.11" ordered-binary "^1.5.3" -"@aztec/l1-artifacts@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/l1-artifacts/-/l1-artifacts-4.1.0.tgz#5a2d023c9a806bf2ac11ccd79f3af9d0af7bc7a0" - integrity sha512-jwwfYollXjApK/drVFmRbndAenFeDFI9ehBB8J+1rEttV3IOIDloHAmRhEceTBroQLZisMAVwCDw5ktWwan2bw== +"@aztec/l1-artifacts@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/l1-artifacts/-/l1-artifacts-4.2.0-aztecnr-rc.2.tgz#42af9b2a6c8de7c47b41f4f5ed395ccde3f67d76" + integrity sha512-LbrF85CPKx4qfevV7JeVz5FDQytcxeGIdtjXChL2THKKmPAbr+TFOv3Qdb6EGP55sRM4MFrDE+Z6K9HMrnELdA== dependencies: tslib "^2.4.0" -"@aztec/merkle-tree@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/merkle-tree/-/merkle-tree-4.1.0.tgz#a8d3caf41099b8a237f7790a8aacbd930a627123" - integrity sha512-9kEL2YwRnVcsb/3yoTZr8eKvfPdX2JWmvTLTzYJCLgd3R4FliX6qDPcnLoteatv3l879HhAFhjklU58HQxw9Zg== +"@aztec/merkle-tree@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/merkle-tree/-/merkle-tree-4.2.0-aztecnr-rc.2.tgz#023281b061799821ca1136227859cab4950afc7e" + integrity sha512-dVbuh79Oc/kVx3MPis5Qwn1+m/u0jyHHat8Q1DAX+L1d6GSqGYaqSj0BBN5zkKEIjRCi53o7k7KUuJvv5TjzqA== dependencies: - "@aztec/foundation" "4.1.0" - "@aztec/kv-store" "4.1.0" - "@aztec/stdlib" "4.1.0" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/kv-store" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" sha256 "^0.2.0" tslib "^2.4.0" -"@aztec/native@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/native/-/native-4.1.0.tgz#ba9b412ddbae863db26764d0eb1d446924f0e731" - integrity sha512-iy2Nb+3UM5reyUn1oHoPQg6sBdGB6KDSrChMu/xSPK9Bar2KCSH3FIQGwctD8JbmptHSQN+yCnQhvqFXyiecfA== +"@aztec/native@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/native/-/native-4.2.0-aztecnr-rc.2.tgz#5acd395123da89b97be944415d37e25c867f9b97" + integrity sha512-4q+r7ejGipckbcIyj2yGbekN7fOC0PXQ1/OgqRyS3ird26aI5UsNVxuTAyFMrhIHJL98eZ8cjbc/Sf7lOpEk3w== dependencies: - "@aztec/bb.js" "4.1.0" - "@aztec/foundation" "4.1.0" + "@aztec/bb.js" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" msgpackr "^1.11.2" -"@aztec/noir-acvm_js@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/noir-acvm_js/-/noir-acvm_js-4.1.0.tgz#03c07cf3acdf96a87716cd34e10fb8f26faddfeb" - integrity sha512-SYL1/6wgB229SmZCG3eoMrl2bm0+d697CpZYuVHCicOZ9z1TL9UxWKHBL3u2vSLJyAxpalfL+L61hlIRPoWRkA== +"@aztec/noir-acvm_js@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/noir-acvm_js/-/noir-acvm_js-4.2.0-aztecnr-rc.2.tgz#5508016147afb9502acb1151a92cf3de4f61ed85" + integrity sha512-OBubDpTTYEcz2EX8APl1mfn3OHDvMuZIm0t1//+u1BZbosrAjCpI76Vz39DNKpCZups4A+dJKHXlkj+RsFstbw== -"@aztec/noir-contracts.js@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/noir-contracts.js/-/noir-contracts.js-4.1.0.tgz#555c8717a01a5c700c39241c69caccebfd3d5692" - integrity sha512-+f0Z1yVA7cpqRZrtlY7IG3INJ8d6xniJ9yMf+Vry6NSXUQb01CqJSAgod+CcoRMF1GrHyF5QJzgweEAWG/ayMg== +"@aztec/noir-contracts.js@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/noir-contracts.js/-/noir-contracts.js-4.2.0-aztecnr-rc.2.tgz#38a2c9c72245ba9f122be83fef0d1edcdf147564" + integrity sha512-WYNXApevXSEHggthbwgA5HIF1yP4s1bx4pNbZPPgV69AOQwjCjztTE6G3VCUrsC2sB+loNMnre2Csld0RrUXIQ== dependencies: - "@aztec/aztec.js" "4.1.0" + "@aztec/aztec.js" "4.2.0-aztecnr-rc.2" tslib "^2.4.0" -"@aztec/noir-noir_codegen@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/noir-noir_codegen/-/noir-noir_codegen-4.1.0.tgz#05b107bfbd097be014ad767fbafe9ef844bea9db" - integrity sha512-CBGFC6CmS2rwzMQERWquwDjQjy7j92BCTlgGCBYmX0WPp2DSZC3gXDUxGEHSJIuHDb/VAdosTDjqzE+Fk27aUA== +"@aztec/noir-noir_codegen@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/noir-noir_codegen/-/noir-noir_codegen-4.2.0-aztecnr-rc.2.tgz#1058dc85fd4810797e92f9b1a8f6f8be69ac663d" + integrity sha512-gnBaP+uL3uXqbFGUE/qssoHhQRjThZBKAuSwo4IRsVW8iwMLS9LdJntUWfqyB599vE7b1OL9q1UfUdu0DJbALg== dependencies: - "@aztec/noir-types" "4.1.0" + "@aztec/noir-types" "4.2.0-aztecnr-rc.2" glob "^13.0.0" ts-command-line-args "^2.5.1" -"@aztec/noir-noirc_abi@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/noir-noirc_abi/-/noir-noirc_abi-4.1.0.tgz#6083499c95bfe88d335c8dfe76ccc9c1b77b0817" - integrity sha512-pQ0gy3FzxVPhScR+L/+RjPeHowdtqk4hHo6wcKzlCTa0wUmeGUTaOoUFffDF2Am3uvqOWiYDe66Nu77qP2n34w== - dependencies: - "@aztec/noir-types" "4.1.0" - -"@aztec/noir-protocol-circuits-types@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/noir-protocol-circuits-types/-/noir-protocol-circuits-types-4.1.0.tgz#58bebe17e7f0c0acabe6323968e675c8d879d780" - integrity sha512-Ay7E28YAHAak0rVh/p5KHh5k3f3yjpB8lLge4Q6MI9fA/tyEoogwluoqG2rG98mzb65Tn+3r9FBk5M7wjqDgcg== - dependencies: - "@aztec/blob-lib" "4.1.0" - "@aztec/constants" "4.1.0" - "@aztec/foundation" "4.1.0" - "@aztec/noir-acvm_js" "4.1.0" - "@aztec/noir-noir_codegen" "4.1.0" - "@aztec/noir-noirc_abi" "4.1.0" - "@aztec/noir-types" "4.1.0" - "@aztec/stdlib" "4.1.0" +"@aztec/noir-noirc_abi@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/noir-noirc_abi/-/noir-noirc_abi-4.2.0-aztecnr-rc.2.tgz#a909d9ac5fd8af38f7b5d4de9d7528a98e1e1b76" + integrity sha512-ivXHmrH7hoSB3dVJHws78+GrRq9w0sSLteTzkucXEC7BQ6G5mYArK6eZ3d/S1tr8x+himjU10A9h3yjsMXGb0A== + dependencies: + "@aztec/noir-types" "4.2.0-aztecnr-rc.2" + +"@aztec/noir-protocol-circuits-types@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/noir-protocol-circuits-types/-/noir-protocol-circuits-types-4.2.0-aztecnr-rc.2.tgz#28fd59c5c867ad8ab1ddf436caca4a031acf1277" + integrity sha512-ZlY4SyqbAfYmSL7FGNLwet1ELbRsuEcAybPCFP0xp1Td5tLjHTQ7i37u6RPu8NSalpia4ziU5lF25Ng0suzung== + dependencies: + "@aztec/blob-lib" "4.2.0-aztecnr-rc.2" + "@aztec/constants" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/noir-acvm_js" "4.2.0-aztecnr-rc.2" + "@aztec/noir-noir_codegen" "4.2.0-aztecnr-rc.2" + "@aztec/noir-noirc_abi" "4.2.0-aztecnr-rc.2" + "@aztec/noir-types" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" change-case "^5.4.4" tslib "^2.4.0" -"@aztec/noir-types@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/noir-types/-/noir-types-4.1.0.tgz#d8261b61f8ce308693bd7cf7aa0a7d1b643f1084" - integrity sha512-7T0YxSnoG0/F/mgAFOAeNR8jm3/vxz1y/kAvH0E1b2I0vlOmVU5Ku+jUTENgIydtpKbdkRHffw5Mw4HDyVyjGg== +"@aztec/noir-types@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/noir-types/-/noir-types-4.2.0-aztecnr-rc.2.tgz#097171c8fd310e7063c6b08892c280577cd4e822" + integrity sha512-5lP70mkEDZymZ+XyUjP4V9lGTISWQi4vLD+btSQC89KXBQan5a+wL/sJdizy2LtqX8AacXb3lta+Sq8n5BcheA== -"@aztec/protocol-contracts@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/protocol-contracts/-/protocol-contracts-4.1.0.tgz#540e7fbea0c459b72034e3282e442dbfb1b37f84" - integrity sha512-aCQ59DFrB0x4+qIR8uO43pX6mR77IG23NrHtudfdxmo505f9JLEm0Zn4P7GE8QbqW21WngFgZ1r35GgArvdZYg== +"@aztec/protocol-contracts@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/protocol-contracts/-/protocol-contracts-4.2.0-aztecnr-rc.2.tgz#774e8e34cca922a8051625899c2e252e3d2fe1c4" + integrity sha512-3y+KN1kmUJGvILkEkRe/Zl+sakWsEqadY3XxficnSaD8Gf6YCH1OH/tpZwc/CCw9iFwvuJxMGMo5EffXFkLB4Q== dependencies: - "@aztec/constants" "4.1.0" - "@aztec/foundation" "4.1.0" - "@aztec/stdlib" "4.1.0" + "@aztec/constants" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" lodash.chunk "^4.2.0" lodash.omit "^4.5.0" tslib "^2.4.0" -"@aztec/pxe@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/pxe/-/pxe-4.1.0.tgz#e0479b1cc48d16d6123748622945e5ee9f3485a3" - integrity sha512-q/WGaMP3xpPAesqXihNljre6OBFvDFCm1JLwKsysikrWuk4mFQ2l8cFhWiIZw9PnblFPjYB7NchPTYL1GIMjBQ== - dependencies: - "@aztec/bb-prover" "4.1.0" - "@aztec/bb.js" "4.1.0" - "@aztec/builder" "4.1.0" - "@aztec/constants" "4.1.0" - "@aztec/ethereum" "4.1.0" - "@aztec/foundation" "4.1.0" - "@aztec/key-store" "4.1.0" - "@aztec/kv-store" "4.1.0" - "@aztec/noir-protocol-circuits-types" "4.1.0" - "@aztec/noir-types" "4.1.0" - "@aztec/protocol-contracts" "4.1.0" - "@aztec/simulator" "4.1.0" - "@aztec/stdlib" "4.1.0" +"@aztec/pxe@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/pxe/-/pxe-4.2.0-aztecnr-rc.2.tgz#5e2ee2d1352ea4bb91e1ca2ea52f553c47c13e67" + integrity sha512-V8p0EvbhYdAif7oQ3ihQ1GmPgTN5zBKGtwyWm8q+CW/eAOXLV3MLxyFUiHCHQGg9chbPnxbPvtyOfeMvbwwWRg== + dependencies: + "@aztec/bb-prover" "4.2.0-aztecnr-rc.2" + "@aztec/bb.js" "4.2.0-aztecnr-rc.2" + "@aztec/builder" "4.2.0-aztecnr-rc.2" + "@aztec/constants" "4.2.0-aztecnr-rc.2" + "@aztec/ethereum" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/key-store" "4.2.0-aztecnr-rc.2" + "@aztec/kv-store" "4.2.0-aztecnr-rc.2" + "@aztec/noir-protocol-circuits-types" "4.2.0-aztecnr-rc.2" + "@aztec/noir-types" "4.2.0-aztecnr-rc.2" + "@aztec/protocol-contracts" "4.2.0-aztecnr-rc.2" + "@aztec/simulator" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" koa "^2.16.1" koa-router "^13.1.1" lodash.omit "^4.5.0" @@ -869,40 +869,40 @@ tslib "^2.4.0" viem "npm:@aztec/viem@2.38.2" -"@aztec/simulator@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/simulator/-/simulator-4.1.0.tgz#306fa21d8ff1af4b502a41260f57cab1eb80e489" - integrity sha512-96fKMdFrLzVZXyAPXNrtWQyg12cziearFeReUDa4wSTuF5H4Zp0oNF6hpWhWoWEdTbf0OQ+Hl7Bi8sPpKqff3A== - dependencies: - "@aztec/constants" "4.1.0" - "@aztec/foundation" "4.1.0" - "@aztec/native" "4.1.0" - "@aztec/noir-acvm_js" "4.1.0" - "@aztec/noir-noirc_abi" "4.1.0" - "@aztec/noir-protocol-circuits-types" "4.1.0" - "@aztec/noir-types" "4.1.0" - "@aztec/protocol-contracts" "4.1.0" - "@aztec/stdlib" "4.1.0" - "@aztec/telemetry-client" "4.1.0" - "@aztec/world-state" "4.1.0" +"@aztec/simulator@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/simulator/-/simulator-4.2.0-aztecnr-rc.2.tgz#b8214ce2431350846996f4dafecee1e2ab87191e" + integrity sha512-Sw8nrUrmS1GqKJ0GTNM1ObAJ6SqvmdZxcJlddAjCCbxRRCPaXyjGLdNyNj1uTs/VKleplN/mKzXU74582U7wqg== + dependencies: + "@aztec/constants" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/native" "4.2.0-aztecnr-rc.2" + "@aztec/noir-acvm_js" "4.2.0-aztecnr-rc.2" + "@aztec/noir-noirc_abi" "4.2.0-aztecnr-rc.2" + "@aztec/noir-protocol-circuits-types" "4.2.0-aztecnr-rc.2" + "@aztec/noir-types" "4.2.0-aztecnr-rc.2" + "@aztec/protocol-contracts" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" + "@aztec/telemetry-client" "4.2.0-aztecnr-rc.2" + "@aztec/world-state" "4.2.0-aztecnr-rc.2" lodash.clonedeep "^4.5.0" lodash.merge "^4.6.2" tslib "^2.4.0" -"@aztec/stdlib@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/stdlib/-/stdlib-4.1.0.tgz#d77fa3bcc9e213ff54d094f3c0cd89c3e771728d" - integrity sha512-WVQbVIf32Sr6Z72kcROMNgPftu3mlQB6wkfYmFASTKZ3G+53Ug7ZEfDAz6v4fJ1DmnMffImEatJ2hY1vyL+WKQ== +"@aztec/stdlib@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/stdlib/-/stdlib-4.2.0-aztecnr-rc.2.tgz#15d9e3afee55b38d6d6ad2ee63ab3a7a790f3306" + integrity sha512-Kf1rmn+s6DWKkLrKgj7VNe4/G93zY7n2URgLJTfavScJIoZXLtxy6Z8DtyukzDCa30Ux1ATni/ydDEC64UBxfw== dependencies: "@aws-sdk/client-s3" "^3.892.0" - "@aztec/bb.js" "4.1.0" - "@aztec/blob-lib" "4.1.0" - "@aztec/constants" "4.1.0" - "@aztec/ethereum" "4.1.0" - "@aztec/foundation" "4.1.0" - "@aztec/l1-artifacts" "4.1.0" - "@aztec/noir-noirc_abi" "4.1.0" - "@aztec/validator-ha-signer" "4.1.0" + "@aztec/bb.js" "4.2.0-aztecnr-rc.2" + "@aztec/blob-lib" "4.2.0-aztecnr-rc.2" + "@aztec/constants" "4.2.0-aztecnr-rc.2" + "@aztec/ethereum" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/l1-artifacts" "4.2.0-aztecnr-rc.2" + "@aztec/noir-noirc_abi" "4.2.0-aztecnr-rc.2" + "@aztec/validator-ha-signer" "4.2.0-aztecnr-rc.2" "@google-cloud/storage" "^7.15.0" axios "^1.13.5" json-stringify-deterministic "1.0.12" @@ -916,13 +916,13 @@ viem "npm:@aztec/viem@2.38.2" zod "^3.23.8" -"@aztec/telemetry-client@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/telemetry-client/-/telemetry-client-4.1.0.tgz#2232a5e9deb25937f372603cbca945daaea33a73" - integrity sha512-IiuKBEJfXJyJkpsyC55qoXJ1afd0jw20+Lyc8TNImFrGXwwgsr0SoNiA23zgFGKe3rFSe7D/6fFpTzx33RFI2Q== +"@aztec/telemetry-client@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/telemetry-client/-/telemetry-client-4.2.0-aztecnr-rc.2.tgz#c5a0a7933d3054a68cacf3be43d76c6fd48e5ff3" + integrity sha512-6NwrUng4b9ZJIuwNEGkDczsyI5S6AtZG/RdxkEGt0CvimXkpUwjQE/Rrea0mpHnc8fVjG5lD0vKk3LpnngCyhA== dependencies: - "@aztec/foundation" "4.1.0" - "@aztec/stdlib" "4.1.0" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" "@opentelemetry/api" "^1.9.0" "@opentelemetry/api-logs" "^0.55.0" "@opentelemetry/core" "^1.28.0" @@ -940,58 +940,58 @@ prom-client "^15.1.3" viem "npm:@aztec/viem@2.38.2" -"@aztec/validator-ha-signer@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/validator-ha-signer/-/validator-ha-signer-4.1.0.tgz#8b39e48cadc11c335586600918f4f98038d9963a" - integrity sha512-lUo0NB8NGAaVLdMA0bF/M6zd+5A+tjss2QZqmrMHb6YvAgPskzJgJL1em/yeKOOLR4TU+jxkajHnJX36jabCbQ== +"@aztec/validator-ha-signer@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/validator-ha-signer/-/validator-ha-signer-4.2.0-aztecnr-rc.2.tgz#03d34775e7cf099122d3cfee592663e4b78d4924" + integrity sha512-VYTfdAKUIn0ruRVx/+h9XAoyPeT+THJeBo5ClXU336Kctdo1Ybb3IYyEDYuwHeqm7DpiHuNN0wAhkHohAO78KA== dependencies: - "@aztec/ethereum" "4.1.0" - "@aztec/foundation" "4.1.0" + "@aztec/ethereum" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" node-pg-migrate "^8.0.4" pg "^8.11.3" tslib "^2.4.0" zod "^3.23.8" -"@aztec/wallet-sdk@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/wallet-sdk/-/wallet-sdk-4.1.0.tgz#285a8e1e1484148c0c41cb261f6bb4d38e92333c" - integrity sha512-M3WnAnoYxq9m/XwiG0EnPU5/Kf3Mns3Z20EyrmL5REWldxpHP+ljNaRKkrQjqAymenpYLs691cB00sumeMTdlQ== - dependencies: - "@aztec/aztec.js" "4.1.0" - "@aztec/constants" "4.1.0" - "@aztec/entrypoints" "4.1.0" - "@aztec/foundation" "4.1.0" - "@aztec/pxe" "4.1.0" - "@aztec/stdlib" "4.1.0" - -"@aztec/wallets@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/wallets/-/wallets-4.1.0.tgz#e70c4cf5da25a49f505a9ada5bdb884275a07ed0" - integrity sha512-alvjbzv8fvVduIO091oRT4BvsUNcdeGZ7B4o9f672YgRX6dW5FgH5SfEC3FApipzRzHjjPgUVWrv2HO75uAHVg== - dependencies: - "@aztec/accounts" "4.1.0" - "@aztec/aztec.js" "4.1.0" - "@aztec/entrypoints" "4.1.0" - "@aztec/foundation" "4.1.0" - "@aztec/kv-store" "4.1.0" - "@aztec/protocol-contracts" "4.1.0" - "@aztec/pxe" "4.1.0" - "@aztec/stdlib" "4.1.0" - "@aztec/wallet-sdk" "4.1.0" - -"@aztec/world-state@4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@aztec/world-state/-/world-state-4.1.0.tgz#6c0843b3fb83d2db0b3469a784cff5bd2106e983" - integrity sha512-0769oV5meAmJjcKd69aEyKp6f3gXq0yDMOMOwqNU7jhX2aBf4gd0/JspcZRhdkNugH1ct1KndR7SF+kUSg+tYg== - dependencies: - "@aztec/constants" "4.1.0" - "@aztec/foundation" "4.1.0" - "@aztec/kv-store" "4.1.0" - "@aztec/merkle-tree" "4.1.0" - "@aztec/native" "4.1.0" - "@aztec/protocol-contracts" "4.1.0" - "@aztec/stdlib" "4.1.0" - "@aztec/telemetry-client" "4.1.0" +"@aztec/wallet-sdk@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/wallet-sdk/-/wallet-sdk-4.2.0-aztecnr-rc.2.tgz#d1f43d1260cc2582d279ab801f2bd0958949b8a1" + integrity sha512-ffJ41ln5GQfxHwM6D25VUpXH/vjQ1HWKd3TmVaa4Kwt3nLeNR3VGvUHeivm74eXh53a+eAJFi3SbwEEqsWM0mA== + dependencies: + "@aztec/aztec.js" "4.2.0-aztecnr-rc.2" + "@aztec/constants" "4.2.0-aztecnr-rc.2" + "@aztec/entrypoints" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/pxe" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" + +"@aztec/wallets@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/wallets/-/wallets-4.2.0-aztecnr-rc.2.tgz#d065e281abeef29366089001cf61f72cfd89f132" + integrity sha512-+REyXLuG2OpzqqxDKkgrcXZKh+9/ob1X1T6TLx0cEgqft8QzOlcgYw7qxMGa7Unf0o+2SS3fvFM7oXn8hB45Bw== + dependencies: + "@aztec/accounts" "4.2.0-aztecnr-rc.2" + "@aztec/aztec.js" "4.2.0-aztecnr-rc.2" + "@aztec/entrypoints" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/kv-store" "4.2.0-aztecnr-rc.2" + "@aztec/protocol-contracts" "4.2.0-aztecnr-rc.2" + "@aztec/pxe" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" + "@aztec/wallet-sdk" "4.2.0-aztecnr-rc.2" + +"@aztec/world-state@4.2.0-aztecnr-rc.2": + version "4.2.0-aztecnr-rc.2" + resolved "https://registry.yarnpkg.com/@aztec/world-state/-/world-state-4.2.0-aztecnr-rc.2.tgz#a1dc76ec863bf5f687b80517745f3955ed225fc5" + integrity sha512-lpjp2p6aLbW/6j7Buskrew6PP8uL/ZbUX2hy9Lt3DGYhygi072jUnMjbUHAQnj4elRbzWMtLmKEH16/6hrYaCg== + dependencies: + "@aztec/constants" "4.2.0-aztecnr-rc.2" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/kv-store" "4.2.0-aztecnr-rc.2" + "@aztec/merkle-tree" "4.2.0-aztecnr-rc.2" + "@aztec/native" "4.2.0-aztecnr-rc.2" + "@aztec/protocol-contracts" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" + "@aztec/telemetry-client" "4.2.0-aztecnr-rc.2" tslib "^2.4.0" zod "^3.23.8" @@ -3051,13 +3051,13 @@ atomic-sleep@^1.0.0: integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== axios@^1.13.5: - version "1.13.6" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.6.tgz#c3f92da917dc209a15dd29936d20d5089b6b6c98" - integrity sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ== + version "1.14.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.14.0.tgz#7c29f4cf2ea91ef05018d5aa5399bf23ed3120eb" + integrity sha512-3Y8yrqLSwjuzpXuZ0oIYZ/XGgLwUIBU3uLvbcpb0pidD9ctpShJd43KSlEEkVQg6DS0G9NKyzOvBfUtDKEyHvQ== dependencies: follow-redirects "^1.15.11" form-data "^4.0.5" - proxy-from-env "^1.1.0" + proxy-from-env "^2.1.0" babel-jest@^29.7.0: version "29.7.0" @@ -6199,10 +6199,10 @@ protobufjs@^7.3.0: "@types/node" ">=13.7.0" long "^5.0.0" -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== +proxy-from-env@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-2.1.0.tgz#a7487568adad577cfaaa7e88c49cab3ab3081aba" + integrity sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA== pump@^3.0.0: version "3.0.2"