@aztec/simulator 0.65.0 → 0.65.1

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.
Files changed (86) hide show
  1. package/dest/avm/avm_memory_types.d.ts +3 -1
  2. package/dest/avm/avm_memory_types.d.ts.map +1 -1
  3. package/dest/avm/avm_memory_types.js +22 -24
  4. package/dest/avm/avm_simulator.d.ts +5 -1
  5. package/dest/avm/avm_simulator.d.ts.map +1 -1
  6. package/dest/avm/avm_simulator.js +16 -9
  7. package/dest/avm/avm_tree.d.ts +56 -7
  8. package/dest/avm/avm_tree.d.ts.map +1 -1
  9. package/dest/avm/avm_tree.js +155 -83
  10. package/dest/avm/errors.d.ts +19 -0
  11. package/dest/avm/errors.d.ts.map +1 -1
  12. package/dest/avm/errors.js +29 -1
  13. package/dest/avm/journal/journal.d.ts +8 -7
  14. package/dest/avm/journal/journal.d.ts.map +1 -1
  15. package/dest/avm/journal/journal.js +47 -29
  16. package/dest/avm/journal/nullifiers.d.ts +11 -58
  17. package/dest/avm/journal/nullifiers.d.ts.map +1 -1
  18. package/dest/avm/journal/nullifiers.js +27 -107
  19. package/dest/avm/opcodes/memory.d.ts.map +1 -1
  20. package/dest/avm/opcodes/memory.js +6 -2
  21. package/dest/avm/serialization/buffer_cursor.d.ts +2 -0
  22. package/dest/avm/serialization/buffer_cursor.d.ts.map +1 -1
  23. package/dest/avm/serialization/buffer_cursor.js +8 -3
  24. package/dest/avm/serialization/bytecode_serialization.d.ts +1 -0
  25. package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  26. package/dest/avm/serialization/bytecode_serialization.js +27 -13
  27. package/dest/avm/serialization/instruction_serialization.d.ts +1 -0
  28. package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
  29. package/dest/avm/serialization/instruction_serialization.js +9 -6
  30. package/dest/avm/test_utils.d.ts.map +1 -1
  31. package/dest/avm/test_utils.js +3 -2
  32. package/dest/common/errors.d.ts.map +1 -1
  33. package/dest/common/errors.js +3 -2
  34. package/dest/public/dual_side_effect_trace.d.ts +2 -2
  35. package/dest/public/dual_side_effect_trace.d.ts.map +1 -1
  36. package/dest/public/dual_side_effect_trace.js +7 -7
  37. package/dest/public/enqueued_call_side_effect_trace.d.ts +8 -23
  38. package/dest/public/enqueued_call_side_effect_trace.d.ts.map +1 -1
  39. package/dest/public/enqueued_call_side_effect_trace.js +31 -92
  40. package/dest/public/executor_metrics.d.ts +4 -2
  41. package/dest/public/executor_metrics.d.ts.map +1 -1
  42. package/dest/public/executor_metrics.js +20 -3
  43. package/dest/public/fixtures/index.d.ts.map +1 -1
  44. package/dest/public/fixtures/index.js +65 -35
  45. package/dest/public/public_db_sources.d.ts +3 -1
  46. package/dest/public/public_db_sources.d.ts.map +1 -1
  47. package/dest/public/public_db_sources.js +26 -11
  48. package/dest/public/public_processor.d.ts.map +1 -1
  49. package/dest/public/public_processor.js +12 -5
  50. package/dest/public/public_tx_context.d.ts +5 -6
  51. package/dest/public/public_tx_context.d.ts.map +1 -1
  52. package/dest/public/public_tx_context.js +19 -17
  53. package/dest/public/public_tx_simulator.d.ts +13 -2
  54. package/dest/public/public_tx_simulator.d.ts.map +1 -1
  55. package/dest/public/public_tx_simulator.js +263 -217
  56. package/dest/public/side_effect_trace.d.ts +2 -2
  57. package/dest/public/side_effect_trace.d.ts.map +1 -1
  58. package/dest/public/side_effect_trace.js +8 -6
  59. package/dest/public/side_effect_trace_interface.d.ts +2 -2
  60. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  61. package/dest/public/transitional_adapters.d.ts.map +1 -1
  62. package/dest/public/transitional_adapters.js +2 -6
  63. package/package.json +9 -9
  64. package/src/avm/avm_memory_types.ts +26 -24
  65. package/src/avm/avm_simulator.ts +20 -13
  66. package/src/avm/avm_tree.ts +196 -94
  67. package/src/avm/errors.ts +31 -0
  68. package/src/avm/journal/journal.ts +61 -47
  69. package/src/avm/journal/nullifiers.ts +29 -121
  70. package/src/avm/opcodes/memory.ts +6 -1
  71. package/src/avm/serialization/buffer_cursor.ts +9 -3
  72. package/src/avm/serialization/bytecode_serialization.ts +29 -13
  73. package/src/avm/serialization/instruction_serialization.ts +12 -6
  74. package/src/avm/test_utils.ts +9 -1
  75. package/src/common/errors.ts +2 -1
  76. package/src/public/dual_side_effect_trace.ts +6 -30
  77. package/src/public/enqueued_call_side_effect_trace.ts +35 -154
  78. package/src/public/executor_metrics.ts +23 -1
  79. package/src/public/fixtures/index.ts +96 -43
  80. package/src/public/public_db_sources.ts +29 -15
  81. package/src/public/public_processor.ts +11 -4
  82. package/src/public/public_tx_context.ts +21 -23
  83. package/src/public/public_tx_simulator.ts +45 -8
  84. package/src/public/side_effect_trace.ts +7 -9
  85. package/src/public/side_effect_trace_interface.ts +2 -4
  86. package/src/public/transitional_adapters.ts +0 -11
