@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
@@ -7,38 +7,41 @@ export class DualSideEffectTrace {
7
7
  fork() {
8
8
  return new DualSideEffectTrace(this.innerCallTrace.fork(), this.enqueuedCallTrace.fork());
9
9
  }
10
+ merge(nestedTrace, reverted = false) {
11
+ this.enqueuedCallTrace.merge(nestedTrace.enqueuedCallTrace, reverted);
12
+ }
10
13
  getCounter() {
11
14
  assert(this.innerCallTrace.getCounter() == this.enqueuedCallTrace.getCounter());
12
15
  return this.innerCallTrace.getCounter();
13
16
  }
14
- tracePublicStorageRead(contractAddress, slot, value, exists, cached) {
15
- this.innerCallTrace.tracePublicStorageRead(contractAddress, slot, value, exists, cached);
16
- this.enqueuedCallTrace.tracePublicStorageRead(contractAddress, slot, value, exists, cached);
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);
17
20
  }
18
- tracePublicStorageWrite(contractAddress, slot, value) {
19
- this.innerCallTrace.tracePublicStorageWrite(contractAddress, slot, value);
20
- this.enqueuedCallTrace.tracePublicStorageWrite(contractAddress, slot, value);
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);
21
24
  }
22
25
  // TODO(8287): _exists can be removed once we have the vm properly handling the equality check
23
- traceNoteHashCheck(_contractAddress, noteHash, leafIndex, exists) {
24
- this.innerCallTrace.traceNoteHashCheck(_contractAddress, noteHash, leafIndex, exists);
25
- this.enqueuedCallTrace.traceNoteHashCheck(_contractAddress, noteHash, leafIndex, exists);
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);
26
29
  }
