diff --git a/.env.example b/.env.example index b2c75ac..b22b20e 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,7 @@ POD_RACING_CONTRACT_ADDRESS="0x2320c9938b3e87feb4e475413456d028572f3367e18d61e7d198d342b557f297" SECRET="0x29aa7f43021f964fe46527ff4df0e9211de94274f54eff12ec81070ee3e16300" SALT="0x23c46f2dd4450fb881f0b0e70c3974f84dfa9d199493001b3fe8eb136dc612cd" -AZTEC_ENV=sandbox +AZTEC_ENV=local-network CONTRACT_SALT="0x2d7e8a973f9039f0e2c7771376e131f8ca1c18bd337ee8fa5c6d89db0198645e" CONTRACT_DEPLOYER="0x2e34557bae428d3c489f67e9aa326b41a09faf03f619969b883e413cbec7bc1c" CONTRACT_PK_NULLIFIER="0x01498945581e0eb9f8427ad6021184c700ef091d570892c437d12c7d90364bbd170ae506787c5c43d6ca9255d571c10fa9ffa9d141666e290c347c5c9ab7e344" diff --git a/.github/workflows/sandbox.yaml b/.github/workflows/local-network.yaml similarity index 88% rename from .github/workflows/sandbox.yaml rename to .github/workflows/local-network.yaml index 46dc848..81f2d65 100644 --- a/.github/workflows/sandbox.yaml +++ b/.github/workflows/local-network.yaml @@ -1,4 +1,4 @@ -name: Sandbox Tests +name: Local Network Tests on: push: @@ -12,12 +12,12 @@ on: workflow_dispatch: jobs: - sandbox-tests: - name: Sandbox Tests + local-network-tests: + name: Local Network Tests runs-on: ubuntu-latest env: - AZTEC_ENV: sandbox - VERSION: 3.0.0-devnet.5 + AZTEC_ENV: local-network + AZTEC_VERSION: 3.0.0-devnet.20251212 steps: - name: Checkout repository @@ -40,17 +40,24 @@ jobs: - name: Update path run: echo "/home/runner/.aztec/bin" >> $GITHUB_PATH - - name: Set Aztec version and start sandbox + - name: Set Aztec version run: | - VERSION=${{ env.VERSION }} aztec-up - aztec start --sandbox & + VERSION=${{ env.AZTEC_VERSION }} aztec-up - - name: Wait for sandbox to be ready + # This is a temporary hack to fix a problem with v3 releases. + - name: Manually tag the aztec version as `latest` run: | - echo "Waiting for sandbox to start..." + docker tag aztecprotocol/aztec:${{ env.AZTEC_VERSION }} aztecprotocol/aztec:latest + + - name: Start local Aztec network + run: aztec start --local-network & + + - name: Wait for local network to be ready + run: | + echo "Waiting for local network to start..." for i in {1..30}; do if curl -s http://localhost:8080/status >/dev/null 2>&1; then - echo "โœ… Sandbox is ready!" + echo "โœ… Local network is ready!" break fi echo "Waiting... ($i/30)" @@ -61,7 +68,7 @@ jobs: run: yarn - name: Compile contracts - run: script -e -c "${AZTEC_NARGO:-aztec-nargo} compile && aztec-postprocess-contract" + run: script -e -c "aztec compile" - name: Generate contract artifacts run: script -e -c "aztec codegen target --outdir src/artifacts" @@ -180,7 +187,7 @@ jobs: echo "๐Ÿ“‹ Saved constructor args to .env file" fi - - name: Run sandbox scripts + - name: Run local network scripts run: | script -e -c "yarn fees" script -e -c "yarn multiple-wallet" diff --git a/AGENTS.md b/AGENTS.md index 049797a..5137b9c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,12 +1,12 @@ # Repository guidelines for Codex agents -This repository contains TypeScript scripts and Noir contracts for the Aztec sandbox. +This repository contains TypeScript scripts and Noir contracts for the Aztec local network. Follow these guidelines when contributing: ## Setup - Use **Node.js v22** with Yarn. - Install dependencies with `yarn install`. -- Start the Aztec sandbox using `aztec start --sandbox` before running tests or scripts. +- Start the Aztec local network using `aztec start --local-network` before running tests or scripts. ## Development - Compile contracts with `yarn compile` and generate TypeScript artifacts with `yarn codegen`. diff --git a/Nargo.toml b/Nargo.toml index 5a276b7..fb003a6 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-packages/", tag = "v3.0.0-devnet.5", directory = "noir-projects/aztec-nr/aztec" } +aztec = { git = "https://github.com/AztecProtocol/aztec-nr/", tag = "v3.0.0-devnet.20251212", directory = "aztec" } diff --git a/README.md b/README.md index b99b268..92fd7c3 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ # Aztec Starter -## Sandbox +## Local Network -This repo is meant to be a starting point for learning to write Aztec contracts and tests on the Aztec sandbox (local development environment). It includes an example contract, useful commands in `package.json` and helpful scripts in `./scripts`. +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`. You can find the **Pod Racing Game contract** in `./src/main.nr`. A simple integration test is in `./src/test/e2e/index.test.ts`. @@ -16,7 +16,7 @@ The Pod Racing contract is a two-player competitive game where players allocate ## Devnet -This repo connects to a locally running Aztec Sandbox by default, but can be configured to connect to the devnet by specifying `AZTEC_ENV=devnet` in a `.env` file or by prefixing a command e.g. `AZTEC_ENV=devnet yarn deploy`. +This repo connects to a locally running Aztec local network by default, but can be configured to connect to the devnet by specifying `AZTEC_ENV=devnet` in a `.env` file or by prefixing a command e.g. `AZTEC_ENV=devnet yarn deploy`.
@@ -38,7 +38,7 @@ Use **Node.js version 22.15.0**. [Start your codespace from the codespace dropdown](https://docs.github.com/en/codespaces/getting-started/quickstart). -Get the **sandbox, aztec-cli, and other tooling** with this command: +Get the **local network, aztec-cli, and other tooling** with this command: ```bash bash -i <(curl -s https://install.aztec.network) @@ -47,7 +47,7 @@ bash -i <(curl -s https://install.aztec.network) Install the correct version of the toolkit with: ```bash -export VERSION=3.0.0-devnet.5 +export VERSION=3.0.0-devnet.20251212 aztec-up && docker pull aztecprotocol/aztec:$VERSION && docker tag aztecprotocol/aztec:$VERSION aztecprotocol/aztec:latest ``` @@ -55,27 +55,27 @@ aztec-up && docker pull aztecprotocol/aztec:$VERSION && docker tag aztecprotocol This project uses JSON configuration files to manage environment-specific settings: -- `config/sandbox.json` - Configuration for local sandbox development +- `config/local-network.json` - Configuration for local network development - `config/devnet.json` - Configuration for devnet deployment -The system automatically loads the appropriate configuration file based on the `ENV` environment variable. If `ENV` is not set, it defaults to `sandbox`. +The system automatically loads the appropriate configuration file based on the `ENV` environment variable. If `ENV` is not set, it defaults to `local-network`. The configuration files contain network URLs, timeouts, and environment-specific settings. You can modify these files to customize your development environment. -### Running on Sandbox (Local Development) +### Running on Local Network (Local Development) -Start the sandbox with: +Start the local network with: ```bash -aztec start --sandbox +aztec start --local-network ``` -Run scripts and tests with default sandbox configuration: +Run scripts and tests with default local network configuration: ```bash yarn compile && yarn codegen # Compile contract and generate TS -yarn deploy # Deploy to sandbox -yarn test # Run tests on sandbox +yarn deploy # Deploy to local network +yarn test # Run tests on local network ``` ### Running on Devnet @@ -104,7 +104,7 @@ yarn install ## ๐Ÿ— **Compile** ```bash -aztec-nargo compile +aztec compile ``` or @@ -125,14 +125,14 @@ yarn codegen --- -:warning: Tests and scripts set up and run the Private Execution Environment (PXE) and store PXE data in the `./store` directory. If you restart the sandbox, you will need to delete the `./store` directory to avoid errors. +:warning: Tests and scripts set up and run the Private Execution Environment (PXE) and store PXE data in the `./store` directory. If you restart the local network, you will need to delete the `./store` directory to avoid errors. ## Transaction Profiling -**Make sure the sandbox is running before profiling.** +**Make sure the local network is running before profiling.** ```bash -aztec start --sandbox +aztec start --local-network ``` Then run an example contract deployment profile with: @@ -151,10 +151,10 @@ See the [demo-wallet for an example](https://github.com/AztecProtocol/demo-walle ## ๐Ÿงช **Test** -**Make sure the sandbox is running before running tests.** +**Make sure the local network is running before running tests.** ```bash -aztec start --sandbox +aztec start --local-network ``` Then test with: @@ -165,7 +165,7 @@ yarn test Testing will run the **TypeScript tests** defined in `index.test.ts` inside `./src/test/e2e`, as well as the [Aztec Testing eXecution Environment (TXE)](https://docs.aztec.network/developers/guides/smart_contracts/testing) tests defined in [`first.nr`](./src/test/first.nr) (imported in the contract file with `mod test;`). -Note: The Typescript tests spawn an instance of the sandbox to test against, and close it once the TS tests are complete. +Note: The Typescript tests spawn an instance of the local network to test against, and close it once the TS tests are complete. --- @@ -193,7 +193,7 @@ The `./src/utils/` folder contains utility functions: ## โ— **Error Resolution** -:warning: Tests and scripts set up and run the Private Execution Environment (PXE) and store PXE data in the `./store` directory. If you restart the sandbox, you will need to delete the `./store` directory to avoid errors. +:warning: Tests and scripts set up and run the Private Execution Environment (PXE) and store PXE data in the `./store` directory. If you restart the local network, you will need to delete the `./store` directory to avoid errors. ### ๐Ÿ”„ **Update Node.js and Noir Dependencies** diff --git a/config/config.ts b/config/config.ts index 0c0412d..04f9fb7 100644 --- a/config/config.ts +++ b/config/config.ts @@ -22,7 +22,7 @@ export interface EnvironmentConfig { environment: 'local' | 'testnet' | 'devnet' | 'mainnet'; network: NetworkConfig; settings: { - skipSandbox: boolean; + skipLocalNetwork: boolean; version: string; }; timeouts?: TimeoutConfig; @@ -34,7 +34,7 @@ export class ConfigManager { private configPath: string; private constructor() { - const env = process.env.AZTEC_ENV || 'sandbox'; + const env = process.env.AZTEC_ENV || 'local-network'; this.configPath = path.resolve(process.cwd(), `config/${env}.json`); this.loadConfig(); console.log(`Loaded configuration: ${this.config.name} environment`); @@ -69,7 +69,7 @@ export class ConfigManager { return this.config.environment === 'devnet'; } - public isSandbox(): boolean { + public isLocalNetwork(): boolean { return this.config.environment === 'local'; } diff --git a/config/devnet.json b/config/devnet.json index b211da1..54a59a3 100644 --- a/config/devnet.json +++ b/config/devnet.json @@ -2,13 +2,13 @@ "name": "devnet", "environment": "devnet", "network": { - "nodeUrl": "https://devnet.aztec-labs.com/", + "nodeUrl": "https://next.devnet.aztec-labs.com", "l1RpcUrl": "https://ethereum-sepolia-rpc.publicnode.com", "l1ChainId": 11155111 }, "settings": { - "skipSandbox": true, - "version": "3.0.0-devnet.5" + "skipLocalNetwork": true, + "version": "3.0.0-devnet.20251212" }, "timeouts": { "deployTimeout": 1200000, diff --git a/config/sandbox.json b/config/local-network.json similarity index 73% rename from config/sandbox.json rename to config/local-network.json index 4152955..063c060 100644 --- a/config/sandbox.json +++ b/config/local-network.json @@ -1,5 +1,5 @@ { - "name": "sandbox", + "name": "local-network", "environment": "local", "network": { "nodeUrl": "http://localhost:8080", @@ -7,12 +7,12 @@ "l1ChainId": 31337 }, "settings": { - "skipSandbox": false, - "version": "3.0.0-devnet.5" + "skipLocalNetwork": false, + "version": "3.0.0-devnet.20251212" }, "timeouts": { "deployTimeout": 120000, "txTimeout": 60000, "waitTimeout": 30000 } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 999f9dc..1883314 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "clean": "rm -rf ./src/artifacts ./target", "clear-store": "rm -rf ./store", "codegen": "aztec codegen target --outdir src/artifacts", - "compile": "${AZTEC_NARGO:-aztec-nargo} compile && aztec-postprocess-contract", + "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", @@ -30,17 +30,16 @@ "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", - "update": "./.github/scripts/update_contract.sh $(grep -oP 'tag\\s*=\\s*\"\\K[^\"]+' \"Nargo.toml\" | head -1) && yarn && yarn update-readme-version", "update-readme-version": "node ./.github/scripts/update-readme-version.js" }, "dependencies": { - "@aztec/accounts": "3.0.0-devnet.5", - "@aztec/aztec.js": "3.0.0-devnet.5", - "@aztec/noir-contracts.js": "3.0.0-devnet.5", - "@aztec/protocol-contracts": "3.0.0-devnet.5", - "@aztec/pxe": "3.0.0-devnet.5", - "@aztec/stdlib": "3.0.0-devnet.5", - "@aztec/test-wallet": "3.0.0-devnet.5", + "@aztec/accounts": "3.0.0-devnet.20251212", + "@aztec/aztec.js": "3.0.0-devnet.20251212", + "@aztec/noir-contracts.js": "3.0.0-devnet.20251212", + "@aztec/protocol-contracts": "3.0.0-devnet.20251212", + "@aztec/pxe": "3.0.0-devnet.20251212", + "@aztec/stdlib": "3.0.0-devnet.20251212", + "@aztec/test-wallet": "3.0.0-devnet.20251212", "dotenv": "^17.2.2" }, "devDependencies": { diff --git a/scripts/deploy_contract.ts b/scripts/deploy_contract.ts index 3e4b36c..325bbcf 100644 --- a/scripts/deploy_contract.ts +++ b/scripts/deploy_contract.ts @@ -1,8 +1,6 @@ import { PodRacingContract } from "../src/artifacts/PodRacing.js" import { Logger, createLogger } from "@aztec/aztec.js/log"; import { SponsoredFeePaymentMethod } from "@aztec/aztec.js/fee/testing"; -import { Fr } from "@aztec/aztec.js/fields"; -import { TokenContract } from "@aztec/noir-contracts.js/Token" import { setupWallet } from "../src/utils/setup_wallet.js"; import { getSponsoredFPCInstance } from "../src/utils/sponsored_fpc.js"; import { SponsoredFPCContract } from "@aztec/noir-contracts.js/SponsoredFPC"; @@ -28,7 +26,7 @@ async function main() { logger.info(`๐Ÿ’ฐ Sponsored FPC instance obtained at: ${sponsoredFPC.address}`); logger.info('๐Ÿ“ Registering sponsored FPC contract with wallet...'); - await wallet.registerContract({ instance: sponsoredFPC, artifact: SponsoredFPCContract.artifact }); + await wallet.registerContract(sponsoredFPC, SponsoredFPCContract.artifact); const sponsoredPaymentMethod = new SponsoredFeePaymentMethod(sponsoredFPC.address); logger.info('โœ… Sponsored fee payment method configured'); @@ -42,13 +40,13 @@ async function main() { logger.info('๐ŸŽ๏ธ Starting pod racing contract deployment...'); logger.info(`๐Ÿ“‹ Admin address for pod racing contract: ${address}`); - const deployTx = PodRacingContract.deploy(wallet, address).send({ + const deployMethod = PodRacingContract.deploy(wallet, address).send({ from: address, fee: { paymentMethod: sponsoredPaymentMethod } }); logger.info('โณ Waiting for deployment transaction to be mined...'); - const podRacingContract = await deployTx.deployed({ timeout: timeouts.deployTimeout }); + const podRacingContract = await deployMethod.deployed({ timeout: timeouts.deployTimeout }); logger.info(`๐ŸŽ‰ Pod Racing Contract deployed successfully!`); logger.info(`๐Ÿ“ Contract address: ${podRacingContract.address}`); @@ -59,7 +57,7 @@ async function main() { logger.info('โœ… Contract deployed and ready for game creation'); // Get contract instance for instantiation data - const instance = podRacingContract.instance; + const instance = await deployMethod.getInstance(); if (instance) { logger.info('๐Ÿ“ฆ Contract instantiation data:'); logger.info(`Salt: ${instance.salt}`); @@ -72,7 +70,6 @@ async function main() { } logger.info(`Constructor args: ${JSON.stringify([address.toString()])}`); } - logger.info('๐Ÿ Deployment process completed successfully!'); logger.info(`๐Ÿ“‹ Summary:`); logger.info(` - Contract Address: ${podRacingContract.address}`); diff --git a/scripts/fees.ts b/scripts/fees.ts index a5d3250..2108f8f 100644 --- a/scripts/fees.ts +++ b/scripts/fees.ts @@ -10,7 +10,8 @@ import { PodRacingContract } from "../src/artifacts/PodRacing.js" import { TokenContract } from "@aztec/noir-contracts.js/Token"; import { SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee/testing' import { getSponsoredFPCInstance } from "../src/utils/sponsored_fpc.js"; -import { createEthereumChain, createExtendedL1Client } from "@aztec/ethereum"; +import { createEthereumChain } from '@aztec/ethereum/chain'; +import { createExtendedL1Client } from '@aztec/ethereum/client'; import { deploySchnorrAccount } from "../src/utils/deploy_account.js"; import { setupWallet } from "../src/utils/setup_wallet.js"; import { Logger, createLogger } from '@aztec/aztec.js/log'; @@ -65,7 +66,7 @@ async function main() { // set up sponsored fee payments const sponsoredFPC = await getSponsoredFPCInstance(); - await wallet.registerContract({ instance: sponsoredFPC, artifact: SponsoredFPCContract.artifact }); + await wallet.registerContract(sponsoredFPC, SponsoredFPCContract.artifact); const paymentMethod = new SponsoredFeePaymentMethod(sponsoredFPC.address); // Two arbitrary txs to make the L1 message available on L2 @@ -122,7 +123,7 @@ async function main() { logger.info(`BananaCoin balance of newWallet is ${bananaBalance}`) const feeJuiceInstance = await getCanonicalFeeJuice(); - wallet.registerContract(feeJuiceInstance.address, FeeJuiceContract.artifact) + await wallet.registerContract(feeJuiceInstance.instance, FeeJuiceContract.artifact) const feeJuice = await FeeJuiceContract.at(feeJuiceInstance.address, wallet) await feeJuice.methods.claim(fpc.address, fpcClaim.claimAmount, fpcClaim.claimSecret, fpcClaim.messageLeafIndex).send({ from: account2.address }).wait() diff --git a/scripts/get_block.ts b/scripts/get_block.ts index a756609..b0c6e76 100644 --- a/scripts/get_block.ts +++ b/scripts/get_block.ts @@ -1,11 +1,12 @@ import { createAztecNodeClient } from "@aztec/aztec.js/node"; +import { BlockNumber } from "@aztec/foundation/branded-types"; import { getAztecNodeUrl } from "../config/config.js"; async function main() { const nodeUrl = getAztecNodeUrl(); const node = createAztecNodeClient(nodeUrl); - let block = await node.getBlock(1); + let block = await node.getBlock(BlockNumber(1)); console.log(block) console.log(await block?.hash()) } diff --git a/scripts/interaction_existing_contract.ts b/scripts/interaction_existing_contract.ts index 3a192d4..ff0d7f5 100644 --- a/scripts/interaction_existing_contract.ts +++ b/scripts/interaction_existing_contract.ts @@ -21,7 +21,7 @@ async function main() { // Setup sponsored fee payment const sponsoredFPC = await getSponsoredFPCInstance(); - await wallet.registerContract({ instance: sponsoredFPC, artifact: SponsoredFPCContract.artifact }); + await wallet.registerContract(sponsoredFPC, SponsoredFPCContract.artifact); const sponsoredPaymentMethod = new SponsoredFeePaymentMethod(sponsoredFPC.address); // Get account from environment variables @@ -76,7 +76,7 @@ async function main() { logger.info("โœ… Contract instance reconstructed successfully"); // Register the contract with the wallet - await wallet.registerContract({ instance, artifact: PodRacingContract.artifact }); + await wallet.registerContract(instance, PodRacingContract.artifact); // Get the contract instance from the PXE const podRacingContract = await PodRacingContract.at( diff --git a/scripts/multiple_wallet.ts b/scripts/multiple_wallet.ts index 0f730a3..d3adb6f 100644 --- a/scripts/multiple_wallet.ts +++ b/scripts/multiple_wallet.ts @@ -17,7 +17,7 @@ const node = createAztecNodeClient(nodeUrl) const l1Contracts = await node.getL1ContractAddresses(); const config = getPXEConfig() const fullConfig = { ...config, l1Contracts } -fullConfig.proverEnabled = getEnv() !== 'sandbox'; +fullConfig.proverEnabled = getEnv() !== 'local-network'; const store1 = await createStore('pxe1', { dataDirectory: 'store', @@ -60,8 +60,8 @@ async function main() { const wallet1 = await setupWallet1(); const wallet2 = await setupWallet2(); const sponsoredFPC = await getSponsoredFPCInstance(); - await wallet1.registerContract({ instance: sponsoredFPC, artifact: SponsoredFPCContract.artifact }); - await wallet2.registerContract({ instance: sponsoredFPC, artifact: SponsoredFPCContract.artifact }); + await wallet1.registerContract(sponsoredFPC, SponsoredFPCContract.artifact); + await wallet2.registerContract(sponsoredFPC, SponsoredFPCContract.artifact); const paymentMethod = new SponsoredFeePaymentMethod(sponsoredFPC.address); // deploy token contract @@ -107,10 +107,7 @@ async function main() { // setup token on 2nd pxe const l2TokenContractInstance = await getL2TokenContractInstance(ownerAddress, ownerAddress) - await wallet2.registerContract({ - instance: l2TokenContractInstance, - artifact: TokenContract.artifact - }) + await wallet2.registerContract(l2TokenContractInstance, TokenContract.artifact) const l2TokenContract = await TokenContract.at( l2TokenContractInstance.address, diff --git a/scripts/profile_deploy.ts b/scripts/profile_deploy.ts index 698fdf8..2edea0d 100644 --- a/scripts/profile_deploy.ts +++ b/scripts/profile_deploy.ts @@ -14,7 +14,7 @@ async function main() { const wallet = await setupWallet(); const sponsoredFPC = await getSponsoredFPCInstance(); - await wallet.registerContract({ instance: sponsoredFPC, artifact: SponsoredFPCContract.artifact }); + await wallet.registerContract(sponsoredFPC, SponsoredFPCContract.artifact); let accountManager = await deploySchnorrAccount(wallet); const address = accountManager.address; diff --git a/src/main.nr b/src/main.nr index d995188..1f8904b 100644 --- a/src/main.nr +++ b/src/main.nr @@ -23,18 +23,18 @@ use dep::aztec::macros::aztec; #[aztec] pub contract PodRacing { use dep::aztec::{ - note::note_getter_options::NoteGetterOptions, + macros::{functions::{external, initializer, only_self}, storage::storage}, messages::message_delivery::MessageDelivery, - macros::{functions::{external, initializer, internal}, storage::storage}, + note::note_getter_options::NoteGetterOptions, }; use dep::aztec::protocol_types::address::AztecAddress; - use dep::aztec::state_vars::{Map, PublicMutable, PrivateSet}; + use dep::aztec::state_vars::{Map, Owned, PrivateSet, PublicMutable}; use crate::{game_round_note::GameRoundNote, race::Race}; // Game configuration constants - global TOTAL_ROUNDS: u8 = 3; // Each game consists of 3 rounds - global GAME_LENGTH: u32 = 300; // Games expire after 300 blocks + global TOTAL_ROUNDS: u8 = 3; // Each game consists of 3 rounds + global GAME_LENGTH: u32 = 300; // Games expire after 300 blocks #[storage] struct Storage { @@ -48,7 +48,7 @@ pub contract PodRacing { // Maps game_id -> player_address -> private notes containing that player's round choices // Each GameRoundNote stores the point allocation for one round // This data remains private until the player calls finish_game - progress: Map, Context>, Context>, + progress: Map, Context>, Context>, // Maps player address -> total number of wins // Public leaderboard tracking career victories @@ -58,7 +58,7 @@ pub contract PodRacing { #[external("public")] #[initializer] fn constructor(admin: AztecAddress) { - storage.admin.write(admin); + self.storage.admin.write(admin); } // Creates a new game instance @@ -67,22 +67,26 @@ pub contract PodRacing { #[external("public")] fn create_game(game_id: Field) { // Ensure this game_id hasn't been used yet (player1 must be zero address) - assert(storage.races.at(game_id).read().player1.eq(AztecAddress::zero())); + assert(self.storage.races.at(game_id).read().player1.eq(AztecAddress::zero())); // Initialize a new Race with the caller as player1 - let game = Race::new(context.msg_sender().unwrap(), TOTAL_ROUNDS, context.block_number() + GAME_LENGTH); - storage.races.at(game_id).write(game); + let game = Race::new( + self.context.msg_sender().unwrap(), + TOTAL_ROUNDS, + self.context.block_number() + GAME_LENGTH, + ); + self.storage.races.at(game_id).write(game); } // Allows a second player to join an existing game // After joining, both players can start playing rounds #[external("public")] fn join_game(game_id: Field) { - let maybe_existing_game = storage.races.at(game_id).read(); + let maybe_existing_game = self.storage.races.at(game_id).read(); // Add the caller as player2 (validates that player1 exists and player2 is empty) - let joined_game = maybe_existing_game.join(context.msg_sender().unwrap()); - storage.races.at(game_id).write(joined_game); + let joined_game = maybe_existing_game.join(self.context.msg_sender().unwrap()); + self.storage.races.at(game_id).write(joined_game); } // Plays a single round by allocating points across 5 tracks @@ -93,40 +97,48 @@ pub contract PodRacing { // - track1-5: Points allocated to each track (must sum to less than 10) // - round: Which round this is (1, 2, or 3) #[external("private")] - fn play_round(game_id: Field, round: u8, track1: u8, track2: u8, track3: u8, track4: u8, track5: u8) { + fn play_round( + game_id: Field, + round: u8, + track1: u8, + track2: u8, + track3: u8, + track4: u8, + track5: u8, + ) { // Validate that total points don't exceed 9 (you can't max out all tracks) assert(track1 + track2 + track3 + track4 + track5 < 10); - let player = context.msg_sender().unwrap(); + let player = self.context.msg_sender().unwrap(); // Store the round choices privately as a note in the player's own storage // This creates a private commitment that can only be read by the player - storage.progress.at(game_id).at(player).insert(GameRoundNote::new( - track1, - track2, - track3, - track4, - track5, - round, - player, - )).emit(player, MessageDelivery.CONSTRAINED_ONCHAIN); + self + .storage + .progress + .at(game_id) + .at(player) + .insert(GameRoundNote::new(track1, track2, track3, track4, track5, round, player)) + .deliver(MessageDelivery.CONSTRAINED_ONCHAIN); // Enqueue a public function call to update the round counter // This reveals that a round was played, but not the point allocation - PodRacing::at(context.this_address()).validate_and_play_round(player, game_id, round).enqueue( - &mut context, - ); + self.enqueue(PodRacing::at(self.context.this_address()).validate_and_play_round( + player, + game_id, + round, + )); } // Internal public function to validate and record that a player completed a round // Updates the public game state to track which round each player is on // Does NOT reveal the point allocation (that remains private) #[external("public")] - #[internal] + #[only_self] fn validate_and_play_round(player: AztecAddress, game_id: Field, round: u8) { - let game_in_progress = storage.races.at(game_id).read(); + let game_in_progress = self.storage.races.at(game_id).read(); // Increment the player's round counter (validates sequential play) - storage.races.at(game_id).write(game_in_progress.increment_player_round(player, round)); + self.storage.races.at(game_id).write(game_in_progress.increment_player_round(player, round)); } // Called after all rounds are complete to reveal a player's total scores @@ -136,17 +148,18 @@ pub contract PodRacing { // This is the "reveal" phase where private choices become public #[external("private")] fn finish_game(game_id: Field) { - let player = context.msg_sender().unwrap(); + let player = self.context.msg_sender().unwrap(); // Retrieve all private notes for this player in this game - let totals = storage.progress.at(game_id).at(player).get_notes(NoteGetterOptions::new()); + let totals = + self.storage.progress.at(game_id).at(player).get_notes(NoteGetterOptions::new()); // Sum up points allocated to each track across all rounds - let mut total_track1: u64= 0; - let mut total_track2: u64= 0; - let mut total_track3: u64= 0; - let mut total_track4: u64= 0; - let mut total_track5: u64= 0; + let mut total_track1: u64 = 0; + let mut total_track2: u64 = 0; + let mut total_track3: u64 = 0; + let mut total_track4: u64 = 0; + let mut total_track5: u64 = 0; // Iterate through exactly TOTAL_ROUNDS notes (only this player's notes) for i in 0..TOTAL_ROUNDS { @@ -159,7 +172,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 - PodRacing::at(context.this_address()).validate_finish_game_and_reveal( + self.enqueue(PodRacing::at(self.context.this_address()).validate_finish_game_and_reveal( player, game_id, total_track1, @@ -167,16 +180,14 @@ pub contract PodRacing { total_track3, total_track4, total_track5, - ).enqueue( - &mut context, - ); + )); } // Internal public function to store a player's revealed track totals // Validates that the player hasn't already revealed their scores (all must be 0) // After both players call finish_game, all scores are public and can be compared #[external("public")] - #[internal] + #[only_self] fn validate_finish_game_and_reveal( player: AztecAddress, game_id: Field, @@ -184,12 +195,19 @@ pub contract PodRacing { total_track2: u64, total_track3: u64, total_track4: u64, - total_track5: u64 + total_track5: u64, ) { - let game_in_progress = storage.races.at(game_id).read(); + let game_in_progress = self.storage.races.at(game_id).read(); // Store the player's track totals (validates they haven't been set yet) - storage.races.at(game_id).write(game_in_progress.set_player_scores(player, total_track1, total_track2, total_track3, total_track4, total_track5)); + self.storage.races.at(game_id).write(game_in_progress.set_player_scores( + player, + total_track1, + total_track2, + total_track3, + total_track4, + total_track5, + )); } // Determines the winner after both players have revealed their scores @@ -202,16 +220,14 @@ pub contract PodRacing { // - Player who wins 3+ tracks wins the game (best of 5) // - Updates the winner's career win count #[external("public")] - fn finalize_game( - game_id: Field - ) { - let game_in_progress = storage.races.at(game_id).read(); + fn finalize_game(game_id: Field) { + let game_in_progress = self.storage.races.at(game_id).read(); // Calculate winner by comparing track scores (validates game has ended) - let winner = game_in_progress.calculate_winner(context.block_number()); + let winner = game_in_progress.calculate_winner(self.context.block_number()); // Update the winner's total win count in the public leaderboard - let previous_wins = storage.win_history.at(winner).read(); - storage.win_history.at(winner).write(previous_wins + 1); + let previous_wins = self.storage.win_history.at(winner).read(); + self.storage.win_history.at(winner).write(previous_wins + 1); } } diff --git a/src/test/e2e/accounts.test.ts b/src/test/e2e/accounts.test.ts index 9126e65..ce03bf4 100644 --- a/src/test/e2e/accounts.test.ts +++ b/src/test/e2e/accounts.test.ts @@ -1,7 +1,8 @@ import { PodRacingContractArtifact, PodRacingContract } from "../../artifacts/PodRacing.js" import { generateSchnorrAccounts } from "@aztec/accounts/testing" import { SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee/testing' -import { createEthereumChain, createExtendedL1Client } from '@aztec/ethereum'; +import { createEthereumChain } from '@aztec/ethereum/chain'; +import { createExtendedL1Client } from '@aztec/ethereum/client'; import { getSponsoredFPCInstance } from "../../utils/sponsored_fpc.js"; import { setupWallet } from "../../utils/setup_wallet.js"; import { SponsoredFPCContract } from "@aztec/noir-contracts.js/SponsoredFPC"; @@ -44,7 +45,7 @@ describe("Accounts", () => { wallet = await setupWallet(); sponsoredFPC = await getSponsoredFPCInstance(); - await wallet.registerContract({ instance: sponsoredFPC, artifact: SponsoredFPCContract.artifact }); + await wallet.registerContract(sponsoredFPC, SponsoredFPCContract.artifact); sponsoredPaymentMethod = new SponsoredFeePaymentMethod(sponsoredFPC.address); // create default ethereum clients @@ -208,7 +209,7 @@ describe("Accounts", () => { }), ); - expect(receiptAfterMined.contract.instance.address).toEqual(deploymentData.address) + expect(receiptAfterMined.contract.address).toEqual(deploymentData.address) }) }); diff --git a/src/test/e2e/index.test.ts b/src/test/e2e/index.test.ts index 690880e..4468be9 100644 --- a/src/test/e2e/index.test.ts +++ b/src/test/e2e/index.test.ts @@ -96,7 +96,7 @@ describe("Pod Racing Game", () => { wallet = await setupWallet(); sponsoredFPC = await getSponsoredFPCInstance(); - await wallet.registerContract({ instance: sponsoredFPC, artifact: SponsoredFPCContract.artifact }); + await wallet.registerContract(sponsoredFPC, SponsoredFPCContract.artifact); sponsoredPaymentMethod = new SponsoredFeePaymentMethod(sponsoredFPC.address); // Create two player accounts diff --git a/src/utils/deploy_account.ts b/src/utils/deploy_account.ts index 608de3e..bc51378 100644 --- a/src/utils/deploy_account.ts +++ b/src/utils/deploy_account.ts @@ -35,7 +35,7 @@ export async function deploySchnorrAccount(wallet?: TestWallet): Promise { const nodeUrl = getAztecNodeUrl(); const node = createAztecNodeClient(nodeUrl); - const wallet = await TestWallet.create(node); + const proverEnabled = getEnv() !== 'local-network'; + const wallet = await TestWallet.create(node, { proverEnabled }); return wallet } diff --git a/yarn.lock b/yarn.lock index 2a8202b..fbc7c62 100644 --- a/yarn.lock +++ b/yarn.lock @@ -583,130 +583,133 @@ resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.1.1.tgz#2e67f17040b930bde00a79ffb484eb9e77472b06" integrity sha512-RcLam17LdlbSOSp9VxmUu1eI6Mwxp+OwhD2QhiSNmNCzoDb0EeUXTD2n/WbcnrAYMGlmf05th6QYq23VqvJqpA== -"@aztec/accounts@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/accounts/-/accounts-3.0.0-devnet.5.tgz#44482486c15ede1834aa27ce80d6543c82f68dae" - integrity sha512-VEN4i5SjA2waCO2KRcGvRmv5n06i2dRlFmozSIVss0j8a1IRvr1PGCOsRK7/ymForcRmLnozM2kJXZySf12xCQ== - dependencies: - "@aztec/aztec.js" "3.0.0-devnet.5" - "@aztec/entrypoints" "3.0.0-devnet.5" - "@aztec/ethereum" "3.0.0-devnet.5" - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/stdlib" "3.0.0-devnet.5" +"@aztec/accounts@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/accounts/-/accounts-3.0.0-devnet.20251212.tgz#9bbc3097a7e0579e922a87880eaea760ac0e718c" + integrity sha512-nmXLe6N45F/V6SZWgLEvU2h58vC23eYUtuHROnaLBzh579DUv2TTSxSF8BU/1hKPKCYaloLWXy7z7F6WVMZaVg== + dependencies: + "@aztec/aztec.js" "3.0.0-devnet.20251212" + "@aztec/entrypoints" "3.0.0-devnet.20251212" + "@aztec/ethereum" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/stdlib" "3.0.0-devnet.20251212" tslib "^2.4.0" -"@aztec/aztec.js@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/aztec.js/-/aztec.js-3.0.0-devnet.5.tgz#f9299b429051a3d44d73e8f0df4fdebd9d845596" - integrity sha512-imufeCwtwMslvLa1oUgV/NpFUjqmb/mnGLNmXoHx0vSwPWG5SIyorxkzSvenuYeF3NVo++LJaW9Ng4lzRj0CiA== - dependencies: - "@aztec/constants" "3.0.0-devnet.5" - "@aztec/entrypoints" "3.0.0-devnet.5" - "@aztec/ethereum" "3.0.0-devnet.5" - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/l1-artifacts" "3.0.0-devnet.5" - "@aztec/protocol-contracts" "3.0.0-devnet.5" - "@aztec/stdlib" "3.0.0-devnet.5" +"@aztec/aztec.js@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/aztec.js/-/aztec.js-3.0.0-devnet.20251212.tgz#8c84a5a60bf092360f6f80c6575b38c3dc41aa74" + integrity sha512-k0o3fZlDEf8XaBDFIhKIOgQES09/xOiCNnaaCBwfQgifPtxHKsdTnomXHVVwgJWD/gS7TtwLnNfvjYmEKy50cA== + dependencies: + "@aztec/constants" "3.0.0-devnet.20251212" + "@aztec/entrypoints" "3.0.0-devnet.20251212" + "@aztec/ethereum" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/l1-artifacts" "3.0.0-devnet.20251212" + "@aztec/protocol-contracts" "3.0.0-devnet.20251212" + "@aztec/stdlib" "3.0.0-devnet.20251212" axios "^1.12.0" tslib "^2.4.0" - viem "npm:@spalladino/viem@2.38.2-eip7594.0" + viem "npm:@aztec/viem@2.38.2" zod "^3.23.8" -"@aztec/bb-prover@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/bb-prover/-/bb-prover-3.0.0-devnet.5.tgz#cb058e2a15fb730801be73494a546370ea2df531" - integrity sha512-Q/9MrINagHGI5TwqG6IF58wC/ItS68MPKniRCBShvVfDDqAJp/Sv9eJw0bshEqj+xGPGeu5zpha5J22TEUABAA== - dependencies: - "@aztec/bb.js" "3.0.0-devnet.5" - "@aztec/constants" "3.0.0-devnet.5" - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/noir-noirc_abi" "3.0.0-devnet.5" - "@aztec/noir-protocol-circuits-types" "3.0.0-devnet.5" - "@aztec/noir-types" "3.0.0-devnet.5" - "@aztec/simulator" "3.0.0-devnet.5" - "@aztec/stdlib" "3.0.0-devnet.5" - "@aztec/telemetry-client" "3.0.0-devnet.5" - "@aztec/world-state" "3.0.0-devnet.5" +"@aztec/bb-prover@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/bb-prover/-/bb-prover-3.0.0-devnet.20251212.tgz#86540c0272e910cbc35dffc97119dbf712521f94" + integrity sha512-wFb3yVIoZSCdcmcZTKBHsdzNtvt8S3nVhPFagoEL6ts8fJtrzYS1tYZ5mLukpwILkNJGnb+R+SLpaWEBnU7fTg== + dependencies: + "@aztec/bb.js" "3.0.0-devnet.20251212" + "@aztec/constants" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/noir-noirc_abi" "3.0.0-devnet.20251212" + "@aztec/noir-protocol-circuits-types" "3.0.0-devnet.20251212" + "@aztec/noir-types" "3.0.0-devnet.20251212" + "@aztec/simulator" "3.0.0-devnet.20251212" + "@aztec/stdlib" "3.0.0-devnet.20251212" + "@aztec/telemetry-client" "3.0.0-devnet.20251212" + "@aztec/world-state" "3.0.0-devnet.20251212" commander "^12.1.0" pako "^2.1.0" source-map-support "^0.5.21" tslib "^2.4.0" -"@aztec/bb.js@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/bb.js/-/bb.js-3.0.0-devnet.5.tgz#943def962954647e88fe1dc04c431c9967d55b22" - integrity sha512-PreVW5HaIZC0OhXDdLHFxyUo2n71amChLh58MPzca9L1bex+g4naAd+7z6IepSGY2eQT8dWLhuhn7DYnBA3TYQ== +"@aztec/bb.js@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/bb.js/-/bb.js-3.0.0-devnet.20251212.tgz#cbf4c76db7b57f5515a0e1168b37200a9e91734b" + integrity sha512-9xqm3d9H9aDus8xGf7b7Bd9rkjYqp1PHHMmqNT8FJ/Rv5Pn/rJgwE+d4ZWJtm+inIIu8D8AeKTBc9bEEPjENUQ== dependencies: comlink "^4.4.1" commander "^12.1.0" idb-keyval "^6.2.1" msgpackr "^1.11.2" pako "^2.1.0" - pino "^9.5.0" tslib "^2.4.0" -"@aztec/blob-lib@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/blob-lib/-/blob-lib-3.0.0-devnet.5.tgz#698cd11f67a8f234af914e252d3fecfb9b0067bb" - integrity sha512-Vf+EGDbUAXpIBXx1DR5vdBSxPf7fjDV5NIE/Ds+UMFxfEHoHNk4lwgFc9ERWBh81L/uDTuGgmZn4X009p66Uug== +"@aztec/blob-lib@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/blob-lib/-/blob-lib-3.0.0-devnet.20251212.tgz#cc8f3e89b0078b761e46e6adbdf3e57e0480db4a" + integrity sha512-DiJBFkcPxuGBN51S6EaJfU+UxejcOwUzKFAIskPIHheb0kSFAad/4VVhhadtCudN72+iIBCExUtp7qBdJmePYQ== dependencies: - "@aztec/constants" "3.0.0-devnet.5" - "@aztec/foundation" "3.0.0-devnet.5" + "@aztec/constants" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" "@crate-crypto/node-eth-kzg" "^0.10.0" tslib "^2.4.0" -"@aztec/builder@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/builder/-/builder-3.0.0-devnet.5.tgz#9b95bad40e038a6f464c8518d9261d5d4d2f54de" - integrity sha512-Mi0/pF10uPSZnX3yyqBANCv3+XqHipJmUtV8cUV4jJn158rJ00hL0846Nqy7Q/HMR84VduJXVroTm0u2mwt2Hg== +"@aztec/builder@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/builder/-/builder-3.0.0-devnet.20251212.tgz#1befe5bc1d0f10e87820fd775ad279589664360e" + integrity sha512-BUvWzdwUK7jnfpjsvdgbOpAvdZi3njH3MQHSIW3VYyEgUlVNT9NJtmCzY222vnBPeN4XLkNwBSaEe1DH+VuULw== dependencies: - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/stdlib" "3.0.0-devnet.5" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/stdlib" "3.0.0-devnet.20251212" commander "^12.1.0" -"@aztec/constants@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/constants/-/constants-3.0.0-devnet.5.tgz#c3f27558400b8a6ff267f5fd354612d23e66eab5" - integrity sha512-+d1hHUtnSuGV/w1LuVFSuSznFO2sgrxn9IOr/mucfoqNoUr0zAC1GIMzWgUbMxckja8sQs8Jh2AiuyG8+QIZVw== +"@aztec/constants@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/constants/-/constants-3.0.0-devnet.20251212.tgz#2960ebfea2852313c76af6b967c53958e03006cb" + integrity sha512-R0pYLhWUnDago/MO8+iuG/2yrP4yVDZuQvOmXwDqp5ed+SR4zj8sqvC52paXrOxhcLpheVpEHp2TuGKtmssvtg== dependencies: + "@aztec/foundation" "3.0.0-devnet.20251212" tslib "^2.4.0" -"@aztec/entrypoints@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/entrypoints/-/entrypoints-3.0.0-devnet.5.tgz#eb53e873134fbd683a3a9893d4d99171c7a9eae1" - integrity sha512-cDFSuGgCWAz5oBPL7JLw+w/jANHrOhEQ3cs7BxZHpz8FNEM5g48Ks69kPaV7pD1DQ+7GQWmRQLf+xxQV/3wL4Q== +"@aztec/entrypoints@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/entrypoints/-/entrypoints-3.0.0-devnet.20251212.tgz#a67151a3d9c078b91bf8e3869cddd64c784eaab5" + integrity sha512-XlMkUqetlM1lzVycxmIdQ1FtM2kfFtKU+7GG01mGnhawFHJnBT8EqMQjxaSKCO9fQYTNIl1oUELhyzpiWL/ztg== dependencies: - "@aztec/constants" "3.0.0-devnet.5" - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/protocol-contracts" "3.0.0-devnet.5" - "@aztec/stdlib" "3.0.0-devnet.5" + "@aztec/constants" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/protocol-contracts" "3.0.0-devnet.20251212" + "@aztec/stdlib" "3.0.0-devnet.20251212" tslib "^2.4.0" + zod "^3.23.8" -"@aztec/ethereum@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/ethereum/-/ethereum-3.0.0-devnet.5.tgz#79c1e22c64ea4a89cee2640865970b7e6af13b72" - integrity sha512-4dl6BO8ajpMFKSWdjZvn9lk5QfPLEOEsJ01xgZJX65wBm5Qde86irF5/1oXhjaz5lpaBm9jKD8+eTB8X8Lu31w== +"@aztec/ethereum@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/ethereum/-/ethereum-3.0.0-devnet.20251212.tgz#910f811f04c319edbde9d1af192b8753936061ba" + integrity sha512-smAL13K73bpP5SXDYoYukQsnOa6iHC7a1HP1tf3Llk9mF0hS1BXV+kyrltiVeVHSN5/UkZN4WZ50yQ5CCeq6rg== dependencies: - "@aztec/blob-lib" "3.0.0-devnet.5" - "@aztec/constants" "3.0.0-devnet.5" - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/l1-artifacts" "3.0.0-devnet.5" + "@aztec/blob-lib" "3.0.0-devnet.20251212" + "@aztec/constants" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/l1-artifacts" "3.0.0-devnet.20251212" "@viem/anvil" "^0.0.10" dotenv "^16.0.3" lodash.chunk "^4.2.0" lodash.pickby "^4.5.0" tslib "^2.4.0" - viem "npm:@spalladino/viem@2.38.2-eip7594.0" + viem "npm:@aztec/viem@2.38.2" zod "^3.23.8" -"@aztec/foundation@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/foundation/-/foundation-3.0.0-devnet.5.tgz#f6c98b074cdf26565c61a55d5182f5ca5a8dd919" - integrity sha512-Ks9DFE8K01wObwJdsTMYSC84cSQCgbBGyfLB7fnH/CAx2Th9wxPzeLMhmGNQEBLtG4RARdkiAbMUAjlRHI1yEw== +"@aztec/foundation@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/foundation/-/foundation-3.0.0-devnet.20251212.tgz#2871a76946ee051b7a42cbf9c9defa08220ea054" + integrity sha512-1yBGAJCO4VjmaZTx5qbJ2vW8yjWlLae524L08zOSGoEqF2RIkCvbQyIOaH/ZWb5n866LP66XhUfoaohPmgK+EA== dependencies: - "@aztec/bb.js" "3.0.0-devnet.5" + "@aztec/bb.js" "3.0.0-devnet.20251212" "@koa/cors" "^5.0.0" "@noble/curves" "=1.7.0" + "@noble/hashes" "^1.6.1" + "@scure/bip39" "^2.0.1" bn.js "^5.2.1" colorette "^2.0.20" detect-node "^2.1.0" @@ -725,178 +728,180 @@ undici "^5.28.5" zod "^3.23.8" -"@aztec/key-store@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/key-store/-/key-store-3.0.0-devnet.5.tgz#bfe77457a027f4aaef154c78751b44f42cf50ab7" - integrity sha512-GabVDXsoPwb8YUN2AVq0pBvwiUPo9F3clvb8GpQuzvkDtLc0O9EPstxqEeHoaQTI2lQi5+KJi27kNTAiyeGiCw== +"@aztec/key-store@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/key-store/-/key-store-3.0.0-devnet.20251212.tgz#0d0bf89969a8e8a5f1f0db86d1f1cd703478af19" + integrity sha512-FMh8hsXZNMMz+DHDdKgTyeNfdH0FHiwQygDdi3n2rRr0Io7Jc3HMPqB3w5dFt8qKxTelNmFqll5XRu5IZDuAvg== dependencies: - "@aztec/constants" "3.0.0-devnet.5" - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/kv-store" "3.0.0-devnet.5" - "@aztec/stdlib" "3.0.0-devnet.5" + "@aztec/constants" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/kv-store" "3.0.0-devnet.20251212" + "@aztec/stdlib" "3.0.0-devnet.20251212" tslib "^2.4.0" -"@aztec/kv-store@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/kv-store/-/kv-store-3.0.0-devnet.5.tgz#204c49896090c3f6278c7b6ba4dfb482613fe0e2" - integrity sha512-qGXZm4P8qNTICNmUAAzBUdxgxB5YU+31mPWXtWLrVNJNVmshQnV7h/AMESmgUlb6fAtWyLyZMjl/QrjSTpX9ig== +"@aztec/kv-store@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/kv-store/-/kv-store-3.0.0-devnet.20251212.tgz#6199beb780558a180200f9cc1b246fd7df009af1" + integrity sha512-Qe1aYRpQFHFwsvtNKLHphKNYxEB4vIOSqqgFME8oYw3nsq2AlV/Byrmw0x3jXVc15QLc6x8uTn1rXqpZK+u3tA== dependencies: - "@aztec/ethereum" "3.0.0-devnet.5" - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/native" "3.0.0-devnet.5" - "@aztec/stdlib" "3.0.0-devnet.5" + "@aztec/constants" "3.0.0-devnet.20251212" + "@aztec/ethereum" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/native" "3.0.0-devnet.20251212" + "@aztec/stdlib" "3.0.0-devnet.20251212" idb "^8.0.0" lmdb "^3.2.0" msgpackr "^1.11.2" ohash "^2.0.11" ordered-binary "^1.5.3" -"@aztec/l1-artifacts@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/l1-artifacts/-/l1-artifacts-3.0.0-devnet.5.tgz#ba62709f88d768225f3d68cec5718665e2c5e5a2" - integrity sha512-a41fELYCc8wRRkD98wvJX+2HQWf8tE/sZQIQpHf5j/w1vrcoPoBkwysSoFzVJ4zEMM3Umj8VGkzBXfVaj8HtvA== +"@aztec/l1-artifacts@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/l1-artifacts/-/l1-artifacts-3.0.0-devnet.20251212.tgz#431713cd66794eb8d890f0f379a55809a7822e61" + integrity sha512-IGWQ8ie2W1Ok8bLnfmuvazULT9dPj9ozYDujcgI+lWYnUbTDR5ja7tfx9qG//9Um+FFKZL5JErm0qtsPSrO2tg== dependencies: tslib "^2.4.0" -"@aztec/merkle-tree@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/merkle-tree/-/merkle-tree-3.0.0-devnet.5.tgz#4a8d1bb66389ba912ec9606f0dd05498703c1e2a" - integrity sha512-AgFukgx7nv89S4zfoRkGWAmLK+Mx5IEwnJsoTj1Hl57+62VrT5uSbLGQAdiukIfX2iay+B+9Kv2oTybIU/SKyg== +"@aztec/merkle-tree@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/merkle-tree/-/merkle-tree-3.0.0-devnet.20251212.tgz#f9ecfd673d0639f9629906e5610fbe5e06dff824" + integrity sha512-uXJm69QJElxnnPah7JSynsw7+xaVzIOWFxqYLP9QgQG7M1MyYE9WQyK78LMRUb8iG3sW84udFcvdSuCMwL1YEw== dependencies: - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/kv-store" "3.0.0-devnet.5" - "@aztec/stdlib" "3.0.0-devnet.5" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/kv-store" "3.0.0-devnet.20251212" + "@aztec/stdlib" "3.0.0-devnet.20251212" sha256 "^0.2.0" tslib "^2.4.0" -"@aztec/native@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/native/-/native-3.0.0-devnet.5.tgz#2b8ad2b4527d406ec37c5c5ed0572e047919aa77" - integrity sha512-psF9eggbvW/KROQKpBp8Bbok47kh/LjKefKw2My7WzW88hQUMbYpEJK0C8lgmMN6clMEzFjIPL9zY81b2hk8LA== +"@aztec/native@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/native/-/native-3.0.0-devnet.20251212.tgz#eaaecdbacee3295077219de400b8eafa4c8c5e8a" + integrity sha512-UIUjQRK2S54Pr0tZinUek7rjtfh0fZbdxJFzEFTBElO/g5rExK8FUX8S1Fz3DfFOJNgBj9Y8RW2oj3yZEKxTvw== dependencies: - "@aztec/foundation" "3.0.0-devnet.5" + "@aztec/bb.js" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" msgpackr "^1.11.2" -"@aztec/noir-acvm_js@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/noir-acvm_js/-/noir-acvm_js-3.0.0-devnet.5.tgz#12211c89b4f799620ef29e3839a89c6b2dc20822" - integrity sha512-FTGxNN2MM3n/gxlNUarQSh690mo7yigFIJi+nnanbZkrBYBSdnddiC9Bn6yL9hxRSIyXBuLzT01GwxzDwZ75zA== +"@aztec/noir-acvm_js@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/noir-acvm_js/-/noir-acvm_js-3.0.0-devnet.20251212.tgz#efe93e644afed661fe6d5b17f4fd5cc273fa4e21" + integrity sha512-vQujIYW0urROyi/+REygX1YyHuHSBMSFyOc2P7pyFEILmlMH8ZLyLjtUWHm8bUa8gq8G+zsd7Bn2p+MEiBhMtg== -"@aztec/noir-contracts.js@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/noir-contracts.js/-/noir-contracts.js-3.0.0-devnet.5.tgz#11f41d55a4b517ac6ed73bc1e92fc37e5a850901" - integrity sha512-NkH0sz4cCmZoZaw/ZXdoGZUFQZyt2Gk6A+Im3pYoy/Fug07pR/7vMMzMpyWm/i4Jr1qE0LcMGb0uqXHtuzK5jg== +"@aztec/noir-contracts.js@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/noir-contracts.js/-/noir-contracts.js-3.0.0-devnet.20251212.tgz#91602e1ab1b517a12ebb90c868c1bd22d706c34d" + integrity sha512-+Jl3za8TTK9VkiDitj6cMCdpmD0A3buvafoVNPmTUU8AvO1YMTrs6OPDvMEXKVpmwRZI6zOCPF+0H1u9zDW5BA== dependencies: - "@aztec/aztec.js" "3.0.0-devnet.5" + "@aztec/aztec.js" "3.0.0-devnet.20251212" tslib "^2.4.0" -"@aztec/noir-noir_codegen@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/noir-noir_codegen/-/noir-noir_codegen-3.0.0-devnet.5.tgz#4d4db4795bcbb72e72808658ed1e16bf887cbcaf" - integrity sha512-xOhoWvjxEn9DMgIyCbL6pV2xGHLupeuqjB6nCTl3PF/R5iynknPOehWG2gptCIVa/zO+m8LH8USlC9jjgrjG3Q== +"@aztec/noir-noir_codegen@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/noir-noir_codegen/-/noir-noir_codegen-3.0.0-devnet.20251212.tgz#8a278ca2f2e3e5c524047b96166ebe987dba00d0" + integrity sha512-yl1+tmypfKODxsq6PxPsCjRJokI3S+rU6gNvO6XLQTRuFkDIDfp4qDoevD9VnZvjtkataS2z99AylsJdxFToEQ== dependencies: - "@aztec/noir-types" "3.0.0-devnet.5" + "@aztec/noir-types" "3.0.0-devnet.20251212" glob "^11.0.3" ts-command-line-args "^2.5.1" -"@aztec/noir-noirc_abi@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/noir-noirc_abi/-/noir-noirc_abi-3.0.0-devnet.5.tgz#a2e826e9c2c5ed4499bd6209e982093c01c8e73c" - integrity sha512-Ve7DeT69Q45VayP+H0mzOvleNwS5UL7wqnEh3YZ6cpMPuCQKl5BSUiSwHhFyfI/6B/4JDVh4r4/ujArTBG4YPw== - dependencies: - "@aztec/noir-types" "3.0.0-devnet.5" - -"@aztec/noir-protocol-circuits-types@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/noir-protocol-circuits-types/-/noir-protocol-circuits-types-3.0.0-devnet.5.tgz#0edf6bba41958ea0c87de6ff4c760127abc355e7" - integrity sha512-iv4MytPVLoaiLSy68LM1ztqRQ/N1dYITel9tUJqf2T04qgHJcraM+5tQz3xLaCvUP1Dax1l129ny7JX/GletNg== - dependencies: - "@aztec/blob-lib" "3.0.0-devnet.5" - "@aztec/constants" "3.0.0-devnet.5" - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/noir-acvm_js" "3.0.0-devnet.5" - "@aztec/noir-noir_codegen" "3.0.0-devnet.5" - "@aztec/noir-noirc_abi" "3.0.0-devnet.5" - "@aztec/noir-types" "3.0.0-devnet.5" - "@aztec/stdlib" "3.0.0-devnet.5" +"@aztec/noir-noirc_abi@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/noir-noirc_abi/-/noir-noirc_abi-3.0.0-devnet.20251212.tgz#368242d4b23f3627086e00588bb34573fba69b46" + integrity sha512-HuABbS7Cr4xXFQ3Fqq86hoDzbAnxe7iXJK6Oow6Ak8PqNu1kdvZpwLLMpDvTE/1sCio+lEbnNmxpp5ko2yckSQ== + dependencies: + "@aztec/noir-types" "3.0.0-devnet.20251212" + +"@aztec/noir-protocol-circuits-types@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/noir-protocol-circuits-types/-/noir-protocol-circuits-types-3.0.0-devnet.20251212.tgz#174eadaaba675393983609a5a5683d0e69912075" + integrity sha512-gBz5UbR1QV5bmg/6y+an77GEJmM2ed1/UCtJwGmbRjhA6Bq+l8ghTphAFtO2eOs/OOp6vaEOBWBCEvTUpF/j0w== + dependencies: + "@aztec/blob-lib" "3.0.0-devnet.20251212" + "@aztec/constants" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/noir-acvm_js" "3.0.0-devnet.20251212" + "@aztec/noir-noir_codegen" "3.0.0-devnet.20251212" + "@aztec/noir-noirc_abi" "3.0.0-devnet.20251212" + "@aztec/noir-types" "3.0.0-devnet.20251212" + "@aztec/stdlib" "3.0.0-devnet.20251212" change-case "^5.4.4" tslib "^2.4.0" -"@aztec/noir-types@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/noir-types/-/noir-types-3.0.0-devnet.5.tgz#6a0979364c7bd829f8683d77c43b3f91bf12707e" - integrity sha512-MRZ5bS8khyXcT6p9ptOBDIfFOl0f7RFjclthbMrJ/q0B1b2VK3bs6k3iTgbxFQz5y3Ly2+eaoCZTcCujXbl/sg== +"@aztec/noir-types@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/noir-types/-/noir-types-3.0.0-devnet.20251212.tgz#878793c148d4305e0113963fdbdd4a4791fca01e" + integrity sha512-cFgkHsupyJmDkN/MEP7EDgG9pBKO4jGNH9Y3d3t0OIhRjlberBRv0HtlcfTfaKeM2DZ2x/Lloov+5J6mfuyMrA== -"@aztec/protocol-contracts@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/protocol-contracts/-/protocol-contracts-3.0.0-devnet.5.tgz#06c78908dfeae74fc0f58c635f653e002b2547ce" - integrity sha512-ep292wqj81Bz5Nm6QIAYAVLcoYRev+PPB4aBSTFIDzyPBwr6zFeJNPmeUxenxivJrHeSsNmX0nivQnx8Hi8O1w== +"@aztec/protocol-contracts@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/protocol-contracts/-/protocol-contracts-3.0.0-devnet.20251212.tgz#d08620926a4370995b58a2ba4341a8324d82b8ab" + integrity sha512-AZSTimslrwiyc4d3doifGQcUmayuYDZkD+Eo/U9udIz4uexljVgOVCNMbciDbDGDuEkKEd6mg/W/YlAcTqCdqQ== dependencies: - "@aztec/constants" "3.0.0-devnet.5" - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/stdlib" "3.0.0-devnet.5" + "@aztec/constants" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/stdlib" "3.0.0-devnet.20251212" lodash.chunk "^4.2.0" lodash.omit "^4.5.0" tslib "^2.4.0" -"@aztec/pxe@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/pxe/-/pxe-3.0.0-devnet.5.tgz#07a95197c0402cdd5b2c780ac1b735bb635d892e" - integrity sha512-0/D4yXN+y3Kyznoc9heOk2faqvK38PHbVDkAmoRtWePjqMrkvvQaH/XXmS+jnJTnpZ/cE4H6o5HdP7kgxdjQ7Q== - dependencies: - "@aztec/bb-prover" "3.0.0-devnet.5" - "@aztec/bb.js" "3.0.0-devnet.5" - "@aztec/builder" "3.0.0-devnet.5" - "@aztec/constants" "3.0.0-devnet.5" - "@aztec/ethereum" "3.0.0-devnet.5" - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/key-store" "3.0.0-devnet.5" - "@aztec/kv-store" "3.0.0-devnet.5" - "@aztec/noir-protocol-circuits-types" "3.0.0-devnet.5" - "@aztec/noir-types" "3.0.0-devnet.5" - "@aztec/protocol-contracts" "3.0.0-devnet.5" - "@aztec/simulator" "3.0.0-devnet.5" - "@aztec/stdlib" "3.0.0-devnet.5" +"@aztec/pxe@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/pxe/-/pxe-3.0.0-devnet.20251212.tgz#dd9916163a41ed1c8532768ac8f92fa1e2426468" + integrity sha512-wmg2emJsutWNnHCuly+2t/C43PFEtGqoHzkCSsDhfgWDgjtaScROyaGoCHyNjqGDJvhfe5HQ+cfGjjEuYia0Qw== + dependencies: + "@aztec/bb-prover" "3.0.0-devnet.20251212" + "@aztec/bb.js" "3.0.0-devnet.20251212" + "@aztec/builder" "3.0.0-devnet.20251212" + "@aztec/constants" "3.0.0-devnet.20251212" + "@aztec/ethereum" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/key-store" "3.0.0-devnet.20251212" + "@aztec/kv-store" "3.0.0-devnet.20251212" + "@aztec/noir-protocol-circuits-types" "3.0.0-devnet.20251212" + "@aztec/noir-types" "3.0.0-devnet.20251212" + "@aztec/protocol-contracts" "3.0.0-devnet.20251212" + "@aztec/simulator" "3.0.0-devnet.20251212" + "@aztec/stdlib" "3.0.0-devnet.20251212" koa "^2.16.1" koa-router "^13.1.1" lodash.omit "^4.5.0" sha3 "^2.1.4" tslib "^2.4.0" - viem "npm:@spalladino/viem@2.38.2-eip7594.0" - -"@aztec/simulator@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/simulator/-/simulator-3.0.0-devnet.5.tgz#e2227b086c1345f53df54c38b1ae1987a38226f5" - integrity sha512-XMSeJNbTfzqtaF32aiikHKkShn7NbBwAHpdi1qJvfpeMcGk2PvFE/1cyiwY89iQHdfRG24f3mS4cl7ekRcFymg== - dependencies: - "@aztec/constants" "3.0.0-devnet.5" - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/native" "3.0.0-devnet.5" - "@aztec/noir-acvm_js" "3.0.0-devnet.5" - "@aztec/noir-noirc_abi" "3.0.0-devnet.5" - "@aztec/noir-protocol-circuits-types" "3.0.0-devnet.5" - "@aztec/noir-types" "3.0.0-devnet.5" - "@aztec/protocol-contracts" "3.0.0-devnet.5" - "@aztec/stdlib" "3.0.0-devnet.5" - "@aztec/telemetry-client" "3.0.0-devnet.5" - "@aztec/world-state" "3.0.0-devnet.5" + viem "npm:@aztec/viem@2.38.2" + +"@aztec/simulator@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/simulator/-/simulator-3.0.0-devnet.20251212.tgz#da2f87175593acbb6a830c99a7e4a0992d3897b7" + integrity sha512-juVBLvDEMBPkzg6gaxtRGeuBiPq35S1BEI1L5Y1z1GHZXvrPxR/R8Q2YrG8wBgdNvfPtXCFXDlW1FF2AFtORtA== + dependencies: + "@aztec/constants" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/native" "3.0.0-devnet.20251212" + "@aztec/noir-acvm_js" "3.0.0-devnet.20251212" + "@aztec/noir-noirc_abi" "3.0.0-devnet.20251212" + "@aztec/noir-protocol-circuits-types" "3.0.0-devnet.20251212" + "@aztec/noir-types" "3.0.0-devnet.20251212" + "@aztec/protocol-contracts" "3.0.0-devnet.20251212" + "@aztec/stdlib" "3.0.0-devnet.20251212" + "@aztec/telemetry-client" "3.0.0-devnet.20251212" + "@aztec/world-state" "3.0.0-devnet.20251212" lodash.clonedeep "^4.5.0" lodash.merge "^4.6.2" tslib "^2.4.0" -"@aztec/stdlib@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/stdlib/-/stdlib-3.0.0-devnet.5.tgz#27107193bd38d2533626a6f33a9466896c490def" - integrity sha512-1AtQUnRSPuFG0hziJ/GFLAiumTBS7msgwMRHxGPg9NHtuNNrVFCw1ya2JwBuaIZPktuNBToRm7YjiOyCO5+04g== +"@aztec/stdlib@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/stdlib/-/stdlib-3.0.0-devnet.20251212.tgz#e87ea64a15137aaa55395f30278ba184a3928f97" + integrity sha512-dynBZhet96Uq4xXM4oqRUcD/7E6pJXK3yVQH5cpCUEzk47vzDeQCdbRiIJJ+QEM5SVIjx2PG0fct1nFXcCD5Hw== dependencies: "@aws-sdk/client-s3" "^3.892.0" - "@aztec/bb.js" "3.0.0-devnet.5" - "@aztec/blob-lib" "3.0.0-devnet.5" - "@aztec/constants" "3.0.0-devnet.5" - "@aztec/ethereum" "3.0.0-devnet.5" - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/l1-artifacts" "3.0.0-devnet.5" - "@aztec/noir-noirc_abi" "3.0.0-devnet.5" + "@aztec/bb.js" "3.0.0-devnet.20251212" + "@aztec/blob-lib" "3.0.0-devnet.20251212" + "@aztec/constants" "3.0.0-devnet.20251212" + "@aztec/ethereum" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/l1-artifacts" "3.0.0-devnet.20251212" + "@aztec/noir-noirc_abi" "3.0.0-devnet.20251212" "@google-cloud/storage" "^7.15.0" axios "^1.12.0" json-stringify-deterministic "1.0.12" @@ -907,16 +912,16 @@ msgpackr "^1.11.2" pako "^2.1.0" tslib "^2.4.0" - viem "npm:@spalladino/viem@2.38.2-eip7594.0" + viem "npm:@aztec/viem@2.38.2" zod "^3.23.8" -"@aztec/telemetry-client@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/telemetry-client/-/telemetry-client-3.0.0-devnet.5.tgz#e4a084e4696b856ede4c32cd4653f81bf63bd6b2" - integrity sha512-66+x1ACeVyRTKHnlmYu9/CubvRQ8hO19Y5tJshP9hwkmsjXbY7LilaSatLNZKCEGHyeqRnrOx2aURYwesNwk9Q== +"@aztec/telemetry-client@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/telemetry-client/-/telemetry-client-3.0.0-devnet.20251212.tgz#7cef701d20f1adcdde6508c1dc101a638e830db0" + integrity sha512-Q77CD74Y+aCiisqdXvitYF31/3N5No5CKSf5w/DsL5WKpyiIsW0fEM09QBIhEz3JUCh9J7jG4cz7PaNQ5xoyQg== dependencies: - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/stdlib" "3.0.0-devnet.5" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/stdlib" "3.0.0-devnet.20251212" "@opentelemetry/api" "^1.9.0" "@opentelemetry/api-logs" "^0.55.0" "@opentelemetry/core" "^1.28.0" @@ -932,34 +937,47 @@ "@opentelemetry/sdk-trace-node" "^1.28.0" "@opentelemetry/semantic-conventions" "^1.28.0" prom-client "^15.1.3" - viem "npm:@spalladino/viem@2.38.2-eip7594.0" - -"@aztec/test-wallet@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/test-wallet/-/test-wallet-3.0.0-devnet.5.tgz#aec81864e7e702583a744a7e706ae58d3df7b12f" - integrity sha512-A3j5AdhUSIFfTW4hc5ysob3NYgS+krsKKHMJrD8AvhXsMJMKSdY5nzshM584epbgrEmA3lVEw8h+vMRLs2UTVg== - dependencies: - "@aztec/accounts" "3.0.0-devnet.5" - "@aztec/aztec.js" "3.0.0-devnet.5" - "@aztec/entrypoints" "3.0.0-devnet.5" - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/noir-contracts.js" "3.0.0-devnet.5" - "@aztec/pxe" "3.0.0-devnet.5" - "@aztec/stdlib" "3.0.0-devnet.5" - -"@aztec/world-state@3.0.0-devnet.5": - version "3.0.0-devnet.5" - resolved "https://registry.yarnpkg.com/@aztec/world-state/-/world-state-3.0.0-devnet.5.tgz#a069815710c00c0047fd42d233f91ce5357b81fc" - integrity sha512-R420F5CDswUN+m9HloaIGiuuQDJoDEy2nuBElBXA6Dno6+kbTeOGP7vXxOnLS/E9gCIk5Yn5iBB4OAb6WMryZQ== - dependencies: - "@aztec/constants" "3.0.0-devnet.5" - "@aztec/foundation" "3.0.0-devnet.5" - "@aztec/kv-store" "3.0.0-devnet.5" - "@aztec/merkle-tree" "3.0.0-devnet.5" - "@aztec/native" "3.0.0-devnet.5" - "@aztec/protocol-contracts" "3.0.0-devnet.5" - "@aztec/stdlib" "3.0.0-devnet.5" - "@aztec/telemetry-client" "3.0.0-devnet.5" + viem "npm:@aztec/viem@2.38.2" + +"@aztec/test-wallet@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/test-wallet/-/test-wallet-3.0.0-devnet.20251212.tgz#b72ec3502dc7361850a94c25684f167afa6a6322" + integrity sha512-f2rqo8YPOtPrDsPnjYFdYb8bg1uWYAQvtN+jYYTKT9m2EuqJ8e9urXbifG2Qpa4WkLzycYFbhO/lwwwnJ8OD8A== + dependencies: + "@aztec/accounts" "3.0.0-devnet.20251212" + "@aztec/aztec.js" "3.0.0-devnet.20251212" + "@aztec/entrypoints" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/noir-contracts.js" "3.0.0-devnet.20251212" + "@aztec/pxe" "3.0.0-devnet.20251212" + "@aztec/stdlib" "3.0.0-devnet.20251212" + "@aztec/wallet-sdk" "3.0.0-devnet.20251212" + +"@aztec/wallet-sdk@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/wallet-sdk/-/wallet-sdk-3.0.0-devnet.20251212.tgz#bd0e5c646582f8b73e93b6aa5c2748d1ea446f17" + integrity sha512-ZpH6cZgxON1S38dwKKkY2xDpjJ53G3AGOGYU4PqF6H1TXTISWxvrM/zCnt5JokGQtz+vDkze2A0rm/JtgVUebg== + dependencies: + "@aztec/aztec.js" "3.0.0-devnet.20251212" + "@aztec/constants" "3.0.0-devnet.20251212" + "@aztec/entrypoints" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/pxe" "3.0.0-devnet.20251212" + "@aztec/stdlib" "3.0.0-devnet.20251212" + +"@aztec/world-state@3.0.0-devnet.20251212": + version "3.0.0-devnet.20251212" + resolved "https://registry.yarnpkg.com/@aztec/world-state/-/world-state-3.0.0-devnet.20251212.tgz#a376363b92db3c37041611499f592849851d288a" + integrity sha512-YcivSND09IFwOJGuzd+KxCcey5voU0KkgDUvSXSv/l0OZQR3o1OBWO9in08GseF4FQI3SZSuLzM3hhuPwMPLgg== + dependencies: + "@aztec/constants" "3.0.0-devnet.20251212" + "@aztec/foundation" "3.0.0-devnet.20251212" + "@aztec/kv-store" "3.0.0-devnet.20251212" + "@aztec/merkle-tree" "3.0.0-devnet.20251212" + "@aztec/native" "3.0.0-devnet.20251212" + "@aztec/protocol-contracts" "3.0.0-devnet.20251212" + "@aztec/stdlib" "3.0.0-devnet.20251212" + "@aztec/telemetry-client" "3.0.0-devnet.20251212" tslib "^2.4.0" zod "^3.23.8" @@ -1717,11 +1735,16 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.6.0.tgz#d4bfb516ad6e7b5111c216a5cc7075f4cf19e6c5" integrity sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ== -"@noble/hashes@1.8.0", "@noble/hashes@^1.8.0", "@noble/hashes@~1.8.0": +"@noble/hashes@1.8.0", "@noble/hashes@^1.6.1", "@noble/hashes@^1.8.0", "@noble/hashes@~1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== +"@noble/hashes@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-2.0.1.tgz#fc1a928061d1232b0a52bb754393c37a5216c89e" + integrity sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw== + "@opentelemetry/api-logs@0.55.0", "@opentelemetry/api-logs@^0.55.0": version "0.55.0" resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.55.0.tgz#5cd7461820d864600250deb3803c32367a6bb2d2" @@ -1977,6 +2000,11 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== +"@scure/base@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-2.0.0.tgz#ba6371fddf92c2727e88ad6ab485db6e624f9a98" + integrity sha512-3E1kpuZginKkek01ovG8krQ0Z44E3DHPjc5S2rjJw9lZn3KSQOs8S7wqikF/AH7iRanHypj85uGyxk0XAyC37w== + "@scure/base@~1.2.5": version "1.2.6" resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.2.6.tgz#ca917184b8231394dd8847509c67a0be522e59f6" @@ -1999,6 +2027,14 @@ "@noble/hashes" "~1.8.0" "@scure/base" "~1.2.5" +"@scure/bip39@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-2.0.1.tgz#47a6dc15e04faf200041239d46ae3bb7c3c96add" + integrity sha512-PsxdFj/d2AcJcZDX1FXN3dDgitDDTmwf78rKZq1a6c1P1Nan1X/Sxc7667zU3U+AN60g7SxxP0YCVw2H/hBycg== + dependencies: + "@noble/hashes" "2.0.1" + "@scure/base" "2.0.0" + "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" @@ -5985,10 +6021,10 @@ vary@^1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -"viem@npm:@spalladino/viem@2.38.2-eip7594.0": - version "2.38.2-eip7594.0" - resolved "https://registry.yarnpkg.com/@spalladino/viem/-/viem-2.38.2-eip7594.0.tgz#d875366821c5fb07b8ed6f52610c21e0e3a761cd" - integrity sha512-1gwcB0wxqUoSuzbwTafhqLOeNPWOaIKkSUUvzgsg5gBDOXDxA8tPJWUXBFFdr640maizWRjTbP9GLuLzgMeSuQ== +"viem@npm:@aztec/viem@2.38.2": + version "2.38.2" + resolved "https://registry.yarnpkg.com/@aztec/viem/-/viem-2.38.2.tgz#9c626b46569cce1f30f08f7be23fb73846aea520" + integrity sha512-q975q5/On5DSTQDJb0yu0AewnCPIckP4EHp2XOx1GrRn0yJd3TdOKVwuH7HjWtyvh3moFaPogBSHnp7bj4GpdQ== dependencies: "@noble/curves" "1.9.1" "@noble/hashes" "1.8.0"