@aztec/simulator 0.66.0 → 0.67.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 (125) hide show
  1. package/dest/acvm/acvm.js +3 -3
  2. package/dest/acvm/oracle/oracle.d.ts +1 -1
  3. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  4. package/dest/acvm/oracle/oracle.js +3 -3
  5. package/dest/acvm/oracle/typed_oracle.d.ts +2 -2
  6. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  7. package/dest/acvm/oracle/typed_oracle.js +3 -3
  8. package/dest/acvm/serialize.js +2 -2
  9. package/dest/avm/avm_context.d.ts +2 -2
  10. package/dest/avm/avm_context.d.ts.map +1 -1
  11. package/dest/avm/avm_context.js +3 -4
  12. package/dest/avm/avm_execution_environment.d.ts +4 -6
  13. package/dest/avm/avm_execution_environment.d.ts.map +1 -1
  14. package/dest/avm/avm_execution_environment.js +8 -13
  15. package/dest/avm/avm_memory_types.d.ts +2 -2
  16. package/dest/avm/avm_memory_types.d.ts.map +1 -1
  17. package/dest/avm/avm_memory_types.js +3 -3
  18. package/dest/avm/avm_simulator.d.ts +3 -3
  19. package/dest/avm/avm_simulator.d.ts.map +1 -1
  20. package/dest/avm/avm_simulator.js +22 -13
  21. package/dest/avm/errors.d.ts +3 -3
  22. package/dest/avm/errors.d.ts.map +1 -1
  23. package/dest/avm/errors.js +8 -15
  24. package/dest/avm/fixtures/index.d.ts.map +1 -1
  25. package/dest/avm/fixtures/index.js +4 -4
  26. package/dest/avm/journal/journal.d.ts +15 -4
  27. package/dest/avm/journal/journal.d.ts.map +1 -1
  28. package/dest/avm/journal/journal.js +108 -29
  29. package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
  30. package/dest/avm/opcodes/external_calls.js +4 -11
  31. package/dest/avm/opcodes/misc.d.ts.map +1 -1
  32. package/dest/avm/opcodes/misc.js +3 -3
  33. package/dest/client/client_execution_context.d.ts +3 -3
  34. package/dest/client/client_execution_context.d.ts.map +1 -1
  35. package/dest/client/client_execution_context.js +14 -8
  36. package/dest/client/db_oracle.d.ts +2 -2
  37. package/dest/client/db_oracle.d.ts.map +1 -1
  38. package/dest/client/execution_note_cache.d.ts +9 -1
  39. package/dest/client/execution_note_cache.d.ts.map +1 -1
  40. package/dest/client/execution_note_cache.js +10 -3
  41. package/dest/client/private_execution.d.ts.map +1 -1
  42. package/dest/client/private_execution.js +4 -4
  43. package/dest/client/simulator.d.ts.map +1 -1
  44. package/dest/client/simulator.js +4 -4
  45. package/dest/client/unconstrained_execution.d.ts.map +1 -1
  46. package/dest/client/unconstrained_execution.js +3 -3
  47. package/dest/client/view_data_oracle.d.ts +2 -2
  48. package/dest/client/view_data_oracle.d.ts.map +1 -1
  49. package/dest/client/view_data_oracle.js +5 -6
  50. package/dest/common/debug_fn_name.d.ts +2 -2
  51. package/dest/common/debug_fn_name.d.ts.map +1 -1
  52. package/dest/common/debug_fn_name.js +8 -14
  53. package/dest/providers/acvm_native.js +4 -4
  54. package/dest/providers/factory.d.ts +2 -2
  55. package/dest/providers/factory.d.ts.map +1 -1
  56. package/dest/providers/factory.js +4 -4
  57. package/dest/public/enqueued_call_side_effect_trace.d.ts +11 -23
  58. package/dest/public/enqueued_call_side_effect_trace.d.ts.map +1 -1
  59. package/dest/public/enqueued_call_side_effect_trace.js +37 -58
  60. package/dest/public/executor_metrics.d.ts.map +1 -1
  61. package/dest/public/executor_metrics.js +2 -5
  62. package/dest/public/fixtures/index.d.ts +24 -1
  63. package/dest/public/fixtures/index.d.ts.map +1 -1
  64. package/dest/public/fixtures/index.js +15 -9
  65. package/dest/public/index.d.ts +0 -1
  66. package/dest/public/index.d.ts.map +1 -1
  67. package/dest/public/index.js +1 -2
  68. package/dest/public/public_db_sources.d.ts.map +1 -1
  69. package/dest/public/public_db_sources.js +4 -4
  70. package/dest/public/public_processor.d.ts +7 -8
  71. package/dest/public/public_processor.d.ts.map +1 -1
  72. package/dest/public/public_processor.js +30 -22
  73. package/dest/public/public_tx_context.d.ts +13 -10
  74. package/dest/public/public_tx_context.d.ts.map +1 -1
  75. package/dest/public/public_tx_context.js +46 -31
  76. package/dest/public/public_tx_simulator.d.ts +2 -2
  77. package/dest/public/public_tx_simulator.d.ts.map +1 -1
  78. package/dest/public/public_tx_simulator.js +43 -23
  79. package/dest/public/side_effect_trace_interface.d.ts +4 -17
  80. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  81. package/dest/public/transitional_adapters.d.ts +2 -2
  82. package/dest/public/transitional_adapters.d.ts.map +1 -1
  83. package/dest/public/transitional_adapters.js +28 -24
  84. package/package.json +16 -9
  85. package/src/acvm/acvm.ts +2 -2
  86. package/src/acvm/oracle/oracle.ts +2 -2
  87. package/src/acvm/oracle/typed_oracle.ts +3 -3
  88. package/src/acvm/serialize.ts +1 -1
  89. package/src/avm/avm_context.ts +2 -3
  90. package/src/avm/avm_execution_environment.ts +6 -31
  91. package/src/avm/avm_memory_types.ts +2 -2
  92. package/src/avm/avm_simulator.ts +24 -20
  93. package/src/avm/errors.ts +12 -14
  94. package/src/avm/fixtures/index.ts +2 -3
  95. package/src/avm/journal/journal.ts +189 -63
  96. package/src/avm/opcodes/external_calls.ts +3 -19
  97. package/src/avm/opcodes/misc.ts +2 -2
  98. package/src/client/client_execution_context.ts +17 -9
  99. package/src/client/db_oracle.ts +2 -2
  100. package/src/client/execution_note_cache.ts +13 -3
  101. package/src/client/private_execution.ts +3 -3
  102. package/src/client/simulator.ts +4 -4
  103. package/src/client/unconstrained_execution.ts +2 -2
  104. package/src/client/view_data_oracle.ts +5 -6
  105. package/src/common/debug_fn_name.ts +7 -13
  106. package/src/providers/acvm_native.ts +3 -3
  107. package/src/providers/factory.ts +3 -3
  108. package/src/public/enqueued_call_side_effect_trace.ts +54 -74
  109. package/src/public/executor_metrics.ts +0 -4
  110. package/src/public/fixtures/index.ts +23 -10
  111. package/src/public/index.ts +0 -1
  112. package/src/public/public_db_sources.ts +3 -3
  113. package/src/public/public_processor.ts +46 -47
  114. package/src/public/public_tx_context.ts +52 -32
  115. package/src/public/public_tx_simulator.ts +58 -38
  116. package/src/public/side_effect_trace_interface.ts +8 -15
  117. package/src/public/transitional_adapters.ts +39 -24
  118. package/dest/public/dual_side_effect_trace.d.ts +0 -77
  119. package/dest/public/dual_side_effect_trace.d.ts.map +0 -1
  120. package/dest/public/dual_side_effect_trace.js +0 -119
  121. package/dest/public/side_effect_trace.d.ts +0 -96
  122. package/dest/public/side_effect_trace.d.ts.map +0 -1
  123. package/dest/public/side_effect_trace.js +0 -309
  124. package/src/public/dual_side_effect_trace.ts +0 -242
  125. package/src/public/side_effect_trace.ts +0 -536
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  type AvmCircuitPublicInputs,
3
- type Fr,
3
+ type AztecAddress,
4
+ Fr,
4
5
  type Gas,
