@aztec/simulator 0.0.1-commit.b655e406 → 0.0.1-commit.d3ec352c

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 (248) hide show
  1. package/dest/client.d.ts +1 -1
  2. package/dest/common/errors.d.ts +1 -7
  3. package/dest/common/errors.d.ts.map +1 -1
  4. package/dest/common/index.d.ts +1 -1
  5. package/dest/common/stats/index.d.ts +1 -1
  6. package/dest/common/stats/stats.d.ts +1 -1
  7. package/dest/private/acvm/acvm.d.ts +1 -1
  8. package/dest/private/acvm/acvm_types.d.ts +1 -1
  9. package/dest/private/acvm/deserialize.d.ts +1 -1
  10. package/dest/private/acvm/index.d.ts +1 -1
  11. package/dest/private/acvm/serialize.d.ts +1 -1
  12. package/dest/private/acvm_native.d.ts +1 -1
  13. package/dest/private/acvm_native.d.ts.map +1 -1
  14. package/dest/private/acvm_wasm.d.ts +1 -1
  15. package/dest/private/acvm_wasm.d.ts.map +1 -1
  16. package/dest/private/acvm_wasm_with_blobs.d.ts +1 -1
  17. package/dest/private/acvm_wasm_with_blobs.d.ts.map +1 -1
  18. package/dest/private/circuit_recording/circuit_recorder.d.ts +1 -1
  19. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  20. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +1 -1
  21. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  22. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +1 -1
  23. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
  24. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  25. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  26. package/dest/private/circuit_simulator.d.ts +1 -1
  27. package/dest/private/factory.d.ts +1 -1
  28. package/dest/public/avm/avm_context.d.ts +1 -1
  29. package/dest/public/avm/avm_context.d.ts.map +1 -1
  30. package/dest/public/avm/avm_contract_call_result.d.ts +1 -1
  31. package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -1
  32. package/dest/public/avm/avm_execution_environment.d.ts +4 -4
  33. package/dest/public/avm/avm_execution_environment.d.ts.map +1 -1
  34. package/dest/public/avm/avm_execution_environment.js +4 -7
  35. package/dest/public/avm/avm_gas.d.ts +2 -2
  36. package/dest/public/avm/avm_gas.d.ts.map +1 -1
  37. package/dest/public/avm/avm_machine_state.d.ts +1 -1
  38. package/dest/public/avm/avm_machine_state.d.ts.map +1 -1
  39. package/dest/public/avm/avm_memory_types.d.ts +13 -13
  40. package/dest/public/avm/avm_memory_types.d.ts.map +1 -1
  41. package/dest/public/avm/avm_simulator.d.ts +3 -2
  42. package/dest/public/avm/avm_simulator.d.ts.map +1 -1
  43. package/dest/public/avm/avm_simulator.js +7 -6
  44. package/dest/public/avm/avm_simulator_interface.d.ts +1 -1
  45. package/dest/public/avm/errors.d.ts +7 -1
  46. package/dest/public/avm/errors.d.ts.map +1 -1
  47. package/dest/public/avm/errors.js +14 -2
  48. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +1 -1
  49. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
  50. package/dest/public/avm/fixtures/avm_simulation_tester.js +11 -2
  51. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +1 -1
  52. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
  53. package/dest/public/avm/fixtures/initializers.d.ts +1 -2
  54. package/dest/public/avm/fixtures/initializers.d.ts.map +1 -1
  55. package/dest/public/avm/fixtures/initializers.js +6 -4
  56. package/dest/public/avm/fixtures/utils.d.ts +3 -2
  57. package/dest/public/avm/fixtures/utils.d.ts.map +1 -1
  58. package/dest/public/avm/fixtures/utils.js +2 -1
  59. package/dest/public/avm/index.d.ts +1 -1
  60. package/dest/public/avm/opcodes/accrued_substate.d.ts +1 -1
  61. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  62. package/dest/public/avm/opcodes/addressing_mode.d.ts +1 -1
  63. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -1
  64. package/dest/public/avm/opcodes/addressing_mode.js +2 -2
  65. package/dest/public/avm/opcodes/arithmetic.d.ts +8 -8
  66. package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -1
  67. package/dest/public/avm/opcodes/bitwise.d.ts +5 -5
  68. package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -1
  69. package/dest/public/avm/opcodes/comparators.d.ts +4 -4
  70. package/dest/public/avm/opcodes/comparators.d.ts.map +1 -1
  71. package/dest/public/avm/opcodes/contract.d.ts +1 -1
  72. package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
  73. package/dest/public/avm/opcodes/control_flow.d.ts +1 -1
  74. package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -1
  75. package/dest/public/avm/opcodes/conversion.d.ts +1 -1
  76. package/dest/public/avm/opcodes/conversion.d.ts.map +1 -1
  77. package/dest/public/avm/opcodes/ec_add.d.ts +2 -2
  78. package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
  79. package/dest/public/avm/opcodes/environment_getters.d.ts +1 -1
  80. package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
  81. package/dest/public/avm/opcodes/external_calls.d.ts +1 -1
  82. package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -1
  83. package/dest/public/avm/opcodes/hashing.d.ts +2 -2
  84. package/dest/public/avm/opcodes/hashing.d.ts.map +1 -1
  85. package/dest/public/avm/opcodes/index.d.ts +1 -1
  86. package/dest/public/avm/opcodes/instruction.d.ts +2 -2
  87. package/dest/public/avm/opcodes/instruction.d.ts.map +1 -1
  88. package/dest/public/avm/opcodes/instruction_impl.d.ts +1 -1
  89. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -1
  90. package/dest/public/avm/opcodes/memory.d.ts +2 -2
  91. package/dest/public/avm/opcodes/memory.d.ts.map +1 -1
  92. package/dest/public/avm/opcodes/misc.d.ts +1 -1
  93. package/dest/public/avm/opcodes/misc.d.ts.map +1 -1
  94. package/dest/public/avm/opcodes/misc.js +4 -4
  95. package/dest/public/avm/opcodes/storage.d.ts +3 -3
  96. package/dest/public/avm/opcodes/storage.d.ts.map +1 -1
  97. package/dest/public/avm/revert_reason.d.ts +1 -1
  98. package/dest/public/avm/revert_reason.d.ts.map +1 -1
  99. package/dest/public/avm/revert_reason.js +3 -2
  100. package/dest/public/avm/serialization/buffer_cursor.d.ts +1 -1
  101. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -1
  102. package/dest/public/avm/serialization/bytecode_serialization.d.ts +1 -1
  103. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  104. package/dest/public/avm/serialization/bytecode_serialization.js +9 -6
  105. package/dest/public/avm/serialization/instruction_serialization.d.ts +1 -1
  106. package/dest/public/avm/test_utils.d.ts +1 -1
  107. package/dest/public/contracts_db_checkpoint.d.ts +16 -0
  108. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -0
  109. package/dest/public/contracts_db_checkpoint.js +30 -0
  110. package/dest/public/db_interfaces.d.ts +13 -1
  111. package/dest/public/db_interfaces.d.ts.map +1 -1
  112. package/dest/public/debug_fn_name.d.ts +14 -1
  113. package/dest/public/debug_fn_name.d.ts.map +1 -1
  114. package/dest/public/debug_fn_name.js +19 -0
  115. package/dest/public/executor_metrics.d.ts +3 -2
  116. package/dest/public/executor_metrics.d.ts.map +1 -1
  117. package/dest/public/executor_metrics.js +1 -1
  118. package/dest/public/executor_metrics_interface.d.ts +3 -2
  119. package/dest/public/executor_metrics_interface.d.ts.map +1 -1
  120. package/dest/public/fixtures/amm_test.d.ts +1 -1
  121. package/dest/public/fixtures/bulk_test.d.ts +1 -1
  122. package/dest/public/fixtures/custom_bytecode_tester.d.ts +2 -2
  123. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  124. package/dest/public/fixtures/custom_bytecode_tests.d.ts +1 -1
  125. package/dest/public/fixtures/index.d.ts +1 -1
  126. package/dest/public/fixtures/minimal_public_tx.d.ts +2 -3
  127. package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -1
  128. package/dest/public/fixtures/minimal_public_tx.js +2 -2
  129. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +10 -5
  130. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  131. package/dest/public/fixtures/public_tx_simulation_tester.js +26 -13
  132. package/dest/public/fixtures/simple_contract_data_source.d.ts +4 -3
  133. package/dest/public/fixtures/simple_contract_data_source.d.ts.map +1 -1
  134. package/dest/public/fixtures/simple_contract_data_source.js +4 -4
  135. package/dest/public/fixtures/token_test.d.ts +6 -2
  136. package/dest/public/fixtures/token_test.d.ts.map +1 -1
  137. package/dest/public/fixtures/token_test.js +12 -11
  138. package/dest/public/fixtures/utils.d.ts +1 -1
  139. package/dest/public/hinting_db_sources.d.ts +12 -3
  140. package/dest/public/hinting_db_sources.d.ts.map +1 -1
  141. package/dest/public/hinting_db_sources.js +64 -11
  142. package/dest/public/index.d.ts +3 -2
  143. package/dest/public/index.d.ts.map +1 -1
  144. package/dest/public/index.js +1 -1
  145. package/dest/public/public_db_sources.d.ts +21 -62
  146. package/dest/public/public_db_sources.d.ts.map +1 -1
  147. package/dest/public/public_db_sources.js +73 -130
  148. package/dest/public/public_errors.d.ts +1 -1
  149. package/dest/public/public_errors.d.ts.map +1 -1
  150. package/dest/public/public_processor/guarded_merkle_tree.d.ts +5 -4
  151. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  152. package/dest/public/public_processor/public_processor.d.ts +11 -18
  153. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  154. package/dest/public/public_processor/public_processor.js +34 -35
  155. package/dest/public/public_processor/public_processor_metrics.d.ts +1 -1
  156. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  157. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +30 -0
  158. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -0
  159. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +133 -0
  160. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +19 -22
  161. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
  162. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +54 -50
  163. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +42 -0
  164. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -0
  165. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +86 -0
  166. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +30 -0
  167. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -0
  168. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +170 -0
  169. package/dest/public/public_tx_simulator/index.d.ts +3 -1
  170. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  171. package/dest/public/public_tx_simulator/index.js +1 -0
  172. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +13 -6
  173. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -1
  174. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +5 -5
  175. package/dest/public/public_tx_simulator/public_tx_context.d.ts +5 -2
  176. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  177. package/dest/public/public_tx_simulator/public_tx_context.js +12 -4
  178. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +10 -30
  179. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  180. package/dest/public/public_tx_simulator/public_tx_simulator.js +106 -125
  181. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +2 -2
  182. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts.map +1 -1
  183. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +3 -3
  184. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +1 -1
  185. package/dest/public/side_effect_errors.d.ts +1 -1
  186. package/dest/public/side_effect_errors.d.ts.map +1 -1
  187. package/dest/public/side_effect_trace.d.ts +1 -2
  188. package/dest/public/side_effect_trace.d.ts.map +1 -1
  189. package/dest/public/side_effect_trace_interface.d.ts +2 -3
  190. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  191. package/dest/public/state_manager/index.d.ts +1 -1
  192. package/dest/public/state_manager/nullifiers.d.ts +1 -1
  193. package/dest/public/state_manager/nullifiers.d.ts.map +1 -1
  194. package/dest/public/state_manager/public_storage.d.ts +1 -1
  195. package/dest/public/state_manager/public_storage.d.ts.map +1 -1
  196. package/dest/public/state_manager/state_manager.d.ts +8 -10
  197. package/dest/public/state_manager/state_manager.d.ts.map +1 -1
  198. package/dest/public/state_manager/state_manager.js +9 -5
  199. package/dest/public/test_executor_metrics.d.ts +4 -3
  200. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  201. package/dest/public/test_executor_metrics.js +5 -4
  202. package/dest/public/unique_class_ids.d.ts +1 -1
  203. package/dest/public/unique_class_ids.d.ts.map +1 -1
  204. package/dest/public/utils.d.ts +1 -1
  205. package/dest/server.d.ts +1 -1
  206. package/dest/testing.d.ts +1 -1
  207. package/package.json +21 -20
  208. package/src/public/avm/avm_execution_environment.ts +3 -5
  209. package/src/public/avm/avm_simulator.ts +10 -8
  210. package/src/public/avm/errors.ts +16 -2
  211. package/src/public/avm/fixtures/avm_simulation_tester.ts +9 -1
  212. package/src/public/avm/fixtures/initializers.ts +7 -9
  213. package/src/public/avm/fixtures/utils.ts +2 -1
  214. package/src/public/avm/opcodes/addressing_mode.ts +2 -2
  215. package/src/public/avm/opcodes/misc.ts +4 -4
  216. package/src/public/avm/revert_reason.ts +5 -2
  217. package/src/public/avm/serialization/bytecode_serialization.ts +17 -6
  218. package/src/public/contracts_db_checkpoint.ts +41 -0
  219. package/src/public/db_interfaces.ts +15 -0
  220. package/src/public/debug_fn_name.ts +25 -0
  221. package/src/public/executor_metrics.ts +2 -1
  222. package/src/public/executor_metrics_interface.ts +2 -1
  223. package/src/public/fixtures/custom_bytecode_tester.ts +1 -1
  224. package/src/public/fixtures/minimal_public_tx.ts +3 -4
  225. package/src/public/fixtures/public_tx_simulation_tester.ts +45 -15
  226. package/src/public/fixtures/simple_contract_data_source.ts +7 -8
  227. package/src/public/fixtures/token_test.ts +17 -9
  228. package/src/public/hinting_db_sources.ts +106 -8
  229. package/src/public/index.ts +4 -4
  230. package/src/public/public_db_sources.ts +92 -171
  231. package/src/public/public_processor/guarded_merkle_tree.ts +4 -3
  232. package/src/public/public_processor/public_processor.ts +57 -47
  233. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +162 -0
  234. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +84 -57
  235. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +132 -0
  236. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +240 -0
  237. package/src/public/public_tx_simulator/index.ts +2 -0
  238. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +9 -13
  239. package/src/public/public_tx_simulator/public_tx_context.ts +8 -2
  240. package/src/public/public_tx_simulator/public_tx_simulator.ts +148 -191
  241. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +1 -2
  242. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +2 -2
  243. package/src/public/state_manager/state_manager.ts +12 -12
  244. package/src/public/test_executor_metrics.ts +7 -5
  245. package/dest/public/tx_contract_cache.d.ts +0 -41
  246. package/dest/public/tx_contract_cache.d.ts.map +0 -1
  247. package/dest/public/tx_contract_cache.js +0 -49
  248. package/src/public/tx_contract_cache.ts +0 -69
