@aztec/stdlib 0.0.0-test.1 → 0.0.1-commit.03f7ef2

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 (1531) hide show
  1. package/dest/abi/abi.d.ts +988 -412
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +79 -45
  4. package/dest/abi/authorization_selector.d.ts +52 -0
  5. package/dest/abi/authorization_selector.d.ts.map +1 -0
  6. package/dest/abi/authorization_selector.js +71 -0
  7. package/dest/abi/buffer.d.ts +2 -4
  8. package/dest/abi/buffer.d.ts.map +1 -1
  9. package/dest/abi/buffer.js +1 -1
  10. package/dest/abi/contract_artifact.d.ts +18 -5
  11. package/dest/abi/contract_artifact.d.ts.map +1 -1
  12. package/dest/abi/contract_artifact.js +78 -55
  13. package/dest/abi/decoder.d.ts +3 -3
  14. package/dest/abi/decoder.d.ts.map +1 -1
  15. package/dest/abi/decoder.js +8 -10
  16. package/dest/abi/encoder.d.ts +2 -2
  17. package/dest/abi/encoder.d.ts.map +1 -1
  18. package/dest/abi/encoder.js +69 -3
  19. package/dest/abi/event_metadata_definition.d.ts +8 -0
  20. package/dest/abi/event_metadata_definition.d.ts.map +1 -0
  21. package/dest/abi/event_selector.d.ts +2 -4
  22. package/dest/abi/event_selector.d.ts.map +1 -1
  23. package/dest/abi/event_selector.js +2 -1
  24. package/dest/abi/function_call.d.ts +8 -11
  25. package/dest/abi/function_call.d.ts.map +1 -1
  26. package/dest/abi/function_call.js +6 -2
  27. package/dest/abi/function_selector.d.ts +3 -4
  28. package/dest/abi/function_selector.d.ts.map +1 -1
  29. package/dest/abi/function_selector.js +9 -1
  30. package/dest/abi/index.d.ts +3 -1
  31. package/dest/abi/index.d.ts.map +1 -1
  32. package/dest/abi/index.js +2 -0
  33. package/dest/abi/mocked_keys.d.ts +1 -1
  34. package/dest/abi/note_selector.d.ts +2 -4
  35. package/dest/abi/note_selector.d.ts.map +1 -1
  36. package/dest/abi/note_selector.js +2 -2
  37. package/dest/abi/selector.d.ts +2 -5
  38. package/dest/abi/selector.d.ts.map +1 -1
  39. package/dest/abi/selector.js +1 -1
  40. package/dest/abi/utils.d.ts +7 -3
  41. package/dest/abi/utils.d.ts.map +1 -1
  42. package/dest/abi/utils.js +7 -0
  43. package/dest/auth_witness/auth_witness.d.ts +24 -6
  44. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  45. package/dest/auth_witness/auth_witness.js +30 -1
  46. package/dest/auth_witness/index.d.ts +1 -1
  47. package/dest/avm/avm.d.ts +11630 -2931
  48. package/dest/avm/avm.d.ts.map +1 -1
  49. package/dest/avm/avm.js +947 -132
  50. package/dest/avm/avm_accumulated_data.d.ts +89 -42
  51. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  52. package/dest/avm/avm_accumulated_data.js +110 -12
  53. package/dest/avm/avm_circuit_public_inputs.d.ts +265 -193
  54. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  55. package/dest/avm/avm_circuit_public_inputs.js +70 -10
  56. package/dest/avm/avm_proving_request.d.ts +4671 -1189
  57. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  58. package/dest/avm/contract_storage_read.d.ts +3 -17
  59. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  60. package/dest/avm/contract_storage_read.js +1 -1
  61. package/dest/avm/contract_storage_update_request.d.ts +3 -17
  62. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  63. package/dest/avm/contract_storage_update_request.js +1 -1
  64. package/dest/avm/index.d.ts +2 -2
  65. package/dest/avm/index.d.ts.map +1 -1
  66. package/dest/avm/index.js +1 -1
  67. package/dest/avm/message_pack.d.ts +2 -3
  68. package/dest/avm/message_pack.d.ts.map +1 -1
  69. package/dest/avm/message_pack.js +41 -7
  70. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -7
  71. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  72. package/dest/avm/public_call_stack_item_compressed.js +1 -1
  73. package/dest/avm/public_data_read.d.ts +3 -14
  74. package/dest/avm/public_data_read.d.ts.map +1 -1
  75. package/dest/avm/public_data_read.js +1 -1
  76. package/dest/avm/public_data_update_request.d.ts +3 -15
  77. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  78. package/dest/avm/public_data_update_request.js +1 -1
  79. package/dest/avm/public_data_write.d.ts +18 -14
  80. package/dest/avm/public_data_write.d.ts.map +1 -1
  81. package/dest/avm/public_data_write.js +32 -2
  82. package/dest/avm/public_inner_call_request.d.ts +3 -9
  83. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  84. package/dest/avm/public_inner_call_request.js +1 -1
  85. package/dest/avm/revert_code.d.ts +17 -11
  86. package/dest/avm/revert_code.d.ts.map +1 -1
  87. package/dest/avm/revert_code.js +25 -9
  88. package/dest/aztec-address/index.d.ts +13 -6
  89. package/dest/aztec-address/index.d.ts.map +1 -1
  90. package/dest/aztec-address/index.js +26 -3
  91. package/dest/block/attestation_info.d.ts +32 -0
  92. package/dest/block/attestation_info.d.ts.map +1 -0
  93. package/dest/block/attestation_info.js +42 -0
  94. package/dest/block/block_hash.d.ts +7 -5
  95. package/dest/block/block_hash.d.ts.map +1 -1
  96. package/dest/block/block_hash.js +12 -1
  97. package/dest/block/block_parameter.d.ts +5 -0
  98. package/dest/block/block_parameter.d.ts.map +1 -0
  99. package/dest/block/block_parameter.js +6 -0
  100. package/dest/block/body.d.ts +10 -9
  101. package/dest/block/body.d.ts.map +1 -1
  102. package/dest/block/body.js +13 -30
  103. package/dest/block/checkpointed_l2_block.d.ts +267 -0
  104. package/dest/block/checkpointed_l2_block.d.ts.map +1 -0
  105. package/dest/block/checkpointed_l2_block.js +84 -0
  106. package/dest/block/in_block.d.ts +36 -24
  107. package/dest/block/in_block.d.ts.map +1 -1
  108. package/dest/block/in_block.js +21 -12
  109. package/dest/block/index.d.ts +10 -4
  110. package/dest/block/index.d.ts.map +1 -1
  111. package/dest/block/index.js +9 -3
  112. package/dest/block/l2_block.d.ts +40 -31
  113. package/dest/block/l2_block.d.ts.map +1 -1
  114. package/dest/block/l2_block.js +108 -49
  115. package/dest/block/l2_block_code_to_purge.d.ts +5 -17
  116. package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
  117. package/dest/block/l2_block_code_to_purge.js +28 -18
  118. package/dest/block/l2_block_header.d.ts +98 -0
  119. package/dest/block/l2_block_header.d.ts.map +1 -0
  120. package/dest/block/l2_block_header.js +153 -0
  121. package/dest/block/l2_block_info.d.ts +46 -0
  122. package/dest/block/l2_block_info.d.ts.map +1 -0
  123. package/dest/block/l2_block_info.js +41 -0
  124. package/dest/block/l2_block_new.d.ts +135 -0
  125. package/dest/block/l2_block_new.d.ts.map +1 -0
  126. package/dest/block/l2_block_new.js +152 -0
  127. package/dest/block/l2_block_source.d.ts +183 -123
  128. package/dest/block/l2_block_source.d.ts.map +1 -1
  129. package/dest/block/l2_block_source.js +16 -11
  130. package/dest/block/l2_block_stream/index.d.ts +4 -0
  131. package/dest/block/l2_block_stream/index.d.ts.map +1 -0
  132. package/dest/block/l2_block_stream/index.js +3 -0
  133. package/dest/block/l2_block_stream/interfaces.d.ts +26 -0
  134. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -0
  135. package/dest/block/l2_block_stream/interfaces.js +1 -0
  136. package/dest/block/l2_block_stream/l2_block_stream.d.ts +35 -0
  137. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -0
  138. package/dest/block/{l2_block_downloader → l2_block_stream}/l2_block_stream.js +81 -21
  139. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +19 -0
  140. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -0
  141. package/dest/block/l2_block_stream/l2_tips_memory_store.js +72 -0
  142. package/dest/block/proposal/attestations_and_signers.d.ts +59 -0
  143. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -0
  144. package/dest/block/proposal/attestations_and_signers.js +113 -0
  145. package/dest/block/proposal/committee_attestation.d.ts +36 -0
  146. package/dest/block/proposal/committee_attestation.d.ts.map +1 -0
  147. package/dest/block/proposal/committee_attestation.js +101 -0
  148. package/dest/block/proposal/index.d.ts +3 -0
  149. package/dest/block/proposal/index.d.ts.map +1 -0
  150. package/dest/block/proposal/index.js +2 -0
  151. package/dest/block/test/index.d.ts +2 -0
  152. package/dest/block/test/index.d.ts.map +1 -0
  153. package/dest/block/test/index.js +1 -0
  154. package/dest/block/test/l2_tips_store_test_suite.d.ts +3 -0
  155. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -0
  156. package/dest/block/test/l2_tips_store_test_suite.js +105 -0
  157. package/dest/block/validate_block_result.d.ts +50 -0
  158. package/dest/block/validate_block_result.d.ts.map +1 -0
  159. package/dest/block/validate_block_result.js +84 -0
  160. package/dest/checkpoint/checkpoint.d.ts +153 -0
  161. package/dest/checkpoint/checkpoint.d.ts.map +1 -0
  162. package/dest/checkpoint/checkpoint.js +100 -0
  163. package/dest/checkpoint/checkpoint_info.d.ts +9 -0
  164. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -0
  165. package/dest/checkpoint/checkpoint_info.js +1 -0
  166. package/dest/checkpoint/index.d.ts +3 -0
  167. package/dest/checkpoint/index.d.ts.map +1 -0
  168. package/dest/checkpoint/index.js +2 -0
  169. package/dest/checkpoint/published_checkpoint.d.ts +238 -0
  170. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -0
  171. package/dest/checkpoint/published_checkpoint.js +81 -0
  172. package/dest/config/chain-config.d.ts +19 -0
  173. package/dest/config/chain-config.d.ts.map +1 -0
  174. package/dest/config/{config.js → chain-config.js} +4 -5
  175. package/dest/config/index.d.ts +3 -2
  176. package/dest/config/index.d.ts.map +1 -1
  177. package/dest/config/index.js +2 -1
  178. package/dest/config/node-rpc-config.d.ts +13 -0
  179. package/dest/config/node-rpc-config.d.ts.map +1 -0
  180. package/dest/config/node-rpc-config.js +24 -0
  181. package/dest/contract/artifact_hash.d.ts +8 -10
  182. package/dest/contract/artifact_hash.d.ts.map +1 -1
  183. package/dest/contract/artifact_hash.js +13 -12
  184. package/dest/contract/complete_address.d.ts +2 -7
  185. package/dest/contract/complete_address.d.ts.map +1 -1
  186. package/dest/contract/complete_address.js +1 -1
  187. package/dest/contract/contract_address.d.ts +3 -3
  188. package/dest/contract/contract_address.d.ts.map +1 -1
  189. package/dest/contract/contract_address.js +3 -3
  190. package/dest/contract/contract_class.d.ts +2 -2
  191. package/dest/contract/contract_class.d.ts.map +1 -1
  192. package/dest/contract/contract_class.js +4 -20
  193. package/dest/contract/contract_class_id.d.ts +2 -4
  194. package/dest/contract/contract_class_id.d.ts.map +1 -1
  195. package/dest/contract/contract_class_id.js +8 -6
  196. package/dest/contract/contract_class_metadata.d.ts +8 -0
  197. package/dest/contract/contract_class_metadata.d.ts.map +1 -0
  198. package/dest/contract/contract_class_metadata.js +1 -0
  199. package/dest/contract/contract_deployment_data.d.ts +119 -0
  200. package/dest/contract/contract_deployment_data.d.ts.map +1 -0
  201. package/dest/contract/contract_deployment_data.js +99 -0
  202. package/dest/contract/contract_function_dao.d.ts +1 -1
  203. package/dest/contract/contract_instance.d.ts +15 -16
  204. package/dest/contract/contract_instance.d.ts.map +1 -1
  205. package/dest/contract/contract_instance.js +8 -8
  206. package/dest/contract/contract_instance_update.d.ts +5 -6
  207. package/dest/contract/contract_instance_update.d.ts.map +1 -1
  208. package/dest/contract/contract_instance_update.js +7 -7
  209. package/dest/contract/contract_metadata.d.ts +7 -0
  210. package/dest/contract/contract_metadata.d.ts.map +1 -0
  211. package/dest/contract/contract_metadata.js +1 -0
  212. package/dest/contract/deployment_info.d.ts +2 -2
  213. package/dest/contract/deployment_info.d.ts.map +1 -1
  214. package/dest/contract/index.d.ts +5 -2
  215. package/dest/contract/index.d.ts.map +1 -1
  216. package/dest/contract/index.js +4 -1
  217. package/dest/contract/interfaces/contract_class.d.ts +81 -297
  218. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  219. package/dest/contract/interfaces/contract_class.js +36 -24
  220. package/dest/contract/interfaces/contract_data_source.d.ts +14 -21
  221. package/dest/contract/interfaces/contract_data_source.d.ts.map +1 -1
  222. package/dest/contract/interfaces/contract_instance.d.ts +50 -41
  223. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  224. package/dest/contract/interfaces/contract_instance.js +30 -5
  225. package/dest/contract/interfaces/contract_instance_update.d.ts +16 -16
  226. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  227. package/dest/contract/interfaces/contract_instance_update.js +6 -6
  228. package/dest/contract/interfaces/index.d.ts +1 -1
  229. package/dest/contract/interfaces/node-info.d.ts +3 -3
  230. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  231. package/dest/contract/interfaces/node-info.js +1 -1
  232. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +10 -10
  233. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  234. package/dest/contract/interfaces/protocol_contract_addresses.js +4 -4
  235. package/dest/contract/partial_address.d.ts +2 -2
  236. package/dest/contract/partial_address.d.ts.map +1 -1
  237. package/dest/contract/private_function.d.ts +2 -4
  238. package/dest/contract/private_function.d.ts.map +1 -1
  239. package/dest/contract/private_function.js +3 -2
  240. package/dest/contract/private_function_membership_proof.d.ts +4 -4
  241. package/dest/contract/private_function_membership_proof.js +10 -10
  242. package/dest/contract/utility_function_membership_proof.d.ts +27 -0
  243. package/dest/contract/utility_function_membership_proof.d.ts.map +1 -0
  244. package/dest/contract/{unconstrained_function_membership_proof.js → utility_function_membership_proof.js} +14 -14
  245. package/dest/database-version/index.d.ts +1 -1
  246. package/dest/database-version/version_manager.d.ts +31 -14
  247. package/dest/database-version/version_manager.d.ts.map +1 -1
  248. package/dest/database-version/version_manager.js +42 -21
  249. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +20 -0
  250. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -0
  251. package/dest/{shared_mutable/shared_mutable_values.js → delayed_public_mutable/delayed_public_mutable_values.js} +18 -18
  252. package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.d.ts +15 -0
  253. package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.d.ts.map +1 -0
  254. package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.js +30 -0
  255. package/dest/delayed_public_mutable/index.d.ts +5 -0
  256. package/dest/delayed_public_mutable/index.d.ts.map +1 -0
  257. package/dest/delayed_public_mutable/index.js +4 -0
  258. package/dest/delayed_public_mutable/scheduled_delay_change.d.ts +10 -0
  259. package/dest/delayed_public_mutable/scheduled_delay_change.d.ts.map +1 -0
  260. package/dest/{shared_mutable → delayed_public_mutable}/scheduled_delay_change.js +5 -5
  261. package/dest/delayed_public_mutable/scheduled_value_change.d.ts +12 -0
  262. package/dest/delayed_public_mutable/scheduled_value_change.d.ts.map +1 -0
  263. package/dest/{shared_mutable → delayed_public_mutable}/scheduled_value_change.js +8 -8
  264. package/dest/epoch-helpers/index.d.ts +29 -6
  265. package/dest/epoch-helpers/index.d.ts.map +1 -1
  266. package/dest/epoch-helpers/index.js +42 -11
  267. package/dest/errors/index.d.ts +1 -1
  268. package/dest/errors/proving_error.d.ts +2 -2
  269. package/dest/errors/proving_error.d.ts.map +1 -1
  270. package/dest/errors/simulation_error.d.ts +2 -2
  271. package/dest/errors/simulation_error.d.ts.map +1 -1
  272. package/dest/errors/simulation_error.js +2 -2
  273. package/dest/fees/index.d.ts +1 -1
  274. package/dest/fees/transaction_fee.d.ts +7 -2
  275. package/dest/fees/transaction_fee.d.ts.map +1 -1
  276. package/dest/fees/transaction_fee.js +15 -5
  277. package/dest/file-store/factory.d.ts +7 -0
  278. package/dest/file-store/factory.d.ts.map +1 -0
  279. package/dest/file-store/factory.js +64 -0
  280. package/dest/file-store/gcs.d.ts +20 -0
  281. package/dest/file-store/gcs.d.ts.map +1 -0
  282. package/dest/file-store/gcs.js +115 -0
  283. package/dest/file-store/http.d.ts +14 -0
  284. package/dest/file-store/http.d.ts.map +1 -0
  285. package/dest/file-store/http.js +74 -0
  286. package/dest/file-store/index.d.ts +3 -0
  287. package/dest/file-store/index.d.ts.map +1 -0
  288. package/dest/file-store/index.js +2 -0
  289. package/dest/file-store/interface.d.ts +28 -0
  290. package/dest/file-store/interface.d.ts.map +1 -0
  291. package/dest/file-store/interface.js +1 -0
  292. package/dest/file-store/local.d.ts +14 -0
  293. package/dest/file-store/local.d.ts.map +1 -0
  294. package/dest/file-store/local.js +40 -0
  295. package/dest/file-store/s3.d.ts +26 -0
  296. package/dest/file-store/s3.d.ts.map +1 -0
  297. package/dest/file-store/s3.js +248 -0
  298. package/dest/gas/gas.d.ts +12 -6
  299. package/dest/gas/gas.d.ts.map +1 -1
  300. package/dest/gas/gas.js +17 -2
  301. package/dest/gas/gas_fees.d.ts +26 -20
  302. package/dest/gas/gas_fees.d.ts.map +1 -1
  303. package/dest/gas/gas_fees.js +29 -18
  304. package/dest/gas/gas_settings.d.ts +35 -29
  305. package/dest/gas/gas_settings.d.ts.map +1 -1
  306. package/dest/gas/gas_settings.js +19 -7
  307. package/dest/gas/gas_used.d.ts +13 -2
  308. package/dest/gas/gas_used.d.ts.map +1 -1
  309. package/dest/gas/gas_used.js +19 -1
  310. package/dest/gas/index.d.ts +1 -1
  311. package/dest/hash/hash.d.ts +30 -10
  312. package/dest/hash/hash.d.ts.map +1 -1
  313. package/dest/hash/hash.js +37 -26
  314. package/dest/hash/index.d.ts +1 -1
  315. package/dest/hash/map_slot.d.ts +2 -2
  316. package/dest/hash/map_slot.d.ts.map +1 -1
  317. package/dest/hash/map_slot.js +1 -1
  318. package/dest/interfaces/allowed_element.d.ts +52 -0
  319. package/dest/interfaces/allowed_element.d.ts.map +1 -0
  320. package/dest/interfaces/allowed_element.js +18 -0
  321. package/dest/interfaces/api_limit.d.ts +4 -0
  322. package/dest/interfaces/api_limit.d.ts.map +1 -0
  323. package/dest/interfaces/api_limit.js +3 -0
  324. package/dest/interfaces/archiver.d.ts +55 -3
  325. package/dest/interfaces/archiver.d.ts.map +1 -1
  326. package/dest/interfaces/archiver.js +54 -25
  327. package/dest/interfaces/aztec-node-admin.d.ts +315 -0
  328. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -0
  329. package/dest/interfaces/aztec-node-admin.js +37 -0
  330. package/dest/interfaces/aztec-node.d.ts +120 -108
  331. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  332. package/dest/interfaces/aztec-node.js +53 -42
  333. package/dest/interfaces/block-builder.d.ts +44 -6
  334. package/dest/interfaces/block-builder.d.ts.map +1 -1
  335. package/dest/interfaces/block-builder.js +9 -1
  336. package/dest/interfaces/client.d.ts +3 -2
  337. package/dest/interfaces/client.d.ts.map +1 -1
  338. package/dest/interfaces/client.js +2 -1
  339. package/dest/interfaces/configs.d.ts +119 -60
  340. package/dest/interfaces/configs.d.ts.map +1 -1
  341. package/dest/interfaces/configs.js +23 -23
  342. package/dest/interfaces/epoch-prover.d.ts +36 -17
  343. package/dest/interfaces/epoch-prover.d.ts.map +1 -1
  344. package/dest/interfaces/get_logs_response.d.ts +23 -6
  345. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  346. package/dest/interfaces/get_logs_response.js +5 -4
  347. package/dest/interfaces/l2_logs_source.d.ts +12 -14
  348. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  349. package/dest/interfaces/merkle_tree_operations.d.ts +31 -14
  350. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  351. package/dest/interfaces/p2p-bootstrap.d.ts +1 -1
  352. package/dest/interfaces/p2p.d.ts +18 -5
  353. package/dest/interfaces/p2p.d.ts.map +1 -1
  354. package/dest/interfaces/p2p.js +7 -3
  355. package/dest/interfaces/private_kernel_prover.d.ts +6 -7
  356. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  357. package/dest/interfaces/processed-tx-handler.d.ts +1 -1
  358. package/dest/interfaces/prover-agent.d.ts +32 -7
  359. package/dest/interfaces/prover-agent.d.ts.map +1 -1
  360. package/dest/interfaces/prover-agent.js +15 -6
  361. package/dest/interfaces/prover-broker.d.ts +1 -1
  362. package/dest/interfaces/prover-client.d.ts +12 -10
  363. package/dest/interfaces/prover-client.d.ts.map +1 -1
  364. package/dest/interfaces/prover-client.js +13 -10
  365. package/dest/interfaces/prover-coordination.d.ts +5 -10
  366. package/dest/interfaces/prover-coordination.d.ts.map +1 -1
  367. package/dest/interfaces/prover-coordination.js +1 -7
  368. package/dest/interfaces/prover-node.d.ts +6 -3
  369. package/dest/interfaces/prover-node.d.ts.map +1 -1
  370. package/dest/interfaces/prover-node.js +8 -3
  371. package/dest/interfaces/proving-job-source.d.ts +1 -1
  372. package/dest/interfaces/proving-job.d.ts +4870 -1273
  373. package/dest/interfaces/proving-job.d.ts.map +1 -1
  374. package/dest/interfaces/proving-job.js +139 -107
  375. package/dest/interfaces/public_state_source.d.ts +8 -0
  376. package/dest/interfaces/public_state_source.d.ts.map +1 -0
  377. package/dest/interfaces/public_state_source.js +1 -0
  378. package/dest/interfaces/server.d.ts +12 -6
  379. package/dest/interfaces/server.d.ts.map +1 -1
  380. package/dest/interfaces/server.js +11 -5
  381. package/dest/interfaces/server_circuit_prover.d.ts +46 -35
  382. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  383. package/dest/interfaces/service.d.ts +4 -3
  384. package/dest/interfaces/service.d.ts.map +1 -1
  385. package/dest/interfaces/slasher.d.ts +86 -0
  386. package/dest/interfaces/slasher.d.ts.map +1 -0
  387. package/dest/interfaces/slasher.js +23 -0
  388. package/dest/interfaces/tx_provider.d.ts +24 -0
  389. package/dest/interfaces/tx_provider.d.ts.map +1 -0
  390. package/dest/interfaces/tx_provider.js +1 -0
  391. package/dest/interfaces/validator.d.ts +170 -0
  392. package/dest/interfaces/validator.d.ts.map +1 -0
  393. package/dest/interfaces/validator.js +19 -0
  394. package/dest/interfaces/world_state.d.ts +35 -43
  395. package/dest/interfaces/world_state.d.ts.map +1 -1
  396. package/dest/interfaces/world_state.js +4 -3
  397. package/dest/kernel/claimed_length_array.d.ts +34 -0
  398. package/dest/kernel/claimed_length_array.d.ts.map +1 -0
  399. package/dest/kernel/claimed_length_array.js +58 -0
  400. package/dest/kernel/hiding_kernel_private_inputs.d.ts +19 -0
  401. package/dest/kernel/hiding_kernel_private_inputs.d.ts.map +1 -0
  402. package/dest/kernel/hiding_kernel_private_inputs.js +34 -0
  403. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +7 -7
  404. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  405. package/dest/kernel/hints/build_note_hash_read_request_hints.js +18 -20
  406. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +12 -14
  407. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  408. package/dest/kernel/hints/build_nullifier_read_request_hints.js +17 -32
  409. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -4
  410. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  411. package/dest/kernel/hints/build_transient_data_hints.js +10 -11
  412. package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts +1 -1
  413. package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts.map +1 -1
  414. package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +2 -4
  415. package/dest/kernel/hints/index.d.ts +2 -3
  416. package/dest/kernel/hints/index.d.ts.map +1 -1
  417. package/dest/kernel/hints/index.js +1 -2
  418. package/dest/kernel/hints/key_validation_hint.d.ts +5 -12
  419. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  420. package/dest/kernel/hints/key_validation_hint.js +6 -8
  421. package/dest/kernel/hints/key_validation_request.d.ts +5 -7
  422. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  423. package/dest/kernel/hints/key_validation_request.js +2 -1
  424. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +3 -10
  425. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  426. package/dest/kernel/hints/key_validation_request_and_generator.js +1 -1
  427. package/dest/kernel/hints/note_hash_read_request_hints.d.ts +2 -4
  428. package/dest/kernel/hints/note_hash_read_request_hints.d.ts.map +1 -1
  429. package/dest/kernel/hints/note_hash_read_request_hints.js +5 -5
  430. package/dest/kernel/hints/nullifier_read_request_hints.d.ts +5 -6
  431. package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
  432. package/dest/kernel/hints/nullifier_read_request_hints.js +4 -4
  433. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +10 -34
  434. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  435. package/dest/kernel/hints/private_kernel_reset_hints.js +13 -14
  436. package/dest/kernel/hints/read_request.d.ts +2 -10
  437. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  438. package/dest/kernel/hints/read_request.js +1 -1
  439. package/dest/kernel/hints/read_request_hints.d.ts +30 -38
  440. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  441. package/dest/kernel/hints/read_request_hints.js +28 -28
  442. package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts +3 -5
  443. package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts.map +1 -1
  444. package/dest/kernel/hints/scoped_value_cache.d.ts +2 -2
  445. package/dest/kernel/hints/scoped_value_cache.d.ts.map +1 -1
  446. package/dest/kernel/hints/transient_data_squashing_hint.d.ts +17 -0
  447. package/dest/kernel/hints/transient_data_squashing_hint.d.ts.map +1 -0
  448. package/dest/kernel/hints/{transient_data_index_hint.js → transient_data_squashing_hint.js} +6 -6
  449. package/dest/kernel/hints/tree_leaf_read_request.d.ts +2 -4
  450. package/dest/kernel/hints/tree_leaf_read_request.d.ts.map +1 -1
  451. package/dest/kernel/hints/tree_leaf_read_request.js +1 -1
  452. package/dest/kernel/index.d.ts +5 -3
  453. package/dest/kernel/index.d.ts.map +1 -1
  454. package/dest/kernel/index.js +4 -2
  455. package/dest/kernel/log_hash.d.ts +29 -11
  456. package/dest/kernel/log_hash.d.ts.map +1 -1
  457. package/dest/kernel/log_hash.js +73 -14
  458. package/dest/kernel/note_hash.d.ts +2 -4
  459. package/dest/kernel/note_hash.d.ts.map +1 -1
  460. package/dest/kernel/note_hash.js +1 -1
  461. package/dest/kernel/nullifier.d.ts +4 -6
  462. package/dest/kernel/nullifier.d.ts.map +1 -1
  463. package/dest/kernel/nullifier.js +12 -12
  464. package/dest/kernel/padded_side_effects.d.ts +26 -0
  465. package/dest/kernel/padded_side_effects.d.ts.map +1 -0
  466. package/dest/kernel/padded_side_effects.js +51 -0
  467. package/dest/kernel/private_accumulated_data.d.ts +20 -43
  468. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  469. package/dest/kernel/private_accumulated_data.js +5 -5
  470. package/dest/kernel/private_call_data.d.ts +10 -56
  471. package/dest/kernel/private_call_data.d.ts.map +1 -1
  472. package/dest/kernel/private_call_data.js +7 -19
  473. package/dest/kernel/private_call_request.d.ts +3 -20
  474. package/dest/kernel/private_call_request.d.ts.map +1 -1
  475. package/dest/kernel/private_call_request.js +2 -2
  476. package/dest/kernel/private_circuit_public_inputs.d.ts +68 -126
  477. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  478. package/dest/kernel/private_circuit_public_inputs.js +90 -60
  479. package/dest/kernel/private_context_inputs.d.ts +4 -4
  480. package/dest/kernel/private_context_inputs.d.ts.map +1 -1
  481. package/dest/kernel/private_context_inputs.js +4 -4
  482. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +19 -34
  483. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  484. package/dest/kernel/private_kernel_circuit_public_inputs.js +15 -7
  485. package/dest/kernel/private_kernel_data.d.ts +7 -34
  486. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  487. package/dest/kernel/private_kernel_data.js +8 -21
  488. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +13 -27
  489. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  490. package/dest/kernel/private_kernel_init_circuit_private_inputs.js +13 -8
  491. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +2 -10
  492. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  493. package/dest/kernel/private_kernel_prover_output.d.ts +79 -0
  494. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -0
  495. package/dest/kernel/private_kernel_prover_output.js +28 -0
  496. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +10 -12
  497. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  498. package/dest/kernel/private_kernel_reset_circuit_private_inputs.js +10 -6
  499. package/dest/kernel/private_kernel_reset_dimensions.d.ts +12 -14
  500. package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
  501. package/dest/kernel/private_kernel_reset_dimensions.js +29 -29
  502. package/dest/kernel/private_kernel_simulated_output.d.ts +7 -13
  503. package/dest/kernel/private_kernel_simulated_output.d.ts.map +1 -1
  504. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +15 -8
  505. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  506. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +14 -6
  507. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +19 -33
  508. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  509. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +29 -22
  510. package/dest/kernel/private_log_data.d.ts +3 -6
  511. package/dest/kernel/private_log_data.d.ts.map +1 -1
  512. package/dest/kernel/private_log_data.js +4 -2
  513. package/dest/kernel/private_to_avm_accumulated_data.d.ts +22 -15
  514. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  515. package/dest/kernel/private_to_avm_accumulated_data.js +30 -1
  516. package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -7
  517. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  518. package/dest/kernel/private_to_public_accumulated_data.js +1 -1
  519. package/dest/kernel/private_to_public_accumulated_data_builder.d.ts +2 -2
  520. package/dest/kernel/private_to_public_accumulated_data_builder.d.ts.map +1 -1
  521. package/dest/kernel/private_to_public_accumulated_data_builder.js +1 -1
  522. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +9 -9
  523. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  524. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +17 -11
  525. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -24
  526. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  527. package/dest/kernel/private_to_rollup_accumulated_data.js +1 -1
  528. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +12 -29
  529. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  530. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +12 -13
  531. package/dest/kernel/private_validation_requests.d.ts +10 -47
  532. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  533. package/dest/kernel/private_validation_requests.js +10 -30
  534. package/dest/kernel/public_call_request.d.ts +81 -40
  535. package/dest/kernel/public_call_request.d.ts.map +1 -1
  536. package/dest/kernel/public_call_request.js +96 -21
  537. package/dest/kernel/utils/index.d.ts +1 -1
  538. package/dest/kernel/utils/interfaces.d.ts +1 -1
  539. package/dest/kernel/utils/optional_number.d.ts +3 -11
  540. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  541. package/dest/kernel/utils/order_and_comparison.d.ts +1 -4
  542. package/dest/kernel/utils/order_and_comparison.d.ts.map +1 -1
  543. package/dest/kernel/utils/order_and_comparison.js +0 -19
  544. package/dest/keys/derivation.d.ts +4 -5
  545. package/dest/keys/derivation.d.ts.map +1 -1
  546. package/dest/keys/derivation.js +7 -17
  547. package/dest/keys/index.d.ts +1 -1
  548. package/dest/keys/key_types.d.ts +1 -1
  549. package/dest/keys/public_key.d.ts +2 -2
  550. package/dest/keys/public_key.d.ts.map +1 -1
  551. package/dest/keys/public_keys.d.ts +11 -8
  552. package/dest/keys/public_keys.d.ts.map +1 -1
  553. package/dest/keys/public_keys.js +15 -3
  554. package/dest/keys/utils.d.ts +1 -1
  555. package/dest/l1-contracts/index.d.ts +2 -0
  556. package/dest/l1-contracts/index.d.ts.map +1 -0
  557. package/dest/l1-contracts/index.js +1 -0
  558. package/dest/l1-contracts/slash_factory.d.ts +45 -0
  559. package/dest/l1-contracts/slash_factory.d.ts.map +1 -0
  560. package/dest/l1-contracts/slash_factory.js +157 -0
  561. package/dest/logs/contract_class_log.d.ts +72 -18
  562. package/dest/logs/contract_class_log.d.ts.map +1 -1
  563. package/dest/logs/contract_class_log.js +136 -81
  564. package/dest/logs/debug_log.d.ts +21 -0
  565. package/dest/logs/debug_log.d.ts.map +1 -0
  566. package/dest/logs/debug_log.js +39 -0
  567. package/dest/logs/directional_app_tagging_secret.d.ts +40 -0
  568. package/dest/logs/directional_app_tagging_secret.d.ts.map +1 -0
  569. package/dest/logs/directional_app_tagging_secret.js +64 -0
  570. package/dest/logs/extended_contract_class_log.d.ts +1 -5
  571. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  572. package/dest/logs/extended_public_log.d.ts +12 -8
  573. package/dest/logs/extended_public_log.d.ts.map +1 -1
  574. package/dest/logs/index.d.ts +9 -3
  575. package/dest/logs/index.d.ts.map +1 -1
  576. package/dest/logs/index.js +8 -2
  577. package/dest/logs/log_filter.d.ts +1 -1
  578. package/dest/logs/log_id.d.ts +16 -10
  579. package/dest/logs/log_id.d.ts.map +1 -1
  580. package/dest/logs/log_id.js +19 -11
  581. package/dest/logs/log_with_tx_data.d.ts +14 -6
  582. package/dest/logs/log_with_tx_data.d.ts.map +1 -1
  583. package/dest/logs/log_with_tx_data.js +24 -11
  584. package/dest/logs/message_context.d.ts +29 -0
  585. package/dest/logs/message_context.d.ts.map +1 -0
  586. package/dest/logs/message_context.js +56 -0
  587. package/dest/logs/pending_tagged_log.d.ts +14 -0
  588. package/dest/logs/pending_tagged_log.d.ts.map +1 -0
  589. package/dest/logs/pending_tagged_log.js +34 -0
  590. package/dest/logs/pre_tag.d.ts +34 -0
  591. package/dest/logs/pre_tag.d.ts.map +1 -0
  592. package/dest/logs/pre_tag.js +7 -0
  593. package/dest/logs/private_log.d.ts +26 -10
  594. package/dest/logs/private_log.d.ts.map +1 -1
  595. package/dest/logs/private_log.js +62 -24
  596. package/dest/logs/public_log.d.ts +37 -14
  597. package/dest/logs/public_log.d.ts.map +1 -1
  598. package/dest/logs/public_log.js +141 -35
  599. package/dest/logs/shared_secret_derivation.d.ts +17 -0
  600. package/dest/logs/shared_secret_derivation.d.ts.map +1 -0
  601. package/dest/logs/{l1_payload/shared_secret_derivation.js → shared_secret_derivation.js} +6 -10
  602. package/dest/logs/siloed_tag.d.ts +23 -0
  603. package/dest/logs/siloed_tag.d.ts.map +1 -0
  604. package/dest/logs/siloed_tag.js +30 -0
  605. package/dest/logs/tag.d.ts +21 -0
  606. package/dest/logs/tag.d.ts.map +1 -0
  607. package/dest/logs/tag.js +30 -0
  608. package/dest/logs/tx_scoped_l2_log.d.ts +49 -39
  609. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  610. package/dest/logs/tx_scoped_l2_log.js +52 -19
  611. package/dest/messaging/in_hash.d.ts +4 -0
  612. package/dest/messaging/in_hash.d.ts.map +1 -0
  613. package/dest/messaging/in_hash.js +8 -0
  614. package/dest/messaging/inbox_leaf.d.ts +11 -7
  615. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  616. package/dest/messaging/inbox_leaf.js +19 -4
  617. package/dest/messaging/index.d.ts +4 -1
  618. package/dest/messaging/index.d.ts.map +1 -1
  619. package/dest/messaging/index.js +3 -0
  620. package/dest/messaging/l1_actor.d.ts +2 -10
  621. package/dest/messaging/l1_actor.d.ts.map +1 -1
  622. package/dest/messaging/l1_actor.js +2 -2
  623. package/dest/messaging/l1_to_l2_message.d.ts +2 -9
  624. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  625. package/dest/messaging/l1_to_l2_message.js +2 -2
  626. package/dest/messaging/l1_to_l2_message_source.d.ts +9 -8
  627. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  628. package/dest/messaging/l2_actor.d.ts +2 -10
  629. package/dest/messaging/l2_actor.d.ts.map +1 -1
  630. package/dest/messaging/l2_actor.js +2 -2
  631. package/dest/messaging/l2_to_l1_membership.d.ts +15 -0
  632. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -0
  633. package/dest/messaging/l2_to_l1_membership.js +63 -0
  634. package/dest/messaging/l2_to_l1_message.d.ts +128 -19
  635. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  636. package/dest/messaging/l2_to_l1_message.js +102 -35
  637. package/dest/messaging/out_hash.d.ts +5 -0
  638. package/dest/messaging/out_hash.d.ts.map +1 -0
  639. package/dest/messaging/out_hash.js +28 -0
  640. package/dest/noir/index.d.ts +25 -8
  641. package/dest/noir/index.d.ts.map +1 -1
  642. package/dest/noir/index.js +6 -5
  643. package/dest/note/comparator.d.ts +1 -1
  644. package/dest/note/index.d.ts +2 -2
  645. package/dest/note/index.d.ts.map +1 -1
  646. package/dest/note/index.js +1 -1
  647. package/dest/note/note.d.ts +39 -21
  648. package/dest/note/note.d.ts.map +1 -1
  649. package/dest/note/note.js +55 -5
  650. package/dest/note/note_dao.d.ts +79 -0
  651. package/dest/note/note_dao.d.ts.map +1 -0
  652. package/dest/note/note_dao.js +112 -0
  653. package/dest/note/note_status.d.ts +1 -1
  654. package/dest/note/notes_filter.d.ts +9 -9
  655. package/dest/note/notes_filter.d.ts.map +1 -1
  656. package/dest/note/notes_filter.js +2 -4
  657. package/dest/p2p/attestation_utils.d.ts +10 -0
  658. package/dest/p2p/attestation_utils.d.ts.map +1 -0
  659. package/dest/p2p/attestation_utils.js +21 -0
  660. package/dest/p2p/block_attestation.d.ts +48 -17
  661. package/dest/p2p/block_attestation.d.ts.map +1 -1
  662. package/dest/p2p/block_attestation.js +46 -23
  663. package/dest/p2p/block_proposal.d.ts +27 -14
  664. package/dest/p2p/block_proposal.d.ts.map +1 -1
  665. package/dest/p2p/block_proposal.js +48 -20
  666. package/dest/p2p/client_type.d.ts +1 -1
  667. package/dest/p2p/consensus_payload.d.ts +42 -24
  668. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  669. package/dest/p2p/consensus_payload.js +44 -29
  670. package/dest/p2p/gossipable.d.ts +20 -18
  671. package/dest/p2p/gossipable.d.ts.map +1 -1
  672. package/dest/p2p/gossipable.js +41 -4
  673. package/dest/p2p/index.d.ts +2 -1
  674. package/dest/p2p/index.d.ts.map +1 -1
  675. package/dest/p2p/index.js +1 -0
  676. package/dest/p2p/interface.d.ts +1 -14
  677. package/dest/p2p/interface.d.ts.map +1 -1
  678. package/dest/p2p/interface.js +1 -19
  679. package/dest/p2p/message_validator.d.ts +1 -1
  680. package/dest/p2p/peer_error.d.ts +1 -1
  681. package/dest/p2p/signature_utils.d.ts +6 -7
  682. package/dest/p2p/signature_utils.d.ts.map +1 -1
  683. package/dest/p2p/signature_utils.js +7 -5
  684. package/dest/p2p/topic_type.d.ts +7 -10
  685. package/dest/p2p/topic_type.d.ts.map +1 -1
  686. package/dest/p2p/topic_type.js +35 -15
  687. package/dest/parity/index.d.ts +3 -4
  688. package/dest/parity/index.d.ts.map +1 -1
  689. package/dest/parity/index.js +2 -3
  690. package/dest/parity/parity_base_private_inputs.d.ts +33 -0
  691. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -0
  692. package/dest/parity/{base_parity_inputs.js → parity_base_private_inputs.js} +11 -7
  693. package/dest/parity/parity_public_inputs.d.ts +4 -9
  694. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  695. package/dest/parity/parity_public_inputs.js +1 -1
  696. package/dest/parity/parity_root_private_inputs.d.ts +38 -0
  697. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -0
  698. package/dest/parity/{root_parity_inputs.js → parity_root_private_inputs.js} +12 -13
  699. package/dest/proofs/chonk_proof.d.ts +28 -0
  700. package/dest/proofs/chonk_proof.d.ts.map +1 -0
  701. package/dest/proofs/chonk_proof.js +101 -0
  702. package/dest/proofs/index.d.ts +3 -2
  703. package/dest/proofs/index.d.ts.map +1 -1
  704. package/dest/proofs/index.js +2 -1
  705. package/dest/proofs/proof.d.ts +7 -11
  706. package/dest/proofs/proof.d.ts.map +1 -1
  707. package/dest/proofs/proof.js +29 -21
  708. package/dest/proofs/proof_data.d.ts +33 -0
  709. package/dest/proofs/proof_data.d.ts.map +1 -0
  710. package/dest/proofs/proof_data.js +39 -0
  711. package/dest/proofs/proving_request_type.d.ts +18 -13
  712. package/dest/proofs/proving_request_type.d.ts.map +1 -1
  713. package/dest/proofs/proving_request_type.js +17 -11
  714. package/dest/proofs/recursive_proof.d.ts +5 -31
  715. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  716. package/dest/proofs/recursive_proof.js +1 -1
  717. package/dest/rollup/avm_proof_data.d.ts +4 -16
  718. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  719. package/dest/rollup/avm_proof_data.js +1 -25
  720. package/dest/rollup/base_rollup_hints.d.ts +32 -66
  721. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  722. package/dest/rollup/base_rollup_hints.js +41 -40
  723. package/dest/rollup/block_constant_data.d.ts +40 -0
  724. package/dest/rollup/block_constant_data.d.ts.map +1 -0
  725. package/dest/rollup/block_constant_data.js +50 -0
  726. package/dest/rollup/block_headers_hash.d.ts +4 -0
  727. package/dest/rollup/block_headers_hash.d.ts.map +1 -0
  728. package/dest/rollup/block_headers_hash.js +9 -0
  729. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +47 -0
  730. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -0
  731. package/dest/rollup/{block_merge_rollup.js → block_merge_rollup_private_inputs.js} +14 -13
  732. package/dest/rollup/block_rollup_public_inputs.d.ts +92 -0
  733. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -0
  734. package/dest/rollup/block_rollup_public_inputs.js +91 -0
  735. package/dest/rollup/block_root_rollup_private_inputs.d.ts +162 -0
  736. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -0
  737. package/dest/rollup/block_root_rollup_private_inputs.js +249 -0
  738. package/dest/rollup/checkpoint_constant_data.d.ts +68 -0
  739. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -0
  740. package/dest/rollup/checkpoint_constant_data.js +80 -0
  741. package/dest/rollup/checkpoint_header.d.ts +89 -0
  742. package/dest/rollup/checkpoint_header.d.ts.map +1 -0
  743. package/dest/rollup/checkpoint_header.js +184 -0
  744. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +27 -0
  745. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -0
  746. package/dest/rollup/checkpoint_merge_rollup_private_inputs.js +37 -0
  747. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +82 -0
  748. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -0
  749. package/dest/rollup/checkpoint_rollup_public_inputs.js +108 -0
  750. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +100 -0
  751. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -0
  752. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +179 -0
  753. package/dest/rollup/epoch_constant_data.d.ts +41 -0
  754. package/dest/rollup/epoch_constant_data.d.ts.map +1 -0
  755. package/dest/rollup/epoch_constant_data.js +53 -0
  756. package/dest/rollup/index.d.ts +21 -17
  757. package/dest/rollup/index.d.ts.map +1 -1
  758. package/dest/rollup/index.js +20 -16
  759. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +21 -0
  760. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -0
  761. package/dest/rollup/private_tx_base_rollup_private_inputs.js +42 -0
  762. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +21 -0
  763. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -0
  764. package/dest/rollup/public_chonk_verifier_private_inputs.js +43 -0
  765. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +20 -0
  766. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -0
  767. package/dest/rollup/public_chonk_verifier_public_inputs.js +42 -0
  768. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +23 -0
  769. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -0
  770. package/dest/rollup/public_tx_base_rollup_private_inputs.js +46 -0
  771. package/dest/rollup/root_rollup_private_inputs.d.ts +62 -0
  772. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -0
  773. package/dest/rollup/root_rollup_private_inputs.js +69 -0
  774. package/dest/rollup/root_rollup_public_inputs.d.ts +44 -0
  775. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -0
  776. package/dest/rollup/root_rollup_public_inputs.js +71 -0
  777. package/dest/rollup/tree_snapshot_diff_hints.d.ts +64 -0
  778. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -0
  779. package/dest/rollup/tree_snapshot_diff_hints.js +75 -0
  780. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +41 -0
  781. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -0
  782. package/dest/rollup/{merge_rollup.js → tx_merge_rollup_private_inputs.js} +14 -13
  783. package/dest/rollup/tx_rollup_public_inputs.d.ts +87 -0
  784. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -0
  785. package/dest/rollup/{base_or_merge_rollup_public_inputs.js → tx_rollup_public_inputs.js} +17 -22
  786. package/dest/schemas/index.d.ts +1 -1
  787. package/dest/schemas/schemas.d.ts +93 -19
  788. package/dest/schemas/schemas.d.ts.map +1 -1
  789. package/dest/schemas/schemas.js +15 -2
  790. package/dest/slashing/empire.d.ts +31 -0
  791. package/dest/slashing/empire.d.ts.map +1 -0
  792. package/dest/slashing/empire.js +85 -0
  793. package/dest/slashing/helpers.d.ts +36 -0
  794. package/dest/slashing/helpers.d.ts.map +1 -0
  795. package/dest/slashing/helpers.js +91 -0
  796. package/dest/slashing/index.d.ts +7 -0
  797. package/dest/slashing/index.d.ts.map +1 -0
  798. package/dest/slashing/index.js +6 -0
  799. package/dest/slashing/interfaces.d.ts +12 -0
  800. package/dest/slashing/interfaces.d.ts.map +1 -0
  801. package/dest/slashing/interfaces.js +1 -0
  802. package/dest/slashing/serialization.d.ts +8 -0
  803. package/dest/slashing/serialization.d.ts.map +1 -0
  804. package/dest/slashing/serialization.js +78 -0
  805. package/dest/slashing/tally.d.ts +23 -0
  806. package/dest/slashing/tally.d.ts.map +1 -0
  807. package/dest/slashing/tally.js +60 -0
  808. package/dest/slashing/types.d.ts +161 -0
  809. package/dest/slashing/types.d.ts.map +1 -0
  810. package/dest/slashing/types.js +88 -0
  811. package/dest/snapshots/download.d.ts +9 -0
  812. package/dest/snapshots/download.d.ts.map +1 -0
  813. package/dest/snapshots/download.js +93 -0
  814. package/dest/snapshots/index.d.ts +4 -0
  815. package/dest/snapshots/index.d.ts.map +1 -0
  816. package/dest/snapshots/index.js +3 -0
  817. package/dest/snapshots/types.d.ts +120 -0
  818. package/dest/snapshots/types.d.ts.map +1 -0
  819. package/dest/snapshots/types.js +35 -0
  820. package/dest/snapshots/upload.d.ts +8 -0
  821. package/dest/snapshots/upload.d.ts.map +1 -0
  822. package/dest/snapshots/upload.js +42 -0
  823. package/dest/stats/index.d.ts +1 -1
  824. package/dest/stats/stats.d.ts +19 -15
  825. package/dest/stats/stats.d.ts.map +1 -1
  826. package/dest/tests/factories.d.ts +110 -127
  827. package/dest/tests/factories.d.ts.map +1 -1
  828. package/dest/tests/factories.js +391 -371
  829. package/dest/tests/fixtures.d.ts +1 -1
  830. package/dest/tests/index.d.ts +1 -1
  831. package/dest/tests/jest.d.ts +1 -1
  832. package/dest/tests/mocks.d.ts +86 -22
  833. package/dest/tests/mocks.d.ts.map +1 -1
  834. package/dest/tests/mocks.js +284 -91
  835. package/dest/trees/append_only_tree_snapshot.d.ts +14 -20
  836. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  837. package/dest/trees/append_only_tree_snapshot.js +18 -3
  838. package/dest/trees/database_public_state_source.d.ts +11 -0
  839. package/dest/trees/database_public_state_source.d.ts.map +1 -0
  840. package/dest/trees/database_public_state_source.js +18 -0
  841. package/dest/trees/index.d.ts +2 -2
  842. package/dest/trees/index.d.ts.map +1 -1
  843. package/dest/trees/index.js +1 -1
  844. package/dest/trees/merkle_tree_id.d.ts +17 -9
  845. package/dest/trees/merkle_tree_id.d.ts.map +1 -1
  846. package/dest/trees/merkle_tree_id.js +10 -0
  847. package/dest/trees/nullifier_leaf.d.ts +66 -30
  848. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  849. package/dest/trees/nullifier_leaf.js +70 -23
  850. package/dest/trees/nullifier_membership_witness.d.ts +40 -54
  851. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  852. package/dest/trees/nullifier_membership_witness.js +15 -2
  853. package/dest/trees/public_data_leaf.d.ts +78 -45
  854. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  855. package/dest/trees/public_data_leaf.js +66 -31
  856. package/dest/trees/public_data_witness.d.ts +47 -64
  857. package/dest/trees/public_data_witness.d.ts.map +1 -1
  858. package/dest/trees/public_data_witness.js +21 -5
  859. package/dest/tx/block_header.d.ts +24 -32
  860. package/dest/tx/block_header.d.ts.map +1 -1
  861. package/dest/tx/block_header.js +40 -23
  862. package/dest/tx/call_context.d.ts +8 -23
  863. package/dest/tx/call_context.d.ts.map +1 -1
  864. package/dest/tx/capsule.d.ts +5 -8
  865. package/dest/tx/capsule.d.ts.map +1 -1
  866. package/dest/tx/capsule.js +3 -1
  867. package/dest/tx/content_commitment.d.ts +27 -83
  868. package/dest/tx/content_commitment.d.ts.map +1 -1
  869. package/dest/tx/content_commitment.js +48 -54
  870. package/dest/tx/execution_payload.d.ts +37 -0
  871. package/dest/tx/execution_payload.d.ts.map +1 -0
  872. package/dest/tx/execution_payload.js +40 -0
  873. package/dest/tx/function_data.d.ts +5 -9
  874. package/dest/tx/function_data.d.ts.map +1 -1
  875. package/dest/tx/function_data.js +1 -1
  876. package/dest/tx/global_variable_builder.d.ts +7 -4
  877. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  878. package/dest/tx/global_variables.d.ts +76 -52
  879. package/dest/tx/global_variables.d.ts.map +1 -1
  880. package/dest/tx/global_variables.js +69 -21
  881. package/dest/tx/hashed_values.d.ts +15 -11
  882. package/dest/tx/hashed_values.d.ts.map +1 -1
  883. package/dest/tx/hashed_values.js +27 -10
  884. package/dest/tx/in_tx.d.ts +26 -0
  885. package/dest/tx/in_tx.d.ts.map +1 -0
  886. package/dest/tx/in_tx.js +14 -0
  887. package/dest/tx/index.d.ts +11 -3
  888. package/dest/tx/index.d.ts.map +1 -1
  889. package/dest/tx/index.js +10 -2
  890. package/dest/tx/indexed_tx_effect.d.ts +31 -0
  891. package/dest/tx/indexed_tx_effect.d.ts.map +1 -0
  892. package/dest/tx/indexed_tx_effect.js +35 -0
  893. package/dest/tx/offchain_effect.d.ts +14 -0
  894. package/dest/tx/offchain_effect.d.ts.map +1 -0
  895. package/dest/tx/offchain_effect.js +4 -0
  896. package/dest/tx/partial_state_reference.d.ts +12 -8
  897. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  898. package/dest/tx/partial_state_reference.js +22 -2
  899. package/dest/tx/private_execution_result.d.ts +63 -78
  900. package/dest/tx/private_execution_result.d.ts.map +1 -1
  901. package/dest/tx/private_execution_result.js +74 -83
  902. package/dest/tx/private_tx_constant_data.d.ts +45 -0
  903. package/dest/tx/private_tx_constant_data.d.ts.map +1 -0
  904. package/dest/tx/private_tx_constant_data.js +69 -0
  905. package/dest/tx/processed_tx.d.ts +10 -11
  906. package/dest/tx/processed_tx.d.ts.map +1 -1
  907. package/dest/tx/processed_tx.js +28 -25
  908. package/dest/tx/profiling.d.ts +360 -0
  909. package/dest/tx/profiling.d.ts.map +1 -0
  910. package/dest/tx/profiling.js +130 -0
  911. package/dest/tx/protocol_contracts.d.ts +37 -0
  912. package/dest/tx/protocol_contracts.d.ts.map +1 -0
  913. package/dest/tx/protocol_contracts.js +58 -0
  914. package/dest/tx/proven_tx.d.ts +129 -0
  915. package/dest/tx/proven_tx.d.ts.map +1 -0
  916. package/dest/tx/proven_tx.js +45 -0
  917. package/dest/tx/public_call_request_with_calldata.d.ts +40 -0
  918. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -0
  919. package/dest/tx/public_call_request_with_calldata.js +69 -0
  920. package/dest/tx/public_simulation_output.d.ts +7 -5
  921. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  922. package/dest/tx/public_simulation_output.js +16 -9
  923. package/dest/tx/simulated_tx.d.ts +1194 -46
  924. package/dest/tx/simulated_tx.d.ts.map +1 -1
  925. package/dest/tx/simulated_tx.js +52 -47
  926. package/dest/tx/state_reference.d.ts +18 -14
  927. package/dest/tx/state_reference.d.ts.map +1 -1
  928. package/dest/tx/state_reference.js +38 -5
  929. package/dest/tx/tree_snapshots.d.ts +15 -10
  930. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  931. package/dest/tx/tree_snapshots.js +12 -3
  932. package/dest/tx/tx.d.ts +61 -101
  933. package/dest/tx/tx.d.ts.map +1 -1
  934. package/dest/tx/tx.js +151 -150
  935. package/dest/tx/tx_constant_data.d.ts +9 -43
  936. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  937. package/dest/tx/tx_constant_data.js +12 -21
  938. package/dest/tx/tx_context.d.ts +35 -38
  939. package/dest/tx/tx_context.d.ts.map +1 -1
  940. package/dest/tx/tx_context.js +1 -1
  941. package/dest/tx/tx_effect.d.ts +25 -83
  942. package/dest/tx/tx_effect.d.ts.map +1 -1
  943. package/dest/tx/tx_effect.js +83 -270
  944. package/dest/tx/tx_execution_request.d.ts +11 -33
  945. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  946. package/dest/tx/tx_execution_request.js +17 -10
  947. package/dest/tx/tx_hash.d.ts +13 -7
  948. package/dest/tx/tx_hash.d.ts.map +1 -1
  949. package/dest/tx/tx_hash.js +25 -6
  950. package/dest/tx/tx_receipt.d.ts +4 -38
  951. package/dest/tx/tx_receipt.d.ts.map +1 -1
  952. package/dest/tx/tx_receipt.js +6 -15
  953. package/dest/tx/tx_request.d.ts +11 -14
  954. package/dest/tx/tx_request.d.ts.map +1 -1
  955. package/dest/tx/tx_request.js +13 -10
  956. package/dest/tx/validator/empty_validator.d.ts +1 -1
  957. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  958. package/dest/tx/validator/error_texts.d.ts +24 -0
  959. package/dest/tx/validator/error_texts.d.ts.map +1 -0
  960. package/dest/tx/validator/error_texts.js +31 -0
  961. package/dest/tx/validator/tx_validator.d.ts +3 -4
  962. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  963. package/dest/tx/validator/tx_validator.js +7 -4
  964. package/dest/types/index.d.ts +1 -1
  965. package/dest/types/shared.d.ts +10 -15
  966. package/dest/types/shared.d.ts.map +1 -1
  967. package/dest/types/shared.js +0 -8
  968. package/dest/update-checker/index.d.ts +2 -0
  969. package/dest/update-checker/index.d.ts.map +1 -0
  970. package/dest/update-checker/index.js +1 -0
  971. package/dest/update-checker/update-checker.d.ts +49 -0
  972. package/dest/update-checker/update-checker.d.ts.map +1 -0
  973. package/dest/update-checker/update-checker.js +130 -0
  974. package/dest/validators/errors.d.ts +33 -0
  975. package/dest/validators/errors.d.ts.map +1 -0
  976. package/dest/validators/errors.js +45 -0
  977. package/dest/validators/index.d.ts +4 -0
  978. package/dest/validators/index.d.ts.map +1 -0
  979. package/dest/validators/index.js +2 -0
  980. package/dest/validators/schemas.d.ts +650 -0
  981. package/dest/validators/schemas.d.ts.map +1 -0
  982. package/dest/validators/schemas.js +52 -0
  983. package/dest/validators/types.d.ts +53 -0
  984. package/dest/validators/types.d.ts.map +1 -0
  985. package/dest/validators/types.js +1 -0
  986. package/dest/versioning/index.d.ts +1 -1
  987. package/dest/versioning/versioning.d.ts +6 -6
  988. package/dest/versioning/versioning.d.ts.map +1 -1
  989. package/dest/versioning/versioning.js +23 -18
  990. package/dest/vks/index.d.ts +2 -2
  991. package/dest/vks/index.d.ts.map +1 -1
  992. package/dest/vks/index.js +1 -1
  993. package/dest/vks/verification_key.d.ts +19 -35
  994. package/dest/vks/verification_key.d.ts.map +1 -1
  995. package/dest/vks/verification_key.js +30 -12
  996. package/dest/vks/vk_data.d.ts +24 -0
  997. package/dest/vks/vk_data.d.ts.map +1 -0
  998. package/dest/vks/{vk_witness_data.js → vk_data.js} +11 -11
  999. package/dest/world-state/index.d.ts +2 -0
  1000. package/dest/world-state/index.d.ts.map +1 -0
  1001. package/dest/world-state/index.js +1 -0
  1002. package/dest/world-state/world_state_revision.d.ts +54 -0
  1003. package/dest/world-state/world_state_revision.d.ts.map +1 -0
  1004. package/dest/world-state/world_state_revision.js +44 -0
  1005. package/dest/zkpassport/index.d.ts +35 -0
  1006. package/dest/zkpassport/index.d.ts.map +1 -0
  1007. package/dest/zkpassport/index.js +82 -0
  1008. package/package.json +48 -25
  1009. package/src/abi/abi.ts +138 -102
  1010. package/src/abi/authorization_selector.ts +96 -0
  1011. package/src/abi/buffer.ts +1 -1
  1012. package/src/abi/contract_artifact.ts +93 -62
  1013. package/src/abi/decoder.ts +19 -14
  1014. package/src/abi/encoder.ts +89 -4
  1015. package/src/abi/event_metadata_definition.ts +8 -0
  1016. package/src/abi/event_selector.ts +3 -2
  1017. package/src/abi/function_call.ts +6 -2
  1018. package/src/abi/function_selector.ts +11 -2
  1019. package/src/abi/index.ts +2 -0
  1020. package/src/abi/note_selector.ts +2 -2
  1021. package/src/abi/selector.ts +1 -1
  1022. package/src/abi/utils.ts +15 -0
  1023. package/src/auth_witness/auth_witness.ts +30 -1
  1024. package/src/avm/avm.ts +1330 -127
  1025. package/src/avm/avm_accumulated_data.ts +170 -13
  1026. package/src/avm/avm_circuit_public_inputs.ts +121 -4
  1027. package/src/avm/contract_storage_read.ts +1 -1
  1028. package/src/avm/contract_storage_update_request.ts +1 -1
  1029. package/src/avm/index.ts +1 -1
  1030. package/src/avm/message_pack.ts +38 -3
  1031. package/src/avm/public_call_stack_item_compressed.ts +1 -1
  1032. package/src/avm/public_data_read.ts +1 -1
  1033. package/src/avm/public_data_update_request.ts +1 -1
  1034. package/src/avm/public_data_write.ts +37 -2
  1035. package/src/avm/public_inner_call_request.ts +2 -2
  1036. package/src/avm/revert_code.ts +35 -15
  1037. package/src/aztec-address/index.ts +28 -3
  1038. package/src/block/attestation_info.ts +69 -0
  1039. package/src/block/block_hash.ts +15 -1
  1040. package/src/block/block_parameter.ts +8 -0
  1041. package/src/block/body.ts +22 -38
  1042. package/src/block/checkpointed_l2_block.ts +120 -0
  1043. package/src/block/in_block.ts +28 -15
  1044. package/src/block/index.ts +9 -3
  1045. package/src/block/l2_block.ts +130 -64
  1046. package/src/block/l2_block_code_to_purge.ts +35 -50
  1047. package/src/block/l2_block_header.ts +246 -0
  1048. package/src/block/l2_block_info.ts +64 -0
  1049. package/src/block/l2_block_new.ts +207 -0
  1050. package/src/block/l2_block_source.ts +183 -49
  1051. package/src/block/l2_block_stream/index.ts +3 -0
  1052. package/src/block/l2_block_stream/interfaces.ts +33 -0
  1053. package/src/block/l2_block_stream/l2_block_stream.ts +216 -0
  1054. package/src/block/l2_block_stream/l2_tips_memory_store.ts +78 -0
  1055. package/src/block/proposal/attestations_and_signers.ts +140 -0
  1056. package/src/block/proposal/committee_attestation.ts +120 -0
  1057. package/src/block/proposal/index.ts +2 -0
  1058. package/src/block/test/index.ts +1 -0
  1059. package/src/block/test/l2_tips_store_test_suite.ts +93 -0
  1060. package/src/block/validate_block_result.ts +124 -0
  1061. package/src/checkpoint/checkpoint.ts +135 -0
  1062. package/src/checkpoint/checkpoint_info.ts +9 -0
  1063. package/src/checkpoint/index.ts +2 -0
  1064. package/src/checkpoint/published_checkpoint.ts +105 -0
  1065. package/src/config/{config.ts → chain-config.ts} +8 -7
  1066. package/src/config/index.ts +2 -1
  1067. package/src/config/node-rpc-config.ts +37 -0
  1068. package/src/contract/artifact_hash.ts +16 -14
  1069. package/src/contract/complete_address.ts +1 -1
  1070. package/src/contract/contract_address.ts +3 -3
  1071. package/src/contract/contract_class.ts +9 -26
  1072. package/src/contract/contract_class_id.ts +12 -6
  1073. package/src/contract/contract_class_metadata.ts +8 -0
  1074. package/src/contract/contract_deployment_data.ts +125 -0
  1075. package/src/contract/contract_instance.ts +27 -18
  1076. package/src/contract/contract_instance_update.ts +8 -7
  1077. package/src/contract/contract_metadata.ts +7 -0
  1078. package/src/contract/deployment_info.ts +1 -1
  1079. package/src/contract/index.ts +4 -1
  1080. package/src/contract/interfaces/contract_class.ts +98 -79
  1081. package/src/contract/interfaces/contract_data_source.ts +14 -22
  1082. package/src/contract/interfaces/contract_instance.ts +48 -16
  1083. package/src/contract/interfaces/contract_instance_update.ts +15 -12
  1084. package/src/contract/interfaces/node-info.ts +3 -3
  1085. package/src/contract/interfaces/protocol_contract_addresses.ts +5 -10
  1086. package/src/contract/partial_address.ts +1 -1
  1087. package/src/contract/private_function.ts +7 -4
  1088. package/src/contract/private_function_membership_proof.ts +10 -10
  1089. package/src/contract/{unconstrained_function_membership_proof.ts → utility_function_membership_proof.ts} +19 -19
  1090. package/src/database-version/version_manager.ts +78 -25
  1091. package/src/{shared_mutable/shared_mutable_values.ts → delayed_public_mutable/delayed_public_mutable_values.ts} +25 -22
  1092. package/src/delayed_public_mutable/delayed_public_mutable_values_with_hash.ts +38 -0
  1093. package/src/delayed_public_mutable/index.ts +4 -0
  1094. package/src/delayed_public_mutable/scheduled_delay_change.ts +17 -0
  1095. package/src/{shared_mutable → delayed_public_mutable}/scheduled_value_change.ts +12 -6
  1096. package/src/epoch-helpers/index.ts +88 -20
  1097. package/src/errors/proving_error.ts +5 -1
  1098. package/src/errors/simulation_error.ts +3 -3
  1099. package/src/fees/transaction_fee.ts +29 -9
  1100. package/src/file-store/factory.ts +76 -0
  1101. package/src/file-store/gcs.ts +121 -0
  1102. package/src/file-store/http.ts +70 -0
  1103. package/src/file-store/index.ts +2 -0
  1104. package/src/file-store/interface.ts +25 -0
  1105. package/src/file-store/local.ts +46 -0
  1106. package/src/file-store/s3.ts +250 -0
  1107. package/src/gas/gas.ts +24 -3
  1108. package/src/gas/gas_fees.ts +42 -24
  1109. package/src/gas/gas_settings.ts +31 -10
  1110. package/src/gas/gas_used.ts +22 -1
  1111. package/src/hash/hash.ts +49 -30
  1112. package/src/hash/map_slot.ts +2 -2
  1113. package/src/interfaces/allowed_element.ts +23 -0
  1114. package/src/interfaces/api_limit.ts +3 -0
  1115. package/src/interfaces/archiver.ts +100 -35
  1116. package/src/interfaces/aztec-node-admin.ts +99 -0
  1117. package/src/interfaces/aztec-node.ts +245 -181
  1118. package/src/interfaces/block-builder.ts +65 -9
  1119. package/src/interfaces/client.ts +2 -1
  1120. package/src/interfaces/configs.ts +87 -39
  1121. package/src/interfaces/epoch-prover.ts +46 -17
  1122. package/src/interfaces/get_logs_response.ts +13 -9
  1123. package/src/interfaces/l2_logs_source.ts +11 -13
  1124. package/src/interfaces/merkle_tree_operations.ts +37 -11
  1125. package/src/interfaces/p2p.ts +33 -6
  1126. package/src/interfaces/private_kernel_prover.ts +13 -4
  1127. package/src/interfaces/prover-agent.ts +9 -10
  1128. package/src/interfaces/prover-client.ts +28 -20
  1129. package/src/interfaces/prover-coordination.ts +6 -16
  1130. package/src/interfaces/prover-node.ts +10 -2
  1131. package/src/interfaces/proving-job.ts +244 -130
  1132. package/src/interfaces/public_state_source.ts +9 -0
  1133. package/src/interfaces/server.ts +11 -5
  1134. package/src/interfaces/server_circuit_prover.ts +109 -58
  1135. package/src/interfaces/service.ts +4 -2
  1136. package/src/interfaces/slasher.ts +52 -0
  1137. package/src/interfaces/tx_provider.ts +17 -0
  1138. package/src/interfaces/validator.ts +102 -0
  1139. package/src/interfaces/world_state.ts +42 -28
  1140. package/src/kernel/claimed_length_array.ts +104 -0
  1141. package/src/kernel/hiding_kernel_private_inputs.ts +37 -0
  1142. package/src/kernel/hints/build_note_hash_read_request_hints.ts +28 -30
  1143. package/src/kernel/hints/build_nullifier_read_request_hints.ts +32 -62
  1144. package/src/kernel/hints/build_transient_data_hints.ts +14 -16
  1145. package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +5 -7
  1146. package/src/kernel/hints/index.ts +1 -2
  1147. package/src/kernel/hints/key_validation_hint.ts +5 -7
  1148. package/src/kernel/hints/key_validation_request.ts +2 -1
  1149. package/src/kernel/hints/key_validation_request_and_generator.ts +1 -1
  1150. package/src/kernel/hints/note_hash_read_request_hints.ts +9 -18
  1151. package/src/kernel/hints/nullifier_read_request_hints.ts +11 -20
  1152. package/src/kernel/hints/private_kernel_reset_hints.ts +37 -54
  1153. package/src/kernel/hints/read_request.ts +5 -2
  1154. package/src/kernel/hints/read_request_hints.ts +59 -38
  1155. package/src/kernel/hints/scoped_key_validation_request_and_generator.ts +1 -1
  1156. package/src/kernel/hints/scoped_value_cache.ts +1 -1
  1157. package/src/kernel/hints/{transient_data_index_hint.ts → transient_data_squashing_hint.ts} +10 -7
  1158. package/src/kernel/hints/tree_leaf_read_request.ts +5 -2
  1159. package/src/kernel/index.ts +4 -2
  1160. package/src/kernel/log_hash.ts +87 -15
  1161. package/src/kernel/note_hash.ts +9 -3
  1162. package/src/kernel/nullifier.ts +17 -10
  1163. package/src/kernel/padded_side_effects.ts +73 -0
  1164. package/src/kernel/private_accumulated_data.ts +25 -25
  1165. package/src/kernel/private_call_data.ts +6 -25
  1166. package/src/kernel/private_call_request.ts +2 -2
  1167. package/src/kernel/private_circuit_public_inputs.ts +161 -117
  1168. package/src/kernel/private_context_inputs.ts +3 -3
  1169. package/src/kernel/private_kernel_circuit_public_inputs.ts +21 -6
  1170. package/src/kernel/private_kernel_data.ts +7 -31
  1171. package/src/kernel/private_kernel_init_circuit_private_inputs.ts +12 -5
  1172. package/src/kernel/private_kernel_prover_output.ts +70 -0
  1173. package/src/kernel/private_kernel_reset_circuit_private_inputs.ts +16 -13
  1174. package/src/kernel/private_kernel_reset_dimensions.ts +27 -27
  1175. package/src/kernel/private_kernel_simulated_output.ts +7 -16
  1176. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +22 -5
  1177. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +42 -25
  1178. package/src/kernel/private_log_data.ts +14 -5
  1179. package/src/kernel/private_to_avm_accumulated_data.ts +54 -2
  1180. package/src/kernel/private_to_public_accumulated_data.ts +1 -1
  1181. package/src/kernel/private_to_public_accumulated_data_builder.ts +1 -1
  1182. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +18 -9
  1183. package/src/kernel/private_to_rollup_accumulated_data.ts +1 -1
  1184. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +18 -12
  1185. package/src/kernel/private_validation_requests.ts +19 -62
  1186. package/src/kernel/public_call_request.ts +120 -29
  1187. package/src/kernel/utils/optional_number.ts +1 -1
  1188. package/src/kernel/utils/order_and_comparison.ts +0 -25
  1189. package/src/keys/derivation.ts +7 -24
  1190. package/src/keys/public_key.ts +1 -1
  1191. package/src/keys/public_keys.ts +23 -3
  1192. package/src/l1-contracts/index.ts +1 -0
  1193. package/src/l1-contracts/slash_factory.ts +179 -0
  1194. package/src/logs/contract_class_log.ts +168 -66
  1195. package/src/logs/debug_log.ts +51 -0
  1196. package/src/logs/directional_app_tagging_secret.ts +79 -0
  1197. package/src/logs/index.ts +8 -2
  1198. package/src/logs/log_id.ts +22 -11
  1199. package/src/logs/log_with_tx_data.ts +20 -10
  1200. package/src/logs/message_context.ts +62 -0
  1201. package/src/logs/pending_tagged_log.ts +41 -0
  1202. package/src/logs/pre_tag.ts +25 -0
  1203. package/src/logs/private_log.ts +79 -26
  1204. package/src/logs/public_log.ts +158 -37
  1205. package/src/logs/shared_secret_derivation.ts +26 -0
  1206. package/src/logs/siloed_tag.ts +44 -0
  1207. package/src/logs/tag.ts +42 -0
  1208. package/src/logs/tx_scoped_l2_log.ts +55 -24
  1209. package/src/messaging/in_hash.ts +10 -0
  1210. package/src/messaging/inbox_leaf.ts +20 -4
  1211. package/src/messaging/index.ts +3 -0
  1212. package/src/messaging/l1_actor.ts +2 -2
  1213. package/src/messaging/l1_to_l2_message.ts +3 -2
  1214. package/src/messaging/l1_to_l2_message_source.ts +9 -7
  1215. package/src/messaging/l2_actor.ts +2 -2
  1216. package/src/messaging/l2_to_l1_membership.ts +99 -0
  1217. package/src/messaging/l2_to_l1_message.ts +131 -37
  1218. package/src/messaging/out_hash.ts +36 -0
  1219. package/src/noir/index.ts +24 -7
  1220. package/src/note/index.ts +1 -1
  1221. package/src/note/note.ts +65 -6
  1222. package/src/note/note_dao.ts +182 -0
  1223. package/src/note/notes_filter.ts +10 -11
  1224. package/src/p2p/attestation_utils.ts +35 -0
  1225. package/src/p2p/block_attestation.ts +57 -27
  1226. package/src/p2p/block_proposal.ts +66 -20
  1227. package/src/p2p/consensus_payload.ts +55 -32
  1228. package/src/p2p/gossipable.ts +50 -15
  1229. package/src/p2p/index.ts +1 -0
  1230. package/src/p2p/interface.ts +0 -24
  1231. package/src/p2p/signature_utils.ts +9 -10
  1232. package/src/p2p/topic_type.ts +32 -13
  1233. package/src/parity/index.ts +2 -3
  1234. package/src/parity/{base_parity_inputs.ts → parity_base_private_inputs.ts} +14 -12
  1235. package/src/parity/parity_public_inputs.ts +1 -1
  1236. package/src/parity/{root_parity_inputs.ts → parity_root_private_inputs.ts} +16 -18
  1237. package/src/proofs/chonk_proof.ts +118 -0
  1238. package/src/proofs/index.ts +2 -1
  1239. package/src/proofs/proof.ts +30 -22
  1240. package/src/proofs/proof_data.ts +60 -0
  1241. package/src/proofs/proving_request_type.ts +14 -9
  1242. package/src/proofs/recursive_proof.ts +1 -1
  1243. package/src/rollup/avm_proof_data.ts +3 -32
  1244. package/src/rollup/base_rollup_hints.ts +42 -41
  1245. package/src/rollup/block_constant_data.ts +73 -0
  1246. package/src/rollup/block_headers_hash.ts +12 -0
  1247. package/src/rollup/{block_merge_rollup.ts → block_merge_rollup_private_inputs.ts} +15 -11
  1248. package/src/rollup/block_rollup_public_inputs.ts +131 -0
  1249. package/src/rollup/block_root_rollup_private_inputs.ts +303 -0
  1250. package/src/rollup/checkpoint_constant_data.ts +124 -0
  1251. package/src/rollup/checkpoint_header.ts +254 -0
  1252. package/src/rollup/checkpoint_merge_rollup_private_inputs.ts +49 -0
  1253. package/src/rollup/checkpoint_rollup_public_inputs.ts +139 -0
  1254. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +219 -0
  1255. package/src/rollup/epoch_constant_data.ts +62 -0
  1256. package/src/rollup/index.ts +20 -16
  1257. package/src/rollup/private_tx_base_rollup_private_inputs.ts +53 -0
  1258. package/src/rollup/public_chonk_verifier_private_inputs.ts +54 -0
  1259. package/src/rollup/public_chonk_verifier_public_inputs.ts +53 -0
  1260. package/src/rollup/public_tx_base_rollup_private_inputs.ts +57 -0
  1261. package/src/rollup/root_rollup_private_inputs.ts +90 -0
  1262. package/src/rollup/root_rollup_public_inputs.ts +99 -0
  1263. package/src/rollup/{state_diff_hints.ts → tree_snapshot_diff_hints.ts} +27 -42
  1264. package/src/rollup/{merge_rollup.ts → tx_merge_rollup_private_inputs.ts} +13 -9
  1265. package/src/rollup/{base_or_merge_rollup_public_inputs.ts → tx_rollup_public_inputs.ts} +18 -26
  1266. package/src/schemas/schemas.ts +27 -1
  1267. package/src/slashing/empire.ts +102 -0
  1268. package/src/slashing/helpers.ts +141 -0
  1269. package/src/slashing/index.ts +6 -0
  1270. package/src/slashing/interfaces.ts +13 -0
  1271. package/src/slashing/serialization.ts +103 -0
  1272. package/src/slashing/tally.ts +87 -0
  1273. package/src/slashing/types.ts +156 -0
  1274. package/src/snapshots/download.ts +123 -0
  1275. package/src/snapshots/index.ts +3 -0
  1276. package/src/snapshots/types.ts +74 -0
  1277. package/src/snapshots/upload.ts +64 -0
  1278. package/src/stats/stats.ts +38 -24
  1279. package/src/tests/factories.ts +783 -649
  1280. package/src/tests/mocks.ts +455 -150
  1281. package/src/trees/append_only_tree_snapshot.ts +18 -3
  1282. package/src/trees/database_public_state_source.ts +30 -0
  1283. package/src/trees/index.ts +1 -1
  1284. package/src/trees/merkle_tree_id.ts +12 -0
  1285. package/src/trees/nullifier_leaf.ts +81 -22
  1286. package/src/trees/nullifier_membership_witness.ts +18 -2
  1287. package/src/trees/public_data_leaf.ts +73 -30
  1288. package/src/trees/public_data_witness.ts +24 -5
  1289. package/src/tx/block_header.ts +52 -31
  1290. package/src/tx/call_context.ts +1 -1
  1291. package/src/tx/capsule.ts +3 -1
  1292. package/src/tx/content_commitment.ts +58 -78
  1293. package/src/tx/execution_payload.ts +60 -0
  1294. package/src/tx/function_data.ts +1 -1
  1295. package/src/tx/global_variable_builder.ts +12 -4
  1296. package/src/tx/global_variables.ts +107 -32
  1297. package/src/tx/hashed_values.ts +30 -10
  1298. package/src/tx/in_tx.ts +24 -0
  1299. package/src/tx/index.ts +10 -2
  1300. package/src/tx/indexed_tx_effect.ts +40 -0
  1301. package/src/tx/offchain_effect.ts +20 -0
  1302. package/src/tx/partial_state_reference.ts +30 -5
  1303. package/src/tx/private_execution_result.ts +76 -92
  1304. package/src/tx/private_tx_constant_data.ts +94 -0
  1305. package/src/tx/processed_tx.ts +58 -49
  1306. package/src/tx/profiling.ts +159 -0
  1307. package/src/tx/protocol_contracts.ts +86 -0
  1308. package/src/tx/proven_tx.ts +62 -0
  1309. package/src/tx/public_call_request_with_calldata.ts +89 -0
  1310. package/src/tx/public_simulation_output.ts +24 -7
  1311. package/src/tx/simulated_tx.ts +66 -76
  1312. package/src/tx/state_reference.ts +49 -6
  1313. package/src/tx/tree_snapshots.ts +30 -14
  1314. package/src/tx/tx.ts +164 -194
  1315. package/src/tx/tx_constant_data.ts +9 -22
  1316. package/src/tx/tx_context.ts +1 -1
  1317. package/src/tx/tx_effect.ts +140 -311
  1318. package/src/tx/tx_execution_request.ts +15 -4
  1319. package/src/tx/tx_hash.ts +27 -6
  1320. package/src/tx/tx_receipt.ts +4 -39
  1321. package/src/tx/tx_request.ts +18 -8
  1322. package/src/tx/validator/error_texts.ts +38 -0
  1323. package/src/tx/validator/tx_validator.ts +13 -6
  1324. package/src/types/shared.ts +10 -9
  1325. package/src/update-checker/index.ts +1 -0
  1326. package/src/update-checker/update-checker.ts +166 -0
  1327. package/src/validators/errors.ts +58 -0
  1328. package/src/validators/index.ts +3 -0
  1329. package/src/validators/schemas.ts +81 -0
  1330. package/src/validators/types.ts +47 -0
  1331. package/src/versioning/versioning.ts +29 -33
  1332. package/src/vks/index.ts +1 -1
  1333. package/src/vks/verification_key.ts +44 -19
  1334. package/src/vks/{vk_witness_data.ts → vk_data.ts} +7 -7
  1335. package/src/world-state/index.ts +1 -0
  1336. package/src/world-state/world_state_revision.ts +63 -0
  1337. package/src/zkpassport/index.ts +119 -0
  1338. package/dest/avm/public_data_hint.d.ts +0 -18
  1339. package/dest/avm/public_data_hint.d.ts.map +0 -1
  1340. package/dest/avm/public_data_hint.js +0 -27
  1341. package/dest/block/l2_block_downloader/index.d.ts +0 -3
  1342. package/dest/block/l2_block_downloader/index.d.ts.map +0 -1
  1343. package/dest/block/l2_block_downloader/index.js +0 -2
  1344. package/dest/block/l2_block_downloader/l2_block_downloader.d.ts +0 -58
  1345. package/dest/block/l2_block_downloader/l2_block_downloader.d.ts.map +0 -1
  1346. package/dest/block/l2_block_downloader/l2_block_downloader.js +0 -124
  1347. package/dest/block/l2_block_downloader/l2_block_stream.d.ts +0 -57
  1348. package/dest/block/l2_block_downloader/l2_block_stream.d.ts.map +0 -1
  1349. package/dest/block/l2_block_number.d.ts +0 -5
  1350. package/dest/block/l2_block_number.d.ts.map +0 -1
  1351. package/dest/block/l2_block_number.js +0 -6
  1352. package/dest/block/nullifier_with_block_source.d.ts +0 -6
  1353. package/dest/block/nullifier_with_block_source.d.ts.map +0 -1
  1354. package/dest/config/config.d.ts +0 -18
  1355. package/dest/config/config.d.ts.map +0 -1
  1356. package/dest/contract/unconstrained_function_membership_proof.d.ts +0 -27
  1357. package/dest/contract/unconstrained_function_membership_proof.d.ts.map +0 -1
  1358. package/dest/event/event.d.ts +0 -24
  1359. package/dest/event/event.d.ts.map +0 -1
  1360. package/dest/event/event.js +0 -13
  1361. package/dest/event/event_metadata.d.ts +0 -38
  1362. package/dest/event/event_metadata.d.ts.map +0 -1
  1363. package/dest/event/event_metadata.js +0 -45
  1364. package/dest/event/index.d.ts +0 -4
  1365. package/dest/event/index.d.ts.map +0 -1
  1366. package/dest/event/index.js +0 -3
  1367. package/dest/event/l1_event_payload.d.ts +0 -52
  1368. package/dest/event/l1_event_payload.d.ts.map +0 -1
  1369. package/dest/event/l1_event_payload.js +0 -64
  1370. package/dest/interfaces/pxe.d.ts +0 -347
  1371. package/dest/interfaces/pxe.d.ts.map +0 -1
  1372. package/dest/interfaces/pxe.js +0 -104
  1373. package/dest/kernel/combined_constant_data.d.ts +0 -73
  1374. package/dest/kernel/combined_constant_data.d.ts.map +0 -1
  1375. package/dest/kernel/combined_constant_data.js +0 -73
  1376. package/dest/kernel/hints/rollup_validation_requests.d.ts +0 -40
  1377. package/dest/kernel/hints/rollup_validation_requests.d.ts.map +0 -1
  1378. package/dest/kernel/hints/rollup_validation_requests.js +0 -57
  1379. package/dest/kernel/hints/transient_data_index_hint.d.ts +0 -20
  1380. package/dest/kernel/hints/transient_data_index_hint.d.ts.map +0 -1
  1381. package/dest/kernel/private_kernel_prover_profile_result.d.ts +0 -25
  1382. package/dest/kernel/private_kernel_prover_profile_result.d.ts.map +0 -1
  1383. package/dest/kernel/private_kernel_prover_profile_result.js +0 -7
  1384. package/dest/logs/indexed_tagging_secret.d.ts +0 -28
  1385. package/dest/logs/indexed_tagging_secret.d.ts.map +0 -1
  1386. package/dest/logs/indexed_tagging_secret.js +0 -50
  1387. package/dest/logs/l1_payload/encrypted_log_payload.d.ts +0 -50
  1388. package/dest/logs/l1_payload/encrypted_log_payload.d.ts.map +0 -1
  1389. package/dest/logs/l1_payload/encrypted_log_payload.js +0 -140
  1390. package/dest/logs/l1_payload/encryption_util.d.ts +0 -24
  1391. package/dest/logs/l1_payload/encryption_util.d.ts.map +0 -1
  1392. package/dest/logs/l1_payload/encryption_util.js +0 -46
  1393. package/dest/logs/l1_payload/index.d.ts +0 -3
  1394. package/dest/logs/l1_payload/index.d.ts.map +0 -1
  1395. package/dest/logs/l1_payload/index.js +0 -2
  1396. package/dest/logs/l1_payload/l1_note_payload.d.ts +0 -82
  1397. package/dest/logs/l1_payload/l1_note_payload.d.ts.map +0 -1
  1398. package/dest/logs/l1_payload/l1_note_payload.js +0 -129
  1399. package/dest/logs/l1_payload/payload.d.ts +0 -60
  1400. package/dest/logs/l1_payload/payload.d.ts.map +0 -1
  1401. package/dest/logs/l1_payload/payload.js +0 -61
  1402. package/dest/logs/l1_payload/shared_secret_derivation.d.ts +0 -16
  1403. package/dest/logs/l1_payload/shared_secret_derivation.d.ts.map +0 -1
  1404. package/dest/network/index.d.ts +0 -32
  1405. package/dest/network/index.d.ts.map +0 -1
  1406. package/dest/network/index.js +0 -30
  1407. package/dest/note/extended_note.d.ts +0 -124
  1408. package/dest/note/extended_note.d.ts.map +0 -1
  1409. package/dest/note/extended_note.js +0 -115
  1410. package/dest/parity/base_parity_inputs.d.ts +0 -37
  1411. package/dest/parity/base_parity_inputs.d.ts.map +0 -1
  1412. package/dest/parity/root_parity_input.d.ts +0 -54
  1413. package/dest/parity/root_parity_input.d.ts.map +0 -1
  1414. package/dest/parity/root_parity_input.js +0 -50
  1415. package/dest/parity/root_parity_inputs.d.ts +0 -39
  1416. package/dest/parity/root_parity_inputs.d.ts.map +0 -1
  1417. package/dest/proofs/client_ivc_proof.d.ts +0 -21
  1418. package/dest/proofs/client_ivc_proof.d.ts.map +0 -1
  1419. package/dest/proofs/client_ivc_proof.js +0 -44
  1420. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts +0 -126
  1421. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +0 -1
  1422. package/dest/rollup/block_merge_rollup.d.ts +0 -45
  1423. package/dest/rollup/block_merge_rollup.d.ts.map +0 -1
  1424. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +0 -159
  1425. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +0 -1
  1426. package/dest/rollup/block_root_or_block_merge_public_inputs.js +0 -136
  1427. package/dest/rollup/block_root_rollup.d.ts +0 -262
  1428. package/dest/rollup/block_root_rollup.d.ts.map +0 -1
  1429. package/dest/rollup/block_root_rollup.js +0 -293
  1430. package/dest/rollup/constant_rollup_data.d.ts +0 -47
  1431. package/dest/rollup/constant_rollup_data.d.ts.map +0 -1
  1432. package/dest/rollup/constant_rollup_data.js +0 -45
  1433. package/dest/rollup/empty_block_root_rollup_inputs.d.ts +0 -54
  1434. package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +0 -1
  1435. package/dest/rollup/empty_block_root_rollup_inputs.js +0 -68
  1436. package/dest/rollup/merge_rollup.d.ts +0 -45
  1437. package/dest/rollup/merge_rollup.d.ts.map +0 -1
  1438. package/dest/rollup/previous_rollup_block_data.d.ts +0 -58
  1439. package/dest/rollup/previous_rollup_block_data.d.ts.map +0 -1
  1440. package/dest/rollup/previous_rollup_block_data.js +0 -42
  1441. package/dest/rollup/previous_rollup_data.d.ts +0 -58
  1442. package/dest/rollup/previous_rollup_data.d.ts.map +0 -1
  1443. package/dest/rollup/previous_rollup_data.js +0 -42
  1444. package/dest/rollup/private_base_rollup_inputs.d.ts +0 -23
  1445. package/dest/rollup/private_base_rollup_inputs.d.ts.map +0 -1
  1446. package/dest/rollup/private_base_rollup_inputs.js +0 -44
  1447. package/dest/rollup/private_tube_data.d.ts +0 -17
  1448. package/dest/rollup/private_tube_data.d.ts.map +0 -1
  1449. package/dest/rollup/private_tube_data.js +0 -25
  1450. package/dest/rollup/public_base_rollup_inputs.d.ts +0 -25
  1451. package/dest/rollup/public_base_rollup_inputs.d.ts.map +0 -1
  1452. package/dest/rollup/public_base_rollup_inputs.js +0 -48
  1453. package/dest/rollup/public_tube_data.d.ts +0 -17
  1454. package/dest/rollup/public_tube_data.d.ts.map +0 -1
  1455. package/dest/rollup/public_tube_data.js +0 -25
  1456. package/dest/rollup/root_rollup.d.ts +0 -112
  1457. package/dest/rollup/root_rollup.d.ts.map +0 -1
  1458. package/dest/rollup/root_rollup.js +0 -158
  1459. package/dest/rollup/state_diff_hints.d.ts +0 -105
  1460. package/dest/rollup/state_diff_hints.d.ts.map +0 -1
  1461. package/dest/rollup/state_diff_hints.js +0 -85
  1462. package/dest/rollup/tube_inputs.d.ts +0 -40
  1463. package/dest/rollup/tube_inputs.d.ts.map +0 -1
  1464. package/dest/rollup/tube_inputs.js +0 -57
  1465. package/dest/shared_mutable/index.d.ts +0 -5
  1466. package/dest/shared_mutable/index.d.ts.map +0 -1
  1467. package/dest/shared_mutable/index.js +0 -4
  1468. package/dest/shared_mutable/scheduled_delay_change.d.ts +0 -10
  1469. package/dest/shared_mutable/scheduled_delay_change.d.ts.map +0 -1
  1470. package/dest/shared_mutable/scheduled_value_change.d.ts +0 -11
  1471. package/dest/shared_mutable/scheduled_value_change.d.ts.map +0 -1
  1472. package/dest/shared_mutable/shared_mutable_values.d.ts +0 -22
  1473. package/dest/shared_mutable/shared_mutable_values.d.ts.map +0 -1
  1474. package/dest/shared_mutable/shared_mutable_values_with_hash.d.ts +0 -15
  1475. package/dest/shared_mutable/shared_mutable_values_with_hash.d.ts.map +0 -1
  1476. package/dest/shared_mutable/shared_mutable_values_with_hash.js +0 -30
  1477. package/dest/trees/protocol_contract_leaf.d.ts +0 -87
  1478. package/dest/trees/protocol_contract_leaf.d.ts.map +0 -1
  1479. package/dest/trees/protocol_contract_leaf.js +0 -103
  1480. package/dest/tx/max_block_number.d.ts +0 -55
  1481. package/dest/tx/max_block_number.d.ts.map +0 -1
  1482. package/dest/tx/max_block_number.js +0 -65
  1483. package/dest/tx/public_execution_request.d.ts +0 -45
  1484. package/dest/tx/public_execution_request.d.ts.map +0 -1
  1485. package/dest/tx/public_execution_request.js +0 -72
  1486. package/dest/vks/vk_witness_data.d.ts +0 -32
  1487. package/dest/vks/vk_witness_data.d.ts.map +0 -1
  1488. package/src/avm/public_data_hint.ts +0 -38
  1489. package/src/block/l2_block_downloader/index.ts +0 -2
  1490. package/src/block/l2_block_downloader/l2_block_downloader.ts +0 -149
  1491. package/src/block/l2_block_downloader/l2_block_stream.ts +0 -179
  1492. package/src/block/l2_block_number.ts +0 -8
  1493. package/src/block/nullifier_with_block_source.ts +0 -7
  1494. package/src/event/event.ts +0 -16
  1495. package/src/event/event_metadata.ts +0 -56
  1496. package/src/event/index.ts +0 -3
  1497. package/src/event/l1_event_payload.ts +0 -87
  1498. package/src/interfaces/pxe.ts +0 -536
  1499. package/src/kernel/combined_constant_data.ts +0 -128
  1500. package/src/kernel/hints/rollup_validation_requests.ts +0 -73
  1501. package/src/kernel/private_kernel_prover_profile_result.ts +0 -7
  1502. package/src/logs/indexed_tagging_secret.ts +0 -45
  1503. package/src/logs/l1_payload/encrypted_log_payload.ts +0 -202
  1504. package/src/logs/l1_payload/encryption_util.ts +0 -54
  1505. package/src/logs/l1_payload/index.ts +0 -2
  1506. package/src/logs/l1_payload/l1_note_payload.ts +0 -182
  1507. package/src/logs/l1_payload/payload.ts +0 -73
  1508. package/src/logs/l1_payload/shared_secret_derivation.ts +0 -35
  1509. package/src/network/index.ts +0 -32
  1510. package/src/note/extended_note.ts +0 -168
  1511. package/src/parity/root_parity_input.ts +0 -71
  1512. package/src/proofs/client_ivc_proof.ts +0 -61
  1513. package/src/rollup/block_root_or_block_merge_public_inputs.ts +0 -175
  1514. package/src/rollup/block_root_rollup.ts +0 -362
  1515. package/src/rollup/constant_rollup_data.ts +0 -54
  1516. package/src/rollup/empty_block_root_rollup_inputs.ts +0 -85
  1517. package/src/rollup/previous_rollup_block_data.ts +0 -54
  1518. package/src/rollup/previous_rollup_data.ts +0 -54
  1519. package/src/rollup/private_base_rollup_inputs.ts +0 -50
  1520. package/src/rollup/private_tube_data.ts +0 -35
  1521. package/src/rollup/public_base_rollup_inputs.ts +0 -59
  1522. package/src/rollup/public_tube_data.ts +0 -35
  1523. package/src/rollup/root_rollup.ts +0 -206
  1524. package/src/rollup/tube_inputs.ts +0 -70
  1525. package/src/shared_mutable/index.ts +0 -4
  1526. package/src/shared_mutable/scheduled_delay_change.ts +0 -13
  1527. package/src/shared_mutable/shared_mutable_values_with_hash.ts +0 -38
  1528. package/src/trees/protocol_contract_leaf.ts +0 -132
  1529. package/src/tx/max_block_number.ts +0 -79
  1530. package/src/tx/public_execution_request.ts +0 -97
  1531. /package/dest/{block/nullifier_with_block_source.js → abi/event_metadata_definition.js} +0 -0
