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