@aztec/simulator 0.0.1-commit.a072138 → 0.0.1-commit.a4600f49

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 (358) 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_wasm.d.ts +1 -1
  6. package/dest/private/acvm_wasm.d.ts.map +1 -1
  7. package/dest/private/acvm_wasm.js +3 -1
  8. package/dest/private/circuit_recording/circuit_recorder.d.ts +36 -23
  9. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  10. package/dest/private/circuit_recording/circuit_recorder.js +65 -69
  11. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +7 -19
  12. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  13. package/dest/private/circuit_recording/file_circuit_recorder.js +38 -42
  14. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  15. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  16. package/dest/private/circuit_recording/simulator_recorder_wrapper.js +11 -14
  17. package/dest/public/avm/testing/account_proof_fetcher.d.ts +2 -0
  18. package/dest/public/avm/testing/account_proof_fetcher.d.ts.map +1 -0
  19. package/dest/public/avm/testing/account_proof_fetcher.js +152 -0
  20. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.d.ts +2 -1
  21. package/dest/public/avm/testing/base_avm_simulation_tester.d.ts.map +1 -0
  22. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.js +18 -3
  23. package/dest/public/avm/testing/utils.d.ts +32 -0
  24. package/dest/public/avm/testing/utils.d.ts.map +1 -0
  25. package/dest/public/avm/{fixtures → testing}/utils.js +4 -34
  26. package/dest/public/avm_simulator.d.ts +28 -0
  27. package/dest/public/avm_simulator.d.ts.map +1 -0
  28. package/dest/public/avm_simulator.js +4 -0
  29. package/dest/public/avm_simulator_pool.d.ts +45 -0
  30. package/dest/public/avm_simulator_pool.d.ts.map +1 -0
  31. package/dest/public/avm_simulator_pool.js +197 -0
  32. package/dest/public/cdb/generated/api_types.d.ts +171 -0
  33. package/dest/public/cdb/generated/api_types.d.ts.map +1 -0
  34. package/dest/public/cdb/generated/api_types.js +314 -0
  35. package/dest/public/cdb/generated/server.d.ts +26 -0
  36. package/dest/public/cdb/generated/server.d.ts.map +1 -0
  37. package/dest/public/cdb/generated/server.js +135 -0
  38. package/dest/public/cdb_ipc_server.d.ts +33 -0
  39. package/dest/public/cdb_ipc_server.d.ts.map +1 -0
  40. package/dest/public/cdb_ipc_server.js +153 -0
  41. package/dest/public/contracts_db_checkpoint.d.ts +2 -2
  42. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
  43. package/dest/public/contracts_db_checkpoint.js +1 -1
  44. package/dest/public/fixtures/amm_test.js +4 -4
  45. package/dest/public/fixtures/bulk_test.d.ts +1 -1
  46. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  47. package/dest/public/fixtures/bulk_test.js +33 -6
  48. package/dest/public/fixtures/custom_bytecode_tester.d.ts +1 -1
  49. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  50. package/dest/public/fixtures/custom_bytecode_tester.js +2 -2
  51. package/dest/public/fixtures/index.d.ts +2 -4
  52. package/dest/public/fixtures/index.d.ts.map +1 -1
  53. package/dest/public/fixtures/index.js +1 -3
  54. package/dest/public/fixtures/public_processor_test_env.d.ts +30 -0
  55. package/dest/public/fixtures/public_processor_test_env.d.ts.map +1 -0
  56. package/dest/public/fixtures/public_processor_test_env.js +73 -0
  57. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +12 -7
  58. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  59. package/dest/public/fixtures/public_tx_simulation_tester.js +32 -15
  60. package/dest/public/fixtures/simple_contract_data_source.js +1 -1
  61. package/dest/public/fixtures/token_test.js +3 -3
  62. package/dest/public/fixtures/utils.d.ts +2 -2
  63. package/dest/public/fixtures/utils.d.ts.map +1 -1
  64. package/dest/public/fixtures/utils.js +21 -20
  65. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +11 -4
  66. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -1
  67. package/dest/public/fuzzing/avm_fuzzer_simulator.js +24 -10
  68. package/dest/public/fuzzing/avm_simulator_bin.js +4 -4
  69. package/dest/public/index.d.ts +5 -2
  70. package/dest/public/index.d.ts.map +1 -1
  71. package/dest/public/index.js +2 -1
  72. package/dest/public/public_db_sources.d.ts +6 -3
  73. package/dest/public/public_db_sources.d.ts.map +1 -1
  74. package/dest/public/public_db_sources.js +16 -10
  75. package/dest/public/public_processor/guarded_merkle_tree.d.ts +8 -7
  76. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  77. package/dest/public/public_processor/guarded_merkle_tree.js +8 -5
  78. package/dest/public/public_processor/public_processor.d.ts +15 -8
  79. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  80. package/dest/public/public_processor/public_processor.js +117 -78
  81. package/dest/public/public_processor/public_processor_metrics.d.ts +4 -1
  82. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  83. package/dest/public/public_processor/public_processor_metrics.js +8 -0
  84. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts +17 -0
  85. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts.map +1 -0
  86. package/dest/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.js → dumping_public_tx_simulator.js} +10 -23
  87. package/dest/public/public_tx_simulator/factories.d.ts +8 -8
  88. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
  89. package/dest/public/public_tx_simulator/factories.js +9 -9
  90. package/dest/public/public_tx_simulator/index.d.ts +4 -6
  91. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  92. package/dest/public/public_tx_simulator/index.js +2 -4
  93. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +42 -71
  94. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  95. package/dest/public/public_tx_simulator/public_tx_simulator.js +98 -318
  96. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts +24 -0
  97. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts.map +1 -0
  98. package/dest/public/public_tx_simulator/public_tx_simulator_base.js +31 -0
  99. package/dest/public/public_tx_simulator/public_tx_simulator_interface.d.ts +5 -5
  100. package/package.json +22 -19
  101. package/src/client.ts +0 -2
  102. package/src/private/acvm_wasm.ts +4 -1
  103. package/src/private/circuit_recording/circuit_recorder.ts +84 -78
  104. package/src/private/circuit_recording/file_circuit_recorder.ts +38 -48
  105. package/src/private/circuit_recording/simulator_recorder_wrapper.ts +9 -15
  106. package/src/public/avm/testing/account_proof.json +553 -0
  107. package/src/public/avm/testing/account_proof_fetcher.ts +166 -0
  108. package/src/public/avm/{fixtures → testing}/base_avm_simulation_tester.ts +23 -3
  109. package/src/public/avm/{fixtures → testing}/utils.ts +4 -40
  110. package/src/public/avm_simulator.ts +29 -0
  111. package/src/public/avm_simulator_pool.ts +226 -0
  112. package/src/public/cdb/generated/api_types.ts +457 -0
  113. package/src/public/cdb/generated/server.ts +109 -0
  114. package/src/public/cdb_ipc_server.ts +197 -0
  115. package/src/public/contracts_db_checkpoint.ts +1 -1
  116. package/src/public/fixtures/amm_test.ts +4 -4
  117. package/src/public/fixtures/bulk_test.ts +31 -6
  118. package/src/public/fixtures/custom_bytecode_tester.ts +2 -2
  119. package/src/public/fixtures/index.ts +1 -3
  120. package/src/public/fixtures/public_processor_test_env.ts +88 -0
  121. package/src/public/fixtures/public_tx_simulation_tester.ts +45 -18
  122. package/src/public/fixtures/simple_contract_data_source.ts +1 -1
  123. package/src/public/fixtures/token_test.ts +3 -3
  124. package/src/public/fixtures/utils.ts +23 -24
  125. package/src/public/fuzzing/avm_fuzzer_simulator.ts +26 -11
  126. package/src/public/fuzzing/avm_simulator_bin.ts +3 -5
  127. package/src/public/index.ts +7 -3
  128. package/src/public/public_db_sources.ts +21 -14
  129. package/src/public/public_processor/guarded_merkle_tree.ts +11 -8
  130. package/src/public/public_processor/public_processor.ts +154 -98
  131. package/src/public/public_processor/public_processor_metrics.ts +12 -0
  132. package/src/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.ts → dumping_public_tx_simulator.ts} +15 -31
  133. package/src/public/public_tx_simulator/factories.ts +29 -11
  134. package/src/public/public_tx_simulator/index.ts +6 -5
  135. package/src/public/public_tx_simulator/public_tx_simulator.ts +139 -476
  136. package/src/public/public_tx_simulator/public_tx_simulator_base.ts +37 -0
  137. package/src/public/public_tx_simulator/public_tx_simulator_interface.ts +5 -5
  138. package/dest/public/avm/avm_context.d.ts +0 -41
  139. package/dest/public/avm/avm_context.d.ts.map +0 -1
  140. package/dest/public/avm/avm_context.js +0 -44
  141. package/dest/public/avm/avm_contract_call_result.d.ts +0 -32
  142. package/dest/public/avm/avm_contract_call_result.d.ts.map +0 -1
  143. package/dest/public/avm/avm_contract_call_result.js +0 -54
  144. package/dest/public/avm/avm_execution_environment.d.ts +0 -24
  145. package/dest/public/avm/avm_execution_environment.d.ts.map +0 -1
  146. package/dest/public/avm/avm_execution_environment.js +0 -33
  147. package/dest/public/avm/avm_gas.d.ts +0 -44
  148. package/dest/public/avm/avm_gas.d.ts.map +0 -1
  149. package/dest/public/avm/avm_gas.js +0 -195
  150. package/dest/public/avm/avm_machine_state.d.ts +0 -98
  151. package/dest/public/avm/avm_machine_state.d.ts.map +0 -1
  152. package/dest/public/avm/avm_machine_state.js +0 -110
  153. package/dest/public/avm/avm_memory_types.d.ts +0 -275
  154. package/dest/public/avm/avm_memory_types.d.ts.map +0 -1
  155. package/dest/public/avm/avm_memory_types.js +0 -354
  156. package/dest/public/avm/avm_simulator.d.ts +0 -41
  157. package/dest/public/avm/avm_simulator.d.ts.map +0 -1
  158. package/dest/public/avm/avm_simulator.js +0 -192
  159. package/dest/public/avm/avm_simulator_interface.d.ts +0 -9
  160. package/dest/public/avm/avm_simulator_interface.d.ts.map +0 -1
  161. package/dest/public/avm/avm_simulator_interface.js +0 -3
  162. package/dest/public/avm/calldata.d.ts +0 -51
  163. package/dest/public/avm/calldata.d.ts.map +0 -1
  164. package/dest/public/avm/calldata.js +0 -63
  165. package/dest/public/avm/errors.d.ts +0 -104
  166. package/dest/public/avm/errors.d.ts.map +0 -1
  167. package/dest/public/avm/errors.js +0 -141
  168. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +0 -22
  169. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
  170. package/dest/public/avm/fixtures/avm_simulation_tester.js +0 -84
  171. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
  172. package/dest/public/avm/fixtures/initializers.d.ts +0 -42
  173. package/dest/public/avm/fixtures/initializers.d.ts.map +0 -1
  174. package/dest/public/avm/fixtures/initializers.js +0 -45
  175. package/dest/public/avm/fixtures/utils.d.ts +0 -39
  176. package/dest/public/avm/fixtures/utils.d.ts.map +0 -1
  177. package/dest/public/avm/index.d.ts +0 -2
  178. package/dest/public/avm/index.d.ts.map +0 -1
  179. package/dest/public/avm/index.js +0 -1
  180. package/dest/public/avm/opcodes/accrued_substate.d.ts +0 -74
  181. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +0 -1
  182. package/dest/public/avm/opcodes/accrued_substate.js +0 -255
  183. package/dest/public/avm/opcodes/addressing_mode.d.ts +0 -31
  184. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +0 -1
  185. package/dest/public/avm/opcodes/addressing_mode.js +0 -94
  186. package/dest/public/avm/opcodes/arithmetic.d.ts +0 -49
  187. package/dest/public/avm/opcodes/arithmetic.d.ts.map +0 -1
  188. package/dest/public/avm/opcodes/arithmetic.js +0 -97
  189. package/dest/public/avm/opcodes/bitwise.d.ts +0 -42
  190. package/dest/public/avm/opcodes/bitwise.d.ts.map +0 -1
  191. package/dest/public/avm/opcodes/bitwise.js +0 -99
  192. package/dest/public/avm/opcodes/comparators.d.ts +0 -25
  193. package/dest/public/avm/opcodes/comparators.d.ts.map +0 -1
  194. package/dest/public/avm/opcodes/comparators.js +0 -43
  195. package/dest/public/avm/opcodes/contract.d.ts +0 -20
  196. package/dest/public/avm/opcodes/contract.d.ts.map +0 -1
  197. package/dest/public/avm/opcodes/contract.js +0 -65
  198. package/dest/public/avm/opcodes/control_flow.d.ts +0 -41
  199. package/dest/public/avm/opcodes/control_flow.d.ts.map +0 -1
  200. package/dest/public/avm/opcodes/control_flow.js +0 -107
  201. package/dest/public/avm/opcodes/conversion.d.ts +0 -18
  202. package/dest/public/avm/opcodes/conversion.d.ts.map +0 -1
  203. package/dest/public/avm/opcodes/conversion.js +0 -333
  204. package/dest/public/avm/opcodes/ec_add.d.ts +0 -19
  205. package/dest/public/avm/opcodes/ec_add.d.ts.map +0 -1
  206. package/dest/public/avm/opcodes/ec_add.js +0 -93
  207. package/dest/public/avm/opcodes/environment_getters.d.ts +0 -28
  208. package/dest/public/avm/opcodes/environment_getters.d.ts.map +0 -1
  209. package/dest/public/avm/opcodes/environment_getters.js +0 -77
  210. package/dest/public/avm/opcodes/external_calls.d.ts +0 -59
  211. package/dest/public/avm/opcodes/external_calls.d.ts.map +0 -1
  212. package/dest/public/avm/opcodes/external_calls.js +0 -210
  213. package/dest/public/avm/opcodes/hashing.d.ts +0 -36
  214. package/dest/public/avm/opcodes/hashing.d.ts.map +0 -1
  215. package/dest/public/avm/opcodes/hashing.js +0 -119
  216. package/dest/public/avm/opcodes/index.d.ts +0 -16
  217. package/dest/public/avm/opcodes/index.d.ts.map +0 -1
  218. package/dest/public/avm/opcodes/index.js +0 -15
  219. package/dest/public/avm/opcodes/instruction.d.ts +0 -74
  220. package/dest/public/avm/opcodes/instruction.d.ts.map +0 -1
  221. package/dest/public/avm/opcodes/instruction.js +0 -95
  222. package/dest/public/avm/opcodes/instruction_impl.d.ts +0 -19
  223. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +0 -1
  224. package/dest/public/avm/opcodes/instruction_impl.js +0 -30
  225. package/dest/public/avm/opcodes/memory.d.ts +0 -74
  226. package/dest/public/avm/opcodes/memory.d.ts.map +0 -1
  227. package/dest/public/avm/opcodes/memory.js +0 -257
  228. package/dest/public/avm/opcodes/misc.d.ts +0 -18
  229. package/dest/public/avm/opcodes/misc.d.ts.map +0 -1
  230. package/dest/public/avm/opcodes/misc.js +0 -73
  231. package/dest/public/avm/opcodes/storage.d.ts +0 -25
  232. package/dest/public/avm/opcodes/storage.d.ts.map +0 -1
  233. package/dest/public/avm/opcodes/storage.js +0 -78
  234. package/dest/public/avm/revert_reason.d.ts +0 -18
  235. package/dest/public/avm/revert_reason.d.ts.map +0 -1
  236. package/dest/public/avm/revert_reason.js +0 -39
  237. package/dest/public/avm/serialization/buffer_cursor.d.ts +0 -26
  238. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +0 -1
  239. package/dest/public/avm/serialization/buffer_cursor.js +0 -99
  240. package/dest/public/avm/serialization/bytecode_serialization.d.ts +0 -17
  241. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +0 -1
  242. package/dest/public/avm/serialization/bytecode_serialization.js +0 -336
  243. package/dest/public/avm/serialization/instruction_serialization.d.ts +0 -114
  244. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +0 -1
  245. package/dest/public/avm/serialization/instruction_serialization.js +0 -261
  246. package/dest/public/avm/test_utils.d.ts +0 -15
  247. package/dest/public/avm/test_utils.d.ts.map +0 -1
  248. package/dest/public/avm/test_utils.js +0 -44
  249. package/dest/public/debug_fn_name.d.ts +0 -18
  250. package/dest/public/debug_fn_name.d.ts.map +0 -1
  251. package/dest/public/debug_fn_name.js +0 -37
  252. package/dest/public/fixtures/custom_bytecode_tests.d.ts +0 -12
  253. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +0 -1
  254. package/dest/public/fixtures/custom_bytecode_tests.js +0 -174
  255. package/dest/public/fixtures/minimal_public_tx.d.ts +0 -4
  256. package/dest/public/fixtures/minimal_public_tx.d.ts.map +0 -1
  257. package/dest/public/fixtures/minimal_public_tx.js +0 -19
  258. package/dest/public/fixtures/opcode_spammer.d.ts +0 -122
  259. package/dest/public/fixtures/opcode_spammer.d.ts.map +0 -1
  260. package/dest/public/fixtures/opcode_spammer.js +0 -1653
  261. package/dest/public/hinting_db_sources.d.ts +0 -80
  262. package/dest/public/hinting_db_sources.d.ts.map +0 -1
  263. package/dest/public/hinting_db_sources.js +0 -355
  264. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +0 -19
  265. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +0 -1
  266. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +0 -98
  267. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +0 -53
  268. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +0 -1
  269. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +0 -132
  270. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +0 -42
  271. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +0 -1
  272. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +0 -86
  273. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +0 -30
  274. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +0 -1
  275. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +0 -171
  276. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +0 -23
  277. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +0 -1
  278. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +0 -31
  279. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +0 -1
  280. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +0 -51
  281. package/dest/public/public_tx_simulator/public_tx_context.d.ts +0 -131
  282. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +0 -1
  283. package/dest/public/public_tx_simulator/public_tx_context.js +0 -300
  284. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +0 -21
  285. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +0 -1
  286. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +0 -415
  287. package/dest/public/side_effect_trace.d.ts +0 -87
  288. package/dest/public/side_effect_trace.d.ts.map +0 -1
  289. package/dest/public/side_effect_trace.js +0 -199
  290. package/dest/public/side_effect_trace_interface.d.ts +0 -22
  291. package/dest/public/side_effect_trace_interface.d.ts.map +0 -1
  292. package/dest/public/side_effect_trace_interface.js +0 -1
  293. package/dest/public/state_manager/index.d.ts +0 -2
  294. package/dest/public/state_manager/index.d.ts.map +0 -1
  295. package/dest/public/state_manager/index.js +0 -1
  296. package/dest/public/state_manager/nullifiers.d.ts +0 -61
  297. package/dest/public/state_manager/nullifiers.d.ts.map +0 -1
  298. package/dest/public/state_manager/nullifiers.js +0 -92
  299. package/dest/public/state_manager/public_storage.d.ts +0 -66
  300. package/dest/public/state_manager/public_storage.d.ts.map +0 -1
  301. package/dest/public/state_manager/public_storage.js +0 -145
  302. package/dest/public/state_manager/state_manager.d.ts +0 -170
  303. package/dest/public/state_manager/state_manager.d.ts.map +0 -1
  304. package/dest/public/state_manager/state_manager.js +0 -402
  305. package/src/public/avm/avm_context.ts +0 -61
  306. package/src/public/avm/avm_contract_call_result.ts +0 -69
  307. package/src/public/avm/avm_execution_environment.ts +0 -51
  308. package/src/public/avm/avm_gas.ts +0 -183
  309. package/src/public/avm/avm_machine_state.ts +0 -170
  310. package/src/public/avm/avm_memory_types.ts +0 -440
  311. package/src/public/avm/avm_simulator.ts +0 -279
  312. package/src/public/avm/avm_simulator_interface.ts +0 -8
  313. package/src/public/avm/calldata.ts +0 -100
  314. package/src/public/avm/errors.ts +0 -177
  315. package/src/public/avm/fixtures/avm_simulation_tester.ts +0 -122
  316. package/src/public/avm/fixtures/initializers.ts +0 -103
  317. package/src/public/avm/index.ts +0 -1
  318. package/src/public/avm/opcodes/accrued_substate.ts +0 -286
  319. package/src/public/avm/opcodes/addressing_mode.ts +0 -111
  320. package/src/public/avm/opcodes/arithmetic.ts +0 -129
  321. package/src/public/avm/opcodes/bitwise.ts +0 -113
  322. package/src/public/avm/opcodes/comparators.ts +0 -55
  323. package/src/public/avm/opcodes/contract.ts +0 -72
  324. package/src/public/avm/opcodes/control_flow.ts +0 -123
  325. package/src/public/avm/opcodes/conversion.ts +0 -104
  326. package/src/public/avm/opcodes/ec_add.ts +0 -105
  327. package/src/public/avm/opcodes/environment_getters.ts +0 -87
  328. package/src/public/avm/opcodes/external_calls.ts +0 -262
  329. package/src/public/avm/opcodes/hashing.ts +0 -151
  330. package/src/public/avm/opcodes/index.ts +0 -15
  331. package/src/public/avm/opcodes/instruction.ts +0 -136
  332. package/src/public/avm/opcodes/instruction_impl.ts +0 -36
  333. package/src/public/avm/opcodes/memory.ts +0 -293
  334. package/src/public/avm/opcodes/misc.ts +0 -102
  335. package/src/public/avm/opcodes/storage.ts +0 -95
  336. package/src/public/avm/revert_reason.ts +0 -58
  337. package/src/public/avm/serialization/buffer_cursor.ts +0 -118
  338. package/src/public/avm/serialization/bytecode_serialization.ts +0 -215
  339. package/src/public/avm/serialization/instruction_serialization.ts +0 -249
  340. package/src/public/avm/test_utils.ts +0 -64
  341. package/src/public/debug_fn_name.ts +0 -52
  342. package/src/public/fixtures/custom_bytecode_tests.ts +0 -228
  343. package/src/public/fixtures/minimal_public_tx.ts +0 -26
  344. package/src/public/fixtures/opcode_spammer.ts +0 -1721
  345. package/src/public/hinting_db_sources.ts +0 -607
  346. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +0 -124
  347. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +0 -211
  348. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +0 -134
  349. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +0 -239
  350. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +0 -105
  351. package/src/public/public_tx_simulator/public_tx_context.ts +0 -484
  352. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +0 -63
  353. package/src/public/side_effect_trace.ts +0 -293
  354. package/src/public/side_effect_trace_interface.ts +0 -28
  355. package/src/public/state_manager/index.ts +0 -1
  356. package/src/public/state_manager/nullifiers.ts +0 -103
  357. package/src/public/state_manager/public_storage.ts +0 -174
  358. package/src/public/state_manager/state_manager.ts +0 -569
