@aztec/simulator 3.0.0-nightly.20251007 → 3.0.0-nightly.20251008

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"minimal_public_tx.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/minimal_public_tx.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAkC,MAAM,mBAAmB,CAAC;AAQrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAIpF,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,cAAc,CAAC,CA2BrE;AAED;;;GAGG;AACH,wBAAgB,oCAAoC,IAAI,gBAAgB,CAEvE"}
1
+ {"version":3,"file":"minimal_public_tx.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/minimal_public_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAIpF,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,cAAc,CAAC,CAiBrE;AAED;;;GAGG;AACH,wBAAgB,oCAAoC,IAAI,gBAAgB,CAEvE"}
@@ -1,6 +1,5 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import { AvmCircuitInputs, AvmProtocolContractAddressHint } from '@aztec/stdlib/avm';
3
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
1
+ import { AvmCircuitInputs } from '@aztec/stdlib/avm';
2
+ import { ProtocolContracts } from '@aztec/stdlib/tx';
4
3
  import avmMinimalCircuitInputsJson from '../../../artifacts/avm_minimal_inputs.json' with {
5
4
  type: 'json'
6
5
  };
@@ -19,13 +18,9 @@ export async function simAvmMinimalPublicTx() {
19
18
  ]);
20
19
  const tester = await PublicTxSimulationTester.create();
21
20
  const result = await testCustomBytecode(minimalBytecode, tester, 'MinimalTx', 'AvmMinimalContract');
22
- // Modify the protocolContractDerivedAddresses to be all zeros and modify the protocolContractTreeRoot
23
- // to be a fixed value (the root of a tree of all 0 leaves). This ensures that the testdata is stable
24
- result.avmProvingRequest.inputs.hints.protocolContractDerivedAddresses = result.avmProvingRequest.inputs.hints.protocolContractDerivedAddresses.map(()=>new AvmProtocolContractAddressHint(AztecAddress.ZERO, AztecAddress.ZERO));
25
- result.avmProvingRequest.inputs.publicInputs.protocolContractTreeRoot = Fr.fromString('0x0dcca15f6b97b59e13712bd9e5a6a2e7fe2349ebb82b5a82a4ae554358bac73a');
26
- // You can uncomment this to log the actual root if you want to verify it it matches
27
- // const protocolContractTree = await buildProtocolContractTree([]);
28
- // console.log(Fr.fromBuffer(protocolContractTree.root));
21
+ // Modify the protocol contracts to be all zeros
22
+ result.avmProvingRequest.inputs.hints.protocolContracts = ProtocolContracts.empty();
23
+ result.avmProvingRequest.inputs.publicInputs.protocolContracts = ProtocolContracts.empty();
29
24
  return result;
30
25
  }
31
26
  /**
@@ -4,7 +4,7 @@ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import type { SimulationError } from '@aztec/stdlib/errors';
5
5
  import { Gas } from '@aztec/stdlib/gas';
6
6
  import { PrivateToPublicAccumulatedData } from '@aztec/stdlib/kernel';
7
- import { type GlobalVariables, PublicCallRequestWithCalldata, type Tx, TxExecutionPhase, type TxHash } from '@aztec/stdlib/tx';
7
+ import { type GlobalVariables, ProtocolContracts, PublicCallRequestWithCalldata, type Tx, TxExecutionPhase, type TxHash } from '@aztec/stdlib/tx';
8
8
  import type { PublicContractsDBInterface } from '../db_interfaces.js';
9
9
  import type { PublicTreesDB } from '../public_db_sources.js';
10
10
  import { PublicPersistableStateManager } from '../state_manager/state_manager.js';
@@ -16,7 +16,7 @@ export declare class PublicTxContext {
16
16
  readonly state: PhaseStateManager;
17
17
  private readonly startTreeSnapshots;
18
18
  private readonly globalVariables;
19
- private readonly protocolContractTreeRoot;
19
+ private readonly protocolContracts;
20
20
  private readonly proverId;
21
21
  private readonly gasSettings;
22
22
  private readonly gasUsedByPrivate;
@@ -36,7 +36,7 @@ export declare class PublicTxContext {
36
36
  private revertCode;
37
37
  revertReason: SimulationError | undefined;
38
38
  private constructor();
39
- static create(treesDB: PublicTreesDB, contractsDB: PublicContractsDBInterface, tx: Tx, globalVariables: GlobalVariables, protocolContractTreeRoot: Fr, doMerkleOperations: boolean, proverId: Fr): Promise<PublicTxContext>;
39
+ static create(treesDB: PublicTreesDB, contractsDB: PublicContractsDBInterface, tx: Tx, globalVariables: GlobalVariables, protocolContracts: ProtocolContracts, doMerkleOperations: boolean, proverId: Fr): Promise<PublicTxContext>;
40
40
  /**
41
41
  * Signal that the entire transaction execution is done.
42
42
  * All phases have been processed.
@@ -1 +1 @@
1
- {"version":3,"file":"public_tx_context.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/public_tx_context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public_tx_context.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/public_tx_context.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ import { getCallRequestsWithCalldataByPhase } from '../utils.js';
22
22
  state;
23
23
  startTreeSnapshots;
24
24
  globalVariables;
25
- protocolContractTreeRoot;
25
+ protocolContracts;
26
26
  proverId;
27
27
  gasSettings;
28
28
  gasUsedByPrivate;
@@ -41,12 +41,12 @@ import { getCallRequestsWithCalldataByPhase } from '../utils.js';
41
41
  /* Entire transaction execution is done. */ halted;