@@ -1,11 +1,11 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
1
  import { DateProvider } from '@aztec/foundation/timer';
2
+ import { PublicSimulatorConfig } from '@aztec/stdlib/avm';
3
3
  import type { ContractDataSource } from '@aztec/stdlib/contract';
4
4
  import type { MerkleTreeWriteOperations, PublicProcessorLimits, PublicProcessorValidator, SequencerConfig } from '@aztec/stdlib/interfaces/server';
5
5
  import { type FailedTx, GlobalVariables, NestedProcessReturnValues, type ProcessedTx, Tx } from '@aztec/stdlib/tx';
6
6
  import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
7
7
  import { PublicContractsDB } from '../public_db_sources.js';
8
- import { type PublicTxSimulator, type PublicTxSimulatorConfig } from '../public_tx_simulator/index.js';
8
+ import { type PublicTxSimulatorConfig, type PublicTxSimulatorInterface } from '../public_tx_simulator/index.js';
9
9
  import { GuardedMerkleTreeOperations } from './guarded_merkle_tree.js';
10
10
  /**
11
11
  * Creates new instances of PublicProcessor given the provided merkle tree db and contract data source.
@@ -21,13 +21,8 @@ export declare class PublicProcessorFactory {
21
21
  * @param skipFeeEnforcement - Allows disabling balance checks for fee estimations.
22
22
  * @returns A new instance of a PublicProcessor.
23
23
  */