package/src/avm/avm.ts CHANGED
@@ -1,272 +1,1007 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { DEFAULT_MAX_DEBUG_LOG_MEMORY_READS } from '@aztec/constants';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
3
  import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
3
- import { schemas } from '@aztec/foundation/schemas';
4
4
 
5
5
  import { z } from 'zod';
6
6
 
7
+ import { FunctionSelector } from '../abi/index.js';
7
8
  import { AztecAddress } from '../aztec-address/index.js';
9
+ import { AllContractDeploymentData, ContractDeploymentData } from '../contract/index.js';
10
+ import { SimulationError } from '../errors/simulation_error.js';
11
+ import { computeEffectiveGasFees } from '../fees/transaction_fee.js';
12
+ import { Gas } from '../gas/gas.js';
13
+ import { GasFees } from '../gas/gas_fees.js';
14
+ import { GasSettings } from '../gas/gas_settings.js';
15
+ import { GasUsed } from '../gas/gas_used.js';
8
16
  import { PublicKeys } from '../keys/public_keys.js';
9
- import { NullifierLeafPreimage } from '../trees/nullifier_leaf.js';
10
- import { PublicDataTreeLeafPreimage } from '../trees/public_data_leaf.js';
17
+ import { DebugLog } from '../logs/debug_log.js';
18
+ import { PublicLog } from '../logs/public_log.js';
19
+ import { ScopedL2ToL1Message } from '../messaging/l2_to_l1_message.js';
20
+ import { NullishToUndefined, type ZodFor, schemas } from '../schemas/schemas.js';
21
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
22
+ import { MerkleTreeId } from '../trees/merkle_tree_id.js';
23
+ import { NullifierLeaf, NullifierLeafPreimage } from '../trees/nullifier_leaf.js';
24
+ import { PublicDataTreeLeaf, PublicDataTreeLeafPreimage } from '../trees/public_data_leaf.js';
25
+ import {
26
+ GlobalVariables,
27
+ NestedProcessReturnValues,
28
+ ProtocolContracts,
29
+ PublicCallRequestWithCalldata,
30
+ TreeSnapshots,
31
+ type Tx,
32
+ } from '../tx/index.js';
33
+ import { TxExecutionPhase } from '../tx/processed_tx.js';
34
+ import { WorldStateRevision } from '../world-state/world_state_revision.js';
11
35
  import { AvmCircuitPublicInputs } from './avm_circuit_public_inputs.js';