42
42
  /* Where did reverts happen (if at all)? */ revertCode;
43
43
  /* What caused a revert (if one occurred)? */ revertReason;
44
- constructor(txHash, state, startTreeSnapshots, globalVariables, protocolContractTreeRoot, proverId, gasSettings, gasUsedByPrivate, gasAllocatedToPublic, gasAllocatedToPublicTeardown, setupCallRequests, appLogicCallRequests, teardownCallRequests, nonRevertibleAccumulatedDataFromPrivate, revertibleAccumulatedDataFromPrivate, feePayer, trace){
44
+ constructor(txHash, state, startTreeSnapshots, globalVariables, protocolContracts, proverId, gasSettings, gasUsedByPrivate, gasAllocatedToPublic, gasAllocatedToPublicTeardown, setupCallRequests, appLogicCallRequests, teardownCallRequests, nonRevertibleAccumulatedDataFromPrivate, revertibleAccumulatedDataFromPrivate, feePayer, trace){
45
45
  this.txHash = txHash;
46
46
  this.state = state;
47
47
  this.startTreeSnapshots = startTreeSnapshots;
48
48
  this.globalVariables = globalVariables;
49
- this.protocolContractTreeRoot = protocolContractTreeRoot;
49
+ this.protocolContracts = protocolContracts;
50
50
  this.proverId = proverId;
51
51
  this.gasSettings = gasSettings;
52
52
  this.gasUsedByPrivate = gasUsedByPrivate;
@@ -65,7 +65,7 @@ import { getCallRequestsWithCalldataByPhase } from '../utils.js';
65
65
  this.revertCode = RevertCode.OK;
66
66
  this.log = createLogger(`simulator:public_tx_context`);
67
67
  }
68
- static async create(treesDB, contractsDB, tx, globalVariables, protocolContractTreeRoot, doMerkleOperations, proverId) {
68
+ static async create(treesDB, contractsDB, tx, globalVariables, protocolContracts, doMerkleOperations, proverId) {
69
69
  const nonRevertibleAccumulatedDataFromPrivate = tx.data.forPublic.nonRevertibleAccumulatedData;
70
70
  const trace = new SideEffectTrace();
71
71
  const firstNullifier = nonRevertibleAccumulatedDataFromPrivate.nullifiers[0];
@@ -75,7 +75,7 @@ import { getCallRequestsWithCalldataByPhase } from '../utils.js';
75
75
  const gasUsedByPrivate = tx.data.gasUsed;
76
76
  const gasAllocatedToPublic = gasSettings.gasLimits.sub(gasUsedByPrivate);
77
77
  const gasAllocatedToPublicTeardown = gasSettings.teardownGasLimits;
78
- return new PublicTxContext(tx.getTxHash(), new PhaseStateManager(txStateManager), await txStateManager.getTreeSnapshots(), globalVariables, protocolContractTreeRoot, proverId, gasSettings, gasUsedByPrivate, gasAllocatedToPublic, gasAllocatedToPublicTeardown, getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.SETUP), getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.APP_LOGIC), getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.TEARDOWN), tx.data.forPublic.nonRevertibleAccumulatedData, tx.data.forPublic.revertibleAccumulatedData, tx.data.feePayer, trace);
78
+ return new PublicTxContext(tx.getTxHash(), new PhaseStateManager(txStateManager), await txStateManager.getTreeSnapshots(), globalVariables, protocolContracts, proverId, gasSettings, gasUsedByPrivate, gasAllocatedToPublic, gasAllocatedToPublicTeardown, getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.SETUP), getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.APP_LOGIC), getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.TEARDOWN), tx.data.forPublic.nonRevertibleAccumulatedData, tx.data.forPublic.revertibleAccumulatedData, tx.data.feePayer, trace);
79
79
  }
