@aztec/simulator 0.0.1-commit.2ed92850 → 0.0.1-commit.3100065

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 (179) hide show
  1. package/README.md +4 -4
  2. package/dest/client.d.ts +1 -3
  3. package/dest/client.d.ts.map +1 -1
  4. package/dest/client.js +0 -2
  5. package/dest/private/acvm/acvm.d.ts +4 -2
  6. package/dest/private/acvm/acvm.d.ts.map +1 -1
  7. package/dest/private/acvm/acvm.js +4 -3
  8. package/dest/private/acvm_native.d.ts +5 -3
  9. package/dest/private/acvm_native.d.ts.map +1 -1
  10. package/dest/private/acvm_native.js +8 -6
  11. package/dest/private/acvm_wasm.d.ts +4 -3
  12. package/dest/private/acvm_wasm.d.ts.map +1 -1
  13. package/dest/private/acvm_wasm.js +7 -5
  14. package/dest/private/circuit_recording/circuit_recorder.d.ts +39 -25
  15. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  16. package/dest/private/circuit_recording/circuit_recorder.js +70 -72
  17. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +9 -20
  18. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  19. package/dest/private/circuit_recording/file_circuit_recorder.js +39 -43
  20. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts +7 -2
  21. package/dest/private/circuit_recording/memory_circuit_recorder.d.ts.map +1 -1
  22. package/dest/private/circuit_recording/memory_circuit_recorder.js +4 -4
  23. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  24. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  25. package/dest/private/circuit_recording/simulator_recorder_wrapper.js +11 -14
  26. package/dest/private/factory.d.ts +3 -3
  27. package/dest/private/factory.d.ts.map +1 -1
  28. package/dest/private/factory.js +7 -4
  29. package/dest/public/avm/avm_gas.js +3 -3
  30. package/dest/public/avm/avm_simulator.js +1 -1
  31. package/dest/public/avm/calldata.d.ts +1 -1
  32. package/dest/public/avm/calldata.d.ts.map +1 -1
  33. package/dest/public/avm/calldata.js +3 -2
  34. package/dest/public/avm/fixtures/account_proof_fetcher.d.ts +2 -0
  35. package/dest/public/avm/fixtures/account_proof_fetcher.d.ts.map +1 -0
  36. package/dest/public/avm/fixtures/account_proof_fetcher.js +152 -0
  37. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts +2 -1
  38. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -1
  39. package/dest/public/avm/fixtures/base_avm_simulation_tester.js +18 -3
  40. package/dest/public/avm/fixtures/utils.d.ts +1 -1
  41. package/dest/public/avm/fixtures/utils.d.ts.map +1 -1
  42. package/dest/public/avm/fixtures/utils.js +4 -1
  43. package/dest/public/avm/opcodes/accrued_substate.d.ts +4 -5
  44. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
  45. package/dest/public/avm/opcodes/accrued_substate.js +11 -16
  46. package/dest/public/avm/opcodes/contract.d.ts +3 -2
  47. package/dest/public/avm/opcodes/contract.d.ts.map +1 -1
  48. package/dest/public/avm/opcodes/contract.js +5 -1
  49. package/dest/public/avm/opcodes/ec_add.d.ts +2 -4
  50. package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -1
  51. package/dest/public/avm/opcodes/ec_add.js +13 -27
  52. package/dest/public/avm/serialization/bytecode_serialization.js +3 -3
  53. package/dest/public/avm/serialization/instruction_serialization.d.ts +2 -2
  54. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +1 -1
  55. package/dest/public/avm/serialization/instruction_serialization.js +1 -1
  56. package/dest/public/contracts_db_checkpoint.d.ts +2 -2
  57. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
  58. package/dest/public/contracts_db_checkpoint.js +1 -1
  59. package/dest/public/executor_metrics.d.ts +1 -1
  60. package/dest/public/executor_metrics.d.ts.map +1 -1
  61. package/dest/public/executor_metrics.js +7 -2
  62. package/dest/public/fixtures/amm_test.js +4 -4
  63. package/dest/public/fixtures/bulk_test.d.ts +1 -1
  64. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  65. package/dest/public/fixtures/bulk_test.js +33 -6
  66. package/dest/public/fixtures/custom_bytecode_tester.d.ts +1 -1
  67. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  68. package/dest/public/fixtures/custom_bytecode_tester.js +2 -2
  69. package/dest/public/fixtures/custom_bytecode_tests.d.ts +8 -1
  70. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +1 -1
  71. package/dest/public/fixtures/custom_bytecode_tests.js +91 -2
  72. package/dest/public/fixtures/opcode_spammer.d.ts +3 -4
  73. package/dest/public/fixtures/opcode_spammer.d.ts.map +1 -1
  74. package/dest/public/fixtures/opcode_spammer.js +18 -66
  75. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +6 -5
  76. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  77. package/dest/public/fixtures/public_tx_simulation_tester.js +38 -9
  78. package/dest/public/fixtures/token_test.js +3 -3
  79. package/dest/public/fixtures/utils.d.ts +2 -2
  80. package/dest/public/fixtures/utils.d.ts.map +1 -1
  81. package/dest/public/fixtures/utils.js +21 -20
  82. package/dest/public/hinting_db_sources.d.ts +5 -5
  83. package/dest/public/hinting_db_sources.d.ts.map +1 -1
  84. package/dest/public/hinting_db_sources.js +8 -7
  85. package/dest/public/public_db_sources.d.ts +9 -5
  86. package/dest/public/public_db_sources.d.ts.map +1 -1
  87. package/dest/public/public_db_sources.js +20 -14
  88. package/dest/public/public_processor/guarded_merkle_tree.d.ts +5 -5
  89. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  90. package/dest/public/public_processor/guarded_merkle_tree.js +5 -5
  91. package/dest/public/public_processor/public_processor.d.ts +11 -6
  92. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  93. package/dest/public/public_processor/public_processor.js +125 -68
  94. package/dest/public/public_processor/public_processor_metrics.d.ts +5 -2
  95. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  96. package/dest/public/public_processor/public_processor_metrics.js +28 -4
  97. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +3 -2
  98. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -1
  99. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +7 -6
  100. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +5 -5
  101. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +1 -1
  102. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +10 -11
  103. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +4 -4
  104. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +1 -1
  105. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +7 -7
  106. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +4 -4
  107. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +1 -1
  108. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +6 -6
  109. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +3 -2
  110. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +1 -1
  111. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.js +2 -2
  112. package/dest/public/public_tx_simulator/factories.d.ts +3 -2
  113. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
  114. package/dest/public/public_tx_simulator/factories.js +4 -4
  115. package/dest/public/public_tx_simulator/public_tx_context.d.ts +10 -5
  116. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  117. package/dest/public/public_tx_simulator/public_tx_context.js +16 -18
  118. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +9 -4
  119. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  120. package/dest/public/public_tx_simulator/public_tx_simulator.js +19 -12
  121. package/dest/public/side_effect_trace.d.ts +4 -4
  122. package/dest/public/side_effect_trace.d.ts.map +1 -1
  123. package/dest/public/side_effect_trace.js +3 -3
  124. package/dest/public/state_manager/state_manager.d.ts +10 -4
  125. package/dest/public/state_manager/state_manager.d.ts.map +1 -1
  126. package/dest/public/state_manager/state_manager.js +13 -6
  127. package/dest/public/test_executor_metrics.d.ts +8 -2
  128. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  129. package/dest/public/test_executor_metrics.js +24 -2
  130. package/package.json +16 -16
  131. package/src/client.ts +0 -2
  132. package/src/private/acvm/acvm.ts +4 -3
  133. package/src/private/acvm_native.ts +11 -5
  134. package/src/private/acvm_wasm.ts +11 -4
  135. package/src/private/circuit_recording/circuit_recorder.ts +89 -81
  136. package/src/private/circuit_recording/file_circuit_recorder.ts +45 -50
  137. package/src/private/circuit_recording/memory_circuit_recorder.ts +6 -4
  138. package/src/private/circuit_recording/simulator_recorder_wrapper.ts +9 -15
  139. package/src/private/factory.ts +7 -4
  140. package/src/public/avm/avm_gas.ts +2 -2
  141. package/src/public/avm/avm_simulator.ts +1 -1
  142. package/src/public/avm/calldata.ts +3 -2
  143. package/src/public/avm/fixtures/account_proof.json +553 -0
  144. package/src/public/avm/fixtures/account_proof_fetcher.ts +166 -0
  145. package/src/public/avm/fixtures/base_avm_simulation_tester.ts +23 -3
  146. package/src/public/avm/fixtures/utils.ts +4 -1
  147. package/src/public/avm/opcodes/accrued_substate.ts +10 -19
  148. package/src/public/avm/opcodes/contract.ts +5 -1
  149. package/src/public/avm/opcodes/ec_add.ts +12 -31
  150. package/src/public/avm/opcodes/external_calls.ts +1 -1
  151. package/src/public/avm/serialization/bytecode_serialization.ts +2 -2
  152. package/src/public/avm/serialization/instruction_serialization.ts +1 -1
  153. package/src/public/contracts_db_checkpoint.ts +1 -1
  154. package/src/public/executor_metrics.ts +4 -1
  155. package/src/public/fixtures/amm_test.ts +4 -4
  156. package/src/public/fixtures/bulk_test.ts +31 -6
  157. package/src/public/fixtures/custom_bytecode_tester.ts +2 -2
  158. package/src/public/fixtures/custom_bytecode_tests.ts +209 -2
  159. package/src/public/fixtures/opcode_spammer.ts +22 -63
  160. package/src/public/fixtures/public_tx_simulation_tester.ts +45 -5
  161. package/src/public/fixtures/token_test.ts +3 -3
  162. package/src/public/fixtures/utils.ts +23 -24
  163. package/src/public/fuzzing/avm_fuzzer_simulator.ts +1 -1
  164. package/src/public/hinting_db_sources.ts +10 -7
  165. package/src/public/public_db_sources.ts +36 -19
  166. package/src/public/public_processor/guarded_merkle_tree.ts +6 -6
  167. package/src/public/public_processor/public_processor.ts +173 -90
  168. package/src/public/public_processor/public_processor_metrics.ts +22 -4
  169. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +11 -7
  170. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +10 -8
  171. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +7 -5
  172. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +7 -5
  173. package/src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts +3 -1
  174. package/src/public/public_tx_simulator/factories.ts +6 -3
  175. package/src/public/public_tx_simulator/public_tx_context.ts +21 -16
  176. package/src/public/public_tx_simulator/public_tx_simulator.ts +20 -12
  177. package/src/public/side_effect_trace.ts +5 -2
  178. package/src/public/state_manager/state_manager.ts +28 -5
  179. package/src/public/test_executor_metrics.ts +27 -3
