@aztec/simulator 0.74.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2

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 (304) hide show
  1. package/dest/acvm/acvm.js +18 -21
  2. package/dest/acvm/acvm_types.js +3 -2
  3. package/dest/acvm/deserialize.js +9 -13
  4. package/dest/acvm/index.js +0 -1
  5. package/dest/acvm/oracle/index.js +0 -1
  6. package/dest/acvm/oracle/oracle.js +42 -23
  7. package/dest/acvm/oracle/typed_oracle.js +36 -38
  8. package/dest/acvm/serialize.js +7 -14
  9. package/dest/avm/avm_context.js +24 -27
  10. package/dest/avm/avm_contract_call_result.js +12 -7
  11. package/dest/avm/avm_execution_environment.js +10 -7
  12. package/dest/avm/avm_gas.js +93 -56
  13. package/dest/avm/avm_machine_state.js +60 -61
  14. package/dest/avm/avm_memory_types.js +166 -255
  15. package/dest/avm/avm_simulator.js +68 -47
  16. package/dest/avm/avm_tree.js +282 -276
  17. package/dest/avm/bytecode_utils.js +8 -6
  18. package/dest/avm/errors.js +46 -63
  19. package/dest/avm/fixtures/avm_simulation_tester.js +18 -17
  20. package/dest/avm/fixtures/base_avm_simulation_tester.js +21 -16
  21. package/dest/avm/fixtures/index.js +27 -26
  22. package/dest/avm/fixtures/simple_contract_data_source.js +9 -13
  23. package/dest/avm/index.js +0 -1
  24. package/dest/avm/journal/index.js +0 -1
  25. package/dest/avm/journal/journal.js +147 -200
  26. package/dest/avm/journal/nullifiers.js +43 -46
  27. package/dest/avm/journal/public_storage.js +73 -87
  28. package/dest/avm/opcodes/accrued_substate.js +140 -110
  29. package/dest/avm/opcodes/addressing_mode.js +29 -31
  30. package/dest/avm/opcodes/arithmetic.js +17 -15
  31. package/dest/avm/opcodes/bitwise.js +40 -26
  32. package/dest/avm/opcodes/comparators.js +12 -10
  33. package/dest/avm/opcodes/contract.js +31 -29
  34. package/dest/avm/opcodes/control_flow.js +47 -43
  35. package/dest/avm/opcodes/conversion.js +30 -26
  36. package/dest/avm/opcodes/ec_add.js +35 -34
  37. package/dest/avm/opcodes/environment_getters.js +33 -33
  38. package/dest/avm/opcodes/external_calls.js +83 -74
  39. package/dest/avm/opcodes/hashing.js +69 -61
  40. package/dest/avm/opcodes/index.js +0 -1
  41. package/dest/avm/opcodes/instruction.js +31 -40
  42. package/dest/avm/opcodes/instruction_impl.js +12 -15
  43. package/dest/avm/opcodes/memory.js +177 -156
  44. package/dest/avm/opcodes/misc.js +27 -25
  45. package/dest/avm/opcodes/multi_scalar_mul.js +43 -41
  46. package/dest/avm/opcodes/storage.js +28 -25
  47. package/dest/avm/serialization/buffer_cursor.js +4 -4
  48. package/dest/avm/serialization/bytecode_serialization.js +292 -89
  49. package/dest/avm/serialization/instruction_serialization.js +67 -28
  50. package/dest/avm/test_utils.js +6 -9
  51. package/dest/client/client_execution_context.js +197 -219
  52. package/dest/client/db_oracle.js +4 -7
  53. package/dest/client/execution_note_cache.js +80 -81
  54. package/dest/client/index.js +0 -1
  55. package/dest/client/pick_notes.js +27 -30
  56. package/dest/client/private_execution.js +13 -14
  57. package/dest/client/simulator.js +44 -48
  58. package/dest/client/unconstrained_execution.js +8 -11
  59. package/dest/client/view_data_oracle.js +130 -139
  60. package/dest/common/debug_fn_name.js +1 -4
  61. package/dest/common/errors.js +30 -39
  62. package/dest/common/hashed_values_cache.js +16 -20
  63. package/dest/common/index.js +0 -1
  64. package/dest/common/message_load_oracle_inputs.js +7 -7
  65. package/dest/common/simulation_provider.js +3 -6
  66. package/dest/common.js +0 -1
  67. package/dest/providers/acvm_native.js +46 -32
  68. package/dest/providers/acvm_wasm.js +18 -10
  69. package/dest/providers/acvm_wasm_with_blobs.js +2 -5
  70. package/dest/providers/factory.js +5 -5
  71. package/dest/providers/index.js +0 -1
  72. package/dest/public/bytecode_errors.js +1 -2
  73. package/dest/public/db_interfaces.js +1 -2
  74. package/dest/public/execution.js +2 -4
  75. package/dest/public/executor_metrics.js +16 -12
  76. package/dest/public/fee_payment.js +2 -5
  77. package/dest/public/fixtures/index.js +0 -1
  78. package/dest/public/fixtures/public_tx_simulation_tester.js +13 -17
  79. package/dest/public/fixtures/utils.js +11 -14
  80. package/dest/public/index.js +0 -1
  81. package/dest/public/public_db_sources.js +79 -87
  82. package/dest/public/public_processor.js +310 -306
  83. package/dest/public/public_processor_metrics.js +46 -27
  84. package/dest/public/public_tx_context.js +97 -118
  85. package/dest/public/public_tx_simulator.js +299 -314
  86. package/dest/public/side_effect_errors.js +1 -2
  87. package/dest/public/side_effect_trace.js +44 -71
  88. package/dest/public/side_effect_trace_interface.js +1 -2
  89. package/dest/public/unique_class_ids.js +22 -27
  90. package/dest/public/utils.js +16 -11
  91. package/dest/server.js +0 -1
  92. package/dest/stats/index.js +0 -1
  93. package/dest/stats/stats.js +1 -2
  94. package/dest/test/utils.js +5 -4
  95. package/package.json +11 -11
  96. package/src/acvm/oracle/typed_oracle.ts +34 -34
  97. package/src/avm/avm_machine_state.ts +18 -14
  98. package/src/avm/avm_memory_types.ts +43 -183
  99. package/src/avm/avm_simulator.ts +37 -11
  100. package/src/avm/opcodes/accrued_substate.ts +7 -21
  101. package/src/avm/opcodes/addressing_mode.ts +9 -2
  102. package/src/avm/opcodes/arithmetic.ts +1 -3
  103. package/src/avm/opcodes/bitwise.ts +2 -6
  104. package/src/avm/opcodes/comparators.ts +1 -3
  105. package/src/avm/opcodes/contract.ts +1 -3
  106. package/src/avm/opcodes/control_flow.ts +1 -9
  107. package/src/avm/opcodes/conversion.ts +1 -3
  108. package/src/avm/opcodes/ec_add.ts +1 -3
  109. package/src/avm/opcodes/environment_getters.ts +1 -3
  110. package/src/avm/opcodes/external_calls.ts +3 -6
  111. package/src/avm/opcodes/hashing.ts +3 -9
  112. package/src/avm/opcodes/memory.ts +6 -20
  113. package/src/avm/opcodes/misc.ts +1 -3
  114. package/src/avm/opcodes/multi_scalar_mul.ts +1 -7
  115. package/src/avm/opcodes/storage.ts +2 -6
  116. package/src/client/index.ts +2 -2
  117. package/dest/acvm/acvm.d.ts +0 -35
  118. package/dest/acvm/acvm.d.ts.map +0 -1
  119. package/dest/acvm/acvm_types.d.ts +0 -10
  120. package/dest/acvm/acvm_types.d.ts.map +0 -1
  121. package/dest/acvm/deserialize.d.ts +0 -36
  122. package/dest/acvm/deserialize.d.ts.map +0 -1
  123. package/dest/acvm/index.d.ts +0 -6
  124. package/dest/acvm/index.d.ts.map +0 -1
  125. package/dest/acvm/oracle/index.d.ts +0 -14
  126. package/dest/acvm/oracle/index.d.ts.map +0 -1
  127. package/dest/acvm/oracle/oracle.d.ts +0 -49
  128. package/dest/acvm/oracle/oracle.d.ts.map +0 -1
  129. package/dest/acvm/oracle/typed_oracle.d.ts +0 -75
  130. package/dest/acvm/oracle/typed_oracle.d.ts.map +0 -1
  131. package/dest/acvm/serialize.d.ts +0 -20
  132. package/dest/acvm/serialize.d.ts.map +0 -1
  133. package/dest/avm/avm_context.d.ts +0 -39
  134. package/dest/avm/avm_context.d.ts.map +0 -1
  135. package/dest/avm/avm_contract_call_result.d.ts +0 -30
  136. package/dest/avm/avm_contract_call_result.d.ts.map +0 -1
  137. package/dest/avm/avm_execution_environment.d.ts +0 -21
  138. package/dest/avm/avm_execution_environment.d.ts.map +0 -1
  139. package/dest/avm/avm_gas.d.ts +0 -60
  140. package/dest/avm/avm_gas.d.ts.map +0 -1
  141. package/dest/avm/avm_machine_state.d.ts +0 -93
  142. package/dest/avm/avm_machine_state.d.ts.map +0 -1
  143. package/dest/avm/avm_memory_types.d.ts +0 -310
  144. package/dest/avm/avm_memory_types.d.ts.map +0 -1
  145. package/dest/avm/avm_simulator.d.ts +0 -37
  146. package/dest/avm/avm_simulator.d.ts.map +0 -1
  147. package/dest/avm/avm_tree.d.ts +0 -281
  148. package/dest/avm/avm_tree.d.ts.map +0 -1
  149. package/dest/avm/bytecode_utils.d.ts +0 -5
  150. package/dest/avm/bytecode_utils.d.ts.map +0 -1
  151. package/dest/avm/errors.d.ts +0 -121
  152. package/dest/avm/errors.d.ts.map +0 -1
  153. package/dest/avm/fixtures/avm_simulation_tester.d.ts +0 -21
  154. package/dest/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
  155. package/dest/avm/fixtures/base_avm_simulation_tester.d.ts +0 -35
  156. package/dest/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
  157. package/dest/avm/fixtures/index.d.ts +0 -67
  158. package/dest/avm/fixtures/index.d.ts.map +0 -1
  159. package/dest/avm/fixtures/simple_contract_data_source.d.ts +0 -31
  160. package/dest/avm/fixtures/simple_contract_data_source.d.ts.map +0 -1
  161. package/dest/avm/index.d.ts +0 -4
  162. package/dest/avm/index.d.ts.map +0 -1
  163. package/dest/avm/journal/index.d.ts +0 -2
  164. package/dest/avm/journal/index.d.ts.map +0 -1
  165. package/dest/avm/journal/journal.d.ts +0 -176
  166. package/dest/avm/journal/journal.d.ts.map +0 -1
  167. package/dest/avm/journal/nullifiers.d.ts +0 -62
  168. package/dest/avm/journal/nullifiers.d.ts.map +0 -1
  169. package/dest/avm/journal/public_storage.d.ts +0 -66
  170. package/dest/avm/journal/public_storage.d.ts.map +0 -1
  171. package/dest/avm/opcodes/accrued_substate.d.ts +0 -75
  172. package/dest/avm/opcodes/accrued_substate.d.ts.map +0 -1
  173. package/dest/avm/opcodes/addressing_mode.d.ts +0 -27
  174. package/dest/avm/opcodes/addressing_mode.d.ts.map +0 -1
  175. package/dest/avm/opcodes/arithmetic.d.ts +0 -37
  176. package/dest/avm/opcodes/arithmetic.d.ts.map +0 -1
  177. package/dest/avm/opcodes/bitwise.d.ts +0 -50
  178. package/dest/avm/opcodes/bitwise.d.ts.map +0 -1
  179. package/dest/avm/opcodes/comparators.d.ts +0 -25
  180. package/dest/avm/opcodes/comparators.d.ts.map +0 -1
  181. package/dest/avm/opcodes/contract.d.ts +0 -21
  182. package/dest/avm/opcodes/contract.d.ts.map +0 -1
  183. package/dest/avm/opcodes/control_flow.d.ts +0 -41
  184. package/dest/avm/opcodes/control_flow.d.ts.map +0 -1
  185. package/dest/avm/opcodes/conversion.d.ts +0 -17
  186. package/dest/avm/opcodes/conversion.d.ts.map +0 -1
  187. package/dest/avm/opcodes/ec_add.d.ts +0 -19
  188. package/dest/avm/opcodes/ec_add.d.ts.map +0 -1
  189. package/dest/avm/opcodes/environment_getters.d.ts +0 -28
  190. package/dest/avm/opcodes/environment_getters.d.ts.map +0 -1
  191. package/dest/avm/opcodes/external_calls.d.ts +0 -50
  192. package/dest/avm/opcodes/external_calls.d.ts.map +0 -1
  193. package/dest/avm/opcodes/hashing.d.ts +0 -36
  194. package/dest/avm/opcodes/hashing.d.ts.map +0 -1
  195. package/dest/avm/opcodes/index.d.ts +0 -16
  196. package/dest/avm/opcodes/index.d.ts.map +0 -1
  197. package/dest/avm/opcodes/instruction.d.ts +0 -70
  198. package/dest/avm/opcodes/instruction.d.ts.map +0 -1
  199. package/dest/avm/opcodes/instruction_impl.d.ts +0 -19
  200. package/dest/avm/opcodes/instruction_impl.d.ts.map +0 -1
  201. package/dest/avm/opcodes/memory.d.ts +0 -74
  202. package/dest/avm/opcodes/memory.d.ts.map +0 -1
  203. package/dest/avm/opcodes/misc.d.ts +0 -17
  204. package/dest/avm/opcodes/misc.d.ts.map +0 -1
  205. package/dest/avm/opcodes/multi_scalar_mul.d.ts +0 -16
  206. package/dest/avm/opcodes/multi_scalar_mul.d.ts.map +0 -1
  207. package/dest/avm/opcodes/storage.d.ts +0 -24
  208. package/dest/avm/opcodes/storage.d.ts.map +0 -1
  209. package/dest/avm/serialization/buffer_cursor.d.ts +0 -28
  210. package/dest/avm/serialization/buffer_cursor.d.ts.map +0 -1
  211. package/dest/avm/serialization/bytecode_serialization.d.ts +0 -21
  212. package/dest/avm/serialization/bytecode_serialization.d.ts.map +0 -1
  213. package/dest/avm/serialization/instruction_serialization.d.ts +0 -105
  214. package/dest/avm/serialization/instruction_serialization.d.ts.map +0 -1
  215. package/dest/avm/test_utils.d.ts +0 -16
  216. package/dest/avm/test_utils.d.ts.map +0 -1
  217. package/dest/client/client_execution_context.d.ts +0 -214
  218. package/dest/client/client_execution_context.d.ts.map +0 -1
  219. package/dest/client/db_oracle.d.ts +0 -229
  220. package/dest/client/db_oracle.d.ts.map +0 -1
  221. package/dest/client/execution_note_cache.d.ts +0 -93
  222. package/dest/client/execution_note_cache.d.ts.map +0 -1
  223. package/dest/client/index.d.ts +0 -15
  224. package/dest/client/index.d.ts.map +0 -1
  225. package/dest/client/pick_notes.d.ts +0 -85
  226. package/dest/client/pick_notes.d.ts.map +0 -1
  227. package/dest/client/private_execution.d.ts +0 -19
  228. package/dest/client/private_execution.d.ts.map +0 -1
  229. package/dest/client/simulator.d.ts +0 -60
  230. package/dest/client/simulator.d.ts.map +0 -1
  231. package/dest/client/unconstrained_execution.d.ts +0 -10
  232. package/dest/client/unconstrained_execution.d.ts.map +0 -1
  233. package/dest/client/view_data_oracle.d.ts +0 -159
  234. package/dest/client/view_data_oracle.d.ts.map +0 -1
  235. package/dest/common/debug_fn_name.d.ts +0 -4
  236. package/dest/common/debug_fn_name.d.ts.map +0 -1
  237. package/dest/common/errors.d.ts +0 -54
  238. package/dest/common/errors.d.ts.map +0 -1
  239. package/dest/common/hashed_values_cache.d.ts +0 -28
  240. package/dest/common/hashed_values_cache.d.ts.map +0 -1
  241. package/dest/common/index.d.ts +0 -3
  242. package/dest/common/index.d.ts.map +0 -1
  243. package/dest/common/message_load_oracle_inputs.d.ts +0 -15
  244. package/dest/common/message_load_oracle_inputs.d.ts.map +0 -1
  245. package/dest/common/simulation_provider.d.ts +0 -19
  246. package/dest/common/simulation_provider.d.ts.map +0 -1
  247. package/dest/common.d.ts +0 -2
  248. package/dest/common.d.ts.map +0 -1
  249. package/dest/providers/acvm_native.d.ts +0 -40
  250. package/dest/providers/acvm_native.d.ts.map +0 -1
  251. package/dest/providers/acvm_wasm.d.ts +0 -15
  252. package/dest/providers/acvm_wasm.d.ts.map +0 -1
  253. package/dest/providers/acvm_wasm_with_blobs.d.ts +0 -19
  254. package/dest/providers/acvm_wasm_with_blobs.d.ts.map +0 -1
  255. package/dest/providers/factory.d.ts +0 -12
  256. package/dest/providers/factory.d.ts.map +0 -1
  257. package/dest/providers/index.d.ts +0 -5
  258. package/dest/providers/index.d.ts.map +0 -1
  259. package/dest/public/bytecode_errors.d.ts +0 -4
  260. package/dest/public/bytecode_errors.d.ts.map +0 -1
  261. package/dest/public/db_interfaces.d.ts +0 -105
  262. package/dest/public/db_interfaces.d.ts.map +0 -1
  263. package/dest/public/execution.d.ts +0 -102
  264. package/dest/public/execution.d.ts.map +0 -1
  265. package/dest/public/executor_metrics.d.ts +0 -13
  266. package/dest/public/executor_metrics.d.ts.map +0 -1
  267. package/dest/public/fee_payment.d.ts +0 -11
  268. package/dest/public/fee_payment.d.ts.map +0 -1
  269. package/dest/public/fixtures/index.d.ts +0 -3
  270. package/dest/public/fixtures/index.d.ts.map +0 -1
  271. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +0 -21
  272. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +0 -1
  273. package/dest/public/fixtures/utils.d.ts +0 -17
  274. package/dest/public/fixtures/utils.d.ts.map +0 -1
  275. package/dest/public/index.d.ts +0 -9
  276. package/dest/public/index.d.ts.map +0 -1
  277. package/dest/public/public_db_sources.d.ts +0 -81
  278. package/dest/public/public_db_sources.d.ts.map +0 -1
  279. package/dest/public/public_processor.d.ts +0 -72
  280. package/dest/public/public_processor.d.ts.map +0 -1
  281. package/dest/public/public_processor_metrics.d.ts +0 -27
  282. package/dest/public/public_processor_metrics.d.ts.map +0 -1
  283. package/dest/public/public_tx_context.d.ts +0 -131
  284. package/dest/public/public_tx_context.d.ts.map +0 -1
  285. package/dest/public/public_tx_simulator.d.ts +0 -99
  286. package/dest/public/public_tx_simulator.d.ts.map +0 -1
  287. package/dest/public/side_effect_errors.d.ts +0 -4
  288. package/dest/public/side_effect_errors.d.ts.map +0 -1
  289. package/dest/public/side_effect_trace.d.ts +0 -126
  290. package/dest/public/side_effect_trace.d.ts.map +0 -1
  291. package/dest/public/side_effect_trace_interface.d.ts +0 -32
  292. package/dest/public/side_effect_trace_interface.d.ts.map +0 -1
  293. package/dest/public/unique_class_ids.d.ts +0 -37
  294. package/dest/public/unique_class_ids.d.ts.map +0 -1
  295. package/dest/public/utils.d.ts +0 -5
  296. package/dest/public/utils.d.ts.map +0 -1
  297. package/dest/server.d.ts +0 -6
  298. package/dest/server.d.ts.map +0 -1
  299. package/dest/stats/index.d.ts +0 -2
  300. package/dest/stats/index.d.ts.map +0 -1
  301. package/dest/stats/stats.d.ts +0 -4
  302. package/dest/stats/stats.d.ts.map +0 -1
  303. package/dest/test/utils.d.ts +0 -12
  304. package/dest/test/utils.d.ts.map +0 -1