24
- create(merkleTree: MerkleTreeWriteOperations, globalVariables: GlobalVariables, config: {
25
- skipFeeEnforcement: boolean;
26
- clientInitiatedSimulation: boolean;
27
- proverId?: Fr;
28
- maxDebugLogMemoryReads?: number;
29
- }): PublicProcessor;
30
- protected createPublicTxSimulator(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config?: Partial<PublicTxSimulatorConfig>): PublicTxSimulator;
24
+ create(merkleTree: MerkleTreeWriteOperations, globalVariables: GlobalVariables, config: PublicSimulatorConfig): PublicProcessor;
25
+ protected createPublicTxSimulator(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config?: Partial<PublicTxSimulatorConfig>): PublicTxSimulatorInterface;
31
26
  }
32
27
  /**
33
28
  * Converts Txs lifted from the P2P module into ProcessedTx objects by executing
@@ -37,12 +32,12 @@ export declare class PublicProcessor implements Traceable {
37
32
  protected globalVariables: GlobalVariables;
38
33
  private guardedMerkleTree;
39
34
  protected contractsDB: PublicContractsDB;
40
- protected publicTxSimulator: PublicTxSimulator;
35
+ protected publicTxSimulator: PublicTxSimulatorInterface;
41
36
  private dateProvider;
42
37
  private log;
43
38
  private opts;
44
39
  private metrics;
45
- constructor(globalVariables: GlobalVariables, guardedMerkleTree: GuardedMerkleTreeOperations, contractsDB: PublicContractsDB, publicTxSimulator: PublicTxSimulator, dateProvider: DateProvider, telemetryClient?: TelemetryClient, log?: import("@aztec/foundation/log").Logger, opts?: Pick<SequencerConfig, 'fakeProcessingDelayPerTxMs'>);
40
+ constructor(globalVariables: GlobalVariables, guardedMerkleTree: GuardedMerkleTreeOperations, contractsDB: PublicContractsDB, publicTxSimulator: PublicTxSimulatorInterface, dateProvider: DateProvider, telemetryClient?: TelemetryClient, log?: import("@aztec/foundation/log").Logger, opts?: Pick<SequencerConfig, 'fakeProcessingDelayPerTxMs'>);
46
41
  get tracer(): Tracer;
47
42
  /**
48
43
  * Run each tx through the public circuit and the public kernel circuit if needed.
@@ -55,15 +50,13 @@ export declare class PublicProcessor implements Traceable {
55
50
  private checkWorldStateUnchanged;
56
51
  private processTx;
57
52
  private doTreeInsertionsForPrivateOnlyTx;
58
- /** Processes the given tx within deadline. Returns timeout if deadline is hit. */
59
53
  private processTxWithinDeadline;
60
- /**
61
- * Creates the public data write for paying the tx fee.
62
- * This is used in private only txs, since for txs with public calls
63
- * the avm handles the fee payment itself.
64
- */
65
54
  private performFeePaymentPublicDataWrite;
66
55
  private processPrivateOnlyTx;
67
56
  private processTxWithPublicCalls;
57
+ /**
58
+ * Generate the proving request for the AVM circuit.
59
+ */
60
+ private static generateProvingRequest;
68
61
  }