80
80
  /**
81
81
  * Signal that the entire transaction execution is done.
@@ -244,7 +244,7 @@ import { getCallRequestsWithCalldataByPhase } from '../utils.js';
244
244
  // This converts the private accumulated data to the avm accumulated data format.
245
245
  const convertAccumulatedData = (from)=>new PrivateToAvmAccumulatedData(from.noteHashes, from.nullifiers, from.l2ToL1Msgs);
246
246
  const getPreviousAccumulatedDataArrayLengths = (from)=>new PrivateToAvmAccumulatedDataArrayLengths(countAccumulatedItems(from.noteHashes), countAccumulatedItems(from.nullifiers), countAccumulatedItems(from.l2ToL1Msgs));
247
- return new AvmCircuitPublicInputs(this.globalVariables, this.protocolContractTreeRoot, this.startTreeSnapshots, /*startGasUsed=*/ this.gasUsedByPrivate, this.gasSettings, computeEffectiveGasFees(this.globalVariables.gasFees, this.gasSettings), this.feePayer, this.proverId, /*publicCallRequestArrayLengths=*/ new PublicCallRequestArrayLengths(this.setupCallRequests.length, this.appLogicCallRequests.length, this.teardownCallRequests.length > 0), /*publicSetupCallRequests=*/ padArrayEnd(this.setupCallRequests.map((r)=>r.request), PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX), /*publicAppLogicCallRequests=*/ padArrayEnd(this.appLogicCallRequests.map((r)=>r.request), PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX), /*publicTeardownCallRequests=*/ this.teardownCallRequests.length > 0 ? this.teardownCallRequests[0].request : PublicCallRequest.empty(), getPreviousAccumulatedDataArrayLengths(this.nonRevertibleAccumulatedDataFromPrivate), getPreviousAccumulatedDataArrayLengths(this.revertibleAccumulatedDataFromPrivate), convertAccumulatedData(this.nonRevertibleAccumulatedDataFromPrivate), convertAccumulatedData(this.revertibleAccumulatedDataFromPrivate), endTreeSnapshots, this.getTotalGasUsed(), accumulatedDataArrayLengths, accumulatedData, /*transactionFee=*/ this.getTransactionFeeUnsafe(), /*isReverted=*/ !this.revertCode.isOK());
247
+ return new AvmCircuitPublicInputs(this.globalVariables, this.protocolContracts, this.startTreeSnapshots, /*startGasUsed=*/ this.gasUsedByPrivate, this.gasSettings, computeEffectiveGasFees(this.globalVariables.gasFees, this.gasSettings), this.feePayer, this.proverId, /*publicCallRequestArrayLengths=*/ new PublicCallRequestArrayLengths(this.setupCallRequests.length, this.appLogicCallRequests.length, this.teardownCallRequests.length > 0), /*publicSetupCallRequests=*/ padArrayEnd(this.setupCallRequests.map((r)=>r.request), PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX), /*publicAppLogicCallRequests=*/ padArrayEnd(this.appLogicCallRequests.map((r)=>r.request), PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX), /*publicTeardownCallRequests=*/ this.teardownCallRequests.length > 0 ? this.teardownCallRequests[0].request : PublicCallRequest.empty(), getPreviousAccumulatedDataArrayLengths(this.nonRevertibleAccumulatedDataFromPrivate), getPreviousAccumulatedDataArrayLengths(this.revertibleAccumulatedDataFromPrivate), convertAccumulatedData(this.nonRevertibleAccumulatedDataFromPrivate), convertAccumulatedData(this.revertibleAccumulatedDataFromPrivate), endTreeSnapshots, this.getTotalGasUsed(), accumulatedDataArrayLengths, accumulatedData, /*transactionFee=*/ this.getTransactionFeeUnsafe(), /*isReverted=*/ !this.revertCode.isOK());
248
248
  }
249
249
  }
