@aztec/simulator 0.65.2 → 0.67.0

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 (136) hide show
  1. package/dest/acvm/acvm.js +3 -3
  2. package/dest/acvm/oracle/oracle.d.ts +1 -4
  3. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  4. package/dest/acvm/oracle/oracle.js +3 -19
  5. package/dest/acvm/oracle/typed_oracle.d.ts +2 -7
  6. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  7. package/dest/acvm/oracle/typed_oracle.js +3 -12
  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 +7 -7
  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 +26 -16
  21. package/dest/avm/avm_tree.d.ts +31 -14
  22. package/dest/avm/avm_tree.d.ts.map +1 -1
  23. package/dest/avm/avm_tree.js +34 -40
  24. package/dest/avm/errors.d.ts +3 -3
  25. package/dest/avm/errors.d.ts.map +1 -1
  26. package/dest/avm/errors.js +8 -15
  27. package/dest/avm/fixtures/index.d.ts.map +1 -1
  28. package/dest/avm/fixtures/index.js +4 -4
  29. package/dest/avm/journal/journal.d.ts +15 -4
  30. package/dest/avm/journal/journal.d.ts.map +1 -1
  31. package/dest/avm/journal/journal.js +121 -36
  32. package/dest/avm/opcodes/environment_getters.d.ts +10 -11
  33. package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
  34. package/dest/avm/opcodes/environment_getters.js +12 -15
  35. package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
  36. package/dest/avm/opcodes/external_calls.js +4 -11
  37. package/dest/avm/opcodes/misc.d.ts.map +1 -1
  38. package/dest/avm/opcodes/misc.js +3 -3
  39. package/dest/client/client_execution_context.d.ts +6 -33
  40. package/dest/client/client_execution_context.d.ts.map +1 -1
  41. package/dest/client/client_execution_context.js +18 -54
  42. package/dest/client/db_oracle.d.ts +2 -2
  43. package/dest/client/db_oracle.d.ts.map +1 -1
  44. package/dest/client/execution_note_cache.d.ts +9 -1
  45. package/dest/client/execution_note_cache.d.ts.map +1 -1
  46. package/dest/client/execution_note_cache.js +10 -3
  47. package/dest/client/private_execution.d.ts.map +1 -1
  48. package/dest/client/private_execution.js +5 -7
  49. package/dest/client/simulator.d.ts.map +1 -1
  50. package/dest/client/simulator.js +4 -4
  51. package/dest/client/unconstrained_execution.d.ts.map +1 -1
  52. package/dest/client/unconstrained_execution.js +3 -3
  53. package/dest/client/view_data_oracle.d.ts +2 -2
  54. package/dest/client/view_data_oracle.d.ts.map +1 -1
  55. package/dest/client/view_data_oracle.js +5 -6
  56. package/dest/common/debug_fn_name.d.ts +2 -2
  57. package/dest/common/debug_fn_name.d.ts.map +1 -1
  58. package/dest/common/debug_fn_name.js +8 -14
  59. package/dest/providers/acvm_native.js +4 -4
  60. package/dest/providers/factory.d.ts +2 -2
  61. package/dest/providers/factory.d.ts.map +1 -1
  62. package/dest/providers/factory.js +4 -4
  63. package/dest/public/enqueued_call_side_effect_trace.d.ts +11 -23
  64. package/dest/public/enqueued_call_side_effect_trace.d.ts.map +1 -1
  65. package/dest/public/enqueued_call_side_effect_trace.js +51 -72
  66. package/dest/public/executor_metrics.d.ts.map +1 -1
  67. package/dest/public/executor_metrics.js +2 -5
  68. package/dest/public/fixtures/index.d.ts +25 -7
  69. package/dest/public/fixtures/index.d.ts.map +1 -1
  70. package/dest/public/fixtures/index.js +20 -17
  71. package/dest/public/index.d.ts +0 -1
  72. package/dest/public/index.d.ts.map +1 -1
  73. package/dest/public/index.js +1 -2
  74. package/dest/public/public_db_sources.d.ts.map +1 -1
  75. package/dest/public/public_db_sources.js +30 -16
  76. package/dest/public/public_processor.d.ts +7 -8
  77. package/dest/public/public_processor.d.ts.map +1 -1
  78. package/dest/public/public_processor.js +37 -26
  79. package/dest/public/public_processor_metrics.d.ts +1 -1
  80. package/dest/public/public_processor_metrics.d.ts.map +1 -1
  81. package/dest/public/public_tx_context.d.ts +13 -14
  82. package/dest/public/public_tx_context.d.ts.map +1 -1
  83. package/dest/public/public_tx_context.js +63 -54
  84. package/dest/public/public_tx_simulator.d.ts +2 -2
  85. package/dest/public/public_tx_simulator.d.ts.map +1 -1
  86. package/dest/public/public_tx_simulator.js +43 -25
  87. package/dest/public/side_effect_trace_interface.d.ts +4 -17
  88. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  89. package/dest/public/transitional_adapters.d.ts +2 -6
  90. package/dest/public/transitional_adapters.d.ts.map +1 -1
  91. package/dest/public/transitional_adapters.js +29 -88
  92. package/package.json +16 -9
  93. package/src/acvm/acvm.ts +2 -2
  94. package/src/acvm/oracle/oracle.ts +2 -32
  95. package/src/acvm/oracle/typed_oracle.ts +3 -20
  96. package/src/acvm/serialize.ts +1 -1
  97. package/src/avm/avm_context.ts +2 -3
  98. package/src/avm/avm_execution_environment.ts +6 -31
  99. package/src/avm/avm_memory_types.ts +6 -6
  100. package/src/avm/avm_simulator.ts +28 -23
  101. package/src/avm/avm_tree.ts +67 -53
  102. package/src/avm/errors.ts +12 -14
  103. package/src/avm/fixtures/index.ts +2 -3
  104. package/src/avm/journal/journal.ts +206 -68
  105. package/src/avm/opcodes/environment_getters.ts +1 -4
  106. package/src/avm/opcodes/external_calls.ts +3 -19
  107. package/src/avm/opcodes/misc.ts +2 -2
  108. package/src/client/client_execution_context.ts +22 -68
  109. package/src/client/db_oracle.ts +2 -2
  110. package/src/client/execution_note_cache.ts +13 -3
  111. package/src/client/private_execution.ts +3 -7
  112. package/src/client/simulator.ts +4 -4
  113. package/src/client/unconstrained_execution.ts +2 -2
  114. package/src/client/view_data_oracle.ts +5 -6
  115. package/src/common/debug_fn_name.ts +7 -13
  116. package/src/providers/acvm_native.ts +3 -3
  117. package/src/providers/factory.ts +3 -3
  118. package/src/public/enqueued_call_side_effect_trace.ts +68 -90
  119. package/src/public/executor_metrics.ts +0 -4
  120. package/src/public/fixtures/index.ts +28 -17
  121. package/src/public/index.ts +0 -1
  122. package/src/public/public_db_sources.ts +32 -19
  123. package/src/public/public_processor.ts +52 -55
  124. package/src/public/public_processor_metrics.ts +1 -1
  125. package/src/public/public_tx_context.ts +89 -76
  126. package/src/public/public_tx_simulator.ts +58 -49
  127. package/src/public/side_effect_trace_interface.ts +8 -15
  128. package/src/public/transitional_adapters.ts +43 -215
  129. package/dest/public/dual_side_effect_trace.d.ts +0 -77
  130. package/dest/public/dual_side_effect_trace.d.ts.map +0 -1
  131. package/dest/public/dual_side_effect_trace.js +0 -119
  132. package/dest/public/side_effect_trace.d.ts +0 -96
  133. package/dest/public/side_effect_trace.d.ts.map +0 -1
  134. package/dest/public/side_effect_trace.js +0 -309
  135. package/src/public/dual_side_effect_trace.ts +0 -242
  136. package/src/public/side_effect_trace.ts +0 -536