69
- //# sourceMappingURL=public_processor.d.ts.map
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfcHJvY2Vzc29yL3B1YmxpY19wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLFlBQVksRUFBa0MsTUFBTSx5QkFBeUIsQ0FBQztBQUl2RixPQUFPLEVBTUwscUJBQXFCLEVBQ3RCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUdqRSxPQUFPLEtBQUssRUFDVix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixlQUFlLEVBQ2hCLE1BQU0saUNBQWlDLENBQUM7QUFHekMsT0FBTyxFQUNMLEtBQUssUUFBUSxFQUNiLGVBQWUsRUFDZix5QkFBeUIsRUFDekIsS0FBSyxXQUFXLEVBRWhCLEVBQUUsRUFHSCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFFTCxLQUFLLGVBQWUsRUFDcEIsS0FBSyxTQUFTLEVBQ2QsS0FBSyxNQUFNLEVBR1osTUFBTSx5QkFBeUIsQ0FBQztBQUtqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0seUJBQXlCLENBQUM7QUFDM0UsT0FBTyxFQUNMLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssMEJBQTBCLEVBRWhDLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHdkU7O0dBRUc7QUFDSCxxQkFBYSxzQkFBc0I7SUFFL0IsT0FBTyxDQUFDLGtCQUFrQjtJQUMxQixPQUFPLENBQUMsWUFBWTtJQUNwQixTQUFTLENBQUMsZUFBZSxFQUFFLGVBQWU7SUFINUMsWUFDVSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFDdEMsWUFBWSxHQUFFLFlBQWlDLEVBQzdDLGVBQWUsR0FBRSxlQUFzQyxFQUMvRDtJQUVKOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUNYLFVBQVUsRUFBRSx5QkFBeUIsRUFDckMsZUFBZSxFQUFFLGVBQWUsRUFDaEMsTUFBTSxFQUFFLHFCQUFxQixHQUM1QixlQUFlLENBY2pCO0lBRUQsU0FBUyxDQUFDLHVCQUF1QixDQUMvQixVQUFVLEVBQUUseUJBQXlCLEVBQ3JDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsZUFBZSxFQUFFLGVBQWUsRUFDaEMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEdBQ3hDLDBCQUEwQixDQUU1QjtDQUNGO0FBU0Q7OztHQUdHO0FBQ0gscUJBQWEsZUFBZ0IsWUFBVyxTQUFTO0lBSTdDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsZUFBZTtJQUMxQyxPQUFPLENBQUMsaUJBQWlCO0lBQ3pCLFNBQVMsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCO0lBQ3hDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSwwQkFBMEI7SUFDdkQsT0FBTyxDQUFDLFlBQVk7SUFFcEIsT0FBTyxDQUFDLEdBQUc7SUFDWCxPQUFPLENBQUMsSUFBSTtJQVZkLE9BQU8sQ0FBQyxPQUFPLENBQXlCO0lBRXhDLFlBQ1ksZUFBZSxFQUFFLGVBQWUsRUFDbEMsaUJBQWlCLEVBQUUsMkJBQTJCLEVBQzVDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQy9DLFlBQVksRUFBRSxZQUFZLEVBQ2xDLGVBQWUsR0FBRSxlQUFzQyxFQUMvQyxHQUFHLHlDQUE2QyxFQUNoRCxJQUFJLEdBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSw0QkFBNEIsQ0FBTSxFQUd2RTtJQUVELElBQUksTUFBTSxJQUFJLE1BQU0sQ0FFbkI7SUFFRDs7Ozs7O09BTUc7SUFDVSxPQUFPLENBQ2xCLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUNyQyxNQUFNLEdBQUUscUJBQTBCLEVBQ2xDLFNBQVMsR0FBRSx3QkFBNkIsR0FDdkMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLENBaU16RTtZQUVhLHdCQUF3QjtZQWlCeEIsU0FBUztZQTJCVCxnQ0FBZ0M7WUE0QmhDLHVCQUF1QjtZQWdEdkIsZ0NBQWdDO1lBMEJoQyxvQkFBb0I7WUErQnBCLHdCQUF3QjtJQW9DdEM7O09BRUc7SUFDSCxPQUFPLENBQUMsTUFBTSxDQUFDLHNCQUFzQjtDQVN0QyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAkC,MAAM,yBAAyB,CAAC;AAMvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,OAAO,KAAK,EACV,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,QAAQ,EACb,eAAe,EACf,yBAAyB,EACzB,KAAK,WAAW,EAEhB,EAAE,EAIH,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAAE,iBAAiB,EAAiB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAE7B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAGvE;;GAEG;AACH,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,YAAY;IACpB,SAAS,CAAC,eAAe,EAAE,eAAe;gBAFlC,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,GAAE,YAAiC,EAC7C,eAAe,GAAE,eAAsC;IAGnE;;;;;OAKG;IACI,MAAM,CACX,UAAU,EAAE,yBAAyB,EACrC,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE;QACN,kBAAkB,EAAE,OAAO,CAAC;QAC5B,yBAAyB,EAAE,OAAO,CAAC;QACnC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACd,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,GACA,eAAe;IAsBlB,SAAS,CAAC,uBAAuB,CAC/B,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GACxC,iBAAiB;CAGrB;AASD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAI7C,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,OAAO,CAAC,iBAAiB;IACzB,SAAS,CAAC,WAAW,EAAE,iBAAiB;IACxC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB;IAC9C,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,IAAI;IAVd,OAAO,CAAC,OAAO,CAAyB;gBAG5B,eAAe,EAAE,eAAe,EAClC,iBAAiB,EAAE,2BAA2B,EAC5C,WAAW,EAAE,iBAAiB,EAC9B,iBAAiB,EAAE,iBAAiB,EACtC,YAAY,EAAE,YAAY,EAClC,eAAe,GAAE,eAAsC,EAC/C,GAAG,yCAA6C,EAChD,IAAI,GAAE,IAAI,CAAC,eAAe,EAAE,4BAA4B,CAAM;IAKxE,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;OAMG;IACU,OAAO,CAClB,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,EACrC,MAAM,GAAE,qBAA0B,EAClC,SAAS,GAAE,wBAA6B,GACvC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,yBAAyB,EAAE,CAAC,CAAC;YA4L5D,wBAAwB;YAiBxB,SAAS;YA2BT,gCAAgC;IA2B9C,kFAAkF;YACpE,uBAAuB;IA2CrC;;;;OAIG;YACW,gCAAgC;YA0BhC,oBAAoB;YAkCpB,wBAAwB;CAsCvC"}
1
+ {"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAkC,MAAM,yBAAyB,CAAC;AAIvF,OAAO,EAML,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,OAAO,KAAK,EACV,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,KAAK,QAAQ,EACb,eAAe,EACf,yBAAyB,EACzB,KAAK,WAAW,EAEhB,EAAE,EAGH,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAAE,iBAAiB,EAAiB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAEhC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAGvE;;GAEG;AACH,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,YAAY;IACpB,SAAS,CAAC,eAAe,EAAE,eAAe;IAH5C,YACU,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,GAAE,YAAiC,EAC7C,eAAe,GAAE,eAAsC,EAC/D;IAEJ;;;;;OAKG;IACI,MAAM,CACX,UAAU,EAAE,yBAAyB,EACrC,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,qBAAqB,GAC5B,eAAe,CAcjB;IAED,SAAS,CAAC,uBAAuB,CAC/B,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GACxC,0BAA0B,CAE5B;CACF;AASD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAI7C,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,OAAO,CAAC,iBAAiB;IACzB,SAAS,CAAC,WAAW,EAAE,iBAAiB;IACxC,SAAS,CAAC,iBAAiB,EAAE,0BAA0B;IACvD,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,IAAI;IAVd,OAAO,CAAC,OAAO,CAAyB;IAExC,YACY,eAAe,EAAE,eAAe,EAClC,iBAAiB,EAAE,2BAA2B,EAC5C,WAAW,EAAE,iBAAiB,EAC9B,iBAAiB,EAAE,0BAA0B,EAC/C,YAAY,EAAE,YAAY,EAClC,eAAe,GAAE,eAAsC,EAC/C,GAAG,yCAA6C,EAChD,IAAI,GAAE,IAAI,CAAC,eAAe,EAAE,4BAA4B,CAAM,EAGvE;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;OAMG;IACU,OAAO,CAClB,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,EACrC,MAAM,GAAE,qBAA0B,EAClC,SAAS,GAAE,wBAA6B,GACvC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAiMzE;YAEa,wBAAwB;YAiBxB,SAAS;YA2BT,gCAAgC;YA4BhC,uBAAuB;YAgDvB,gCAAgC;YA0BhC,oBAAoB;YA+BpB,wBAAwB;IAoCtC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAStC"}
@@ -13,16 +13,17 @@ import { DateProvider, Timer, elapsed, executeTimeout } from '@aztec/foundation/
13
13
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
14
14
  import { ContractClassPublishedEvent } from '@aztec/protocol-contracts/class-registry';
15
15
  import { computeFeePayerBalanceLeafSlot, computeFeePayerBalanceStorageSlot } from '@aztec/protocol-contracts/fee-juice';
16
- import { PublicDataWrite } from '@aztec/stdlib/avm';
16
+ import { AvmCircuitInputs, AvmExecutionHints, PublicDataWrite } from '@aztec/stdlib/avm';
17
17
  import { computeTransactionFee } from '@aztec/stdlib/fees';
18
18
  import { Gas } from '@aztec/stdlib/gas';
19
+ import { ProvingRequestType } from '@aztec/stdlib/proofs';
19
20
  import { MerkleTreeId } from '@aztec/stdlib/trees';
20
- import { NestedProcessReturnValues, Tx, TxExecutionPhase, makeProcessedTxFromPrivateOnlyTx, makeProcessedTxFromTxWithPublicCalls } from '@aztec/stdlib/tx';
21
+ import { NestedProcessReturnValues, Tx, makeProcessedTxFromPrivateOnlyTx, makeProcessedTxFromTxWithPublicCalls } from '@aztec/stdlib/tx';
21
22
  import { Attributes, getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
22
23
  import { ForkCheckpoint } from '@aztec/world-state/native';
23
24
  import { AssertionError } from 'assert';
24
25
  import { PublicContractsDB, PublicTreesDB } from '../public_db_sources.js';
25
- import { TelemetryPublicTxSimulator } from '../public_tx_simulator/index.js';
26
+ import { TelemetryCppPublicTxSimulator } from '../public_tx_simulator/index.js';
26
27
  import { GuardedMerkleTreeOperations } from './guarded_merkle_tree.js';
27
28
  import { PublicProcessorMetrics } from './public_processor_metrics.js';
28
29
  /**
@@ -44,17 +45,11 @@ import { PublicProcessorMetrics } from './public_processor_metrics.js';
44
45
  */ create(merkleTree, globalVariables, config) {
45
46
  const contractsDB = new PublicContractsDB(this.contractDataSource);
46
47
  const guardedFork = new GuardedMerkleTreeOperations(merkleTree);
47
- const publicTxSimulator = this.createPublicTxSimulator(guardedFork, contractsDB, globalVariables, {
48
- proverId: config.proverId,
49
- doMerkleOperations: true,
50
- skipFeeEnforcement: config.skipFeeEnforcement,
51
- clientInitiatedSimulation: config.clientInitiatedSimulation,
52
- maxDebugLogMemoryReads: config.maxDebugLogMemoryReads
53
- });
48
+ const publicTxSimulator = this.createPublicTxSimulator(guardedFork, contractsDB, globalVariables, config);
54
49
  return new PublicProcessor(globalVariables, guardedFork, contractsDB, publicTxSimulator, this.dateProvider, this.telemetryClient);
55
50
  }
56
51
  createPublicTxSimulator(merkleTree, contractsDB, globalVariables, config) {
57
- return new TelemetryPublicTxSimulator(merkleTree, contractsDB, globalVariables, this.telemetryClient, config);
52
+ return new TelemetryCppPublicTxSimulator(merkleTree, contractsDB, globalVariables, this.telemetryClient, config);
58
53
  }
59
54
  }