@@ -1,15 +1,15 @@
1
1
  import { Fr } from '@aztec/circuits.js';
2
2
  export class MessageLoadOracleInputs {
3
- constructor(
4
- /** The index of the message commitment in the merkle tree. */
5
- index,
6
- /** The path in the merkle tree to the message. */
7
- siblingPath) {
3
+ index;
4
+ siblingPath;
5
+ constructor(/** The index of the message commitment in the merkle tree. */ index, /** The path in the merkle tree to the message. */ siblingPath){
8
6
  this.index = index;
9
7
  this.siblingPath = siblingPath;
10
8
  }
11
9
  toFields() {
12
- return [new Fr(this.index), ...this.siblingPath.toFields()];
10
+ return [
11
+ new Fr(this.index),
12
+ ...this.siblingPath.toFields()
13
+ ];
13
14
  }
14
15
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZV9sb2FkX29yYWNsZV9pbnB1dHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbW9uL21lc3NhZ2VfbG9hZF9vcmFjbGVfaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV4QyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDO0lBQ0UsOERBQThEO0lBQ3ZELEtBQWE7SUFDcEIsa0RBQWtEO0lBQzNDLFdBQTJCO1FBRjNCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFFYixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7SUFDakMsQ0FBQztJQUVKLFFBQVE7UUFDTixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRiJ9
@@ -13,15 +13,12 @@ export function parseErrorPayload(abi, originalError) {
13
13
  if (typeof decodedPayload === 'string') {
14
14
  // If it's a string, just add it to the error message
15
15
  enrichedError.message = `Circuit execution failed: ${decodedPayload}`;
16
- }
17
- else {
16
+ } else {
18
17
  // If not, attach the payload to the original error
19
18
  enrichedError.decodedAssertionPayload = decodedPayload;
20
19
  }
21
- }
22
- catch (_errorDecoding) {
23
- // Ignore errors decoding the payload
20
+ } catch (_errorDecoding) {
21
+ // Ignore errors decoding the payload
24
22
  }
25
23
  return enrichedError;
26
24
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdGlvbl9wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vc2ltdWxhdGlvbl9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFnQnRELHNGQUFzRjtBQUN0RixtRkFBbUY7QUFDbkYsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEdBQVEsRUFBRSxhQUE2QjtJQUN2RSxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsbUJBQW1CLENBQUM7SUFDbEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUNELE1BQU0sYUFBYSxHQUFHLGFBQWlDLENBQUM7SUFFeEQsSUFBSSxDQUFDO1FBQ0gscUJBQXFCO1FBQ3JCLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFcEQsSUFBSSxPQUFPLGNBQWMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN2QyxxREFBcUQ7WUFDckQsYUFBYSxDQUFDLE9BQU8sR0FBRyw2QkFBNkIsY0FBYyxFQUFFLENBQUM7UUFDeEUsQ0FBQzthQUFNLENBQUM7WUFDTixtREFBbUQ7WUFDbkQsYUFBYSxDQUFDLHVCQUF1QixHQUFHLGNBQWMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sY0FBYyxFQUFFLENBQUM7UUFDeEIscUNBQXFDO0lBQ3ZDLENBQUM7SUFFRCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDIn0=
package/dest/common.js CHANGED
@@ -1,2 +1 @@
1
1
  export * from './common/index.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDIn0=
@@ -4,23 +4,23 @@ import { Timer } from '@aztec/foundation/timer';
4
4
  import * as proc from 'child_process';
5
5
  import { promises as fs } from 'fs';
6
6
  const logger = createLogger('simulator:acvm-native');
7
- export var ACVM_RESULT;
8
- (function (ACVM_RESULT) {
7
+ export var ACVM_RESULT = /*#__PURE__*/ function(ACVM_RESULT) {
9
8
  ACVM_RESULT[ACVM_RESULT["SUCCESS"] = 0] = "SUCCESS";
10
9
  ACVM_RESULT[ACVM_RESULT["FAILURE"] = 1] = "FAILURE";
11
- })(ACVM_RESULT || (ACVM_RESULT = {}));
10
+ return ACVM_RESULT;
11
+ }({});
12
12
  /**
13
13
  * Parses a TOML format witness map string into a Map structure
14
14
  * @param outputString - The witness map in TOML format
15
15
  * @returns The parsed witness map
16
- */
17
- function parseIntoWitnessMap(outputString) {
16
+ */ function parseIntoWitnessMap(outputString) {
18
17
  const lines = outputString.split('\n');
19
- return new Map(lines
20
- .filter((line) => line.length)
21
- .map((line) => {
18
+ return new Map(lines.filter((line)=>line.length).map((line)=>{
22
19
  const pair = line.replaceAll(' ', '').split('=');
23
- return [Number(pair[0]), pair[1].replaceAll('"', '')];
20
+ return [
21
+ Number(pair[0]),
22
+ pair[1].replaceAll('"', '')
23
+ ];
24
24
  }));
25
25
  }
26
26
  /**
@@ -31,21 +31,22 @@ function parseIntoWitnessMap(outputString) {
31
31
  * @param pathToAcvm - The path to the ACVM binary
32
32
  * @param outputFilename - If specified, the output will be stored as a file, encoded using Bincode
33
33
  * @returns The completed partial witness outputted from the circuit
34
- */
35
- export async function executeNativeCircuit(inputWitness, bytecode, workingDirectory, pathToAcvm, outputFilename) {
34
+ */ export async function executeNativeCircuit(inputWitness, bytecode, workingDirectory, pathToAcvm, outputFilename) {
36
35
  const bytecodeFilename = 'bytecode';
37
36
  const witnessFilename = 'input_witness.toml';
38
37
  // convert the witness map to TOML format
39
38
  let witnessMap = '';
40
- inputWitness.forEach((value, key) => {
39
+ inputWitness.forEach((value, key)=>{
41
40
  witnessMap = witnessMap.concat(`${key} = '${value}'\n`);
42
41
  });
43
42
  try {
44
43
  // Check that the directory exists
45
44
  await fs.access(workingDirectory);
46
- }
47
- catch (error) {
48
- return { status: ACVM_RESULT.FAILURE, reason: `Working directory ${workingDirectory} does not exist` };
45
+ } catch (error) {
46
+ return {
47
+ status: 1,
48
+ reason: `Working directory ${workingDirectory} does not exist`
49
+ };
49
50
  }
50
51
  try {
51
52
  // Write the bytecode and input witness to the working directory
@@ -62,24 +63,29 @@ export async function executeNativeCircuit(inputWitness, bytecode, workingDirect
62
63
  `${witnessFilename}`,
63
64
  '--print',
64
65
  '--output-witness',
65
- 'output-witness',
66
+ 'output-witness'
66
67
  ];
67
68
  logger.debug(`Calling ACVM with ${args.join(' ')}`);
68
- const processPromise = new Promise((resolve, reject) => {
69
+ const processPromise = new Promise((resolve, reject)=>{
69
70
  let outputWitness = Buffer.alloc(0);
70
71
  let errorBuffer = Buffer.alloc(0);
71
72
  const acvm = proc.spawn(pathToAcvm, args);
72
- acvm.stdout.on('data', data => {
73
- outputWitness = Buffer.concat([outputWitness, data]);
73
+ acvm.stdout.on('data', (data)=>{
74
+ outputWitness = Buffer.concat([
75
+ outputWitness,
76
+ data
77
+ ]);
74
78
  });
75
- acvm.stderr.on('data', data => {
76
- errorBuffer = Buffer.concat([errorBuffer, data]);
79
+ acvm.stderr.on('data', (data)=>{
80
+ errorBuffer = Buffer.concat([
81
+ errorBuffer,
82
+ data
83
+ ]);
77
84
  });
78
- acvm.on('close', code => {
85
+ acvm.on('close', (code)=>{
79
86
  if (code === 0) {
80
87
  resolve(outputWitness.toString('utf-8'));
81
- }
82
- else {
88
+ } else {
83
89
  logger.error(`From ACVM: ${errorBuffer.toString('utf-8')}`);
84
90
  reject(errorBuffer.toString('utf-8'));
85
91
  }
@@ -92,26 +98,35 @@ export async function executeNativeCircuit(inputWitness, bytecode, workingDirect
92
98
  await fs.copyFile(outputWitnessFileName, outputFilename);
93
99
  }
94
100
  const witness = parseIntoWitnessMap(output);
95
- return { status: ACVM_RESULT.SUCCESS, witness, duration: duration.ms() };
96
- }
97
- catch (error) {
98
- return { status: ACVM_RESULT.FAILURE, reason: `${error}` };
101
+ return {
102
+ status: 0,
103
+ witness,
104
+ duration: duration.ms()
105
+ };
106
+ } catch (error) {
107
+ return {
108
+ status: 1,
109
+ reason: `${error}`
110
+ };
99
111
  }
100
112
  }
101
113
  export class NativeACVMSimulator {
102
- constructor(workingDirectory, pathToAcvm, witnessFilename) {
114
+ workingDirectory;
115
+ pathToAcvm;
116
+ witnessFilename;
117
+ constructor(workingDirectory, pathToAcvm, witnessFilename){
103
118
  this.workingDirectory = workingDirectory;
104
119
  this.pathToAcvm = pathToAcvm;
105
120
  this.witnessFilename = witnessFilename;
106
121
  }
107
122
  async executeProtocolCircuit(input, compiledCircuit) {
108
123
  // Execute the circuit on those initial witness values
109
- const operation = async (directory) => {
124
+ const operation = async (directory)=>{
110
125
  // Decode the bytecode from base64 since the acvm does not know about base64 encoding
111
126
  const decodedBytecode = Buffer.from(compiledCircuit.bytecode, 'base64');
112
127
  // Execute the circuit
113
128
  const result = await executeNativeCircuit(input, decodedBytecode, directory, this.pathToAcvm, this.witnessFilename);
114
- if (result.status == ACVM_RESULT.FAILURE) {
129
+ if (result.status == 1) {
115
130
  throw new Error(`Failed to generate witness: ${result.reason}`);
116
131
  }
117
132
  return result.witness;
@@ -122,4 +137,3 @@ export class NativeACVMSimulator {
122
137
  throw new Error('Not implemented');
123
138
  }
124
139
  }
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN2bV9uYXRpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXJzL2Fjdm1fbmF0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSWhELE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxRQUFRLElBQUksRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBTXBDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBRXJELE1BQU0sQ0FBTixJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIsbURBQU8sQ0FBQTtJQUNQLG1EQUFPLENBQUE7QUFDVCxDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEI7QUFlRDs7OztHQUlHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxZQUFvQjtJQUMvQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sSUFBSSxHQUFHLENBQ1osS0FBSztTQUNGLE1BQU0sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNyQyxHQUFHLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtRQUNwQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxD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
@@ -5,7 +5,8 @@ import initAbi from '@noir-lang/noirc_abi';
5
5
  import { acvm } from '../acvm/acvm.js';
6
6
  import { parseErrorPayload } from '../common/simulation_provider.js';
7
7
  export class WASMSimulator {
8
- constructor(log = createLogger('wasm-simulator')) {
8
+ log;
9
+ constructor(log = createLogger('wasm-simulator')){
9
10
  this.log = log;
10
11
  }
11
12
  async init() {
@@ -13,12 +14,16 @@ export class WASMSimulator {
13
14
  // web environment. For the node environment, this
14
15
  // is a no-op.
15
16
  if (typeof initAbi === 'function') {
16
- /** @ts-expect-error The node bundle doesn't include these default imports, so TS complains */
17
- await Promise.all([initAbi(), initACVM()]);
17
+ /** @ts-expect-error The node bundle doesn't include these default imports, so TS complains */ await Promise.all([
18
+ initAbi(),
19
+ initACVM()
20
+ ]);
18
21
  }
19
22
  }
20
23
  async executeProtocolCircuit(input, compiledCircuit) {
21
- this.log.debug('init', { hash: compiledCircuit.hash });
24
+ this.log.debug('init', {
25
+ hash: compiledCircuit.hash
26
+ });
22
27
  await this.init();
23
28
  // Execute the circuit on those initial witness values
24
29
  //
@@ -28,21 +33,25 @@ export class WASMSimulator {
28
33
  // Execute the circuit
29
34
  try {
30
35
  const _witnessMap = await executeCircuit(decodedBytecode, input, foreignCallHandler);
31
- this.log.debug('execution successful', { hash: compiledCircuit.hash });
36
+ this.log.debug('execution successful', {
37
+ hash: compiledCircuit.hash
38
+ });
32
39
  return _witnessMap;
33
- }
34
- catch (err) {
40
+ } catch (err) {
35
41
  // Typescript types catched errors as unknown or any, so we need to narrow its type to check if it has raw assertion payload.
36
42
  if (typeof err === 'object' && err !== null && 'rawAssertionPayload' in err) {
37
43
  const parsed = parseErrorPayload(compiledCircuit.abi, err);
38
44
  this.log.debug('execution failed', {
39
45
  hash: compiledCircuit.hash,
40
46
  error: parsed,
41
- message: parsed.message,
47
+ message: parsed.message
42
48
  });
43
49
  throw parsed;
44
50
  }
45
- this.log.debug('execution failed', { hash: compiledCircuit.hash, error: err });
51
+ this.log.debug('execution failed', {
52
+ hash: compiledCircuit.hash,
53
+ error: err
54
+ });
46
55
  throw new Error(`Circuit execution failed: ${err}`);
47
56
  }
48
57
  }
@@ -51,4 +60,3 @@ export class WASMSimulator {
51
60
  return acvm(acir, initialWitness, callback);
52
61
  }
53
62
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN2bV93YXNtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVycy9hY3ZtX3dhc20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBR2hGLE9BQU8sUUFBUSxFQUFFLEVBQXVCLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25GLE9BQU8sT0FBTyxNQUFNLHNCQUFzQixDQUFDO0FBRzNDLE9BQU8sRUFBcUIsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUQsT0FBTyxFQUEyQixpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTlGLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQXNCLE1BQU0sWUFBWSxDQUFDLGdCQUFnQixDQUFDO1FBQXBDLFFBQUcsR0FBSCxHQUFHLENBQWlDO0lBQUcsQ0FBQztJQUU5RCxLQUFLLENBQUMsSUFBSTtRQUNSLDZDQUE2QztRQUM3QyxrREFBa0Q7UUFDbEQsY0FBYztRQUNkLElBQUksT0FBTyxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDbEMsOEZBQThGO1lBQzlGLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxLQUFpQixFQUFFLGVBQW9DO1FBQ2xGLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2RCxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixzREFBc0Q7UUFDdEQsRUFBRTtRQUNGLHFGQUFxRjtRQUNyRixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEUsRUFBRTtRQUNGLHNCQUFzQjtRQUN0QixJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBRyxNQUFNLGNBQWMsQ0FDdEMsZUFBZSxFQUNmLEtBQUssRUFDTCxrQkFBa0IsQ0FDbkIsQ0FBQztZQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsNkhBQTZIO1lBQzdILElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUkscUJBQXFCLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQzVFLE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBcUIsQ0FBQyxDQUFDO2dCQUM3RSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRTtvQkFDakMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJO29CQUMxQixLQUFLLEVBQUUsTUFBTTtvQkFDYixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87aUJBQ3hCLENBQUMsQ0FBQztnQkFDSCxNQUFNLE1BQU0sQ0FBQztZQUNmLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQy9FLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBWSxFQUFFLGNBQTJCLEVBQUUsUUFBc0I7UUFDeEYsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0YifQ==
@@ -7,8 +7,7 @@ import { parseErrorPayload } from '../common/simulation_provider.js';
7
7
  * because the zkg commitment library used in the blob code is not browser compatible.
8
8
  *
9
9
  * It is only used in the context of server-side code executing simulated protocol circuits.
10
- */
11
- export class WASMSimulatorWithBlobs {
10
+ */ export class WASMSimulatorWithBlobs {
12
11
  async executeProtocolCircuit(input, compiledCircuit) {
13
12
  // Execute the circuit on those initial witness values
14
13
  //
@@ -19,8 +18,7 @@ export class WASMSimulatorWithBlobs {
19
18
  try {
20
19
  const _witnessMap = await executeCircuit(decodedBytecode, input, foreignCallHandler);
21
20
  return _witnessMap;
22
- }
23
- catch (err) {
21
+ } catch (err) {
24
22
  // Typescript types catched errors as unknown or any, so we need to narrow its type to check if it has raw assertion payload.
25
23
  if (typeof err === 'object' && err !== null && 'rawAssertionPayload' in err) {
26
24
  throw parseErrorPayload(compiledCircuit.abi, err);
@@ -32,4 +30,3 @@ export class WASMSimulatorWithBlobs {
32
30
  throw new Error('Not implemented');
33
31
  }
34
32
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN2bV93YXNtX3dpdGhfYmxvYnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXJzL2Fjdm1fd2FzbV93aXRoX2Jsb2JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBR2hGLE9BQU8sRUFBdUIsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFLekUsT0FBTyxFQUEyQixpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTlGOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLEtBQWlCLEVBQUUsZUFBb0M7UUFDbEYsc0RBQXNEO1FBQ3RELEVBQUU7UUFDRixxRkFBcUY7UUFDckYsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFLEVBQUU7UUFDRixzQkFBc0I7UUFDdEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxXQUFXLEdBQUcsTUFBTSxjQUFjLENBQ3RDLGVBQWUsRUFDZixLQUFLLEVBQ0wsa0JBQWtCLENBQ25CLENBQUM7WUFFRixPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLDZIQUE2SDtZQUM3SCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLHFCQUFxQixJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUM1RSxNQUFNLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBcUIsQ0FBQyxDQUFDO1lBQ3RFLENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQ2hCLEtBQWEsRUFDYixlQUE0QixFQUM1QixTQUF1QjtRQUV2QixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGIn0=
@@ -6,22 +6,22 @@ export function getSimulationProviderConfigFromEnv() {
6
6
  const { ACVM_BINARY_PATH, ACVM_WORKING_DIRECTORY } = process.env;
7
7
  return {
8
8
  acvmWorkingDirectory: ACVM_WORKING_DIRECTORY ? ACVM_WORKING_DIRECTORY : undefined,
9
- acvmBinaryPath: ACVM_BINARY_PATH ? ACVM_BINARY_PATH : undefined,
9
+ acvmBinaryPath: ACVM_BINARY_PATH ? ACVM_BINARY_PATH : undefined
10
10
  };
11
11
  }
12
12
  export async function createSimulationProvider(config, logger = createLogger('simulator')) {
13
13
  if (config.acvmBinaryPath && config.acvmWorkingDirectory) {
14
14
  try {
15
15
  await fs.access(config.acvmBinaryPath, fs.constants.R_OK);
16
- await fs.mkdir(config.acvmWorkingDirectory, { recursive: true });
16
+ await fs.mkdir(config.acvmWorkingDirectory, {
17
+ recursive: true
18
+ });
17
19
  logger.info(`Using native ACVM at ${config.acvmBinaryPath} and working directory ${config.acvmWorkingDirectory}`);
18
20
  return new NativeACVMSimulator(config.acvmWorkingDirectory, config.acvmBinaryPath);
19
- }
20
- catch {
21
+ } catch {
21
22
  logger.warn(`Failed to access ACVM at ${config.acvmBinaryPath}, falling back to WASM`);
22
23
  }
23
24
  }
24
25
  logger.info('Using WASM ACVM simulation');
25
26
  return new WASMSimulator();
26
27
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlcnMvZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFHcEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTy9DLE1BQU0sVUFBVSxrQ0FBa0M7SUFDaEQsTUFBTSxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUNqRSxPQUFPO1FBQ0wsb0JBQW9CLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ2pGLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFNBQVM7S0FDaEUsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLHdCQUF3QixDQUM1QyxNQUFnQyxFQUNoQyxTQUFpQixZQUFZLENBQUMsV0FBVyxDQUFDO0lBRTFDLElBQUksTUFBTSxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUN6RCxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFELE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNqRSxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixNQUFNLENBQUMsY0FBYywwQkFBMEIsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztZQUNsSCxPQUFPLElBQUksbUJBQW1CLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyRixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsTUFBTSxDQUFDLGNBQWMsd0JBQXdCLENBQUMsQ0FBQztRQUN6RixDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUMxQyxPQUFPLElBQUksYUFBYSxFQUFFLENBQUM7QUFDN0IsQ0FBQyJ9
@@ -2,4 +2,3 @@ export * from './acvm_native.js';
2
2
  export * from './acvm_wasm_with_blobs.js';
3
3
  export * from '../common/simulation_provider.js';
4
4
  export * from './factory.js';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsY0FBYyxDQUFDIn0=
@@ -1,7 +1,6 @@
1
1
  export class ContractClassBytecodeError extends Error {
2
- constructor(contractAddress) {
2
+ constructor(contractAddress){
3
3
  super(`Failed to get bytecode for contract at address ${contractAddress}`);
4
4
  this.name = 'ContractClassBytecodeError';
5
5
  }
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZWNvZGVfZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9ieXRlY29kZV9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLDBCQUEyQixTQUFRLEtBQUs7SUFDbkQsWUFBWSxlQUF1QjtRQUNqQyxLQUFLLENBQUMsa0RBQWtELGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLElBQUksR0FBRyw0QkFBNEIsQ0FBQztJQUMzQyxDQUFDO0NBQ0YifQ==
@@ -1,2 +1 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJfaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvZGJfaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
1
+ /** Database interface for providing access to commitment tree, l1 to l2 message tree, and nullifier tree. */ export { };
@@ -1,10 +1,8 @@
1
- import { Gas, PublicCallStackItemCompressed, PublicInnerCallRequest, RevertCode, } from '@aztec/circuits.js';
1
+ import { Gas, PublicCallStackItemCompressed, PublicInnerCallRequest, RevertCode } from '@aztec/circuits.js';
2
2
  import { computeVarArgsHash } from '@aztec/circuits.js/hash';
3
3
  export async function resultToPublicCallRequest(result) {
4
4
  const request = result.executionRequest;
5
- const item = new PublicCallStackItemCompressed(request.callContext.contractAddress, request.callContext, await computeVarArgsHash(request.args), await computeVarArgsHash(result.returnValues),
6
- // TODO(@just-mitch): need better mapping from simulator to revert code.
5
+ const item = new PublicCallStackItemCompressed(request.callContext.contractAddress, request.callContext, await computeVarArgsHash(request.args), await computeVarArgsHash(result.returnValues), // TODO(@just-mitch): need better mapping from simulator to revert code.
7
6
  result.reverted ? RevertCode.APP_LOGIC_REVERTED : RevertCode.OK, Gas.from(result.startGasLeft), Gas.from(result.endGasLeft));
8
7
  return new PublicInnerCallRequest(item, result.startSideEffectCounter.toNumber());
9
8
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9leGVjdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUtMLEdBQUcsRUFJSCw2QkFBNkIsRUFFN0Isc0JBQXNCLEVBR3RCLFVBQVUsR0FHWCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBOEc3RCxNQUFNLENBQUMsS0FBSyxVQUFVLHlCQUF5QixDQUFDLE1BQWdDO0lBQzlFLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztJQUN4QyxNQUFNLElBQUksR0FBRyxJQUFJLDZCQUE2QixDQUM1QyxPQUFPLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFDbkMsT0FBTyxDQUFDLFdBQVcsRUFDbkIsTUFBTSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQ3RDLE1BQU0sa0JBQWtCLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUM3Qyx3RUFBd0U7SUFDeEUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUMvRCxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFDN0IsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQzVCLENBQUM7SUFDRixPQUFPLElBQUksc0JBQXNCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0FBQ3BGLENBQUMifQ==
@@ -1,50 +1,54 @@
1
- import { Attributes, Metrics, ValueType, } from '@aztec/telemetry-client';
1
+ import { Attributes, Metrics, ValueType } from '@aztec/telemetry-client';
2
2
  export class ExecutorMetrics {
3
- constructor(client, name = 'PublicExecutor') {
3
+ tracer;
4
+ fnCount;
5
+ fnDuration;
6
+ manaPerSecond;
7
+ privateEffectsInsertions;
8
+ constructor(client, name = 'PublicExecutor'){
4
9
  this.tracer = client.getTracer(name);
5
10
  const meter = client.getMeter(name);
6
11
  this.fnCount = meter.createUpDownCounter(Metrics.PUBLIC_EXECUTOR_SIMULATION_COUNT, {
7
- description: 'Number of functions executed',
12
+ description: 'Number of functions executed'
8
13
  });
9
14
  this.fnDuration = meter.createHistogram(Metrics.PUBLIC_EXECUTOR_SIMULATION_DURATION, {
10
15
  description: 'How long it takes to execute a function',
11
16
  unit: 'ms',
12
- valueType: ValueType.INT,
17
+ valueType: ValueType.INT
13
18
  });
14
19
  this.manaPerSecond = meter.createHistogram(Metrics.PUBLIC_EXECUTOR_SIMULATION_MANA_PER_SECOND, {
15
20
  description: 'Mana used per second',
16
21
  unit: 'mana/s',
17
- valueType: ValueType.INT,
22
+ valueType: ValueType.INT
18
23
  });
19
24
  this.privateEffectsInsertions = meter.createHistogram(Metrics.PUBLIC_EXECUTION_PRIVATE_EFFECTS_INSERTION, {
20
25
  description: 'Private effects insertion time',
21
26
  unit: 'us',
22
- valueType: ValueType.INT,
27
+ valueType: ValueType.INT
23
28
  });
24
29
  }
25
30
  recordFunctionSimulation(durationMs, manaUsed, fnName) {
26
31
  this.fnCount.add(1, {
27
32
  [Attributes.OK]: true,
28
33
  [Attributes.APP_CIRCUIT_NAME]: fnName,
29
- [Attributes.MANA_USED]: manaUsed,
34
+ [Attributes.MANA_USED]: manaUsed
30
35
  });
31
36
  this.fnDuration.record(Math.ceil(durationMs));
32
37
  if (durationMs > 0 && manaUsed > 0) {
33
- const manaPerSecond = Math.round((manaUsed * 1000) / durationMs);
38
+ const manaPerSecond = Math.round(manaUsed * 1000 / durationMs);
34
39
  this.manaPerSecond.record(manaPerSecond, {
35
- [Attributes.APP_CIRCUIT_NAME]: fnName,
40
+ [Attributes.APP_CIRCUIT_NAME]: fnName
36
41
  });
37
42
  }
38
43
  }
39
44
  recordFunctionSimulationFailure() {
40
45
  this.fnCount.add(1, {
41
- [Attributes.OK]: false,
46
+ [Attributes.OK]: false
42
47
  });
43
48
  }
44
49
  recordPrivateEffectsInsertion(durationUs, type) {
45
50
  this.privateEffectsInsertions.record(Math.ceil(durationUs), {
46
- [Attributes.REVERTIBILITY]: type,
51
+ [Attributes.REVERTIBILITY]: type
47
52
  });
48
53
  }
49
54
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3JfbWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvZXhlY3V0b3JfbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUVWLE9BQU8sRUFJUCxTQUFTLEdBQ1YsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxNQUFNLE9BQU8sZUFBZTtJQU8xQixZQUFZLE1BQXVCLEVBQUUsSUFBSSxHQUFHLGdCQUFnQjtRQUMxRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLEVBQUU7WUFDakYsV0FBVyxFQUFFLDhCQUE4QjtTQUM1QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxFQUFFO1lBQ25GLFdBQVcsRUFBRSx5Q0FBeUM7WUFDdEQsSUFBSSxFQUFFLElBQUk7WUFDVixTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUc7U0FDekIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQywwQ0FBMEMsRUFBRTtZQUM3RixXQUFXLEVBQUUsc0JBQXNCO1lBQ25DLElBQUksRUFBRSxRQUFRO1lBQ2QsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQywwQ0FBMEMsRUFBRTtZQUN4RyxXQUFXLEVBQUUsZ0NBQWdDO1lBQzdDLElBQUksRUFBRSxJQUFJO1lBQ1YsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxVQUFrQixFQUFFLFFBQWdCLEVBQUUsTUFBYztRQUMzRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDbEIsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSTtZQUNyQixDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU07WUFDckMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUTtTQUNqQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTtnQkFDdkMsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxNQUFNO2FBQ3RDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsK0JBQStCO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNsQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCw2QkFBNkIsQ0FBQyxVQUFrQixFQUFFLElBQXFDO1FBQ3JGLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMxRCxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiJ9
@@ -4,18 +4,15 @@ import { ProtocolContractAddress } from '@aztec/protocol-contracts';
4
4
  import { FeeJuiceArtifact } from '@aztec/protocol-contracts/fee-juice';
5
5
  /**
6
6
  * Computes the storage slot within the Fee Juice contract for the balance of the fee payer.
7
- */
8
- export function computeFeePayerBalanceStorageSlot(feePayer) {
7
+ */ export function computeFeePayerBalanceStorageSlot(feePayer) {
9
8
  return deriveStorageSlotInMap(FeeJuiceArtifact.storageLayout.balances.slot, feePayer);
10
9
  }
11
10
  /**
12
11
  * Computes the leaf slot in the public data tree for the balance of the fee payer in the Fee Juice.
13
- */
14
- export async function computeFeePayerBalanceLeafSlot(feePayer) {
12
+ */ export async function computeFeePayerBalanceLeafSlot(feePayer) {
15
13
  if (feePayer.isZero()) {
16
14
  return Fr.ZERO;
17
15
  }
18
16
  const balanceSlot = await computeFeePayerBalanceStorageSlot(feePayer);
19
17
  return computePublicDataTreeLeafSlot(ProtocolContractAddress.FeeJuice, balanceSlot);
20
18
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX3BheW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2ZlZV9wYXltZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV2RTs7R0FFRztBQUNILE1BQU0sVUFBVSxpQ0FBaUMsQ0FBQyxRQUFzQjtJQUN0RSxPQUFPLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3hGLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsOEJBQThCLENBQUMsUUFBc0I7SUFDekUsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUN0QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDakIsQ0FBQztJQUNELE1BQU0sV0FBVyxHQUFHLE1BQU0saUNBQWlDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEUsT0FBTyw2QkFBNkIsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDdEYsQ0FBQyJ9
@@ -1,3 +1,2 @@
1
1
  export * from './public_tx_simulation_tester.js';
2
2
  export * from './utils.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL2ZpeHR1cmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxZQUFZLENBQUMifQ==
@@ -1,5 +1,5 @@
1
1
  import { MerkleTreeId, PublicExecutionRequest } from '@aztec/circuit-types';
2
- import { CallContext, FunctionSelector, GasFees, GlobalVariables, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NULLIFIER_SUBTREE_HEIGHT, PUBLIC_DATA_TREE_HEIGHT, PUBLIC_DISPATCH_SELECTOR, } from '@aztec/circuits.js';
2
+ import { CallContext, FunctionSelector, GasFees, GlobalVariables, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NULLIFIER_SUBTREE_HEIGHT, PUBLIC_DATA_TREE_HEIGHT, PUBLIC_DISPATCH_SELECTOR } from '@aztec/circuits.js';
3
3
  import { encodeArguments } from '@aztec/foundation/abi';
4
4
  import { AztecAddress } from '@aztec/foundation/aztec-address';
5
5
  import { padArrayEnd } from '@aztec/foundation/collection';
@@ -18,12 +18,8 @@ const DEFAULT_GAS_FEES = new GasFees(2, 3);
18
18
  * A test class that extends the BaseAvmSimulationTester to enable real-app testing of the PublicTxSimulator.
19
19
  * It provides an interface for simulating one transaction at a time and maintains state between subsequent
20
20
  * transactions.
21
- */
22
- export class PublicTxSimulationTester extends BaseAvmSimulationTester {
23
- constructor() {
24
- super(...arguments);
25
- this.txCount = 0;
26
- }
21
+ */ export class PublicTxSimulationTester extends BaseAvmSimulationTester {
22
+ txCount = 0;
27
23
  static async create(skipContractDeployments = false) {
28
24
  const contractDataSource = new SimpleContractDataSource();
29
25
  const merkleTrees = await (await NativeWorldStateService.tmp()).fork();
@@ -36,14 +32,14 @@ export class PublicTxSimulationTester extends BaseAvmSimulationTester {
36
32
  const worldStateDB = new WorldStateDB(this.merkleTrees, this.contractDataSource);
37
33
  const simulator = new PublicTxSimulator(this.merkleTrees, worldStateDB, globals, /*doMerkleOperations=*/ true);
38
34
  const setupExecutionRequests = [];
39
- for (let i = 0; i < setupCalls.length; i++) {
35
+ for(let i = 0; i < setupCalls.length; i++){
40
36
  const address = setupCalls[i].address;
41
37
  const contractArtifact = await this.contractDataSource.getContractArtifact(address);
42
38
  const req = await executionRequestForCall(sender, address, setupCalls[i].fnName, setupCalls[i].args, setupCalls[i].isStaticCall, contractArtifact);
43
39
  setupExecutionRequests.push(req);
44
40
  }
45
41
  const appExecutionRequests = [];
46
- for (let i = 0; i < appCalls.length; i++) {
42
+ for(let i = 0; i < appCalls.length; i++){
47
43
  const address = appCalls[i].address;
48
44
  const contractArtifact = await this.contractDataSource.getContractArtifact(address);
49
45
  const req = await executionRequestForCall(sender, address, appCalls[i].fnName, appCalls[i].args, appCalls[i].isStaticCall, contractArtifact);
@@ -68,21 +64,21 @@ export class PublicTxSimulationTester extends BaseAvmSimulationTester {
68
64
  async commitTxStateUpdates(avmCircuitInputs) {
69
65
  await this.merkleTrees.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, padArrayEnd(avmCircuitInputs.accumulatedData.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX));
70
66
  try {
71
- await this.merkleTrees.batchInsert(MerkleTreeId.NULLIFIER_TREE, padArrayEnd(avmCircuitInputs.accumulatedData.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX).map(n => n.toBuffer()), NULLIFIER_SUBTREE_HEIGHT);
72
- }
73
- catch (error) {
67
+ await this.merkleTrees.batchInsert(MerkleTreeId.NULLIFIER_TREE, padArrayEnd(avmCircuitInputs.accumulatedData.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX).map((n)=>n.toBuffer()), NULLIFIER_SUBTREE_HEIGHT);
68
+ } catch (error) {
74
69
  this.logger.warn(`Detected duplicate nullifier.`);
75
70
  }
76
- await this.merkleTrees.batchInsert(MerkleTreeId.PUBLIC_DATA_TREE, avmCircuitInputs.accumulatedData.publicDataWrites.map(w => w.toBuffer()), PUBLIC_DATA_TREE_HEIGHT);
71
+ await this.merkleTrees.batchInsert(MerkleTreeId.PUBLIC_DATA_TREE, avmCircuitInputs.accumulatedData.publicDataWrites.map((w)=>w.toBuffer()), PUBLIC_DATA_TREE_HEIGHT);
77
72
  }
78
73
  }
79
74
  async function executionRequestForCall(sender, address, fnName, args = [], isStaticCall = false, contractArtifact = AvmTestContractArtifact) {
80
75
  const fnSelector = await getFunctionSelector(fnName, contractArtifact);
81
76
  const fnAbi = getContractFunctionArtifact(fnName, contractArtifact);
82
77
  const encodedArgs = encodeArguments(fnAbi, args);
83
- const calldata = [fnSelector.toField(), ...encodedArgs];
84
- const callContext = new CallContext(sender, address,
85
- /*selector=*/ new FunctionSelector(PUBLIC_DISPATCH_SELECTOR), isStaticCall);
78
+ const calldata = [
79
+ fnSelector.toField(),
80
+ ...encodedArgs
81
+ ];
82
+ const callContext = new CallContext(sender, address, /*selector=*/ new FunctionSelector(PUBLIC_DISPATCH_SELECTOR), isStaticCall);
86
83
  return new PublicExecutionRequest(callContext, calldata);
87
84
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3R4X3NpbXVsYXRpb25fdGVzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3B1YmxpYy9maXh0dXJlcy9wdWJsaWNfdHhfc2ltdWxhdGlvbl90ZXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3JGLE9BQU8sRUFFTCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLE9BQU8sRUFDUCxlQUFlLEVBQ2Ysc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixHQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBeUIsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDM0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDN0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBdUIsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFcEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDaEMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFTM0M7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx1QkFBdUI7SUFBckU7O1FBQ1UsWUFBTyxHQUFHLENBQUMsQ0FBQztJQTJHdEIsQ0FBQztJQXpHUSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsR0FBRyxLQUFLO1FBQ3hELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1FBQzFELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkUsT0FBTyxJQUFJLHdCQUF3QixDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxDQUNyQixNQUFvQixFQUNwQixhQUFpQyxFQUFFLEVBQ25DLFdBQStCLEVBQUUsRUFDakMsWUFBK0IsRUFDL0IsV0FBeUIsWUFBWSxDQUFDLElBQUksRUFBRTtRQUU1QyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDOUIsT0FBTyxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQztRQUVuQyxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sU0FBUyxHQUFHLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9HLE1BQU0sc0JBQXNCLEdBQTZCLEVBQUUsQ0FBQztRQUM1RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDdEMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRixNQUFNLEdBQUcsR0FBRyxNQUFNLHVCQUF1QixDQUN2QyxNQUFNLEVBQ04sT0FBTyxFQUNQLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQ3BCLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQ2xCLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQzFCLGdCQUFnQixDQUNqQixDQUFDO1lBQ0Ysc0JBQXNCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxNQUFNLG9CQUFvQixHQUE2QixFQUFFLENBQUM7UUFDMUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN6QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ3BDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEYsTUFBTSxHQUFHLEdBQUcsTUFBTSx1QkFBdUIsQ0FDdkMsTUFBTSxFQUNOLE9BQU8sRUFDUCxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUNsQixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUNoQixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUN4QixnQkFBZ0IsQ0FDakIsQ0FBQztZQUNGLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsSUFBSSx3QkFBd0IsR0FBdUMsU0FBUyxDQUFDO1FBQzdFLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztZQUNyQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BGLHdCQUF3QixHQUFHLE1BQU0sdUJBQXVCLENBQ3RELE1BQU0sRUFDTixPQUFPLEVBQ1AsWUFBWSxDQUFDLE1BQU0sRUFDbkIsWUFBWSxDQUFDLElBQUksRUFDakIsWUFBWSxDQUFDLFlBQVksRUFDekIsZ0JBQWdCLENBQ2pCLENBQUM7UUFDSixDQUFDO1FBRUQsb0ZBQW9GO1FBQ3BGLHNEQUFzRDtRQUN0RCxNQUFNLGNBQWMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFdkQsTUFBTSxFQUFFLEdBQU8sTUFBTSxzQkFBc0IsQ0FDekMsY0FBYyxFQUNkLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIsd0JBQXdCLEVBQ3hCLFFBQVEsQ0FDVCxDQUFDO1FBRUYsTUFBTSxTQUFTLEdBQUcsTUFBTSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRS9DLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkYsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyxLQUFLLENBQUMsb0JBQW9CLENBQUMsZ0JBQXdDO1FBQ3pFLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQ2pDLFlBQVksQ0FBQyxjQUFjLEVBQzNCLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLENBQUMsQ0FDMUYsQ0FBQztRQUNGLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQ2hDLFlBQVksQ0FBQyxjQUFjLEVBQzNCLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDL0csd0JBQXdCLENBQ3pCLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVELE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQ2hDLFlBQVksQ0FBQyxnQkFBZ0IsRUFDN0IsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUN4RSx1QkFBdUIsQ0FDeEIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELEtBQUssVUFBVSx1QkFBdUIsQ0FDcEMsTUFBb0IsRUFDcEIsT0FBcUIsRUFDckIsTUFBYyxFQUNkLE9BQWEsRUFBRSxFQUNmLGVBQXdCLEtBQUssRUFDN0IsbUJBQXFDLHVCQUF1QjtJQUU1RCxNQUFNLFVBQVUsR0FBRyxNQUFNLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3ZFLE1BQU0sS0FBSyxHQUFHLDJCQUEyQixDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxLQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxXQUFXLENBQUMsQ0FBQztJQUV4RCxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FDakMsTUFBTSxFQUNOLE9BQU87SUFDUCxhQUFhLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQyxFQUM1RCxZQUFZLENBQ2IsQ0FBQztJQUNGLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDM0QsQ0FBQyJ9