@aztec/simulator 0.61.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 (223) 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 -3
  5. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  6. package/dest/acvm/oracle/oracle.js +11 -9
  7. package/dest/acvm/oracle/typed_oracle.d.ts +5 -4
  8. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  9. package/dest/acvm/oracle/typed_oracle.js +9 -6
  10. package/dest/avm/avm_gas.d.ts.map +1 -1
  11. package/dest/avm/avm_gas.js +4 -3
  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 +26 -11
  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/avm/serialization/instruction_serialization.d.ts +2 -2
  81. package/dest/avm/serialization/instruction_serialization.js +2 -2
  82. package/dest/client/client_execution_context.d.ts +7 -10
  83. package/dest/client/client_execution_context.d.ts.map +1 -1
  84. package/dest/client/client_execution_context.js +19 -18
  85. package/dest/client/db_oracle.d.ts +22 -8
  86. package/dest/client/db_oracle.d.ts.map +1 -1
  87. package/dest/client/db_oracle.js +1 -1
  88. package/dest/client/private_execution.d.ts.map +1 -1
  89. package/dest/client/private_execution.js +5 -4
  90. package/dest/client/unconstrained_execution.d.ts.map +1 -1
  91. package/dest/client/unconstrained_execution.js +3 -2
  92. package/dest/client/view_data_oracle.d.ts +6 -12
  93. package/dest/client/view_data_oracle.d.ts.map +1 -1
  94. package/dest/client/view_data_oracle.js +10 -12
  95. package/dest/common/errors.d.ts +15 -2
  96. package/dest/common/errors.d.ts.map +1 -1
  97. package/dest/common/errors.js +85 -4
  98. package/dest/mocks/fixtures.d.ts +9 -28
  99. package/dest/mocks/fixtures.d.ts.map +1 -1
  100. package/dest/mocks/fixtures.js +12 -57
  101. package/dest/public/dual_side_effect_trace.d.ts +34 -26
  102. package/dest/public/dual_side_effect_trace.d.ts.map +1 -1
  103. package/dest/public/dual_side_effect_trace.js +48 -36
  104. package/dest/public/enqueued_call_side_effect_trace.d.ts +96 -33
  105. package/dest/public/enqueued_call_side_effect_trace.d.ts.map +1 -1
  106. package/dest/public/enqueued_call_side_effect_trace.js +212 -138
  107. package/dest/public/execution.d.ts +50 -17
  108. package/dest/public/execution.d.ts.map +1 -1
  109. package/dest/public/execution.js +1 -29
  110. package/dest/public/executor.d.ts +28 -11
  111. package/dest/public/executor.d.ts.map +1 -1
  112. package/dest/public/executor.js +33 -33
  113. package/dest/public/index.d.ts +4 -5
  114. package/dest/public/index.d.ts.map +1 -1
  115. package/dest/public/index.js +4 -5
  116. package/dest/public/public_db_sources.d.ts +1 -0
  117. package/dest/public/public_db_sources.d.ts.map +1 -1
  118. package/dest/public/public_db_sources.js +21 -19
  119. package/dest/public/public_processor.d.ts +7 -11
  120. package/dest/public/public_processor.d.ts.map +1 -1
  121. package/dest/public/public_processor.js +60 -42
  122. package/dest/public/public_processor_metrics.d.ts +3 -3
  123. package/dest/public/public_processor_metrics.d.ts.map +1 -1
  124. package/dest/public/public_processor_metrics.js +1 -1
  125. package/dest/public/public_tx_context.d.ts +130 -0
  126. package/dest/public/public_tx_context.d.ts.map +1 -0
  127. package/dest/public/public_tx_context.js +293 -0
  128. package/dest/public/public_tx_simulator.d.ts +36 -0
  129. package/dest/public/public_tx_simulator.d.ts.map +1 -0
  130. package/dest/public/public_tx_simulator.js +148 -0
  131. package/dest/public/side_effect_trace.d.ts +30 -15
  132. package/dest/public/side_effect_trace.d.ts.map +1 -1
  133. package/dest/public/side_effect_trace.js +70 -16
  134. package/dest/public/side_effect_trace_interface.d.ts +43 -12
  135. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  136. package/dest/public/transitional_adapters.d.ts +9 -0
  137. package/dest/public/transitional_adapters.d.ts.map +1 -0
  138. package/dest/public/transitional_adapters.js +127 -0
  139. package/dest/public/utils.d.ts +5 -0
  140. package/dest/public/utils.d.ts.map +1 -0
  141. package/dest/public/utils.js +30 -0
  142. package/dest/test/utils.d.ts +2 -2
  143. package/dest/test/utils.d.ts.map +1 -1
  144. package/dest/test/utils.js +4 -4
  145. package/package.json +12 -9
  146. package/src/acvm/acvm.ts +3 -94
  147. package/src/acvm/oracle/oracle.ts +14 -12
  148. package/src/acvm/oracle/typed_oracle.ts +10 -6
  149. package/src/avm/avm_gas.ts +3 -2
  150. package/src/avm/avm_machine_state.ts +28 -12
  151. package/src/avm/avm_memory_types.ts +5 -0
  152. package/src/avm/avm_simulator.ts +13 -16
  153. package/src/avm/avm_tree.ts +785 -0
  154. package/src/avm/errors.ts +25 -48
  155. package/src/avm/fixtures/index.ts +16 -12
  156. package/src/avm/index.ts +1 -0
  157. package/src/avm/journal/journal.ts +291 -52
  158. package/src/avm/journal/nullifiers.ts +7 -7
  159. package/src/avm/journal/public_storage.ts +5 -5
  160. package/src/avm/opcodes/accrued_substate.ts +3 -9
  161. package/src/avm/opcodes/arithmetic.ts +26 -4
  162. package/src/avm/opcodes/bitwise.ts +0 -2
  163. package/src/avm/opcodes/comparators.ts +0 -1
  164. package/src/avm/opcodes/contract.ts +1 -2
  165. package/src/avm/opcodes/control_flow.ts +29 -10
  166. package/src/avm/opcodes/conversion.ts +0 -1
  167. package/src/avm/opcodes/ec_add.ts +6 -9
  168. package/src/avm/opcodes/environment_getters.ts +0 -1
  169. package/src/avm/opcodes/external_calls.ts +39 -21
  170. package/src/avm/opcodes/hashing.ts +0 -3
  171. package/src/avm/opcodes/instruction.ts +7 -0
  172. package/src/avm/opcodes/memory.ts +0 -6
  173. package/src/avm/opcodes/misc.ts +2 -2
  174. package/src/avm/opcodes/multi_scalar_mul.ts +5 -4
  175. package/src/avm/opcodes/storage.ts +1 -3
  176. package/src/avm/serialization/bytecode_serialization.ts +31 -22
  177. package/src/avm/serialization/instruction_serialization.ts +2 -2
  178. package/src/client/client_execution_context.ts +24 -21
  179. package/src/client/db_oracle.ts +31 -8
  180. package/src/client/private_execution.ts +5 -4
  181. package/src/client/unconstrained_execution.ts +2 -1
  182. package/src/client/view_data_oracle.ts +14 -13
  183. package/src/common/errors.ts +119 -3
  184. package/src/mocks/fixtures.ts +15 -106
  185. package/src/public/dual_side_effect_trace.ts +138 -50
  186. package/src/public/enqueued_call_side_effect_trace.ts +352 -212
  187. package/src/public/execution.ts +58 -42
  188. package/src/public/executor.ts +52 -67
  189. package/src/public/index.ts +7 -5
  190. package/src/public/public_db_sources.ts +22 -19
  191. package/src/public/public_processor.ts +111 -73
  192. package/src/public/public_processor_metrics.ts +3 -3
  193. package/src/public/public_tx_context.ts +411 -0
  194. package/src/public/public_tx_simulator.ts +232 -0
  195. package/src/public/side_effect_trace.ts +154 -28
  196. package/src/public/side_effect_trace_interface.ts +92 -14
  197. package/src/public/transitional_adapters.ts +347 -0
  198. package/src/public/utils.ts +32 -0
  199. package/src/test/utils.ts +9 -2
  200. package/dest/public/enqueued_call_simulator.d.ts +0 -43
  201. package/dest/public/enqueued_call_simulator.d.ts.map +0 -1
  202. package/dest/public/enqueued_call_simulator.js +0 -156
  203. package/dest/public/enqueued_calls_processor.d.ts +0 -43
  204. package/dest/public/enqueued_calls_processor.d.ts.map +0 -1
  205. package/dest/public/enqueued_calls_processor.js +0 -209
  206. package/dest/public/hints_builder.d.ts +0 -29
  207. package/dest/public/hints_builder.d.ts.map +0 -1
  208. package/dest/public/hints_builder.js +0 -75
  209. package/dest/public/public_kernel.d.ts +0 -30
  210. package/dest/public/public_kernel.d.ts.map +0 -1
  211. package/dest/public/public_kernel.js +0 -67
  212. package/dest/public/public_kernel_circuit_simulator.d.ts +0 -25
  213. package/dest/public/public_kernel_circuit_simulator.d.ts.map +0 -1
  214. package/dest/public/public_kernel_circuit_simulator.js +0 -2
  215. package/dest/public/public_kernel_tail_simulator.d.ts +0 -15
  216. package/dest/public/public_kernel_tail_simulator.d.ts.map +0 -1
  217. package/dest/public/public_kernel_tail_simulator.js +0 -39
  218. package/src/public/enqueued_call_simulator.ts +0 -360
  219. package/src/public/enqueued_calls_processor.ts +0 -372
  220. package/src/public/hints_builder.ts +0 -168
  221. package/src/public/public_kernel.ts +0 -100
  222. package/src/public/public_kernel_circuit_simulator.ts +0 -32
  223. package/src/public/public_kernel_tail_simulator.ts +0 -97