@@ -1,15 +1,13 @@
1
1
  import { PublicExecutionRequest, Tx } from '@aztec/circuit-types';
2
- import { CallContext, DEFAULT_GAS_LIMIT, Gas, GasFees, GasSettings, GlobalVariables, Header, MAX_L2_GAS_PER_ENQUEUED_CALL, PartialPrivateTailPublicInputsForPublic, PrivateKernelTailCircuitPublicInputs, PublicKeys, RollupValidationRequests, SerializableContractInstance, TxConstantData, TxContext, } from '@aztec/circuits.js';
2
+ import { CallContext, DEFAULT_GAS_LIMIT, Gas, GasFees, GasSettings, GlobalVariables, Header, MAX_L2_GAS_PER_ENQUEUED_CALL, PartialPrivateTailPublicInputsForPublic, PrivateKernelTailCircuitPublicInputs, PublicKeys, RollupValidationRequests, SerializableContractInstance, TxConstantData, TxContext, computePublicBytecodeCommitment, } from '@aztec/circuits.js';
3
3
  import { makeContractClassPublic, makeContractInstanceFromClassId } from '@aztec/circuits.js/testing';
4
4
  import { AztecAddress } from '@aztec/foundation/aztec-address';
5
5
  import { Fr, Point } from '@aztec/foundation/fields';
6
6
  import { openTmpStore } from '@aztec/kv-store/utils';
7
- import { PublicTxSimulator } from '@aztec/simulator';
7
+ import { PublicTxSimulator, WorldStateDB } from '@aztec/simulator';
8
8
  import { NoopTelemetryClient } from '@aztec/telemetry-client/noop';
9
9
  import { MerkleTrees } from '@aztec/world-state';
10
- import { mock } from 'jest-mock-extended';
11
10
  import { getAvmTestContractBytecode, getAvmTestContractFunctionSelector } from '../../avm/fixtures/index.js';