12
36
  import { serializeWithMessagePack } from './message_pack.js';
37
+ import { PublicDataWrite } from './public_data_write.js';
38
+ import { RevertCode } from './revert_code.js';
13
39
 
14
- export class AvmEnqueuedCallHint {
15
- constructor(public readonly contractAddress: AztecAddress, public readonly calldata: Fr[]) {}
16
-
17
- static get schema() {
18
- return z
19
- .object({
20
- contractAddress: AztecAddress.schema,
21
- calldata: schemas.Fr.array(),
22
- })
23
- .transform(({ contractAddress, calldata }) => new AvmEnqueuedCallHint(contractAddress, calldata));
24
- }
25
- }
26
-
40
+ ////////////////////////////////////////////////////////////////////////////
41
+ // Hints (contracts)
42
+ ////////////////////////////////////////////////////////////////////////////
27
43
  export class AvmContractClassHint {
28
44
  constructor(
45
+ public readonly hintKey: number,
29
46
  public readonly classId: Fr,
30
- public readonly exists: boolean,
31
47
  public readonly artifactHash: Fr,
32
48
  public readonly privateFunctionsRoot: Fr,
33
- public readonly publicBytecodeCommitment: Fr,
34
49
  public readonly packedBytecode: Buffer,
35
50
  ) {}
36
51
 
37
52
  static get schema() {
38
53
  return z
39
54
  .object({
55
+ hintKey: z.number().int().nonnegative(),
40
56
  classId: schemas.Fr,
41
- exists: z.boolean(),
42
57
  artifactHash: schemas.Fr,
43
58
  privateFunctionsRoot: schemas.Fr,
44
- publicBytecodeCommitment: schemas.Fr,
45
59
  packedBytecode: schemas.Buffer,
46
60
  })
47
61
  .transform(
48
- ({ classId, exists, artifactHash, privateFunctionsRoot, publicBytecodeCommitment, packedBytecode }) =>
49
- new AvmContractClassHint(
50
- classId,
51
- exists,
52
- artifactHash,
53
- privateFunctionsRoot,
54
- publicBytecodeCommitment,
55
- packedBytecode,
56
- ),
62
+ ({ hintKey, classId, artifactHash, privateFunctionsRoot, packedBytecode }) =>
63
+ new AvmContractClassHint(hintKey, classId, artifactHash, privateFunctionsRoot, packedBytecode),
57
64
  );
58
65
  }
66
+
67
+ /**
68
+ * Creates an AvmContractClassHint from a plain object without Zod validation.
69
+ * This method is optimized for performance and skips validation, making it suitable
70
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
71
+ * @param obj - Plain object containing AvmContractClassHint fields
72
+ * @returns An AvmContractClassHint instance
73
+ */
74
+ static fromPlainObject(obj: any): AvmContractClassHint {
75
+ if (obj instanceof AvmContractClassHint) {
76
+ return obj;
77
+ }
78
+ return new AvmContractClassHint(
79
+ obj.hintKey,
80
+ Fr.fromPlainObject(obj.classId),
81
+ Fr.fromPlainObject(obj.artifactHash),
82
+ Fr.fromPlainObject(obj.privateFunctionsRoot),
83
+ obj.packedBytecode instanceof Buffer ? obj.packedBytecode : Buffer.from(obj.packedBytecode),
84
+ );
85
+ }
86
+ }
87
+
88
+ export class AvmBytecodeCommitmentHint {
89
+ constructor(
90
+ public readonly hintKey: number,
91
+ public readonly classId: Fr,
92
+ public readonly commitment: Fr,
93
+ ) {}
94
+
95
+ static get schema() {
96
+ return z
97
+ .object({
98
+ hintKey: z.number().int().nonnegative(),
99
+ classId: schemas.Fr,
100
+ commitment: schemas.Fr,
101
+ })
102
+ .transform(({ hintKey, classId, commitment }) => new AvmBytecodeCommitmentHint(hintKey, classId, commitment));
103
+ }
104
+
105
+ /**
106
+ * Creates an AvmBytecodeCommitmentHint from a plain object without Zod validation.
107
+ * This method is optimized for performance and skips validation, making it suitable
108
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
109
+ * @param obj - Plain object containing AvmBytecodeCommitmentHint fields
110
+ * @returns An AvmBytecodeCommitmentHint instance
111
+ */
112
+ static fromPlainObject(obj: any): AvmBytecodeCommitmentHint {
113
+ if (obj instanceof AvmBytecodeCommitmentHint) {
114
+ return obj;
115
+ }
116
+ return new AvmBytecodeCommitmentHint(
117
+ obj.hintKey,
118
+ Fr.fromPlainObject(obj.classId),
119
+ Fr.fromPlainObject(obj.commitment),
120
+ );
121
+ }
59
122
  }
