diff --git a/.github/workflows/devnet.yaml b/.github/workflows/devnet.yaml deleted file mode 100644 index 09b9bde..0000000 --- a/.github/workflows/devnet.yaml +++ /dev/null @@ -1,36 +0,0 @@ -name: Devnet Tests - -on: - push: - branches: - - next - - dev - pull_request: - branches: - - next - - dev - workflow_dispatch: - -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 a14f4c9..2ecd691 100644 --- a/.github/workflows/local-network.yaml +++ b/.github/workflows/local-network.yaml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest env: AZTEC_ENV: local-network - AZTEC_VERSION: 4.0.0-devnet.2-patch.1 + AZTEC_VERSION: 4.2.0-aztecnr-rc.2 steps: - name: Checkout repository diff --git a/CLAUDE.md b/CLAUDE.md index 81a3c2c..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.0.0-devnet.2-patch.1`** — 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 0f6e610..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.0.0-devnet.2-patch.1", 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 7e55cdb..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.0.0-devnet.2-patch.1` (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:** @@ -164,7 +164,7 @@ fn create_game(game_id: Field) { // Ensure this game_id hasn't been used yet (player1 must be zero address) assert(self.storage.races.at(game_id).read().player1.eq(AztecAddress::zero())); - let player1 = self.context.maybe_msg_sender().unwrap(); + let player1 = self.msg_sender(); debug_log_format( "Creating game {0} by player {1}", [game_id, player1.to_field()], @@ -193,7 +193,7 @@ Creates a new game. Checks the game ID isn't taken (player1 must be zero address fn join_game(game_id: Field) { let maybe_existing_game = self.storage.races.at(game_id).read(); - let player2 = self.context.maybe_msg_sender().unwrap(); + let player2 = self.msg_sender(); debug_log_format("Player {0} joining game {1}", [player2.to_field(), game_id]); // Add the caller as player2 (validates that player1 exists and player2 is empty) @@ -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. @@ -314,7 +314,7 @@ fn play_round( // Validate that total points don't exceed 9 (you can't max out all tracks) assert(track1 + track2 + track3 + track4 + track5 < 10); - let player = self.context.maybe_msg_sender().unwrap(); + let player = self.msg_sender(); debug_log_format( "Player {0} playing round {1} in game {2}", [player.to_field(), round as Field, game_id], @@ -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(PodRacing::at(self.context.this_address()).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: @@ -361,7 +357,7 @@ Three things happen here that have no direct Ethereum equivalent: // This is the "reveal" phase where private choices become public #[external("private")] fn finish_game(game_id: Field) { - let player = self.context.maybe_msg_sender().unwrap(); + let player = self.msg_sender(); debug_log_format( "Player {0} finishing game {1}", [player.to_field(), game_id], @@ -394,7 +390,7 @@ fn finish_game(game_id: Field) { // Enqueue public function to store the revealed totals on-chain // Now the revealing player's track totals will be publicly visible - self.enqueue(PodRacing::at(self.context.this_address()).validate_finish_game_and_reveal( + self.enqueue_self.validate_finish_game_and_reveal( player, game_id, total_track1, @@ -402,11 +398,11 @@ fn finish_game(game_id: Field) { total_track3, total_track4, total_track5, - )); + ); } ``` -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.0.0-devnet.2-patch.1" | VERSION="4.0.0-devnet.2-patch.1" 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.0.0-devnet.2-patch.1 +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"`) *** @@ -880,14 +862,15 @@ const deployRequest = PodRacingContract.deploy(wallet, address); await deployRequest.simulate({ from: address, }); -const { contract: podRacingContract, instance } = 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 instance = deployReceipt.instance; ``` -Source code: /scripts/deploy_contract.ts#Ldeploy-contract +Source code: /scripts/deploy_contract.ts#Ldeploy-contract > **Important:** Always call `.simulate()` before `.send()`. Simulation runs the transaction locally and surfaces revert reasons immediately. Without it, a failing transaction hangs until timeout with an opaque error. @@ -1017,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 @@ -1032,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. @@ -1058,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: @@ -1088,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: @@ -1137,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 | @@ -1162,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 @@ -1171,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 0dff6cc..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.0.0-devnet.2-patch.1 +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 9bad4cb..1859fc9 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,10 +67,6 @@ export class ConfigManager { return this.config.network; } - public isDevnet(): boolean { - return this.config.environment === 'devnet'; - } - public isLocalNetwork(): boolean { return this.config.environment === 'local'; } @@ -92,15 +88,7 @@ export class ConfigManager { return this.config.timeouts; } - // Otherwise, use defaults based on environment - if (this.isDevnet()) { - 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 eb7b9df..028767a 100644 --- a/config/local-network.json +++ b/config/local-network.json @@ -8,7 +8,7 @@ }, "settings": { "skipLocalNetwork": false, - "version": "4.0.0-devnet.2-patch.1" + "version": "4.2.0-aztecnr-rc.2" }, "timeouts": { "deployTimeout": 120000, diff --git a/docs/ONBOARDING.src.md b/docs/ONBOARDING.src.md index 42efc95..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.0.0-devnet.2-patch.1` (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.0.0-devnet.2-patch.1" | VERSION="4.0.0-devnet.2-patch.1" 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.0.0-devnet.2-patch.1 +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 a3889f4..f5916c9 100644 --- a/package.json +++ b/package.json @@ -9,43 +9,34 @@ "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", "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-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", "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", "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", "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", "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", "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", "test": "yarn test:js && yarn test:nr", - "test::devnet": "AZTEC_ENV=devnet 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.0.0-devnet.2-patch.1", - "@aztec/aztec.js": "4.0.0-devnet.2-patch.1", - "@aztec/constants": "4.0.0-devnet.2-patch.1", - "@aztec/entrypoints": "4.0.0-devnet.2-patch.1", - "@aztec/noir-contracts.js": "4.0.0-devnet.2-patch.1", - "@aztec/protocol-contracts": "4.0.0-devnet.2-patch.1", - "@aztec/pxe": "4.0.0-devnet.2-patch.1", - "@aztec/stdlib": "4.0.0-devnet.2-patch.1", - "@aztec/wallet-sdk": "4.0.0-devnet.2-patch.1", - "@aztec/wallets": "4.0.0-devnet.2-patch.1", + "@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 b5576c9..b3683aa 100644 --- a/scripts/deploy_contract.ts +++ b/scripts/deploy_contract.ts @@ -46,11 +46,12 @@ async function main() { await deployRequest.simulate({ from: address, }); - const { contract: podRacingContract, instance } = 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 instance = deployReceipt.instance; // docs:end:deploy-contract logger.info(`🎉 Pod Racing Contract deployed successfully!`); diff --git a/scripts/fees.ts b/scripts/fees.ts index 990b050..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'; @@ -74,7 +75,7 @@ async function main() { // Simulate before sending to surface revert reasons const podRacingDeploy = PodRacingContract.deploy(wallet, account1.address); await podRacingDeploy.simulate({ from: account1.address }); - const podRacingContract = await podRacingDeploy.send({ + const { contract: podRacingContract } = await podRacingDeploy.send({ from: account1.address, fee: { paymentMethod }, wait: { timeout: timeouts.deployTimeout } @@ -82,7 +83,7 @@ async function main() { const bananaCoinDeploy = TokenContract.deploy(wallet, account1.address, "bananaCoin", "BNC", 18); await bananaCoinDeploy.simulate({ from: account1.address }); - const bananaCoin = await bananaCoinDeploy.send({ + const { contract: bananaCoin } = await bananaCoinDeploy.send({ from: account1.address, fee: { paymentMethod }, wait: { timeout: timeouts.deployTimeout } @@ -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 @@ -114,7 +115,7 @@ async function main() { // This uses bananaCoin as the fee paying asset that will be exchanged for fee juice const fpcDeploy = FPCContract.deploy(wallet, bananaCoin.address, account1.address); await fpcDeploy.simulate({ from: account1.address }); - const fpc = await fpcDeploy.send({ + const { contract: fpc } = await fpcDeploy.send({ from: account1.address, fee: { paymentMethod }, wait: { timeout: timeouts.deployTimeout } @@ -135,7 +136,7 @@ async function main() { fee: { paymentMethod }, wait: { timeout: timeouts.txTimeout } }); - const bananaBalance = await bananaCoin.methods.balance_of_private(account2.address).simulate({ + const { result: bananaBalance } = await bananaCoin.methods.balance_of_private(account2.address).simulate({ from: account2.address }); @@ -147,9 +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 } }); - logger.info(`Fpc fee juice balance ${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 - })}`); + })).result}`); const maxFeesPerGas = (await node.getCurrentMinFees()).mul(1.5); const gasSettings = GasSettings.default({ maxFeesPerGas }); diff --git a/scripts/multiple_wallet.ts b/scripts/multiple_wallet.ts index ed862fd..87d464c 100644 --- a/scripts/multiple_wallet.ts +++ b/scripts/multiple_wallet.ts @@ -2,19 +2,20 @@ 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.isDevnet() }, + pxeConfig: { proverEnabled: false }, }; const L2_TOKEN_CONTRACT_SALT = Fr.random(); @@ -53,13 +54,13 @@ 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 token = await tokenDeploy.send({ + const { contract: token } = await tokenDeploy.send({ from: ownerAddress, contractAddressSalt: L2_TOKEN_CONTRACT_SALT, fee: { paymentMethod }, @@ -77,7 +78,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, '') @@ -85,7 +86,7 @@ async function main() { // Simulate before sending to surface revert reasons await token.methods.mint_to_private(schnorrAccount2.address, 100).simulate({ from: ownerAddress }); - const private_mint_tx = 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 } @@ -113,12 +114,12 @@ async function main() { ) // Check balances - const balance = 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", balance) - const publicBalance = 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", publicBalance) diff --git a/scripts/read_debug_logs.ts b/scripts/read_debug_logs.ts index 77d7b1e..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 }, }); @@ -57,7 +57,7 @@ async function main() { logger.info('\n--- Deploying PodRacing contract (constructor logs) ---'); const deployRequest = PodRacingContract.deploy(wallet, p1Account.address); await deployRequest.simulate({ from: p1Account.address }); - const contract = await deployRequest.send({ + const { contract } = await deployRequest.send({ from: p1Account.address, fee: { paymentMethod }, wait: { timeout: timeouts.deployTimeout }, diff --git a/src/main.nr b/src/main.nr index 9199e9a..fa597ef 100644 --- a/src/main.nr +++ b/src/main.nr @@ -76,7 +76,7 @@ pub contract PodRacing { // Ensure this game_id hasn't been used yet (player1 must be zero address) assert(self.storage.races.at(game_id).read().player1.eq(AztecAddress::zero())); - let player1 = self.context.maybe_msg_sender().unwrap(); + let player1 = self.msg_sender(); debug_log_format( "Creating game {0} by player {1}", [game_id, player1.to_field()], @@ -99,7 +99,7 @@ pub contract PodRacing { fn join_game(game_id: Field) { let maybe_existing_game = self.storage.races.at(game_id).read(); - let player2 = self.context.maybe_msg_sender().unwrap(); + let player2 = self.msg_sender(); debug_log_format("Player {0} joining game {1}", [player2.to_field(), game_id]); // Add the caller as player2 (validates that player1 exists and player2 is empty) @@ -129,7 +129,7 @@ pub contract PodRacing { // Validate that total points don't exceed 9 (you can't max out all tracks) assert(track1 + track2 + track3 + track4 + track5 < 10); - let player = self.context.maybe_msg_sender().unwrap(); + let player = self.msg_sender(); debug_log_format( "Player {0} playing round {1} in game {2}", [player.to_field(), round as Field, game_id], @@ -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(PodRacing::at(self.context.this_address()).validate_and_play_round( - player, - game_id, - round, - )); + self.enqueue_self.validate_and_play_round(player, game_id, round); } // docs:end:play-round @@ -184,7 +180,7 @@ pub contract PodRacing { // This is the "reveal" phase where private choices become public #[external("private")] fn finish_game(game_id: Field) { - let player = self.context.maybe_msg_sender().unwrap(); + let player = self.msg_sender(); debug_log_format( "Player {0} finishing game {1}", [player.to_field(), game_id], @@ -217,7 +213,7 @@ pub contract PodRacing { // Enqueue public function to store the revealed totals on-chain // Now the revealing player's track totals will be publicly visible - self.enqueue(PodRacing::at(self.context.this_address()).validate_finish_game_and_reveal( + self.enqueue_self.validate_finish_game_and_reveal( player, game_id, total_track1, @@ -225,7 +221,7 @@ pub contract PodRacing { total_track3, total_track4, total_track5, - )); + ); } // docs:end:finish-game diff --git a/src/test/e2e/accounts.test.ts b/src/test/e2e/accounts.test.ts index 54ec921..16f2293 100644 --- a/src/test/e2e/accounts.test.ts +++ b/src/test/e2e/accounts.test.ts @@ -12,6 +12,7 @@ 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/aztec.js/contracts"; import { Fr } from "@aztec/aztec.js/fields"; @@ -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,7 +91,7 @@ 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(', ')}`); @@ -98,7 +99,7 @@ describe("Accounts", () => { // balance of each random account is 0 before bridge console.log('Checking initial balances...'); let balances = await Promise.all(randomAddresses.map(async a => - await feeJuiceContract.methods.balance_of_public(a).simulate({ from: ownerAccount.address }) + (await feeJuiceContract.methods.balance_of_public(a).simulate({ from: ownerAccount.address })).result )); console.log(`Initial balances: ${balances.join(', ')}`); balances.forEach(b => expect(b).toBe(0n)); @@ -137,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 } }); @@ -145,9 +146,9 @@ 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 } }); @@ -177,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 } }); @@ -197,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 }, diff --git a/src/test/e2e/index.test.ts b/src/test/e2e/index.test.ts index 706fec9..7f35400 100644 --- a/src/test/e2e/index.test.ts +++ b/src/test/e2e/index.test.ts @@ -8,6 +8,7 @@ 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/aztec.js/contracts"; import { Fr } from "@aztec/aztec.js/fields"; @@ -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,11 +143,11 @@ describe("Pod Racing Game", () => { // Deploy the contract once for all tests logger.info('Deploying Pod Racing contract...'); const adminAddress = player1Account.address; - contract = await PodRacingContract.deploy(wallet, adminAddress).send({ + ({ contract } = await PodRacingContract.deploy(wallet, adminAddress).send({ from: adminAddress, fee: { paymentMethod: sponsoredPaymentMethod }, wait: { timeout: getTimeouts().deployTimeout } - }); + })); logger.info(`Contract deployed at: ${contract.address.toString()}`); }, 600000) @@ -160,7 +162,7 @@ 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 } diff --git a/src/test/e2e/public_logging.test.ts b/src/test/e2e/public_logging.test.ts index 9b6022c..db8ace7 100644 --- a/src/test/e2e/public_logging.test.ts +++ b/src/test/e2e/public_logging.test.ts @@ -16,6 +16,7 @@ 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/aztec.js/contracts"; import { Fr } from "@aztec/aztec.js/fields"; @@ -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,11 +71,11 @@ describe("Public Function Logging", () => { // Deploy the contract logger.info('Deploying Pod Racing contract...'); const adminAddress = player1Account.address; - contract = await PodRacingContract.deploy(wallet, adminAddress).send({ + ({ contract } = await PodRacingContract.deploy(wallet, adminAddress).send({ from: adminAddress, fee: { paymentMethod: sponsoredPaymentMethod }, wait: { timeout: getTimeouts().deployTimeout } - }); + })); logger.info(`Contract deployed at: ${contract.address.toString()}`); }, 600000) diff --git a/src/utils/deploy_account.ts b/src/utils/deploy_account.ts index e87b2d6..52cab9f 100644 --- a/src/utils/deploy_account.ts +++ b/src/utils/deploy_account.ts @@ -5,8 +5,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"; export async function deploySchnorrAccount(wallet?: EmbeddedWallet): Promise { @@ -42,13 +42,13 @@ export async function deploySchnorrAccount(wallet?: EmbeddedWallet): Promise { @@ -7,7 +7,7 @@ export async function setupWallet(): Promise { const node = createAztecNodeClient(nodeUrl); const wallet = await EmbeddedWallet.create(node, { ephemeral: true, - pxeConfig: { proverEnabled: configManager.isDevnet() }, + pxeConfig: { proverEnabled: false }, }); return wallet; } diff --git a/src/utils/sponsored_fpc.ts b/src/utils/sponsored_fpc.ts index 8dc5c65..817f753 100644 --- a/src/utils/sponsored_fpc.ts +++ b/src/utils/sponsored_fpc.ts @@ -25,7 +25,7 @@ export async function setupSponsoredFPC(deployer: Wallet, log: LogFn) { const deployRequest = SponsoredFPCContract.deploy(deployer); // Simulate before sending to surface revert reasons await deployRequest.simulate({ from }); - const deployed = await deployRequest + const { contract: deployed } = await deployRequest .send({ from, contractAddressSalt: new Fr(SPONSORED_FPC_SALT), diff --git a/yarn.lock b/yarn.lock index ab28657..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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/accounts/-/accounts-4.0.0-devnet.2-patch.1.tgz#18f6aad989fa49c724ef71d65933639a1ab74def" - integrity sha512-1zylLQOQjWK6/heWo2c2y+VKee+E5fFWptk/x8mxZFD5F8Z2jcw82TGN1keKp38V7qk0K8jROCYq/QCEZy3SKg== - dependencies: - "@aztec/aztec.js" "4.0.0-devnet.2-patch.1" - "@aztec/entrypoints" "4.0.0-devnet.2-patch.1" - "@aztec/ethereum" "4.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" - "@aztec/stdlib" "4.0.0-devnet.2-patch.1" +"@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/aztec.js/-/aztec.js-4.0.0-devnet.2-patch.1.tgz#b4d1d9d9e4e24e0ba578b3a0765c8e11def7116e" - integrity sha512-tyaKVxp/Ba2FqTtPrM0u0j8ravdqWIggKtCxO+yusyg3sV/dZGa44BFoqrPX3pXPVITrcQGgRfqhOA13hNcc/Q== - dependencies: - "@aztec/constants" "4.0.0-devnet.2-patch.1" - "@aztec/entrypoints" "4.0.0-devnet.2-patch.1" - "@aztec/ethereum" "4.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" - "@aztec/l1-artifacts" "4.0.0-devnet.2-patch.1" - "@aztec/protocol-contracts" "4.0.0-devnet.2-patch.1" - "@aztec/stdlib" "4.0.0-devnet.2-patch.1" - axios "^1.12.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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/bb-prover/-/bb-prover-4.0.0-devnet.2-patch.1.tgz#3b9bf7ebd0229fca6f2fe056fdf3c4cdae1c8d45" - integrity sha512-7jVwLQFWuIcbeev4jxAYvcm71RH7wm/mXc3tEt5X90QAvhvDOSqNOMQal7wr2Ars8h6OTvx45S4qFkITiJyLAA== - dependencies: - "@aztec/bb.js" "4.0.0-devnet.2-patch.1" - "@aztec/constants" "4.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" - "@aztec/noir-noirc_abi" "4.0.0-devnet.2-patch.1" - "@aztec/noir-protocol-circuits-types" "4.0.0-devnet.2-patch.1" - "@aztec/noir-types" "4.0.0-devnet.2-patch.1" - "@aztec/simulator" "4.0.0-devnet.2-patch.1" - "@aztec/stdlib" "4.0.0-devnet.2-patch.1" - "@aztec/telemetry-client" "4.0.0-devnet.2-patch.1" - "@aztec/world-state" "4.0.0-devnet.2-patch.1" +"@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/bb.js/-/bb.js-4.0.0-devnet.2-patch.1.tgz#4caebd7590d2aaaba229a114c10e2b39f5259d55" - integrity sha512-SEOidi9kKFSE+DGA4w9h+PPJwXGXZ8VzG0xgrZgmx9cWFZMW7BW6k2kqkrmcd1n4YXrDYAztuLacw5oDvebuzg== +"@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/blob-lib/-/blob-lib-4.0.0-devnet.2-patch.1.tgz#ebaaa39f99e2b03cc5051690d325971793dfbde6" - integrity sha512-UxjqZSUd/B+puRp1hOYcrymsvSgMt+qFijwm6ygQtsnntb5+IJ35TYFGWXPEgvQnE5T0/+nIEJqwc2NvOlohcA== +"@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.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" + "@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/builder/-/builder-4.0.0-devnet.2-patch.1.tgz#b7afe10628e92406c2b46147cfaa258df57d9b47" - integrity sha512-gzhHfqo4fRrYkB++0jJVGdXsKFBRQCmxQRJe+4fFRT7utarK12Kfgt99WYwhTUBR5fpxrz8xp8iLuF1qHJNAOQ== +"@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.0.0-devnet.2-patch.1" - "@aztec/stdlib" "4.0.0-devnet.2-patch.1" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" + "@aztec/stdlib" "4.2.0-aztecnr-rc.2" commander "^12.1.0" -"@aztec/constants@4.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/constants/-/constants-4.0.0-devnet.2-patch.1.tgz#42c12878146347b972b4fc40082cc0ca1b65f53b" - integrity sha512-rVM0ATvof5Ve4GHGbnvOvJ468CCeYVPrfLGvLs9dv567EHU7Z78y3P4vXm8JsW1pqXXcldqn2f9591R7dKMYHg== +"@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.0.0-devnet.2-patch.1" + "@aztec/foundation" "4.2.0-aztecnr-rc.2" tslib "^2.4.0" -"@aztec/entrypoints@4.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/entrypoints/-/entrypoints-4.0.0-devnet.2-patch.1.tgz#e826a124d471954dfd04e9b5e788a20c80fce1c2" - integrity sha512-BqmKOuvMmWjL1MQFLIQUiCN9LBfqyFvOqFzLhxqnhQsKmjRMjmOFra5OBQMjmi04P7a1nIg45UgV+q41CoC/ag== +"@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.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" - "@aztec/protocol-contracts" "4.0.0-devnet.2-patch.1" - "@aztec/stdlib" "4.0.0-devnet.2-patch.1" + "@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/ethereum/-/ethereum-4.0.0-devnet.2-patch.1.tgz#796a27822324ad6611c6b5932549d3689df65aef" - integrity sha512-MqdZBa3V/b8X80aVRa26V5yxo8gWWcSPfG7r4EaMQ2otA7t8MHRLJffN1TNwkYqJPCBuLiZpVGYM2gQw1qmx/A== +"@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.0.0-devnet.2-patch.1" - "@aztec/constants" "4.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" - "@aztec/l1-artifacts" "4.0.0-devnet.2-patch.1" + "@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/foundation/-/foundation-4.0.0-devnet.2-patch.1.tgz#670df4ddb5289d5f684e25261adc7b8aa86e2eae" - integrity sha512-s61AqiRhueNVqvCh+11QY/pWExmBtMYq1aD0nXt7ocpkbVEjbuP/1AzmIej5UDcUnC2l+2Z89dDiz4uXDd8pyQ== +"@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.0.0-devnet.2-patch.1" + "@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/key-store/-/key-store-4.0.0-devnet.2-patch.1.tgz#4f1f942641aac7234b98f6d32077bf453bfc09ea" - integrity sha512-UNMWNrfOCrRa9zKeHDOVN0YXUGhgMU477foTPcZ5YvAtYTJlQ8znbJ6xiaMWEJEroDIl5aorGlLIdxY3sseKRw== +"@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.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" - "@aztec/kv-store" "4.0.0-devnet.2-patch.1" - "@aztec/stdlib" "4.0.0-devnet.2-patch.1" + "@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/kv-store/-/kv-store-4.0.0-devnet.2-patch.1.tgz#16afe1fcd60d835f77e8583e9d998bd992f6956c" - integrity sha512-z4IyhmseSFnP2shRtf6wmQxxMBwr7atdUnpYGP+y2L6LWtTvQ4wnHNY7wx/nSFcJ79bkyJF+j5DxJPCgcxDk7g== +"@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.0.0-devnet.2-patch.1" - "@aztec/ethereum" "4.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" - "@aztec/native" "4.0.0-devnet.2-patch.1" - "@aztec/stdlib" "4.0.0-devnet.2-patch.1" + "@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/l1-artifacts/-/l1-artifacts-4.0.0-devnet.2-patch.1.tgz#d5d5e5c79b38d21047bb7100072dc37d4cba2ffe" - integrity sha512-Tj7BtWas0Z2zP390hLrZGBgvvmWJ33YIxwb+m8M/qdeAQNhszn3KFX0dPRH6kNiuBl/iikxLhjL+C5R1eLkgnA== +"@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/merkle-tree/-/merkle-tree-4.0.0-devnet.2-patch.1.tgz#a4a1105408abb3b86defb3f3bb85e23fd497c949" - integrity sha512-vmKwpOeKSE72Uj8XgOqdjys9jyEEfcJWIoVG2c/b/1hVBsp3+nARWIB73ksqjzfSbxSq3INZMYYjEWTiFfDbDA== +"@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.0.0-devnet.2-patch.1" - "@aztec/kv-store" "4.0.0-devnet.2-patch.1" - "@aztec/stdlib" "4.0.0-devnet.2-patch.1" + "@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/native/-/native-4.0.0-devnet.2-patch.1.tgz#055c6530bf5121dc74a40d7cff3376f230f5e0b1" - integrity sha512-ljlDodg+QDpJjdobfu//6sb8J2crGNUmZfEDBQtq1FU/3WZGDEVw+Dpie3IM+U92Ca6nhe1/xCEy1GTacpuFpg== +"@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.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" + "@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/noir-acvm_js/-/noir-acvm_js-4.0.0-devnet.2-patch.1.tgz#3ac027dbdc465e1d5180bcb9d0004f0c58187e18" - integrity sha512-wXi4cqLN/5jENfJtHTg5MZSBoU1/OPbAXozWmpi6yP26rBmVQY7c4Fq0D7HwxoGgBoYfflweszM9ZEhKS8Srlg== +"@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/noir-contracts.js/-/noir-contracts.js-4.0.0-devnet.2-patch.1.tgz#acbd0b4997115506da395c0a4200415678dea73e" - integrity sha512-BMyF++ifcnwd6ydcYJ9EmCvA1MEr0XkoAJhVImqUkYGQmGo9qXFlspQ908pz4nsfJ6Id4bz3DlReJFiuufvQAQ== +"@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.0.0-devnet.2-patch.1" + "@aztec/aztec.js" "4.2.0-aztecnr-rc.2" tslib "^2.4.0" -"@aztec/noir-noir_codegen@4.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/noir-noir_codegen/-/noir-noir_codegen-4.0.0-devnet.2-patch.1.tgz#1e1419a7e58de6b3e0b12666de5325439dc7f4d7" - integrity sha512-E0mHd74YwJ6ZrBk64zjdN37DywavGMoRQZicDdc1CRIu/rKU94de+KJbH7xH+fIDQ1H23uEV555uajNo36zhDA== +"@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.0.0-devnet.2-patch.1" + "@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/noir-noirc_abi/-/noir-noirc_abi-4.0.0-devnet.2-patch.1.tgz#26fe7a639d0fe2d7c03828fc0e07db7bf7f9f338" - integrity sha512-9cxLL0BZi0Jw7VT8OK9qYbH7Z7tdz0TIfDHDfiFsXSmtABflAN7XMZ1DwJnwIqPDoTVTBTev99Y9Wh01zyBbWg== - dependencies: - "@aztec/noir-types" "4.0.0-devnet.2-patch.1" - -"@aztec/noir-protocol-circuits-types@4.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/noir-protocol-circuits-types/-/noir-protocol-circuits-types-4.0.0-devnet.2-patch.1.tgz#e77c3569d82503b4a57ae7d1a79ec2ddabc81ccd" - integrity sha512-rzMyITJvLprXu+TXGSUeisrbl5A1cVZGui5KlaPo+FrqL+GKbBypvqicMgGnirHQ5uDbYH2j/W9IYnlYvwDhoA== - dependencies: - "@aztec/blob-lib" "4.0.0-devnet.2-patch.1" - "@aztec/constants" "4.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" - "@aztec/noir-acvm_js" "4.0.0-devnet.2-patch.1" - "@aztec/noir-noir_codegen" "4.0.0-devnet.2-patch.1" - "@aztec/noir-noirc_abi" "4.0.0-devnet.2-patch.1" - "@aztec/noir-types" "4.0.0-devnet.2-patch.1" - "@aztec/stdlib" "4.0.0-devnet.2-patch.1" +"@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/noir-types/-/noir-types-4.0.0-devnet.2-patch.1.tgz#080ee9514c85bd0b8698b3a5321646449b46ad22" - integrity sha512-W6bY7YyYXNYYOt/xbIfiZEh8k+pDraxmK1UiU67JO+UYMz4cEru7utJ0vhJ7zbBhvZxRNP9Y59TjfKy5vBYyag== +"@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/protocol-contracts/-/protocol-contracts-4.0.0-devnet.2-patch.1.tgz#f15bf67904e005b3658896923a6b8a254afa1b29" - integrity sha512-7gcHZvqD2RgdtSp28KWS3Xsr7PbiYNj1GP3tcHtmCzCCFJnTCiruNdDWpW1Z4zojlcAWlddUG95enrjTliI8ZA== +"@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.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" - "@aztec/stdlib" "4.0.0-devnet.2-patch.1" + "@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/pxe/-/pxe-4.0.0-devnet.2-patch.1.tgz#fb554f1d2ef29aa49a2767c30ffb7a2b0ef2294f" - integrity sha512-AJcBsKQhYxitn8QM5HN1Rwoz7D5dCuYh2U5T6VIFRyGC4c0hp+lFoY20/5D2rG04O2JdUx1cDJDhg2R7ZVw+vQ== - dependencies: - "@aztec/bb-prover" "4.0.0-devnet.2-patch.1" - "@aztec/bb.js" "4.0.0-devnet.2-patch.1" - "@aztec/builder" "4.0.0-devnet.2-patch.1" - "@aztec/constants" "4.0.0-devnet.2-patch.1" - "@aztec/ethereum" "4.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" - "@aztec/key-store" "4.0.0-devnet.2-patch.1" - "@aztec/kv-store" "4.0.0-devnet.2-patch.1" - "@aztec/noir-protocol-circuits-types" "4.0.0-devnet.2-patch.1" - "@aztec/noir-types" "4.0.0-devnet.2-patch.1" - "@aztec/protocol-contracts" "4.0.0-devnet.2-patch.1" - "@aztec/simulator" "4.0.0-devnet.2-patch.1" - "@aztec/stdlib" "4.0.0-devnet.2-patch.1" +"@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,42 +869,42 @@ tslib "^2.4.0" viem "npm:@aztec/viem@2.38.2" -"@aztec/simulator@4.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/simulator/-/simulator-4.0.0-devnet.2-patch.1.tgz#2cc70cf9af6f07b20379fc3b9f203ef10f69c9b0" - integrity sha512-etecxwltlKQ9vdSPtC1iByNcWrWfSLFQZeXviFpBV8Uj67v0H3nJ+86wgG9ivJ0yreWo+pgTKeX7GRyz+W/J6g== - dependencies: - "@aztec/constants" "4.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" - "@aztec/native" "4.0.0-devnet.2-patch.1" - "@aztec/noir-acvm_js" "4.0.0-devnet.2-patch.1" - "@aztec/noir-noirc_abi" "4.0.0-devnet.2-patch.1" - "@aztec/noir-protocol-circuits-types" "4.0.0-devnet.2-patch.1" - "@aztec/noir-types" "4.0.0-devnet.2-patch.1" - "@aztec/protocol-contracts" "4.0.0-devnet.2-patch.1" - "@aztec/stdlib" "4.0.0-devnet.2-patch.1" - "@aztec/telemetry-client" "4.0.0-devnet.2-patch.1" - "@aztec/world-state" "4.0.0-devnet.2-patch.1" +"@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/stdlib/-/stdlib-4.0.0-devnet.2-patch.1.tgz#429e9bf8ed4f2e9baf8d6e23dca41eb85b879176" - integrity sha512-pgNAoejMOw7Xv+q+TkQScZ70D4eQxh5qUMyrwy1gYR3NXuHZahqKwg87eWP1JvqIitWD2n0jW2w49hU3rHmErg== +"@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.0.0-devnet.2-patch.1" - "@aztec/blob-lib" "4.0.0-devnet.2-patch.1" - "@aztec/constants" "4.0.0-devnet.2-patch.1" - "@aztec/ethereum" "4.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" - "@aztec/l1-artifacts" "4.0.0-devnet.2-patch.1" - "@aztec/noir-noirc_abi" "4.0.0-devnet.2-patch.1" - "@aztec/validator-ha-signer" "4.0.0-devnet.2-patch.1" + "@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.12.0" + axios "^1.13.5" json-stringify-deterministic "1.0.12" lodash.chunk "^4.2.0" lodash.isequal "^4.5.0" @@ -916,13 +916,13 @@ viem "npm:@aztec/viem@2.38.2" zod "^3.23.8" -"@aztec/telemetry-client@4.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/telemetry-client/-/telemetry-client-4.0.0-devnet.2-patch.1.tgz#e5c601c5eeb766ce5d87d495b9b080c0c9290d65" - integrity sha512-hrLHKcUYP9p4/5OzQxYhD9fUrywalOn/WwxladNICc4AoAkirbvS8cC6I03JfuQXVe5fR6GhEpr3J2nI7/dVtA== +"@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.0.0-devnet.2-patch.1" - "@aztec/stdlib" "4.0.0-devnet.2-patch.1" + "@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/validator-ha-signer/-/validator-ha-signer-4.0.0-devnet.2-patch.1.tgz#c81ea2d08d5d60870e36cd20fe3b5a9cfafe3074" - integrity sha512-vp9dMqK5RzDzpKwnXSb99XNosOExDBUsjCAFDPoRz5RJZlEvgHOptPKB45YiQlHkWxZGLXKQil26DP+LcxALeA== +"@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.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" + "@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.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/wallet-sdk/-/wallet-sdk-4.0.0-devnet.2-patch.1.tgz#9d8dcb3828c8de8378a54b22c17bfbc36f9e8b41" - integrity sha512-Hmp/Dz/Pt0c8+h231LRTwUAt7MiKa94q3KTsTQir9xIz+ZyJKTnvrWBIzgCbLAUZQy/XpOSWrHsLk99FOX2EKg== - dependencies: - "@aztec/aztec.js" "4.0.0-devnet.2-patch.1" - "@aztec/constants" "4.0.0-devnet.2-patch.1" - "@aztec/entrypoints" "4.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" - "@aztec/pxe" "4.0.0-devnet.2-patch.1" - "@aztec/stdlib" "4.0.0-devnet.2-patch.1" - -"@aztec/wallets@4.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/wallets/-/wallets-4.0.0-devnet.2-patch.1.tgz#af858fd4673279fe84758e41fa9198caf04c397b" - integrity sha512-g34ULDFovIVmXv2VpkydAFkmp8mmDkHd94/+8BFwKzieg7omlIwQqSvGaClki7nxWBeLJ6r71OD8PK8PV54qpQ== - dependencies: - "@aztec/accounts" "4.0.0-devnet.2-patch.1" - "@aztec/aztec.js" "4.0.0-devnet.2-patch.1" - "@aztec/entrypoints" "4.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" - "@aztec/kv-store" "4.0.0-devnet.2-patch.1" - "@aztec/protocol-contracts" "4.0.0-devnet.2-patch.1" - "@aztec/pxe" "4.0.0-devnet.2-patch.1" - "@aztec/stdlib" "4.0.0-devnet.2-patch.1" - "@aztec/wallet-sdk" "4.0.0-devnet.2-patch.1" - -"@aztec/world-state@4.0.0-devnet.2-patch.1": - version "4.0.0-devnet.2-patch.1" - resolved "https://registry.yarnpkg.com/@aztec/world-state/-/world-state-4.0.0-devnet.2-patch.1.tgz#9c3c7c02e58f6e1b156e930a1292e7d49826e4ff" - integrity sha512-3NqI9Y8rhWp4pWD5qTO3QGoXTIajuTwoz3Up2/Sif7q/blBfnqfU5fiImiZgXER7waxDtJkBzeji02KhJip0uA== - dependencies: - "@aztec/constants" "4.0.0-devnet.2-patch.1" - "@aztec/foundation" "4.0.0-devnet.2-patch.1" - "@aztec/kv-store" "4.0.0-devnet.2-patch.1" - "@aztec/merkle-tree" "4.0.0-devnet.2-patch.1" - "@aztec/native" "4.0.0-devnet.2-patch.1" - "@aztec/protocol-contracts" "4.0.0-devnet.2-patch.1" - "@aztec/stdlib" "4.0.0-devnet.2-patch.1" - "@aztec/telemetry-client" "4.0.0-devnet.2-patch.1" +"@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" @@ -3050,14 +3050,14 @@ atomic-sleep@^1.0.0: resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== -axios@^1.12.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.1.tgz#45b62dc8fe04e0e92274e08b98e910ba3d7963a7" - integrity sha512-hU4EGxxt+j7TQijx1oYdAjw4xuIp1wRQSsbMFwSthCWeBQur1eF+qJ5iQ5sN3Tw8YRzQNKb8jszgBdMDVqwJcw== +axios@^1.13.5: + 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.6" - form-data "^4.0.4" - proxy-from-env "^1.1.0" + follow-redirects "^1.15.11" + form-data "^4.0.5" + proxy-from-env "^2.1.0" babel-jest@^29.7.0: version "29.7.0" @@ -3989,10 +3989,10 @@ follow-redirects@^1.0.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== -follow-redirects@^1.15.6: - version "1.15.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.8.tgz#ae67b97ae32e0a7b36066a5448938374ec18d13d" - integrity sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig== +follow-redirects@^1.15.11: + version "1.15.11" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== foreground-child@^3.1.0, foreground-child@^3.3.1: version "3.3.1" @@ -4013,10 +4013,10 @@ form-data@^2.5.0: mime-types "^2.1.35" safe-buffer "^5.2.1" -form-data@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4" - integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== +form-data@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053" + integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -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"