@aztec/simulator 0.0.1-commit.343b43af6 → 0.0.1-commit.350e0a4d

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 (337) hide show
  1. package/dest/client.d.ts +1 -3
  2. package/dest/client.d.ts.map +1 -1
  3. package/dest/client.js +0 -2
  4. package/dest/private/acvm_wasm.d.ts +1 -1
  5. package/dest/private/acvm_wasm.d.ts.map +1 -1
  6. package/dest/private/acvm_wasm.js +3 -1
  7. package/dest/private/circuit_recording/circuit_recorder.d.ts +36 -23
  8. package/dest/private/circuit_recording/circuit_recorder.d.ts.map +1 -1
  9. package/dest/private/circuit_recording/circuit_recorder.js +65 -69
  10. package/dest/private/circuit_recording/file_circuit_recorder.d.ts +7 -19
  11. package/dest/private/circuit_recording/file_circuit_recorder.d.ts.map +1 -1
  12. package/dest/private/circuit_recording/file_circuit_recorder.js +38 -42
  13. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts +1 -1
  14. package/dest/private/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -1
  15. package/dest/private/circuit_recording/simulator_recorder_wrapper.js +11 -14
  16. package/dest/public/avm/testing/account_proof_fetcher.d.ts +2 -0
  17. package/dest/public/avm/testing/account_proof_fetcher.d.ts.map +1 -0
  18. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.d.ts +2 -1
  19. package/dest/public/avm/testing/base_avm_simulation_tester.d.ts.map +1 -0
  20. package/dest/public/avm/{fixtures → testing}/base_avm_simulation_tester.js +18 -3
  21. package/dest/public/avm/testing/utils.d.ts +32 -0
  22. package/dest/public/avm/testing/utils.d.ts.map +1 -0
  23. package/dest/public/avm/{fixtures → testing}/utils.js +4 -34
  24. package/dest/public/contracts_db_checkpoint.d.ts +2 -2
  25. package/dest/public/contracts_db_checkpoint.d.ts.map +1 -1
  26. package/dest/public/contracts_db_checkpoint.js +1 -1
  27. package/dest/public/fixtures/amm_test.js +2 -2
  28. package/dest/public/fixtures/bulk_test.d.ts +1 -1
  29. package/dest/public/fixtures/bulk_test.d.ts.map +1 -1
  30. package/dest/public/fixtures/bulk_test.js +33 -6
  31. package/dest/public/fixtures/custom_bytecode_tester.d.ts +1 -1
  32. package/dest/public/fixtures/custom_bytecode_tester.d.ts.map +1 -1
  33. package/dest/public/fixtures/custom_bytecode_tester.js +2 -2
  34. package/dest/public/fixtures/index.d.ts +1 -4
  35. package/dest/public/fixtures/index.d.ts.map +1 -1
  36. package/dest/public/fixtures/index.js +0 -3
  37. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +3 -3
  38. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  39. package/dest/public/fixtures/public_tx_simulation_tester.js +10 -36
  40. package/dest/public/fixtures/simple_contract_data_source.js +1 -1
  41. package/dest/public/fixtures/token_test.js +3 -3
  42. package/dest/public/fixtures/utils.d.ts +1 -1
  43. package/dest/public/fixtures/utils.d.ts.map +1 -1
  44. package/dest/public/fixtures/utils.js +16 -15
  45. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts +6 -4
  46. package/dest/public/fuzzing/avm_fuzzer_simulator.d.ts.map +1 -1
  47. package/dest/public/fuzzing/avm_fuzzer_simulator.js +12 -7
  48. package/dest/public/fuzzing/avm_simulator_bin.js +4 -4
  49. package/dest/public/index.d.ts +2 -2
  50. package/dest/public/index.d.ts.map +1 -1
  51. package/dest/public/index.js +1 -1
  52. package/dest/public/public_db_sources.d.ts +6 -3
  53. package/dest/public/public_db_sources.d.ts.map +1 -1
  54. package/dest/public/public_db_sources.js +16 -10
  55. package/dest/public/public_processor/guarded_merkle_tree.d.ts +7 -6
  56. package/dest/public/public_processor/guarded_merkle_tree.d.ts.map +1 -1
  57. package/dest/public/public_processor/guarded_merkle_tree.js +7 -4
  58. package/dest/public/public_processor/public_processor.d.ts +4 -3
  59. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  60. package/dest/public/public_processor/public_processor.js +69 -46
  61. package/dest/public/public_processor/public_processor_metrics.d.ts +4 -1
  62. package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
  63. package/dest/public/public_processor/public_processor_metrics.js +8 -0
  64. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts +1 -1
  65. package/dest/public/public_tx_simulator/contract_provider_for_cpp.d.ts.map +1 -1
  66. package/dest/public/public_tx_simulator/contract_provider_for_cpp.js +5 -4
  67. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts +23 -0
  68. package/dest/public/public_tx_simulator/dumping_public_tx_simulator.d.ts.map +1 -0
  69. package/dest/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.js → dumping_public_tx_simulator.js} +2 -2
  70. package/dest/public/public_tx_simulator/factories.d.ts +6 -6
  71. package/dest/public/public_tx_simulator/factories.d.ts.map +1 -1
  72. package/dest/public/public_tx_simulator/factories.js +6 -6
  73. package/dest/public/public_tx_simulator/index.d.ts +3 -5
  74. package/dest/public/public_tx_simulator/index.d.ts.map +1 -1
  75. package/dest/public/public_tx_simulator/index.js +2 -4
  76. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +41 -70
  77. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  78. package/dest/public/public_tx_simulator/public_tx_simulator.js +98 -319
  79. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts +22 -0
  80. package/dest/public/public_tx_simulator/public_tx_simulator_base.d.ts.map +1 -0
  81. package/dest/public/public_tx_simulator/public_tx_simulator_base.js +28 -0
  82. package/dest/public/test_executor_metrics.d.ts +1 -6
  83. package/dest/public/test_executor_metrics.d.ts.map +1 -1
  84. package/dest/public/test_executor_metrics.js +0 -22
  85. package/package.json +17 -18
  86. package/src/client.ts +0 -2
  87. package/src/private/acvm_wasm.ts +4 -1
  88. package/src/private/circuit_recording/circuit_recorder.ts +84 -78
  89. package/src/private/circuit_recording/file_circuit_recorder.ts +38 -48
  90. package/src/private/circuit_recording/simulator_recorder_wrapper.ts +9 -15
  91. package/src/public/avm/{fixtures → testing}/base_avm_simulation_tester.ts +23 -3
  92. package/src/public/avm/{fixtures → testing}/utils.ts +4 -40
  93. package/src/public/contracts_db_checkpoint.ts +1 -1
  94. package/src/public/fixtures/amm_test.ts +2 -2
  95. package/src/public/fixtures/bulk_test.ts +31 -6
  96. package/src/public/fixtures/custom_bytecode_tester.ts +2 -2
  97. package/src/public/fixtures/index.ts +0 -3
  98. package/src/public/fixtures/public_tx_simulation_tester.ts +10 -42
  99. package/src/public/fixtures/simple_contract_data_source.ts +1 -1
  100. package/src/public/fixtures/token_test.ts +3 -3
  101. package/src/public/fixtures/utils.ts +18 -20
  102. package/src/public/fuzzing/avm_fuzzer_simulator.ts +15 -18
  103. package/src/public/fuzzing/avm_simulator_bin.ts +3 -5
  104. package/src/public/index.ts +3 -3
  105. package/src/public/public_db_sources.ts +21 -14
  106. package/src/public/public_processor/guarded_merkle_tree.ts +10 -7
  107. package/src/public/public_processor/public_processor.ts +88 -54
  108. package/src/public/public_processor/public_processor_metrics.ts +12 -0
  109. package/src/public/public_tx_simulator/contract_provider_for_cpp.ts +5 -4
  110. package/src/public/public_tx_simulator/{dumping_cpp_public_tx_simulator.ts → dumping_public_tx_simulator.ts} +2 -2
  111. package/src/public/public_tx_simulator/factories.ts +6 -6
  112. package/src/public/public_tx_simulator/index.ts +2 -4
  113. package/src/public/public_tx_simulator/public_tx_simulator.ts +150 -476
  114. package/src/public/public_tx_simulator/public_tx_simulator_base.ts +35 -0
  115. package/src/public/test_executor_metrics.ts +0 -24
  116. package/dest/public/avm/avm_context.d.ts +0 -41
  117. package/dest/public/avm/avm_context.d.ts.map +0 -1
  118. package/dest/public/avm/avm_context.js +0 -44
  119. package/dest/public/avm/avm_contract_call_result.d.ts +0 -32
  120. package/dest/public/avm/avm_contract_call_result.d.ts.map +0 -1
  121. package/dest/public/avm/avm_contract_call_result.js +0 -54
  122. package/dest/public/avm/avm_execution_environment.d.ts +0 -24
  123. package/dest/public/avm/avm_execution_environment.d.ts.map +0 -1
  124. package/dest/public/avm/avm_execution_environment.js +0 -33
  125. package/dest/public/avm/avm_gas.d.ts +0 -44
  126. package/dest/public/avm/avm_gas.d.ts.map +0 -1
  127. package/dest/public/avm/avm_gas.js +0 -195
  128. package/dest/public/avm/avm_machine_state.d.ts +0 -98
  129. package/dest/public/avm/avm_machine_state.d.ts.map +0 -1
  130. package/dest/public/avm/avm_machine_state.js +0 -110
  131. package/dest/public/avm/avm_memory_types.d.ts +0 -275
  132. package/dest/public/avm/avm_memory_types.d.ts.map +0 -1
  133. package/dest/public/avm/avm_memory_types.js +0 -354
  134. package/dest/public/avm/avm_simulator.d.ts +0 -41
  135. package/dest/public/avm/avm_simulator.d.ts.map +0 -1
  136. package/dest/public/avm/avm_simulator.js +0 -192
  137. package/dest/public/avm/avm_simulator_interface.d.ts +0 -9
  138. package/dest/public/avm/avm_simulator_interface.d.ts.map +0 -1
  139. package/dest/public/avm/avm_simulator_interface.js +0 -3
  140. package/dest/public/avm/calldata.d.ts +0 -51
  141. package/dest/public/avm/calldata.d.ts.map +0 -1
  142. package/dest/public/avm/calldata.js +0 -63
  143. package/dest/public/avm/errors.d.ts +0 -104
  144. package/dest/public/avm/errors.d.ts.map +0 -1
  145. package/dest/public/avm/errors.js +0 -141
  146. package/dest/public/avm/fixtures/account_proof_fetcher.d.ts +0 -2
  147. package/dest/public/avm/fixtures/account_proof_fetcher.d.ts.map +0 -1
  148. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts +0 -22
  149. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
  150. package/dest/public/avm/fixtures/avm_simulation_tester.js +0 -84
  151. package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
  152. package/dest/public/avm/fixtures/initializers.d.ts +0 -42
  153. package/dest/public/avm/fixtures/initializers.d.ts.map +0 -1
  154. package/dest/public/avm/fixtures/initializers.js +0 -45
  155. package/dest/public/avm/fixtures/utils.d.ts +0 -39
  156. package/dest/public/avm/fixtures/utils.d.ts.map +0 -1
  157. package/dest/public/avm/index.d.ts +0 -2
  158. package/dest/public/avm/index.d.ts.map +0 -1
  159. package/dest/public/avm/index.js +0 -1
  160. package/dest/public/avm/opcodes/accrued_substate.d.ts +0 -74
  161. package/dest/public/avm/opcodes/accrued_substate.d.ts.map +0 -1
  162. package/dest/public/avm/opcodes/accrued_substate.js +0 -254
  163. package/dest/public/avm/opcodes/addressing_mode.d.ts +0 -31
  164. package/dest/public/avm/opcodes/addressing_mode.d.ts.map +0 -1
  165. package/dest/public/avm/opcodes/addressing_mode.js +0 -94
  166. package/dest/public/avm/opcodes/arithmetic.d.ts +0 -49
  167. package/dest/public/avm/opcodes/arithmetic.d.ts.map +0 -1
  168. package/dest/public/avm/opcodes/arithmetic.js +0 -97
  169. package/dest/public/avm/opcodes/bitwise.d.ts +0 -42
  170. package/dest/public/avm/opcodes/bitwise.d.ts.map +0 -1
  171. package/dest/public/avm/opcodes/bitwise.js +0 -99
  172. package/dest/public/avm/opcodes/comparators.d.ts +0 -25
  173. package/dest/public/avm/opcodes/comparators.d.ts.map +0 -1
  174. package/dest/public/avm/opcodes/comparators.js +0 -43
  175. package/dest/public/avm/opcodes/contract.d.ts +0 -20
  176. package/dest/public/avm/opcodes/contract.d.ts.map +0 -1
  177. package/dest/public/avm/opcodes/contract.js +0 -65
  178. package/dest/public/avm/opcodes/control_flow.d.ts +0 -41
  179. package/dest/public/avm/opcodes/control_flow.d.ts.map +0 -1
  180. package/dest/public/avm/opcodes/control_flow.js +0 -107
  181. package/dest/public/avm/opcodes/conversion.d.ts +0 -18
  182. package/dest/public/avm/opcodes/conversion.d.ts.map +0 -1
  183. package/dest/public/avm/opcodes/conversion.js +0 -333
  184. package/dest/public/avm/opcodes/ec_add.d.ts +0 -19
  185. package/dest/public/avm/opcodes/ec_add.d.ts.map +0 -1
  186. package/dest/public/avm/opcodes/ec_add.js +0 -93
  187. package/dest/public/avm/opcodes/environment_getters.d.ts +0 -28
  188. package/dest/public/avm/opcodes/environment_getters.d.ts.map +0 -1
  189. package/dest/public/avm/opcodes/environment_getters.js +0 -77
  190. package/dest/public/avm/opcodes/external_calls.d.ts +0 -59
  191. package/dest/public/avm/opcodes/external_calls.d.ts.map +0 -1
  192. package/dest/public/avm/opcodes/external_calls.js +0 -210
  193. package/dest/public/avm/opcodes/hashing.d.ts +0 -36
  194. package/dest/public/avm/opcodes/hashing.d.ts.map +0 -1
  195. package/dest/public/avm/opcodes/hashing.js +0 -119
  196. package/dest/public/avm/opcodes/index.d.ts +0 -16
  197. package/dest/public/avm/opcodes/index.d.ts.map +0 -1
  198. package/dest/public/avm/opcodes/index.js +0 -15
  199. package/dest/public/avm/opcodes/instruction.d.ts +0 -74
  200. package/dest/public/avm/opcodes/instruction.d.ts.map +0 -1
  201. package/dest/public/avm/opcodes/instruction.js +0 -95
  202. package/dest/public/avm/opcodes/instruction_impl.d.ts +0 -19
  203. package/dest/public/avm/opcodes/instruction_impl.d.ts.map +0 -1
  204. package/dest/public/avm/opcodes/instruction_impl.js +0 -30
  205. package/dest/public/avm/opcodes/memory.d.ts +0 -74
  206. package/dest/public/avm/opcodes/memory.d.ts.map +0 -1
  207. package/dest/public/avm/opcodes/memory.js +0 -257
  208. package/dest/public/avm/opcodes/misc.d.ts +0 -18
  209. package/dest/public/avm/opcodes/misc.d.ts.map +0 -1
  210. package/dest/public/avm/opcodes/misc.js +0 -73
  211. package/dest/public/avm/opcodes/storage.d.ts +0 -25
  212. package/dest/public/avm/opcodes/storage.d.ts.map +0 -1
  213. package/dest/public/avm/opcodes/storage.js +0 -78
  214. package/dest/public/avm/revert_reason.d.ts +0 -18
  215. package/dest/public/avm/revert_reason.d.ts.map +0 -1
  216. package/dest/public/avm/revert_reason.js +0 -39
  217. package/dest/public/avm/serialization/buffer_cursor.d.ts +0 -26
  218. package/dest/public/avm/serialization/buffer_cursor.d.ts.map +0 -1
  219. package/dest/public/avm/serialization/buffer_cursor.js +0 -99
  220. package/dest/public/avm/serialization/bytecode_serialization.d.ts +0 -17
  221. package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +0 -1
  222. package/dest/public/avm/serialization/bytecode_serialization.js +0 -336
  223. package/dest/public/avm/serialization/instruction_serialization.d.ts +0 -114
  224. package/dest/public/avm/serialization/instruction_serialization.d.ts.map +0 -1
  225. package/dest/public/avm/serialization/instruction_serialization.js +0 -261
  226. package/dest/public/avm/test_utils.d.ts +0 -15
  227. package/dest/public/avm/test_utils.d.ts.map +0 -1
  228. package/dest/public/avm/test_utils.js +0 -44
  229. package/dest/public/debug_fn_name.d.ts +0 -18
  230. package/dest/public/debug_fn_name.d.ts.map +0 -1
  231. package/dest/public/debug_fn_name.js +0 -37
  232. package/dest/public/fixtures/custom_bytecode_tests.d.ts +0 -12
  233. package/dest/public/fixtures/custom_bytecode_tests.d.ts.map +0 -1
  234. package/dest/public/fixtures/custom_bytecode_tests.js +0 -174
  235. package/dest/public/fixtures/minimal_public_tx.d.ts +0 -4
  236. package/dest/public/fixtures/minimal_public_tx.d.ts.map +0 -1
  237. package/dest/public/fixtures/minimal_public_tx.js +0 -19
  238. package/dest/public/fixtures/opcode_spammer.d.ts +0 -122
  239. package/dest/public/fixtures/opcode_spammer.d.ts.map +0 -1
  240. package/dest/public/fixtures/opcode_spammer.js +0 -1653
  241. package/dest/public/hinting_db_sources.d.ts +0 -80
  242. package/dest/public/hinting_db_sources.d.ts.map +0 -1
  243. package/dest/public/hinting_db_sources.js +0 -355
  244. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts +0 -53
  245. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.d.ts.map +0 -1
  246. package/dest/public/public_tx_simulator/cpp_public_tx_simulator.js +0 -131
  247. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts +0 -42
  248. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.d.ts.map +0 -1
  249. package/dest/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.js +0 -86
  250. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts +0 -30
  251. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.d.ts.map +0 -1
  252. package/dest/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.js +0 -171
  253. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts +0 -23
  254. package/dest/public/public_tx_simulator/dumping_cpp_public_tx_simulator.d.ts.map +0 -1
  255. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +0 -31
  256. package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +0 -1
  257. package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +0 -51
  258. package/dest/public/public_tx_simulator/public_tx_context.d.ts +0 -131
  259. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +0 -1
  260. package/dest/public/public_tx_simulator/public_tx_context.js +0 -300
  261. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts +0 -21
  262. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.d.ts.map +0 -1
  263. package/dest/public/public_tx_simulator/telemetry_public_tx_simulator.js +0 -415
  264. package/dest/public/side_effect_trace.d.ts +0 -87
  265. package/dest/public/side_effect_trace.d.ts.map +0 -1
  266. package/dest/public/side_effect_trace.js +0 -199
  267. package/dest/public/side_effect_trace_interface.d.ts +0 -22
  268. package/dest/public/side_effect_trace_interface.d.ts.map +0 -1
  269. package/dest/public/side_effect_trace_interface.js +0 -1
  270. package/dest/public/state_manager/index.d.ts +0 -2
  271. package/dest/public/state_manager/index.d.ts.map +0 -1
  272. package/dest/public/state_manager/index.js +0 -1
  273. package/dest/public/state_manager/nullifiers.d.ts +0 -61
  274. package/dest/public/state_manager/nullifiers.d.ts.map +0 -1
  275. package/dest/public/state_manager/nullifiers.js +0 -92
  276. package/dest/public/state_manager/public_storage.d.ts +0 -66
  277. package/dest/public/state_manager/public_storage.d.ts.map +0 -1
  278. package/dest/public/state_manager/public_storage.js +0 -145
  279. package/dest/public/state_manager/state_manager.d.ts +0 -170
  280. package/dest/public/state_manager/state_manager.d.ts.map +0 -1
  281. package/dest/public/state_manager/state_manager.js +0 -402
  282. package/src/public/avm/avm_context.ts +0 -61
  283. package/src/public/avm/avm_contract_call_result.ts +0 -69
  284. package/src/public/avm/avm_execution_environment.ts +0 -51
  285. package/src/public/avm/avm_gas.ts +0 -183
  286. package/src/public/avm/avm_machine_state.ts +0 -170
  287. package/src/public/avm/avm_memory_types.ts +0 -440
  288. package/src/public/avm/avm_simulator.ts +0 -279
  289. package/src/public/avm/avm_simulator_interface.ts +0 -8
  290. package/src/public/avm/calldata.ts +0 -100
  291. package/src/public/avm/errors.ts +0 -177
  292. package/src/public/avm/fixtures/avm_simulation_tester.ts +0 -122
  293. package/src/public/avm/fixtures/initializers.ts +0 -103
  294. package/src/public/avm/index.ts +0 -1
  295. package/src/public/avm/opcodes/accrued_substate.ts +0 -285
  296. package/src/public/avm/opcodes/addressing_mode.ts +0 -111
  297. package/src/public/avm/opcodes/arithmetic.ts +0 -129
  298. package/src/public/avm/opcodes/bitwise.ts +0 -113
  299. package/src/public/avm/opcodes/comparators.ts +0 -55
  300. package/src/public/avm/opcodes/contract.ts +0 -72
  301. package/src/public/avm/opcodes/control_flow.ts +0 -123
  302. package/src/public/avm/opcodes/conversion.ts +0 -104
  303. package/src/public/avm/opcodes/ec_add.ts +0 -105
  304. package/src/public/avm/opcodes/environment_getters.ts +0 -87
  305. package/src/public/avm/opcodes/external_calls.ts +0 -262
  306. package/src/public/avm/opcodes/hashing.ts +0 -151
  307. package/src/public/avm/opcodes/index.ts +0 -15
  308. package/src/public/avm/opcodes/instruction.ts +0 -136
  309. package/src/public/avm/opcodes/instruction_impl.ts +0 -36
  310. package/src/public/avm/opcodes/memory.ts +0 -293
  311. package/src/public/avm/opcodes/misc.ts +0 -102
  312. package/src/public/avm/opcodes/storage.ts +0 -95
  313. package/src/public/avm/revert_reason.ts +0 -58
  314. package/src/public/avm/serialization/buffer_cursor.ts +0 -118
  315. package/src/public/avm/serialization/bytecode_serialization.ts +0 -215
  316. package/src/public/avm/serialization/instruction_serialization.ts +0 -249
  317. package/src/public/avm/test_utils.ts +0 -64
  318. package/src/public/debug_fn_name.ts +0 -52
  319. package/src/public/fixtures/custom_bytecode_tests.ts +0 -228
  320. package/src/public/fixtures/minimal_public_tx.ts +0 -26
  321. package/src/public/fixtures/opcode_spammer.ts +0 -1717
  322. package/src/public/hinting_db_sources.ts +0 -607
  323. package/src/public/public_tx_simulator/cpp_public_tx_simulator.ts +0 -210
  324. package/src/public/public_tx_simulator/cpp_public_tx_simulator_with_hinted_dbs.ts +0 -134
  325. package/src/public/public_tx_simulator/cpp_vs_ts_public_tx_simulator.ts +0 -239
  326. package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +0 -105
  327. package/src/public/public_tx_simulator/public_tx_context.ts +0 -484
  328. package/src/public/public_tx_simulator/telemetry_public_tx_simulator.ts +0 -63
  329. package/src/public/side_effect_trace.ts +0 -293
  330. package/src/public/side_effect_trace_interface.ts +0 -28
  331. package/src/public/state_manager/index.ts +0 -1
  332. package/src/public/state_manager/nullifiers.ts +0 -103
  333. package/src/public/state_manager/public_storage.ts +0 -174
  334. package/src/public/state_manager/state_manager.ts +0 -569
  335. /package/dest/public/avm/{fixtures → testing}/account_proof_fetcher.js +0 -0
  336. /package/src/public/avm/{fixtures → testing}/account_proof.json +0 -0
  337. /package/src/public/avm/{fixtures → testing}/account_proof_fetcher.ts +0 -0