60
123
 
61
124
  export class AvmContractInstanceHint {
62
125
  constructor(
126
+ public readonly hintKey: number,
63
127
  public readonly address: AztecAddress,
64
- public readonly exists: boolean,
65
128
  public readonly salt: Fr,
66
129
  public readonly deployer: AztecAddress,
67
130
  public readonly currentContractClassId: Fr,
68
131
  public readonly originalContractClassId: Fr,
69
132
  public readonly initializationHash: Fr,
70
133
  public readonly publicKeys: PublicKeys,
71
- // public readonly updateMembershipHint: AvmPublicDataReadTreeHint = AvmPublicDataReadTreeHint.empty(),
72
- public readonly updateMembershipHint: AvmPublicDataReadTreeHint,
73
- public readonly updatePreimage: Fr[] = [],
74
134
  ) {}
75
135
 
76
136
  static get schema() {
77
137
  return z
78
138
  .object({
139
+ hintKey: z.number().int().nonnegative(),
79
140
  address: AztecAddress.schema,
80
- exists: z.boolean(),
81
141
  salt: schemas.Fr,
82
142
  deployer: AztecAddress.schema,
83
143
  currentContractClassId: schemas.Fr,
84
144
  originalContractClassId: schemas.Fr,
85
145
  initializationHash: schemas.Fr,
86
146
  publicKeys: PublicKeys.schema,
87
- updateMembershipHint: AvmPublicDataReadTreeHint.schema,
88
- updatePreimage: schemas.Fr.array(),
89
147
  })
90
148
  .transform(
91
149
  ({
150
+ hintKey,
92
151
  address,
93
- exists,
94
152
  salt,
95
153
  deployer,
96
154
  currentContractClassId,
97
155
  originalContractClassId,
98
156
  initializationHash,
99
157
  publicKeys,
100
- updateMembershipHint,
101
- updatePreimage,
102
158
  }) =>
103
159
  new AvmContractInstanceHint(
160
+ hintKey,
104
161
  address,
105
- exists,
106
162
  salt,
107
163
  deployer,
108
164
  currentContractClassId,
109
165
  originalContractClassId,
110
166
  initializationHash,
111
167
  publicKeys,
112
- updateMembershipHint,
113
- updatePreimage,
114
168
  ),
115
169
  );
116
170
  }
171
+
172
+ /**
173
+ * Creates an AvmContractInstanceHint from a plain object without Zod validation.
174
+ * This method is optimized for performance and skips validation, making it suitable
175
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
176
+ * @param obj - Plain object containing AvmContractInstanceHint fields
177
+ * @returns An AvmContractInstanceHint instance
178
+ */
179
+ static fromPlainObject(obj: any): AvmContractInstanceHint {
180
+ if (obj instanceof AvmContractInstanceHint) {
181
+ return obj;
182
+ }
183
+ return new AvmContractInstanceHint(
184
+ obj.hintKey,
185
+ AztecAddress.fromPlainObject(obj.address),
186
+ Fr.fromPlainObject(obj.salt),
187
+ AztecAddress.fromPlainObject(obj.deployer),
188
+ Fr.fromPlainObject(obj.currentContractClassId),
189
+ Fr.fromPlainObject(obj.originalContractClassId),
190
+ Fr.fromPlainObject(obj.initializationHash),
191
+ PublicKeys.fromPlainObject(obj.publicKeys),
192
+ );
193
+ }
194
+ }
195
+
196
+ export class AvmDebugFunctionNameHint {
197
+ constructor(
198
+ public readonly address: AztecAddress,
199
+ public readonly selector: Fr,
200
+ public readonly name: string,
201
+ ) {}
202
+
203
+ static get schema() {
204
+ return z
205
+ .object({
206
+ address: AztecAddress.schema,
207
+ selector: schemas.Fr,
208
+ name: z.string(),
209
+ })
210
+ .transform(({ address, selector, name }) => new AvmDebugFunctionNameHint(address, selector, name));
211
+ }
212
+
213
+ /**
214
+ * Creates an AvmDebugFunctionNameHint from a plain object without Zod validation.
215
+ * This method is optimized for performance and skips validation, making it suitable
216
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
217
+ * @param obj - Plain object containing AvmDebugFunctionNameHint fields
218
+ * @returns An AvmDebugFunctionNameHint instance
219
+ */
220
+ static fromPlainObject(obj: any): AvmDebugFunctionNameHint {
221
+ if (obj instanceof AvmDebugFunctionNameHint) {
222
+ return obj;
223
+ }
224
+ return new AvmDebugFunctionNameHint(
225
+ AztecAddress.fromPlainObject(obj.address),
226
+ Fr.fromPlainObject(obj.selector),
227
+ obj.name,
228
+ );
229
+ }
230
+ }
231
+
232
+ ////////////////////////////////////////////////////////////////////////////
233
+ // Hints (merkle db)
234
+ ////////////////////////////////////////////////////////////////////////////
235
+ // Hint for MerkleTreeDB.getSiblingPath.
236
+ export class AvmGetSiblingPathHint {
237
+ constructor(
238
+ public readonly hintKey: AppendOnlyTreeSnapshot,
239
+ // params
240
+ public readonly treeId: MerkleTreeId,
241
+ public readonly index: bigint,
242
+ // return
243
+ public readonly path: Fr[],
244
+ ) {}
245
+
246
+ static get schema() {
247
+ return z
248
+ .object({
249
+ hintKey: AppendOnlyTreeSnapshot.schema,
250
+ treeId: z.number().int().nonnegative(),
251
+ index: schemas.BigInt,
252
+ path: schemas.Fr.array(),
253
+ })
254
+ .transform(({ hintKey, treeId, index, path }) => new AvmGetSiblingPathHint(hintKey, treeId, index, path));
255
+ }
256
+
257
+ /**
258
+ * Creates an AvmGetSiblingPathHint from a plain object without Zod validation.
259
+ * This method is optimized for performance and skips validation, making it suitable
260
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
261
+ * @param obj - Plain object containing AvmGetSiblingPathHint fields
262
+ * @returns An AvmGetSiblingPathHint instance
263
+ */
264
+ static fromPlainObject(obj: any): AvmGetSiblingPathHint {
265
+ if (obj instanceof AvmGetSiblingPathHint) {
266
+ return obj;
267
+ }
268
+ return new AvmGetSiblingPathHint(
269
+ AppendOnlyTreeSnapshot.fromPlainObject(obj.hintKey),
270
+ obj.treeId,
271
+ typeof obj.index === 'bigint' ? obj.index : BigInt(obj.index),
272
+ obj.path.map((p: any) => Fr.fromPlainObject(p)),
273
+ );
274
+ }
117
275
  }