5
6
  type GasSettings,
6
7
  type GlobalVariables,
7
8
  MAX_L2_TO_L1_MSGS_PER_TX,
8
9
  MAX_NOTE_HASHES_PER_TX,
9
- MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
10
+ MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
10
11
  PrivateToAvmAccumulatedData,
11
12
  PrivateToAvmAccumulatedDataArrayLengths,
12
13
  type PrivateToPublicAccumulatedData,
@@ -30,6 +31,7 @@ export function generateAvmCircuitPublicInputs(
30
31
  startStateReference: StateReference,
31
32
  startGasUsed: Gas,
32
33
  gasSettings: GasSettings,
34
+ feePayer: AztecAddress,
33
35
  setupCallRequests: PublicCallRequest[],
34
36
  appLogicCallRequests: PublicCallRequest[],
35
37
  teardownCallRequests: PublicCallRequest[],
@@ -52,6 +54,7 @@ export function generateAvmCircuitPublicInputs(
52
54
  startTreeSnapshots,
53
55
  startGasUsed,
54
56
  gasSettings,
57
+ feePayer,
55
58
  setupCallRequests,
56
59
  appLogicCallRequests,
57
60
  teardownCallRequests.length ? teardownCallRequests[0] : PublicCallRequest.empty(),
@@ -83,6 +86,28 @@ export function generateAvmCircuitPublicInputs(
83
86
  revertibleAccumulatedDataFromPrivate,
84
87
  );
85
88
 
89
+ const txHash = avmCircuitPublicInputs.previousNonRevertibleAccumulatedData.nullifiers[0];
90
+
91
+ // Add nonces to revertible note hashes from private. These don't have nonces since we don't know
92
+ // the final position in the tx until the AVM has executed.
93
+ // TODO: Use the final position in the tx
94
+ for (
95
+ let revertibleIndex = 0;
96
+ revertibleIndex < avmCircuitPublicInputs.previousRevertibleAccumulatedData.noteHashes.length;
97
+ revertibleIndex++
98
+ ) {
99
+ const noteHash = avmCircuitPublicInputs.previousRevertibleAccumulatedData.noteHashes[revertibleIndex];
100
+ if (noteHash.isZero()) {
101
+ continue;
102
+ }
103
+ const indexInTx =
104
+ revertibleIndex + avmCircuitPublicInputs.previousNonRevertibleAccumulatedDataArrayLengths.noteHashes;
105
+
106
+ const nonce = computeNoteHashNonce(txHash, indexInTx);
107
+ const uniqueNoteHash = computeUniqueNoteHash(nonce, noteHash);
108
+ avmCircuitPublicInputs.previousRevertibleAccumulatedData.noteHashes[revertibleIndex] = uniqueNoteHash;
109
+ }
110
+
86
111
  // merge all revertible & non-revertible side effects into output accumulated data
87
112
  const noteHashesFromPrivate = revertCode.isOK()
88
113
  ? mergeAccumulatedData(
@@ -95,8 +120,7 @@ export function generateAvmCircuitPublicInputs(
95
120
  MAX_NOTE_HASHES_PER_TX,
96
121
  );
97
122
 
98
- const txHash = avmCircuitPublicInputs.previousNonRevertibleAccumulatedData.nullifiers[0];
99
-
123
+ // Silo and add nonces for note hashes emitted by the AVM
100
124
  const scopedNoteHashesFromPublic = trace.getSideEffects().noteHashes;
101
125
  for (let i = 0; i < scopedNoteHashesFromPublic.length; i++) {
102
126
  const scopedNoteHash = scopedNoteHashesFromPublic[i];
@@ -104,9 +128,10 @@ export function generateAvmCircuitPublicInputs(
104
128
  if (!noteHash.isZero()) {
105
129
  const noteHashIndexInTx = i + countAccumulatedItems(noteHashesFromPrivate);
106
130
  const nonce = computeNoteHashNonce(txHash, noteHashIndexInTx);
107
- const uniqueNoteHash = computeUniqueNoteHash(nonce, noteHash);
108
- const siloedNoteHash = siloNoteHash(scopedNoteHash.contractAddress, uniqueNoteHash);
109
- avmCircuitPublicInputs.accumulatedData.noteHashes[noteHashIndexInTx] = siloedNoteHash;
131
+ const siloedNoteHash = siloNoteHash(scopedNoteHash.contractAddress, noteHash);
132
+ const uniqueNoteHash = computeUniqueNoteHash(nonce, siloedNoteHash);
133
+
134
+ avmCircuitPublicInputs.accumulatedData.noteHashes[noteHashIndexInTx] = uniqueNoteHash;
110
135
  }
111
136
  }
112
137
 
@@ -121,28 +146,18 @@ export function generateAvmCircuitPublicInputs(
121
146
  MAX_L2_TO_L1_MSGS_PER_TX,
122
147
  );
123
148
 
124
- const dedupedPublicDataWrites: Array<PublicDataWrite> = [];
125
- const leafSlotOccurences: Map<bigint, number> = new Map();
126
- for (const publicDataWrite of avmCircuitPublicInputs.accumulatedData.publicDataWrites) {
127
- const slot = publicDataWrite.leafSlot.toBigInt();
128
- const prevOccurrences = leafSlotOccurences.get(slot) || 0;
129
- leafSlotOccurences.set(slot, prevOccurrences + 1);
130
- }
131
-
149
+ // Maps slot to value. Maps in TS are iterable in insertion order, which is exactly what we want for
150
+ // squashing "to the left", where the first occurrence of a slot uses the value of the last write to it,
151
+ // and the rest occurrences are omitted
152
+ const squashedPublicDataWrites: Map<bigint, Fr> = new Map();
132
153
  for (const publicDataWrite of avmCircuitPublicInputs.accumulatedData.publicDataWrites) {
133
- const slot = publicDataWrite.leafSlot.toBigInt();
134
- const prevOccurrences = leafSlotOccurences.get(slot) || 0;
135
- if (prevOccurrences === 1) {
136
- dedupedPublicDataWrites.push(publicDataWrite);
137
- } else {
138
- leafSlotOccurences.set(slot, prevOccurrences - 1);
139
- }
154
+ squashedPublicDataWrites.set(publicDataWrite.leafSlot.toBigInt(), publicDataWrite.value);
140
155
  }
141
156
 
142
157
  avmCircuitPublicInputs.accumulatedData.publicDataWrites = padArrayEnd(
143
- dedupedPublicDataWrites,
158
+ Array.from(squashedPublicDataWrites.entries()).map(([slot, value]) => new PublicDataWrite(new Fr(slot), value)),
144
159
  PublicDataWrite.empty(),
145
- MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
160
+ MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
146
161
  );
147
162
  //console.log(`AvmCircuitPublicInputs:\n${inspect(avmCircuitPublicInputs)}`);
148
163
  return avmCircuitPublicInputs;
@@ -1,77 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- import { type UnencryptedL2Log } from '@aztec/circuit-types';
4
- import { type ContractClassIdPreimage, type Gas, type NullifierLeafPreimage, type PublicCallRequest, type PublicDataTreeLeafPreimage, type SerializableContractInstance } from '@aztec/circuits.js';
5
- import { type AztecAddress } from '@aztec/foundation/aztec-address';
6
- import { type Fr } from '@aztec/foundation/fields';
7
- import { type AvmContractCallResult, type AvmFinalizedCallResult } from '../avm/avm_contract_call_result.js';
8
- import { type AvmExecutionEnvironment } from '../avm/avm_execution_environment.js';
9
- import { type PublicEnqueuedCallSideEffectTrace } from './enqueued_call_side_effect_trace.js';
10
- import { type EnqueuedPublicCallExecutionResultWithSideEffects, type PublicFunctionCallResult } from './execution.js';
11
- import { type PublicSideEffectTrace } from './side_effect_trace.js';
12
- import { type PublicSideEffectTraceInterface } from './side_effect_trace_interface.js';
13
- export declare class DualSideEffectTrace implements PublicSideEffectTraceInterface {
14
- readonly innerCallTrace: PublicSideEffectTrace;
15
- readonly enqueuedCallTrace: PublicEnqueuedCallSideEffectTrace;
16
- constructor(innerCallTrace: PublicSideEffectTrace, enqueuedCallTrace: PublicEnqueuedCallSideEffectTrace);
17
- fork(): DualSideEffectTrace;
18
- merge(nestedTrace: this, reverted?: boolean): void;
19
- getCounter(): number;
20
- tracePublicStorageRead(contractAddress: AztecAddress, slot: Fr, value: Fr, leafPreimage: PublicDataTreeLeafPreimage, leafIndex: Fr, path: Fr[]): void;
21
- tracePublicStorageWrite(contractAddress: AztecAddress, slot: Fr, value: Fr, lowLeafPreimage: PublicDataTreeLeafPreimage, lowLeafIndex: Fr, lowLeafPath: Fr[], newLeafPreimage: PublicDataTreeLeafPreimage, insertionPath: Fr[]): void;
22
- traceNoteHashCheck(contractAddress: AztecAddress, noteHash: Fr, leafIndex: Fr, exists: boolean, path: Fr[]): void;
23
- traceNewNoteHash(contractAddress: AztecAddress, noteHash: Fr, leafIndex: Fr, path: Fr[]): void;
24
- traceNullifierCheck(siloedNullifier: Fr, exists: boolean, lowLeafPreimage: NullifierLeafPreimage, lowLeafIndex: Fr, lowLeafPath: Fr[]): void;
25
- traceNewNullifier(siloedNullifier: Fr, lowLeafPreimage: NullifierLeafPreimage, lowLeafIndex: Fr, lowLeafPath: Fr[], insertionPath: Fr[]): void;
26
- traceL1ToL2MessageCheck(contractAddress: AztecAddress, msgHash: Fr, msgLeafIndex: Fr, exists: boolean, path: Fr[]): void;
27
- traceNewL2ToL1Message(contractAddress: AztecAddress, recipient: Fr, content: Fr): void;
28
- traceUnencryptedLog(contractAddress: AztecAddress, log: Fr[]): void;
29
- traceGetContractInstance(contractAddress: AztecAddress, exists: boolean, instance: SerializableContractInstance | undefined): void;
30
- traceGetBytecode(contractAddress: AztecAddress, exists: boolean, bytecode: Buffer, contractInstance: SerializableContractInstance | undefined, contractClass: ContractClassIdPreimage | undefined): void;
31
- /**
32
- * Trace a nested call.
33
- * Accept some results from a finished nested call's trace into this one.
34
- */
35
- traceNestedCall(
36
- /** The trace of the nested call. */
37
- nestedCallTrace: this,
38
- /** The execution environment of the nested call. */
39
- nestedEnvironment: AvmExecutionEnvironment,
40
- /** How much gas was available for this public execution. */
41
- startGasLeft: Gas,
42
- /** Bytecode used for this execution. */
43
- bytecode: Buffer,
44
- /** The call's results */
45
- avmCallResults: AvmContractCallResult,
46
- /** Function name for logging */
47
- functionName?: string): void;
48
- traceEnqueuedCall(
49
- /** The call request from private that enqueued this call. */
50
- publicCallRequest: PublicCallRequest,
51
- /** The call's calldata */
52
- calldata: Fr[],
53
- /** Did the call revert? */
54
- reverted: boolean): void;
55
- /**
56
- * Convert this trace to a PublicExecutionResult for use externally to the simulator.
57
- */
58
- toPublicEnqueuedCallExecutionResult(
59
- /** The call's results */
60
- avmCallResults: AvmFinalizedCallResult): EnqueuedPublicCallExecutionResultWithSideEffects;
61
- /**
62
- * Convert this trace to a PublicExecutionResult for use externally to the simulator.
63
- */
64
- toPublicFunctionCallResult(
65
- /** The execution environment of the nested call. */
66
- avmEnvironment: AvmExecutionEnvironment,
67
- /** How much gas was available for this public execution. */
68
- startGasLeft: Gas,
69
- /** Bytecode used for this execution. */
70
- bytecode: Buffer,
71
- /** The call's results */
72
- avmCallResults: AvmFinalizedCallResult,
73
- /** Function name for logging */
74
- functionName?: string): PublicFunctionCallResult;
75
- getUnencryptedLogs(): UnencryptedL2Log[];
76
- }
77
- //# sourceMappingURL=dual_side_effect_trace.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dual_side_effect_trace.d.ts","sourceRoot":"","sources":["../../src/public/dual_side_effect_trace.ts"],"names":[],"mappings":"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"}
@@ -1,119 +0,0 @@
1
- import { assert } from 'console';
2
- export class DualSideEffectTrace {
3
- constructor(innerCallTrace, enqueuedCallTrace) {
4
- this.innerCallTrace = innerCallTrace;
5
- this.enqueuedCallTrace = enqueuedCallTrace;
6
- }
7
- fork() {
8
- return new DualSideEffectTrace(this.innerCallTrace.fork(), this.enqueuedCallTrace.fork());
9
- }
10
- merge(nestedTrace, reverted = false) {
11
- this.enqueuedCallTrace.merge(nestedTrace.enqueuedCallTrace, reverted);
12
- }
13
- getCounter() {
14
- assert(this.innerCallTrace.getCounter() == this.enqueuedCallTrace.getCounter());
15
- return this.innerCallTrace.getCounter();
16
- }
17
- tracePublicStorageRead(contractAddress, slot, value, leafPreimage, leafIndex, path) {
18
- this.innerCallTrace.tracePublicStorageRead(contractAddress, slot, value, leafPreimage, leafIndex, path);
19
- this.enqueuedCallTrace.tracePublicStorageRead(contractAddress, slot, value, leafPreimage, leafIndex, path);
20
- }
21
- tracePublicStorageWrite(contractAddress, slot, value, lowLeafPreimage, lowLeafIndex, lowLeafPath, newLeafPreimage, insertionPath) {
22
- this.innerCallTrace.tracePublicStorageWrite(contractAddress, slot, value, lowLeafPreimage, lowLeafIndex, lowLeafPath, newLeafPreimage, insertionPath);
23
- this.enqueuedCallTrace.tracePublicStorageWrite(contractAddress, slot, value, lowLeafPreimage, lowLeafIndex, lowLeafPath, newLeafPreimage, insertionPath);
24
- }
25
- // TODO(8287): _exists can be removed once we have the vm properly handling the equality check
26
- traceNoteHashCheck(contractAddress, noteHash, leafIndex, exists, path) {
27
- this.innerCallTrace.traceNoteHashCheck(contractAddress, noteHash, leafIndex, exists, path);
28
- this.enqueuedCallTrace.traceNoteHashCheck(contractAddress, noteHash, leafIndex, exists, path);
29
- }
30
- traceNewNoteHash(contractAddress, noteHash, leafIndex, path) {
31
- this.innerCallTrace.traceNewNoteHash(contractAddress, noteHash, leafIndex, path);
32
- this.enqueuedCallTrace.traceNewNoteHash(contractAddress, noteHash, leafIndex, path);
33
- }
34
- traceNullifierCheck(siloedNullifier, exists, lowLeafPreimage, lowLeafIndex, lowLeafPath) {
35
- this.innerCallTrace.traceNullifierCheck(siloedNullifier, exists, lowLeafPreimage, lowLeafIndex, lowLeafPath);
36
- this.enqueuedCallTrace.traceNullifierCheck(siloedNullifier, exists, lowLeafPreimage, lowLeafIndex, lowLeafPath);
37
- }
38
- traceNewNullifier(siloedNullifier, lowLeafPreimage, lowLeafIndex, lowLeafPath, insertionPath) {
39
- this.innerCallTrace.traceNewNullifier(siloedNullifier, lowLeafPreimage, lowLeafIndex, lowLeafPath, insertionPath);
40
- this.enqueuedCallTrace.traceNewNullifier(siloedNullifier, lowLeafPreimage, lowLeafIndex, lowLeafPath, insertionPath);
41
- }
42
- traceL1ToL2MessageCheck(contractAddress, msgHash, msgLeafIndex, exists, path) {
43
- this.innerCallTrace.traceL1ToL2MessageCheck(contractAddress, msgHash, msgLeafIndex, exists, path);
44
- this.enqueuedCallTrace.traceL1ToL2MessageCheck(contractAddress, msgHash, msgLeafIndex, exists, path);
45
- }
46
- traceNewL2ToL1Message(contractAddress, recipient, content) {
47
- this.innerCallTrace.traceNewL2ToL1Message(contractAddress, recipient, content);
48
- this.enqueuedCallTrace.traceNewL2ToL1Message(contractAddress, recipient, content);
49
- }
50
- traceUnencryptedLog(contractAddress, log) {
51
- this.innerCallTrace.traceUnencryptedLog(contractAddress, log);
52
- this.enqueuedCallTrace.traceUnencryptedLog(contractAddress, log);
53
- }
54
- traceGetContractInstance(contractAddress, exists, instance) {
55
- this.innerCallTrace.traceGetContractInstance(contractAddress, exists, instance);
56
- this.enqueuedCallTrace.traceGetContractInstance(contractAddress, exists, instance);
57
- }
58
- traceGetBytecode(contractAddress, exists, bytecode, contractInstance, contractClass) {
59
- this.innerCallTrace.traceGetBytecode(contractAddress, exists, bytecode, contractInstance, contractClass);
60
- this.enqueuedCallTrace.traceGetBytecode(contractAddress, exists, bytecode, contractInstance, contractClass);
61
- }
62
- /**
63
- * Trace a nested call.
64
- * Accept some results from a finished nested call's trace into this one.
65
- */
66
- traceNestedCall(
67
- /** The trace of the nested call. */
68
- nestedCallTrace,
69
- /** The execution environment of the nested call. */
70
- nestedEnvironment,
71
- /** How much gas was available for this public execution. */
72
- startGasLeft,
73
- /** Bytecode used for this execution. */
74
- bytecode,
75
- /** The call's results */
76
- avmCallResults,
77
- /** Function name for logging */
78
- functionName = 'unknown') {
79
- this.innerCallTrace.traceNestedCall(nestedCallTrace.innerCallTrace, nestedEnvironment, startGasLeft, bytecode, avmCallResults, functionName);
80
- this.enqueuedCallTrace.traceNestedCall(nestedCallTrace.enqueuedCallTrace, nestedEnvironment, startGasLeft, bytecode, avmCallResults, functionName);
81
- }
82
- traceEnqueuedCall(
83
- /** The call request from private that enqueued this call. */
84
- publicCallRequest,
85
- /** The call's calldata */
86
- calldata,
87
- /** Did the call revert? */
88
- reverted) {
89
- this.enqueuedCallTrace.traceEnqueuedCall(publicCallRequest, calldata, reverted);
90
- }
91
- /**
92
- * Convert this trace to a PublicExecutionResult for use externally to the simulator.
93
- */
94
- toPublicEnqueuedCallExecutionResult(
95
- /** The call's results */
96
- avmCallResults) {
97
- return this.enqueuedCallTrace.toPublicEnqueuedCallExecutionResult(avmCallResults);
98
- }
99
- /**
100
- * Convert this trace to a PublicExecutionResult for use externally to the simulator.
101
- */
102
- toPublicFunctionCallResult(
103
- /** The execution environment of the nested call. */
104
- avmEnvironment,
105
- /** How much gas was available for this public execution. */
106
- startGasLeft,
107
- /** Bytecode used for this execution. */
108
- bytecode,
109
- /** The call's results */
110
- avmCallResults,
111
- /** Function name for logging */
112
- functionName = 'unknown') {
113
- return this.innerCallTrace.toPublicFunctionCallResult(avmEnvironment, startGasLeft, bytecode, avmCallResults, functionName);
114
- }
115
- getUnencryptedLogs() {
116
- return this.enqueuedCallTrace.getUnencryptedLogs();
117
- }
118
- }
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVhbF9zaWRlX2VmZmVjdF90cmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvZHVhbF9zaWRlX2VmZmVjdF90cmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBU2pDLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDa0IsY0FBcUMsRUFDckMsaUJBQW9EO1FBRHBELG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1DO0lBQ25FLENBQUM7SUFFRyxJQUFJO1FBQ1QsT0FBTyxJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVNLEtBQUssQ0FBQyxXQUFpQixFQUFFLFdBQW9CLEtBQUs7UUFDdkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVNLFVBQVU7UUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNoRixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVNLHNCQUFzQixDQUMzQixlQUE2QixFQUM3QixJQUFRLEVBQ1IsS0FBUyxFQUNULFlBQXdDLEVBQ3hDLFNBQWEsRUFDYixJQUFVO1FBRVYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hH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
@@ -1,96 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- import { UnencryptedL2Log } from '@aztec/circuit-types';
4
- import { type AztecAddress, type ContractClassIdPreimage, type ContractInstanceWithAddress, Gas, NullifierLeafPreimage, type PublicCallRequest, PublicDataTreeLeafPreimage, SerializableContractInstance } from '@aztec/circuits.js';
5
- import { Fr } from '@aztec/foundation/fields';
6
- import { type AvmContractCallResult, type AvmFinalizedCallResult } from '../avm/avm_contract_call_result.js';
7
- import { type AvmExecutionEnvironment } from '../avm/avm_execution_environment.js';
8
- import { type EnqueuedPublicCallExecutionResultWithSideEffects, type PublicFunctionCallResult } from './execution.js';
9
- import { type PublicSideEffectTraceInterface } from './side_effect_trace_interface.js';
10
- export type TracedContractInstance = {
11
- exists: boolean;
12
- } & ContractInstanceWithAddress;
13
- export declare class PublicSideEffectTrace implements PublicSideEffectTraceInterface {
14
- /** The counter of this trace's first side effect. */
15
- readonly startSideEffectCounter: number;
16
- log: import("@aztec/foundation/log").Logger;
17
- /** The side effect counter increments with every call to the trace. */
18
- private sideEffectCounter;
19
- private contractStorageReads;
20
- private contractStorageUpdateRequests;
21
- private noteHashReadRequests;
22
- private noteHashes;
23
- private nullifierReadRequests;
24
- private nullifierNonExistentReadRequests;
25
- private nullifiers;
26
- private l1ToL2MsgReadRequests;
27
- private newL2ToL1Messages;
28
- private unencryptedLogs;
29
- private allUnencryptedLogs;
30
- private unencryptedLogsHashes;
31
- private publicCallRequests;
32
- private nestedExecutions;
33
- private avmCircuitHints;
34
- constructor(
35
- /** The counter of this trace's first side effect. */
36
- startSideEffectCounter?: number);
37
- fork(): PublicSideEffectTrace;
38
- getCounter(): number;
39
- private incrementSideEffectCounter;
40
- tracePublicStorageRead(contractAddress: AztecAddress, slot: Fr, value: Fr, leafPreimage?: PublicDataTreeLeafPreimage, leafIndex?: Fr, path?: Fr[]): void;
41
- tracePublicStorageWrite(contractAddress: AztecAddress, slot: Fr, value: Fr, lowLeafPreimage?: PublicDataTreeLeafPreimage, lowLeafIndex?: Fr, lowLeafPath?: Fr[], newLeafPreimage?: PublicDataTreeLeafPreimage, insertionPath?: Fr[]): void;
42
- traceNoteHashCheck(_contractAddress: AztecAddress, noteHash: Fr, leafIndex: Fr, exists: boolean, path?: Fr[]): void;
43
- traceNewNoteHash(_contractAddress: AztecAddress, noteHash: Fr, leafIndex?: Fr, path?: Fr[]): void;
44
- traceNullifierCheck(siloedNullifier: Fr, exists: boolean, lowLeafPreimage?: NullifierLeafPreimage, lowLeafIndex?: Fr, lowLeafPath?: Fr[]): void;
45
- traceNewNullifier(siloedNullifier: Fr, lowLeafPreimage?: NullifierLeafPreimage, lowLeafIndex?: Fr, lowLeafPath?: Fr[], insertionPath?: Fr[]): void;
46
- traceL1ToL2MessageCheck(_contractAddress: AztecAddress, msgHash: Fr, msgLeafIndex: Fr, exists: boolean, path?: Fr[]): void;
47
- traceNewL2ToL1Message(_contractAddress: AztecAddress, recipient: Fr, content: Fr): void;
48
- traceUnencryptedLog(contractAddress: AztecAddress, log: Fr[]): void;
49
- traceGetContractInstance(contractAddress: AztecAddress, exists: boolean, instance?: SerializableContractInstance): void;
50
- traceGetBytecode(contractAddress: AztecAddress, exists: boolean, bytecode?: Buffer, contractInstance?: SerializableContractInstance, contractClass?: ContractClassIdPreimage): void;
51
- /**
52
- * Trace a nested call.
53
- * Accept some results from a finished nested call's trace into this one.
54
- */
55
- traceNestedCall(
56
- /** The trace of the nested call. */
57
- nestedCallTrace: PublicSideEffectTrace,
58
- /** The execution environment of the nested call. */
59
- nestedEnvironment: AvmExecutionEnvironment,
60
- /** How much gas was available for this public execution. */
61
- startGasLeft: Gas,
62
- /** Bytecode used for this execution. */
63
- bytecode: Buffer,
64
- /** The call's results */
65
- avmCallResults: AvmContractCallResult,
66
- /** Function name for logging */
67
- functionName?: string): void;
68
- traceEnqueuedCall(
69
- /** The call request from private that enqueued this call. */
70
- _publicCallRequest: PublicCallRequest,
71
- /** The call's calldata */
72
- _calldata: Fr[],
73
- /** Did the call revert? */
74
- _reverted: boolean): void;
75
- merge(_nestedTrace: this, _reverted?: boolean): void;
76
- /**
77
- * Convert this trace to a PublicExecutionResult for use externally to the simulator.
78
- */
79
- toPublicFunctionCallResult(
80
- /** The execution environment of the nested call. */
81
- avmEnvironment: AvmExecutionEnvironment,
82
- /** How much gas was available for this public execution. */
83
- startGasLeft: Gas,
84
- /** Bytecode used for this execution. */
85
- bytecode: Buffer,
86
- /** The call's results */
87
- avmCallResults: AvmFinalizedCallResult,
88
- /** Function name for logging */
89
- functionName?: string): PublicFunctionCallResult;
90
- toPublicEnqueuedCallExecutionResult(
91
- /** The call's results */
92
- _avmCallResults: AvmFinalizedCallResult): EnqueuedPublicCallExecutionResultWithSideEffects;
93
- private enforceLimitOnNullifierChecks;
94
- getUnencryptedLogs(): UnencryptedL2Log[];
95
- }
96
- //# sourceMappingURL=side_effect_trace.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"side_effect_trace.d.ts","sourceRoot":"","sources":["../../src/public/side_effect_trace.ts"],"names":[],"mappings":"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"}