@aztec/stdlib 0.0.1-commit.6d3c34e → 0.0.1-commit.6ebe706df

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 (818) hide show
  1. package/dest/abi/abi.d.ts +138 -1
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +10 -2
  4. package/dest/abi/buffer.d.ts +14 -4
  5. package/dest/abi/buffer.d.ts.map +1 -1
  6. package/dest/abi/buffer.js +25 -4
  7. package/dest/abi/decoder.d.ts +6 -45
  8. package/dest/abi/decoder.d.ts.map +1 -1
  9. package/dest/abi/decoder.js +17 -70
  10. package/dest/abi/encoder.d.ts +1 -1
  11. package/dest/abi/encoder.d.ts.map +1 -1
  12. package/dest/abi/encoder.js +37 -6
  13. package/dest/abi/event_metadata_definition.d.ts +3 -1
  14. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  15. package/dest/abi/event_metadata_definition.js +1 -1
  16. package/dest/abi/function_call.d.ts +47 -9
  17. package/dest/abi/function_call.d.ts.map +1 -1
  18. package/dest/abi/function_call.js +20 -3
  19. package/dest/abi/function_selector.js +1 -1
  20. package/dest/abi/function_signature_decoder.d.ts +43 -0
  21. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  22. package/dest/abi/function_signature_decoder.js +66 -0
  23. package/dest/abi/index.d.ts +2 -1
  24. package/dest/abi/index.d.ts.map +1 -1
  25. package/dest/abi/index.js +1 -0
  26. package/dest/abi/utils.d.ts +20 -1
  27. package/dest/abi/utils.d.ts.map +1 -1
  28. package/dest/abi/utils.js +22 -0
  29. package/dest/auth_witness/auth_witness.d.ts +2 -1
  30. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  31. package/dest/auth_witness/auth_witness.js +3 -3
  32. package/dest/avm/avm.d.ts +62 -62
  33. package/dest/avm/avm_accumulated_data.d.ts +30 -3
  34. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  35. package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
  36. package/dest/avm/avm_proving_request.d.ts +465 -465
  37. package/dest/avm/contract_storage_read.d.ts +13 -1
  38. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  39. package/dest/avm/contract_storage_update_request.d.ts +13 -1
  40. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  41. package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
  42. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  43. package/dest/avm/public_data_read.d.ts +10 -1
  44. package/dest/avm/public_data_read.d.ts.map +1 -1
  45. package/dest/avm/public_data_update_request.d.ts +10 -1
  46. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  47. package/dest/avm/public_data_write.d.ts +7 -1
  48. package/dest/avm/public_data_write.d.ts.map +1 -1
  49. package/dest/avm/public_inner_call_request.d.ts +4 -1
  50. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  51. package/dest/avm/revert_code.d.ts +19 -4
  52. package/dest/avm/revert_code.d.ts.map +1 -1
  53. package/dest/avm/revert_code.js +15 -5
  54. package/dest/block/block_data.d.ts +52 -0
  55. package/dest/block/block_data.d.ts.map +1 -0
  56. package/dest/block/block_data.js +12 -0
  57. package/dest/block/block_hash.d.ts +18 -14
  58. package/dest/block/block_hash.d.ts.map +1 -1
  59. package/dest/block/block_hash.js +22 -20
  60. package/dest/block/block_parameter.d.ts +4 -3
  61. package/dest/block/block_parameter.d.ts.map +1 -1
  62. package/dest/block/block_parameter.js +2 -0
  63. package/dest/block/body.d.ts +1 -1
  64. package/dest/block/body.d.ts.map +1 -1
  65. package/dest/block/body.js +2 -1
  66. package/dest/block/checkpointed_l2_block.d.ts +20 -137
  67. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  68. package/dest/block/checkpointed_l2_block.js +7 -45
  69. package/dest/block/in_block.d.ts +9 -9
  70. package/dest/block/in_block.d.ts.map +1 -1
  71. package/dest/block/in_block.js +5 -5
  72. package/dest/block/index.d.ts +2 -3
  73. package/dest/block/index.d.ts.map +1 -1
  74. package/dest/block/index.js +1 -2
  75. package/dest/block/l2_block.d.ts +64 -59
  76. package/dest/block/l2_block.d.ts.map +1 -1
  77. package/dest/block/l2_block.js +73 -109
  78. package/dest/block/l2_block_source.d.ts +96 -43
  79. package/dest/block/l2_block_source.d.ts.map +1 -1
  80. package/dest/block/l2_block_source.js +2 -1
  81. package/dest/block/l2_block_stream/interfaces.d.ts +9 -6
  82. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  83. package/dest/block/l2_block_stream/l2_block_stream.d.ts +6 -3
  84. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  85. package/dest/block/l2_block_stream/l2_block_stream.js +47 -34
  86. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
  87. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  88. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  89. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  90. package/dest/block/test/l2_tips_store_test_suite.js +2 -7
  91. package/dest/block/validate_block_result.d.ts +1 -1
  92. package/dest/block/validate_block_result.d.ts.map +1 -1
  93. package/dest/block/validate_block_result.js +5 -4
  94. package/dest/checkpoint/checkpoint.d.ts +44 -19
  95. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  96. package/dest/checkpoint/checkpoint.js +45 -17
  97. package/dest/checkpoint/checkpoint_data.d.ts +120 -0
  98. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  99. package/dest/checkpoint/checkpoint_data.js +26 -0
  100. package/dest/checkpoint/index.d.ts +3 -1
  101. package/dest/checkpoint/index.d.ts.map +1 -1
  102. package/dest/checkpoint/index.js +2 -0
  103. package/dest/checkpoint/published_checkpoint.d.ts +33 -16
  104. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  105. package/dest/checkpoint/published_checkpoint.js +5 -5
  106. package/dest/checkpoint/validate.d.ts +36 -0
  107. package/dest/checkpoint/validate.d.ts.map +1 -0
  108. package/dest/checkpoint/validate.js +120 -0
  109. package/dest/config/index.d.ts +3 -1
  110. package/dest/config/index.d.ts.map +1 -1
  111. package/dest/config/index.js +2 -0
  112. package/dest/config/node-rpc-config.js +1 -1
  113. package/dest/config/pipelining-config.d.ts +19 -0
  114. package/dest/config/pipelining-config.d.ts.map +1 -0
  115. package/dest/config/pipelining-config.js +18 -0
  116. package/dest/config/sequencer-config.d.ts +12 -0
  117. package/dest/config/sequencer-config.d.ts.map +1 -0
  118. package/dest/config/sequencer-config.js +24 -0
  119. package/dest/contract/complete_address.d.ts +4 -1
  120. package/dest/contract/complete_address.d.ts.map +1 -1
  121. package/dest/contract/contract_address.d.ts +3 -3
  122. package/dest/contract/contract_address.js +7 -7
  123. package/dest/contract/contract_class.d.ts +2 -3
  124. package/dest/contract/contract_class.d.ts.map +1 -1
  125. package/dest/contract/contract_class_id.d.ts +3 -3
  126. package/dest/contract/contract_class_id.d.ts.map +1 -1
  127. package/dest/contract/contract_class_id.js +7 -6
  128. package/dest/contract/contract_deployment_data.d.ts +5 -5
  129. package/dest/contract/index.d.ts +1 -5
  130. package/dest/contract/index.d.ts.map +1 -1
  131. package/dest/contract/index.js +0 -4
  132. package/dest/contract/interfaces/contract_class.d.ts +3 -156
  133. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  134. package/dest/contract/interfaces/contract_class.js +1 -28
  135. package/dest/contract/interfaces/contract_instance.d.ts +16 -16
  136. package/dest/contract/interfaces/node-info.d.ts +3 -1
  137. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  138. package/dest/contract/interfaces/node-info.js +2 -1
  139. package/dest/contract/private_function.d.ts +1 -1
  140. package/dest/contract/private_function.d.ts.map +1 -1
  141. package/dest/contract/private_function.js +3 -4
  142. package/dest/database-version/database_version.d.ts +58 -0
  143. package/dest/database-version/database_version.d.ts.map +1 -0
  144. package/dest/database-version/database_version.js +69 -0
  145. package/dest/database-version/version_manager.d.ts +3 -49
  146. package/dest/database-version/version_manager.d.ts.map +1 -1
  147. package/dest/database-version/version_manager.js +1 -66
  148. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  149. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  150. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  151. package/dest/deserialization/index.d.ts +11 -0
  152. package/dest/deserialization/index.d.ts.map +1 -0
  153. package/dest/deserialization/index.js +10 -0
  154. package/dest/epoch-helpers/index.d.ts +13 -1
  155. package/dest/epoch-helpers/index.d.ts.map +1 -1
  156. package/dest/epoch-helpers/index.js +17 -3
  157. package/dest/errors/proving_error.d.ts +2 -2
  158. package/dest/errors/proving_error.d.ts.map +1 -1
  159. package/dest/file-store/local.d.ts +3 -3
  160. package/dest/file-store/local.d.ts.map +1 -1
  161. package/dest/file-store/local.js +13 -4
  162. package/dest/file-store/s3.d.ts +1 -1
  163. package/dest/file-store/s3.d.ts.map +1 -1
  164. package/dest/file-store/s3.js +11 -3
  165. package/dest/gas/gas_fees.d.ts +1 -1
  166. package/dest/gas/gas_fees.d.ts.map +1 -1
  167. package/dest/gas/gas_fees.js +4 -1
  168. package/dest/ha-signing/config.d.ts +136 -0
  169. package/dest/ha-signing/config.d.ts.map +1 -0
  170. package/dest/ha-signing/config.js +97 -0
  171. package/dest/ha-signing/index.d.ts +4 -0
  172. package/dest/ha-signing/index.d.ts.map +1 -0
  173. package/dest/ha-signing/index.js +3 -0
  174. package/dest/ha-signing/local_config.d.ts +63 -0
  175. package/dest/ha-signing/local_config.d.ts.map +1 -0
  176. package/dest/ha-signing/local_config.js +24 -0
  177. package/dest/ha-signing/types.d.ts +85 -0
  178. package/dest/ha-signing/types.d.ts.map +1 -0
  179. package/dest/ha-signing/types.js +32 -0
  180. package/dest/hash/hash.d.ts +17 -1
  181. package/dest/hash/hash.d.ts.map +1 -1
  182. package/dest/hash/hash.js +40 -10
  183. package/dest/hash/map_slot.d.ts +1 -1
  184. package/dest/hash/map_slot.d.ts.map +1 -1
  185. package/dest/hash/map_slot.js +4 -3
  186. package/dest/interfaces/allowed_element.d.ts +26 -20
  187. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  188. package/dest/interfaces/allowed_element.js +8 -8
  189. package/dest/interfaces/api_limit.d.ts +2 -1
  190. package/dest/interfaces/api_limit.d.ts.map +1 -1
  191. package/dest/interfaces/api_limit.js +1 -0
  192. package/dest/interfaces/archiver.d.ts +1 -1
  193. package/dest/interfaces/archiver.d.ts.map +1 -1
  194. package/dest/interfaces/archiver.js +26 -17
  195. package/dest/interfaces/aztec-node-admin.d.ts +170 -51
  196. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  197. package/dest/interfaces/aztec-node-admin.js +12 -4
  198. package/dest/interfaces/aztec-node.d.ts +76 -73
  199. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  200. package/dest/interfaces/aztec-node.js +15 -18
  201. package/dest/interfaces/block-builder.d.ts +53 -18
  202. package/dest/interfaces/block-builder.d.ts.map +1 -1
  203. package/dest/interfaces/block-builder.js +16 -2
  204. package/dest/interfaces/configs.d.ts +81 -36
  205. package/dest/interfaces/configs.d.ts.map +1 -1
  206. package/dest/interfaces/configs.js +10 -3
  207. package/dest/interfaces/get_logs_response.d.ts +16 -9
  208. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  209. package/dest/interfaces/l2_logs_source.d.ts +16 -5
  210. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  211. package/dest/interfaces/merkle_tree_operations.d.ts +10 -20
  212. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  213. package/dest/interfaces/p2p.d.ts +4 -9
  214. package/dest/interfaces/p2p.d.ts.map +1 -1
  215. package/dest/interfaces/prover-broker.d.ts +16 -1
  216. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  217. package/dest/interfaces/prover-broker.js +4 -1
  218. package/dest/interfaces/prover-client.d.ts +20 -1
  219. package/dest/interfaces/prover-client.d.ts.map +1 -1
  220. package/dest/interfaces/prover-client.js +18 -1
  221. package/dest/interfaces/proving-job.d.ts +50 -50
  222. package/dest/interfaces/slasher.d.ts +9 -1
  223. package/dest/interfaces/slasher.d.ts.map +1 -1
  224. package/dest/interfaces/slasher.js +2 -0
  225. package/dest/interfaces/tx_provider.d.ts +3 -3
  226. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  227. package/dest/interfaces/validator.d.ts +203 -39
  228. package/dest/interfaces/validator.d.ts.map +1 -1
  229. package/dest/interfaces/validator.js +11 -4
  230. package/dest/interfaces/world_state.d.ts +5 -4
  231. package/dest/interfaces/world_state.d.ts.map +1 -1
  232. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  233. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  234. package/dest/kernel/hints/build_note_hash_read_request_hints.js +29 -16
  235. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +4 -4
  236. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  237. package/dest/kernel/hints/build_nullifier_read_request_hints.js +28 -17
  238. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  239. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  240. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  241. package/dest/kernel/hints/index.d.ts +2 -2
  242. package/dest/kernel/hints/index.js +2 -2
  243. package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
  244. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  245. package/dest/kernel/hints/key_validation_request.d.ts +2 -1
  246. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  247. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  248. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  249. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  250. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
  251. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  252. package/dest/kernel/hints/read_request.d.ts +7 -1
  253. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  254. package/dest/kernel/hints/read_request_hints.d.ts +7 -1
  255. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  256. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  257. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  258. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  259. package/dest/kernel/private_accumulated_data.d.ts +23 -1
  260. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  261. package/dest/kernel/private_call_data.d.ts +25 -1
  262. package/dest/kernel/private_call_data.d.ts.map +1 -1
  263. package/dest/kernel/private_call_request.d.ts +16 -1
  264. package/dest/kernel/private_call_request.d.ts.map +1 -1
  265. package/dest/kernel/private_circuit_public_inputs.d.ts +81 -8
  266. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  267. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  268. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +33 -3
  269. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  270. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  271. package/dest/kernel/private_kernel_data.d.ts +7 -1
  272. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  273. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
  274. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  275. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
  276. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  277. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
  278. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  279. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +12 -3
  280. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  281. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  282. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +26 -3
  283. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  284. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  285. package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
  286. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  287. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  288. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  289. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
  290. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  291. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +18 -3
  292. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  293. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  294. package/dest/kernel/private_validation_requests.d.ts +13 -4
  295. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  296. package/dest/kernel/private_validation_requests.js +9 -9
  297. package/dest/kernel/public_call_request.d.ts +22 -1
  298. package/dest/kernel/public_call_request.d.ts.map +1 -1
  299. package/dest/kernel/utils/optional_number.d.ts +7 -1
  300. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  301. package/dest/keys/derivation.d.ts +3 -3
  302. package/dest/keys/derivation.js +15 -15
  303. package/dest/keys/key_types.d.ts +3 -3
  304. package/dest/keys/key_types.d.ts.map +1 -1
  305. package/dest/keys/public_keys.d.ts +5 -1
  306. package/dest/keys/public_keys.d.ts.map +1 -1
  307. package/dest/keys/public_keys.js +2 -2
  308. package/dest/keys/utils.d.ts +1 -1
  309. package/dest/keys/utils.d.ts.map +1 -1
  310. package/dest/keys/utils.js +8 -4
  311. package/dest/kv-store/config.d.ts +17 -0
  312. package/dest/kv-store/config.d.ts.map +1 -0
  313. package/dest/kv-store/config.js +26 -0
  314. package/dest/kv-store/index.d.ts +2 -0
  315. package/dest/kv-store/index.d.ts.map +1 -0
  316. package/dest/kv-store/index.js +1 -0
  317. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  318. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  319. package/dest/l1-contracts/slash_factory.js +1 -0
  320. package/dest/logs/debug_log_store.d.ts +30 -0
  321. package/dest/logs/debug_log_store.d.ts.map +1 -0
  322. package/dest/logs/debug_log_store.js +30 -0
  323. package/dest/logs/extended_contract_class_log.d.ts +3 -1
  324. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  325. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  326. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  327. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +23 -15
  328. package/dest/logs/extended_public_log.d.ts +17 -9
  329. package/dest/logs/extended_public_log.d.ts.map +1 -1
  330. package/dest/logs/index.d.ts +4 -2
  331. package/dest/logs/index.d.ts.map +1 -1
  332. package/dest/logs/index.js +3 -1
  333. package/dest/logs/log_filter.d.ts +4 -1
  334. package/dest/logs/log_filter.d.ts.map +1 -1
  335. package/dest/logs/log_filter.js +2 -1
  336. package/dest/logs/log_id.d.ts +21 -14
  337. package/dest/logs/log_id.d.ts.map +1 -1
  338. package/dest/logs/log_id.js +20 -17
  339. package/dest/logs/message_context.d.ts +4 -7
  340. package/dest/logs/message_context.d.ts.map +1 -1
  341. package/dest/logs/message_context.js +23 -9
  342. package/dest/logs/pending_tagged_log.d.ts +2 -3
  343. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  344. package/dest/logs/pending_tagged_log.js +2 -2
  345. package/dest/logs/pre_tag.d.ts +16 -11
  346. package/dest/logs/pre_tag.d.ts.map +1 -1
  347. package/dest/logs/pre_tag.js +2 -2
  348. package/dest/logs/private_log.d.ts +2 -2
  349. package/dest/logs/private_log.d.ts.map +1 -1
  350. package/dest/logs/public_log.d.ts +4 -3
  351. package/dest/logs/public_log.d.ts.map +1 -1
  352. package/dest/logs/public_log.js +2 -1
  353. package/dest/logs/siloed_tag.d.ts +5 -3
  354. package/dest/logs/siloed_tag.d.ts.map +1 -1
  355. package/dest/logs/siloed_tag.js +8 -6
  356. package/dest/logs/tag.js +1 -1
  357. package/dest/logs/tagging_index_range.d.ts +40 -0
  358. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  359. package/dest/logs/tagging_index_range.js +8 -0
  360. package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
  361. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  362. package/dest/logs/tx_scoped_l2_log.js +7 -0
  363. package/dest/messaging/inbox_leaf.d.ts +3 -1
  364. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  365. package/dest/messaging/l1_actor.d.ts +7 -1
  366. package/dest/messaging/l1_actor.d.ts.map +1 -1
  367. package/dest/messaging/l1_to_l2_message.d.ts +8 -2
  368. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  369. package/dest/messaging/l1_to_l2_message.js +11 -13
  370. package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
  371. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  372. package/dest/messaging/l2_actor.d.ts +7 -1
  373. package/dest/messaging/l2_actor.d.ts.map +1 -1
  374. package/dest/messaging/l2_to_l1_membership.d.ts +34 -8
  375. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  376. package/dest/messaging/l2_to_l1_membership.js +77 -32
  377. package/dest/messaging/out_hash.d.ts +41 -4
  378. package/dest/messaging/out_hash.d.ts.map +1 -1
  379. package/dest/messaging/out_hash.js +52 -26
  380. package/dest/noir/index.d.ts +3 -3
  381. package/dest/noir/index.d.ts.map +1 -1
  382. package/dest/note/index.d.ts +1 -2
  383. package/dest/note/index.d.ts.map +1 -1
  384. package/dest/note/index.js +0 -1
  385. package/dest/note/note_dao.d.ts +36 -5
  386. package/dest/note/note_dao.d.ts.map +1 -1
  387. package/dest/note/note_dao.js +15 -12
  388. package/dest/p2p/attestation_utils.d.ts +11 -1
  389. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  390. package/dest/p2p/attestation_utils.js +45 -0
  391. package/dest/p2p/block_proposal.d.ts +23 -8
  392. package/dest/p2p/block_proposal.d.ts.map +1 -1
  393. package/dest/p2p/block_proposal.js +26 -10
  394. package/dest/p2p/checkpoint_attestation.d.ts +6 -1
  395. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  396. package/dest/p2p/checkpoint_attestation.js +1 -1
  397. package/dest/p2p/checkpoint_proposal.d.ts +34 -14
  398. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  399. package/dest/p2p/checkpoint_proposal.js +56 -40
  400. package/dest/p2p/client_type.d.ts +2 -5
  401. package/dest/p2p/client_type.d.ts.map +1 -1
  402. package/dest/p2p/client_type.js +0 -7
  403. package/dest/p2p/consensus_payload.d.ts +15 -5
  404. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  405. package/dest/p2p/consensus_payload.js +22 -18
  406. package/dest/p2p/constants.d.ts +5 -0
  407. package/dest/p2p/constants.d.ts.map +1 -0
  408. package/dest/p2p/constants.js +3 -0
  409. package/dest/p2p/index.d.ts +2 -2
  410. package/dest/p2p/index.d.ts.map +1 -1
  411. package/dest/p2p/index.js +1 -1
  412. package/dest/p2p/message_validator.d.ts +18 -3
  413. package/dest/p2p/message_validator.d.ts.map +1 -1
  414. package/dest/p2p/message_validator.js +2 -1
  415. package/dest/p2p/peer_error.d.ts +3 -1
  416. package/dest/p2p/peer_error.d.ts.map +1 -1
  417. package/dest/p2p/peer_error.js +5 -0
  418. package/dest/p2p/signed_txs.d.ts +3 -1
  419. package/dest/p2p/signed_txs.d.ts.map +1 -1
  420. package/dest/p2p/signed_txs.js +6 -1
  421. package/dest/p2p/topic_type.d.ts +3 -4
  422. package/dest/p2p/topic_type.d.ts.map +1 -1
  423. package/dest/p2p/topic_type.js +7 -23
  424. package/dest/parity/parity_base_private_inputs.d.ts +3 -1
  425. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  426. package/dest/parity/parity_public_inputs.d.ts +4 -1
  427. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  428. package/dest/parity/parity_root_private_inputs.d.ts +2 -1
  429. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  430. package/dest/proofs/chonk_proof.d.ts +46 -2
  431. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  432. package/dest/proofs/chonk_proof.js +94 -14
  433. package/dest/proofs/proof.d.ts +4 -1
  434. package/dest/proofs/proof.d.ts.map +1 -1
  435. package/dest/proofs/recursive_proof.d.ts +10 -1
  436. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  437. package/dest/rollup/base_rollup_hints.d.ts +34 -1
  438. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  439. package/dest/rollup/block_constant_data.d.ts +12 -1
  440. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  441. package/dest/rollup/block_headers_hash.js +1 -1
  442. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
  443. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  444. package/dest/rollup/block_rollup_public_inputs.d.ts +44 -3
  445. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  446. package/dest/rollup/block_rollup_public_inputs.js +2 -2
  447. package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
  448. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  449. package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
  450. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
  451. package/dest/rollup/checkpoint_header.d.ts +31 -4
  452. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  453. package/dest/rollup/checkpoint_header.js +23 -7
  454. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
  455. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  456. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +45 -10
  457. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  458. package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -7
  459. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
  460. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  461. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
  462. package/dest/rollup/epoch_constant_data.d.ts +16 -1
  463. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  464. package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
  465. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  466. package/dest/rollup/root_rollup_public_inputs.d.ts +17 -7
  467. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  468. package/dest/rollup/root_rollup_public_inputs.js +7 -4
  469. package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
  470. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
  471. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
  472. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  473. package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
  474. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  475. package/dest/schemas/schemas.d.ts +1 -1
  476. package/dest/slashing/empire.d.ts +1 -1
  477. package/dest/slashing/empire.d.ts.map +1 -1
  478. package/dest/slashing/empire.js +2 -0
  479. package/dest/slashing/helpers.d.ts +2 -2
  480. package/dest/slashing/helpers.d.ts.map +1 -1
  481. package/dest/slashing/helpers.js +6 -0
  482. package/dest/slashing/tally.d.ts +8 -2
  483. package/dest/slashing/tally.d.ts.map +1 -1
  484. package/dest/slashing/tally.js +35 -3
  485. package/dest/slashing/types.d.ts +7 -3
  486. package/dest/slashing/types.d.ts.map +1 -1
  487. package/dest/slashing/types.js +13 -1
  488. package/dest/stats/stats.d.ts +1 -3
  489. package/dest/stats/stats.d.ts.map +1 -1
  490. package/dest/tests/factories.d.ts +5 -7
  491. package/dest/tests/factories.d.ts.map +1 -1
  492. package/dest/tests/factories.js +26 -54
  493. package/dest/tests/jest.js +1 -1
  494. package/dest/tests/mocks.d.ts +26 -15
  495. package/dest/tests/mocks.d.ts.map +1 -1
  496. package/dest/tests/mocks.js +75 -47
  497. package/dest/timetable/index.d.ts +37 -0
  498. package/dest/timetable/index.d.ts.map +1 -0
  499. package/dest/timetable/index.js +39 -0
  500. package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
  501. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  502. package/dest/trees/nullifier_leaf.d.ts +13 -1
  503. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  504. package/dest/trees/nullifier_membership_witness.d.ts +10 -1
  505. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  506. package/dest/trees/public_data_leaf.d.ts +17 -1
  507. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  508. package/dest/trees/public_data_leaf.js +7 -6
  509. package/dest/trees/public_data_witness.d.ts +11 -1
  510. package/dest/trees/public_data_witness.d.ts.map +1 -1
  511. package/dest/tx/block_header.d.ts +16 -2
  512. package/dest/tx/block_header.d.ts.map +1 -1
  513. package/dest/tx/block_header.js +10 -2
  514. package/dest/tx/call_context.d.ts +13 -1
  515. package/dest/tx/call_context.d.ts.map +1 -1
  516. package/dest/tx/capsule.d.ts +9 -2
  517. package/dest/tx/capsule.d.ts.map +1 -1
  518. package/dest/tx/capsule.js +9 -3
  519. package/dest/tx/execution_payload.d.ts +9 -1
  520. package/dest/tx/execution_payload.d.ts.map +1 -1
  521. package/dest/tx/function_data.d.ts +4 -2
  522. package/dest/tx/function_data.d.ts.map +1 -1
  523. package/dest/tx/global_variables.d.ts +12 -4
  524. package/dest/tx/global_variables.d.ts.map +1 -1
  525. package/dest/tx/hashed_values.d.ts +7 -1
  526. package/dest/tx/hashed_values.d.ts.map +1 -1
  527. package/dest/tx/in_tx.d.ts +4 -4
  528. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  529. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  530. package/dest/tx/indexed_tx_effect.js +3 -2
  531. package/dest/tx/partial_state_reference.d.ts +4 -1
  532. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  533. package/dest/tx/private_execution_result.d.ts +27 -6
  534. package/dest/tx/private_execution_result.d.ts.map +1 -1
  535. package/dest/tx/private_execution_result.js +7 -7
  536. package/dest/tx/private_tx_constant_data.d.ts +16 -1
  537. package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
  538. package/dest/tx/profiling.d.ts +165 -30
  539. package/dest/tx/profiling.d.ts.map +1 -1
  540. package/dest/tx/profiling.js +59 -12
  541. package/dest/tx/protocol_contracts.d.ts +2 -2
  542. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  543. package/dest/tx/protocol_contracts.js +2 -2
  544. package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
  545. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  546. package/dest/tx/public_simulation_output.d.ts +4 -2
  547. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  548. package/dest/tx/public_simulation_output.js +7 -3
  549. package/dest/tx/simulated_tx.d.ts +113 -2
  550. package/dest/tx/simulated_tx.d.ts.map +1 -1
  551. package/dest/tx/simulated_tx.js +4 -1
  552. package/dest/tx/state_reference.d.ts +3 -1
  553. package/dest/tx/state_reference.d.ts.map +1 -1
  554. package/dest/tx/tx.d.ts +29 -5
  555. package/dest/tx/tx.d.ts.map +1 -1
  556. package/dest/tx/tx.js +24 -9
  557. package/dest/tx/tx_context.d.ts +2 -1
  558. package/dest/tx/tx_context.d.ts.map +1 -1
  559. package/dest/tx/tx_effect.d.ts +32 -6
  560. package/dest/tx/tx_effect.d.ts.map +1 -1
  561. package/dest/tx/tx_effect.js +0 -7
  562. package/dest/tx/tx_execution_request.d.ts +30 -1
  563. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  564. package/dest/tx/tx_hash.d.ts +2 -1
  565. package/dest/tx/tx_hash.d.ts.map +1 -1
  566. package/dest/tx/tx_receipt.d.ts +68 -15
  567. package/dest/tx/tx_receipt.d.ts.map +1 -1
  568. package/dest/tx/tx_receipt.js +59 -17
  569. package/dest/tx/tx_request.d.ts +6 -1
  570. package/dest/tx/tx_request.d.ts.map +1 -1
  571. package/dest/tx/tx_request.js +2 -2
  572. package/dest/tx/validator/empty_validator.d.ts +2 -2
  573. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  574. package/dest/tx/validator/error_texts.d.ts +11 -2
  575. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  576. package/dest/tx/validator/error_texts.js +13 -1
  577. package/dest/tx/validator/tx_validator.d.ts +2 -2
  578. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  579. package/dest/types/shared.d.ts +4 -1
  580. package/dest/types/shared.d.ts.map +1 -1
  581. package/dest/update-checker/index.d.ts +3 -2
  582. package/dest/update-checker/index.d.ts.map +1 -1
  583. package/dest/update-checker/index.js +2 -1
  584. package/dest/update-checker/package_version.d.ts +3 -0
  585. package/dest/update-checker/package_version.d.ts.map +1 -0
  586. package/dest/update-checker/package_version.js +24 -0
  587. package/dest/update-checker/version_checker.d.ts +25 -0
  588. package/dest/update-checker/version_checker.d.ts.map +1 -0
  589. package/dest/update-checker/version_checker.js +50 -0
  590. package/dest/validators/errors.d.ts +6 -1
  591. package/dest/validators/errors.d.ts.map +1 -1
  592. package/dest/validators/errors.js +7 -0
  593. package/dest/validators/schemas.d.ts +38 -38
  594. package/dest/validators/schemas.d.ts.map +1 -1
  595. package/dest/validators/schemas.js +4 -3
  596. package/dest/validators/types.d.ts +3 -3
  597. package/dest/validators/types.d.ts.map +1 -1
  598. package/dest/versioning/versioning.d.ts +4 -2
  599. package/dest/versioning/versioning.d.ts.map +1 -1
  600. package/dest/versioning/versioning.js +4 -1
  601. package/dest/vks/verification_key.d.ts +22 -1
  602. package/dest/vks/verification_key.d.ts.map +1 -1
  603. package/dest/vks/vk_data.d.ts +7 -1
  604. package/dest/vks/vk_data.d.ts.map +1 -1
  605. package/dest/zkpassport/index.d.ts +3 -4
  606. package/dest/zkpassport/index.d.ts.map +1 -1
  607. package/dest/zkpassport/index.js +9 -9
  608. package/package.json +29 -14
  609. package/src/abi/abi.ts +25 -2
  610. package/src/abi/buffer.ts +25 -4
  611. package/src/abi/decoder.ts +36 -82
  612. package/src/abi/encoder.ts +49 -6
  613. package/src/abi/event_metadata_definition.ts +2 -0
  614. package/src/abi/function_call.ts +25 -3
  615. package/src/abi/function_selector.ts +1 -1
  616. package/src/abi/function_signature_decoder.ts +77 -0
  617. package/src/abi/index.ts +1 -0
  618. package/src/abi/utils.ts +42 -0
  619. package/src/auth_witness/auth_witness.ts +3 -3
  620. package/src/avm/revert_code.ts +15 -0
  621. package/src/block/block_data.ts +26 -0
  622. package/src/block/block_hash.ts +26 -25
  623. package/src/block/block_parameter.ts +4 -2
  624. package/src/block/body.ts +2 -1
  625. package/src/block/checkpointed_l2_block.ts +8 -58
  626. package/src/block/in_block.ts +6 -6
  627. package/src/block/index.ts +1 -2
  628. package/src/block/l2_block.ts +112 -148
  629. package/src/block/l2_block_source.ts +106 -46
  630. package/src/block/l2_block_stream/interfaces.ts +8 -5
  631. package/src/block/l2_block_stream/l2_block_stream.ts +66 -37
  632. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  633. package/src/block/test/l2_tips_store_test_suite.ts +4 -9
  634. package/src/block/validate_block_result.ts +5 -4
  635. package/src/checkpoint/checkpoint.ts +72 -23
  636. package/src/checkpoint/checkpoint_data.ts +51 -0
  637. package/src/checkpoint/index.ts +2 -0
  638. package/src/checkpoint/published_checkpoint.ts +7 -4
  639. package/src/checkpoint/validate.ts +230 -0
  640. package/src/config/index.ts +2 -0
  641. package/src/config/node-rpc-config.ts +1 -1
  642. package/src/config/pipelining-config.ts +31 -0
  643. package/src/config/sequencer-config.ts +37 -0
  644. package/src/contract/contract_address.ts +7 -7
  645. package/src/contract/contract_class.ts +3 -3
  646. package/src/contract/contract_class_id.ts +7 -6
  647. package/src/contract/index.ts +0 -4
  648. package/src/contract/interfaces/contract_class.ts +2 -82
  649. package/src/contract/interfaces/node-info.ts +3 -0
  650. package/src/contract/private_function.ts +3 -4
  651. package/src/database-version/database_version.ts +87 -0
  652. package/src/database-version/version_manager.ts +1 -77
  653. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  654. package/src/deserialization/index.ts +21 -0
  655. package/src/epoch-helpers/index.ts +27 -1
  656. package/src/file-store/local.ts +15 -5
  657. package/src/file-store/s3.ts +12 -3
  658. package/src/gas/README.md +123 -0
  659. package/src/gas/gas_fees.ts +7 -1
  660. package/src/ha-signing/config.ts +156 -0
  661. package/src/ha-signing/index.ts +27 -0
  662. package/src/ha-signing/local_config.ts +46 -0
  663. package/src/ha-signing/types.ts +112 -0
  664. package/src/hash/hash.ts +43 -10
  665. package/src/hash/map_slot.ts +3 -2
  666. package/src/interfaces/allowed_element.ts +29 -9
  667. package/src/interfaces/api_limit.ts +1 -0
  668. package/src/interfaces/archiver.ts +26 -26
  669. package/src/interfaces/aztec-node-admin.ts +26 -2
  670. package/src/interfaces/aztec-node.ts +105 -135
  671. package/src/interfaces/block-builder.ts +93 -29
  672. package/src/interfaces/configs.ts +37 -11
  673. package/src/interfaces/l2_logs_source.ts +20 -4
  674. package/src/interfaces/merkle_tree_operations.ts +9 -19
  675. package/src/interfaces/p2p.ts +3 -14
  676. package/src/interfaces/prover-broker.ts +22 -0
  677. package/src/interfaces/prover-client.ts +30 -0
  678. package/src/interfaces/slasher.ts +4 -0
  679. package/src/interfaces/tx_provider.ts +2 -2
  680. package/src/interfaces/validator.ts +61 -31
  681. package/src/interfaces/world_state.ts +4 -3
  682. package/src/kernel/hints/build_note_hash_read_request_hints.ts +31 -24
  683. package/src/kernel/hints/build_nullifier_read_request_hints.ts +32 -32
  684. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  685. package/src/kernel/hints/index.ts +2 -2
  686. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  687. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  688. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  689. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  690. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  691. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  692. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  693. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  694. package/src/kernel/private_validation_requests.ts +8 -8
  695. package/src/keys/derivation.ts +15 -15
  696. package/src/keys/key_types.ts +6 -2
  697. package/src/keys/public_keys.ts +2 -2
  698. package/src/keys/utils.ts +8 -4
  699. package/src/kv-store/config.ts +36 -0
  700. package/src/kv-store/index.ts +1 -0
  701. package/src/l1-contracts/slash_factory.ts +1 -0
  702. package/src/logs/debug_log_store.ts +54 -0
  703. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +24 -16
  704. package/src/logs/index.ts +3 -1
  705. package/src/logs/log_filter.ts +5 -0
  706. package/src/logs/log_id.ts +22 -18
  707. package/src/logs/message_context.ts +17 -7
  708. package/src/logs/pending_tagged_log.ts +1 -3
  709. package/src/logs/pre_tag.ts +5 -5
  710. package/src/logs/public_log.ts +4 -2
  711. package/src/logs/siloed_tag.ts +10 -4
  712. package/src/logs/tag.ts +1 -1
  713. package/src/logs/tagging_index_range.ts +24 -0
  714. package/src/logs/tx_scoped_l2_log.ts +16 -0
  715. package/src/messaging/l1_to_l2_message.ts +12 -9
  716. package/src/messaging/l1_to_l2_message_source.ts +3 -1
  717. package/src/messaging/l2_to_l1_membership.ts +106 -39
  718. package/src/messaging/out_hash.ts +60 -29
  719. package/src/noir/index.ts +2 -2
  720. package/src/note/index.ts +0 -1
  721. package/src/note/note_dao.ts +18 -13
  722. package/src/p2p/attestation_utils.ts +56 -0
  723. package/src/p2p/block_proposal.ts +36 -15
  724. package/src/p2p/checkpoint_attestation.ts +6 -1
  725. package/src/p2p/checkpoint_proposal.ts +94 -58
  726. package/src/p2p/client_type.ts +0 -6
  727. package/src/p2p/consensus_payload.ts +25 -17
  728. package/src/p2p/constants.ts +6 -0
  729. package/src/p2p/index.ts +1 -1
  730. package/src/p2p/message_validator.ts +14 -2
  731. package/src/p2p/peer_error.ts +7 -0
  732. package/src/p2p/signed_txs.ts +6 -1
  733. package/src/p2p/topic_type.ts +8 -15
  734. package/src/proofs/chonk_proof.ts +100 -10
  735. package/src/rollup/block_headers_hash.ts +1 -1
  736. package/src/rollup/block_rollup_public_inputs.ts +2 -2
  737. package/src/rollup/checkpoint_header.ts +22 -2
  738. package/src/rollup/checkpoint_rollup_public_inputs.ts +16 -10
  739. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
  740. package/src/rollup/root_rollup_public_inputs.ts +11 -8
  741. package/src/slashing/empire.ts +3 -1
  742. package/src/slashing/helpers.ts +8 -0
  743. package/src/slashing/tally.ts +41 -2
  744. package/src/slashing/types.ts +14 -0
  745. package/src/stats/stats.ts +0 -2
  746. package/src/tests/factories.ts +32 -76
  747. package/src/tests/jest.ts +1 -1
  748. package/src/tests/mocks.ts +106 -60
  749. package/src/timetable/index.ts +66 -0
  750. package/src/trees/public_data_leaf.ts +11 -5
  751. package/src/tx/block_header.ts +18 -4
  752. package/src/tx/capsule.ts +10 -2
  753. package/src/tx/global_variables.ts +3 -3
  754. package/src/tx/indexed_tx_effect.ts +3 -2
  755. package/src/tx/private_execution_result.ts +6 -6
  756. package/src/tx/profiling.ts +60 -9
  757. package/src/tx/protocol_contracts.ts +2 -2
  758. package/src/tx/public_simulation_output.ts +4 -0
  759. package/src/tx/simulated_tx.ts +8 -1
  760. package/src/tx/tx.ts +28 -20
  761. package/src/tx/tx_effect.ts +0 -9
  762. package/src/tx/tx_receipt.ts +91 -19
  763. package/src/tx/tx_request.ts +2 -2
  764. package/src/tx/validator/empty_validator.ts +1 -1
  765. package/src/tx/validator/error_texts.ts +16 -1
  766. package/src/tx/validator/tx_validator.ts +1 -1
  767. package/src/update-checker/index.ts +2 -1
  768. package/src/update-checker/package_version.ts +30 -0
  769. package/src/update-checker/version_checker.ts +65 -0
  770. package/src/validators/errors.ts +9 -0
  771. package/src/validators/schemas.ts +8 -1
  772. package/src/validators/types.ts +5 -4
  773. package/src/versioning/versioning.ts +4 -1
  774. package/src/zkpassport/index.ts +11 -12
  775. package/dest/block/l2_block_code_to_purge.d.ts +0 -11
  776. package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
  777. package/dest/block/l2_block_code_to_purge.js +0 -55
  778. package/dest/block/l2_block_header.d.ts +0 -94
  779. package/dest/block/l2_block_header.d.ts.map +0 -1
  780. package/dest/block/l2_block_header.js +0 -160
  781. package/dest/block/l2_block_new.d.ts +0 -134
  782. package/dest/block/l2_block_new.d.ts.map +0 -1
  783. package/dest/block/l2_block_new.js +0 -155
  784. package/dest/contract/contract_class_metadata.d.ts +0 -8
  785. package/dest/contract/contract_class_metadata.d.ts.map +0 -1
  786. package/dest/contract/contract_class_metadata.js +0 -1
  787. package/dest/contract/contract_metadata.d.ts +0 -7
  788. package/dest/contract/contract_metadata.d.ts.map +0 -1
  789. package/dest/contract/contract_metadata.js +0 -1
  790. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  791. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  792. package/dest/contract/private_function_membership_proof.js +0 -124
  793. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  794. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  795. package/dest/contract/utility_function_membership_proof.js +0 -87
  796. package/dest/database-version/index.d.ts +0 -2
  797. package/dest/database-version/index.d.ts.map +0 -1
  798. package/dest/database-version/index.js +0 -1
  799. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -25
  800. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  801. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  802. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  803. package/dest/note/notes_filter.d.ts +0 -27
  804. package/dest/note/notes_filter.d.ts.map +0 -1
  805. package/dest/note/notes_filter.js +0 -11
  806. package/dest/update-checker/update-checker.d.ts +0 -49
  807. package/dest/update-checker/update-checker.d.ts.map +0 -1
  808. package/dest/update-checker/update-checker.js +0 -130
  809. package/src/block/l2_block_code_to_purge.ts +0 -80
  810. package/src/block/l2_block_header.ts +0 -255
  811. package/src/block/l2_block_new.ts +0 -211
  812. package/src/contract/contract_class_metadata.ts +0 -8
  813. package/src/contract/contract_metadata.ts +0 -7
  814. package/src/contract/private_function_membership_proof.ts +0 -167
  815. package/src/contract/utility_function_membership_proof.ts +0 -118
  816. package/src/database-version/index.ts +0 -1
  817. package/src/note/notes_filter.ts +0 -38
  818. package/src/update-checker/update-checker.ts +0 -166