@@ -1,242 +0,0 @@
1
- import { type UnencryptedL2Log } from '@aztec/circuit-types';
2
- import {
3
- type ContractClassIdPreimage,
4
- type Gas,
5
- type NullifierLeafPreimage,
6
- type PublicCallRequest,
7
- type PublicDataTreeLeafPreimage,
8
- type SerializableContractInstance,
9
- } from '@aztec/circuits.js';
10
- import { type AztecAddress } from '@aztec/foundation/aztec-address';
11
- import { type Fr } from '@aztec/foundation/fields';
12
-
13
- import { assert } from 'console';
14
-
15
- import { type AvmContractCallResult, type AvmFinalizedCallResult } from '../avm/avm_contract_call_result.js';
16
- import { type AvmExecutionEnvironment } from '../avm/avm_execution_environment.js';
17
- import { type PublicEnqueuedCallSideEffectTrace } from './enqueued_call_side_effect_trace.js';
18
- import { type EnqueuedPublicCallExecutionResultWithSideEffects, type PublicFunctionCallResult } from './execution.js';
19
- import { type PublicSideEffectTrace } from './side_effect_trace.js';
20
- import { type PublicSideEffectTraceInterface } from './side_effect_trace_interface.js';
21
-
22
- export class DualSideEffectTrace implements PublicSideEffectTraceInterface {
23
- constructor(
24
- public readonly innerCallTrace: PublicSideEffectTrace,
25
- public readonly enqueuedCallTrace: PublicEnqueuedCallSideEffectTrace,
26
- ) {}
27
-
28
- public fork() {
29
- return new DualSideEffectTrace(this.innerCallTrace.fork(), this.enqueuedCallTrace.fork());
30
- }
31
-
32
- public merge(nestedTrace: this, reverted: boolean = false) {
33
- this.enqueuedCallTrace.merge(nestedTrace.enqueuedCallTrace, reverted);
34
- }
35
-
36
- public getCounter() {
37
- assert(this.innerCallTrace.getCounter() == this.enqueuedCallTrace.getCounter());
38
- return this.innerCallTrace.getCounter();
39
- }
40
-
41
- public tracePublicStorageRead(
42
- contractAddress: AztecAddress,
43
- slot: Fr,
44
- value: Fr,
45
- leafPreimage: PublicDataTreeLeafPreimage,
46
- leafIndex: Fr,
47
- path: Fr[],
48
- ) {
49
- this.innerCallTrace.tracePublicStorageRead(contractAddress, slot, value, leafPreimage, leafIndex, path);
50
- this.enqueuedCallTrace.tracePublicStorageRead(contractAddress, slot, value, leafPreimage, leafIndex, path);
51
- }
52
-
53
- public tracePublicStorageWrite(
54
- contractAddress: AztecAddress,
55
- slot: Fr,
56
- value: Fr,
57
- lowLeafPreimage: PublicDataTreeLeafPreimage,
58
- lowLeafIndex: Fr,
59
- lowLeafPath: Fr[],
60
- newLeafPreimage: PublicDataTreeLeafPreimage,
61
- insertionPath: Fr[],
62
- ) {
63
- this.innerCallTrace.tracePublicStorageWrite(
64
- contractAddress,
65
- slot,
66
- value,
67
- lowLeafPreimage,
68
- lowLeafIndex,
69
- lowLeafPath,
70
- newLeafPreimage,
71
- insertionPath,
72
- );
73
- this.enqueuedCallTrace.tracePublicStorageWrite(
74
- contractAddress,
75
- slot,
76
- value,
77
- lowLeafPreimage,
78
- lowLeafIndex,
79
- lowLeafPath,
80
- newLeafPreimage,
81
- insertionPath,
82
- );
83
- }
84
-
85
- // TODO(8287): _exists can be removed once we have the vm properly handling the equality check
86
- public traceNoteHashCheck(contractAddress: AztecAddress, noteHash: Fr, leafIndex: Fr, exists: boolean, path: Fr[]) {
87
- this.innerCallTrace.traceNoteHashCheck(contractAddress, noteHash, leafIndex, exists, path);
88
- this.enqueuedCallTrace.traceNoteHashCheck(contractAddress, noteHash, leafIndex, exists, path);
89
- }
90
-
91
- public traceNewNoteHash(contractAddress: AztecAddress, noteHash: Fr, leafIndex: Fr, path: Fr[]) {
92
- this.innerCallTrace.traceNewNoteHash(contractAddress, noteHash, leafIndex, path);
93
- this.enqueuedCallTrace.traceNewNoteHash(contractAddress, noteHash, leafIndex, path);
94
- }
95
-
96
- public traceNullifierCheck(
97
- siloedNullifier: Fr,
98
- exists: boolean,
99
- lowLeafPreimage: NullifierLeafPreimage,
100
- lowLeafIndex: Fr,
101
- lowLeafPath: Fr[],
102
- ) {
103
- this.innerCallTrace.traceNullifierCheck(siloedNullifier, exists, lowLeafPreimage, lowLeafIndex, lowLeafPath);
104
- this.enqueuedCallTrace.traceNullifierCheck(siloedNullifier, exists, lowLeafPreimage, lowLeafIndex, lowLeafPath);
105
- }
106
-
107
- public traceNewNullifier(
108
- siloedNullifier: Fr,
109
- lowLeafPreimage: NullifierLeafPreimage,
110
- lowLeafIndex: Fr,
111
- lowLeafPath: Fr[],
112
- insertionPath: Fr[],
113
- ) {
114
- this.innerCallTrace.traceNewNullifier(siloedNullifier, lowLeafPreimage, lowLeafIndex, lowLeafPath, insertionPath);
115
- this.enqueuedCallTrace.traceNewNullifier(
116
- siloedNullifier,
117
- lowLeafPreimage,
118
- lowLeafIndex,
119
- lowLeafPath,
120
- insertionPath,
121
- );
122
- }
123
-
124
- traceL1ToL2MessageCheck(contractAddress: AztecAddress, msgHash: Fr, msgLeafIndex: Fr, exists: boolean, path: Fr[]) {
125
- this.innerCallTrace.traceL1ToL2MessageCheck(contractAddress, msgHash, msgLeafIndex, exists, path);
126
- this.enqueuedCallTrace.traceL1ToL2MessageCheck(contractAddress, msgHash, msgLeafIndex, exists, path);
127
- }
128
-
129
- public traceNewL2ToL1Message(contractAddress: AztecAddress, recipient: Fr, content: Fr) {
130
- this.innerCallTrace.traceNewL2ToL1Message(contractAddress, recipient, content);
131
- this.enqueuedCallTrace.traceNewL2ToL1Message(contractAddress, recipient, content);
132
- }
133
-
134
- public traceUnencryptedLog(contractAddress: AztecAddress, log: Fr[]) {
135
- this.innerCallTrace.traceUnencryptedLog(contractAddress, log);
136
- this.enqueuedCallTrace.traceUnencryptedLog(contractAddress, log);
137
- }
138
-
139
- public traceGetContractInstance(
140
- contractAddress: AztecAddress,
141
- exists: boolean,
142
- instance: SerializableContractInstance | undefined,
143
- ) {
144
- this.innerCallTrace.traceGetContractInstance(contractAddress, exists, instance);
145
- this.enqueuedCallTrace.traceGetContractInstance(contractAddress, exists, instance);
146
- }
147
-
148
- public traceGetBytecode(
149
- contractAddress: AztecAddress,
150
- exists: boolean,
151
- bytecode: Buffer,
152
- contractInstance: SerializableContractInstance | undefined,
153
- contractClass: ContractClassIdPreimage | undefined,
154
- ) {
155
- this.innerCallTrace.traceGetBytecode(contractAddress, exists, bytecode, contractInstance, contractClass);
156
- this.enqueuedCallTrace.traceGetBytecode(contractAddress, exists, bytecode, contractInstance, contractClass);
157
- }
158
-
159
- /**
160
- * Trace a nested call.
161
- * Accept some results from a finished nested call's trace into this one.
162
- */
163
- public traceNestedCall(
164
- /** The trace of the nested call. */
165
- nestedCallTrace: this,
166
- /** The execution environment of the nested call. */
167
- nestedEnvironment: AvmExecutionEnvironment,
168
- /** How much gas was available for this public execution. */
169
- startGasLeft: Gas,
170
- /** Bytecode used for this execution. */
171
- bytecode: Buffer,
172
- /** The call's results */
173
- avmCallResults: AvmContractCallResult,
174
- /** Function name for logging */
175
- functionName: string = 'unknown',
176
- ) {
177
- this.innerCallTrace.traceNestedCall(
178
- nestedCallTrace.innerCallTrace,
179
- nestedEnvironment,
180
- startGasLeft,
181
- bytecode,
182
- avmCallResults,
183
- functionName,
184
- );
185
- this.enqueuedCallTrace.traceNestedCall(
186
- nestedCallTrace.enqueuedCallTrace,
187
- nestedEnvironment,
188
- startGasLeft,
189
- bytecode,
190
- avmCallResults,
191
- functionName,
192
- );
193
- }
194
-
195
- public traceEnqueuedCall(
196
- /** The call request from private that enqueued this call. */
197
- publicCallRequest: PublicCallRequest,
198
- /** The call's calldata */
199
- calldata: Fr[],
200
- /** Did the call revert? */
201
- reverted: boolean,
202
- ) {
203
- this.enqueuedCallTrace.traceEnqueuedCall(publicCallRequest, calldata, reverted);
204
- }
205
-
206
- /**
207
- * Convert this trace to a PublicExecutionResult for use externally to the simulator.
208
- */
209
- public toPublicEnqueuedCallExecutionResult(
210
- /** The call's results */
211
- avmCallResults: AvmFinalizedCallResult,
212
- ): EnqueuedPublicCallExecutionResultWithSideEffects {
213
- return this.enqueuedCallTrace.toPublicEnqueuedCallExecutionResult(avmCallResults);
214
- }
215
- /**
216
- * Convert this trace to a PublicExecutionResult for use externally to the simulator.
217
- */
218
- public toPublicFunctionCallResult(
219
- /** The execution environment of the nested call. */
220
- avmEnvironment: AvmExecutionEnvironment,
221
- /** How much gas was available for this public execution. */
222
- startGasLeft: Gas,
223
- /** Bytecode used for this execution. */
224
- bytecode: Buffer,
225
- /** The call's results */
226
- avmCallResults: AvmFinalizedCallResult,
227
- /** Function name for logging */
228
- functionName: string = 'unknown',
229
- ): PublicFunctionCallResult {
230
- return this.innerCallTrace.toPublicFunctionCallResult(
231
- avmEnvironment,
232
- startGasLeft,
233
- bytecode,
234
- avmCallResults,
235
- functionName,
236
- );
237
- }
238
-
239
- public getUnencryptedLogs(): UnencryptedL2Log[] {
240
- return this.enqueuedCallTrace.getUnencryptedLogs();
241
- }
242
- }