60
55
  class PublicProcessorTimeoutError extends Error {
@@ -171,10 +166,12 @@ class PublicProcessorTimeoutError extends Error {
171
166
  // Note: We use the underlying fork here not the guarded one, this ensures that it's not impacted by stopping the guarded version
172
167
  const checkpoint = await ForkCheckpoint.new(this.guardedMerkleTree.getUnderlyingFork());
173
168
  const startStateReference = await this.guardedMerkleTree.getUnderlyingFork().getStateReference();
169
+ this.contractsDB.createCheckpoint();
174
170
  try {
175
171
  const [processedTx, returnValues] = await this.processTx(tx, deadline);
172
+ const txBlobFields = processedTx.txEffect.getNumBlobFields();
176
173
  // If the actual size of this tx would exceed block size, skip it
177
- const txSize = processedTx.txEffect.getDASize();
174
+ const txSize = txBlobFields * Fr.SIZE_IN_BYTES;
178
175
  if (maxBlockSize !== undefined && totalSizeInBytes + txSize > maxBlockSize) {
179
176
  this.log.debug(`Skipping processed tx ${txHash} sized ${txSize} due to max block size.`, {
180
177
  txHash,
@@ -184,10 +181,10 @@ class PublicProcessorTimeoutError extends Error {
184
181
  });
185
182
  // Need to revert the checkpoint here and don't go any further
186
183
  await checkpoint.revert();
184
+ this.contractsDB.revertCheckpoint();
187
185
  continue;
188
186
  }
189
187
  // If the actual blob fields of this tx would exceed the limit, skip it
190
- const txBlobFields = processedTx.txEffect.toBlobFields().length;
191
188
  if (maxBlobFields !== undefined && totalBlobFields + txBlobFields > maxBlobFields) {
192
189
  this.log.debug(`Skipping processed tx ${txHash} with ${txBlobFields} blob fields due to max blob fields limit.`, {
193
190
  txHash,
@@ -197,6 +194,7 @@ class PublicProcessorTimeoutError extends Error {
197
194
  });
198
195
  // Need to revert the checkpoint here and don't go any further
199
196
  await checkpoint.revert();
197
+ this.contractsDB.revertCheckpoint();
200
198
  continue;
201
199
  }
202
200
  // FIXME(fcarreiro): it's ugly to have to notify the validator of nullifiers.
@@ -225,6 +223,8 @@ class PublicProcessorTimeoutError extends Error {
225
223
  // Now we want to revert any/all remaining checkpoints, destroying any outstanding state updates.
226
224
  // This needs to be done directly on the underlying fork as the guarded fork has been stopped.
227
225
  await this.guardedMerkleTree.getUnderlyingFork().revertAllCheckpoints();
226
+ // Revert any contracts added to the DB for the tx.
227
+ this.contractsDB.revertCheckpoint();
228
228
  // Ensure we're at the same state as when we started processing this tx.
229
229
  await this.checkWorldStateUnchanged(startStateReference, txHash, err);
230
230
  break;
@@ -232,6 +232,7 @@ class PublicProcessorTimeoutError extends Error {
232
232
  // Roll back state to start of TX before proceeding to next TX
233
233
  await checkpoint.revert();
234
234
  await this.guardedMerkleTree.getUnderlyingFork().revertAllCheckpoints();
235
+ this.contractsDB.revertCheckpoint();
235
236
  const errorMessage = err instanceof Error || err instanceof AssertionError ? err.message : 'Unknown error';
236
237
  this.log.warn(`Failed to process tx ${txHash.toString()}: ${errorMessage} ${err?.stack}`);
237
238
  failed.push({
@@ -244,8 +245,7 @@ class PublicProcessorTimeoutError extends Error {
244
245
  } finally{
245
246
  // Base case is we always commit the checkpoint. Using the ForkCheckpoint means this has no effect if the tx was previously reverted
246
247
  await checkpoint.commit();
247
- // The tx-level contracts cache should not live on to the next tx
248
- this.contractsDB.clearContractsForTx();
248
+ this.contractsDB.commitCheckpointOkIfNone();
249
249
  }
250
250
  }
251
251
  const duration = timer.s();
@@ -371,10 +371,7 @@ class PublicProcessorTimeoutError extends Error {
371
371
  this.metrics.recordClassPublication(...tx.getContractClassLogs().filter((log)=>ContractClassPublishedEvent.isContractClassPublishedEvent(log)).map((log)=>ContractClassPublishedEvent.fromLog(log)));
372
372
  // Fee payment insertion has already been done. Do the rest.
373
373
  await this.doTreeInsertionsForPrivateOnlyTx(processedTx);
374
- // Add any contracts registered/deployed in this private-only tx to the block-level cache
375
- // (add to tx-level cache and then commit to block-level cache)
376
374
  await this.contractsDB.addNewContracts(tx);
377
- this.contractsDB.commitContractsForTx();
378
375
  return [
379
376
  processedTx,
380
377
  undefined
@@ -382,30 +379,32 @@ class PublicProcessorTimeoutError extends Error {
382
379
  }
383
380
  async processTxWithPublicCalls(tx) {
384
381
  const timer = new Timer();
385
- const { avmProvingRequest, gasUsed, revertCode, revertReason, processedPhases } = await this.publicTxSimulator.simulate(tx);
386
- if (!avmProvingRequest) {
387
- this.metrics.recordFailedTx();
388
- throw new Error('Avm proving result was not generated.');
389
- }
390
- processedPhases.forEach((phase)=>{
391
- if (phase.reverted) {
392
- this.metrics.recordRevertedPhase(phase.phase);
393
- } else {
394
- this.metrics.recordPhaseDuration(phase.phase, phase.durationMs ?? 0);
395
- }
396
- });
382
+ const result = await this.publicTxSimulator.simulate(tx);
383
+ // TODO: use the callStackMetadata here to extract more data about public execution
384
+ const { hints, publicInputs, gasUsed, revertCode/*callStackMetadata*/ } = result;
397
385
  const contractClassLogs = revertCode.isOK() ? tx.getContractClassLogs() : tx.getSplitContractClassLogs(false);
398
386
  this.metrics.recordClassPublication(...contractClassLogs.filter((log)=>ContractClassPublishedEvent.isContractClassPublishedEvent(log)).map((log)=>ContractClassPublishedEvent.fromLog(log)));
399
- const phaseCount = processedPhases.length;
387
+ // TODO(fcarreiro): remove phase count metric.
400
388
  const durationMs = timer.ms();
401
- this.metrics.recordTx(phaseCount, durationMs, gasUsed.publicGas);
402
- const processedTx = makeProcessedTxFromTxWithPublicCalls(tx, avmProvingRequest, gasUsed, revertCode, revertReason);
403
- const returnValues = processedPhases.find(({ phase })=>phase === TxExecutionPhase.APP_LOGIC)?.returnValues ?? [];
389
+ this.metrics.recordTx(/*phaseCount=*/ 1, durationMs, gasUsed.publicGas);
390
+ // Extract the return values from the call stack metadata.
391
+ const appLogicReturnValues = result.getAppLogicReturnValues();
392
+ // Extract the revert reason from the call stack metadata.
393
+ const revertReason = result.findRevertReason();
394
+ const processedTx = makeProcessedTxFromTxWithPublicCalls(tx, PublicProcessor.generateProvingRequest(publicInputs, hints), gasUsed, revertCode, revertReason);
404
395
  return [
405
396
  processedTx,
406
- returnValues
397
+ appLogicReturnValues
407
398
  ];
408
399
  }
400
+ /**
401
+ * Generate the proving request for the AVM circuit.
402
+ */ static generateProvingRequest(publicInputs, hints = AvmExecutionHints.empty()) {
403
+ return {
404
+ type: ProvingRequestType.PUBLIC_VM,
405
+ inputs: new AvmCircuitInputs(hints, publicInputs)
406
+ };
407
+ }
409
408
  }
410
409
  _ts_decorate([
411
410
  trackSpan('PublicProcessor.processTx', (tx)=>({
@@ -24,4 +24,4 @@ export declare class PublicProcessorMetrics {
24
24
  recordClassPublication(...events: ContractClassPublishedEvent[]): void;
25
25
  recordTreeInsertions(durationUs: number): void;
26
26
  }
27
- //# sourceMappingURL=public_processor_metrics.d.ts.map
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvcl9tZXRyaWNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL3B1YmxpY19wcm9jZXNzb3IvcHVibGljX3Byb2Nlc3Nvcl9tZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUYsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBS0wsS0FBSyxlQUFlLEVBQ3BCLEtBQUssTUFBTSxFQUdaLE1BQU0seUJBQXlCLENBQUM7QUFFakMscUJBQWEsc0JBQXNCO0lBQ2pDLFNBQWdCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFFL0IsT0FBTyxDQUFDLFVBQVUsQ0FBWTtJQUM5QixPQUFPLENBQUMsT0FBTyxDQUFnQjtJQUMvQixPQUFPLENBQUMsWUFBWSxDQUFnQjtJQUVwQyxPQUFPLENBQUMsYUFBYSxDQUFZO0lBQ2pDLE9BQU8sQ0FBQyxVQUFVLENBQWdCO0lBRWxDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBWTtJQUNwQyxPQUFPLENBQUMsUUFBUSxDQUFRO0lBQ3hCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBWTtJQUNyQyxPQUFPLENBQUMsT0FBTyxDQUFZO0lBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQVk7SUFFekIsT0FBTyxDQUFDLHFCQUFxQixDQUFZO0lBRXpDLFlBQVksTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLFNBQW9CLEVBMEQ1RDtJQUVELG1CQUFtQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUdsRTtJQUVELFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsUUFZNUQ7SUFFRCxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxRQWdCMUM7SUFFRCxjQUFjLFNBSWI7SUFFRCxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLFFBRTlDO0lBRUQsc0JBQXNCLENBQUMsR0FBRyxNQUFNLEVBQUUsMkJBQTJCLEVBQUUsUUFTOUQ7SUFFRCxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxRQUV0QztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"public_processor_metrics.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAC5F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,sBAAsB;IACjC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,UAAU,CAAgB;IAElC,OAAO,CAAC,gBAAgB,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,KAAK,CAAY;IAEzB,OAAO,CAAC,qBAAqB,CAAY;gBAE7B,MAAM,EAAE,eAAe,EAAE,IAAI,SAAoB;IA4D7D,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM;IAKnE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAc7D,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;IAkB3C,cAAc;IAMd,mBAAmB,CAAC,SAAS,EAAE,gBAAgB;IAI/C,sBAAsB,CAAC,GAAG,MAAM,EAAE,2BAA2B,EAAE;IAW/D,oBAAoB,CAAC,UAAU,EAAE,MAAM;CAGxC"}
1
+ {"version":3,"file":"public_processor_metrics.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAC5F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,sBAAsB;IACjC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,UAAU,CAAgB;IAElC,OAAO,CAAC,gBAAgB,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,KAAK,CAAY;IAEzB,OAAO,CAAC,qBAAqB,CAAY;IAEzC,YAAY,MAAM,EAAE,eAAe,EAAE,IAAI,SAAoB,EA0D5D;IAED,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,QAGlE;IAED,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAY5D;IAED,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAgB1C;IAED,cAAc,SAIb;IAED,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,QAE9C;IAED,sBAAsB,CAAC,GAAG,MAAM,EAAE,2BAA2B,EAAE,QAS9D;IAED,oBAAoB,CAAC,UAAU,EAAE,MAAM,QAEtC;CACF"}
@@ -0,0 +1,30 @@
1
+ import type { ContractProvider } from '@aztec/native';
2
+ import type { GlobalVariables } from '@aztec/stdlib/tx';
3
+ import type { PublicContractsDB } from '../public_db_sources.js';
4
+ export declare class ContractProviderForCpp implements ContractProvider {
5
+ private contractsDB;
6
+ private globalVariables;
7
+ private log;
8
+ constructor(contractsDB: PublicContractsDB, globalVariables: GlobalVariables);
9
+ getContractInstance: (address: string) => Promise<Buffer<ArrayBufferLike> | undefined>;
10
+ getContractClass: (classId: string) => Promise<Buffer<ArrayBufferLike> | undefined>;
11
+ addContracts: (contractDeploymentDataBuffer: Buffer<ArrayBufferLike>) => Promise<void>;
12
+ getBytecodeCommitment: (classId: string) => Promise<Buffer<ArrayBufferLike> | undefined>;
13
+ getDebugFunctionName: (address: string, selector: string) => Promise<string | undefined>;
14
+ createCheckpoint: () => Promise<void>;
15
+ commitCheckpoint: () => Promise<void>;
16
+ revertCheckpoint: () => Promise<void>;
17
+ /**
18
+ * Reconstruct ContractDeploymentData from plain msgpack-deserialized objects.
19
+ *
20
+ * msgpackr does not automatically apply extensions to nested fields, so we need to
21
+ * manually reconstruct ContractClassLog and PrivateLog instances with proper types.
22
+ *
23
+ * TODO(dbanks12): we really shouldn't have to do this.... We need to for now because
24
+ * msgpack deserialization doesn't give us actual typed objects, but rather just JSON.
25
+ * It would be easier if all types matched between languages (like AztecAddress which is just
26
+ * FF in C++).
27
+ */
28
+ private reconstructContractDeploymentData;
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfcHJvdmlkZXJfZm9yX2NwcC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfdHhfc2ltdWxhdG9yL2NvbnRyYWN0X3Byb3ZpZGVyX2Zvcl9jcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNdEQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRSxxQkFBYSxzQkFBdUIsWUFBVyxnQkFBZ0I7SUFJM0QsT0FBTyxDQUFDLFdBQVc7SUFDbkIsT0FBTyxDQUFDLGVBQWU7SUFKekIsT0FBTyxDQUFDLEdBQUcsQ0FBK0Q7SUFFMUUsWUFDVSxXQUFXLEVBQUUsaUJBQWlCLEVBQzlCLGVBQWUsRUFBRSxlQUFlLEVBQ3RDO0lBRUcsbUJBQW1CLG9FQWF4QjtJQUVLLGdCQUFnQixvRUFlckI7SUFFSyxZQUFZLDJFQVdqQjtJQUVLLHFCQUFxQixvRUFnQjFCO0lBRUssb0JBQW9CLHFFQWlCekI7SUFFSyxnQkFBZ0Isc0JBR3JCO0lBRUssZ0JBQWdCLHNCQUdyQjtJQUVLLGdCQUFnQixzQkFHckI7SUFFRjs7Ozs7Ozs7OztPQVVHO0lBQ0gsT0FBTyxDQUFDLGlDQUFpQztDQWlDMUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract_provider_for_cpp.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/contract_provider_for_cpp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,qBAAa,sBAAuB,YAAW,gBAAgB;IAI3D,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,eAAe;IAJzB,OAAO,CAAC,GAAG,CAA+D;IAE1E,YACU,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EACtC;IAEG,mBAAmB,oEAaxB;IAEK,gBAAgB,oEAerB;IAEK,YAAY,2EAWjB;IAEK,qBAAqB,oEAgB1B;IAEK,oBAAoB,qEAiBzB;IAEK,gBAAgB,sBAGrB;IAEK,gBAAgB,sBAGrB;IAEK,gBAAgB,sBAGrB;IAEF;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iCAAiC;CAiC1C"}
@@ -0,0 +1,133 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import { createLogger } from '@aztec/foundation/log';
3
+ import { FunctionSelector } from '@aztec/stdlib/abi';
4
+ import { deserializeFromMessagePack, serializeWithMessagePack } from '@aztec/stdlib/avm';
5
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
6
+ import { ContractDeploymentData } from '@aztec/stdlib/contract';
7
+ import { ContractClassLog, ContractClassLogFields, PrivateLog } from '@aztec/stdlib/logs';
8
+ export class ContractProviderForCpp {
9
+ contractsDB;
10
+ globalVariables;
11
+ log;
12
+ constructor(contractsDB, globalVariables){
13
+ this.contractsDB = contractsDB;
14
+ this.globalVariables = globalVariables;
15
+ this.log = createLogger('simulator:contract_provider_for_cpp');
16
+ this.getContractInstance = async (address)=>{
17
+ this.log.debug(`Contract provider callback: getContractInstance(${address})`);
18
+ const aztecAddr = AztecAddress.fromString(address);
19
+ const instance = await this.contractsDB.getContractInstance(aztecAddr, this.globalVariables.timestamp);
20
+ if (!instance) {
21
+ this.log.debug(`Contract instance not found: ${address}`);
22
+ return undefined;
23
+ }
24
+ return serializeWithMessagePack(instance);
25
+ };
26
+ this.getContractClass = async (classId)=>{
27
+ this.log.debug(`Contract provider callback: getContractClass(${classId})`);
28
+ // Parse classId string to Fr
29
+ const classIdFr = Fr.fromString(classId);
30
+ // Fetch contract class from the contracts DB
31
+ const contractClass = await this.contractsDB.getContractClass(classIdFr);
32
+ if (!contractClass) {
33
+ this.log.debug(`Contract class not found: ${classId}`);
34
+ return undefined;
35
+ }
36
+ return serializeWithMessagePack(contractClass);
37
+ };
38
+ this.addContracts = async (contractDeploymentDataBuffer)=>{
39
+ this.log.debug(`Contract provider callback: addContracts`);
40
+ const rawData = deserializeFromMessagePack(contractDeploymentDataBuffer);
41
+ // Construct class instances using the from method
42
+ const contractDeploymentData = this.reconstructContractDeploymentData(rawData);
43
+ // Add contracts to the contracts DB
44
+ this.log.debug(`Calling contractsDB.addContracts`);
45
+ await this.contractsDB.addContracts(contractDeploymentData);
46
+ };
47
+ this.getBytecodeCommitment = async (classId)=>{
48
+ this.log.debug(`Contract provider callback: getBytecodeCommitment(${classId})`);
49
+ // Parse classId string to Fr
50
+ const classIdFr = Fr.fromString(classId);
51
+ // Fetch bytecode commitment from the contracts DB
52
+ const commitment = await this.contractsDB.getBytecodeCommitment(classIdFr);
53
+ if (!commitment) {
54
+ this.log.debug(`Bytecode commitment not found: ${classId}`);
55
+ return undefined;
56
+ }
57
+ // Serialize the Fr to buffer
58
+ return serializeWithMessagePack(commitment);
59
+ };
60
+ this.getDebugFunctionName = async (address, selector)=>{
61
+ this.log.debug(`Contract provider callback: getDebugFunctionName(${address}, ${selector})`);
62
+ // Parse address and selector strings
63
+ const aztecAddr = AztecAddress.fromString(address);
64
+ const selectorFr = Fr.fromString(selector);
65
+ const functionSelector = FunctionSelector.fromField(selectorFr);
66
+ // Fetch debug function name from the contracts DB
67
+ const name = await this.contractsDB.getDebugFunctionName(aztecAddr, functionSelector);
68
+ if (!name) {
69
+ this.log.debug(`Debug function name not found for ${address}:${selector}`);
70
+ return undefined;
71
+ }
72
+ return name;
73
+ };
74
+ this.createCheckpoint = ()=>{
75
+ this.log.debug(`Contract provider callback: createCheckpoint`);
76
+ return Promise.resolve(this.contractsDB.createCheckpoint());
77
+ };
78
+ this.commitCheckpoint = ()=>{
79
+ this.log.debug(`Contract provider callback: commitCheckpoint`);
80
+ return Promise.resolve(this.contractsDB.commitCheckpoint());
81
+ };
82
+ this.revertCheckpoint = ()=>{
83
+ this.log.debug(`Contract provider callback: revertCheckpoint`);
84
+ return Promise.resolve(this.contractsDB.revertCheckpoint());
85
+ };
86
+ }
87
+ getContractInstance;
88
+ getContractClass;
89
+ addContracts;
90
+ getBytecodeCommitment;
91
+ getDebugFunctionName;
92
+ createCheckpoint;
93
+ commitCheckpoint;
94
+ revertCheckpoint;
95
+ /**
96
+ * Reconstruct ContractDeploymentData from plain msgpack-deserialized objects.
97
+ *
98
+ * msgpackr does not automatically apply extensions to nested fields, so we need to
99
+ * manually reconstruct ContractClassLog and PrivateLog instances with proper types.
100
+ *
101
+ * TODO(dbanks12): we really shouldn't have to do this.... We need to for now because
102
+ * msgpack deserialization doesn't give us actual typed objects, but rather just JSON.
103
+ * It would be easier if all types matched between languages (like AztecAddress which is just
104
+ * FF in C++).
105
+ */ reconstructContractDeploymentData(rawData) {
106
+ // Helper to ensure a value is an Fr instance
107
+ const toFr = (value)=>{
108
+ if (value instanceof Fr) {
109
+ return value;
110
+ }
111
+ if (Buffer.isBuffer(value)) {
112
+ return Fr.fromBuffer(value);
113
+ }
114
+ return new Fr(value);
115
+ };
116
+ // Reconstruct ContractClassLogs
117
+ const contractClassLogs = (rawData.contractClassLogs || []).map((log)=>{
118
+ // Convert contractAddress to TS AztecAddress
119
+ const addressFr = toFr(log.contractAddress);
120
+ const address = AztecAddress.fromField(addressFr);
121
+ // Ensure all fields are Fr instances
122
+ const fields = (log.fields.fields || []).map((field)=>toFr(field));
123
+ // Create proper ContractClassLog instance
124
+ return new ContractClassLog(address, new ContractClassLogFields(fields), log.emittedLength);
125
+ });
126
+ // Reconstruct PrivateLogs - ensure fields are Fr instances
127
+ const privateLogs = (rawData.privateLogs || []).map((log)=>{
128
+ const fields = (log.fields || []).map((field)=>toFr(field));
129
+ return new PrivateLog(fields, log.emittedLength);
130
+ });
131
+ return new ContractDeploymentData(contractClassLogs, privateLogs);
132
+ }
133
+ }
@@ -1,41 +1,38 @@
1
1
  import { type Logger } from '@aztec/foundation/log';
2
+ import { type PublicSimulatorConfig, PublicTxResult } from '@aztec/stdlib/avm';
2
3
  import type { MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
3
4
  import type { GlobalVariables, Tx } from '@aztec/stdlib/tx';
5
+ import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
4
6
  import type { ExecutorMetricsInterface } from '../executor_metrics_interface.js';
5
7
  import type { PublicContractsDB } from '../public_db_sources.js';
6
- import { type PublicTxResult, PublicTxSimulator, type PublicTxSimulatorConfig } from './public_tx_simulator.js';
8
+ import { PublicTxSimulator } from './public_tx_simulator.js';
7
9
  import type { MeasuredPublicTxSimulatorInterface, PublicTxSimulatorInterface } from './public_tx_simulator_interface.js';
8
10
  /**
9
- * C++ implementation of PublicTxSimulator using pre-collected hints.
10
- * This implementation runs TS simulation first to collect all hints,
11
- * then passes the complete AvmCircuitInputs (hints + public inputs)
12
- * to C++ to run hinted simulation.
11
+ * C++ implementation of PublicTxSimulator using the C++ simulator.
12
+ * The C++ simulator accesses the world state directly/natively within C++.
13
+ * For contract DB accesses, it makes callbacks through NAPI back to the TS PublicContractsDB cache.
13
14
  */
14
- export declare class CppPublicTxSimulatorHintedDbs extends PublicTxSimulator implements PublicTxSimulatorInterface {
15
+ export declare class CppPublicTxSimulator extends PublicTxSimulator implements PublicTxSimulatorInterface {
15
16
  protected log: Logger;
16
- constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config?: Partial<PublicTxSimulatorConfig>);
17
+ constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config?: Partial<PublicSimulatorConfig>);
17
18
  /**
18
- * Simulate a transaction's public portion using the C++ vm2 simulator with hinted DBs.
19
- *
20
- * This implementation:
21
- * 1. Runs the full TypeScript simulation to generate AvmCircuitInputs (hints + public inputs)
22
- * 2. Passes the complete AvmCircuitInputs to C++ to run hinted simulation
19
+ * Simulate a transaction's public portion using the C++ avvm simulator.
23
20
  *
24
21
  * @param tx - The transaction to simulate.
25
22
  * @returns The result of the transaction's public execution.
26
23
  */
27
24
  simulate(tx: Tx): Promise<PublicTxResult>;
28
25
  }
29
- /**
30
- * Class to record metrics for simulation.
31
- *
32
- * Note(dbanks12): We might not be able to collect all the same metrics in C++ as we do in TS!
33
- * Unless we move some of the metrics collection to C++, we don't have inner functions exposed
34
- * to TS for tracking.
35
- */
36
- export declare class MeasuredCppPublicTxSimulatorHintedDbs extends CppPublicTxSimulatorHintedDbs implements MeasuredPublicTxSimulatorInterface {
26
+ export declare class MeasuredCppPublicTxSimulator extends CppPublicTxSimulator implements MeasuredPublicTxSimulatorInterface {
37
27
  protected readonly metrics: ExecutorMetricsInterface;
38
- constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, metrics: ExecutorMetricsInterface, config?: Partial<PublicTxSimulatorConfig>);
28
+ constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, metrics: ExecutorMetricsInterface, config?: Partial<PublicSimulatorConfig>);
39
29
  simulate(tx: Tx, txLabel?: string): Promise<PublicTxResult>;
40
30
  }
41
- //# sourceMappingURL=cpp_public_tx_simulator.d.ts.map
31
+ /**
32
+ * A C++ public tx simulator that tracks runtime/production metrics with telemetry.
33
+ */
34
+ export declare class TelemetryCppPublicTxSimulator extends MeasuredCppPublicTxSimulator {
35
+ readonly tracer: Tracer;
36
+ constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, telemetryClient?: TelemetryClient, config?: Partial<PublicSimulatorConfig>);
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BwX3B1YmxpY190eF9zaW11bGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3R4X3NpbXVsYXRvci9jcHBfcHVibGljX3R4X3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQTBCLE1BQU0sdUJBQXVCLENBQUM7QUFHNUUsT0FBTyxFQUdMLEtBQUsscUJBQXFCLEVBQzFCLGNBQWMsRUFFZixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVELE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxLQUFLLE1BQU0sRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUtoRyxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQ1Ysa0NBQWtDLEVBQ2xDLDBCQUEwQixFQUMzQixNQUFNLG9DQUFvQyxDQUFDO0FBRTVDOzs7O0dBSUc7QUFDSCxxQkFBYSxvQkFBcUIsU0FBUSxpQkFBa0IsWUFBVywwQkFBMEI7SUFDL0YsVUFBbUIsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUUvQixZQUNFLFVBQVUsRUFBRSx5QkFBeUIsRUFDckMsV0FBVyxFQUFFLGlCQUFpQixFQUM5QixlQUFlLEVBQUUsZUFBZSxFQUNoQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMscUJBQXFCLENBQUMsRUFJeEM7SUFFRDs7Ozs7T0FLRztJQUNtQixRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBMEQ5RDtDQUNGO0FBRUQscUJBQWEsNEJBQTZCLFNBQVEsb0JBQXFCLFlBQVcsa0NBQWtDO0lBS2hILFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLHdCQUF3QjtJQUp0RCxZQUNFLFVBQVUsRUFBRSx5QkFBeUIsRUFDckMsV0FBVyxFQUFFLGlCQUFpQixFQUM5QixlQUFlLEVBQUUsZUFBZSxFQUNiLE9BQU8sRUFBRSx3QkFBd0IsRUFDcEQsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBR3hDO0lBRXFCLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRSxNQUFzQixHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FTL0Y7Q0FDRjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsNkJBQThCLFNBQVEsNEJBQTRCO0lBRTdFLFNBQWdCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFFL0IsWUFDRSxVQUFVLEVBQUUseUJBQXlCLEVBQ3JDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsZUFBZSxFQUFFLGVBQWUsRUFDaEMsZUFBZSxHQUFFLGVBQXNDLEVBQ3ZELE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUt4QztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"cpp_public_tx_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/cpp_public_tx_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,KAAK,cAAc,EAAE,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAChH,OAAO,KAAK,EACV,kCAAkC,EAClC,0BAA0B,EAC3B,MAAM,oCAAoC,CAAC;AAE5C;;;;;GAKG;AACH,qBAAa,6BAA8B,SAAQ,iBAAkB,YAAW,0BAA0B;IACxG,UAAmB,GAAG,EAAE,MAAM,CAAC;gBAG7B,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAM3C;;;;;;;;;OASG;IACmB,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;CAkDhE;AAED;;;;;;GAMG;AACH,qBAAa,qCACX,SAAQ,6BACR,YAAW,kCAAkC;IAM3C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,wBAAwB;gBAHpD,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EACb,OAAO,EAAE,wBAAwB,EACpD,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAKrB,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,cAAc,CAAC;CAUjG"}
1
+ {"version":3,"file":"cpp_public_tx_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/cpp_public_tx_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAA0B,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAGL,KAAK,qBAAqB,EAC1B,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,MAAM,EAAsB,MAAM,yBAAyB,CAAC;AAKhG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EACV,kCAAkC,EAClC,0BAA0B,EAC3B,MAAM,oCAAoC,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,iBAAkB,YAAW,0BAA0B;IAC/F,UAAmB,GAAG,EAAE,MAAM,CAAC;IAE/B,YACE,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAIxC;IAED;;;;;OAKG;IACmB,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CA0D9D;CACF;AAED,qBAAa,4BAA6B,SAAQ,oBAAqB,YAAW,kCAAkC;IAKhH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,wBAAwB;IAJtD,YACE,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EACb,OAAO,EAAE,wBAAwB,EACpD,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAGxC;IAEqB,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,CAS/F;CACF;AAED;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,4BAA4B;IAE7E,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,YACE,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,eAAe,GAAE,eAAsC,EACvD,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAKxC;CACF"}