250
250
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"public_tx_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/public_tx_simulator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public_tx_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/public_tx_simulator.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  import { AVM_MAX_PROCESSABLE_L2_GAS, DEFAULT_MAX_DEBUG_LOG_MEMORY_READS } from '@aztec/constants';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
- import { ProtocolContractAddress, ProtocolContractLeaves, protocolContractNames, protocolContractTreeRoot } from '@aztec/protocol-contracts';
4
+ import { ProtocolContractAddress, ProtocolContractsList } from '@aztec/protocol-contracts';
5
5
  import { computeFeePayerBalanceStorageSlot } from '@aztec/protocol-contracts/fee-juice';
6
- import { AvmCircuitInputs, AvmExecutionHints, AvmProtocolContractAddressHint, AvmTxHint } from '@aztec/stdlib/avm';
7
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
6
+ import { AvmCircuitInputs, AvmExecutionHints, AvmTxHint } from '@aztec/stdlib/avm';
8
7
  import { SimulationError } from '@aztec/stdlib/errors';
9
8
  import { ProvingRequestType } from '@aztec/stdlib/proofs';
10
9
  import { NestedProcessReturnValues, TxExecutionPhase } from '@aztec/stdlib/tx';
@@ -72,15 +71,12 @@ export class PublicTxSimulator {
72
71
  this.log.debug(`Simulating ${tx.publicFunctionCalldata.length} public calls for tx ${txHash}`, {
73
72
  txHash
74
73
  });
75
- // These values are technically derivable from the contractsDB. However, since the trees are not persisted
76
- // computing them for every tx would be time consuming for this TS simulator. So instead we just import them
77
- const protocolContractHints = protocolContractNames.map((name)=>new AvmProtocolContractAddressHint(/*Canonical Address=*/ ProtocolContractAddress[name], /*Derived Address=*/ AztecAddress.fromField(ProtocolContractLeaves[name])));
78
74
  // Create hinting DBs.
79
- const hints = new AvmExecutionHints(this.globalVariables, AvmTxHint.fromTx(tx, this.globalVariables.gasFees), protocolContractHints);
75
+ const hints = new AvmExecutionHints(this.globalVariables, AvmTxHint.fromTx(tx, this.globalVariables.gasFees), ProtocolContractsList);
80
76
  const hintingMerkleTree = await HintingMerkleWriteOperations.create(this.merkleTree, hints);
81
77
  const hintingTreesDB = new PublicTreesDB(hintingMerkleTree);
82
78
  const hintingContractsDB = new HintingPublicContractsDB(this.contractsDB, hints);
83
- const context = await PublicTxContext.create(hintingTreesDB, hintingContractsDB, tx, this.globalVariables, protocolContractTreeRoot, this.config.doMerkleOperations, this.config.proverId);
79
+ const context = await PublicTxContext.create(hintingTreesDB, hintingContractsDB, tx, this.globalVariables, ProtocolContractsList, this.config.doMerkleOperations, this.config.proverId);
84
80
  // This will throw if there is a nullifier collision.
85
81
  // In that case the transaction will be thrown out.
86
82
  await this.insertNonRevertiblesFromPrivate(context, tx);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/simulator",
3
- "version": "3.0.0-nightly.20251007",
3
+ "version": "3.0.0-nightly.20251008",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./server": "./dest/server.js",
@@ -63,25 +63,25 @@
63
63
  ]
64
64
  },
65
65
  "dependencies": {
66
- "@aztec/constants": "3.0.0-nightly.20251007",
67
- "@aztec/foundation": "3.0.0-nightly.20251007",
68
- "@aztec/noir-acvm_js": "3.0.0-nightly.20251007",
69
- "@aztec/noir-noirc_abi": "3.0.0-nightly.20251007",
70
- "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251007",
71
- "@aztec/noir-types": "3.0.0-nightly.20251007",
72
- "@aztec/protocol-contracts": "3.0.0-nightly.20251007",
73
- "@aztec/stdlib": "3.0.0-nightly.20251007",
74
- "@aztec/telemetry-client": "3.0.0-nightly.20251007",
75
- "@aztec/world-state": "3.0.0-nightly.20251007",
66
+ "@aztec/constants": "3.0.0-nightly.20251008",
67
+ "@aztec/foundation": "3.0.0-nightly.20251008",
68
+ "@aztec/noir-acvm_js": "3.0.0-nightly.20251008",
69
+ "@aztec/noir-noirc_abi": "3.0.0-nightly.20251008",
70
+ "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251008",
71
+ "@aztec/noir-types": "3.0.0-nightly.20251008",
72
+ "@aztec/protocol-contracts": "3.0.0-nightly.20251008",
73
+ "@aztec/stdlib": "3.0.0-nightly.20251008",
74
+ "@aztec/telemetry-client": "3.0.0-nightly.20251008",
75
+ "@aztec/world-state": "3.0.0-nightly.20251008",
76
76
  "lodash.clonedeep": "^4.5.0",
77
77
  "lodash.merge": "^4.6.2",
78
78
  "tslib": "^2.4.0"
79
79
  },