@@ -1,293 +0,0 @@
1
- import { Fr } from '@aztec/foundation/curves/bn254';
2
-
3
- import { strict as assert } from 'assert';
4
-
5
- import type { AvmContext } from '../avm_context.js';
6
- import { Field, TaggedMemory, TypeTag, Uint32 } from '../avm_memory_types.js';
7
- import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
8
- import { Addressing } from './addressing_mode.js';
9
- import { Instruction } from './instruction.js';
10
-
11
- export class Set extends Instruction {
12
- static readonly type: string = 'SET';
13
- // Required for gas.
14
- static readonly opcode: Opcode = Opcode.SET_8;
15
-
16
- public static readonly wireFormat8: OperandType[] = [
17
- OperandType.UINT8, // opcode
18
- OperandType.UINT8, // addressing_mode
19
- OperandType.UINT8, // dstOffset
20
- OperandType.TAG, // tag
21
- OperandType.UINT8, // const (value)
22
- ];
23
- public static readonly wireFormat16: OperandType[] = [
24
- OperandType.UINT8, // opcode
25
- OperandType.UINT8, // addressing_mode
26
- OperandType.UINT16, // dstOffset
27
- OperandType.TAG, // tag
28
- OperandType.UINT16, // const (value)
29
- ];
30
- public static readonly wireFormat32: OperandType[] = [
31
- OperandType.UINT8, // opcode
32
- OperandType.UINT8, // addressing_mode
33
- OperandType.UINT16, // dstOffset
34
- OperandType.TAG, // tag
35
- OperandType.UINT32, // const (value)
36
- ];
37
- public static readonly wireFormat64: OperandType[] = [
38
- OperandType.UINT8, // opcode
39
- OperandType.UINT8, // addressing_mode
40
- OperandType.UINT16, // dstOffset
41
- OperandType.TAG, // tag
42
- OperandType.UINT64, // const (value)
43
- ];
44
- public static readonly wireFormat128: OperandType[] = [
45
- OperandType.UINT8, // opcode
46
- OperandType.UINT8, // addressing_mode
47
- OperandType.UINT16, // dstOffset
48
- OperandType.TAG, // tag
49
- OperandType.UINT128, // const (value)
50
- ];
51
- public static readonly wireFormatFF: OperandType[] = [
52
- OperandType.UINT8, // opcode
53
- OperandType.UINT8, // addressing_mode
54
- OperandType.UINT16, // dstOffset
55
- OperandType.TAG, // tag
56
- OperandType.FF, // const (value)
57
- ];
58
-
59
- constructor(
60
- private addressingMode: number,
61
- private dstOffset: number,
62
- private inTag: number,
63
- private value: bigint | number,
64
- ) {
65
- super();
66
- assert(this.value >= 0, `Value ${this.value} is negative`);
67
- assert(this.value < Fr.MODULUS, `Value ${this.value} is larger than Fr.MODULUS`);
68
- }
69
-
70
- public async execute(context: AvmContext): Promise<void> {
71
- // Constructor ensured that this.inTag is a valid tag
72
- const res = TaggedMemory.buildFromTagTruncating(this.value, this.inTag);
73
-
74
- const memory = context.machineState.memory;
75
- const addressing = Addressing.fromWire(this.addressingMode);
76
-
77
- context.machineState.consumeGas(
78
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
79
- );
80
-
81
- const operands = [this.dstOffset];
82
- const [dstOffset] = addressing.resolve(operands, memory);
83
- memory.set(dstOffset, res);
84
- }
85
- }
86
-
87
- export class Cast extends Instruction {
88
- static readonly type: string = 'CAST';
89
- static readonly opcode = Opcode.CAST_8;
90
-
91
- static readonly wireFormat8 = [
92
- OperandType.UINT8,
93
- OperandType.UINT8,
94
- OperandType.UINT8,
95
- OperandType.UINT8,
96
- OperandType.TAG,
97
- ];
98
- static readonly wireFormat16 = [
99
- OperandType.UINT8,
100
- OperandType.UINT8,
101
- OperandType.UINT16,
102
- OperandType.UINT16,
103
- OperandType.TAG,
104
- ];
105
-
106
- constructor(
107
- private addressingMode: number,
108
- private srcOffset: number,
109
- private dstOffset: number,
110
- private dstTag: number,
111
- ) {
112
- super();
113
- }
114
-
115
- public async execute(context: AvmContext): Promise<void> {
116
- const memory = context.machineState.memory;
117
- const addressing = Addressing.fromWire(this.addressingMode);
118
-
119
- context.machineState.consumeGas(
120
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
121
- );
122
-
123
- const operands = [this.srcOffset, this.dstOffset];
124
- const [srcOffset, dstOffset] = addressing.resolve(operands, memory);
125
-
126
- const a = memory.get(srcOffset);
127
- // Constructor ensured that this.dstTag is a valid tag
128
- const casted = TaggedMemory.buildFromTagTruncating(a.toBigInt(), this.dstTag);
129
-
130
- memory.set(dstOffset, casted);
131
- }
132
- }
133
-
134
- export class Mov extends Instruction {
135
- static readonly type: string = 'MOV';
136
- // FIXME: This is needed for gas.
137
- static readonly opcode: Opcode = Opcode.MOV_8;
138
-
139
- static readonly wireFormat8: OperandType[] = [
140
- OperandType.UINT8,
141
- OperandType.UINT8,
142
- OperandType.UINT8,
143
- OperandType.UINT8,
144
- ];
145
- static readonly wireFormat16: OperandType[] = [
146
- OperandType.UINT8,
147
- OperandType.UINT8,
148
- OperandType.UINT16,
149
- OperandType.UINT16,
150
- ];
151
-
152
- constructor(
153
- private addressingMode: number,
154
- private srcOffset: number,
155
- private dstOffset: number,
156
- ) {
157
- super();
158
- }
159
-
160
- public async execute(context: AvmContext): Promise<void> {
161
- const memory = context.machineState.memory;
162
- const addressing = Addressing.fromWire(this.addressingMode);
163
-
164
- context.machineState.consumeGas(
165
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
166
- );
167
-
168
- const operands = [this.srcOffset, this.dstOffset];
169
- const [srcOffset, dstOffset] = addressing.resolve(operands, memory);
170
- const a = memory.get(srcOffset);
171
- memory.set(dstOffset, a);
172
- }
173
- }
174
-
175
- export class CalldataCopy extends Instruction {
176
- static readonly type: string = 'CALLDATACOPY';
177
- static readonly opcode: Opcode = Opcode.CALLDATACOPY;
178
- // Informs (de)serialization. See Instruction.deserialize.
179
- static readonly wireFormat: OperandType[] = [
180
- OperandType.UINT8,
181
- OperandType.UINT8,
182
- OperandType.UINT16,
183
- OperandType.UINT16,
184
- OperandType.UINT16,
185
- ];
186
-
187
- constructor(
188
- private addressingMode: number,
189
- private copySizeOffset: number,
190
- private cdStartOffset: number,
191
- private dstOffset: number,
192
- ) {
193
- super();
194
- }
195
-
196
- public async execute(context: AvmContext): Promise<void> {
197
- const memory = context.machineState.memory;
198
- const addressing = Addressing.fromWire(this.addressingMode);
199
-
200
- context.machineState.consumeGas(
201
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
202
- );
203
-
204
- const operands = [this.copySizeOffset, this.cdStartOffset, this.dstOffset];
205
- const [copySizeOffset, cdStartOffset, dstOffset] = addressing.resolve(operands, memory);
206
-
207
- memory.checkTags(TypeTag.UINT32, cdStartOffset, copySizeOffset);
208
- const cdStart = memory.get(cdStartOffset).toNumber();
209
- const copySize = memory.get(copySizeOffset).toNumber();
210
- context.machineState.consumeGas(this.dynamicGasCost(copySize));
211
-
212
- // Values which are out-of-range of the calldata array will be set with Field(0);
213
- const slice = context.environment.calldata.slice(cdStart, cdStart + copySize).map(f => new Field(f));
214
- // slice has size = MIN(copySize, calldata.length - cdStart) as TS truncates out-of-range portion
215
- const transformedData = [...slice, ...Array(copySize - slice.length).fill(new Field(0))];
216
-
217
- memory.setSlice(dstOffset, transformedData);
218
- }
219
- }
220
-
221
- export class ReturndataSize extends Instruction {
222
- static readonly type: string = 'RETURNDATASIZE';
223
- static readonly opcode: Opcode = Opcode.RETURNDATASIZE;
224
- // Informs (de)serialization. See Instruction.deserialize.
225
- static readonly wireFormat: OperandType[] = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT16];
226
-
227
- constructor(
228
- private addressingMode: number,
229
- private dstOffset: number,
230
- ) {
231
- super();
232
- }
233
-
234
- public async execute(context: AvmContext): Promise<void> {
235
- const memory = context.machineState.memory;
236
- const addressing = Addressing.fromWire(this.addressingMode);
237
-
238
- context.machineState.consumeGas(
239
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
240
- );
241
-
242
- const operands = [this.dstOffset];
243
- const [dstOffset] = addressing.resolve(operands, memory);
244
-
245
- memory.set(dstOffset, new Uint32(context.machineState.nestedReturndata.length()));
246
- }
247
- }
248
-
249
- export class ReturndataCopy extends Instruction {
250
- static readonly type: string = 'RETURNDATACOPY';
251
- static readonly opcode: Opcode = Opcode.RETURNDATACOPY;
252
- // Informs (de)serialization. See Instruction.deserialize.
253
- static readonly wireFormat: OperandType[] = [
254
- OperandType.UINT8,
255
- OperandType.UINT8,
256
- OperandType.UINT16,
257
- OperandType.UINT16,
258
- OperandType.UINT16,
259
- ];
260
-
261
- constructor(
262
- private addressingMode: number,
263
- private copySizeOffset: number,
264
- private rdStartOffset: number,
265
- private dstOffset: number,
266
- ) {
267
- super();
268
- }
269
-
270
- public async execute(context: AvmContext): Promise<void> {
271
- const memory = context.machineState.memory;
272
- const addressing = Addressing.fromWire(this.addressingMode);
273
-
274
- context.machineState.consumeGas(
275
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
276
- );
277
-
278
- const operands = [this.copySizeOffset, this.rdStartOffset, this.dstOffset];
279
- const [copySizeOffset, rdStartOffset, dstOffset] = addressing.resolve(operands, memory);
280
-
281
- memory.checkTags(TypeTag.UINT32, rdStartOffset, copySizeOffset);
282
- const copySize = memory.get(copySizeOffset).toNumber();
283
- const rdStart = memory.get(rdStartOffset).toNumber();
284
- context.machineState.consumeGas(this.dynamicGasCost(copySize));
285
-
286
- // Values which are out-of-range of the returndata array will be set with Field(0);
287
- const slice = context.machineState.nestedReturndata.slice(rdStart, rdStart + copySize).map(f => new Field(f));
288
- // slice has size = MIN(copySize, returndata.length - rdStart) as TS truncates out-of-range portion
289
- const transformedData = [...slice, ...Array(copySize - slice.length).fill(new Field(0))];
290
-
291
- memory.setSlice(dstOffset, transformedData);
292
- }
293
- }
@@ -1,102 +0,0 @@
1
- import { LogLevels, applyStringFormatting, createLogger } from '@aztec/foundation/log';
2
-
3
- import type { AvmContext } from '../avm_context.js';
4
- import { TypeTag } from '../avm_memory_types.js';
5
- import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
6
- import { Addressing } from './addressing_mode.js';
7
- import { Instruction } from './instruction.js';
8
-
9
- export class DebugLog extends Instruction {
10
- static type: string = 'DEBUGLOG';
11
- static readonly opcode: Opcode = Opcode.DEBUGLOG;
12
- static readonly logger = createLogger('simulator:avm:debug_log');
13
-
14
- // Informs (de)serialization. See Instruction.deserialize.
15
- static readonly wireFormat: OperandType[] = [
16
- OperandType.UINT8, // Opcode
17
- OperandType.UINT8, // Indirect
18
- OperandType.UINT16, // level memory address
19
- OperandType.UINT16, // message memory address
20
- OperandType.UINT16, // fields memory address
21
- OperandType.UINT16, // fields size address
22
- OperandType.UINT16, // message size
23
- ];
24
-
25
- constructor(
26
- private addressingMode: number,
27
- private levelOffset: number,
28
- private messageOffset: number,
29
- private fieldsOffset: number,
30
- private fieldsSizeOffset: number,
31
- private messageSize: number,
32
- ) {
33
- super();
34
- }
35
-
36
- public async execute(context: AvmContext): Promise<void> {
37
- const memory = context.machineState.memory;
38
- const addressing = Addressing.fromWire(this.addressingMode);
39
-
40
- context.machineState.consumeGas(
41
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
42
- );
43
-
44
- const operands = [this.levelOffset, this.messageOffset, this.fieldsOffset, this.fieldsSizeOffset];
45
- const [levelOffset, messageOffset, fieldsOffset, fieldsSizeOffset] = addressing.resolve(operands, memory);
46
-
47
- // DebugLog is a no-op except unless the config is set to collect debug logs.
48
- // Note that we still do address resolution and basic tag-checking (above)
49
- // To avoid a special-case in the witness generator and circuit.
50
- if (context.environment.config.collectDebugLogs) {
51
- memory.checkTag(TypeTag.UINT8, levelOffset);
52
- const levelNumber = memory.get(levelOffset).toNumber();
53
- memory.checkTag(TypeTag.UINT32, fieldsSizeOffset);
54
- const fieldsSize = memory.get(fieldsSizeOffset).toNumber();
55
-
56
- const memoryReads = 1 /* level */ + 1 /* fieldsSize */ + this.messageSize /* message */ + fieldsSize; /* fields */
57
- if (
58
- context.persistableState.getDebugLogMemoryReads() + memoryReads >
59
- context.environment.config.collectionLimits.maxDebugLogMemoryReads
60
- ) {
61
- // Regular error on purpose: this is not a recoverable error.
62
- throw new Error(
63
- `Max debug log memory reads exceeded: ${context.persistableState.getDebugLogMemoryReads() + memoryReads} > ${context.environment.config.collectionLimits.maxDebugLogMemoryReads}`,
64
- );
65
- }
66
- context.persistableState.writeDebugLogMemoryReads(memoryReads);
67
-
68
- const rawMessage = memory.getSlice(messageOffset, this.messageSize);
69
- const fields = memory.getSlice(fieldsOffset, fieldsSize);
70
-
71
- memory.checkTagsRange(TypeTag.UINT8, messageOffset, this.messageSize);
72
- memory.checkTagsRange(TypeTag.FIELD, fieldsOffset, fieldsSize);
73
-
74
- // Interpret str<N> = [u8; N] to string.
75
- const messageAsStr = rawMessage.map(field => String.fromCharCode(field.toNumber())).join('');
76
-
77
- if (!LogLevels[levelNumber]) {
78
- // Regular error on purpose: this is not a recoverable error.
79
- throw new Error(`Invalid debug log level: ${levelNumber}`);
80
- }
81
-
82
- const level = LogLevels[levelNumber];
83
-
84
- context.persistableState.writeDebugLog(
85
- context.environment.address,
86
- level,
87
- messageAsStr,
88
- fields.map(field => field.toFr()),
89
- );
90
-
91
- // Skips string formatting if the level is disabled.
92
- if (DebugLog.logger.isLevelEnabled(level)) {
93
- const formattedStr = applyStringFormatting(
94
- messageAsStr,
95
- fields.map(field => field.toFr()),
96
- );
97
-
98
- DebugLog.logger[level](formattedStr);
99
- }
100
- }
101
- }
102
- }
@@ -1,95 +0,0 @@
1
- import type { AvmContext } from '../avm_context.js';
2
- import { Field, TypeTag } from '../avm_memory_types.js';
3
- import { StaticCallAlterationError } from '../errors.js';
4
- import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
5
- import { Addressing } from './addressing_mode.js';
6
- import { Instruction } from './instruction.js';
7
-
8
- export class SStore extends Instruction {
9
- static readonly type: string = 'SSTORE';
10
- static readonly opcode = Opcode.SSTORE;
11
- // Informs (de)serialization. See Instruction.deserialize.
12
- public static readonly wireFormat: OperandType[] = [
13
- OperandType.UINT8,
14
- OperandType.UINT8,
15
- OperandType.UINT16,
16
- OperandType.UINT16,
17
- ];
18
-
19
- constructor(
20
- private addressingMode: number,
21
- private srcOffset: number,
22
- private slotOffset: number,
23
- ) {
24
- super();
25
- }
26
-
27
- public async execute(context: AvmContext): Promise<void> {
28
- if (context.environment.isStaticCall) {
29
- throw new StaticCallAlterationError();
30
- }
31
-
32
- const memory = context.machineState.memory;
33
- const addressing = Addressing.fromWire(this.addressingMode);
34
-
35
- context.machineState.consumeGas(
36
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
37
- );
38
-
39
- const operands = [this.srcOffset, this.slotOffset];
40
- const [srcOffset, slotOffset] = addressing.resolve(operands, memory);
41
- // We read before tag checking since it's needed for gas cost calculation
42
- const slot = memory.get(slotOffset).toFr();
43
-
44
- context.machineState.consumeGas(
45
- this.dynamicGasCost(Number(context.persistableState.isStorageCold(context.environment.address, slot))),
46
- );
47
-
48
- memory.checkTag(TypeTag.FIELD, slotOffset);
49
- memory.checkTag(TypeTag.FIELD, srcOffset);
50
-
51
- const value = memory.get(srcOffset).toFr();
52
- await context.persistableState.writeStorage(context.environment.address, slot, value);
53
- }
54
- }
55
-
56
- export class SLoad extends Instruction {
57
- static readonly type: string = 'SLOAD';
58
- static readonly opcode = Opcode.SLOAD;
59
- // Informs (de)serialization. See Instruction.deserialize.
60
- public static readonly wireFormat: OperandType[] = [
61
- OperandType.UINT8,
62
- OperandType.UINT8,
63
- OperandType.UINT16,
64
- OperandType.UINT16,
65
- OperandType.UINT16,
66
- ];
67
-
68
- constructor(
69
- private addressingMode: number,
70
- private slotOffset: number,
71
- private contractAddressOffset: number,
72
- private dstOffset: number,
73
- ) {
74
- super();
75
- }
76
-
77
- public async execute(context: AvmContext): Promise<void> {
78
- const memory = context.machineState.memory;
79
- const addressing = Addressing.fromWire(this.addressingMode);
80
-
81
- context.machineState.consumeGas(
82
- this.baseGasCost(addressing.indirectOperandsCount(), addressing.relativeOperandsCount()),
83
- );
84
-
85
- const operands = [this.slotOffset, this.contractAddressOffset, this.dstOffset];
86
- const [slotOffset, contractAddressOffset, dstOffset] = addressing.resolve(operands, memory);
87
- memory.checkTag(TypeTag.FIELD, slotOffset);
88
- memory.checkTag(TypeTag.FIELD, contractAddressOffset);
89
-
90
- const slot = memory.get(slotOffset).toFr();
91
- const contractAddress = memory.get(contractAddressOffset).toAztecAddress();
92
- const value = await context.persistableState.readStorage(contractAddress, slot);
93
- memory.set(dstOffset, new Field(value));
94
- }
95
- }
@@ -1,58 +0,0 @@
1
- import type { Fr } from '@aztec/foundation/curves/bn254';
2
-
3
- import type { AvmContext } from './avm_context.js';
4
- import { type AvmExecutionError, AvmRevertReason } from './errors.js';
5
-
6
- async function createRevertReason(message: string, revertData: Fr[], context: AvmContext): Promise<AvmRevertReason> {
7
- // We drop the returnPc information.
8
- const internalCallStack = context.machineState.internalCallStack.map(entry => entry.callPc);
9
-
10
- // If we are reverting due to the same error that we have been tracking, we use the nested error as the cause.
11
- let nestedError = undefined;
12
- const revertDataEquals = (a: Fr[], b: Fr[]) => a.length === b.length && a.every((v, i) => v.equals(b[i]));
13
- if (
14
- context.machineState.collectedRevertInfo &&
15
- revertDataEquals(context.machineState.collectedRevertInfo.revertDataRepresentative, revertData)
16
- ) {
17
- nestedError = context.machineState.collectedRevertInfo.recursiveRevertReason;
18
- message = context.machineState.collectedRevertInfo.recursiveRevertReason.message;
19
- }
20
-
21
- const { functionSelector, functionName } = await context.persistableState.getPublicFunctionSelectorAndName(
22
- context.environment,
23
- );
24
-
25
- return new AvmRevertReason(
26
- message,
27
- /*failingFunction=*/ {
28
- contractAddress: context.environment.address,
29
- functionSelector,
30
- functionName,
31
- },
32
- /*noirCallStack=*/ [...internalCallStack, context.machineState.pc].map(pc => `0.${pc}`),
33
- /*options=*/ { cause: nestedError },
34
- );
35
- }
36
-
37
- /**
38
- * Create a "revert reason" error for an exceptional halt.
39
- *
40
- * @param haltingError - the lower-level error causing the exceptional halt
41
- * @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
42
- */
43
- export async function revertReasonFromExceptionalHalt(
44
- haltingError: AvmExecutionError,
45
- context: AvmContext,
46
- ): Promise<AvmRevertReason> {
47
- return await createRevertReason(haltingError.message, [], context);
48
- }
49
-
50
- /**
51
- * Create a "revert reason" error for an explicit revert (a root cause).
52
- *
53
- * @param revertData - output data of the explicit REVERT instruction
54
- * @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
55
- */
56
- export async function revertReasonFromExplicitRevert(revertData: Fr[], context: AvmContext): Promise<AvmRevertReason> {
57
- return await createRevertReason('Assertion failed: ', revertData, context);
58
- }
@@ -1,118 +0,0 @@
1
- /*
2
- * A Buffer-like class that automatically advances the position.
3
- */
4
- export class BufferCursor {
5
- constructor(
6
- private _buffer: Buffer,
7
- private _position: number = 0,
8
- ) {}
9
-
10
- public position(): number {
11
- return this._position;
12
- }
13
-
14
- public buffer(): Buffer {
15
- return this._buffer;
16
- }
17
-
18
- public eof(): boolean {
19
- return this._position === this._buffer.length;
20
- }
21
-
22
- public bufferAtPosition(): Buffer {
23
- return this._buffer.subarray(this._position);
24
- }
25
-
26
- public advance(n: number): void {
27
- this._position += n;
28
- }
29
-
30
- public peekUint8(): number {
31
- const ret = this._buffer.readUint8(this._position);
32
- return ret;
33
- }
34
-
35
- public readUint8(): number {
36
- const ret = this._buffer.readUint8(this._position);
37
- this._position += 1;
38
- return ret;
39
- }
40
-
41
- public readUint16LE(): number {
42
- const ret = this._buffer.readUint16LE(this._position);
43
- this._position += 2;
44
- return ret;
45
- }
46
-
47
- public readUint16BE(): number {
48
- const ret = this._buffer.readUint16BE(this._position);
49
- this._position += 2;
50
- return ret;
51
- }
52
-
53
- public readUint32LE(): number {
54
- const ret = this._buffer.readUint32LE(this._position);
55
- this._position += 4;
56
- return ret;
57
- }
58
-
59
- public readUint32BE(): number {
60
- const ret = this._buffer.readUint32BE(this._position);
61
- this._position += 4;
62
- return ret;
63
- }
64
-
65
- public readBigInt64LE(): bigint {
66
- const ret = this._buffer.readBigInt64LE(this._position);
67
- this._position += 8;
68
- return ret;
69
- }
70
-
71
- public readBigInt64BE(): bigint {
72
- const ret = this._buffer.readBigInt64BE(this._position);
73
- this._position += 8;
74
- return ret;
75
- }
76
-
77
- public writeUint8(v: number) {
78
- const ret = this._buffer.writeUint8(v, this._position);
79
- this._position += 1;
80
- return ret;
81
- }
82
-
83
- public writeUint16LE(v: number) {
84
- const ret = this._buffer.writeUint16LE(v, this._position);
85
- this._position += 2;
86
- return ret;
87
- }
88
-
89
- public writeUint16BE(v: number) {
90
- const ret = this._buffer.writeUint16BE(v, this._position);
91
- this._position += 2;
92
- return ret;
93
- }
94
-
95
- public writeUint32LE(v: number) {
96
- const ret = this._buffer.writeUint32LE(v, this._position);
97
- this._position += 4;
98
- return ret;
99
- }
100
-
101
- public writeUint32BE(v: number) {
102
- const ret = this._buffer.writeUint32BE(v, this._position);
103
- this._position += 4;
104
- return ret;
105
- }
106
-
107
- public writeBigInt64LE(v: bigint) {
108
- const ret = this._buffer.writeBigInt64LE(v, this._position);
109
- this._position += 8;
110
- return ret;
111
- }
112
-
113
- public writeBigInt64BE(v: bigint) {
114
- const ret = this._buffer.writeBigInt64BE(v, this._position);
115
- this._position += 8;
116
- return ret;
117
- }
118
- }