@@ -1,3 +1,4 @@
1
+ import { type LoggerBindings } from '@aztec/foundation/log';
1
2
  import type { ContractProvider } from '@aztec/native';
2
3
  import type { GlobalVariables } from '@aztec/stdlib/tx';
3
4
  import type { PublicContractsDB } from '../public_db_sources.js';
@@ -5,7 +6,7 @@ export declare class ContractProviderForCpp implements ContractProvider {
5
6
  private contractsDB;
6
7
  private globalVariables;
7
8
  private log;
8
- constructor(contractsDB: PublicContractsDB, globalVariables: GlobalVariables);
9
+ constructor(contractsDB: PublicContractsDB, globalVariables: GlobalVariables, bindings?: LoggerBindings);
9
10
  getContractInstance: (address: string) => Promise<Buffer<ArrayBufferLike> | undefined>;
10
11
  getContractClass: (classId: string) => Promise<Buffer<ArrayBufferLike> | undefined>;
11
12
  addContracts: (contractDeploymentDataBuffer: Buffer<ArrayBufferLike>) => Promise<void>;
@@ -15,4 +16,4 @@ export declare class ContractProviderForCpp implements ContractProvider {
15
16
  commitCheckpoint: () => Promise<void>;
16
17
  revertCheckpoint: () => Promise<void>;
17
18
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfcHJvdmlkZXJfZm9yX2NwcC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfdHhfc2ltdWxhdG9yL2NvbnRyYWN0X3Byb3ZpZGVyX2Zvcl9jcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLdEQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRSxxQkFBYSxzQkFBdUIsWUFBVyxnQkFBZ0I7SUFJM0QsT0FBTyxDQUFDLFdBQVc7SUFDbkIsT0FBTyxDQUFDLGVBQWU7SUFKekIsT0FBTyxDQUFDLEdBQUcsQ0FBK0Q7SUFFMUUsWUFDVSxXQUFXLEVBQUUsaUJBQWlCLEVBQzlCLGVBQWUsRUFBRSxlQUFlLEVBQ3RDO0lBRUcsbUJBQW1CLG9FQWF4QjtJQUVLLGdCQUFnQixvRUFlckI7SUFFSyxZQUFZLDJFQVdqQjtJQUVLLHFCQUFxQixvRUFnQjFCO0lBRUssb0JBQW9CLHFFQXNCekI7SUFFSyxnQkFBZ0Isc0JBR3JCO0lBRUssZ0JBQWdCLHNCQUdyQjtJQUVLLGdCQUFnQixzQkFHckI7Q0FDSCJ9
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfcHJvdmlkZXJfZm9yX2NwcC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfdHhfc2ltdWxhdG9yL2NvbnRyYWN0X3Byb3ZpZGVyX2Zvcl9jcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFlLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ3ZGLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS3RELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakUscUJBQWEsc0JBQXVCLFlBQVcsZ0JBQWdCO0lBSTNELE9BQU8sQ0FBQyxXQUFXO0lBQ25CLE9BQU8sQ0FBQyxlQUFlO0lBSnpCLE9BQU8sQ0FBQyxHQUFHLENBQVM7SUFFcEIsWUFDVSxXQUFXLEVBQUUsaUJBQWlCLEVBQzlCLGVBQWUsRUFBRSxlQUFlLEVBQ3hDLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFHMUI7SUFFTSxtQkFBbUIsb0VBYXhCO0lBRUssZ0JBQWdCLG9FQWVyQjtJQUdLLFlBQVksMkVBV2pCO0lBRUsscUJBQXFCLG9FQWdCMUI7SUFFSyxvQkFBb0IscUVBc0J6QjtJQUVLLGdCQUFnQixzQkFHckI7SUFFSyxnQkFBZ0Isc0JBR3JCO0lBRUssZ0JBQWdCLHNCQUdyQjtDQUNIIn0=
@@ -1 +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;AAKtD,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,qEAsBzB;IAEK,gBAAgB,sBAGrB;IAEK,gBAAgB,sBAGrB;IAEK,gBAAgB,sBAGrB;CACH"}
1
+ {"version":3,"file":"contract_provider_for_cpp.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/contract_provider_for_cpp.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAKtD,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,CAAS;IAEpB,YACU,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EACxC,QAAQ,CAAC,EAAE,cAAc,EAG1B;IAEM,mBAAmB,oEAaxB;IAEK,gBAAgB,oEAerB;IAGK,YAAY,2EAWjB;IAEK,qBAAqB,oEAgB1B;IAEK,oBAAoB,qEAsBzB;IAEK,gBAAgB,sBAGrB;IAEK,gBAAgB,sBAGrB;IAEK,gBAAgB,sBAGrB;CACH"}
@@ -8,13 +8,12 @@ export class ContractProviderForCpp {
8
8
  contractsDB;
9
9
  globalVariables;
10
10
  log;
11
- constructor(contractsDB, globalVariables){
11
+ constructor(contractsDB, globalVariables, bindings){
12
12
  this.contractsDB = contractsDB;
13
13
  this.globalVariables = globalVariables;
14
- this.log = createLogger('simulator:contract_provider_for_cpp');
15
14
  this.getContractInstance = async (address)=>{
16
15
  this.log.trace(`Contract provider callback: getContractInstance(${address})`);
17
- const aztecAddr = AztecAddress.fromString(address);
16
+ const aztecAddr = AztecAddress.fromStringUnsafe(address);
18
17
  const instance = await this.contractsDB.getContractInstance(aztecAddr, this.globalVariables.timestamp);
19
18
  if (!instance) {
20
19
  this.log.debug(`Contract instance not found: ${address}`);
@@ -40,8 +39,8 @@ export class ContractProviderForCpp {
40
39
  // Construct ContractDeploymentData from plain object.
41
40
  const contractDeploymentData = ContractDeploymentData.fromPlainObject(rawData);
42
41
  // Add contracts to the contracts DB
43
- this.log.trace(`Calling contractsDB.addContracts`);
44
- await this.contractsDB.addContracts(contractDeploymentData);
42
+ this.log.trace(`Calling contractsDB.addContractsFromLogs`);
43
+ this.contractsDB.addContractsFromLogs(contractDeploymentData);
45
44
  };
46
45
  this.getBytecodeCommitment = async (classId)=>{
47
46
  this.log.trace(`Contract provider callback: getBytecodeCommitment(${classId})`);
@@ -59,7 +58,7 @@ export class ContractProviderForCpp {
59
58
  this.getDebugFunctionName = async (address, selector)=>{
60
59
  this.log.trace(`Contract provider callback: getDebugFunctionName(${address}, ${selector})`);
61
60
  // Parse address and selector strings
62
- const aztecAddr = AztecAddress.fromString(address);
61
+ const aztecAddr = AztecAddress.fromStringUnsafe(address);
63
62
  const selectorFr = Fr.fromString(selector);
64
63
  const functionSelector = FunctionSelector.fromFieldOrUndefined(selectorFr);
65
64
  if (!functionSelector) {
@@ -86,9 +85,11 @@ export class ContractProviderForCpp {
86
85
  this.log.trace(`Contract provider callback: revertCheckpoint`);
87
86
  return Promise.resolve(this.contractsDB.revertCheckpoint());
88
87
  };
88
+ this.log = createLogger('simulator:contract_provider_for_cpp', bindings);
89
89
  }
90
90
  getContractInstance;
91
91
  getContractClass;
92
+ // eslint-disable-next-line require-await
92
93
  addContracts;
93
94
  getBytecodeCommitment;
94
95
  getDebugFunctionName;
@@ -1,4 +1,4 @@
1
- import { type Logger } from '@aztec/foundation/log';
1
+ import { type Logger, type LoggerBindings } from '@aztec/foundation/log';
2
2
  import { type PublicSimulatorConfig, PublicTxResult } from '@aztec/stdlib/avm';
3
3
  import type { MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
4
4
  import type { GlobalVariables, Tx } from '@aztec/stdlib/tx';
@@ -18,7 +18,7 @@ export declare class CppPublicTxSimulator extends PublicTxSimulator implements P
18
18
  private cancellationToken?;
19
19
  /** Current simulation promise, used to wait for completion after cancellation. */
20
20
  private simulationPromise?;
21
- constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config?: Partial<PublicSimulatorConfig>);
21
+ constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config?: Partial<PublicSimulatorConfig>, bindings?: LoggerBindings);
22
22
  /**
23
23
  * Simulate a transaction's public portion using the C++ avvm simulator.
24
24
  *
@@ -40,7 +40,7 @@ export declare class CppPublicTxSimulator extends PublicTxSimulator implements P
40
40
  }
41
41
  export declare class MeasuredCppPublicTxSimulator extends CppPublicTxSimulator implements MeasuredPublicTxSimulatorInterface {
42
42
  protected readonly metrics: ExecutorMetricsInterface;
43
- constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, metrics: ExecutorMetricsInterface, config?: Partial<PublicSimulatorConfig>);
43
+ constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, metrics: ExecutorMetricsInterface, config?: Partial<PublicSimulatorConfig>, bindings?: LoggerBindings);
44
44
  simulate(tx: Tx, txLabel?: string): Promise<PublicTxResult>;
45
45
  }
46
46
  /**
@@ -48,6 +48,6 @@ export declare class MeasuredCppPublicTxSimulator extends CppPublicTxSimulator i
48
48
  */
49
49
  export declare class TelemetryCppPublicTxSimulator extends MeasuredCppPublicTxSimulator {
50
50
  readonly tracer: Tracer;
51
- constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, telemetryClient?: TelemetryClient, config?: Partial<PublicSimulatorConfig>);
51
+ constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, telemetryClient?: TelemetryClient, config?: Partial<PublicSimulatorConfig>, bindings?: LoggerBindings);
52
52
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BwX3B1YmxpY190eF9zaW11bGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3R4X3NpbXVsYXRvci9jcHBfcHVibGljX3R4X3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQTBCLE1BQU0sdUJBQXVCLENBQUM7QUFJNUUsT0FBTyxFQUdMLEtBQUsscUJBQXFCLEVBQzFCLGNBQWMsRUFFZixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVELE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxLQUFLLE1BQU0sRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUtoRyxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQ1Ysa0NBQWtDLEVBQ2xDLDBCQUEwQixFQUMzQixNQUFNLG9DQUFvQyxDQUFDO0FBRTVDOzs7O0dBSUc7QUFDSCxxQkFBYSxvQkFBcUIsU0FBUSxpQkFBa0IsWUFBVywwQkFBMEI7SUFDL0YsVUFBbUIsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUMvQiwyREFBMkQ7SUFDM0QsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQW9CO0lBQzlDLGtGQUFrRjtJQUNsRixPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBa0I7SUFFNUMsWUFDRSxVQUFVLEVBQUUseUJBQXlCLEVBQ3JDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsZUFBZSxFQUFFLGVBQWUsRUFDaEMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBSXhDO0lBRUQ7Ozs7O09BS0c7SUFDbUIsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQStFOUQ7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDVSxNQUFNLENBQUMsYUFBYSxHQUFFLE1BQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBZTlEO0NBQ0Y7QUFFRCxxQkFBYSw0QkFBNkIsU0FBUSxvQkFBcUIsWUFBVyxrQ0FBa0M7SUFLaEgsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsd0JBQXdCO0lBSnRELFlBQ0UsVUFBVSxFQUFFLHlCQUF5QixFQUNyQyxXQUFXLEVBQUUsaUJBQWlCLEVBQzlCLGVBQWUsRUFBRSxlQUFlLEVBQ2IsT0FBTyxFQUFFLHdCQUF3QixFQUNwRCxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMscUJBQXFCLENBQUMsRUFHeEM7SUFFcUIsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFFLE1BQXNCLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQVMvRjtDQUNGO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSw2QkFBOEIsU0FBUSw0QkFBNEI7SUFFN0UsU0FBZ0IsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUUvQixZQUNFLFVBQVUsRUFBRSx5QkFBeUIsRUFDckMsV0FBVyxFQUFFLGlCQUFpQixFQUM5QixlQUFlLEVBQUUsZUFBZSxFQUNoQyxlQUFlLEdBQUUsZUFBc0MsRUFDdkQsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBS3hDO0NBQ0YifQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BwX3B1YmxpY190eF9zaW11bGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3R4X3NpbXVsYXRvci9jcHBfcHVibGljX3R4X3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQUUsS0FBSyxjQUFjLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFJdkYsT0FBTyxFQUdMLEtBQUsscUJBQXFCLEVBQzFCLGNBQWMsRUFFZixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVELE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxLQUFLLE1BQU0sRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUtoRyxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQ1Ysa0NBQWtDLEVBQ2xDLDBCQUEwQixFQUMzQixNQUFNLG9DQUFvQyxDQUFDO0FBRTVDOzs7O0dBSUc7QUFDSCxxQkFBYSxvQkFBcUIsU0FBUSxpQkFBa0IsWUFBVywwQkFBMEI7SUFDL0YsVUFBbUIsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUMvQiwyREFBMkQ7SUFDM0QsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQW9CO0lBQzlDLGtGQUFrRjtJQUNsRixPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBa0I7SUFFNUMsWUFDRSxVQUFVLEVBQUUseUJBQXlCLEVBQ3JDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsZUFBZSxFQUFFLGVBQWUsRUFDaEMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQ3ZDLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFJMUI7SUFFRDs7Ozs7T0FLRztJQUNtQixRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBOEU5RDtJQUVEOzs7Ozs7Ozs7T0FTRztJQUNVLE1BQU0sQ0FBQyxhQUFhLEdBQUUsTUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FlOUQ7Q0FDRjtBQUVELHFCQUFhLDRCQUE2QixTQUFRLG9CQUFxQixZQUFXLGtDQUFrQztJQUtoSCxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSx3QkFBd0I7SUFKdEQsWUFDRSxVQUFVLEVBQUUseUJBQXlCLEVBQ3JDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsZUFBZSxFQUFFLGVBQWUsRUFDYixPQUFPLEVBQUUsd0JBQXdCLEVBQ3BELE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUN2QyxRQUFRLENBQUMsRUFBRSxjQUFjLEVBRzFCO0lBRXFCLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRSxNQUFzQixHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FTL0Y7Q0FDRjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsNkJBQThCLFNBQVEsNEJBQTRCO0lBRTdFLFNBQWdCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFFL0IsWUFDRSxVQUFVLEVBQUUseUJBQXlCLEVBQ3JDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsZUFBZSxFQUFFLGVBQWUsRUFDaEMsZUFBZSxHQUFFLGVBQXNDLEVBQ3ZELE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUN2QyxRQUFRLENBQUMsRUFBRSxjQUFjLEVBSzFCO0NBQ0YifQ==
@@ -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,EAA0B,MAAM,uBAAuB,CAAC;AAI5E,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;IAC/B,2DAA2D;IAC3D,OAAO,CAAC,iBAAiB,CAAC,CAAoB;IAC9C,kFAAkF;IAClF,OAAO,CAAC,iBAAiB,CAAC,CAAkB;IAE5C,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,CA+E9D;IAED;;;;;;;;;OASG;IACU,MAAM,CAAC,aAAa,GAAE,MAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAe9D;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"}
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,EAAE,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAIvF,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;IAC/B,2DAA2D;IAC3D,OAAO,CAAC,iBAAiB,CAAC,CAAoB;IAC9C,kFAAkF;IAClF,OAAO,CAAC,iBAAiB,CAAC,CAAkB;IAE5C,YACE,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,CAAC,EAAE,cAAc,EAI1B;IAED;;;;;OAKG;IACmB,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CA8E9D;IAED;;;;;;;;;OASG;IACU,MAAM,CAAC,aAAa,GAAE,MAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAe9D;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,EACvC,QAAQ,CAAC,EAAE,cAAc,EAG1B;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,EACvC,QAAQ,CAAC,EAAE,cAAc,EAK1B;CACF"}
@@ -1,4 +1,4 @@
1
- import { createLogger, logLevel } from '@aztec/foundation/log';
1
+ import { createLogger } from '@aztec/foundation/log';
2
2
  import { sleep } from '@aztec/foundation/sleep';
3
3
  import { avmSimulate, cancelSimulation, createCancellationToken } from '@aztec/native';
4
4
  import { ProtocolContractsList } from '@aztec/protocol-contracts';
@@ -18,9 +18,9 @@ import { PublicTxSimulator } from './public_tx_simulator.js';
18
18
  log;
19
19
  /** Current cancellation token for in-flight simulation. */ cancellationToken;
20
20
  /** Current simulation promise, used to wait for completion after cancellation. */ simulationPromise;
21
- constructor(merkleTree, contractsDB, globalVariables, config){
22
- super(merkleTree, contractsDB, globalVariables, config);
23
- this.log = createLogger(`simulator:cpp_public_tx_simulator`);
21
+ constructor(merkleTree, contractsDB, globalVariables, config, bindings){
22
+ super(merkleTree, contractsDB, globalVariables, config, undefined, bindings);
23
+ this.log = createLogger(`simulator:cpp_public_tx_simulator`, bindings);
24
24
  }
25
25
  /**
26
26
  * Simulate a transaction's public portion using the C++ avvm simulator.
@@ -43,7 +43,7 @@ import { PublicTxSimulator } from './public_tx_simulator.js';
43
43
  const protocolContracts = ProtocolContractsList;
44
44
  const fastSimInputs = new AvmFastSimulationInputs(wsRevision, this.config, txHint, this.globalVariables, protocolContracts);
45
45
  // Create contract provider for callbacks to TypeScript PublicContractsDB from C++
46
- const contractProvider = new ContractProviderForCpp(this.contractsDB, this.globalVariables);
46
+ const contractProvider = new ContractProviderForCpp(this.contractsDB, this.globalVariables, this.bindings);
47
47
  // Serialize to msgpack and call the C++ simulator
48
48
  this.log.trace(`Serializing fast simulation inputs to msgpack...`);
49
49
  const inputBuffer = fastSimInputs.serializeWithMessagePack();
@@ -51,8 +51,7 @@ import { PublicTxSimulator } from './public_tx_simulator.js';
51
51
  this.cancellationToken = createCancellationToken();
52
52
  // Store the promise so cancel() can wait for it
53
53
  this.log.debug(`Calling C++ simulator for tx ${txHash}`);
54
- this.simulationPromise = avmSimulate(inputBuffer, contractProvider, wsCppHandle, logLevel, // TODO: re-enable logging
55
- undefined, this.cancellationToken);
54
+ this.simulationPromise = avmSimulate(inputBuffer, contractProvider, wsCppHandle, this.log.level, undefined, this.cancellationToken);
56
55
  let resultBuffer;
57
56
  try {
58
57
  resultBuffer = await this.simulationPromise;
@@ -106,8 +105,8 @@ import { PublicTxSimulator } from './public_tx_simulator.js';
106
105
  }
107
106
  export class MeasuredCppPublicTxSimulator extends CppPublicTxSimulator {
108
107
  metrics;
109
- constructor(merkleTree, contractsDB, globalVariables, metrics, config){
110
- super(merkleTree, contractsDB, globalVariables, config), this.metrics = metrics;
108
+ constructor(merkleTree, contractsDB, globalVariables, metrics, config, bindings){
109
+ super(merkleTree, contractsDB, globalVariables, config, bindings), this.metrics = metrics;
111
110
  }
112
111
  async simulate(tx, txLabel = 'unlabeledTx') {
113
112
  this.metrics.startRecordingTxSimulation(txLabel);
@@ -124,9 +123,9 @@ export class MeasuredCppPublicTxSimulator extends CppPublicTxSimulator {
124
123
  * A C++ public tx simulator that tracks runtime/production metrics with telemetry.
125
124
  */ export class TelemetryCppPublicTxSimulator extends MeasuredCppPublicTxSimulator {
126
125
  /* tracer needed by trackSpans */ tracer;
127
- constructor(merkleTree, contractsDB, globalVariables, telemetryClient = getTelemetryClient(), config){
126
+ constructor(merkleTree, contractsDB, globalVariables, telemetryClient = getTelemetryClient(), config, bindings){
128
127
  const metrics = new ExecutorMetrics(telemetryClient, 'CppPublicTxSimulator');
129
- super(merkleTree, contractsDB, globalVariables, metrics, config);
128
+ super(merkleTree, contractsDB, globalVariables, metrics, config, bindings);
130
129
  this.tracer = metrics.tracer;
131
130
  }
132
131
  }
@@ -1,4 +1,4 @@
1
- import { type Logger } from '@aztec/foundation/log';
1
+ import { type Logger, type LoggerBindings } from '@aztec/foundation/log';
2
2
  import { type PublicSimulatorConfig, PublicTxResult } from '@aztec/stdlib/avm';
3
3
  import type { MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
4
4
  import type { GlobalVariables, Tx } from '@aztec/stdlib/tx';
@@ -14,7 +14,7 @@ import type { MeasuredPublicTxSimulatorInterface, PublicTxSimulatorInterface } f
14
14
  */
15
15
  export declare class CppPublicTxSimulatorHintedDbs extends PublicTxSimulator implements PublicTxSimulatorInterface {
16
16
  protected log: Logger;
17
- constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config?: Partial<PublicSimulatorConfig>);
17
+ constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config?: Partial<PublicSimulatorConfig>, bindings?: LoggerBindings);
18
18
  /**
19
19
  * Simulate a transaction's public portion using the C++ vm2 simulator with hinted DBs.
20
20
  *
@@ -36,7 +36,7 @@ export declare class CppPublicTxSimulatorHintedDbs extends PublicTxSimulator imp
36
36
  */
37
37
  export declare class MeasuredCppPublicTxSimulatorHintedDbs extends CppPublicTxSimulatorHintedDbs implements MeasuredPublicTxSimulatorInterface {
38
38
  protected readonly metrics: ExecutorMetricsInterface;
39
- constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, metrics: ExecutorMetricsInterface, config?: Partial<PublicSimulatorConfig>);
39
+ constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, metrics: ExecutorMetricsInterface, config?: Partial<PublicSimulatorConfig>, bindings?: LoggerBindings);
40
40
  simulate(tx: Tx, txLabel?: string): Promise<PublicTxResult>;
41
41
  }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BwX3B1YmxpY190eF9zaW11bGF0b3Jfd2l0aF9oaW50ZWRfZGJzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL3B1YmxpY190eF9zaW11bGF0b3IvY3BwX3B1YmxpY190eF9zaW11bGF0b3Jfd2l0aF9oaW50ZWRfZGJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBMEIsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RSxPQUFPLEVBRUwsS0FBSyxxQkFBcUIsRUFDMUIsY0FBYyxFQUVmLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJNUQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUNWLGtDQUFrQyxFQUNsQywwQkFBMEIsRUFDM0IsTUFBTSxvQ0FBb0MsQ0FBQztBQUU1Qzs7Ozs7R0FLRztBQUNILHFCQUFhLDZCQUE4QixTQUFRLGlCQUFrQixZQUFXLDBCQUEwQjtJQUN4RyxVQUFtQixHQUFHLEVBQUUsTUFBTSxDQUFDO0lBRS9CLFlBQ0UsVUFBVSxFQUFFLHlCQUF5QixFQUNyQyxXQUFXLEVBQUUsaUJBQWlCLEVBQzlCLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUl4QztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNtQixRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBOEM5RDtDQUNGO0FBRUQ7Ozs7OztHQU1HO0FBQ0gscUJBQWEscUNBQ1gsU0FBUSw2QkFDUixZQUFXLGtDQUFrQztJQU0zQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSx3QkFBd0I7SUFKdEQsWUFDRSxVQUFVLEVBQUUseUJBQXlCLEVBQ3JDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsZUFBZSxFQUFFLGVBQWUsRUFDYixPQUFPLEVBQUUsd0JBQXdCLEVBQ3BELE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUd4QztJQUVxQixRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUUsTUFBc0IsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBUy9GO0NBQ0YifQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BwX3B1YmxpY190eF9zaW11bGF0b3Jfd2l0aF9oaW50ZWRfZGJzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL3B1YmxpY190eF9zaW11bGF0b3IvY3BwX3B1YmxpY190eF9zaW11bGF0b3Jfd2l0aF9oaW50ZWRfZGJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBRSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RixPQUFPLEVBRUwsS0FBSyxxQkFBcUIsRUFDMUIsY0FBYyxFQUVmLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJNUQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUNWLGtDQUFrQyxFQUNsQywwQkFBMEIsRUFDM0IsTUFBTSxvQ0FBb0MsQ0FBQztBQUU1Qzs7Ozs7R0FLRztBQUNILHFCQUFhLDZCQUE4QixTQUFRLGlCQUFrQixZQUFXLDBCQUEwQjtJQUN4RyxVQUFtQixHQUFHLEVBQUUsTUFBTSxDQUFDO0lBRS9CLFlBQ0UsVUFBVSxFQUFFLHlCQUF5QixFQUNyQyxXQUFXLEVBQUUsaUJBQWlCLEVBQzlCLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUN2QyxRQUFRLENBQUMsRUFBRSxjQUFjLEVBSTFCO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ21CLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0E4QzlEO0NBQ0Y7QUFFRDs7Ozs7O0dBTUc7QUFDSCxxQkFBYSxxQ0FDWCxTQUFRLDZCQUNSLFlBQVcsa0NBQWtDO0lBTTNDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLHdCQUF3QjtJQUp0RCxZQUNFLFVBQVUsRUFBRSx5QkFBeUIsRUFDckMsV0FBVyxFQUFFLGlCQUFpQixFQUM5QixlQUFlLEVBQUUsZUFBZSxFQUNiLE9BQU8sRUFBRSx3QkFBd0IsRUFDcEQsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQ3ZDLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFHMUI7SUFFcUIsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFFLE1BQXNCLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQVMvRjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"cpp_public_tx_simulator_with_hinted_dbs.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAA0B,MAAM,uBAAuB,CAAC;AAE5E,OAAO,EAEL,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;AAI5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,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;IAE/B,YACE,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAIxC;IAED;;;;;;;;;OASG;IACmB,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CA8C9D;CACF;AAED;;;;;;GAMG;AACH,qBAAa,qCACX,SAAQ,6BACR,YAAW,kCAAkC;IAM3C,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"}
1
+ {"version":3,"file":"cpp_public_tx_simulator_with_hinted_dbs.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAEvF,OAAO,EAEL,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;AAI5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,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;IAE/B,YACE,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACvC,QAAQ,CAAC,EAAE,cAAc,EAI1B;IAED;;;;;;;;;OASG;IACmB,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CA8C9D;CACF;AAED;;;;;;GAMG;AACH,qBAAa,qCACX,SAAQ,6BACR,YAAW,kCAAkC;IAM3C,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,EACvC,QAAQ,CAAC,EAAE,cAAc,EAG1B;IAEqB,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,CAS/F;CACF"}
@@ -1,4 +1,4 @@
1
- import { createLogger, logLevel } from '@aztec/foundation/log';
1
+ import { createLogger } from '@aztec/foundation/log';
2
2
  import { avmSimulateWithHintedDbs } from '@aztec/native';
3
3
  import { AvmCircuitInputs, PublicTxResult, deserializeFromMessagePack } from '@aztec/stdlib/avm';
4
4
  import { SimulationError } from '@aztec/stdlib/errors';
@@ -11,9 +11,9 @@ import { PublicTxSimulator } from './public_tx_simulator.js';
11
11
  * to C++ to run hinted simulation.
12
12
  */ export class CppPublicTxSimulatorHintedDbs extends PublicTxSimulator {
13
13
  log;
14
- constructor(merkleTree, contractsDB, globalVariables, config){
15
- super(merkleTree, contractsDB, globalVariables, config);
16
- this.log = createLogger(`simulator:cpp_public_tx_simulator_hinted_dbs`);
14
+ constructor(merkleTree, contractsDB, globalVariables, config, bindings){
15
+ super(merkleTree, contractsDB, globalVariables, config, undefined, bindings);
16
+ this.log = createLogger(`simulator:cpp_public_tx_simulator_hinted_dbs`, bindings);
17
17
  }
18
18
  /**
19
19
  * Simulate a transaction's public portion using the C++ vm2 simulator with hinted DBs.
@@ -43,7 +43,7 @@ import { PublicTxSimulator } from './public_tx_simulator.js';
43
43
  const inputBuffer = avmCircuitInputs.serializeWithMessagePack();
44
44
  let resultBuffer;
45
45
  try {
46
- resultBuffer = await avmSimulateWithHintedDbs(inputBuffer, logLevel);
46
+ resultBuffer = await avmSimulateWithHintedDbs(inputBuffer, this.log.level);
47
47
  } catch (error) {
48
48
  throw new SimulationError(`C++ hinted simulation failed: ${error.message}`, []);
49
49
  }
@@ -70,8 +70,8 @@ import { PublicTxSimulator } from './public_tx_simulator.js';
70
70
  * to TS for tracking.
71
71
  */ export class MeasuredCppPublicTxSimulatorHintedDbs extends CppPublicTxSimulatorHintedDbs {
72
72
  metrics;
73
- constructor(merkleTree, contractsDB, globalVariables, metrics, config){
74
- super(merkleTree, contractsDB, globalVariables, config), this.metrics = metrics;
73
+ constructor(merkleTree, contractsDB, globalVariables, metrics, config, bindings){
74
+ super(merkleTree, contractsDB, globalVariables, config, bindings), this.metrics = metrics;
75
75
  }
76
76
  async simulate(tx, txLabel = 'unlabeledTx') {
77
77
  this.metrics.startRecordingTxSimulation(txLabel);
@@ -1,4 +1,4 @@
1
- import { type Logger } from '@aztec/foundation/log';
1
+ import { type Logger, type LoggerBindings } from '@aztec/foundation/log';
2
2
  import { type PublicSimulatorConfig, PublicTxResult } from '@aztec/stdlib/avm';
3
3
  import type { MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
4
4
  import type { GlobalVariables, Tx } from '@aztec/stdlib/tx';
@@ -13,7 +13,7 @@ import type { MeasuredPublicTxSimulatorInterface, PublicTxSimulatorInterface } f
13
13
  */
14
14
  export declare class CppVsTsPublicTxSimulator extends PublicTxSimulator implements PublicTxSimulatorInterface {
15
15
  protected log: Logger;
16
- constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config?: Partial<PublicSimulatorConfig>);
16
+ constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config?: Partial<PublicSimulatorConfig>, bindings?: LoggerBindings);
17
17
  /**
18
18
  * Simulate a transaction's public portion using the C++ avvm simulator.
19
19
  *
@@ -24,7 +24,7 @@ export declare class CppVsTsPublicTxSimulator extends PublicTxSimulator implemen
24
24
  }
25
25
  export declare class MeasuredCppVsTsPublicTxSimulator extends CppVsTsPublicTxSimulator implements MeasuredPublicTxSimulatorInterface {
26
26
  protected readonly metrics: ExecutorMetricsInterface;
27
- constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, metrics: ExecutorMetricsInterface, config?: Partial<PublicSimulatorConfig>);
27
+ constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, metrics: ExecutorMetricsInterface, config?: Partial<PublicSimulatorConfig>, bindings?: LoggerBindings);
28
28
  simulate(tx: Tx, txLabel?: string): Promise<PublicTxResult>;
29
29
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BwX3ZzX3RzX3B1YmxpY190eF9zaW11bGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3R4X3NpbXVsYXRvci9jcHBfdnNfdHNfcHVibGljX3R4X3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQTBCLE1BQU0sdUJBQXVCLENBQUM7QUFHNUUsT0FBTyxFQUdMLEtBQUsscUJBQXFCLEVBQzFCLGNBQWMsRUFFZixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFrQixFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUs1RSxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQ1Ysa0NBQWtDLEVBQ2xDLDBCQUEwQixFQUMzQixNQUFNLG9DQUFvQyxDQUFDO0FBRTVDOzs7O0dBSUc7QUFDSCxxQkFBYSx3QkFBeUIsU0FBUSxpQkFBa0IsWUFBVywwQkFBMEI7SUFDbkcsVUFBbUIsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUUvQixZQUNFLFVBQVUsRUFBRSx5QkFBeUIsRUFDckMsV0FBVyxFQUFFLGlCQUFpQixFQUM5QixlQUFlLEVBQUUsZUFBZSxFQUNoQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMscUJBQXFCLENBQUMsRUFJeEM7SUFFRDs7Ozs7T0FLRztJQUNtQixRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBK0o5RDtDQUNGO0FBRUQscUJBQWEsZ0NBQ1gsU0FBUSx3QkFDUixZQUFXLGtDQUFrQztJQU0zQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSx3QkFBd0I7SUFKdEQsWUFDRSxVQUFVLEVBQUUseUJBQXlCLEVBQ3JDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsZUFBZSxFQUFFLGVBQWUsRUFDYixPQUFPLEVBQUUsd0JBQXdCLEVBQ3BELE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUd4QztJQUVxQixRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEdBQUUsTUFBc0IsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBUy9GO0NBQ0YifQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BwX3ZzX3RzX3B1YmxpY190eF9zaW11bGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3R4X3NpbXVsYXRvci9jcHBfdnNfdHNfcHVibGljX3R4X3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQUUsS0FBSyxjQUFjLEVBQTBCLE1BQU0sdUJBQXVCLENBQUM7QUFHakcsT0FBTyxFQUdMLEtBQUsscUJBQXFCLEVBQzFCLGNBQWMsRUFFZixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFrQixFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUs1RSxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQ1Ysa0NBQWtDLEVBQ2xDLDBCQUEwQixFQUMzQixNQUFNLG9DQUFvQyxDQUFDO0FBRTVDOzs7O0dBSUc7QUFDSCxxQkFBYSx3QkFBeUIsU0FBUSxpQkFBa0IsWUFBVywwQkFBMEI7SUFDbkcsVUFBbUIsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUUvQixZQUNFLFVBQVUsRUFBRSx5QkFBeUIsRUFDckMsV0FBVyxFQUFFLGlCQUFpQixFQUM5QixlQUFlLEVBQUUsZUFBZSxFQUNoQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMscUJBQXFCLENBQUMsRUFDdkMsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQUkxQjtJQUVEOzs7OztPQUtHO0lBQ21CLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0ErSjlEO0NBQ0Y7QUFFRCxxQkFBYSxnQ0FDWCxTQUFRLHdCQUNSLFlBQVcsa0NBQWtDO0lBTTNDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLHdCQUF3QjtJQUp0RCxZQUNFLFVBQVUsRUFBRSx5QkFBeUIsRUFDckMsV0FBVyxFQUFFLGlCQUFpQixFQUM5QixlQUFlLEVBQUUsZUFBZSxFQUNiLE9BQU8sRUFBRSx3QkFBd0IsRUFDcEQsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQ3ZDLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFHMUI7SUFFcUIsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUFFLE1BQXNCLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQVMvRjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"cpp_vs_ts_public_tx_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/cpp_vs_ts_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,EAAkB,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAK5E,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,wBAAyB,SAAQ,iBAAkB,YAAW,0BAA0B;IACnG,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,CA+J9D;CACF;AAED,qBAAa,gCACX,SAAQ,wBACR,YAAW,kCAAkC;IAM3C,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"}
1
+ {"version":3,"file":"cpp_vs_ts_public_tx_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAA0B,MAAM,uBAAuB,CAAC;AAGjG,OAAO,EAGL,KAAK,qBAAqB,EAC1B,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAkB,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAK5E,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,wBAAyB,SAAQ,iBAAkB,YAAW,0BAA0B;IACnG,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,EACvC,QAAQ,CAAC,EAAE,cAAc,EAI1B;IAED;;;;;OAKG;IACmB,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CA+J9D;CACF;AAED,qBAAa,gCACX,SAAQ,wBACR,YAAW,kCAAkC;IAM3C,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,EACvC,QAAQ,CAAC,EAAE,cAAc,EAG1B;IAEqB,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,CAS/F;CACF"}
@@ -13,9 +13,9 @@ import { PublicTxSimulator } from './public_tx_simulator.js';
13
13
  * For contract DB accesses, it makes callbacks through NAPI back to the TS PublicContractsDB cache.
14
14
  */ export class CppVsTsPublicTxSimulator extends PublicTxSimulator {
15
15
  log;
16
- constructor(merkleTree, contractsDB, globalVariables, config){
17
- super(merkleTree, contractsDB, globalVariables, config);
18
- this.log = createLogger(`simulator:cpp_vs_public_tx_simulator`);
16
+ constructor(merkleTree, contractsDB, globalVariables, config, bindings){
17
+ super(merkleTree, contractsDB, globalVariables, config, undefined, bindings);
18
+ this.log = createLogger(`simulator:cpp_vs_public_tx_simulator`, bindings);
19
19
  }
20
20
  /**
21
21
  * Simulate a transaction's public portion using the C++ avvm simulator.
@@ -60,7 +60,7 @@ import { PublicTxSimulator } from './public_tx_simulator.js';
60
60
  const protocolContracts = ProtocolContractsList;
61
61
  const fastSimInputs = new AvmFastSimulationInputs(wsRevision, this.config, txHint, this.globalVariables, protocolContracts);
62
62
  // Create contract provider for callbacks to TypeScript PublicContractsDB from C++
63
- const contractProvider = new ContractProviderForCpp(this.contractsDB, this.globalVariables);
63
+ const contractProvider = new ContractProviderForCpp(this.contractsDB, this.globalVariables, this.bindings);
64
64
  // Serialize to msgpack and call the C++ simulator
65
65
  this.log.debug(`Serializing fast simulation inputs to msgpack...`);
66
66
  const inputBuffer = fastSimInputs.serializeWithMessagePack();
@@ -155,8 +155,8 @@ import { PublicTxSimulator } from './public_tx_simulator.js';
155
155
  }
156
156
  export class MeasuredCppVsTsPublicTxSimulator extends CppVsTsPublicTxSimulator {
157
157
  metrics;
158
- constructor(merkleTree, contractsDB, globalVariables, metrics, config){
159
- super(merkleTree, contractsDB, globalVariables, config), this.metrics = metrics;
158
+ constructor(merkleTree, contractsDB, globalVariables, metrics, config, bindings){
159
+ super(merkleTree, contractsDB, globalVariables, config, bindings), this.metrics = metrics;
160
160
  }
161
161
  async simulate(tx, txLabel = 'unlabeledTx') {
162
162
  this.metrics.startRecordingTxSimulation(txLabel);
@@ -1,3 +1,4 @@
1
+ import type { LoggerBindings } from '@aztec/foundation/log';
1
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';
@@ -9,7 +10,7 @@ import { CppPublicTxSimulator } from './cpp_public_tx_simulator.js';
9
10
  */
10
11
  export declare class DumpingCppPublicTxSimulator extends CppPublicTxSimulator {
11
12
  private readonly outputDir;
12
- constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config: Partial<PublicSimulatorConfig>, outputDir: string);
13
+ constructor(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, config: Partial<PublicSimulatorConfig>, outputDir: string, bindings?: LoggerBindings);
13
14
  simulate(tx: Tx): Promise<PublicTxResult>;
14
15
  /**
15
16
  * Dumps AVM circuit inputs to disk.
@@ -19,4 +20,4 @@ export declare class DumpingCppPublicTxSimulator extends CppPublicTxSimulator {
19
20
  */
20
21
  private dumpAvmCircuitInputs;
21
22
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVtcGluZ19jcHBfcHVibGljX3R4X3NpbXVsYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfdHhfc2ltdWxhdG9yL2R1bXBpbmdfY3BwX3B1YmxpY190eF9zaW11bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLEtBQUsscUJBQXFCLEVBQzFCLGNBQWMsRUFFZixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBTXBFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFcEU7OztHQUdHO0FBQ0gscUJBQWEsMkJBQTRCLFNBQVEsb0JBQW9CO0lBQ25FLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFTO0lBRW5DLFlBQ0UsVUFBVSxFQUFFLHlCQUF5QixFQUNyQyxXQUFXLEVBQUUsaUJBQWlCLEVBQzlCLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLE1BQU0sRUFBRSxPQUFPLENBQUMscUJBQXFCLENBQUMsRUFDdEMsU0FBUyxFQUFFLE1BQU0sRUFNbEI7SUFFcUIsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQVE5RDtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLG9CQUFvQjtDQTBCN0IifQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVtcGluZ19jcHBfcHVibGljX3R4X3NpbXVsYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfdHhfc2ltdWxhdG9yL2R1bXBpbmdfY3BwX3B1YmxpY190eF9zaW11bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUlMLEtBQUsscUJBQXFCLEVBQzFCLGNBQWMsRUFFZixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBTXBFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFcEU7OztHQUdHO0FBQ0gscUJBQWEsMkJBQTRCLFNBQVEsb0JBQW9CO0lBQ25FLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFTO0lBRW5DLFlBQ0UsVUFBVSxFQUFFLHlCQUF5QixFQUNyQyxXQUFXLEVBQUUsaUJBQWlCLEVBQzlCLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLE1BQU0sRUFBRSxPQUFPLENBQUMscUJBQXFCLENBQUMsRUFDdEMsU0FBUyxFQUFFLE1BQU0sRUFDakIsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQU0xQjtJQUVxQixRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBUTlEO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsb0JBQW9CO0NBMEI3QiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"dumping_cpp_public_tx_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,qBAAqB,EAC1B,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,EAAE,EAAU,MAAM,kBAAkB,CAAC;AAMpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,oBAAoB;IACnE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,YACE,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACtC,SAAS,EAAE,MAAM,EAMlB;IAEqB,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAQ9D;IAED;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;CA0B7B"}
1
+ {"version":3,"file":"dumping_cpp_public_tx_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/dumping_cpp_public_tx_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAIL,KAAK,qBAAqB,EAC1B,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,EAAE,EAAU,MAAM,kBAAkB,CAAC;AAMpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,oBAAoB;IACnE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,YACE,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACtC,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,cAAc,EAM1B;IAEqB,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAQ9D;IAED;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;CA0B7B"}
@@ -8,8 +8,8 @@ import { CppPublicTxSimulator } from './cpp_public_tx_simulator.js';
8
8
  * Used during nightly CI runs to collect circuit inputs for benchmarking.
9
9
  */ export class DumpingCppPublicTxSimulator extends CppPublicTxSimulator {
10
10
  outputDir;
11
- constructor(merkleTree, contractsDB, globalVariables, config, outputDir){
12
- super(merkleTree, contractsDB, globalVariables, config);
11
+ constructor(merkleTree, contractsDB, globalVariables, config, outputDir, bindings){
12
+ super(merkleTree, contractsDB, globalVariables, config, bindings);
13
13
  assert(config.collectHints === true, 'collectHints must be enabled to dump AVM circuit inputs');
14
14
  assert(config.collectPublicInputs === true, 'collectPublicInputs must be enabled to dump AVM circuit inputs');
15
15
  this.outputDir = outputDir;
@@ -1,3 +1,4 @@
1
+ import type { LoggerBindings } from '@aztec/foundation/log';
1
2
  import type { MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
2
3
  import type { GlobalVariables } from '@aztec/stdlib/tx';
3
4
  import type { TelemetryClient } from '@aztec/telemetry-client';
@@ -9,5 +10,5 @@ import { DumpingCppPublicTxSimulator } from './dumping_cpp_public_tx_simulator.j
9
10
  * Uses DumpingCppPublicTxSimulator if DUMP_AVM_INPUTS_TO_DIR env var is set (for CI/testing avm circuit),
10
11
  * otherwise uses TelemetryCppPublicTxSimulator (for production).
11
12
  */
12
- export declare function createPublicTxSimulatorForBlockBuilding(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, telemetryClient: TelemetryClient): DumpingCppPublicTxSimulator | TelemetryCppPublicTxSimulator;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL3B1YmxpY190eF9zaW11bGF0b3IvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVuRjs7OztHQUlHO0FBQ0gsd0JBQWdCLHVDQUF1QyxDQUNyRCxVQUFVLEVBQUUseUJBQXlCLEVBQ3JDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsZUFBZSxFQUFFLGVBQWUsRUFDaEMsZUFBZSxFQUFFLGVBQWUsK0RBc0JqQyJ9
13
+ export declare function createPublicTxSimulatorForBlockBuilding(merkleTree: MerkleTreeWriteOperations, contractsDB: PublicContractsDB, globalVariables: GlobalVariables, telemetryClient: TelemetryClient, bindings?: LoggerBindings, collectDebugLogs?: boolean): DumpingCppPublicTxSimulator | TelemetryCppPublicTxSimulator;
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL3B1YmxpY190eF9zaW11bGF0b3IvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVuRjs7OztHQUlHO0FBQ0gsd0JBQWdCLHVDQUF1QyxDQUNyRCxVQUFVLEVBQUUseUJBQXlCLEVBQ3JDLFdBQVcsRUFBRSxpQkFBaUIsRUFDOUIsZUFBZSxFQUFFLGVBQWUsRUFDaEMsZUFBZSxFQUFFLGVBQWUsRUFDaEMsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQUN6QixnQkFBZ0IsVUFBUSwrREFzQnpCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/factories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAEnF;;;;GAIG;AACH,wBAAgB,uCAAuC,CACrD,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,+DAsBjC"}
1
+ {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/factories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAEnF;;;;GAIG;AACH,wBAAgB,uCAAuC,CACrD,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,QAAQ,CAAC,EAAE,cAAc,EACzB,gBAAgB,UAAQ,+DAsBzB"}
@@ -5,10 +5,10 @@ import { DumpingCppPublicTxSimulator } from './dumping_cpp_public_tx_simulator.j
5
5
  * Creates a public tx simulator for block building.
6
6
  * Uses DumpingCppPublicTxSimulator if DUMP_AVM_INPUTS_TO_DIR env var is set (for CI/testing avm circuit),
7
7
  * otherwise uses TelemetryCppPublicTxSimulator (for production).
8
- */ export function createPublicTxSimulatorForBlockBuilding(merkleTree, contractsDB, globalVariables, telemetryClient) {
8
+ */ export function createPublicTxSimulatorForBlockBuilding(merkleTree, contractsDB, globalVariables, telemetryClient, bindings, collectDebugLogs = false) {
9
9
  const config = PublicSimulatorConfig.from({
10
10
  skipFeeEnforcement: false,
11
- collectDebugLogs: false,
11
+ collectDebugLogs,
12
12
  collectHints: false,
13
13
  collectPublicInputs: false,
14
14
  collectStatistics: false,
@@ -22,7 +22,7 @@ import { DumpingCppPublicTxSimulator } from './dumping_cpp_public_tx_simulator.j
22
22
  collectHints: true,
23
23
  collectPublicInputs: true
24
24
  };
25
- return new DumpingCppPublicTxSimulator(merkleTree, contractsDB, globalVariables, dumpingConfig, dumpDir);
25
+ return new DumpingCppPublicTxSimulator(merkleTree, contractsDB, globalVariables, dumpingConfig, dumpDir, bindings);
26
26
  }
27
- return new TelemetryCppPublicTxSimulator(merkleTree, contractsDB, globalVariables, telemetryClient, config);
27
+ return new TelemetryCppPublicTxSimulator(merkleTree, contractsDB, globalVariables, telemetryClient, config, bindings);
28
28
  }
@@ -1,4 +1,5 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { type LoggerBindings } from '@aztec/foundation/log';
2
3
  import { AvmCircuitPublicInputs, RevertCode } from '@aztec/stdlib/avm';
3
4
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
5
  import { type ContractDeploymentData } from '@aztec/stdlib/contract';
@@ -39,7 +40,7 @@ export declare class PublicTxContext {
39
40
  private revertCode;
40
41
  revertReason: SimulationError | undefined;
41
42
  private constructor();
42
- static create(treesDB: PublicTreesDB, contractsDB: PublicContractsDBInterface, tx: Tx, globalVariables: GlobalVariables, protocolContracts: ProtocolContracts, proverId: Fr): Promise<PublicTxContext>;
43
+ static create(treesDB: PublicTreesDB, contractsDB: PublicContractsDBInterface, tx: Tx, globalVariables: GlobalVariables, protocolContracts: ProtocolContracts, proverId: Fr, bindings?: LoggerBindings): Promise<PublicTxContext>;
43
44
  /**
44
45
  * Signal that the entire transaction execution is done.
45
46
  * All phases have been processed.
@@ -74,8 +75,12 @@ export declare class PublicTxContext {
74
75
  */
75
76
  consumeGas(phase: TxExecutionPhase, gas: Gas): void;
76
77
  /**
77
- * The gasUsed by public and private,
78
- * as if the entire teardown gas limit was consumed.
78
+ * The gasUsed by public and private, as if the entire teardown gas limit was consumed.
79
+ *
80
+ * This is intentional: teardown is used for gas accounting and refunds, so the transaction
81
+ * fee must be deterministic _before_ teardown executes. If fees depended on teardown's actual
82
+ * consumption there would be a circular dependency. Billing the full teardown gas limit
83
+ * (set by the user) makes the fee known in advance and available to the teardown function.
79
84
  */
80
85
  getTotalGasUsed(): Gas;
81
86
  /**
@@ -119,7 +124,7 @@ declare class PhaseStateManager {
119
124
  private readonly txStateManager;
120
125
  private log;
121
126
  private currentlyActiveStateManager;
122
- constructor(txStateManager: PublicPersistableStateManager);
127
+ constructor(txStateManager: PublicPersistableStateManager, bindings?: LoggerBindings);
123
128
  fork(): Promise<void>;
124
129
  getActiveStateManager(): PublicPersistableStateManager;
125
130
  isForked(): boolean;
@@ -127,4 +132,4 @@ declare class PhaseStateManager {
127
132
  discardForkedState(): Promise<void>;
128
133
  }
129
134
  export {};
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3R4X2NvbnRleHQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3R4X3NpbXVsYXRvci9wdWJsaWNfdHhfY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUdMLHNCQUFzQixFQUV0QixVQUFVLEVBQ1gsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQTZCLEtBQUssc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRyxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsR0FBRyxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUdMLDhCQUE4QixFQUkvQixNQUFNLHNCQUFzQixDQUFDO0FBSTlCLE9BQU8sRUFDTCxLQUFLLGVBQWUsRUFDcEIsaUJBQWlCLEVBQ2pCLDZCQUE2QixFQUU3QixLQUFLLEVBQUUsRUFDUCxnQkFBZ0IsRUFDaEIsS0FBSyxNQUFNLEVBQ1osTUFBTSxrQkFBa0IsQ0FBQztBQUsxQixPQUFPLEtBQUssRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR2xGOztHQUVHO0FBQ0gscUJBQWEsZUFBZTthQWVSLE1BQU0sRUFBRSxNQUFNO2FBQ2QsS0FBSyxFQUFFLGlCQUFpQjtJQUN4QyxPQUFPLENBQUMsUUFBUSxDQUFDLGtCQUFrQjtJQUNuQyxPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWU7SUFDaEMsT0FBTyxD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
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3R4X2NvbnRleHQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3R4X3NpbXVsYXRvci9wdWJsaWNfdHhfY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFlLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ3ZGLE9BQU8sRUFHTCxzQkFBc0IsRUFFdEIsVUFBVSxFQUNYLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUE2QixLQUFLLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEcsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFNUQsT0FBTyxFQUFFLEdBQUcsRUFBZSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFHTCw4QkFBOEIsRUFJL0IsTUFBTSxzQkFBc0IsQ0FBQztBQUk5QixPQUFPLEVBQ0wsS0FBSyxlQUFlLEVBQ3BCLGlCQUFpQixFQUNqQiw2QkFBNkIsRUFFN0IsS0FBSyxFQUFFLEVBQ1AsZ0JBQWdCLEVBQ2hCLEtBQUssTUFBTSxFQUNaLE1BQU0sa0JBQWtCLENBQUM7QUFLMUIsT0FBTyxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUdsRjs7R0FFRztBQUNILHFCQUFhLGVBQWU7YUFlUixNQUFNLEVBQUUsTUFBTTthQUNkLEtBQUssRUFBRSxpQkFBaUI7SUFDeEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxr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
@@ -1 +1 @@
1
- {"version":3,"file":"public_tx_context.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/public_tx_context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public_tx_context.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/public_tx_context.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,7 @@ import { getCallRequestsWithCalldataByPhase } from '../utils.js';
44
44
  /* Entire transaction execution is done. */ halted;
45
45
  /* Where did reverts happen (if at all)? */ revertCode;
46
46
  /* What caused a revert (if one occurred)? */ revertReason;
47
- constructor(txHash, state, startTreeSnapshots, globalVariables, protocolContracts, proverId, gasSettings, gasUsedByPrivate, gasAllocatedToPublic, gasAllocatedToPublicTeardown, setupCallRequests, appLogicCallRequests, teardownCallRequests, nonRevertibleContractDeploymentData, revertibleContractDeploymentData, nonRevertibleAccumulatedDataFromPrivate, revertibleAccumulatedDataFromPrivate, feePayer, trace){
47
+ constructor(txHash, state, startTreeSnapshots, globalVariables, protocolContracts, proverId, gasSettings, gasUsedByPrivate, gasAllocatedToPublic, gasAllocatedToPublicTeardown, setupCallRequests, appLogicCallRequests, teardownCallRequests, nonRevertibleContractDeploymentData, revertibleContractDeploymentData, nonRevertibleAccumulatedDataFromPrivate, revertibleAccumulatedDataFromPrivate, feePayer, trace, bindings){
48
48
  this.txHash = txHash;
49
49
  this.state = state;
50
50
  this.startTreeSnapshots = startTreeSnapshots;
@@ -68,22 +68,22 @@ import { getCallRequestsWithCalldataByPhase } from '../utils.js';
68
68
  this.teardownGasUsed = Gas.empty();
69
69
  this.halted = false;
70
70
  this.revertCode = RevertCode.OK;
71
- this.log = createLogger(`simulator:public_tx_context`);
71
+ this.log = createLogger(`simulator:public_tx_context`, bindings);
72
72
  }
73
- static async create(treesDB, contractsDB, tx, globalVariables, protocolContracts, proverId) {
73
+ static async create(treesDB, contractsDB, tx, globalVariables, protocolContracts, proverId, bindings) {
74
74
  const contractDeploymentData = AllContractDeploymentData.fromTx(tx);
75
75
  const nonRevertibleContractDeploymentData = contractDeploymentData.getNonRevertibleContractDeploymentData();
76
76
  const revertibleContractDeploymentData = contractDeploymentData.getRevertibleContractDeploymentData();
77
77
  const nonRevertibleAccumulatedDataFromPrivate = tx.data.forPublic.nonRevertibleAccumulatedData;
78
- const trace = new SideEffectTrace();
78
+ const trace = new SideEffectTrace(0, bindings);
79
79
  const firstNullifier = nonRevertibleAccumulatedDataFromPrivate.nullifiers[0];
80
80
  // Transaction level state manager that will be forked for revertible phases.
81
- const txStateManager = PublicPersistableStateManager.create(treesDB, contractsDB, trace, firstNullifier, globalVariables.timestamp);
81
+ const txStateManager = PublicPersistableStateManager.create(treesDB, contractsDB, trace, firstNullifier, globalVariables.timestamp, bindings);
82
82
  const gasSettings = tx.data.constants.txContext.gasSettings;
83
83
  const gasUsedByPrivate = tx.data.gasUsed;
84
84
  const gasAllocatedToPublic = gasSettings.gasLimits.sub(gasUsedByPrivate);
85
85
  const gasAllocatedToPublicTeardown = gasSettings.teardownGasLimits;
86
- return new PublicTxContext(tx.getTxHash(), new PhaseStateManager(txStateManager), await txStateManager.getTreeSnapshots(), globalVariables, protocolContracts, proverId, gasSettings, gasUsedByPrivate, gasAllocatedToPublic, gasAllocatedToPublicTeardown, getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.SETUP), getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.APP_LOGIC), getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.TEARDOWN), nonRevertibleContractDeploymentData, revertibleContractDeploymentData, tx.data.forPublic.nonRevertibleAccumulatedData, tx.data.forPublic.revertibleAccumulatedData, tx.data.feePayer, trace);
86
+ return new PublicTxContext(tx.getTxHash(), new PhaseStateManager(txStateManager, bindings), await txStateManager.getTreeSnapshots(), globalVariables, protocolContracts, proverId, gasSettings, gasUsedByPrivate, gasAllocatedToPublic, gasAllocatedToPublicTeardown, getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.SETUP), getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.APP_LOGIC), getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.TEARDOWN), nonRevertibleContractDeploymentData, revertibleContractDeploymentData, tx.data.forPublic.nonRevertibleAccumulatedData, tx.data.forPublic.revertibleAccumulatedData, tx.data.feePayer, trace, bindings);
87
87
  }
88
88
  /**
89
89
  * Signal that the entire transaction execution is done.
@@ -106,14 +106,8 @@ import { getCallRequestsWithCalldataByPhase } from '../utils.js';
106
106
  }
107
107
  if (phase === TxExecutionPhase.SETUP) {
108
108
  this.log.warn(`Setup phase reverted! The transaction will be thrown out.`);
109
- } else if (phase === TxExecutionPhase.APP_LOGIC) {
110
- this.revertCode = RevertCode.APP_LOGIC_REVERTED;
111
- } else if (phase === TxExecutionPhase.TEARDOWN) {
112
- if (this.revertCode.equals(RevertCode.APP_LOGIC_REVERTED)) {
113
- this.revertCode = RevertCode.BOTH_REVERTED;
114
- } else {
115
- this.revertCode = RevertCode.TEARDOWN_REVERTED;
116
- }
109
+ } else if (phase === TxExecutionPhase.APP_LOGIC || phase === TxExecutionPhase.TEARDOWN) {
110
+ this.revertCode = RevertCode.REVERTED;
117
111
  }
118
112
  }
119
113
  /**
@@ -168,8 +162,12 @@ import { getCallRequestsWithCalldataByPhase } from '../utils.js';
168
162
  }
169
163
  }
170
164
  /**
171
- * The gasUsed by public and private,
172
- * as if the entire teardown gas limit was consumed.
165
+ * The gasUsed by public and private, as if the entire teardown gas limit was consumed.
166
+ *
167
+ * This is intentional: teardown is used for gas accounting and refunds, so the transaction
168
+ * fee must be deterministic _before_ teardown executes. If fees depended on teardown's actual
169
+ * consumption there would be a circular dependency. Billing the full teardown gas limit
170
+ * (set by the user) makes the fee known in advance and available to the teardown function.
173
171
  */ getTotalGasUsed() {
174
172
  return this.gasUsedByPrivate.add(this.gasUsedByPublic);
175
173
  }
@@ -268,9 +266,9 @@ import { getCallRequestsWithCalldataByPhase } from '../utils.js';
268
266
  txStateManager;
269
267
  log;
270
268
  currentlyActiveStateManager;
271
- constructor(txStateManager){
269
+ constructor(txStateManager, bindings){
272
270
  this.txStateManager = txStateManager;
273
- this.log = createLogger(`simulator:public_phase_state_manager`);
271
+ this.log = createLogger(`simulator:public_phase_state_manager`, bindings);
274
272
  }
275
273
  async fork() {
276
274
  assert(!this.currentlyActiveStateManager, 'Cannot fork when already forked');