80
80
  "devDependencies": {
81
- "@aztec/kv-store": "3.0.0-nightly.20251007",
82
- "@aztec/merkle-tree": "3.0.0-nightly.20251007",
83
- "@aztec/noir-contracts.js": "3.0.0-nightly.20251007",
84
- "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251007",
81
+ "@aztec/kv-store": "3.0.0-nightly.20251008",
82
+ "@aztec/merkle-tree": "3.0.0-nightly.20251008",
83
+ "@aztec/noir-contracts.js": "3.0.0-nightly.20251008",
84
+ "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251008",
85
85
  "@jest/globals": "^30.0.0",
86
86
  "@types/jest": "^30.0.0",
87
87
  "@types/lodash.clonedeep": "^4.5.7",
@@ -1,6 +1,5 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import { AvmCircuitInputs, AvmProtocolContractAddressHint } from '@aztec/stdlib/avm';
3
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
1
+ import { AvmCircuitInputs } from '@aztec/stdlib/avm';
2
+ import { ProtocolContracts } from '@aztec/stdlib/tx';
4
3
 
5
4
  import avmMinimalCircuitInputsJson from '../../../artifacts/avm_minimal_inputs.json' with { type: 'json' };
6
5
  import { TypeTag } from '../avm/avm_memory_types.js';
@@ -23,19 +22,9 @@ export async function simAvmMinimalPublicTx(): Promise<PublicTxResult> {
23
22
 
24
23
  const result = await testCustomBytecode(minimalBytecode, tester, 'MinimalTx', 'AvmMinimalContract');
25
24
 
26
- // Modify the protocolContractDerivedAddresses to be all zeros and modify the protocolContractTreeRoot
27
- // to be a fixed value (the root of a tree of all 0 leaves). This ensures that the testdata is stable
28
- result.avmProvingRequest.inputs.hints.protocolContractDerivedAddresses =
29
- result.avmProvingRequest.inputs.hints.protocolContractDerivedAddresses.map(
30
- () => new AvmProtocolContractAddressHint(AztecAddress.ZERO, AztecAddress.ZERO),
31
- );
32
- result.avmProvingRequest.inputs.publicInputs.protocolContractTreeRoot = Fr.fromString(
33
- '0x0dcca15f6b97b59e13712bd9e5a6a2e7fe2349ebb82b5a82a4ae554358bac73a',
34
- );
35
-
36
- // You can uncomment this to log the actual root if you want to verify it it matches
37
- // const protocolContractTree = await buildProtocolContractTree([]);
38
- // console.log(Fr.fromBuffer(protocolContractTree.root));
25
+ // Modify the protocol contracts to be all zeros
26
+ result.avmProvingRequest.inputs.hints.protocolContracts = ProtocolContracts.empty();
27
+ result.avmProvingRequest.inputs.publicInputs.protocolContracts = ProtocolContracts.empty();
39
28
 
40
29
  return result;
41
30
  }
@@ -32,6 +32,7 @@ import { ScopedL2ToL1Message } from '@aztec/stdlib/messaging';
32
32
  import { MerkleTreeId } from '@aztec/stdlib/trees';
33
33
  import {
34
34
  type GlobalVariables,
35
+ ProtocolContracts,
35
36
  PublicCallRequestWithCalldata,
36
37
  TreeSnapshots,
37
38
  type Tx,
@@ -70,7 +71,7 @@ export class PublicTxContext {
70
71
  public readonly state: PhaseStateManager,
71
72
  private readonly startTreeSnapshots: TreeSnapshots,
72
73
  private readonly globalVariables: GlobalVariables,
73
- private readonly protocolContractTreeRoot: Fr,
74
+ private readonly protocolContracts: ProtocolContracts,
74
75
  private readonly proverId: Fr,
75
76
  private readonly gasSettings: GasSettings,
76
77
  private readonly gasUsedByPrivate: Gas,
@@ -92,7 +93,7 @@ export class PublicTxContext {
92
93
  contractsDB: PublicContractsDBInterface,
93
94
  tx: Tx,
94
95
  globalVariables: GlobalVariables,
95
- protocolContractTreeRoot: Fr,
96
+ protocolContracts: ProtocolContracts,
96
97
  doMerkleOperations: boolean,
97
98
  proverId: Fr,
98
99
  ) {
@@ -122,7 +123,7 @@ export class PublicTxContext {
122
123
  new PhaseStateManager(txStateManager),
123
124
  await txStateManager.getTreeSnapshots(),
124
125
  globalVariables,
125
- protocolContractTreeRoot,
126
+ protocolContracts,
126
127
  proverId,
127
128
  gasSettings,
128
129
  gasUsedByPrivate,
@@ -380,7 +381,7 @@ export class PublicTxContext {
380
381
 
381
382
  return new AvmCircuitPublicInputs(
382
383
  this.globalVariables,
383
- this.protocolContractTreeRoot,
384
+ this.protocolContracts,
384
385
  this.startTreeSnapshots,
385
386
  /*startGasUsed=*/ this.gasUsedByPrivate,
386
387
  this.gasSettings,
@@ -1,23 +1,16 @@
1
1
  import { AVM_MAX_PROCESSABLE_L2_GAS, DEFAULT_MAX_DEBUG_LOG_MEMORY_READS } from '@aztec/constants';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
3
  import { type Logger, createLogger } from '@aztec/foundation/log';
4
- import {
5
- ProtocolContractAddress,
6
- ProtocolContractLeaves,
7
- protocolContractNames,
8
- protocolContractTreeRoot,
9
- } from '@aztec/protocol-contracts';
4
+ import { ProtocolContractAddress, ProtocolContractsList } from '@aztec/protocol-contracts';
10
5
  import { computeFeePayerBalanceStorageSlot } from '@aztec/protocol-contracts/fee-juice';
11
6
  import {
12
7
  AvmCircuitInputs,
13
8
  AvmCircuitPublicInputs,
14
9
  AvmExecutionHints,
15
- AvmProtocolContractAddressHint,
16
10
  type AvmProvingRequest,
17
11
  AvmTxHint,
18
12
  type RevertCode,
19
13
  } from '@aztec/stdlib/avm';
20
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
21
14
  import { SimulationError } from '@aztec/stdlib/errors';
22
15
  import type { Gas, GasUsed } from '@aztec/stdlib/gas';
23
16
  import type { DebugLog } from '@aztec/stdlib/logs';
@@ -139,21 +132,11 @@ export class PublicTxSimulator {
139
132
  const txHash = this.computeTxHash(tx);
140
133
  this.log.debug(`Simulating ${tx.publicFunctionCalldata.length} public calls for tx ${txHash}`, { txHash });
141
134
 
142
- // These values are technically derivable from the contractsDB. However, since the trees are not persisted
143
- // computing them for every tx would be time consuming for this TS simulator. So instead we just import them
144
- const protocolContractHints = protocolContractNames.map(
145
- name =>
146
- new AvmProtocolContractAddressHint(
147
- /*Canonical Address=*/ ProtocolContractAddress[name],
148
- /*Derived Address=*/ AztecAddress.fromField(ProtocolContractLeaves[name]),
149
- ),
150
- );
151
-
152
135
  // Create hinting DBs.
153
136
  const hints = new AvmExecutionHints(
154
137
  this.globalVariables,
155
138
  AvmTxHint.fromTx(tx, this.globalVariables.gasFees),
156
- protocolContractHints,
139
+ ProtocolContractsList, // imported from file
157
140
  );
158
141
  const hintingMerkleTree = await HintingMerkleWriteOperations.create(this.merkleTree, hints);
159
142
  const hintingTreesDB = new PublicTreesDB(hintingMerkleTree);
@@ -164,7 +147,7 @@ export class PublicTxSimulator {
164
147
  hintingContractsDB,
165
148
  tx,
166
149
  this.globalVariables,
167
- protocolContractTreeRoot, // imported from file
150
+ ProtocolContractsList, // imported from file
168
151
  this.config.doMerkleOperations,
169
152
  this.config.proverId,
170
153
  );