@@ -1,440 +0,0 @@
1
- import {
2
- MEM_TAG_FF,
3
- MEM_TAG_U1,
4
- MEM_TAG_U8,
5
- MEM_TAG_U16,
6
- MEM_TAG_U32,
7
- MEM_TAG_U64,
8
- MEM_TAG_U128,
9
- } from '@aztec/constants';
10
- import { toBufferBE } from '@aztec/foundation/bigint-buffer';
11
- import { Fr } from '@aztec/foundation/curves/bn254';
12
- import { type Logger, createLogger } from '@aztec/foundation/log';
13
- import type { FunctionsOf } from '@aztec/foundation/types';
14
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
-
16
- import { strict as assert } from 'assert';
17
-
18
- import { InvalidTagValueError, MemorySliceOutOfRangeError, TagCheckError } from './errors.js';
19
-
20
- /** MemoryValue gathers the common operations for all memory types. */
21
- export abstract class MemoryValue {
22
- public abstract add(rhs: MemoryValue): MemoryValue;
23
- public abstract sub(rhs: MemoryValue): MemoryValue;
24
- public abstract mul(rhs: MemoryValue): MemoryValue;
25
- public abstract div(rhs: MemoryValue): MemoryValue;
26
-
27
- public abstract equals(rhs: MemoryValue): boolean;
28
- public abstract lt(rhs: MemoryValue): boolean;
29
-
30
- // We need this to be able to build an instance of the subclasses.
31
- public abstract build(n: bigint): MemoryValue;
32
-
33
- // Use sparingly.
34
- public abstract toBigInt(): bigint;
35
- public getTag(): TypeTag {
36
- return TaggedMemory.getTag(this);
37
- }
38
-
39
- // To Buffer
40
- public abstract toBuffer(): Buffer;
41
-
42
- // To field
43
- public toFr(): Fr {
44
- return new Fr(this.toBigInt());
45
- }
46
-
47
- public toAztecAddress(): AztecAddress {
48
- return new AztecAddress(this.toFr());
49
- }
50
-
51
- // To number. Throws if exceeds max safe int.
52
- public toNumber(): number {
53
- return this.toFr().toNumber();
54
- }
55
-
56
- public toString(): string {
57
- return `${this.constructor.name}(0x${this.toBigInt().toString(16)})`;
58
- }
59
- }
60
-
61
- /** IntegralValue gathers the common operations for all integral memory types. */
62
- export abstract class IntegralValue extends MemoryValue {
63
- public abstract shl(rhs: IntegralValue): IntegralValue;
64
- public abstract shr(rhs: IntegralValue): IntegralValue;
65
- public abstract and(rhs: IntegralValue): IntegralValue;
66
- public abstract or(rhs: IntegralValue): IntegralValue;
67
- public abstract xor(rhs: IntegralValue): IntegralValue;
68
- public abstract not(): IntegralValue;
69
- }
70
-
71
- /**
72
- * This function creates a class for unsigned integers of a given number of bits.
73
- * In TypeScript terms, it's a class mixin.
74
- **/
75
- function UnsignedIntegerClassFactory(bits: number) {
76
- return class NewUintClass extends IntegralValue {
77
- static readonly bits: number = bits;
78
- static readonly mod: bigint = 1n << BigInt(bits);
79
- static readonly bitmask: bigint = this.mod - 1n;
80
- public readonly n: bigint; // Cannot be private due to TS limitations.
81
-
82
- public constructor(n: bigint | number) {
83
- super();
84
- this.n = BigInt(n);
85
- assert(n >= 0n, `${this.constructor.name} cannot handle negative values: ${n}.`);
86
- assert(n < NewUintClass.mod, `Value ${n} is too large for ${this.constructor.name}.`);
87
- }
88
-
89
- public build(n: bigint): NewUintClass {
90
- return new this.constructor.prototype.constructor(n);
91
- }
92
-
93
- public add(rhs: NewUintClass): NewUintClass {
94
- return this.build((this.n + rhs.n) & NewUintClass.bitmask);
95
- }
96
-
97
- public sub(rhs: NewUintClass): NewUintClass {
98
- const res: bigint = this.n - rhs.n;
99
- return this.build(res >= 0 ? res : res + NewUintClass.mod);
100
- }
101
-
102
- public mul(rhs: NewUintClass): NewUintClass {
103
- return this.build((this.n * rhs.n) & NewUintClass.bitmask);
104
- }
105
-
106
- public div(rhs: NewUintClass): NewUintClass {
107
- return this.build(this.n / rhs.n);
108
- }
109
-
110
- // No sign extension.
111
- public shr(rhs: NewUintClass): NewUintClass {
112
- // Note that this.n is >= 0 by class invariant.
113
- return this.build(this.n >> rhs.n);
114
- }
115
-
116
- public shl(rhs: NewUintClass): NewUintClass {
117
- const shiftAmount = rhs.n;
118
- const bitSize = BigInt(NewUintClass.bits);
119
-
120
- // Shifting by more than the bit size always results in 0
121
- if (shiftAmount >= bitSize) {
122
- return this.build(0n);
123
- }
124
-
125
- return this.build((this.n << shiftAmount) & NewUintClass.bitmask);
126
- }
127
-
128
- public and(rhs: NewUintClass): NewUintClass {
129
- return this.build(this.n & rhs.n);
130
- }
131
-
132
- public or(rhs: NewUintClass): NewUintClass {
133
- return this.build(this.n | rhs.n);
134
- }
135
-
136
- public xor(rhs: NewUintClass): NewUintClass {
137
- return this.build(this.n ^ rhs.n);
138
- }
139
-
140
- public not(): NewUintClass {
141
- return this.build(~this.n & NewUintClass.bitmask);
142
- }
143
-
144
- public equals(rhs: NewUintClass): boolean {
145
- return this.n === rhs.n;
146
- }
147
-
148
- public lt(rhs: NewUintClass): boolean {
149
- return this.n < rhs.n;
150
- }
151
-
152
- public toBigInt(): bigint {
153
- return this.n;
154
- }
155
-
156
- public toBuffer(): Buffer {
157
- if (bits < 8) {
158
- return toBufferBE(this.n, 1);
159
- }
160
- return toBufferBE(this.n, bits / 8);
161
- }
162
- };
163
- }
164
-
165
- // Now we can create the classes for each unsigned integer type.
166
- // We extend instead of just assigning so that the class has the right name.
167
- // Otherwise they are all called "NewUintClass".
168
- export class Uint1 extends UnsignedIntegerClassFactory(1) {}
169
- export class Uint8 extends UnsignedIntegerClassFactory(8) {}
170
- export class Uint16 extends UnsignedIntegerClassFactory(16) {}
171
- export class Uint32 extends UnsignedIntegerClassFactory(32) {}
172
- export class Uint64 extends UnsignedIntegerClassFactory(64) {}
173
- export class Uint128 extends UnsignedIntegerClassFactory(128) {}
174
-
175
- export class Field extends MemoryValue {
176
- public static readonly MODULUS: bigint = Fr.MODULUS;
177
- private readonly rep: Fr;
178
-
179
- constructor(v: number | bigint | Fr | Buffer) {
180
- super();
181
- this.rep = new Fr(v);
182
- }
183
-
184
- public build(n: bigint): Field {
185
- return new Field(n);
186
- }
187
-
188
- public add(rhs: Field): Field {
189
- return new Field(this.rep.add(rhs.rep));
190
- }
191
-
192
- public sub(rhs: Field): Field {
193
- return new Field(this.rep.sub(rhs.rep));
194
- }
195
-
196
- public mul(rhs: Field): Field {
197
- return new Field(this.rep.mul(rhs.rep));
198
- }
199
-
200
- // Euclidean division.
201
- public div(rhs: Field): Field {
202
- return new Field(this.rep.ediv(rhs.rep));
203
- }
204
-
205
- // Field division.
206
- public fdiv(rhs: Field): Field {
207
- return new Field(this.rep.div(rhs.rep));
208
- }
209
-
210
- public equals(rhs: Field): boolean {
211
- return this.rep.equals(rhs.rep);
212
- }
213
-
214
- public lt(rhs: Field): boolean {
215
- return this.rep.lt(rhs.rep);
216
- }
217
-
218
- public toBigInt(): bigint {
219
- return this.rep.toBigInt();
220
- }
221
-
222
- public toBuffer(): Buffer {
223
- return this.rep.toBuffer();
224
- }
225
- }
226
-
227
- export enum TypeTag {
228
- FIELD = MEM_TAG_FF,
229
- UINT1 = MEM_TAG_U1,
230
- UINT8 = MEM_TAG_U8,
231
- UINT16 = MEM_TAG_U16,
232
- UINT32 = MEM_TAG_U32,
233
- UINT64 = MEM_TAG_U64,
234
- UINT128 = MEM_TAG_U128,
235
- INVALID = MEM_TAG_U128 + 1,
236
- }
237
-
238
- // Lazy interface definition for tagged memory
239
- export type TaggedMemoryInterface = FunctionsOf<TaggedMemory>;
240
-
241
- export class TaggedMemory implements TaggedMemoryInterface {
242
- static readonly log: Logger = createLogger('simulator:avm:memory');
243
-
244
- // Whether to track and validate memory accesses for each instruction.
245
- static readonly TRACK_MEMORY_ACCESSES = process.env.NODE_ENV === 'test';
246
-
247
- // Memory is modelled by a map with key type being number.
248
- // We however restrict the keys to be non-negative integers smaller than
249
- // MAX_MEMORY_SIZE.
250
- static readonly MAX_MEMORY_SIZE = Number(1n << 32n);
251
- private _mem: Map<number, MemoryValue>;
252
-
253
- constructor() {
254
- this._mem = new Map<number, MemoryValue>();
255
- }
256
-
257
- public getMaxMemorySize(): number {
258
- return TaggedMemory.MAX_MEMORY_SIZE;
259
- }
260
-
261
- public get(offset: number): MemoryValue {
262
- return this.getAs<MemoryValue>(offset);
263
- }
264
-
265
- public getAs<T>(offset: number): T {
266
- assert(Number.isInteger(offset) && offset < TaggedMemory.MAX_MEMORY_SIZE);
267
- const word = this._mem.get(offset);
268
- //TaggedMemory.log.trace(`Memory read: ${offset} -> ${word}`);
269
- if (word === undefined) {
270
- TaggedMemory.log.debug(`WARNING: Memory at offset ${offset} is undefined!`);
271
- return new Field(0) as T;
272
- }
273
- return word as T;
274
- }
275
-
276
- public getSlice(offset: number, size: number): MemoryValue[] {
277
- assert(Number.isInteger(offset) && Number.isInteger(size));
278
-
279
- if (offset + size > TaggedMemory.MAX_MEMORY_SIZE) {
280
- throw new MemorySliceOutOfRangeError(offset, size);
281
- }
282
-
283
- const slice = new Array<MemoryValue>(size);
284
-
285
- for (let i = 0; i < size; i++) {
286
- slice[i] = this._mem.get(offset + i) ?? new Field(0);
287
- }
288
-
289
- TaggedMemory.log.trace(`getSlice(${offset}, ${size}) = ${slice}`);
290
- return slice;
291
- }
292
-
293
- public getSliceAs<T>(offset: number, size: number): T[] {
294
- return this.getSlice(offset, size) as T[];
295
- }
296
-
297
- public getSliceTags(offset: number, size: number): TypeTag[] {
298
- return this.getSlice(offset, size).map(TaggedMemory.getTag);
299
- }
300
-
301
- public set(offset: number, v: MemoryValue) {
302
- assert(Number.isInteger(offset) && offset < TaggedMemory.MAX_MEMORY_SIZE);
303
- this._mem.set(offset, v);
304
- //TaggedMemory.log.trace(`Memory write: ${offset} <- ${v}`);
305
- }
306
-
307
- public setSlice(offset: number, slice: MemoryValue[]) {
308
- assert(Number.isInteger(offset));
309
-
310
- if (offset + slice.length > TaggedMemory.MAX_MEMORY_SIZE) {
311
- throw new MemorySliceOutOfRangeError(offset, slice.length);
312
- }
313
-
314
- slice.forEach((element, idx) => {
315
- this._mem.set(offset + idx, element);
316
- });
317
- TaggedMemory.log.trace(`setSlice(${offset}, ${slice})`);
318
- }
319
-
320
- public getTag(offset: number): TypeTag {
321
- assert(Number.isInteger(offset) && offset < TaggedMemory.MAX_MEMORY_SIZE);
322
- return TaggedMemory.getTag(this._mem.get(offset));
323
- }
324
-
325
- /**
326
- * Check that the memory at the given offset matches the specified tag.
327
- */
328
- public checkTag(tag: TypeTag, offset: number) {
329
- const gotTag = this.getTag(offset);
330
- if (gotTag !== tag) {
331
- throw TagCheckError.forOffset(offset, TypeTag[gotTag], TypeTag[tag]);
332
- }
333
- }
334
-
335
- public static isValidMemoryAddressTag(tag: TypeTag) {
336
- return tag === TypeTag.UINT32;
337
- }
338
-
339
- public static checkIsIntegralTag(tag: TypeTag) {
340
- if (!INTEGRAL_TAGS.has(tag)) {
341
- throw TagCheckError.forTag(TypeTag[tag], 'integral');
342
- }
343
- }
344
-
345
- public static checkIsValidTag(tagNumber: number) {
346
- if (!VALID_TAGS.has(tagNumber)) {
347
- throw new InvalidTagValueError(tagNumber);
348
- }
349
- }
350
-
351
- /**
352
- * Check tags for memory at all of the specified offsets.
353
- */
354
- public checkTags(tag: TypeTag, ...offsets: number[]) {
355
- for (const offset of offsets) {
356
- this.checkTag(tag, offset);
357
- }
358
- }
359
-
360
- /**
361
- * Check that all tags at the given offsets are the same.
362
- */
363
- public checkTagsAreSame(offset0: number, offset1: number) {
364
- const tag0 = this.getTag(offset0);
365
- this.checkTag(tag0, offset1);
366
- }
367
-
368
- /**
369
- * Check tags for all memory in the specified range.
370
- */
371
- public checkTagsRange(tag: TypeTag, startOffset: number, size: number) {
372
- if (startOffset + size > TaggedMemory.MAX_MEMORY_SIZE) {
373
- throw new MemorySliceOutOfRangeError(startOffset, size);
374
- }
375
-
376
- for (let offset = startOffset; offset < startOffset + size; offset++) {
377
- this.checkTag(tag, offset);
378
- }
379
- }
380
-
381
- public static getTag(v: MemoryValue | undefined): TypeTag {
382
- if (v === undefined) {
383
- return TypeTag.FIELD; // uninitialized memory is Field(0)
384
- } else {
385
- return TAG_FOR_MEM_VAL.get(v.constructor.name) ?? TypeTag.INVALID;
386
- }
387
- }
388
-
389
- // Truncates the value to fit the type.
390
- public static buildFromTagTruncating(v: bigint | number, tag: TypeTag): MemoryValue {
391
- v = BigInt(v);
392
- switch (tag) {
393
- case TypeTag.FIELD:
394
- return new Field(v);
395
- case TypeTag.UINT1:
396
- return new Uint1(v & 1n);
397
- case TypeTag.UINT8:
398
- return new Uint8(v & ((1n << 8n) - 1n));
399
- case TypeTag.UINT16:
400
- return new Uint16(v & ((1n << 16n) - 1n));
401
- case TypeTag.UINT32:
402
- return new Uint32(v & ((1n << 32n) - 1n));
403
- case TypeTag.UINT64:
404
- return new Uint64(v & ((1n << 64n) - 1n));
405
- case TypeTag.UINT128:
406
- return new Uint128(v & ((1n << 128n) - 1n));
407
- default:
408
- throw new InvalidTagValueError(tag);
409
- }
410
- }
411
- }
412
-
413
- const TAG_FOR_MEM_VAL = new Map<string, TypeTag>([
414
- ['Field', TypeTag.FIELD],
415
- ['Uint1', TypeTag.UINT1],
416
- ['Uint8', TypeTag.UINT8],
417
- ['Uint16', TypeTag.UINT16],
418
- ['Uint32', TypeTag.UINT32],
419
- ['Uint64', TypeTag.UINT64],
420
- ['Uint128', TypeTag.UINT128],
421
- ]);
422
-
423
- const VALID_TAGS = new Set([
424
- TypeTag.FIELD,
425
- TypeTag.UINT1,
426
- TypeTag.UINT8,
427
- TypeTag.UINT16,
428
- TypeTag.UINT32,
429
- TypeTag.UINT64,
430
- TypeTag.UINT128,
431
- ]);
432
-
433
- const INTEGRAL_TAGS = new Set([
434
- TypeTag.UINT1,
435
- TypeTag.UINT8,
436
- TypeTag.UINT16,
437
- TypeTag.UINT32,
438
- TypeTag.UINT64,
439
- TypeTag.UINT128,
440
- ]);