@aztec/simulator 0.0.1-commit.29c6b1a3 → 0.0.1-commit.2c0ee1788

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 (149) hide show
  1. package/README.md +4 -4
  2. package/dest/private/acvm/acvm.d.ts +4 -2
  3. package/dest/private/acvm/acvm.d.ts.map +1 -1
  4. package/dest/private/acvm/acvm.js +4 -3
  5. package/dest/private/acvm_native.d.ts +5 -3
  6. package/dest/private/acvm_native.d.ts.map +1 -1
  7. package/dest/private/acvm_native.js +8 -6
  8. package/dest/private/acvm_wasm.d.ts +4 -3
  9. package/dest/private/acvm_wasm.d.ts.map +1 -1
  10. package/dest/private/acvm_wasm.js +4 -4
  11. package/dest/private/circuit_recording/circuit_recorder.d.ts +4 -3
  12. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  13. package/dest/private/circuit_recording/circuit_recorder.js +7 -5
  14. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +3 -2
  15. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  16. package/dest/private/circuit_recording/file_circuit_recorder.js +2 -2
  17. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +7 -2
  18. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
  19. package/dest/private/circuit_recording/memory_circuit_recorder.js +4 -4
  20. package/dest/private/factory.d.ts +3 -3
  21. package/dest/private/factory.d.ts.map +1 -1
  22. package/dest/private/factory.js +7 -4
  23. package/dest/public/avm/avm_gas.js +3 -3
  24. package/dest/public/avm/avm_simulator.js +1 -1
  25. package/dest/public/avm/calldata.d.ts +1 -1
  26. package/dest/public/avm/calldata.d.ts.map +1 -1
  27. package/dest/public/avm/calldata.js +3 -2
  28. package/dest/public/avm/fixtures/account_proof_fetcher.d.ts +2 -0
  29. package/dest/public/avm/fixtures/account_proof_fetcher.d.ts.map +1 -0
  30. package/dest/public/avm/fixtures/account_proof_fetcher.js +152 -0
  31. package/dest/public/avm/opcodes/accrued_substate.d.ts +2 -2
  32. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  33. package/dest/public/avm/opcodes/accrued_substate.js +3 -4
  34. package/dest/public/avm/serialization/bytecode_serialization.js +3 -3
  35. package/dest/public/avm/serialization/instruction_serialization.d.ts +2 -2
  36. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +1 -1
  37. package/dest/public/avm/serialization/instruction_serialization.js +1 -1
  38. package/dest/public/contracts_db_checkpoint.d.ts +2 -2
  39. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
  40. package/dest/public/contracts_db_checkpoint.js +1 -1
  41. package/dest/public/executor_metrics.d.ts +1 -1
  42. package/dest/public/executor_metrics.d.ts.map +1 -1
  43. package/dest/public/executor_metrics.js +7 -2
  44. package/dest/public/fixtures/amm_test.js +2 -2
  45. package/dest/public/fixtures/bulk_test.d.ts +1 -1
  46. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  47. package/dest/public/fixtures/bulk_test.js +4 -4
  48. package/dest/public/fixtures/custom_bytecode_tests.d.ts +3 -1
  49. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -1
  50. package/dest/public/fixtures/custom_bytecode_tests.js +61 -1
  51. package/dest/public/fixtures/opcode_spammer.d.ts +1 -1
  52. package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -1
  53. package/dest/public/fixtures/opcode_spammer.js +6 -6
  54. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +6 -5
  55. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  56. package/dest/public/fixtures/public_tx_simulation_tester.js +37 -10
  57. package/dest/public/fixtures/utils.d.ts +2 -2
  58. package/dest/public/fixtures/utils.d.ts.map +1 -1
  59. package/dest/public/fixtures/utils.js +10 -10
  60. package/dest/public/hinting_db_sources.d.ts +5 -5
  61. package/dest/public/hinting_db_sources.d.ts.map +1 -1
  62. package/dest/public/hinting_db_sources.js +7 -6
  63. package/dest/public/public_db_sources.d.ts +6 -5
  64. package/dest/public/public_db_sources.d.ts.map +1 -1
  65. package/dest/public/public_db_sources.js +14 -14
  66. package/dest/public/public_processor/guarded_merkle_tree.d.ts +5 -5
  67. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  68. package/dest/public/public_processor/guarded_merkle_tree.js +5 -5
  69. package/dest/public/public_processor/public_processor.d.ts +8 -4
  70. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  71. package/dest/public/public_processor/public_processor.js +75 -50
  72. package/dest/public/public_processor/public_processor_metrics.d.ts +5 -2
  73. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  74. package/dest/public/public_processor/public_processor_metrics.js +28 -4
  75. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +3 -2
  76. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -1
  77. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +4 -3
  78. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +5 -5
  79. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
  80. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +10 -11
  81. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +4 -4
  82. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -1
  83. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +7 -7
  84. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +4 -4
  85. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -1
  86. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +6 -6
  87. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +3 -2
  88. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -1
  89. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +2 -2
  90. package/dest/public/public_tx_simulator/factories.d.ts +3 -2
  91. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
  92. package/dest/public/public_tx_simulator/factories.js +4 -4
  93. package/dest/public/public_tx_simulator/public_tx_context.d.ts +10 -5
  94. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  95. package/dest/public/public_tx_simulator/public_tx_context.js +16 -18
  96. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +9 -4
  97. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  98. package/dest/public/public_tx_simulator/public_tx_simulator.js +19 -12
  99. package/dest/public/side_effect_trace.d.ts +4 -4
  100. package/dest/public/side_effect_trace.d.ts.map +1 -1
  101. package/dest/public/side_effect_trace.js +3 -3
  102. package/dest/public/state_manager/state_manager.d.ts +4 -4
  103. package/dest/public/state_manager/state_manager.d.ts.map +1 -1
  104. package/dest/public/state_manager/state_manager.js +5 -5
  105. package/dest/public/test_executor_metrics.d.ts +8 -2
  106. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  107. package/dest/public/test_executor_metrics.js +24 -2
  108. package/package.json +15 -16
  109. package/src/private/acvm/acvm.ts +4 -3
  110. package/src/private/acvm_native.ts +11 -5
  111. package/src/private/acvm_wasm.ts +7 -3
  112. package/src/private/circuit_recording/circuit_recorder.ts +7 -5
  113. package/src/private/circuit_recording/file_circuit_recorder.ts +7 -2
  114. package/src/private/circuit_recording/memory_circuit_recorder.ts +6 -4
  115. package/src/private/factory.ts +7 -4
  116. package/src/public/avm/avm_gas.ts +2 -2
  117. package/src/public/avm/avm_simulator.ts +1 -1
  118. package/src/public/avm/calldata.ts +3 -2
  119. package/src/public/avm/fixtures/account_proof.json +553 -0
  120. package/src/public/avm/fixtures/account_proof_fetcher.ts +166 -0
  121. package/src/public/avm/opcodes/accrued_substate.ts +3 -4
  122. package/src/public/avm/opcodes/external_calls.ts +1 -1
  123. package/src/public/avm/serialization/bytecode_serialization.ts +2 -2
  124. package/src/public/avm/serialization/instruction_serialization.ts +1 -1
  125. package/src/public/contracts_db_checkpoint.ts +1 -1
  126. package/src/public/executor_metrics.ts +4 -1
  127. package/src/public/fixtures/amm_test.ts +2 -2
  128. package/src/public/fixtures/bulk_test.ts +2 -4
  129. package/src/public/fixtures/custom_bytecode_tests.ts +139 -1
  130. package/src/public/fixtures/opcode_spammer.ts +6 -10
  131. package/src/public/fixtures/public_tx_simulation_tester.ts +47 -6
  132. package/src/public/fixtures/utils.ts +17 -12
  133. package/src/public/fuzzing/avm_fuzzer_simulator.ts +1 -1
  134. package/src/public/hinting_db_sources.ts +9 -7
  135. package/src/public/public_db_sources.ts +27 -19
  136. package/src/public/public_processor/guarded_merkle_tree.ts +6 -6
  137. package/src/public/public_processor/public_processor.ts +112 -67
  138. package/src/public/public_processor/public_processor_metrics.ts +22 -4
  139. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +8 -4
  140. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +10 -8
  141. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +7 -5
  142. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +7 -5
  143. package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +3 -1
  144. package/src/public/public_tx_simulator/factories.ts +6 -3
  145. package/src/public/public_tx_simulator/public_tx_context.ts +21 -16
  146. package/src/public/public_tx_simulator/public_tx_simulator.ts +20 -12
  147. package/src/public/side_effect_trace.ts +5 -2
  148. package/src/public/state_manager/state_manager.ts +19 -4
  149. package/src/public/test_executor_metrics.ts +27 -3