27
- traceNewNoteHash(_contractAddress, noteHash) {
28
- this.innerCallTrace.traceNewNoteHash(_contractAddress, noteHash);
29
- this.enqueuedCallTrace.traceNewNoteHash(_contractAddress, noteHash);
30
+ traceNewNoteHash(contractAddress, noteHash, leafIndex, path) {
31
+ this.innerCallTrace.traceNewNoteHash(contractAddress, noteHash, leafIndex, path);
32
+ this.enqueuedCallTrace.traceNewNoteHash(contractAddress, noteHash, leafIndex, path);
30
33
  }
31
- traceNullifierCheck(contractAddress, nullifier, leafIndex, exists, isPending) {
32
- this.innerCallTrace.traceNullifierCheck(contractAddress, nullifier, leafIndex, exists, isPending);
33
- this.enqueuedCallTrace.traceNullifierCheck(contractAddress, nullifier, leafIndex, exists, isPending);
34
+ traceNullifierCheck(contractAddress, nullifier, exists, lowLeafPreimage, lowLeafIndex, lowLeafPath) {
35
+ this.innerCallTrace.traceNullifierCheck(contractAddress, nullifier, exists, lowLeafPreimage, lowLeafIndex, lowLeafPath);
36
+ this.enqueuedCallTrace.traceNullifierCheck(contractAddress, nullifier, exists, lowLeafPreimage, lowLeafIndex, lowLeafPath);
34
37
  }
35
- traceNewNullifier(contractAddress, nullifier) {
36
- this.innerCallTrace.traceNewNullifier(contractAddress, nullifier);
37
- this.enqueuedCallTrace.traceNewNullifier(contractAddress, nullifier);
38
+ traceNewNullifier(contractAddress, nullifier, lowLeafPreimage, lowLeafIndex, lowLeafPath, insertionPath) {
39
+ this.innerCallTrace.traceNewNullifier(contractAddress, nullifier, lowLeafPreimage, lowLeafIndex, lowLeafPath, insertionPath);
40
+ this.enqueuedCallTrace.traceNewNullifier(contractAddress, nullifier, lowLeafPreimage, lowLeafIndex, lowLeafPath, insertionPath);
38
41
  }
39
- traceL1ToL2MessageCheck(contractAddress, msgHash, msgLeafIndex, exists) {
40
- this.innerCallTrace.traceL1ToL2MessageCheck(contractAddress, msgHash, msgLeafIndex, exists);
41
- this.enqueuedCallTrace.traceL1ToL2MessageCheck(contractAddress, msgHash, msgLeafIndex, exists);
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);
42
45
  }
43
46
  traceNewL2ToL1Message(contractAddress, recipient, content) {
44
47
  this.innerCallTrace.traceNewL2ToL1Message(contractAddress, recipient, content);
@@ -78,10 +81,29 @@ export class DualSideEffectTrace {
78
81
  this.innerCallTrace.traceNestedCall(nestedCallTrace.innerCallTrace, nestedEnvironment, startGasLeft, endGasLeft, bytecode, avmCallResults, functionName);
79
82
  this.enqueuedCallTrace.traceNestedCall(nestedCallTrace.enqueuedCallTrace, nestedEnvironment, startGasLeft, endGasLeft, bytecode, avmCallResults, functionName);
80
83
  }
84
+ traceEnqueuedCall(
85
+ /** The call request from private that enqueued this call. */
86
+ publicCallRequest,
87
+ /** The call's calldata */
88
+ calldata,
89
+ /** Did the call revert? */
90
+ reverted) {
91
+ this.enqueuedCallTrace.traceEnqueuedCall(publicCallRequest, calldata, reverted);
92
+ }
93
+ /**
94
+ * Convert this trace to a PublicExecutionResult for use externally to the simulator.
95
+ */
96
+ toPublicEnqueuedCallExecutionResult(
97
+ /** How much gas was left after this public execution. */
98
+ endGasLeft,
99
+ /** The call's results */
100
+ avmCallResults) {
101
+ return this.enqueuedCallTrace.toPublicEnqueuedCallExecutionResult(endGasLeft, avmCallResults);
102
+ }
81
103
  /**
82
104
  * Convert this trace to a PublicExecutionResult for use externally to the simulator.
83
105
  */
84
- toPublicExecutionResult(
106
+ toPublicFunctionCallResult(
85
107
  /** The execution environment of the nested call. */
86
108
  avmEnvironment,
87
109
  /** How much gas was available for this public execution. */
@@ -94,20 +116,10 @@ export class DualSideEffectTrace {
94
116
  avmCallResults,
95
117
  /** Function name for logging */
96
118
  functionName = 'unknown') {
97
- return this.innerCallTrace.toPublicExecutionResult(avmEnvironment, startGasLeft, endGasLeft, bytecode, avmCallResults, functionName);
119
+ return this.innerCallTrace.toPublicFunctionCallResult(avmEnvironment, startGasLeft, endGasLeft, bytecode, avmCallResults, functionName);
98
120
  }
99
- toVMCircuitPublicInputs(
100
- /** Constants */
101
- constants,
102
- /** The execution environment of the nested call. */
103
- avmEnvironment,
104
- /** How much gas was available for this public execution. */
105
- startGasLeft,
106
- /** How much gas was left after this public execution. */
107
- endGasLeft,
108
- /** The call's results */
109
- avmCallResults) {
110
- return this.enqueuedCallTrace.toVMCircuitPublicInputs(constants, avmEnvironment, startGasLeft, endGasLeft, avmCallResults);
121
+ getUnencryptedLogs() {
122
+ return this.enqueuedCallTrace.getUnencryptedLogs();
111
123
  }
112
124
  }
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVhbF9zaWRlX2VmZmVjdF90cmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvZHVhbF9zaWRlX2VmZmVjdF90cmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBU2pDLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDa0IsY0FBcUMsRUFDckMsaUJBQW9EO1FBRHBELG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1DO0lBQ25FLENBQUM7SUFFRyxJQUFJO1FBQ1QsT0FBTyxJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVNLFVBQVU7UUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNoRixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVNLHNCQUFzQixDQUFDLGVBQW1CLEVBQUUsSUFBUSxFQUFFLEtBQVMsRUFBRSxNQUFlLEVBQUUsTUFBZTtRQUN0RyxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLGVBQWUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxlQUFtQixFQUFFLElBQVEsRUFBRSxLQUFTO1FB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
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVhbF9zaWRlX2VmZmVjdF90cmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvZHVhbF9zaWRlX2VmZmVjdF90cmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBU2pDLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDa0IsY0FBcUMsRUFDckMsaUJBQW9EO1FBRHBELG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1DO0lBQ25FLENBQUM7SUFFRyxJQUFJO1FBQ1QsT0FBTyxJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVNLEtBQUssQ0FBQyxXQUFpQixFQUFFLFdBQW9CLEtBQUs7UUFDdkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVNLFVBQVU7UUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNoRixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVNLHNCQUFzQixDQUMzQixlQUE2QixFQUM3QixJQUFRLEVBQ1IsS0FBUyxFQUNULFlBQXdDLEVBQ3hDLFNBQWEsRUFDYixJQUFVO1FBRVYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hH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
@@ -1,10 +1,11 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference types="node" resolution-mode="require"/>
3
3
  import { UnencryptedL2Log } from '@aztec/circuit-types';
4
- import { AvmExecutionHints, type CombinedConstantData, type ContractClassIdPreimage, ContractStorageRead, ContractStorageUpdateRequest, Gas, PublicAccumulatedDataArrayLengths, PublicValidationRequestArrayLengths, ScopedL2ToL1Message, ScopedLogHash, ScopedNoteHash, type ScopedNullifier, ScopedReadRequest, SerializableContractInstance, TreeLeafReadRequest, VMCircuitPublicInputs } from '@aztec/circuits.js';
4
+ import { AvmCircuitPublicInputs, AvmExecutionHints, type AztecAddress, type ContractClassIdPreimage, Gas, type GasSettings, type GlobalVariables, Nullifier, NullifierLeafPreimage, PublicCallRequest, PublicDataRead, PublicDataTreeLeafPreimage, PublicDataUpdateRequest, ScopedL2ToL1Message, ScopedLogHash, type ScopedNoteHash, type ScopedReadRequest, SerializableContractInstance, TreeLeafReadRequest, type TreeSnapshots } from '@aztec/circuits.js';
5
5
  import { Fr } from '@aztec/foundation/fields';
6
6
  import { type AvmContractCallResult } from '../avm/avm_contract_call_result.js';
7
7
  import { type AvmExecutionEnvironment } from '../avm/avm_execution_environment.js';
8
+ import { type EnqueuedPublicCallExecutionResultWithSideEffects, type PublicFunctionCallResult } from './execution.js';
8
9
  import { type PublicSideEffectTraceInterface } from './side_effect_trace_interface.js';
9
10
  /**
10
11
  * A struct containing just the side effects as regular arrays
@@ -12,18 +13,33 @@ import { type PublicSideEffectTraceInterface } from './side_effect_trace_interfa
12
13
  * This struct is helpful for testing and checking array lengths.
13
14
  **/
14
15
  export type SideEffects = {
15
- contractStorageReads: ContractStorageRead[];
16
- contractStorageUpdateRequests: ContractStorageUpdateRequest[];
16
+ enqueuedCalls: PublicCallRequest[];
17
+ publicDataReads: PublicDataRead[];
18
+ publicDataWrites: PublicDataUpdateRequest[];
17
19
  noteHashReadRequests: TreeLeafReadRequest[];
18
20
  noteHashes: ScopedNoteHash[];
19
21
  nullifierReadRequests: ScopedReadRequest[];
20
22
  nullifierNonExistentReadRequests: ScopedReadRequest[];
21
- nullifiers: ScopedNullifier[];
23
+ nullifiers: Nullifier[];
22
24
  l1ToL2MsgReadRequests: TreeLeafReadRequest[];
23
25
  l2ToL1Msgs: ScopedL2ToL1Message[];
24
26
  unencryptedLogs: UnencryptedL2Log[];
25
27
  unencryptedLogsHashes: ScopedLogHash[];
26
28
  };
29
+ export declare class SideEffectArrayLengths {
30
+ readonly publicDataReads: number;
31
+ readonly publicDataWrites: number;
32
+ readonly noteHashReadRequests: number;
33
+ readonly noteHashes: number;
34
+ readonly nullifierReadRequests: number;
35
+ readonly nullifierNonExistentReadRequests: number;
36
+ readonly nullifiers: number;
37
+ readonly l1ToL2MsgReadRequests: number;
38
+ readonly l2ToL1Msgs: number;
39
+ readonly unencryptedLogs: number;
40
+ constructor(publicDataReads: number, publicDataWrites: number, noteHashReadRequests: number, noteHashes: number, nullifierReadRequests: number, nullifierNonExistentReadRequests: number, nullifiers: number, l1ToL2MsgReadRequests: number, l2ToL1Msgs: number, unencryptedLogs: number);
41
+ static empty(): SideEffectArrayLengths;
42
+ }
27
43
  /**
28
44
  * Trace side effects for an entire enqueued call.
29
45
  */
@@ -33,51 +49,54 @@ export declare class PublicEnqueuedCallSideEffectTrace implements PublicSideEffe
33
49
  /** Track parent's (or previous kernel's) lengths so the AVM can properly enforce TX-wide limits,
34
50
  * otherwise the public kernel can fail to prove because TX limits are breached.
35
51
  */
36
- private readonly previousValidationRequestArrayLengths;
37
- private readonly previousAccumulatedDataArrayLengths;
52
+ private readonly previousSideEffectArrayLengths;
38
53
  log: import("@aztec/foundation/log").Logger;
39
54
  /** The side effect counter increments with every call to the trace. */
40
55
  private sideEffectCounter;
41
- private contractStorageReads;
42
- private contractStorageUpdateRequests;
56
+ private enqueuedCalls;
57
+ private publicDataReads;
58
+ private publicDataWrites;
43
59
  private noteHashReadRequests;
44
60
  private noteHashes;
45
61
  private nullifierReadRequests;
46
62
  private nullifierNonExistentReadRequests;
47
63
  private nullifiers;
48
64
  private l1ToL2MsgReadRequests;
49
- private l2ToL1Msgs;
65
+ private l2ToL1Messages;
50
66
  private unencryptedLogs;
51
67
  private unencryptedLogsHashes;
52
68
  private avmCircuitHints;
69
+ /** Make sure a forked trace is never merged twice. */
70
+ private alreadyMergedIntoParent;
53
71
  constructor(
54
72
  /** The counter of this trace's first side effect. */
55
73
  startSideEffectCounter?: number,
56
74
  /** Track parent's (or previous kernel's) lengths so the AVM can properly enforce TX-wide limits,
57
75
  * otherwise the public kernel can fail to prove because TX limits are breached.
58
76
  */
59
- previousValidationRequestArrayLengths?: PublicValidationRequestArrayLengths, previousAccumulatedDataArrayLengths?: PublicAccumulatedDataArrayLengths);
77
+ previousSideEffectArrayLengths?: SideEffectArrayLengths);
60
78
  fork(): PublicEnqueuedCallSideEffectTrace;
79
+ merge(forkedTrace: this, reverted?: boolean): void;
61
80
  getCounter(): number;
62
81
  private incrementSideEffectCounter;
63
- tracePublicStorageRead(contractAddress: Fr, slot: Fr, value: Fr, _exists: boolean, _cached: boolean): void;
64
- tracePublicStorageWrite(contractAddress: Fr, slot: Fr, value: Fr): void;
65
- traceNoteHashCheck(_contractAddress: Fr, noteHash: Fr, leafIndex: Fr, exists: boolean): void;
66
- traceNewNoteHash(contractAddress: Fr, noteHash: Fr): void;
67
- traceNullifierCheck(contractAddress: Fr, nullifier: Fr, _leafIndex: Fr, exists: boolean, _isPending: boolean): void;
68
- traceNewNullifier(contractAddress: Fr, nullifier: Fr): void;
69
- traceL1ToL2MessageCheck(_contractAddress: Fr, msgHash: Fr, msgLeafIndex: Fr, exists: boolean): void;
70
- traceNewL2ToL1Message(contractAddress: Fr, recipient: Fr, content: Fr): void;
71
- traceUnencryptedLog(contractAddress: Fr, log: Fr[]): void;
72
- traceGetContractInstance(contractAddress: Fr, exists: boolean, instance?: SerializableContractInstance): void;
73
- traceGetBytecode(contractAddress: Fr, exists: boolean, bytecode?: Buffer, contractInstance?: SerializableContractInstance, contractClass?: ContractClassIdPreimage): void;
82
+ tracePublicStorageRead(contractAddress: AztecAddress, slot: Fr, value: Fr, leafPreimage?: PublicDataTreeLeafPreimage, leafIndex?: Fr, path?: Fr[]): void;
83
+ tracePublicStorageWrite(contractAddress: AztecAddress, slot: Fr, value: Fr, lowLeafPreimage?: PublicDataTreeLeafPreimage, lowLeafIndex?: Fr, lowLeafPath?: Fr[], newLeafPreimage?: PublicDataTreeLeafPreimage, insertionPath?: Fr[]): void;
84
+ traceNoteHashCheck(_contractAddress: AztecAddress, noteHash: Fr, leafIndex: Fr, exists: boolean, path?: Fr[]): void;
85
+ traceNewNoteHash(contractAddress: AztecAddress, noteHash: Fr, leafIndex: Fr, path?: Fr[]): void;
86
+ traceNullifierCheck(contractAddress: AztecAddress, nullifier: Fr, exists: boolean, lowLeafPreimage?: NullifierLeafPreimage, lowLeafIndex?: Fr, lowLeafPath?: Fr[]): void;
87
+ traceNewNullifier(contractAddress: AztecAddress, nullifier: Fr, lowLeafPreimage?: NullifierLeafPreimage, lowLeafIndex?: Fr, lowLeafPath?: Fr[], insertionPath?: Fr[]): void;
88
+ traceL1ToL2MessageCheck(_contractAddress: AztecAddress, msgHash: Fr, msgLeafIndex: Fr, exists: boolean, path?: Fr[]): void;
89
+ traceNewL2ToL1Message(contractAddress: AztecAddress, recipient: Fr, content: Fr): void;
90
+ traceUnencryptedLog(contractAddress: AztecAddress, log: Fr[]): void;
91
+ traceGetContractInstance(contractAddress: AztecAddress, exists: boolean, instance?: SerializableContractInstance): void;
92
+ traceGetBytecode(contractAddress: AztecAddress, exists: boolean, bytecode?: Buffer, contractInstance?: SerializableContractInstance, contractClass?: ContractClassIdPreimage): void;
74
93
  /**
75
94
  * Trace a nested call.
76
95
  * Accept some results from a finished nested call's trace into this one.
77
96
  */
78
97
  traceNestedCall(
79
98
  /** The trace of the nested call. */
80
- nestedCallTrace: this,
99
+ _nestedCallTrace: this,
81
100
  /** The execution environment of the nested call. */
82
101
  nestedEnvironment: AvmExecutionEnvironment,
83
102
  /** How much gas was available for this public execution. */
@@ -90,24 +109,68 @@ export declare class PublicEnqueuedCallSideEffectTrace implements PublicSideEffe
90
109
  avmCallResults: AvmContractCallResult,
91
110
  /** Function name for logging */
92
111
  _functionName?: string): void;
93
- absorbSuccessfulNestedTrace(nestedTrace: this): void;
94
- absorbRevertedNestedTrace(nestedTrace: this): void;
112
+ /**
113
+ * Trace an enqueued call.
114
+ * Accept some results from a finished call's trace into this one.
115
+ */
116
+ traceEnqueuedCall(
117
+ /** The call request from private that enqueued this call. */
118
+ publicCallRequest: PublicCallRequest,
119
+ /** The call's calldata */
120
+ calldata: Fr[],
121
+ /** Did the call revert? */
122
+ _reverted: boolean): void;
95
123
  getSideEffects(): SideEffects;
96
- toVMCircuitPublicInputs(
97
- /** Constants. */
98
- constants: CombinedConstantData,
124
+ /**
125
+ * Get the results of public execution.
126
+ */
127
+ toPublicEnqueuedCallExecutionResult(
128
+ /** How much gas was left after this public execution. */
129
+ endGasLeft: Gas,
130
+ /** The call's results */
131
+ avmCallResults: AvmContractCallResult): EnqueuedPublicCallExecutionResultWithSideEffects;
132
+ toAvmCircuitPublicInputs(
133
+ /** Globals. */
134
+ globalVariables: GlobalVariables,
135
+ /** Start tree snapshots. */
136
+ startTreeSnapshots: TreeSnapshots,
137
+ /** Gas used at start of TX. */
138
+ startGasUsed: Gas,
139
+ /** How much gas was available for this public execution. */
140
+ gasLimits: GasSettings,
141
+ /** Call requests for setup phase. */
142
+ publicSetupCallRequests: PublicCallRequest[],
143
+ /** Call requests for app logic phase. */
144
+ publicAppLogicCallRequests: PublicCallRequest[],
145
+ /** Call request for teardown phase. */
146
+ publicTeardownCallRequest: PublicCallRequest,
147
+ /** End tree snapshots. */
148
+ endTreeSnapshots: TreeSnapshots,
149
+ /**
150
+ * Gas used by the whole transaction, assuming entire teardown limit is used.
151
+ * This is the gas used when computing transaction fee.
152
+ */
153
+ endGasUsed: Gas,
154
+ /** Transaction fee. */
155
+ transactionFee: Fr,
156
+ /** The call's results */
157
+ reverted: boolean): AvmCircuitPublicInputs;
158
+ toPublicFunctionCallResult(
99
159
  /** The execution environment of the nested call. */
100
- avmEnvironment: AvmExecutionEnvironment,
160
+ _avmEnvironment: AvmExecutionEnvironment,
101
161
  /** How much gas was available for this public execution. */
102
- startGasLeft: Gas,
162
+ _startGasLeft: Gas,
103
163
  /** How much gas was left after this public execution. */
104
- endGasLeft: Gas,
164
+ _endGasLeft: Gas,
165
+ /** Bytecode used for this execution. */
166
+ _bytecode: Buffer,
105
167
  /** The call's results */
106
- avmCallResults: AvmContractCallResult): VMCircuitPublicInputs;
168
+ _avmCallResults: AvmContractCallResult,
169
+ /** Function name for logging */
170
+ _functionName?: string): PublicFunctionCallResult;
107
171
  getUnencryptedLogs(): UnencryptedL2Log[];
108
172
  getAvmCircuitHints(): AvmExecutionHints;
109
- private getValidationRequests;
110
- private getAccumulatedData;
173
+ private getAvmAccumulatedData;
111
174
  private enforceLimitOnNullifierChecks;
112
175
  }
113
176
  //# sourceMappingURL=enqueued_call_side_effect_trace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enqueued_call_side_effect_trace.d.ts","sourceRoot":"","sources":["../../src/public/enqueued_call_side_effect_trace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enqueued_call_side_effect_trace.d.ts","sourceRoot":"","sources":["../../src/public/enqueued_call_side_effect_trace.ts"],"names":[],"mappings":"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"}