@@ -1,211 +0,0 @@
1
- import { type BlockBlobData, encodeBlockBlobData } from '@aztec/blob-lib/encoding';
2
- import { BlockNumber, CheckpointNumber, CheckpointNumberSchema } from '@aztec/foundation/branded-types';
3
- import { Fr } from '@aztec/foundation/curves/bn254';
4
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
5
-
6
- import { z } from 'zod';
7
-
8
- import type { PrivateLog } from '../logs/private_log.js';
9
- import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
10
- import { BlockHeader } from '../tx/block_header.js';
11
- import { Body } from './body.js';
12
- import type { L2BlockInfo } from './l2_block_info.js';
13
-
14
- // TODO(palla/mbps): Delete the existing `L2Block` class and rename this to `L2Block`.
15
- // TODO(palla/mbps): Consider moving the checkpointNumber and indexWithinCheckpoint to the header:
16
- // if the blockNumber is there, why not these as well? Consider whether they should be part of the
17
- // circuits structs though.
18
-
19
- /**
20
- * An L2 block with a header and a body.
21
- */
22
- export class L2BlockNew {
23
- constructor(
24
- /** Snapshot of archive tree after the block is applied. */
25
- public archive: AppendOnlyTreeSnapshot,
26
- /** Header of the block. */
27
- public header: BlockHeader,
28
- /** L2 block body. */
29
- public body: Body,
30
- /** Number of the checkpoint that the block belongs to. */
31
- public checkpointNumber: CheckpointNumber,
32
- /** Index of the block within the checkpoint. */
33
- public indexWithinCheckpoint: number,
34
- ) {}
35
-
36
- get number(): BlockNumber {
37
- return this.header.globalVariables.blockNumber;
38
- }
39
-
40
- get timestamp(): bigint {
41
- return this.header.globalVariables.timestamp;
42
- }
43
-
44
- static get schema() {
45
- return z
46
- .object({
47
- archive: AppendOnlyTreeSnapshot.schema,
48
- header: BlockHeader.schema,
49
- body: Body.schema,
50
- checkpointNumber: CheckpointNumberSchema,
51
- indexWithinCheckpoint: z.number(),
52
- })
53
- .transform(
54
- ({ archive, header, body, checkpointNumber, indexWithinCheckpoint }) =>
55
- new L2BlockNew(archive, header, body, checkpointNumber, indexWithinCheckpoint),
56
- );
57
- }
58
-
59
- /**
60
- * Deserializes a block from a buffer
61
- * @returns A deserialized L2 block.
62
- */
63
- static fromBuffer(buf: Buffer | BufferReader) {
64
- const reader = BufferReader.asReader(buf);
65
- const header = reader.readObject(BlockHeader);
66
- const archive = reader.readObject(AppendOnlyTreeSnapshot);
67
- const body = reader.readObject(Body);
68
- const checkpointNumber = CheckpointNumber(reader.readNumber());
69
- const indexWithinCheckpoint = reader.readNumber();
70
-
71
- return new L2BlockNew(archive, header, body, checkpointNumber, indexWithinCheckpoint);
72
- }
73
-
74
- /**
75
- * Serializes a block
76
- * @returns A serialized L2 block as a Buffer.
77
- */
78
- toBuffer() {
79
- return serializeToBuffer(this.header, this.archive, this.body, this.checkpointNumber, this.indexWithinCheckpoint);
80
- }
81
-
82
- /**
83
- * Returns the block's hash (hash of block header).
84
- * @returns The block's hash.
85
- */
86
- public hash(): Promise<Fr> {
87
- return this.header.hash();
88
- }
89
-
90
- /**
91
- * Checks if this block equals another block.
92
- * @param other - The other block to compare with.
93
- * @returns True if both blocks are equal.
94
- */
95
- public equals(other: this): boolean {
96
- return (
97
- this.archive.equals(other.archive) &&
98
- this.header.equals(other.header) &&
99
- this.body.equals(other.body) &&
100
- this.checkpointNumber === other.checkpointNumber &&
101
- this.indexWithinCheckpoint === other.indexWithinCheckpoint
102
- );
103
- }
104
-
105
- public toBlobFields(): Fr[] {
106
- const blockBlobData = this.toBlockBlobData();
107
- return encodeBlockBlobData(blockBlobData);
108
- }
109
-
110
- public toBlockBlobData(): BlockBlobData {
111
- const isFirstBlock = this.indexWithinCheckpoint === 0;
112
- return {
113
- blockEndMarker: {
114
- numTxs: this.body.txEffects.length,
115
- timestamp: this.header.globalVariables.timestamp,
116
- blockNumber: this.number,
117
- },
118
- blockEndStateField: {
119
- l1ToL2MessageNextAvailableLeafIndex: this.header.state.l1ToL2MessageTree.nextAvailableLeafIndex,
120
- noteHashNextAvailableLeafIndex: this.header.state.partial.noteHashTree.nextAvailableLeafIndex,
121
- nullifierNextAvailableLeafIndex: this.header.state.partial.nullifierTree.nextAvailableLeafIndex,
122
- publicDataNextAvailableLeafIndex: this.header.state.partial.publicDataTree.nextAvailableLeafIndex,
123
- totalManaUsed: this.header.totalManaUsed.toBigInt(),
124
- },
125
- lastArchiveRoot: this.header.lastArchive.root,
126
- noteHashRoot: this.header.state.partial.noteHashTree.root,
127
- nullifierRoot: this.header.state.partial.nullifierTree.root,
128
- publicDataRoot: this.header.state.partial.publicDataTree.root,
129
- l1ToL2MessageRoot: isFirstBlock ? this.header.state.l1ToL2MessageTree.root : undefined,
130
- txs: this.body.toTxBlobData(),
131
- };
132
- }
133
-
134
- static empty() {
135
- return new L2BlockNew(AppendOnlyTreeSnapshot.empty(), BlockHeader.empty(), Body.empty(), CheckpointNumber(0), 0);
136
- }
137
-
138
- /**
139
- * Creates an L2 block containing random data.
140
- * @param l2BlockNum - The number of the L2 block.
141
- * @param txsPerBlock - The number of transactions to include in the block.
142
- * @param numPublicCallsPerTx - The number of public function calls to include in each transaction.
143
- * @param numPublicLogsPerCall - The number of public logs per 1 public function invocation.
144
- * @param inHash - The hash of the L1 to L2 messages subtree which got inserted in this block.
145
- * @returns The L2 block.
146
- */
147
- static async random(
148
- blockNumber: BlockNumber,
149
- {
150
- checkpointNumber = CheckpointNumber(Number(blockNumber)),
151
- indexWithinCheckpoint = 0,
152
- txsPerBlock = 1,
153
- txOptions = {},
154
- makeTxOptions,
155
- ...blockHeaderOverrides
156
- }: {
157
- checkpointNumber?: CheckpointNumber;
158
- indexWithinCheckpoint?: number;
159
- txsPerBlock?: number;
160
- txOptions?: Partial<Parameters<typeof Body.random>[0]>;
161
- makeTxOptions?: (txIndex: number) => Partial<Parameters<typeof Body.random>[0]>;
162
- } & Partial<Parameters<typeof BlockHeader.random>[0]> = {},
163
- ): Promise<L2BlockNew> {
164
- const archive = new AppendOnlyTreeSnapshot(Fr.random(), blockNumber + 1);
165
- const header = BlockHeader.random({ blockNumber, ...blockHeaderOverrides });
166
- const body = await Body.random({ txsPerBlock, makeTxOptions, ...txOptions });
167
- return new L2BlockNew(archive, header, body, checkpointNumber, indexWithinCheckpoint);
168
- }
169
-
170
- /**
171
- * Returns stats used for logging.
172
- * @returns Stats on tx count, number, and log size and count.
173
- */
174
- getStats() {
175
- const logsStats = {
176
- privateLogCount: this.body.txEffects.reduce((logCount, txEffect) => logCount + txEffect.privateLogs.length, 0),
177
- publicLogCount: this.body.txEffects.reduce((logCount, txEffect) => logCount + txEffect.publicLogs.length, 0),
178
- contractClassLogCount: this.body.txEffects.reduce(
179
- (logCount, txEffect) => logCount + txEffect.contractClassLogs.length,
180
- 0,
181
- ),
182
- contractClassLogSize: this.body.txEffects.reduce(
183
- (totalLogSize, txEffect) =>
184
- totalLogSize + txEffect.contractClassLogs.reduce((acc, log) => acc + log.emittedLength, 0),
185
- 0,
186
- ),
187
- };
188
-
189
- return {
190
- txCount: this.body.txEffects.length,
191
- blockNumber: this.number,
192
- blockTimestamp: Number(this.header.globalVariables.timestamp),
193
- ...logsStats,
194
- };
195
- }
196
-
197
- getPrivateLogs(): PrivateLog[] {
198
- return this.body.txEffects.map(txEffect => txEffect.privateLogs).flat();
199
- }
200
-
201
- toBlockInfo(): L2BlockInfo {
202
- return {
203
- archive: this.archive.root,
204
- lastArchive: this.header.lastArchive.root,
205
- blockNumber: this.number,
206
- slotNumber: this.header.getSlot(),
207
- txCount: this.body.txEffects.length,
208
- timestamp: this.header.globalVariables.timestamp,
209
- };
210
- }
211
- }
@@ -1,8 +0,0 @@
1
- import type { ContractArtifact } from '../abi/abi.js';
2
- import type { ContractClassWithId } from './interfaces/contract_class.js';
3
-
4
- export interface ContractClassMetadata {
5
- contractClass?: ContractClassWithId | undefined;
6
- isContractClassPubliclyRegistered: boolean;
7
- artifact?: ContractArtifact | undefined;
8
- }
@@ -1,7 +0,0 @@
1
- import type { ContractInstanceWithAddress } from './interfaces/contract_instance.js';
2
-
3
- export interface ContractMetadata {
4
- contractInstance?: ContractInstanceWithAddress | undefined;
5
- isContractInitialized: boolean;
6
- isContractPublished: boolean;
7
- }
@@ -1,167 +0,0 @@
1
- import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
2
- import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { createLogger } from '@aztec/foundation/log';
4
- import { computeRootFromSiblingPath } from '@aztec/foundation/trees';
5
-
6
- import { type ContractArtifact, FunctionSelector, FunctionType } from '../abi/index.js';
7
- import {
8
- computeArtifactFunctionTree,
9
- computeArtifactHash,
10
- computeArtifactHashPreimage,
11
- computeFunctionArtifactHash,
12
- computeFunctionMetadataHash,
13
- getArtifactMerkleTreeHasher,
14
- } from './artifact_hash.js';
15
- import { getContractClassPrivateFunctionFromArtifact } from './contract_class.js';
16
- import type {
17
- ContractClassPublic,
18
- ExecutablePrivateFunctionWithMembershipProof,
19
- PrivateFunctionMembershipProof,
20
- } from './interfaces/index.js';
21
- import { computePrivateFunctionLeaf, computePrivateFunctionsTree } from './private_function.js';
22
-
23
- /**
24
- * Creates a membership proof for a private function in a contract class, to be verified via `isValidPrivateFunctionMembershipProof`.
25
- * @param selector - Selector of the function to create the proof for.
26
- * @param artifact - Artifact of the contract class where the function is defined.
27
- */
28
- export async function createPrivateFunctionMembershipProof(
29
- selector: FunctionSelector,
30
- artifact: ContractArtifact,
31
- ): Promise<PrivateFunctionMembershipProof> {
32
- const log = createLogger('circuits:function_membership_proof');
33
-
34
- // Locate private function definition and artifact
35
- const privateFunctions = artifact.functions.filter(fn => fn.functionType === FunctionType.PRIVATE);
36
- const privateFunctionsFromArtifact = await Promise.all(
37
- privateFunctions.map(getContractClassPrivateFunctionFromArtifact),
38
- );
39
- const privateFunction = privateFunctionsFromArtifact.find(fn => fn.selector.equals(selector));
40
- const privateFunctionsAndSelectors = await Promise.all(
41
- privateFunctions.map(async fn => ({
42
- fn,
43
- selector: await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters),
44
- })),
45
- );
46
- const privateFunctionArtifact = privateFunctionsAndSelectors.find(fnAndSelector =>
47
- selector.equals(fnAndSelector.selector),
48
- )?.fn;
49
- if (!privateFunction || !privateFunctionArtifact) {
50
- throw new Error(`Private function with selector ${selector.toString()} not found`);
51
- }
52
-
53
- // Compute preimage for the artifact hash
54
- const { utilityFunctionRoot: utilityFunctionsTreeRoot, metadataHash: artifactMetadataHash } =
55
- await computeArtifactHashPreimage(artifact);
56
-
57
- // We need two sibling paths because private function information is split across two trees:
58
- // The "private function tree" captures the selectors and verification keys, and is used in the kernel circuit for verifying the proof generated by the app circuit.
59
- const functionLeaf = await computePrivateFunctionLeaf(privateFunction);
60
- const functionsTree = await computePrivateFunctionsTree(privateFunctionsFromArtifact);
61
- const functionsTreeLeafIndex = functionsTree.getIndex(functionLeaf);
62
- const functionsTreeSiblingPath = functionsTree.getSiblingPath(functionsTreeLeafIndex).map(Fr.fromBuffer);
63
-
64
- // And the "artifact tree" captures function bytecode and metadata, and is used by the pxe to check that its executing the code it's supposed to be executing, but it never goes into circuits.
65
- const functionMetadataHash = computeFunctionMetadataHash(privateFunctionArtifact);
66
- const functionArtifactHash = await computeFunctionArtifactHash({ ...privateFunctionArtifact, functionMetadataHash });
67
- const artifactTree = (await computeArtifactFunctionTree(artifact, FunctionType.PRIVATE))!;
68
- const artifactTreeLeafIndex = artifactTree.getIndex(functionArtifactHash.toBuffer());
69
- const artifactTreeSiblingPath = artifactTree.getSiblingPath(artifactTreeLeafIndex).map(Fr.fromBuffer);
70
-
71
- log.debug(`Computed proof for private function with selector ${selector.toString()}`, {
72
- functionArtifactHash,
73
- functionMetadataHash,
74
- functionLeaf: '0x' + functionLeaf.toString('hex'),
75
- artifactMetadataHash,
76
- privateFunctionsTreeRoot: '0x' + functionsTree.root.toString('hex'),
77
- utilityFunctionsTreeRoot,
78
- artifactFunctionTreeSiblingPath: artifactTreeSiblingPath.map(fr => fr.toString()).join(','),
79
- privateFunctionTreeSiblingPath: functionsTreeSiblingPath.map(fr => fr.toString()).join(','),
80
- });
81
-
82
- return {
83
- artifactTreeSiblingPath,
84
- artifactTreeLeafIndex,
85
- artifactMetadataHash,
86
- functionMetadataHash,
87
- utilityFunctionsTreeRoot,
88
- privateFunctionTreeSiblingPath: functionsTreeSiblingPath,
89
- privateFunctionTreeLeafIndex: functionsTreeLeafIndex,
90
- };
91
- }
92
-
93
- /**
94
- * Verifies that a private function with a membership proof as emitted by the ClassRegistry contract is valid,
95
- * as defined in the protocol specs at contract-deployment/classes:
96
- *
97
- * ```
98
- * // Load contract class from local db
99
- * contract_class = db.get_contract_class(contract_class_id)
100
- *
101
- * // Compute function leaf and assert it belongs to the private functions tree
102
- * function_leaf = pedersen([selector as Field, vk_hash], GENERATOR__FUNCTION_LEAF)
103
- * computed_private_function_tree_root = compute_root(function_leaf, private_function_tree_sibling_path)
104
- * assert computed_private_function_tree_root == contract_class.private_functions_root
105
- *
106
- * // Compute artifact leaf and assert it belongs to the artifact
107
- * artifact_function_leaf = sha256(selector, metadata_hash, sha256(bytecode))
108
- * computed_artifact_private_function_tree_root = compute_root(artifact_function_leaf, artifact_function_tree_sibling_path)
109
- * computed_artifact_hash = sha256(computed_artifact_private_function_tree_root, utility_functions_artifact_tree_root, artifact_metadata_hash)
110
- * assert computed_artifact_hash == contract_class.artifact_hash
111
- * ```
112
- * @param fn - Function to check membership proof for.
113
- * @param contractClass - In which contract class the function is expected to be.
114
- */
115
- export async function isValidPrivateFunctionMembershipProof(
116
- fn: ExecutablePrivateFunctionWithMembershipProof,
117
- contractClass: Pick<ContractClassPublic, 'privateFunctionsRoot' | 'artifactHash'>,
118
- ) {
119
- const log = createLogger('circuits:function_membership_proof');
120
-
121
- // Check private function tree membership
122
- const functionLeaf = await computePrivateFunctionLeaf(fn);
123
- const rootBuffer = await computeRootFromSiblingPath(
124
- functionLeaf,
125
- fn.privateFunctionTreeSiblingPath.map(fr => fr.toBuffer()),
126
- fn.privateFunctionTreeLeafIndex,
127
- async (left, right) => (await poseidon2Hash([left, right])).toBuffer(),
128
- );
129
- const computedPrivateFunctionTreeRoot = Fr.fromBuffer(rootBuffer);
130
- if (!contractClass.privateFunctionsRoot.equals(computedPrivateFunctionTreeRoot)) {
131
- log.debug(`Private function tree root mismatch`, {
132
- expectedPrivateFunctionTreeRoot: contractClass.privateFunctionsRoot,
133
- computedPrivateFunctionTreeRoot: computedPrivateFunctionTreeRoot,
134
- computedFunctionLeaf: '0x' + functionLeaf.toString('hex'),
135
- });
136
- return false;
137
- }
138
-
139
- // Check artifact hash
140
- const functionArtifactHash = await computeFunctionArtifactHash(fn);
141
- const computedArtifactPrivateFunctionTreeRootBuffer = await computeRootFromSiblingPath(
142
- functionArtifactHash.toBuffer(),
143
- fn.artifactTreeSiblingPath.map(fr => fr.toBuffer()),
144
- fn.artifactTreeLeafIndex,
145
- getArtifactMerkleTreeHasher(),
146
- );
147
- const computedArtifactPrivateFunctionTreeRoot = Fr.fromBuffer(computedArtifactPrivateFunctionTreeRootBuffer);
148
- const computedArtifactHash = await computeArtifactHash({
149
- privateFunctionRoot: computedArtifactPrivateFunctionTreeRoot,
150
- utilityFunctionRoot: fn.utilityFunctionsTreeRoot,
151
- metadataHash: fn.artifactMetadataHash,
152
- });
153
- if (!contractClass.artifactHash.equals(computedArtifactHash)) {
154
- log.debug(`Artifact hash mismatch`, {
155
- expected: contractClass.artifactHash,
156
- computedArtifactHash,
157
- computedFunctionArtifactHash: functionArtifactHash,
158
- computedArtifactPrivateFunctionTreeRoot,
159
- utilityFunctionRoot: fn.utilityFunctionsTreeRoot,
160
- metadataHash: fn.artifactMetadataHash,
161
- artifactFunctionTreeSiblingPath: fn.artifactTreeSiblingPath.map(fr => fr.toString()).join(','),
162
- });
163
- return false;
164
- }
165
-
166
- return true;
167
- }
@@ -1,118 +0,0 @@
1
- import { Fr } from '@aztec/foundation/curves/bn254';
2
- import { createLogger } from '@aztec/foundation/log';
3
- import { computeRootFromSiblingPath } from '@aztec/foundation/trees';
4
-
5
- import { type ContractArtifact, FunctionSelector, FunctionType } from '../abi/index.js';
6
- import {
7
- computeArtifactFunctionTree,
8
- computeArtifactHash,
9
- computeArtifactHashPreimage,
10
- computeFunctionArtifactHash,
11
- computeFunctionMetadataHash,
12
- getArtifactMerkleTreeHasher,
13
- } from './artifact_hash.js';
14
- import type {
15
- ContractClassPublic,
16
- UtilityFunctionMembershipProof,
17
- UtilityFunctionWithMembershipProof,
18
- } from './interfaces/index.js';
19
-
20
- /**
21
- * Creates a membership proof for a utility function in a contract class, to be verified via `isValidUtilityFunctionMembershipProof`.
22
- * @param selector - Selector of the function to create the proof for.
23
- * @param artifact - Artifact of the contract class where the function is defined.
24
- */
25
- export async function createUtilityFunctionMembershipProof(
26
- selector: FunctionSelector,
27
- artifact: ContractArtifact,
28
- ): Promise<UtilityFunctionMembershipProof> {
29
- const log = createLogger('circuits:function_membership_proof');
30
-
31
- // Locate function artifact
32
- const utilityFunctions = artifact.functions.filter(fn => fn.functionType === FunctionType.UTILITY);
33
- const utilityFunctionsAndSelectors = await Promise.all(
34
- utilityFunctions.map(async fn => ({ fn, selector: await FunctionSelector.fromNameAndParameters(fn) })),
35
- );
36
- const fn = utilityFunctionsAndSelectors.find(fnAndSelector => selector.equals(fnAndSelector.selector))?.fn;
37
- if (!fn) {
38
- throw new Error(`Utility function with selector ${selector.toString()} not found`);
39
- }
40
- // Compute preimage for the artifact hash
41
- const { privateFunctionRoot: privateFunctionsArtifactTreeRoot, metadataHash: artifactMetadataHash } =
42
- await computeArtifactHashPreimage(artifact);
43
-
44
- // Compute the sibling path for the "artifact tree"
45
- const functionMetadataHash = computeFunctionMetadataHash(fn);
46
- const functionArtifactHash = await computeFunctionArtifactHash({ ...fn, functionMetadataHash });
47
- const artifactTree = (await computeArtifactFunctionTree(artifact, FunctionType.UTILITY))!;
48
- const artifactTreeLeafIndex = artifactTree.getIndex(functionArtifactHash.toBuffer());
49
- const artifactTreeSiblingPath = artifactTree.getSiblingPath(artifactTreeLeafIndex).map(Fr.fromBuffer);
50
-
51
- log.debug(`Computed proof for utility function with selector ${selector.toString()}`, {
52
- functionArtifactHash,
53
- functionMetadataHash,
54
- artifactMetadataHash,
55
- artifactFunctionTreeSiblingPath: artifactTreeSiblingPath.map(fr => fr.toString()).join(','),
56
- privateFunctionsArtifactTreeRoot,
57
- });
58
-
59
- return {
60
- artifactTreeSiblingPath,
61
- artifactTreeLeafIndex,
62
- artifactMetadataHash,
63
- functionMetadataHash,
64
- privateFunctionsArtifactTreeRoot,
65
- };
66
- }
67
-
68
- /**
69
- * Verifies that a utility function with a membership proof as emitted by the ClassRegistry contract is valid,
70
- * as defined in the protocol specs at contract-deployment/classes:
71
- *
72
- * ```
73
- * // Load contract class from local db
74
- * contract_class = db.get_contract_class(contract_class_id)
75
- *
76
- * // Compute artifact leaf and assert it belongs to the artifact
77
- * artifact_function_leaf = sha256(selector, metadata_hash, sha256(bytecode))
78
- * computed_artifact_utility_function_tree_root = compute_root(artifact_function_leaf, artifact_function_tree_sibling_path, artifact_function_tree_leaf_index)
79
- * computed_artifact_hash = sha256(private_functions_artifact_tree_root, computed_artifact_utility_function_tree_root, artifact_metadata_hash)
80
- * assert computed_artifact_hash == contract_class.artifact_hash
81
- * ```
82
- * @param fn - Function to check membership proof for.
83
- * @param contractClass - In which contract class the function is expected to be.
84
- */
85
- export async function isValidUtilityFunctionMembershipProof(
86
- fn: UtilityFunctionWithMembershipProof,
87
- contractClass: Pick<ContractClassPublic, 'artifactHash'>,
88
- ) {
89
- const log = createLogger('circuits:function_membership_proof');
90
-
91
- const functionArtifactHash = await computeFunctionArtifactHash(fn);
92
- const computedArtifactFunctionTreeRootBuffer = await computeRootFromSiblingPath(
93
- functionArtifactHash.toBuffer(),
94
- fn.artifactTreeSiblingPath.map(fr => fr.toBuffer()),
95
- fn.artifactTreeLeafIndex,
96
- getArtifactMerkleTreeHasher(),
97
- );
98
- const computedArtifactFunctionTreeRoot = Fr.fromBuffer(computedArtifactFunctionTreeRootBuffer);
99
- const computedArtifactHash = await computeArtifactHash({
100
- privateFunctionRoot: fn.privateFunctionsArtifactTreeRoot,
101
- utilityFunctionRoot: computedArtifactFunctionTreeRoot,
102
- metadataHash: fn.artifactMetadataHash,
103
- });
104
- if (!contractClass.artifactHash.equals(computedArtifactHash)) {
105
- log.debug(`Artifact hash mismatch`, {
106
- expected: contractClass.artifactHash,
107
- computedArtifactHash,
108
- computedFunctionArtifactHash: functionArtifactHash,
109
- computedArtifactFunctionTreeRoot,
110
- privateFunctionsArtifactTreeRoot: fn.privateFunctionsArtifactTreeRoot,
111
- metadataHash: fn.artifactMetadataHash,
112
- artifactFunctionTreeSiblingPath: fn.artifactTreeSiblingPath.map(fr => fr.toString()).join(','),
113
- });
114
- return false;
115
- }
116
-
117
- return true;
118
- }
@@ -1 +0,0 @@
1
- export * from './version_manager.js';
@@ -1,38 +0,0 @@
1
- import type { Fr } from '@aztec/foundation/curves/bn254';
2
-
3
- import { z } from 'zod';
4
-
5
- import type { AztecAddress } from '../aztec-address/index.js';
6
- import { type ZodFor, schemas } from '../schemas/index.js';
7
- import { NoteStatus } from './note_status.js';
8
-
9
- /**
10
- * A filter used to fetch notes.
11
- * @remarks This filter is applied as an intersection of all its params.
12
- */
13
- export type NotesFilter = {
14
- /**
15
- * The contract address the note belongs to.
16
- * @remarks Providing a contract address is required as we need that information to trigger private state sync.
17
- */
18
- contractAddress: AztecAddress;
19
- /** The owner of the note. */
20
- owner?: AztecAddress;
21
- /** The specific storage location of the note on the contract. */
22
- storageSlot?: Fr;
23
- /** The status of the note. Defaults to 'ACTIVE'. */
24
- status?: NoteStatus;
25
- /** The siloed nullifier for the note. */
26
- siloedNullifier?: Fr;
27
- /** The scopes in which to get notes from. This defaults to all scopes. */
28
- scopes?: AztecAddress[];
29
- };
30
-
31
- export const NotesFilterSchema: ZodFor<NotesFilter> = z.object({
32
- contractAddress: schemas.AztecAddress,
33
- owner: schemas.AztecAddress.optional(),
34
- storageSlot: schemas.Fr.optional(),
35
- status: z.nativeEnum(NoteStatus).optional(),
36
- siloedNullifier: schemas.Fr.optional(),
37
- scopes: z.array(schemas.AztecAddress).optional(),
38
- });