12
- const TIMESTAMP = new Fr(99833);
13
11
  /**
14
12
  * If assertionErrString is set, we expect a (non exceptional halting) revert due to a failing assertion and
15
13
  * we check that the revert reason error contains this string. However, the circuit must correctly prove the
@@ -20,41 +18,18 @@ export async function simulateAvmTestContractGenerateCircuitInputs(functionName,
20
18
  const functionSelector = getAvmTestContractFunctionSelector(functionName);
21
19
  calldata = [functionSelector.toField(), ...calldata];
22
20
  const globalVariables = GlobalVariables.empty();
23
- globalVariables.gasFees = GasFees.default();
24
- globalVariables.timestamp = TIMESTAMP;
25
- const worldStateDB = mock();
21
+ globalVariables.gasFees = GasFees.empty();
22
+ globalVariables.timestamp = new Fr(99833);
26
23
  const telemetry = new NoopTelemetryClient();
27
24
  const merkleTrees = await (await MerkleTrees.new(openTmpStore(), telemetry)).fork();
28
- worldStateDB.getMerkleInterface.mockReturnValue(merkleTrees);
29
- // Top level contract call
30
- const bytecode = getAvmTestContractBytecode('public_dispatch');
31
- const dispatchSelector = getAvmTestContractFunctionSelector('public_dispatch');
32
- const publicFn = { bytecode, selector: dispatchSelector };
33
- const contractClass = makeContractClassPublic(0, publicFn);
34
- const contractInstance = makeContractInstanceFromClassId(contractClass.id);
35
- // The values here should match those in `avm_simulator.test.ts`
36
- const instanceGet = new SerializableContractInstance({
37
- version: 1,
38
- salt: new Fr(0x123),
39
- deployer: new AztecAddress(new Fr(0x456)),
40
- contractClassId: new Fr(0x789),
41
- initializationHash: new Fr(0x101112),
42
- publicKeys: new PublicKeys(new Point(new Fr(0x131415), new Fr(0x161718), false), new Point(new Fr(0x192021), new Fr(0x222324), false), new Point(new Fr(0x252627), new Fr(0x282930), false), new Point(new Fr(0x313233), new Fr(0x343536), false)),
43
- }).withAddress(contractInstance.address);
44
- worldStateDB.getContractInstance
45
- .mockResolvedValueOnce(contractInstance)
46
- .mockResolvedValueOnce(instanceGet) // test gets deployer
47
- .mockResolvedValueOnce(instanceGet) // test gets class id
48
- .mockResolvedValueOnce(instanceGet) // test gets init hash
49
- .mockResolvedValue(contractInstance);
50
- worldStateDB.getContractClass.mockResolvedValue(contractClass);
51
- worldStateDB.getBytecode.mockResolvedValue(bytecode);
52
- const storageValue = new Fr(5);
53
- worldStateDB.storageRead.mockResolvedValue(Promise.resolve(storageValue));
25
+ const contractDataSource = new MockedAvmTestContractDataSource();
26
+ const worldStateDB = new WorldStateDB(merkleTrees, contractDataSource);
27
+ const contractInstance = contractDataSource.contractInstance;
54
28
  const simulator = new PublicTxSimulator(merkleTrees, worldStateDB, new NoopTelemetryClient(), globalVariables,
55
29
  /*realAvmProving=*/ true,
56
30
  /*doMerkleOperations=*/ true);
57
- const callContext = new CallContext(sender, contractInstance.address, dispatchSelector, /*isStaticCall=*/ false);
31
+ const callContext = new CallContext(sender, contractInstance.address, contractDataSource.fnSelector,
32
+ /*isStaticCall=*/ false);
58
33
  const executionRequest = new PublicExecutionRequest(callContext, calldata);
59
34
  const tx = createTxForPublicCall(executionRequest);
60
35
  const avmResult = await simulator.simulate(tx);
@@ -98,4 +73,59 @@ export function createTxForPublicCall(executionRequest, gasUsedByPrivate = Gas.e
98
73
  }
99
74
  return tx;
100
75
  }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL2ZpeHR1cmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxFQUFFLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBRUwsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixHQUFHLEVBQ0gsT0FBTyxFQUNQLFdBQVcsRUFDWCxlQUFlLEVBQ2YsTUFBTSxFQUNOLDRCQUE0QixFQUM1Qix1Q0FBdUMsRUFDdkMsb0NBQW9DLEVBRXBDLFVBQVUsRUFDVix3QkFBd0IsRUFDeEIsNEJBQTRCLEVBQzVCLGNBQWMsRUFDZCxTQUFTLEdBQ1YsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFN0csTUFBTSxTQUFTLEdBQUcsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFaEM7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsNENB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
