From 5ed33d1696fff771be8d686c67bce68a34b4d17e Mon Sep 17 00:00:00 2001 From: benesjan Date: Fri, 10 May 2024 07:40:19 +0000 Subject: [PATCH] refactor: deploying accounts after key registry --- .../client_prover_test.ts | 1 - .../end-to-end/src/e2e_2_pxes.test.ts | 9 +++--- .../src/fixtures/snapshot_manager.ts | 8 +++++ yarn-project/end-to-end/src/fixtures/utils.ts | 32 ++++++++----------- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/yarn-project/end-to-end/src/client_prover_integration/client_prover_test.ts b/yarn-project/end-to-end/src/client_prover_integration/client_prover_test.ts index 0303dcecdab..54318e1702c 100644 --- a/yarn-project/end-to-end/src/client_prover_integration/client_prover_test.ts +++ b/yarn-project/end-to-end/src/client_prover_integration/client_prover_test.ts @@ -130,7 +130,6 @@ export class ClientProverTest { this.logger.debug(`Main setup completed, initializing full prover PXE...`); ({ pxe: this.fullProverPXE, teardown: this.provenPXETeardown } = await setupPXEService( - 0, this.aztecNode, { proverEnabled: false, diff --git a/yarn-project/end-to-end/src/e2e_2_pxes.test.ts b/yarn-project/end-to-end/src/e2e_2_pxes.test.ts index 7e185f169e0..ebb1ec71e14 100644 --- a/yarn-project/end-to-end/src/e2e_2_pxes.test.ts +++ b/yarn-project/end-to-end/src/e2e_2_pxes.test.ts @@ -1,4 +1,5 @@ import { getUnsafeSchnorrAccount } from '@aztec/accounts/single_key'; +import { createAccounts } from '@aztec/accounts/testing'; import { type AztecAddress, type AztecNode, @@ -40,11 +41,9 @@ describe('e2e_2_pxes', () => { teardown: teardownA, } = await setup(1)); - ({ - pxe: pxeB, - wallets: [walletB], - teardown: teardownB, - } = await setupPXEService(1, aztecNode!, {}, undefined, true)); + ({ pxe: pxeB, teardown: teardownB } = await setupPXEService(aztecNode!, {}, undefined, true)); + + [walletB] = await createAccounts(pxeB, 1); }); afterEach(async () => { diff --git a/yarn-project/end-to-end/src/fixtures/snapshot_manager.ts b/yarn-project/end-to-end/src/fixtures/snapshot_manager.ts index 72651f79e27..7129a268eb9 100644 --- a/yarn-project/end-to-end/src/fixtures/snapshot_manager.ts +++ b/yarn-project/end-to-end/src/fixtures/snapshot_manager.ts @@ -8,9 +8,11 @@ import { EthCheatCodes, Fr, GrumpkinPrivateKey, + SignerlessWallet, type Wallet, } from '@aztec/aztec.js'; import { deployInstance, registerContractClass } from '@aztec/aztec.js/deployment'; +import { DefaultMultiCallEntrypoint } from '@aztec/aztec.js/entrypoint'; import { asyncMap } from '@aztec/foundation/async-map'; import { type Logger, createDebugLogger } from '@aztec/foundation/log'; import { makeBackoff, retry } from '@aztec/foundation/retry'; @@ -27,6 +29,7 @@ import { mnemonicToAccount } from 'viem/accounts'; import { MNEMONIC } from './fixtures.js'; import { getACVMConfig } from './get_acvm_config.js'; import { setupL1Contracts } from './setup_l1_contracts.js'; +import { deployCanonicalKeyRegistry } from './utils.js'; export type SubsystemsContext = { anvil: Anvil; @@ -264,6 +267,11 @@ async function setupFromFresh(statePath: string | undefined, logger: Logger): Pr pxeConfig.dataDirectory = statePath; const pxe = await createPXEService(aztecNode, pxeConfig); + logger.verbose('Deploying key registry...'); + await deployCanonicalKeyRegistry( + new SignerlessWallet(pxe, new DefaultMultiCallEntrypoint(aztecNodeConfig.chainId, aztecNodeConfig.version)), + ); + if (statePath) { writeFileSync(`${statePath}/aztec_node_config.json`, JSON.stringify(aztecNodeConfig)); } diff --git a/yarn-project/end-to-end/src/fixtures/utils.ts b/yarn-project/end-to-end/src/fixtures/utils.ts index 93439822fec..725d35a6ab6 100644 --- a/yarn-project/end-to-end/src/fixtures/utils.ts +++ b/yarn-project/end-to-end/src/fixtures/utils.ts @@ -153,7 +153,6 @@ async function initGasBridge({ walletClient, l1ContractAddresses }: DeployL1Cont /** * Sets up Private eXecution Environment (PXE). - * @param numberOfAccounts - The number of new accounts to be created once the PXE is initiated. * @param aztecNode - An instance of Aztec Node. * @param opts - Partial configuration for the PXE service. * @param firstPrivKey - The private key of the first account to be created. @@ -163,7 +162,6 @@ async function initGasBridge({ walletClient, l1ContractAddresses }: DeployL1Cont * @returns Private eXecution Environment (PXE), accounts, wallets and logger. */ export async function setupPXEService( - numberOfAccounts: number, aztecNode: AztecNode, opts: Partial = {}, logger = getLogger(), @@ -174,10 +172,6 @@ export async function setupPXEService( * The PXE instance. */ pxe: PXEService; - /** - * The wallets to be used. - */ - wallets: AccountWalletWithSecretKey[]; /** * Logger instance named as the current test. */ @@ -190,15 +184,12 @@ export async function setupPXEService( const pxeServiceConfig = { ...getPXEServiceConfig(), ...opts }; const pxe = await createPXEService(aztecNode, pxeServiceConfig, useLogSuffix, proofCreator); - const wallets = await createAccounts(pxe, numberOfAccounts); - const teardown = async () => { await pxe.stop(); }; return { pxe, - wallets, logger, teardown, }; @@ -230,14 +221,6 @@ async function setupWithRemoteEnvironment( logger.verbose('JSON RPC client connected to PXE'); logger.verbose(`Retrieving contract addresses from ${PXE_URL}`); const l1Contracts = (await pxeClient.getNodeInfo()).l1ContractAddresses; - logger.verbose('PXE created, constructing available wallets from already registered accounts...'); - const wallets = await getDeployedTestAccountsWallets(pxeClient); - - if (wallets.length < numberOfAccounts) { - const numNewAccounts = numberOfAccounts - wallets.length; - logger.verbose(`Deploying ${numNewAccounts} accounts...`); - wallets.push(...(await createAccounts(pxeClient, numNewAccounts))); - } const walletClient = createWalletClient({ account, @@ -269,6 +252,15 @@ async function setupWithRemoteEnvironment( ); } + logger.verbose('Constructing available wallets from already registered accounts...'); + const wallets = await getDeployedTestAccountsWallets(pxeClient); + + if (wallets.length < numberOfAccounts) { + const numNewAccounts = numberOfAccounts - wallets.length; + logger.verbose(`Deploying ${numNewAccounts} accounts...`); + wallets.push(...(await createAccounts(pxeClient, numNewAccounts))); + } + return { aztecNode, sequencer: undefined, @@ -400,7 +392,8 @@ export async function setup( const prover = aztecNode.getProver(); logger.verbose('Creating a pxe...'); - const { pxe, wallets } = await setupPXEService(numberOfAccounts, aztecNode!, pxeOpts, logger); + + const { pxe } = await setupPXEService(aztecNode!, pxeOpts, logger); logger.verbose('Deploying key registry...'); await deployCanonicalKeyRegistry( @@ -414,6 +407,7 @@ export async function setup( ); } + const wallets = await createAccounts(pxe, numberOfAccounts); const cheatCodes = CheatCodes.create(config.rpcUrl, pxe!); const teardown = async () => { @@ -616,7 +610,7 @@ export async function deployCanonicalGasToken(deployer: Wallet) { await expect(deployer.isContractPubliclyDeployed(gasToken.address)).resolves.toBe(true); } -async function deployCanonicalKeyRegistry(deployer: Wallet) { +export async function deployCanonicalKeyRegistry(deployer: Wallet) { const canonicalKeyRegistry = getCanonicalKeyRegistry(); // We check to see if there exists a contract at the canonical Key Registry address with the same contract class id as we expect. This means that