Skip to content

Commit 084ee8d

Browse files
committed
fix: misc fixes to simulator test fixtures, yarn-project bootstrap, bb-prover AVM error message
1 parent 7e5aa59 commit 084ee8d

File tree

15 files changed

+59
-28
lines changed

15 files changed

+59
-28
lines changed

yarn-project/bb-prover/src/avm_proving_tests/avm_bulk.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { createLogger } from '@aztec/foundation/log';
2+
import { AvmTestContractArtifact } from '@aztec/noir-test-contracts.js/AvmTest';
23
import { TestExecutorMetrics, bulkTest, defaultGlobals } from '@aztec/simulator/public/fixtures';
34

45
import { mkdirSync, writeFileSync } from 'fs';
@@ -33,7 +34,7 @@ describe('AVM proven bulk test', () => {
3334
it(
3435
'Prove and verify',
3536
async () => {
36-
await bulkTest(tester, logger, (b: boolean) => expect(b).toBe(true));
37+
await bulkTest(tester, logger, AvmTestContractArtifact, (b: boolean) => expect(b).toBe(true));
3738
},
3839
TIMEOUT,
3940
);

yarn-project/bb-prover/src/avm_proving_tests/avm_check_circuit_amm.test.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import { createLogger } from '@aztec/foundation/log';
2+
import { AMMContractArtifact } from '@aztec/noir-contracts.js/AMM';
3+
import { TokenContractArtifact } from '@aztec/noir-contracts.js/Token';
24
import { TestExecutorMetrics, ammTest, defaultGlobals } from '@aztec/simulator/public/fixtures';
35

46
import { mkdirSync, writeFileSync } from 'fs';
@@ -34,7 +36,7 @@ describe.skip('AVM proven AMM', () => {
3436
it(
3537
'proven AMM operations: addLiquidity, swap, removeLiquidity (simulates constructors, set_minter)',
3638
async () => {
37-
await ammTest(tester, logger, (b: boolean) => expect(b).toBe(true));
39+
await ammTest(tester, logger, TokenContractArtifact, AMMContractArtifact, (b: boolean) => expect(b).toBe(true));
3840
},
3941
TIMEOUT,
4042
);

yarn-project/bb-prover/src/avm_proving_tests/avm_check_circuit_token.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { createLogger } from '@aztec/foundation/log';
2+
import { TokenContractArtifact } from '@aztec/noir-contracts.js/Token';
23
import { TestExecutorMetrics, defaultGlobals, tokenTest } from '@aztec/simulator/public/fixtures';
34

45
import { mkdirSync, writeFileSync } from 'fs';
@@ -33,7 +34,7 @@ describe('AVM proven TokenContract', () => {
3334
it(
3435
'proven token transfer (simulates constructor, mint, burn, check balance)',
3536
async () => {
36-
await tokenTest(tester, logger, (b: boolean) => expect(b).toBe(true));
37+
await tokenTest(tester, logger, TokenContractArtifact, (b: boolean) => expect(b).toBe(true));
3738
},
3839
TIMEOUT,
3940
);

yarn-project/bb-prover/src/avm_proving_tests/avm_mega_bulk.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { createLogger } from '@aztec/foundation/log';
2+
import { AvmTestContractArtifact } from '@aztec/noir-test-contracts.js/AvmTest';
23
import { TestExecutorMetrics, defaultGlobals, megaBulkTest } from '@aztec/simulator/public/fixtures';
34

45
import { mkdirSync, writeFileSync } from 'fs';
@@ -34,7 +35,7 @@ describe.skip('AVM proven MEGA bulk test', () => {
3435
it(
3536
'Prove and verify mega bulk test',
3637
async () => {
37-
await megaBulkTest(tester, logger, (b: boolean) => expect(b).toBe(true));
38+
await megaBulkTest(tester, logger, AvmTestContractArtifact, (b: boolean) => expect(b).toBe(true));
3839
},
3940
TIMEOUT,
4041
);

yarn-project/bb-prover/src/bb/execute.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ export async function generateAvmProof(
434434
// Not a great error message here but it is difficult to decipher what comes from bb
435435
return {
436436
status: BB_RESULT.FAILURE,
437-
reason: `Failed to generate proof. Exit code ${result.exitCode}. Signal ${result.signal}.`,
437+
reason: `Failed to generate proof. AVM proof for TX hash ${input.hints.tx.hash}. Exit code ${result.exitCode}. Signal ${result.signal}.`,
438438
retry: !!result.signal,
439439
};
440440
} catch (error) {

yarn-project/bootstrap.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ function test_cmds {
142142
fi
143143

144144
if [[ "$test" =~ rollup_ivc_integration || "$test" =~ avm_integration ]]; then
145-
cmd_env+=" LOG_LEVEL=trace BB_VERBOSE=1 "
145+
cmd_env+=" LOG_LEVEL=debug BB_VERBOSE=1 "
146146
fi
147147

148148
echo "${prefix}${cmd_env} yarn-project/scripts/run_test.sh $test"

yarn-project/ivc-integration/src/avm_integration.test.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
} from '@aztec/constants';
77
import { createLogger } from '@aztec/foundation/log';
88
import { mapAvmCircuitPublicInputsToNoir } from '@aztec/noir-protocol-circuits-types/server';
9+
import { AvmTestContractArtifact } from '@aztec/noir-test-contracts.js/AvmTest';
910
import { PublicTxSimulationTester, bulkTest, createAvmMinimalPublicTx } from '@aztec/simulator/public/fixtures';
1011
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
1112
import type { ProofAndVerificationKey } from '@aztec/stdlib/interfaces/server';
@@ -102,7 +103,9 @@ describe('AVM Integration', () => {
102103
});
103104

104105
it('Should generate and verify an ultra honk proof from an AVM verification of the bulk test', async () => {
105-
const avmSimulationResult = await bulkTest(simTester, logger, (b: boolean) => expect(b).toBe(true));
106+
const avmSimulationResult = await bulkTest(simTester, logger, AvmTestContractArtifact, (b: boolean) =>
107+
expect(b).toBe(true),
108+
);
106109
const avmCircuitInputs = avmSimulationResult.avmProvingRequest.inputs;
107110

108111
await proveMockPublicBaseRollup(

yarn-project/ivc-integration/src/rollup_ivc_integration.test.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
import { Fr } from '@aztec/foundation/fields';
88
import { createLogger } from '@aztec/foundation/log';
99
import { mapAvmCircuitPublicInputsToNoir } from '@aztec/noir-protocol-circuits-types/server';
10+
import { AvmTestContractArtifact } from '@aztec/noir-test-contracts.js/AvmTest';
1011
import { PublicTxSimulationTester, bulkTest } from '@aztec/simulator/public/fixtures';
1112
import { AvmCircuitPublicInputs } from '@aztec/stdlib/avm';
1213
import type { ProofAndVerificationKey } from '@aztec/stdlib/interfaces/server';
@@ -73,7 +74,9 @@ describe('Rollup IVC Integration', () => {
7374
const avmWorkingDirectory = await getWorkingDirectory('bb-rollup-ivc-integration-avm-');
7475

7576
const simTester = await PublicTxSimulationTester.create();
76-
const avmSimulationResult = await bulkTest(simTester, logger, (b: boolean) => expect(b).toBe(true));
77+
const avmSimulationResult = await bulkTest(simTester, logger, AvmTestContractArtifact, (b: boolean) =>
78+
expect(b).toBe(true),
79+
);
7780

7881
const avmCircuitInputs = avmSimulationResult.avmProvingRequest.inputs;
7982
({

yarn-project/simulator/src/public/fixtures/amm_test.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto';
33
import { Fr } from '@aztec/foundation/fields';
44
import type { Logger } from '@aztec/foundation/log';
55
import { Timer } from '@aztec/foundation/timer';
6-
import { AMMContractArtifact } from '@aztec/noir-contracts.js/AMM';
6+
import type { ContractArtifact } from '@aztec/stdlib/abi';
77
import { AztecAddress } from '@aztec/stdlib/aztec-address';
88
import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
99

@@ -16,22 +16,28 @@ const INITIAL_TOKEN_BALANCE = 1_000_000_000n;
1616
* `.skip` it or literally just delete it and notify AVM team.
1717
* You do NOT need permission to remove this test!
1818
*/
19-
export async function ammTest(tester: PublicTxSimulationTester, logger: Logger, expectToBeTrue: (x: boolean) => void) {
19+
export async function ammTest(
20+
tester: PublicTxSimulationTester,
21+
logger: Logger,
22+
tokenArtifact: ContractArtifact,
23+
ammArtifact: ContractArtifact,
24+
expectToBeTrue: (x: boolean) => void,
25+
) {
2026
const timer = new Timer();
2127

2228
const admin = AztecAddress.fromNumber(42);
2329
const sender = AztecAddress.fromNumber(111);
2430

2531
logger.debug(`Deploying tokens`);
26-
const token0 = await setUpToken(tester, admin, expectToBeTrue, /*seed=*/ 0);
27-
const token1 = await setUpToken(tester, admin, expectToBeTrue, /*seed=*/ 1);
28-
const liquidityToken = await setUpToken(tester, admin, expectToBeTrue, /*seed=*/ 2);
32+
const token0 = await setUpToken(tester, tokenArtifact, admin, expectToBeTrue, /*seed=*/ 0);
33+
const token1 = await setUpToken(tester, tokenArtifact, admin, expectToBeTrue, /*seed=*/ 1);
34+
const liquidityToken = await setUpToken(tester, tokenArtifact, admin, expectToBeTrue, /*seed=*/ 2);
2935
logger.debug(`Deploying AMM`);
3036
const constructorArgs = [token0, token1, liquidityToken];
3137
const amm = await tester.registerAndDeployContract(
3238
constructorArgs,
3339
/*deployer=*/ admin,
34-
AMMContractArtifact,
40+
ammArtifact,
3541
/*skipNullifierInsertion=*/ false,
3642
/*seed=*/ 3,
3743
);

yarn-project/simulator/src/public/fixtures/bulk_test.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
import { Fr } from '@aztec/foundation/fields';
22
import type { Logger } from '@aztec/foundation/log';
33
import { Timer } from '@aztec/foundation/timer';
4-
import { AvmTestContractArtifact } from '@aztec/noir-test-contracts.js/AvmTest';
4+
import type { ContractArtifact } from '@aztec/stdlib/abi';
55
import { AztecAddress } from '@aztec/stdlib/aztec-address';
66

77
import { PublicTxSimulationTester } from './public_tx_simulation_tester.js';
88

9-
export async function bulkTest(tester: PublicTxSimulationTester, logger: Logger, expectToBeTrue: (x: boolean) => void) {
9+
export async function bulkTest(
10+
tester: PublicTxSimulationTester,
11+
logger: Logger,
12+
avmTestContractArtifact: ContractArtifact,
13+
expectToBeTrue: (x: boolean) => void,
14+
) {
1015
const timer = new Timer();
1116

1217
const deployer = AztecAddress.fromNumber(42);
1318
const avmTestContract = await tester.registerAndDeployContract(
1419
/*constructorArgs=*/ [],
1520
deployer,
16-
/*contractArtifact=*/ AvmTestContractArtifact,
21+
avmTestContractArtifact,
1722
);
1823

1924
// Get a deployed contract instance to pass to the contract
@@ -65,6 +70,7 @@ export async function bulkTest(tester: PublicTxSimulationTester, logger: Logger,
6570
export async function megaBulkTest(
6671
tester: PublicTxSimulationTester,
6772
logger: Logger,
73+
avmTestContractArtifact: ContractArtifact,
6874
expectToBeTrue: (x: boolean) => void,
6975
) {
7076
const timer = new Timer();
@@ -73,7 +79,7 @@ export async function megaBulkTest(
7379
const avmTestContract = await tester.registerAndDeployContract(
7480
/*constructorArgs=*/ [],
7581
deployer,
76-
/*contractArtifact=*/ AvmTestContractArtifact,
82+
avmTestContractArtifact,
7783
);
7884
// Get a deployed contract instance to pass to the contract
7985
// for it to use as "expected" values when testing contract instance retrieval.

0 commit comments

Comments
 (0)