76
+ class MockedAvmTestContractDataSource {
77
+ constructor() {
78
+ this.fnName = 'public_dispatch';
79
+ this.bytecode = getAvmTestContractBytecode(this.fnName);
80
+ this.fnSelector = getAvmTestContractFunctionSelector(this.fnName);
81
+ this.publicFn = { bytecode: this.bytecode, selector: this.fnSelector };
82
+ this.contractClass = makeContractClassPublic(0, this.publicFn);
83
+ this.contractInstance = makeContractInstanceFromClassId(this.contractClass.id);
84
+ this.bytecodeCommitment = computePublicBytecodeCommitment(this.bytecode);
85
+ // The values here should match those in `avm_simulator.test.ts`
86
+ this.otherContractInstance = new SerializableContractInstance({
87
+ version: 1,
88
+ salt: new Fr(0x123),
89
+ deployer: new AztecAddress(new Fr(0x456)),
90
+ contractClassId: new Fr(0x789),
91
+ initializationHash: new Fr(0x101112),
92
+ publicKeys: new PublicKeys(new Point(new Fr(0x131415), new Fr(0x161718), false), new Point(new Fr(0x192021), new Fr(0x222324), false), new Point(new Fr(0x252627), new Fr(0x282930), false), new Point(new Fr(0x313233), new Fr(0x343536), false)),
93
+ }).withAddress(this.contractInstance.address);
94
+ }
95
+ getPublicFunction(_address, _selector) {
96
+ return Promise.resolve(this.publicFn);
97
+ }
98
+ getBlockNumber() {
99
+ throw new Error('Method not implemented.');
100
+ }
101
+ getContractClass(_id) {
102
+ return Promise.resolve(this.contractClass);
103
+ }
104
+ getBytecodeCommitment(_id) {
105
+ return Promise.resolve(this.bytecodeCommitment);
106
+ }
107
+ addContractClass(_contractClass) {
108
+ return Promise.resolve();
109
+ }
110
+ getContract(address) {
111
+ if (address.equals(this.contractInstance.address)) {
112
+ return Promise.resolve(this.contractInstance);
113
+ }
114
+ else {
115
+ return Promise.resolve(this.otherContractInstance);
116
+ }
117
+ }
118
+ getContractClassIds() {
119
+ throw new Error('Method not implemented.');
120
+ }
121
+ getContractArtifact(_address) {
122
+ throw new Error('Method not implemented.');
123
+ }
124
+ getContractFunctionName(_address, _selector) {
125
+ return Promise.resolve(this.fnName);
126
+ }
127
+ addContractArtifact(_address, _contract) {
128
+ return Promise.resolve();
129
+ }
130
+ }
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL2ZpeHR1cmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxFQUFFLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBRUwsV0FBVyxFQUdYLGlCQUFpQixFQUVqQixHQUFHLEVBQ0gsT0FBTyxFQUNQLFdBQVcsRUFDWCxlQUFlLEVBQ2YsTUFBTSxFQUNOLDRCQUE0QixFQUM1Qix1Q0FBdUMsRUFDdkMsb0NBQW9DLEVBRXBDLFVBQVUsRUFDVix3QkFBd0IsRUFDeEIsNEJBQTRCLEVBQzVCLGNBQWMsRUFDZCxTQUFTLEVBQ1QsK0JBQStCLEdBQ2hDLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLCtCQUErQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFN0c7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsNENBQTRDLENBQ2hFLFlBQW9CLEVBQ3BCLFdBQWlCLEVBQUUsRUFDbkIsa0JBQTJCO0lBRTNCLE1BQU0sTUFBTSxHQUFHLFlBQVks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
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference types="node" resolution-mode="require"/>
3
3
  import { type MerkleTreeReadOperations, type MerkleTreeWriteOperations, NullifierMembershipWitness, type Tx } from '@aztec/circuit-types';