@@ -1,11 +1,13 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference types="node" resolution-mode="require"/>
3
- import { type CombinedConstantData, type ContractClassIdPreimage, type Gas, type SerializableContractInstance, type VMCircuitPublicInputs } from '@aztec/circuits.js';
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';
4
6
  import { type Fr } from '@aztec/foundation/fields';
5
7
  import { type AvmContractCallResult } from '../avm/avm_contract_call_result.js';
6
8
  import { type AvmExecutionEnvironment } from '../avm/avm_execution_environment.js';
7
9
  import { type PublicEnqueuedCallSideEffectTrace } from './enqueued_call_side_effect_trace.js';
8
- import { type PublicExecutionResult } from './execution.js';
10
+ import { type EnqueuedPublicCallExecutionResultWithSideEffects, type PublicFunctionCallResult } from './execution.js';
9
11
  import { type PublicSideEffectTrace } from './side_effect_trace.js';
10
12
  import { type PublicSideEffectTraceInterface } from './side_effect_trace_interface.js';
11
13
  export declare class DualSideEffectTrace implements PublicSideEffectTraceInterface {
@@ -13,18 +15,19 @@ export declare class DualSideEffectTrace implements PublicSideEffectTraceInterfa
13
15
  readonly enqueuedCallTrace: PublicEnqueuedCallSideEffectTrace;
14
16
  constructor(innerCallTrace: PublicSideEffectTrace, enqueuedCallTrace: PublicEnqueuedCallSideEffectTrace);
15
17
  fork(): DualSideEffectTrace;
18
+ merge(nestedTrace: this, reverted?: boolean): void;
16
19
  getCounter(): number;
17
- tracePublicStorageRead(contractAddress: Fr, slot: Fr, value: Fr, exists: boolean, cached: boolean): void;
18
- tracePublicStorageWrite(contractAddress: Fr, slot: Fr, value: Fr): void;
19
- traceNoteHashCheck(_contractAddress: Fr, noteHash: Fr, leafIndex: Fr, exists: boolean): void;
20
- traceNewNoteHash(_contractAddress: Fr, noteHash: Fr): void;
21
- traceNullifierCheck(contractAddress: Fr, nullifier: Fr, leafIndex: Fr, exists: boolean, isPending: boolean): void;
22
- traceNewNullifier(contractAddress: Fr, nullifier: Fr): void;
23
- traceL1ToL2MessageCheck(contractAddress: Fr, msgHash: Fr, msgLeafIndex: Fr, exists: boolean): void;
24
- traceNewL2ToL1Message(contractAddress: Fr, recipient: Fr, content: Fr): void;
25
- traceUnencryptedLog(contractAddress: Fr, log: Fr[]): void;
26
- traceGetContractInstance(contractAddress: Fr, exists: boolean, instance: SerializableContractInstance | undefined): void;
27
- traceGetBytecode(contractAddress: Fr, exists: boolean, bytecode: Buffer, contractInstance: SerializableContractInstance | undefined, contractClass: ContractClassIdPreimage | undefined): void;
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(contractAddress: AztecAddress, nullifier: Fr, exists: boolean, lowLeafPreimage: NullifierLeafPreimage, lowLeafIndex: Fr, lowLeafPath: Fr[]): void;
25
+ traceNewNullifier(contractAddress: AztecAddress, nullifier: 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;
28
31
  /**
29
32
  * Trace a nested call.
30
33
  * Accept some results from a finished nested call's trace into this one.
@@ -44,10 +47,25 @@ export declare class DualSideEffectTrace implements PublicSideEffectTraceInterfa
44
47
  avmCallResults: AvmContractCallResult,
45
48
  /** Function name for logging */
46
49
  functionName?: string): void;
50
+ traceEnqueuedCall(
51
+ /** The call request from private that enqueued this call. */
52
+ publicCallRequest: PublicCallRequest,
53
+ /** The call's calldata */
54
+ calldata: Fr[],
55
+ /** Did the call revert? */
56
+ reverted: boolean): void;
47
57
  /**
48
58
  * Convert this trace to a PublicExecutionResult for use externally to the simulator.
49
59
  */
50
- toPublicExecutionResult(
60
+ toPublicEnqueuedCallExecutionResult(
61
+ /** How much gas was left after this public execution. */
62
+ endGasLeft: Gas,
63
+ /** The call's results */
64
+ avmCallResults: AvmContractCallResult): EnqueuedPublicCallExecutionResultWithSideEffects;
65
+ /**
66
+ * Convert this trace to a PublicExecutionResult for use externally to the simulator.
67
+ */
68
+ toPublicFunctionCallResult(
51
69
  /** The execution environment of the nested call. */
52
70
  avmEnvironment: AvmExecutionEnvironment,
53
71
  /** How much gas was available for this public execution. */
@@ -59,17 +77,7 @@ export declare class DualSideEffectTrace implements PublicSideEffectTraceInterfa
59
77
  /** The call's results */
60
78
  avmCallResults: AvmContractCallResult,
61
79
  /** Function name for logging */
62
- functionName?: string): PublicExecutionResult;
63
- toVMCircuitPublicInputs(
64
- /** Constants */
65
- constants: CombinedConstantData,
66
- /** The execution environment of the nested call. */
67
- avmEnvironment: AvmExecutionEnvironment,
68
- /** How much gas was available for this public execution. */
69
- startGasLeft: Gas,
70
- /** How much gas was left after this public execution. */
71
- endGasLeft: Gas,
72
- /** The call's results */
73
- avmCallResults: AvmContractCallResult): VMCircuitPublicInputs;
80
+ functionName?: string): PublicFunctionCallResult;
81
+ getUnencryptedLogs(): UnencryptedL2Log[];
74
82
  }
75
83
  //# sourceMappingURL=dual_side_effect_trace.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"dual_side_effect_trace.d.ts","sourceRoot":"","sources":["../../src/public/dual_side_effect_trace.ts"],"names":[],"mappings":"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"}
@@ -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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"}