118
276
 
119
- export class AvmAppendTreeHint {
120
- constructor(public readonly leafIndex: Fr, public readonly value: Fr, public readonly siblingPath: Fr[]) {}
277
+ // Hint for MerkleTreeDB.getPreviousValueIndex.
278
+ export class AvmGetPreviousValueIndexHint {
279
+ constructor(
280
+ public readonly hintKey: AppendOnlyTreeSnapshot,
281
+ // params
282
+ public readonly treeId: MerkleTreeId,
283
+ public readonly value: Fr,
284
+ // return
285
+ public readonly index: bigint,
286
+ public readonly alreadyPresent: boolean,
287
+ ) {}
121
288
 
122
289
  static get schema() {
123
290
  return z
124
291
  .object({
125
- leafIndex: schemas.Fr,
292
+ hintKey: AppendOnlyTreeSnapshot.schema,
293
+ treeId: z.number().int().nonnegative(),
126
294
  value: schemas.Fr,
127
- siblingPath: schemas.Fr.array(),
295
+ index: schemas.BigInt,
296
+ alreadyPresent: z.boolean(),
128
297
  })
129
- .transform(({ leafIndex, value, siblingPath }) => new AvmAppendTreeHint(leafIndex, value, siblingPath));
298
+ .transform(
299
+ ({ hintKey, treeId, value, index, alreadyPresent }) =>
300
+ new AvmGetPreviousValueIndexHint(hintKey, treeId, value, index, alreadyPresent),
301
+ );
302
+ }
303
+
304
+ /**
305
+ * Creates an AvmGetPreviousValueIndexHint from a plain object without Zod validation.
306
+ * This method is optimized for performance and skips validation, making it suitable
307
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
308
+ * @param obj - Plain object containing AvmGetPreviousValueIndexHint fields
309
+ * @returns An AvmGetPreviousValueIndexHint instance
310
+ */
311
+ static fromPlainObject(obj: any): AvmGetPreviousValueIndexHint {
312
+ if (obj instanceof AvmGetPreviousValueIndexHint) {
313
+ return obj;
314
+ }
315
+ return new AvmGetPreviousValueIndexHint(
316
+ AppendOnlyTreeSnapshot.fromPlainObject(obj.hintKey),
317
+ obj.treeId,
318
+ Fr.fromPlainObject(obj.value),
319
+ typeof obj.index === 'bigint' ? obj.index : BigInt(obj.index),
320
+ obj.alreadyPresent,
321
+ );
130
322
  }
131
323
  }
132
324
 
133
- export class AvmNullifierWriteTreeHint {
134
- constructor(public lowLeafRead: AvmNullifierReadTreeHint, public readonly insertionPath: Fr[]) {}
325
+ type IndexedTreeLeafPreimages = NullifierLeafPreimage | PublicDataTreeLeafPreimage;
326
+ type IndexedTreeLeafPreimagesClasses = typeof NullifierLeafPreimage | typeof PublicDataTreeLeafPreimage;
327
+
328
+ // Hint for MerkleTreeDB.getLeafPreimage.
329
+ // NOTE: I need this factory because in order to get hold of the schema, I need an actual instance of the class,
330
+ // having the type doesn't suffice since TS does type erasure in the end.
331
+ function AvmGetLeafPreimageHintFactory(klass: IndexedTreeLeafPreimagesClasses) {
332
+ return class {
333
+ constructor(
334
+ public readonly hintKey: AppendOnlyTreeSnapshot,
335
+ // params (tree id will be implicit)
336
+ public readonly index: bigint,
337
+ // return
338
+ public readonly leafPreimage: IndexedTreeLeafPreimages,
339
+ ) {}
340
+
341
+ static get schema() {
342
+ return z
343
+ .object({
344
+ hintKey: AppendOnlyTreeSnapshot.schema,
345
+ index: schemas.BigInt,
346
+ leafPreimage: klass.schema,
347
+ })
348
+ .transform(({ hintKey, index, leafPreimage }) => new this(hintKey, index, leafPreimage));
349
+ }
350
+
351
+ /**
352
+ * Creates an instance from a plain object without Zod validation.
353
+ * This method is optimized for performance and skips validation, making it suitable
354
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
355
+ * @param obj - Plain object containing hint fields
356
+ * @returns An instance
357
+ */
358
+ static fromPlainObject(obj: any): any {
359
+ if (obj instanceof this) {
360
+ return obj;
361
+ }
362
+ return new this(
363
+ AppendOnlyTreeSnapshot.fromPlainObject(obj.hintKey),
364
+ typeof obj.index === 'bigint' ? obj.index : BigInt(obj.index),
365
+ klass.fromPlainObject(obj.leafPreimage),
366
+ );
367
+ }
368
+ };
369
+ }
370
+
371
+ // Note: only supported for PUBLIC_DATA_TREE and NULLIFIER_TREE.
372
+ export class AvmGetLeafPreimageHintPublicDataTree extends AvmGetLeafPreimageHintFactory(PublicDataTreeLeafPreimage) {}
373
+ export class AvmGetLeafPreimageHintNullifierTree extends AvmGetLeafPreimageHintFactory(NullifierLeafPreimage) {}
374
+
375
+ // Hint for MerkleTreeDB.getLeafValue.
376
+ // Note: only supported for NOTE_HASH_TREE and L1_TO_L2_MESSAGE_TREE.
377
+ export class AvmGetLeafValueHint {
378
+ constructor(
379
+ public readonly hintKey: AppendOnlyTreeSnapshot,
380
+ // params
381
+ public readonly treeId: MerkleTreeId,
382
+ public readonly index: bigint,
383
+ // return
384
+ public readonly value: Fr,
385
+ ) {}
135
386
 
136
387
  static get schema() {
137
388
  return z
138
389
  .object({
139
- lowLeafRead: AvmNullifierReadTreeHint.schema,
140
- insertionPath: schemas.Fr.array(),
390
+ hintKey: AppendOnlyTreeSnapshot.schema,
391
+ treeId: z.number().int().nonnegative(),
392
+ index: schemas.BigInt,
393
+ value: schemas.Fr,
141
394
  })
142
- .transform(({ lowLeafRead, insertionPath }) => new AvmNullifierWriteTreeHint(lowLeafRead, insertionPath));
395
+ .transform(({ hintKey, treeId, index, value }) => new AvmGetLeafValueHint(hintKey, treeId, index, value));
396
+ }
397
+
398
+ /**
399
+ * Creates an AvmGetLeafValueHint from a plain object without Zod validation.
400
+ * This method is optimized for performance and skips validation, making it suitable
401
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
402
+ * @param obj - Plain object containing AvmGetLeafValueHint fields
403
+ * @returns An AvmGetLeafValueHint instance
404
+ */
405
+ static fromPlainObject(obj: any): AvmGetLeafValueHint {
406
+ if (obj instanceof AvmGetLeafValueHint) {
407
+ return obj;
408
+ }
409
+ return new AvmGetLeafValueHint(
410
+ AppendOnlyTreeSnapshot.fromPlainObject(obj.hintKey),
411
+ obj.treeId,
412
+ typeof obj.index === 'bigint' ? obj.index : BigInt(obj.index),
413
+ Fr.fromPlainObject(obj.value),
414
+ );
143
415
  }
144
416
  }
145
417
 
146
- export class AvmNullifierReadTreeHint {
418
+ // Hint for MerkleTreeDB.sequentialInsert.
419
+ // NOTE: I need this factory because in order to get hold of the schema, I need an actual instance of the class,
420
+ // having the type doesn't suffice since TS does type erasure in the end.
421
+ function AvmSequentialInsertHintFactory(klass: IndexedTreeLeafPreimagesClasses) {
422
+ return class {
423
+ constructor(
424
+ public readonly hintKey: AppendOnlyTreeSnapshot,
425
+ public readonly stateAfter: AppendOnlyTreeSnapshot,
426
+ // params
427
+ public readonly treeId: MerkleTreeId,
428
+ public readonly leaf: InstanceType<IndexedTreeLeafPreimagesClasses>['leaf'],
429
+ // return
430
+ public readonly lowLeavesWitnessData: {
431
+ leaf: IndexedTreeLeafPreimages;
432
+ index: bigint;
433
+ path: Fr[];
434
+ },
435
+ public readonly insertionWitnessData: {
436
+ leaf: IndexedTreeLeafPreimages;
437
+ index: bigint;
438
+ path: Fr[];
439
+ },
440
+ ) {}
441
+
442
+ static get schema() {
443
+ return z
444
+ .object({
445
+ hintKey: AppendOnlyTreeSnapshot.schema,
446
+ stateAfter: AppendOnlyTreeSnapshot.schema,
447
+ treeId: z.number().int().nonnegative(),
448
+ leaf: klass.leafSchema,
449
+ lowLeavesWitnessData: z.object({
450
+ leaf: klass.schema,
451
+ index: schemas.BigInt,
452
+ path: schemas.Fr.array(),
453
+ }),
454
+ insertionWitnessData: z.object({
455
+ leaf: klass.schema,
456
+ index: schemas.BigInt,
457
+ path: schemas.Fr.array(),
458
+ }),
459
+ })
460
+ .transform(
461
+ ({ hintKey, stateAfter, treeId, leaf, lowLeavesWitnessData, insertionWitnessData }) =>
462
+ new this(hintKey, stateAfter, treeId, leaf, lowLeavesWitnessData, insertionWitnessData),
463
+ );
464
+ }
465
+
466
+ /**
467
+ * Creates an instance from a plain object without Zod validation.
468
+ * This method is optimized for performance and skips validation, making it suitable
469
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
470
+ * @param obj - Plain object containing hint fields
471
+ * @returns An instance
472
+ */
473
+ static fromPlainObject(obj: any): any {
474
+ if (obj instanceof this) {
475
+ return obj;
476
+ }
477
+ // Determine the leaf class based on the klass parameter
478
+ const LeafClass = klass === PublicDataTreeLeafPreimage ? PublicDataTreeLeaf : NullifierLeaf;
479
+ return new this(
480
+ AppendOnlyTreeSnapshot.fromPlainObject(obj.hintKey),
481
+ AppendOnlyTreeSnapshot.fromPlainObject(obj.stateAfter),
482
+ obj.treeId,
483
+ LeafClass.fromPlainObject(obj.leaf),
484
+ {
485
+ leaf: klass.fromPlainObject(obj.lowLeavesWitnessData.leaf),
486
+ index:
487
+ typeof obj.lowLeavesWitnessData.index === 'bigint'
488
+ ? obj.lowLeavesWitnessData.index
489
+ : BigInt(obj.lowLeavesWitnessData.index),
490
+ path: obj.lowLeavesWitnessData.path.map((p: any) => Fr.fromPlainObject(p)),
491
+ },
492
+ {
493
+ leaf: klass.fromPlainObject(obj.insertionWitnessData.leaf),
494
+ index:
495
+ typeof obj.insertionWitnessData.index === 'bigint'
496
+ ? obj.insertionWitnessData.index
497
+ : BigInt(obj.insertionWitnessData.index),
498
+ path: obj.insertionWitnessData.path.map((p: any) => Fr.fromPlainObject(p)),
499
+ },
500
+ );
501
+ }
502
+ };
503
+ }
504
+
505
+ // Note: only supported for PUBLIC_DATA_TREE and NULLIFIER_TREE.
506
+ export class AvmSequentialInsertHintPublicDataTree extends AvmSequentialInsertHintFactory(PublicDataTreeLeafPreimage) {}
507
+ export class AvmSequentialInsertHintNullifierTree extends AvmSequentialInsertHintFactory(NullifierLeafPreimage) {}
508
+
509
+ // Hint for MerkleTreeDB.appendLeaves.
510
+ // Note: only supported for NOTE_HASH_TREE and L1_TO_L2_MESSAGE_TREE.
511
+ export class AvmAppendLeavesHint {
147
512
  constructor(
148
- public readonly lowLeafPreimage: NullifierLeafPreimage,
149
- public readonly lowLeafIndex: Fr,
150
- public readonly lowLeafSiblingPath: Fr[],
513
+ public readonly hintKey: AppendOnlyTreeSnapshot,
514
+ public readonly stateAfter: AppendOnlyTreeSnapshot,
515
+ // params
516
+ public readonly treeId: MerkleTreeId,
517
+ public readonly leaves: Fr[],
151
518
  ) {}
152
519
 
153
520
  static get schema() {
154
521
  return z
155
522
  .object({
156
- lowLeafPreimage: NullifierLeafPreimage.schema,
157
- lowLeafIndex: schemas.Fr,
158
- lowLeafSiblingPath: schemas.Fr.array(),
523
+ hintKey: AppendOnlyTreeSnapshot.schema,
524
+ stateAfter: AppendOnlyTreeSnapshot.schema,
525
+ treeId: z.number().int().nonnegative(),
526
+ leaves: schemas.Fr.array(),
159
527
  })
160
528
  .transform(
161
- ({ lowLeafPreimage, lowLeafIndex, lowLeafSiblingPath }) =>
162
- new AvmNullifierReadTreeHint(lowLeafPreimage, lowLeafIndex, lowLeafSiblingPath),
529
+ ({ hintKey, stateAfter, treeId, leaves }) => new AvmAppendLeavesHint(hintKey, stateAfter, treeId, leaves),
163
530
  );
164
531
  }
532
+
533
+ /**
534
+ * Creates an AvmAppendLeavesHint from a plain object without Zod validation.
535
+ * This method is optimized for performance and skips validation, making it suitable
536
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
537
+ * @param obj - Plain object containing AvmAppendLeavesHint fields
538
+ * @returns An AvmAppendLeavesHint instance
539
+ */
540
+ static fromPlainObject(obj: any): AvmAppendLeavesHint {
541
+ if (obj instanceof AvmAppendLeavesHint) {
542
+ return obj;
543
+ }
544
+ return new AvmAppendLeavesHint(
545
+ AppendOnlyTreeSnapshot.fromPlainObject(obj.hintKey),
546
+ AppendOnlyTreeSnapshot.fromPlainObject(obj.stateAfter),
547
+ obj.treeId,
548
+ obj.leaves.map((l: any) => Fr.fromPlainObject(l)),
549
+ );
550
+ }
165
551
  }
166
552
 
167
- export class AvmPublicDataReadTreeHint {
553
+ // Hint for checkpoint actions that don't change the state.
554
+ class AvmCheckpointActionNoStateChangeHint {
168
555
  constructor(
169
- public readonly leafPreimage: PublicDataTreeLeafPreimage,
170
- public readonly leafIndex: Fr,
171
- public readonly siblingPath: Fr[],
556
+ // key
557
+ public readonly actionCounter: number,
558
+ // current checkpoint evolution
559
+ public readonly oldCheckpointId: number,
560
+ public readonly newCheckpointId: number,
172
561
  ) {}
173
562
 
174
- static empty() {
175
- return new AvmPublicDataReadTreeHint(PublicDataTreeLeafPreimage.empty(), Fr.ZERO, []);
563
+ static get schema() {
564
+ return z
565
+ .object({
566
+ actionCounter: z.number().int().nonnegative(),
567
+ oldCheckpointId: z.number().int().nonnegative(),
568
+ newCheckpointId: z.number().int().nonnegative(),
569
+ })
570
+ .transform(
571
+ ({ actionCounter, oldCheckpointId, newCheckpointId }) =>
572
+ new this(actionCounter, oldCheckpointId, newCheckpointId),
573
+ );
574
+ }
575
+
576
+ /**
577
+ * Creates an instance from a plain object without Zod validation.
578
+ * This method is optimized for performance and skips validation, making it suitable
579
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
580
+ * @param obj - Plain object containing hint fields
581
+ * @returns An instance
582
+ */
583
+ static fromPlainObject(obj: any): any {
584
+ if (obj instanceof this) {
585
+ return obj;
586
+ }
587
+ return new this(obj.actionCounter, obj.oldCheckpointId, obj.newCheckpointId);
588
+ }
589
+ }
590
+
591
+ // Hint for MerkleTreeDB.createCheckpoint.
592
+ export class AvmCreateCheckpointHint extends AvmCheckpointActionNoStateChangeHint {}
593
+
594
+ // Hint for MerkleTreeDB.commitCheckpoint.
595
+ export class AvmCommitCheckpointHint extends AvmCheckpointActionNoStateChangeHint {}
596
+
597
+ // Hint for MerkleTreeDB.revertCheckpoint.
598
+ export class AvmRevertCheckpointHint {
599
+ // We use explicit fields for MessagePack.
600
+ constructor(
601
+ // key
602
+ public readonly actionCounter: number,
603
+ // current checkpoint evolution
604
+ public readonly oldCheckpointId: number,
605
+ public readonly newCheckpointId: number,
606
+ // state evolution
607
+ public readonly stateBefore: TreeSnapshots,
608
+ public readonly stateAfter: TreeSnapshots,
609
+ ) {}
610
+
611
+ static create(
612
+ actionCounter: number,
613
+ oldCheckpointId: number,
614
+ newCheckpointId: number,
615
+ stateBefore: Record<MerkleTreeId, AppendOnlyTreeSnapshot>,
616
+ stateAfter: Record<MerkleTreeId, AppendOnlyTreeSnapshot>,
617
+ ): AvmRevertCheckpointHint {
618
+ return new AvmRevertCheckpointHint(
619
+ actionCounter,
620
+ oldCheckpointId,
621
+ newCheckpointId,
622
+ new TreeSnapshots(
623
+ stateBefore[MerkleTreeId.L1_TO_L2_MESSAGE_TREE],
624
+ stateBefore[MerkleTreeId.NOTE_HASH_TREE],
625
+ stateBefore[MerkleTreeId.NULLIFIER_TREE],
626
+ stateBefore[MerkleTreeId.PUBLIC_DATA_TREE],
627
+ ),
628
+ new TreeSnapshots(
629
+ stateAfter[MerkleTreeId.L1_TO_L2_MESSAGE_TREE],
630
+ stateAfter[MerkleTreeId.NOTE_HASH_TREE],
631
+ stateAfter[MerkleTreeId.NULLIFIER_TREE],
632
+ stateAfter[MerkleTreeId.PUBLIC_DATA_TREE],
633
+ ),
634
+ );
176
635
  }
177
636
 
178
637
  static get schema() {
179
638
  return z
180
639
  .object({
181
- leafPreimage: PublicDataTreeLeafPreimage.schema,
182
- leafIndex: schemas.Fr,
183
- siblingPath: schemas.Fr.array(),
640
+ actionCounter: z.number().int().nonnegative(),
641
+ oldCheckpointId: z.number().int().nonnegative(),
642
+ newCheckpointId: z.number().int().nonnegative(),
643
+ stateBefore: TreeSnapshots.schema,
644
+ stateAfter: TreeSnapshots.schema,
184
645
  })
185
646
  .transform(
186
- ({ leafPreimage, leafIndex, siblingPath }) =>
187
- new AvmPublicDataReadTreeHint(leafPreimage, leafIndex, siblingPath),
647
+ ({ actionCounter, oldCheckpointId, newCheckpointId, stateBefore, stateAfter }) =>
648
+ new AvmRevertCheckpointHint(actionCounter, oldCheckpointId, newCheckpointId, stateBefore, stateAfter),
188
649
  );
189
650
  }
651
+
652
+ /**
653
+ * Creates an AvmRevertCheckpointHint from a plain object without Zod validation.
654
+ * This method is optimized for performance and skips validation, making it suitable
655
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
656
+ * @param obj - Plain object containing AvmRevertCheckpointHint fields
657
+ * @returns An AvmRevertCheckpointHint instance
658
+ */
659
+ static fromPlainObject(obj: any): AvmRevertCheckpointHint {
660
+ if (obj instanceof AvmRevertCheckpointHint) {
661
+ return obj;
662
+ }
663
+ return new AvmRevertCheckpointHint(
664
+ obj.actionCounter,
665
+ obj.oldCheckpointId,
666
+ obj.newCheckpointId,
667
+ TreeSnapshots.fromPlainObject(obj.stateBefore),
668
+ TreeSnapshots.fromPlainObject(obj.stateAfter),
669
+ );
670
+ }
190
671
  }
191
672
 
192
- export class AvmPublicDataWriteTreeHint {
673
+ export class AvmContractDbCreateCheckpointHint extends AvmCheckpointActionNoStateChangeHint {}
674
+ export class AvmContractDbCommitCheckpointHint extends AvmCheckpointActionNoStateChangeHint {}
675
+ export class AvmContractDbRevertCheckpointHint extends AvmCheckpointActionNoStateChangeHint {}
676
+
677
+ ////////////////////////////////////////////////////////////////////////////
678
+ // Hints (other)
679
+ ////////////////////////////////////////////////////////////////////////////
680
+ export class AvmTxHint {
193
681
  constructor(
194
- // To check the current slot has been written to
195
- public readonly lowLeafRead: AvmPublicDataReadTreeHint,
196
- public readonly newLeafPreimage: PublicDataTreeLeafPreimage,
197
- public readonly insertionPath: Fr[],
682
+ public readonly hash: string,
683
+ public readonly gasSettings: GasSettings,
684
+ public readonly effectiveGasFees: GasFees,
685
+ public readonly nonRevertibleContractDeploymentData: ContractDeploymentData,
686
+ public readonly revertibleContractDeploymentData: ContractDeploymentData,
687
+ public readonly nonRevertibleAccumulatedData: {
688
+ noteHashes: Fr[];
689
+ nullifiers: Fr[];
690
+ l2ToL1Messages: ScopedL2ToL1Message[];
691
+ },
692
+ public readonly revertibleAccumulatedData: {
693
+ noteHashes: Fr[];
694
+ nullifiers: Fr[];
695
+ l2ToL1Messages: ScopedL2ToL1Message[];
696
+ },
697
+ public readonly setupEnqueuedCalls: PublicCallRequestWithCalldata[],
698
+ public readonly appLogicEnqueuedCalls: PublicCallRequestWithCalldata[],
699
+ // We need this to be null and not undefined because that's what
700
+ // MessagePack expects for an std::optional.
701
+ public readonly teardownEnqueuedCall: PublicCallRequestWithCalldata | null,
702
+ public readonly gasUsedByPrivate: Gas,
703
+ public readonly feePayer: AztecAddress,
198
704
  ) {}
199
705
 
706
+ static fromTx(tx: Tx, gasFees: GasFees): AvmTxHint {
707
+ const setupCallRequests = tx.getNonRevertiblePublicCallRequestsWithCalldata();
708
+ const appLogicCallRequests = tx.getRevertiblePublicCallRequestsWithCalldata();
709
+ const teardownCallRequest = tx.getTeardownPublicCallRequestWithCalldata();
710
+ const gasSettings = tx.data.constants.txContext.gasSettings;
711
+ const effectiveGasFees = computeEffectiveGasFees(gasFees, gasSettings);
712
+ const allContractDeploymentData = AllContractDeploymentData.fromTx(tx);
713
+
714
+ // For informational purposes. Assumed quick because it should be cached.
715
+ const txHash = tx.getTxHash();
716
+
717
+ return new AvmTxHint(
718
+ txHash.hash.toString(),
719
+ gasSettings,
720
+ effectiveGasFees,
721
+ allContractDeploymentData.getNonRevertibleContractDeploymentData(),
722
+ allContractDeploymentData.getRevertibleContractDeploymentData(),
723
+ {
724
+ noteHashes: tx.data.forPublic!.nonRevertibleAccumulatedData.noteHashes.filter(x => !x.isZero()),
725
+ nullifiers: tx.data.forPublic!.nonRevertibleAccumulatedData.nullifiers.filter(x => !x.isZero()),
726
+ l2ToL1Messages: tx.data.forPublic!.nonRevertibleAccumulatedData.l2ToL1Msgs.filter(x => !x.isEmpty()),
727
+ },
728
+ {
729
+ noteHashes: tx.data.forPublic!.revertibleAccumulatedData.noteHashes.filter(x => !x.isZero()),
730
+ nullifiers: tx.data.forPublic!.revertibleAccumulatedData.nullifiers.filter(x => !x.isZero()),
731
+ l2ToL1Messages: tx.data.forPublic!.revertibleAccumulatedData.l2ToL1Msgs.filter(x => !x.isEmpty()),
732
+ },
733
+ setupCallRequests,
734
+ appLogicCallRequests,
735
+ teardownCallRequest ?? null,
736
+ tx.data.gasUsed,
737
+ tx.data.feePayer,
738
+ );
739
+ }
740
+
741
+ static empty() {
742
+ return new AvmTxHint(
743
+ '',
744
+ GasSettings.empty(),
745
+ GasFees.empty(),
746
+ ContractDeploymentData.empty(),
747
+ ContractDeploymentData.empty(),
748
+ { noteHashes: [], nullifiers: [], l2ToL1Messages: [] },
749
+ { noteHashes: [], nullifiers: [], l2ToL1Messages: [] },
750
+ [],
751
+ [],
752
+ null,
753
+ Gas.empty(),
754
+ AztecAddress.zero(),
755
+ );
756
+ }
757
+
758
+ /**
759
+ * Creates an AvmTxHint from a plain object without Zod validation.
760
+ * This method is optimized for performance and skips validation, making it suitable
761
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
762
+ * @param obj - Plain object containing AvmTxHint fields
763
+ * @returns An AvmTxHint instance
764
+ */
765
+ static fromPlainObject(obj: any): AvmTxHint {
766
+ if (obj instanceof AvmTxHint) {
767
+ return obj;
768
+ }
769
+ return new AvmTxHint(
770
+ obj.hash,
771
+ GasSettings.fromPlainObject(obj.gasSettings),
772
+ GasFees.fromPlainObject(obj.effectiveGasFees),
773
+ ContractDeploymentData.fromPlainObject(obj.nonRevertibleContractDeploymentData),
774
+ ContractDeploymentData.fromPlainObject(obj.revertibleContractDeploymentData),
775
+ {
776
+ noteHashes: obj.nonRevertibleAccumulatedData.noteHashes.map((h: any) => Fr.fromPlainObject(h)),
777
+ nullifiers: obj.nonRevertibleAccumulatedData.nullifiers.map((n: any) => Fr.fromPlainObject(n)),
778
+ l2ToL1Messages: obj.nonRevertibleAccumulatedData.l2ToL1Messages.map((m: any) =>
779
+ ScopedL2ToL1Message.fromPlainObject(m),
780
+ ),
781
+ },
782
+ {
783
+ noteHashes: obj.revertibleAccumulatedData.noteHashes.map((h: any) => Fr.fromPlainObject(h)),
784
+ nullifiers: obj.revertibleAccumulatedData.nullifiers.map((n: any) => Fr.fromPlainObject(n)),
785
+ l2ToL1Messages: obj.revertibleAccumulatedData.l2ToL1Messages.map((m: any) =>
786
+ ScopedL2ToL1Message.fromPlainObject(m),
787
+ ),
788
+ },
789
+ obj.setupEnqueuedCalls.map((c: any) => PublicCallRequestWithCalldata.fromPlainObject(c)),
790
+ obj.appLogicEnqueuedCalls.map((c: any) => PublicCallRequestWithCalldata.fromPlainObject(c)),
791
+ obj.teardownEnqueuedCall ? PublicCallRequestWithCalldata.fromPlainObject(obj.teardownEnqueuedCall) : null,
792
+ Gas.fromPlainObject(obj.gasUsedByPrivate),
793
+ AztecAddress.fromPlainObject(obj.feePayer),
794
+ );
795
+ }
796
+
200
797
  static get schema() {
201
798
  return z
202
799
  .object({
203
- lowLeafRead: AvmPublicDataReadTreeHint.schema,
204
- newLeafPreimage: PublicDataTreeLeafPreimage.schema,
205
- insertionPath: schemas.Fr.array(),
800
+ hash: z.string(),
801
+ gasSettings: GasSettings.schema,
802
+ effectiveGasFees: GasFees.schema,
803
+ nonRevertibleContractDeploymentData: ContractDeploymentData.schema,
804
+ revertibleContractDeploymentData: ContractDeploymentData.schema,
805
+ nonRevertibleAccumulatedData: z.object({
806
+ noteHashes: schemas.Fr.array(),
807
+ nullifiers: schemas.Fr.array(),
808
+ l2ToL1Messages: ScopedL2ToL1Message.schema.array(),
809
+ }),
810
+ revertibleAccumulatedData: z.object({
811
+ noteHashes: schemas.Fr.array(),
812
+ nullifiers: schemas.Fr.array(),
813
+ l2ToL1Messages: ScopedL2ToL1Message.schema.array(),
814
+ }),
815
+ setupEnqueuedCalls: PublicCallRequestWithCalldata.schema.array(),
816
+ appLogicEnqueuedCalls: PublicCallRequestWithCalldata.schema.array(),
817
+ teardownEnqueuedCall: PublicCallRequestWithCalldata.schema.nullable(),
818
+ gasUsedByPrivate: Gas.schema,
819
+ feePayer: AztecAddress.schema,
206
820
  })
207
821
  .transform(
208
- ({ lowLeafRead, newLeafPreimage, insertionPath }) =>
209
- new AvmPublicDataWriteTreeHint(lowLeafRead, newLeafPreimage, insertionPath),
822
+ ({
823
+ hash,
824
+ gasSettings,
825
+ effectiveGasFees,
826
+ nonRevertibleContractDeploymentData,
827
+ revertibleContractDeploymentData,
828
+ nonRevertibleAccumulatedData,
829
+ revertibleAccumulatedData,
830
+ setupEnqueuedCalls,
831
+ appLogicEnqueuedCalls,
832
+ teardownEnqueuedCall,
833
+ gasUsedByPrivate,
834
+ feePayer,
835
+ }) =>
836
+ new AvmTxHint(
837
+ hash,
838
+ gasSettings,
839
+ effectiveGasFees,
840
+ nonRevertibleContractDeploymentData,
841
+ revertibleContractDeploymentData,
842
+ nonRevertibleAccumulatedData,
843
+ revertibleAccumulatedData,
844
+ setupEnqueuedCalls,
845
+ appLogicEnqueuedCalls,
846
+ teardownEnqueuedCall,
847
+ gasUsedByPrivate,
848
+ feePayer,
849
+ ),
210
850
  );
211
851
  }
212
852
  }
213
853
 
214
854
  export class AvmExecutionHints {
215
855
  constructor(
216
- public readonly enqueuedCalls: AvmEnqueuedCallHint[],
217
- public readonly contractInstances: AvmContractInstanceHint[],
218
- public readonly contractClasses: AvmContractClassHint[],
219
- public readonly publicDataReads: AvmPublicDataReadTreeHint[],
220
- public readonly publicDataWrites: AvmPublicDataWriteTreeHint[],
221
- public readonly nullifierReads: AvmNullifierReadTreeHint[],
222
- public readonly nullifierWrites: AvmNullifierWriteTreeHint[],
223
- public readonly noteHashReads: AvmAppendTreeHint[],
224
- public readonly noteHashWrites: AvmAppendTreeHint[],
225
- public readonly l1ToL2MessageReads: AvmAppendTreeHint[],
856
+ public readonly globalVariables: GlobalVariables,
857
+ public tx: AvmTxHint,
858
+ // Protocol contracts.
859
+ public protocolContracts: ProtocolContracts,
860
+ // Contract hints.
861
+ public readonly contractInstances: AvmContractInstanceHint[] = [],
862
+ public readonly contractClasses: AvmContractClassHint[] = [],
863
+ public readonly bytecodeCommitments: AvmBytecodeCommitmentHint[] = [],
864
+ public readonly debugFunctionNames: AvmDebugFunctionNameHint[] = [],
865
+ public readonly contractDbCreateCheckpointHints: AvmContractDbCreateCheckpointHint[] = [],
866
+ public readonly contractDbCommitCheckpointHints: AvmContractDbCommitCheckpointHint[] = [],
867
+ public readonly contractDbRevertCheckpointHints: AvmContractDbRevertCheckpointHint[] = [],
868
+ // Merkle DB hints.
869
+ public startingTreeRoots: TreeSnapshots = TreeSnapshots.empty(),
870
+ public readonly getSiblingPathHints: AvmGetSiblingPathHint[] = [],
871
+ public readonly getPreviousValueIndexHints: AvmGetPreviousValueIndexHint[] = [],
872
+ public readonly getLeafPreimageHintsPublicDataTree: AvmGetLeafPreimageHintPublicDataTree[] = [],
873
+ public readonly getLeafPreimageHintsNullifierTree: AvmGetLeafPreimageHintNullifierTree[] = [],
874
+ public readonly getLeafValueHints: AvmGetLeafValueHint[] = [],
875
+ public readonly sequentialInsertHintsPublicDataTree: AvmSequentialInsertHintPublicDataTree[] = [],
876
+ public readonly sequentialInsertHintsNullifierTree: AvmSequentialInsertHintNullifierTree[] = [],
877
+ public readonly appendLeavesHints: AvmAppendLeavesHint[] = [],
878
+ public readonly createCheckpointHints: AvmCreateCheckpointHint[] = [],
879
+ public readonly commitCheckpointHints: AvmCommitCheckpointHint[] = [],
880
+ public readonly revertCheckpointHints: AvmRevertCheckpointHint[] = [],
226
881
  ) {}
227
882
 
883
+ /**
884
+ * Creates an AvmExecutionHints from a plain object without Zod validation.
885
+ * This method is optimized for performance and skips validation, making it suitable
886
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
887
+ * @param obj - Plain object containing AvmExecutionHints fields
888
+ * @returns An AvmExecutionHints instance
889
+ */
890
+ static fromPlainObject(obj: any): AvmExecutionHints {
891
+ if (obj instanceof AvmExecutionHints) {
892
+ return obj;
893
+ }
894
+ return new AvmExecutionHints(
895
+ GlobalVariables.fromPlainObject(obj.globalVariables),
896
+ AvmTxHint.fromPlainObject(obj.tx),
897
+ ProtocolContracts.fromPlainObject(obj.protocolContracts),
898
+ obj.contractInstances?.map((i: any) => AvmContractInstanceHint.fromPlainObject(i)) || [],
899
+ obj.contractClasses?.map((c: any) => AvmContractClassHint.fromPlainObject(c)) || [],
900
+ obj.bytecodeCommitments?.map((b: any) => AvmBytecodeCommitmentHint.fromPlainObject(b)) || [],
901
+ obj.debugFunctionNames?.map((d: any) => AvmDebugFunctionNameHint.fromPlainObject(d)) || [],
902
+ obj.contractDbCreateCheckpointHints?.map((h: any) => AvmContractDbCreateCheckpointHint.fromPlainObject(h)) || [],
903
+ obj.contractDbCommitCheckpointHints?.map((h: any) => AvmContractDbCommitCheckpointHint.fromPlainObject(h)) || [],
904
+ obj.contractDbRevertCheckpointHints?.map((h: any) => AvmContractDbRevertCheckpointHint.fromPlainObject(h)) || [],
905
+ obj.startingTreeRoots ? TreeSnapshots.fromPlainObject(obj.startingTreeRoots) : TreeSnapshots.empty(),
906
+ obj.getSiblingPathHints?.map((h: any) => AvmGetSiblingPathHint.fromPlainObject(h)) || [],
907
+ obj.getPreviousValueIndexHints?.map((h: any) => AvmGetPreviousValueIndexHint.fromPlainObject(h)) || [],
908
+ obj.getLeafPreimageHintsPublicDataTree?.map((h: any) =>
909
+ AvmGetLeafPreimageHintPublicDataTree.fromPlainObject(h),
910
+ ) || [],
911
+ obj.getLeafPreimageHintsNullifierTree?.map((h: any) => AvmGetLeafPreimageHintNullifierTree.fromPlainObject(h)) ||
912
+ [],
913
+ obj.getLeafValueHints?.map((h: any) => AvmGetLeafValueHint.fromPlainObject(h)) || [],
914
+ obj.sequentialInsertHintsPublicDataTree?.map((h: any) =>
915
+ AvmSequentialInsertHintPublicDataTree.fromPlainObject(h),
916
+ ) || [],
917
+ obj.sequentialInsertHintsNullifierTree?.map((h: any) =>
918
+ AvmSequentialInsertHintNullifierTree.fromPlainObject(h),
919
+ ) || [],
920
+ obj.appendLeavesHints?.map((h: any) => AvmAppendLeavesHint.fromPlainObject(h)) || [],
921
+ obj.createCheckpointHints?.map((h: any) => AvmCreateCheckpointHint.fromPlainObject(h)) || [],
922
+ obj.commitCheckpointHints?.map((h: any) => AvmCommitCheckpointHint.fromPlainObject(h)) || [],
923
+ obj.revertCheckpointHints?.map((h: any) => AvmRevertCheckpointHint.fromPlainObject(h)) || [],
924
+ );
925
+ }
926
+
228
927
  static empty() {
229
- return new AvmExecutionHints([], [], [], [], [], [], [], [], [], []);
928
+ return new AvmExecutionHints(GlobalVariables.empty(), AvmTxHint.empty(), ProtocolContracts.empty());
230
929
  }
231
930
 
232
931
  static get schema() {
233
932
  return z
234
933
  .object({
235
- enqueuedCalls: AvmEnqueuedCallHint.schema.array(),
934
+ globalVariables: GlobalVariables.schema,
935
+ tx: AvmTxHint.schema,
936
+ protocolContracts: ProtocolContracts.schema,
236
937
  contractInstances: AvmContractInstanceHint.schema.array(),
237
938
  contractClasses: AvmContractClassHint.schema.array(),
238
- publicDataReads: AvmPublicDataReadTreeHint.schema.array(),
239
- publicDataWrites: AvmPublicDataWriteTreeHint.schema.array(),
240
- nullifierReads: AvmNullifierReadTreeHint.schema.array(),
241
- nullifierWrites: AvmNullifierWriteTreeHint.schema.array(),
242
- noteHashReads: AvmAppendTreeHint.schema.array(),
243
- noteHashWrites: AvmAppendTreeHint.schema.array(),
244
- l1ToL2MessageReads: AvmAppendTreeHint.schema.array(),
939
+ bytecodeCommitments: AvmBytecodeCommitmentHint.schema.array(),
940
+ debugFunctionNames: AvmDebugFunctionNameHint.schema.array(),
941
+ contractDbCreateCheckpointHints: AvmContractDbCreateCheckpointHint.schema.array(),
942
+ contractDbCommitCheckpointHints: AvmContractDbCommitCheckpointHint.schema.array(),
943
+ contractDbRevertCheckpointHints: AvmContractDbRevertCheckpointHint.schema.array(),
944
+ startingTreeRoots: TreeSnapshots.schema,
945
+ getSiblingPathHints: AvmGetSiblingPathHint.schema.array(),
946
+ getPreviousValueIndexHints: AvmGetPreviousValueIndexHint.schema.array(),
947
+ getLeafPreimageHintsPublicDataTree: AvmGetLeafPreimageHintPublicDataTree.schema.array(),
948
+ getLeafPreimageHintsNullifierTree: AvmGetLeafPreimageHintNullifierTree.schema.array(),
949
+ getLeafValueHints: AvmGetLeafValueHint.schema.array(),
950
+ sequentialInsertHintsPublicDataTree: AvmSequentialInsertHintPublicDataTree.schema.array(),
951
+ sequentialInsertHintsNullifierTree: AvmSequentialInsertHintNullifierTree.schema.array(),
952
+ appendLeavesHints: AvmAppendLeavesHint.schema.array(),
953
+ createCheckpointHints: AvmCreateCheckpointHint.schema.array(),
954
+ commitCheckpointHints: AvmCommitCheckpointHint.schema.array(),
955
+ revertCheckpointHints: AvmRevertCheckpointHint.schema.array(),
245
956
  })
246
957
  .transform(
247
958
  ({
248
- enqueuedCalls,
959
+ globalVariables,
960
+ tx,
961
+ protocolContracts,
249
962
  contractInstances,
250
963
  contractClasses,
251
- publicDataReads,
252
- publicDataWrites,
253
- nullifierReads,
254
- nullifierWrites,
255
- noteHashReads,
256
- noteHashWrites,
257
- l1ToL2MessageReads,
964
+ bytecodeCommitments,
965
+ debugFunctionNames,
966
+ contractDbCreateCheckpointHints,
967
+ contractDbCommitCheckpointHints,
968
+ contractDbRevertCheckpointHints,
969
+ startingTreeRoots,
970
+ getSiblingPathHints,
971
+ getPreviousValueIndexHints,
972
+ getLeafPreimageHintsPublicDataTree,
973
+ getLeafPreimageHintsNullifierTree,
974
+ getLeafValueHints,
975
+ sequentialInsertHintsPublicDataTree,
976
+ sequentialInsertHintsNullifierTree,
977
+ appendLeavesHints,
978
+ createCheckpointHints,
979
+ commitCheckpointHints,
980
+ revertCheckpointHints,
258
981
  }) =>
259
982
  new AvmExecutionHints(
260
- enqueuedCalls,
983
+ globalVariables,
984
+ tx,
985
+ protocolContracts,
261
986
  contractInstances,
262
987
  contractClasses,
263
- publicDataReads,
264
- publicDataWrites,
265
- nullifierReads,
266
- nullifierWrites,
267
- noteHashReads,
268
- noteHashWrites,
269
- l1ToL2MessageReads,
988
+ bytecodeCommitments,
989
+ debugFunctionNames,
990
+ contractDbCreateCheckpointHints,
991
+ contractDbCommitCheckpointHints,
992
+ contractDbRevertCheckpointHints,
993
+ startingTreeRoots,
994
+ getSiblingPathHints,
995
+ getPreviousValueIndexHints,
996
+ getLeafPreimageHintsPublicDataTree,
997
+ getLeafPreimageHintsNullifierTree,
998
+ getLeafValueHints,
999
+ sequentialInsertHintsPublicDataTree,
1000
+ sequentialInsertHintsNullifierTree,
1001
+ appendLeavesHints,
1002
+ createCheckpointHints,
1003
+ commitCheckpointHints,
1004
+ revertCheckpointHints,
270
1005
  ),
271
1006
  );
272
1007
  }
@@ -274,28 +1009,28 @@ export class AvmExecutionHints {
274
1009
 
275
1010
  export class AvmCircuitInputs {
276
1011
  constructor(
277
- public readonly functionName: string, // only informational
278
- public readonly calldata: Fr[],
279
1012
  public readonly hints: AvmExecutionHints,
280
1013
  public publicInputs: AvmCircuitPublicInputs,
281
1014
  ) {}
282
1015
 
283
1016
  static empty() {
284
- return new AvmCircuitInputs('', [], AvmExecutionHints.empty(), AvmCircuitPublicInputs.empty());
1017
+ return new AvmCircuitInputs(AvmExecutionHints.empty(), AvmCircuitPublicInputs.empty());
1018
+ }
1019
+
1020
+ static fromPlainObject(obj: any): AvmCircuitInputs {
1021
+ return new AvmCircuitInputs(
1022
+ AvmExecutionHints.fromPlainObject(obj.hints),
1023
+ AvmCircuitPublicInputs.fromPlainObject(obj.publicInputs),
1024
+ );
285
1025
  }
286
1026
 
287
1027
  static get schema() {
288
1028
  return z
289
1029
  .object({
290
- functionName: z.string(),
291
- calldata: schemas.Fr.array(),
292
1030
  hints: AvmExecutionHints.schema,
293
1031
  publicInputs: AvmCircuitPublicInputs.schema,
294
1032
  })
295
- .transform(
296
- ({ functionName, calldata, hints, publicInputs }) =>
297
- new AvmCircuitInputs(functionName, calldata, hints, publicInputs),
298
- );
1033
+ .transform(({ hints, publicInputs }) => new AvmCircuitInputs(hints, publicInputs));
299
1034
  }
300
1035
 
301
1036
  public serializeWithMessagePack(): Buffer {
@@ -310,3 +1045,471 @@ export class AvmCircuitInputs {
310
1045
  return jsonParseWithSchema(buf.toString(), this.schema);
311
1046
  }
312
1047
  }
1048
+
1049
+ // Metadata about a given (enqueued or external) call.
1050
+ export class CallStackMetadata {
1051
+ constructor(
1052
+ public phase: TxExecutionPhase,
1053
+ public contractAddress: Fr,
1054
+ public callerPc: number,
1055
+ public calldata: Fr[],
1056
+ public isStaticCall: boolean,
1057
+ public gasLimit: Gas,
1058
+ public output: Fr[], // returndata or revertdata.
1059
+ public internalCallStackAtExit: number[], // At return/revert time. Last one is exit PC.
1060
+ public haltingMessage: string | undefined,
1061
+ public reverted: boolean,
1062
+ public nested: CallStackMetadata[],
1063
+ public numNestedCalls: number, // This will be different from the size of the nested vector if we went past some limit.
1064
+ ) {}
1065
+
1066
+ static get schema(): ZodFor<CallStackMetadata> {
1067
+ return z
1068
+ .object({
1069
+ phase: z.nativeEnum(TxExecutionPhase),
1070
+ contractAddress: Fr.schema,
1071
+ callerPc: z.number(),
1072
+ calldata: Fr.schema.array(),
1073
+ isStaticCall: z.boolean(),
1074
+ gasLimit: Gas.schema,
1075
+ output: Fr.schema.array(),
1076
+ internalCallStackAtExit: z.number().array(),
1077
+ haltingMessage: NullishToUndefined(z.string()),
1078
+ reverted: z.boolean(),
1079
+ nested: CallStackMetadata.schema.array(),
1080
+ numNestedCalls: z.number(),
1081
+ })
1082
+ .transform(
1083
+ ({
1084
+ phase,
1085
+ contractAddress,
1086
+ callerPc,
1087
+ calldata,
1088
+ isStaticCall,
1089
+ gasLimit,
1090
+ output,
1091
+ internalCallStackAtExit,
1092
+ haltingMessage,
1093
+ reverted,
1094
+ nested,
1095
+ numNestedCalls,
1096
+ }) =>
1097
+ new CallStackMetadata(
1098
+ phase,
1099
+ contractAddress,
1100
+ callerPc,
1101
+ calldata,
1102
+ isStaticCall,
1103
+ gasLimit,
1104
+ output,
1105
+ internalCallStackAtExit,
1106
+ haltingMessage,
1107
+ reverted,
1108
+ nested,
1109
+ numNestedCalls,
1110
+ ),
1111
+ );
1112
+ }
1113
+
1114
+ /**
1115
+ * Creates a CallStackMetadata from a plain object without Zod validation.
1116
+ * This method is optimized for performance and skips validation, making it suitable
1117
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
1118
+ * @param obj - Plain object containing CallStackMetadata fields
1119
+ * @returns A CallStackMetadata instance
1120
+ */
1121
+ static fromPlainObject(obj: any): CallStackMetadata {
1122
+ if (obj instanceof CallStackMetadata) {
1123
+ return obj;
1124
+ }
1125
+ return new CallStackMetadata(
1126
+ obj.phase,
1127
+ Fr.fromPlainObject(obj.contractAddress),
1128
+ obj.callerPc,
1129
+ obj.calldata.map((f: any) => Fr.fromPlainObject(f)),
1130
+ obj.isStaticCall,
1131
+ Gas.fromPlainObject(obj.gasLimit),
1132
+ obj.output.map((f: any) => Fr.fromPlainObject(f)),
1133
+ obj.internalCallStackAtExit.map((p: any) => Number(p)),
1134
+ obj.haltingMessage,
1135
+ obj.reverted,
1136
+ obj.nested.map((n: any) => CallStackMetadata.fromPlainObject(n)),
1137
+ obj.numNestedCalls,
1138
+ );
1139
+ }
1140
+
1141
+ public getRevertReason(): SimulationError | undefined {
1142
+ const failingCall = this.findDeepestRevert([this]);
1143
+
1144
+ if (!failingCall) {
1145
+ return undefined;
1146
+ }
1147
+
1148
+ const { stack, leaf } = failingCall;
1149
+ const aztecCallStack = stack.map(call => ({
1150
+ contractAddress: AztecAddress.fromField(call.contractAddress),
1151
+ functionSelector: call.calldata.length > 0 ? FunctionSelector.fromFieldOrUndefined(call.calldata[0]) : undefined,
1152
+ }));
1153
+
1154
+ // The Noir call stack is the internal call stack at exit of the failing call
1155
+ const noirCallStack = leaf.internalCallStackAtExit.map(pc => `0.${pc}`);
1156
+
1157
+ return new SimulationError(
1158
+ leaf.haltingMessage ?? 'Transaction reverted',
1159
+ aztecCallStack,
1160
+ leaf.output,
1161
+ noirCallStack,
1162
+ );
1163
+ }
1164
+
1165
+ /**
1166
+ * Finds the "rightmost deepest" revert in the call tree.
1167
+ *
1168
+ * At each level, we select the LAST (rightmost) reverted call, then recurse into its
1169
+ * nested calls to find the deepest reverted leaf along that path. The chain stops
1170
+ * when we encounter a non-reverted call (since you can choose not to rethrow).
1171
+ *
1172
+ * Examples (X = reverted, O = passed):
1173
+ *
1174
+ * 1. [X, X, X] at depth 1 -> returns the last X (rightmost)
1175
+ *
1176
+ * 2. [X(depth2), X, X] where first X has a nested revert -> returns the last X at depth 1,
1177
+ * NOT the deeper revert in the first X (rightmost takes priority over depth)
1178
+ *
1179
+ * 3. X -> X -> X -> O -> O -> X (nested chain)
1180
+ * Returns the 3rd X, because the O's break the reverted chain (they didn't rethrow)
1181
+ *
1182
+ * @param calls - Array of call metadata at the current level
1183
+ * @param parentStack - Accumulated stack of parent calls (for building the result)
1184
+ * @returns The deepest reverted call along the rightmost reverted path, or undefined if none
1185
+ */
1186
+ private findDeepestRevert(
1187
+ calls: CallStackMetadata[],
1188
+ parentStack: CallStackMetadata[] = [],
1189
+ ): { stack: CallStackMetadata[]; leaf: CallStackMetadata } | undefined {
1190
+ const lastReverted = calls.findLast(call => call.reverted);
1191
+ if (!lastReverted) {
1192
+ return undefined;
1193
+ }
1194
+ const currentStack = [...parentStack, lastReverted];
1195
+ return this.findDeepestRevert(lastReverted.nested, currentStack) || { stack: currentStack, leaf: lastReverted };
1196
+ }
1197
+ }
1198
+
1199
+ export class PublicTxEffect {
1200
+ constructor(
1201
+ public transactionFee: Fr,
1202
+ public noteHashes: Fr[],
1203
+ public nullifiers: Fr[],
1204
+ public l2ToL1Msgs: ScopedL2ToL1Message[],
1205
+ public publicLogs: PublicLog[],
1206
+ public publicDataWrites: PublicDataWrite[],
1207
+ ) {}
1208
+
1209
+ static empty() {
1210
+ return new PublicTxEffect(Fr.ZERO, [], [], [], [], []);
1211
+ }
1212
+
1213
+ static get schema(): ZodFor<PublicTxEffect> {
1214
+ return z
1215
+ .object({
1216
+ transactionFee: Fr.schema,
1217
+ noteHashes: Fr.schema.array(),
1218
+ nullifiers: Fr.schema.array(),
1219
+ l2ToL1Msgs: ScopedL2ToL1Message.schema.array(),
1220
+ publicLogs: PublicLog.schema.array(),
1221
+ publicDataWrites: PublicDataWrite.schema.array(),
1222
+ })
1223
+ .transform(PublicTxEffect.from);
1224
+ }
1225
+
1226
+ static from(obj: any): PublicTxEffect {
1227
+ return new PublicTxEffect(
1228
+ obj.transactionFee,
1229
+ obj.noteHashes,
1230
+ obj.nullifiers,
1231
+ obj.l2ToL1Msgs,
1232
+ obj.publicLogs,
1233
+ obj.publicDataWrites,
1234
+ );
1235
+ }
1236
+
1237
+ static fromPlainObject(obj: any): PublicTxEffect {
1238
+ return new PublicTxEffect(
1239
+ Fr.fromPlainObject(obj.transactionFee),
1240
+ obj.noteHashes.map((h: any) => Fr.fromPlainObject(h)),
1241
+ obj.nullifiers.map((n: any) => Fr.fromPlainObject(n)),
1242
+ obj.l2ToL1Msgs.map((m: any) => ScopedL2ToL1Message.fromPlainObject(m)),
1243
+ obj.publicLogs.map((l: any) => PublicLog.fromPlainObject(l)),
1244
+ obj.publicDataWrites.map((w: any) => PublicDataWrite.fromPlainObject(w)),
1245
+ );
1246
+ }
1247
+
1248
+ equals(other: PublicTxEffect): boolean {
1249
+ return (
1250
+ this.transactionFee.equals(other.transactionFee) &&
1251
+ this.noteHashes.length === other.noteHashes.length &&
1252
+ this.noteHashes.every((h, i) => h.equals(other.noteHashes[i])) &&
1253
+ this.nullifiers.length === other.nullifiers.length &&
1254
+ this.nullifiers.every((h, i) => h.equals(other.nullifiers[i])) &&
1255
+ this.l2ToL1Msgs.length === other.l2ToL1Msgs.length &&
1256
+ this.l2ToL1Msgs.every((m, i) => m.equals(other.l2ToL1Msgs[i])) &&
1257
+ this.publicLogs.length === other.publicLogs.length &&
1258
+ this.publicLogs.every((l, i) => l.equals(other.publicLogs[i])) &&
1259
+ this.publicDataWrites.length === other.publicDataWrites.length &&
1260
+ this.publicDataWrites.every((w, i) => w.equals(other.publicDataWrites[i]))
1261
+ );
1262
+ }
1263
+ }
1264
+
1265
+ export class PublicTxResult {
1266
+ constructor(
1267
+ // Simulation result.
1268
+ public gasUsed: GasUsed,
1269
+ public revertCode: RevertCode,
1270
+ public publicTxEffect: PublicTxEffect,
1271
+ // These are only guaranteed to be present if the simulator is configured to collect them.
1272
+ // TODO(fcarreiro): Remove NestedProcessReturnValues[] once we migrate to the C++ simulator.
1273
+ public callStackMetadata:
1274
+ | CallStackMetadata[] // One per enqueued call. All phases.
1275
+ | NestedProcessReturnValues[], // One per enqueued call. App logic only.
1276
+ public logs: DebugLog[] | undefined,
1277
+ // For the proving request.
1278
+ public hints: AvmExecutionHints | undefined,
1279
+ public publicInputs: AvmCircuitPublicInputs | undefined,
1280
+ ) {}
1281
+
1282
+ static empty() {
1283
+ return new PublicTxResult(
1284
+ {
1285
+ totalGas: Gas.empty(),
1286
+ teardownGas: Gas.empty(),
1287
+ publicGas: Gas.empty(),
1288
+ billedGas: Gas.empty(),
1289
+ },
1290
+ RevertCode.OK,
1291
+ PublicTxEffect.empty(),
1292
+ /*callStackMetadata=*/ [] as CallStackMetadata[],
1293
+ /*logs=*/ [],
1294
+ /*hints=*/ AvmExecutionHints.empty(),
1295
+ /*publicInputs=*/ AvmCircuitPublicInputs.empty(),
1296
+ );
1297
+ }
1298
+
1299
+ static get schema(): ZodFor<PublicTxResult> {
1300
+ return z
1301
+ .object({
1302
+ gasUsed: schemas.GasUsed,
1303
+ revertCode: RevertCode.schema,
1304
+ revertReason: NullishToUndefined(SimulationError.schema),
1305
+ publicTxEffect: PublicTxEffect.schema,
1306
+ callStackMetadata: z.union([CallStackMetadata.schema.array(), NestedProcessReturnValues.schema.array()]),
1307
+ logs: NullishToUndefined(DebugLog.schema.array()),
1308
+ // For the proving request.
1309
+ publicInputs: NullishToUndefined(AvmCircuitPublicInputs.schema),
1310
+ hints: NullishToUndefined(AvmExecutionHints.schema),
1311
+ })
1312
+ .transform(
1313
+ ({ gasUsed, revertCode, publicTxEffect, callStackMetadata, logs, hints, publicInputs }) =>
1314
+ new PublicTxResult(
1315
+ gasUsed,
1316
+ revertCode as RevertCode,
1317
+ publicTxEffect,
1318
+ callStackMetadata,
1319
+ logs,
1320
+ hints,
1321
+ publicInputs,
1322
+ ),
1323
+ );
1324
+ }
1325
+
1326
+ /**
1327
+ * Creates a PublicTxResult from a plain object without Zod validation.
1328
+ * This method is optimized for performance and skips validation, making it suitable
1329
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
1330
+ * @param obj - Plain object containing PublicTxResult fields
1331
+ * @returns A PublicTxResult instance
1332
+ */
1333
+ static fromPlainObject(obj: any): PublicTxResult {
1334
+ return new PublicTxResult(
1335
+ GasUsed.fromPlainObject(obj.gasUsed),
1336
+ RevertCode.fromPlainObject(obj.revertCode),
1337
+ PublicTxEffect.fromPlainObject(obj.publicTxEffect),
1338
+ obj.callStackMetadata.map(CallStackMetadata.fromPlainObject), // Always CallStackMetadata[] from MessagePack.
1339
+ obj.logs?.map(DebugLog.fromPlainObject),
1340
+ obj.hints ? AvmExecutionHints.fromPlainObject(obj.hints) : undefined,
1341
+ obj.publicInputs ? AvmCircuitPublicInputs.fromPlainObject(obj.publicInputs) : undefined,
1342
+ );
1343
+ }
1344
+
1345
+ /** Returns one level of return values for the app logic phase, one per enqueued call. */
1346
+ public getAppLogicReturnValues(): NestedProcessReturnValues[] {
1347
+ if (this.callStackMetadata.every(metadata => metadata instanceof CallStackMetadata)) {
1348
+ return this.callStackMetadata
1349
+ .filter(metadata => metadata.phase === TxExecutionPhase.APP_LOGIC)
1350
+ .map(metadata => new NestedProcessReturnValues(metadata.output));
1351
+ } else {
1352
+ return (this.callStackMetadata as NestedProcessReturnValues[]).map(
1353
+ metadata => new NestedProcessReturnValues(metadata.values, metadata.nested),
1354
+ );
1355
+ }
1356
+ }
1357
+
1358
+ public findRevertReason(): SimulationError | undefined {
1359
+ if (this.revertCode.isOK()) {
1360
+ return undefined;
1361
+ }
1362
+
1363
+ const callStackMetadata = this.callStackMetadata;
1364
+ // TODO(fcarreiro): Remove this after migration to the C++ simulator.
1365
+ // If the "stack" comes from TS, it will have this field.
1366
+ if ((callStackMetadata as any).revertReason !== undefined) {
1367
+ return (callStackMetadata as any).revertReason;
1368
+ }
1369
+
1370
+ // Handle CallStackMetadata[].
1371
+ let revertReason: SimulationError | undefined = undefined;
1372
+ for (const call of callStackMetadata) {
1373
+ revertReason = (call as CallStackMetadata).getRevertReason();
1374
+ if (revertReason) {
1375
+ break;
1376
+ }
1377
+ }
1378
+ return revertReason;
1379
+ }
1380
+ }
1381
+
1382
+ export class CollectionLimitsConfig {
1383
+ constructor(
1384
+ public readonly maxDebugLogMemoryReads: number,
1385
+ public readonly maxCalldataSizeInFields: number,
1386
+ public readonly maxReturndataSizeInFields: number,
1387
+ public readonly maxCallStackDepth: number,
1388
+ public readonly maxCallStackItems: number,
1389
+ ) {}
1390
+
1391
+ static from(obj: Partial<CollectionLimitsConfig>): CollectionLimitsConfig {
1392
+ return new CollectionLimitsConfig(
1393
+ obj.maxDebugLogMemoryReads ?? DEFAULT_MAX_DEBUG_LOG_MEMORY_READS,
1394
+ obj.maxCalldataSizeInFields ?? 300,
1395
+ obj.maxReturndataSizeInFields ?? 300,
1396
+ obj.maxCallStackDepth ?? 5,
1397
+ obj.maxCallStackItems ?? 100,
1398
+ );
1399
+ }
1400
+
1401
+ static empty() {
1402
+ return CollectionLimitsConfig.from({});
1403
+ }
1404
+
1405
+ static get schema() {
1406
+ return z
1407
+ .object({
1408
+ maxDebugLogMemoryReads: z.number(),
1409
+ maxCalldataSizeInFields: z.number(),
1410
+ maxReturndataSizeInFields: z.number(),
1411
+ maxCallStackDepth: z.number(),
1412
+ maxCallStackItems: z.number(),
1413
+ })
1414
+ .transform(
1415
+ ({
1416
+ maxDebugLogMemoryReads,
1417
+ maxCalldataSizeInFields,
1418
+ maxReturndataSizeInFields,
1419
+ maxCallStackDepth,
1420
+ maxCallStackItems,
1421
+ }) =>
1422
+ new CollectionLimitsConfig(
1423
+ maxDebugLogMemoryReads,
1424
+ maxCalldataSizeInFields,
1425
+ maxReturndataSizeInFields,
1426
+ maxCallStackDepth,
1427
+ maxCallStackItems,
1428
+ ),
1429
+ );
1430
+ }
1431
+ }
1432
+
1433
+ export class PublicSimulatorConfig {
1434
+ constructor(
1435
+ public readonly proverId: Fr,
1436
+ public readonly skipFeeEnforcement: boolean,
1437
+ public readonly collectCallMetadata: boolean, // appLogicReturnValues.
1438
+ public readonly collectHints: boolean, // hints.
1439
+ public readonly collectPublicInputs: boolean, // public inputs.
1440
+ public readonly collectDebugLogs: boolean, // logs.
1441
+ public readonly collectStatistics: boolean, // timings etc.
1442
+ public readonly collectionLimits: CollectionLimitsConfig,
1443
+ ) {}
1444
+
1445
+ static from(obj: Partial<PublicSimulatorConfig>): PublicSimulatorConfig {
1446
+ return new PublicSimulatorConfig(
1447
+ obj.proverId ?? Fr.ZERO,
1448
+ obj.skipFeeEnforcement ?? false,
1449
+ obj.collectCallMetadata ?? false,
1450
+ obj.collectHints ?? false,
1451
+ obj.collectPublicInputs ?? false,
1452
+ obj.collectDebugLogs ?? false,
1453
+ obj.collectStatistics ?? false,
1454
+ obj.collectionLimits ?? CollectionLimitsConfig.empty(),
1455
+ );
1456
+ }
1457
+
1458
+ static empty() {
1459
+ return PublicSimulatorConfig.from({});
1460
+ }
1461
+
1462
+ static get schema() {
1463
+ return z
1464
+ .object({
1465
+ proverId: Fr.schema,
1466
+ skipFeeEnforcement: z.boolean(),
1467
+ collectCallMetadata: z.boolean(),
1468
+ collectHints: z.boolean(),
1469
+ collectPublicInputs: z.boolean(),
1470
+ collectDebugLogs: z.boolean(),
1471
+ collectStatistics: z.boolean(),
1472
+ collectionLimits: CollectionLimitsConfig.schema,
1473
+ })
1474
+ .transform(PublicSimulatorConfig.from);
1475
+ }
1476
+ }
1477
+
1478
+ export class AvmFastSimulationInputs {
1479
+ constructor(
1480
+ public readonly wsRevision: WorldStateRevision,
1481
+ public readonly config: PublicSimulatorConfig,
1482
+ public tx: AvmTxHint,
1483
+ public globalVariables: GlobalVariables,
1484
+ public protocolContracts: ProtocolContracts,
1485
+ ) {}
1486
+
1487
+ static empty() {
1488
+ return new AvmFastSimulationInputs(
1489
+ WorldStateRevision.empty(),
1490
+ PublicSimulatorConfig.empty(),
1491
+ AvmTxHint.empty(),
1492
+ GlobalVariables.empty(),
1493
+ ProtocolContracts.empty(),
1494
+ );
1495
+ }
1496
+
1497
+ static get schema() {
1498
+ return z
1499
+ .object({
1500
+ wsRevision: WorldStateRevision.schema,
1501
+ config: PublicSimulatorConfig.schema,
1502
+ tx: AvmTxHint.schema,
1503
+ globalVariables: GlobalVariables.schema,
1504
+ protocolContracts: ProtocolContracts.schema,
1505
+ })
1506
+ .transform(
1507
+ ({ wsRevision, config, tx, globalVariables, protocolContracts }) =>
1508
+ new AvmFastSimulationInputs(wsRevision, config, tx, globalVariables, protocolContracts),
1509
+ );
1510
+ }
1511
+
1512
+ public serializeWithMessagePack(): Buffer {
1513
+ return serializeWithMessagePack(this);
1514
+ }
1515
+ }