4
- import { type AztecAddress, type ContractClassPublic, type ContractDataSource, type ContractInstanceWithAddress, Fr, FunctionSelector, type L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/circuits.js';
4
+ import { type AztecAddress, type ContractClassPublic, type ContractDataSource, type ContractInstanceWithAddress, Fr, type FunctionSelector, type L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/circuits.js';
5
5
  import { type CommitmentsDB, MessageLoadOracleInputs, type PublicContractsDB, type PublicStateDB } from '@aztec/simulator';
6
6
  /**
7
7
  * Implements the PublicContractsDB using a ContractDataSource.
@@ -11,6 +11,7 @@ export declare class ContractsDataSourcePublicDB implements PublicContractsDB {
11
11
  private dataSource;
12
12
  private instanceCache;
13
13
  private classCache;
14
+ private bytecodeCommitmentCache;
14
15
  private log;
15
16
  constructor(dataSource: ContractDataSource);
16
17
  /**
@@ -25,6 +26,7 @@ export declare class ContractsDataSourcePublicDB implements PublicContractsDB {
25
26
  removeNewContracts(tx: Tx): Promise<void>;
26
27
  getContractInstance(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
27
28
  getContractClass(contractClassId: Fr): Promise<ContractClassPublic | undefined>;
29
+ getBytecodeCommitment(contractClassId: Fr): Promise<Fr | undefined>;
28
30
  getBytecode(address: AztecAddress, selector: FunctionSelector): Promise<Buffer | undefined>;
29
31
  getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
30
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"public_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/public_db_sources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/public_db_sources.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { MerkleTreeId, NullifierMembershipWitness, } from '@aztec/circuit-types';
2
- import { ContractClassRegisteredEvent, ContractInstanceDeployedEvent, Fr, FunctionSelector, } from '@aztec/circuits.js';
2
+ import { ContractClassRegisteredEvent, ContractInstanceDeployedEvent, Fr, computePublicBytecodeCommitment, } from '@aztec/circuits.js';
3
3
  import { computeL1ToL2MessageNullifier, computePublicDataTreeLeafSlot } from '@aztec/circuits.js/hash';
4
4
  import { createDebugLogger } from '@aztec/foundation/log';
5
5
  import { Timer } from '@aztec/foundation/timer';
@@ -14,6 +14,7 @@ export class ContractsDataSourcePublicDB {
14
14
  this.dataSource = dataSource;
15
15
  this.instanceCache = new Map();
16
16
  this.classCache = new Map();
17
+ this.bytecodeCommitmentCache = new Map();
17
18
  this.log = createDebugLogger('aztec:sequencer:contracts-data-source');
18
19
  }
19
20
  /**
@@ -56,6 +57,28 @@ export class ContractsDataSourcePublicDB {
56
57
  async getContractClass(contractClassId) {
57
58
  return this.classCache.get(contractClassId.toString()) ?? (await this.dataSource.getContractClass(contractClassId));
58
59
  }
60
+ async getBytecodeCommitment(contractClassId) {
61
+ // Try and retrieve from cache
62
+ const key = contractClassId.toString();
63
+ const result = this.bytecodeCommitmentCache.get(key);
64
+ if (result !== undefined) {
65
+ return result;
66
+ }
67
+ // Now try from the store
68
+ const fromStore = await this.dataSource.getBytecodeCommitment(contractClassId);
69
+ if (fromStore !== undefined) {
70
+ this.bytecodeCommitmentCache.set(key, fromStore);
71
+ return fromStore;
72
+ }
73
+ // Not in either the store or the cache, build it here and cache
74
+ const contractClass = await this.getContractClass(contractClassId);
75
+ if (contractClass === undefined) {
76
+ return undefined;
77
+ }
78
+ const value = computePublicBytecodeCommitment(contractClass.packedBytecode);
79
+ this.bytecodeCommitmentCache.set(key, value);
80
+ return value;
81
+ }
59
82
  async getBytecode(address, selector) {
60
83
  const instance = await this.getContractInstance(address);
61
84
  if (!instance) {
@@ -68,15 +91,7 @@ export class ContractsDataSourcePublicDB {
68
91
  return contractClass.publicFunctions.find(f => f.selector.equals(selector))?.bytecode;
69
92
  }
70
93
  async getDebugFunctionName(address, selector) {
71
- const artifact = await this.dataSource.getContractArtifact(address);
72
- if (!artifact) {
73
- return Promise.resolve(undefined);
74
- }
75
- const f = artifact.functions.find(f => FunctionSelector.fromNameAndParameters(f.name, f.parameters).equals(selector));
76
- if (!f) {
77
- return Promise.resolve(undefined);
78
- }
79
- return Promise.resolve(`${artifact.name}:${f.name}`);
94
+ return await this.dataSource.getContractFunctionName(address, selector);
80
95
  }
81
96
  }
82
97
  /**
@@ -250,4 +265,4 @@ export async function readPublicState(db, contract, slot) {
250
265
  const preimage = (await db.getLeafPreimage(MerkleTreeId.PUBLIC_DATA_TREE, lowLeafResult.index));
251
266
  return preimage.value;
252
267
  }
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2RiX3NvdXJjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3B1YmxpY19kYl9zb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxZQUFZLEVBR1osMEJBQTBCLEdBRTNCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUdMLDRCQUE0QixFQUU1Qiw2QkFBNkIsRUFFN0IsRUFBRSxFQUNGLGdCQUFnQixHQUtqQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBRUwsdUJBQXVCLEdBR3hCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUI7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLDJCQUEyQjtJQU10QyxZQUFvQixVQUE4QjtRQUE5QixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUwxQyxrQkFBYSxHQUFHLElBQUksR0FBRyxFQUF1QyxDQUFDO1FBQy9ELGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBK0IsQ0FBQztRQUVwRCxRQUFHLEdBQUcsaUJBQWlCLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUVwQixDQUFDO0lBRXREOzs7T0FHRztJQUNJLGVBQWUsQ0FBQyxFQUFNO1FBQzNCLHFGQUFxRjtRQUNyRixNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0MsNEJBQTRCLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSx1QkFBdUIsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxD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
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2RiX3NvdXJjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3B1YmxpY19kYl9zb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxZQUFZLEVBR1osMEJBQTBCLEdBRTNCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUdMLDRCQUE0QixFQUU1Qiw2QkFBNkIsRUFFN0IsRUFBRSxFQU1GLCtCQUErQixHQUNoQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBRUwsdUJBQXVCLEdBR3hCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUI7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLDJCQUEyQjtJQU90QyxZQUFvQixVQUE4QjtRQUE5QixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQU4xQyxrQkFBYSxHQUFHLElBQUksR0FBRyxFQUF1QyxDQUFDO1FBQy9ELGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBK0IsQ0FBQztRQUNwRCw0QkFBdUIsR0FBRyxJQUFJLEdBQUcsRUFBYyxDQUFDO1FBRWhELFFBQUcsR0FBRyxpQkFBaUIsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBRXBCLENBQUM7SUFDdEQ7OztPQUdHO0lBQ0ksZUFBZSxDQUFDLEVBQU07UUFDM0IscUZBQXFGO1FBQ3JGLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLHVC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
@@ -1 +1 @@
1
- {"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../src/public/public_processor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAEb,KAAK,yBAAyB,EAC9B,yBAAyB,EACzB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,EAAE,EAEF,KAAK,WAAW,EAGjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,kBAAkB,EAEvB,KAAK,eAAe,EACpB,KAAK,MAAM,EAKZ,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAGnG,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,qBAAa,sBAAsB;IACrB,OAAO,CAAC,kBAAkB;IAAsB,OAAO,CAAC,eAAe;gBAA/D,kBAAkB,EAAE,kBAAkB,EAAU,eAAe,EAAE,eAAe;IAEpG;;;;;OAKG;IACI,MAAM,CACX,UAAU,EAAE,yBAAyB,EACrC,qBAAqB,EAAE,MAAM,GAAG,SAAS,EACzC,eAAe,EAAE,eAAe,GAC/B,eAAe;CAenB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAGxB,SAAS,CAAC,EAAE,EAAE,yBAAyB;IACvC,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,SAAS,CAAC,gBAAgB,EAAE,MAAM;IAClC,SAAS,CAAC,YAAY,EAAE,YAAY;IACpC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB;IAE9C,OAAO,CAAC,GAAG;IARb,OAAO,CAAC,OAAO,CAAyB;gBAE5B,EAAE,EAAE,yBAAyB,EAC7B,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EAC9C,eAAe,EAAE,eAAe,EACxB,GAAG,yCAAwD;IAKrE,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;OAKG;IACU,OAAO,CAClB,GAAG,EAAE,EAAE,EAAE,EACT,eAAe,SAAa,EAC5B,kBAAkB,CAAC,EAAE,kBAAkB,EACvC,WAAW,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,GACrC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAyFpE;;;;;OAKG;YACW,4BAA4B;YA+B5B,oBAAoB;YAuBpB,wBAAwB;CAiDvC"}
1
+ {"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../src/public/public_processor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAEb,KAAK,yBAAyB,EAC9B,yBAAyB,EACzB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,EAAE,EAEF,KAAK,WAAW,EAGjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,kBAAkB,EAEvB,KAAK,eAAe,EACpB,KAAK,MAAM,EAKZ,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAGnG,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,qBAAa,sBAAsB;IACrB,OAAO,CAAC,kBAAkB;IAAsB,OAAO,CAAC,eAAe;gBAA/D,kBAAkB,EAAE,kBAAkB,EAAU,eAAe,EAAE,eAAe;IAEpG;;;;;OAKG;IACI,MAAM,CACX,UAAU,EAAE,yBAAyB,EACrC,qBAAqB,EAAE,MAAM,GAAG,SAAS,EACzC,eAAe,EAAE,eAAe,GAC/B,eAAe;CAenB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAGxB,SAAS,CAAC,EAAE,EAAE,yBAAyB;IACvC,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,SAAS,CAAC,gBAAgB,EAAE,MAAM;IAClC,SAAS,CAAC,YAAY,EAAE,YAAY;IACpC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB;IAE9C,OAAO,CAAC,GAAG;IARb,OAAO,CAAC,OAAO,CAAyB;gBAE5B,EAAE,EAAE,yBAAyB,EAC7B,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EAC9C,eAAe,EAAE,eAAe,EACxB,GAAG,yCAAwD;IAKrE,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;OAKG;IACU,OAAO,CAClB,GAAG,EAAE,EAAE,EAAE,EACT,eAAe,SAAa,EAC5B,kBAAkB,CAAC,EAAE,kBAAkB,EACvC,WAAW,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,GACrC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAyFpE;;;;;OAKG;YACW,4BAA4B;YAqC5B,oBAAoB;YAuBpB,wBAAwB;CAkDvC"}
@@ -38,9 +38,10 @@ export class PublicProcessorFactory {
38
38
  let PublicProcessor = (() => {
39
39
  var _a;
40
40
  let _instanceExtraInitializers = [];
41
+ let _processPrivateOnlyTx_decorators;
41
42
  let _processTxWithPublicCalls_decorators;
42
43
  return _a = class PublicProcessor {
43
- constructor(db, globalVariables, historicalHeader, worldStateDB, publicTxSimulator, telemetryClient, log = createDebugLogger('aztec:sequencer:public-processor')) {
44
+ constructor(db, globalVariables, historicalHeader, worldStateDB, publicTxSimulator, telemetryClient, log = createDebugLogger('aztec:simulator:public-processor')) {
44
45
  this.db = (__runInitializers(this, _instanceExtraInitializers), db);
45
46
  this.globalVariables = globalVariables;
46
47
  this.historicalHeader = historicalHeader;
@@ -140,18 +141,19 @@ let PublicProcessor = (() => {
140
141
  */
141
142
  async getFeePaymentPublicDataWrite(publicDataWrites, txFee, feePayer) {
142
143
  if (feePayer.isZero()) {
144
+ this.log.debug(`No one is paying the fee of ${txFee.toBigInt()}`);
143
145
  return;
144
146
  }
145
147
  const feeJuiceAddress = ProtocolContractAddress.FeeJuice;
146
148
  const balanceSlot = computeFeePayerBalanceStorageSlot(feePayer);
147
149
  const leafSlot = computeFeePayerBalanceLeafSlot(feePayer);
148
- this.log.debug(`Deducting ${txFee} balance in Fee Juice for ${feePayer}`);
150
+ this.log.debug(`Deducting ${txFee.toBigInt()} balance in Fee Juice for ${feePayer}`);
149
151
  const existingBalanceWrite = publicDataWrites.find(write => write.leafSlot.equals(leafSlot));
150
152
  const balance = existingBalanceWrite
151
153
  ? existingBalanceWrite.value
152
154
  : await this.worldStateDB.storageRead(feeJuiceAddress, balanceSlot);
153
155
  if (balance.lt(txFee)) {
154
- throw new Error(`Not enough balance for fee payer to pay for transaction (got ${balance} needs ${txFee})`);
156
+ throw new Error(`Not enough balance for fee payer to pay for transaction (got ${balance.toBigInt()} needs ${txFee.toBigInt()})`);
155
157
  }
156
158
  const updatedBalance = balance.sub(txFee);
157
159
  await this.worldStateDB.storageWrite(feeJuiceAddress, balanceSlot, updatedBalance);
@@ -182,7 +184,8 @@ let PublicProcessor = (() => {
182
184
  });
183
185
  this.metrics.recordClassRegistration(...ContractClassRegisteredEvent.fromLogs(tx.contractClassLogs.unrollLogs(), ProtocolContractAddress.ContractClassRegisterer));
184
186
  const phaseCount = processedPhases.length;
185
- this.metrics.recordTx(phaseCount, timer.ms());
187
+ const durationMs = timer.ms();
188
+ this.metrics.recordTx(phaseCount, durationMs);
186
189
  const data = avmProvingRequest.inputs.output;
187
190
  const feePaymentPublicDataWrite = await this.getFeePaymentPublicDataWrite(data.accumulatedData.publicDataWrites, data.transactionFee, tx.data.feePayer);
188
191
  const processedTx = makeProcessedTxFromTxWithPublicCalls(tx, avmProvingRequest, feePaymentPublicDataWrite, gasUsed, revertCode, revertReason);
@@ -192,13 +195,17 @@ let PublicProcessor = (() => {
192
195
  },
193
196
  (() => {
194
197
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
198
+ _processPrivateOnlyTx_decorators = [trackSpan('PublicProcessor.processPrivateOnlyTx', (tx) => ({
199
+ [Attributes.TX_HASH]: tx.getTxHash().toString(),
200
+ }))];
195
201
  _processTxWithPublicCalls_decorators = [trackSpan('PublicProcessor.processTxWithPublicCalls', tx => ({
196
202
  [Attributes.TX_HASH]: tx.getTxHash().toString(),
197
203
  }))];
204
+ __esDecorate(_a, null, _processPrivateOnlyTx_decorators, { kind: "method", name: "processPrivateOnlyTx", static: false, private: false, access: { has: obj => "processPrivateOnlyTx" in obj, get: obj => obj.processPrivateOnlyTx }, metadata: _metadata }, null, _instanceExtraInitializers);
198
205
  __esDecorate(_a, null, _processTxWithPublicCalls_decorators, { kind: "method", name: "processTxWithPublicCalls", static: false, private: false, access: { has: obj => "processTxWithPublicCalls" in obj, get: obj => obj.processTxWithPublicCalls }, metadata: _metadata }, null, _instanceExtraInitializers);
199
206
  if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
200
207
  })(),
201
208
  _a;
202
209
  })();
203
210
  export { PublicProcessor };
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3Byb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFlBQVksRUFFWix5QkFBeUIsRUFHekIsRUFBRSxFQUNGLGdCQUFnQixFQUVoQixnQ0FBZ0MsRUFDaEMsb0NBQW9DLEdBQ3JDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUVMLDRCQUE0QixFQUU1QixFQUFFLEVBR0Ysc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsZUFBZSxHQUNoQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBcUMsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTdEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUFvQixrQkFBc0MsRUFBVSxlQUFnQztRQUFoRix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQUcsQ0FBQztJQUV4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
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3Byb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFlBQVksRUFFWix5QkFBeUIsRUFHekIsRUFBRSxFQUNGLGdCQUFnQixFQUVoQixnQ0FBZ0MsRUFDaEMsb0NBQW9DLEdBQ3JDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUVMLDRCQUE0QixFQUU1QixFQUFFLEVBR0Ysc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsZUFBZSxHQUNoQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBcUMsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTdEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUFvQixrQkFBc0MsRUFBVSxlQUFnQztRQUFoRix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQUcsQ0FBQztJQUV4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
@@ -20,10 +20,9 @@ export declare class PublicTxContext {
20
20
  private readonly setupExecutionRequests;
21
21
  private readonly appLogicExecutionRequests;
22
22
  private readonly teardownExecutionRequests;
23
- private readonly nonRevertibleAccumulatedDataFromPrivate;
24
- private readonly revertibleAccumulatedDataFromPrivate;
23
+ readonly nonRevertibleAccumulatedDataFromPrivate: PrivateToPublicAccumulatedData;
24
+ readonly revertibleAccumulatedDataFromPrivate: PrivateToPublicAccumulatedData;
25
25
  trace: PublicEnqueuedCallSideEffectTrace;
26
- private doMerkleOperations;
27
26
  private log;
28
27
  private gasUsed;
29
28
  teardownGasUsed: Gas;
@@ -32,8 +31,7 @@ export declare class PublicTxContext {
32
31
  revertReason: SimulationError | undefined;
33
32
  avmProvingRequest: AvmProvingRequest | undefined;
34
33
  constructor(state: PhaseStateManager, globalVariables: GlobalVariables, historicalHeader: Header, // FIXME(dbanks12): remove
35
- startStateReference: StateReference, startGasUsed: Gas, gasSettings: GasSettings, setupCallRequests: PublicCallRequest[], appLogicCallRequests: PublicCallRequest[], teardownCallRequests: PublicCallRequest[], setupExecutionRequests: PublicExecutionRequest[], appLogicExecutionRequests: PublicExecutionRequest[], teardownExecutionRequests: PublicExecutionRequest[], nonRevertibleAccumulatedDataFromPrivate: PrivateToPublicAccumulatedData, revertibleAccumulatedDataFromPrivate: PrivateToPublicAccumulatedData, trace: PublicEnqueuedCallSideEffectTrace, // FIXME(dbanks12): should be private
36
- doMerkleOperations: boolean);
34
+ startStateReference: StateReference, startGasUsed: Gas, gasSettings: GasSettings, setupCallRequests: PublicCallRequest[], appLogicCallRequests: PublicCallRequest[], teardownCallRequests: PublicCallRequest[], setupExecutionRequests: PublicExecutionRequest[], appLogicExecutionRequests: PublicExecutionRequest[], teardownExecutionRequests: PublicExecutionRequest[], nonRevertibleAccumulatedDataFromPrivate: PrivateToPublicAccumulatedData, revertibleAccumulatedDataFromPrivate: PrivateToPublicAccumulatedData, trace: PublicEnqueuedCallSideEffectTrace);
37
35
  static create(db: MerkleTreeReadOperations, worldStateDB: WorldStateDB, tx: Tx, globalVariables: GlobalVariables, doMerkleOperations: boolean): Promise<PublicTxContext>;
38
36
  /**
39
37
  * Signal that the entire transaction execution is done.
@@ -115,11 +113,12 @@ export declare class PublicTxContext {
115
113
  * so that we can conditionally fork at the start of a phase.
116
114
  *
117
115
  * There is a state manager that lives at the level of the entire transaction,
118
- * but for setup and teardown the active state manager will be a fork of the
116
+ * but for app logic and teardown the active state manager will be a fork of the
119
117
  * transaction level one.
120
118
  */
121
119
  declare class PhaseStateManager {
122
120
  private readonly txStateManager;
121
+ private log;
123
122
  private currentlyActiveStateManager;
124
123
  constructor(txStateManager: AvmPersistableStateManager);
125
124
  fork(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"public_tx_context.d.ts","sourceRoot":"","sources":["../../src/public/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_context.ts"],"names":[],"mappings":"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"}