@@ -1,5 +1,5 @@
1
1
  import { sum } from '@aztec/foundation/collection';
2
- import { type Logger, createLogger } from '@aztec/foundation/log';
2
+ import { type Logger, type LoggerBindings, createLogger } from '@aztec/foundation/log';
3
3
  import { Timer } from '@aztec/foundation/timer';
4
4
  import type { RevertCode } from '@aztec/stdlib/avm';
5
5
  import type { GasUsed } from '@aztec/stdlib/gas';
@@ -21,6 +21,7 @@ export interface PublicTxMetrics {
21
21
  totalDurationMs: number;
22
22
  manaUsed: number | undefined;
23
23
  totalInstructionsExecuted: number;
24
+ bytecodeSizes: { contractName: string; sizeBytes: number }[];
24
25
  nonRevertiblePrivateInsertionsUs: number | undefined;
25
26
  revertiblePrivateInsertionsUs: number | undefined;
26
27
  enqueuedCalls: PublicEnqueuedCallMetrics[];
@@ -62,6 +63,7 @@ function createEmptyTxMetrics(): PublicTxMetrics {
62
63
  totalDurationMs: 0,
63
64
  manaUsed: 0,
64
65
  totalInstructionsExecuted: 0,
66
+ bytecodeSizes: [],
65
67
  nonRevertiblePrivateInsertionsUs: undefined,
66
68
  revertiblePrivateInsertionsUs: undefined,
67
69
  enqueuedCalls: [],
@@ -88,8 +90,8 @@ export class TestExecutorMetrics implements ExecutorMetricsInterface {
88
90
  private currentTxLabel: string | undefined;
89
91
  private txTimer: Timer | undefined;
90
92
 
91
- constructor() {
92
- this.logger = createLogger(`simulator:test_executor_metrics`);
93
+ constructor(bindings?: LoggerBindings) {
94
+ this.logger = createLogger(`simulator:test_executor_metrics`, bindings);
93
95
  }
94
96
 
95
97
  startRecordingTxSimulation(txLabel: string) {
@@ -172,6 +174,12 @@ export class TestExecutorMetrics implements ExecutorMetricsInterface {
172
174
  }
173
175
  }
174
176
 
177
+ recordBytecodeSize(txLabel: string, contractName: string, sizeBytes: number) {
178
+ const txMetrics = this.txMetrics.get(txLabel);
179
+ assert(txMetrics, `Cannot record bytecode size for unknown tx label: ${txLabel}`);
180
+ txMetrics.bytecodeSizes.push({ contractName, sizeBytes });
181
+ }
182
+
175
183
  recordProverMetrics(txLabel: string, metrics: Partial<PublicTxMetrics>) {
176
184
  if (!this.txMetrics.has(txLabel)) {
177
185
  this.txMetrics.set(txLabel, createEmptyTxMetrics());
@@ -216,6 +224,15 @@ export class TestExecutorMetrics implements ExecutorMetricsInterface {
216
224
  ) {
217
225
  pretty += `${INDENT0}Total instructions executed: ${fmtNum(txMetrics.totalInstructionsExecuted)}\n`;
218
226
  }
227
+ if (
228
+ (filter === PublicTxMetricsFilter.TOTALS || filter === PublicTxMetricsFilter.ALL) &&
229
+ txMetrics.bytecodeSizes.length > 0
230
+ ) {
231
+ pretty += `${INDENT0}Bytecode sizes:\n`;
232
+ for (const { contractName, sizeBytes } of txMetrics.bytecodeSizes) {
233
+ pretty += `${INDENT1}${contractName}: ${fmtNum(sizeBytes, 'bytes')}\n`;
234
+ }
235
+ }
219
236
  if (filter === PublicTxMetricsFilter.DURATIONS || filter === PublicTxMetricsFilter.ALL) {
220
237
  pretty += `${INDENT0}Private insertions:\n`;
221
238
  pretty += `${INDENT1}Non-revertible: ${fmtNum(txMetrics.nonRevertiblePrivateInsertionsUs! / 1_000, 'ms')}\n`;
@@ -387,6 +404,13 @@ export class TestExecutorMetrics implements ExecutorMetricsInterface {
387
404
  });
388
405
  }
389
406
  }
407
+ for (const { contractName, sizeBytes } of txMetrics.bytecodeSizes) {
408
+ data.push({
409
+ name: `${txLabel}/bytecodeSizeBytes/${contractName}`,
410
+ value: sizeBytes,
411
+ unit: 'bytes',
412
+ });
413
+ }
390
414
  }
391
415
  return JSON.stringify(data, null, indent);
392
416
  }