@aztec/stdlib 0.0.1-commit.f295ac2 → 0.0.1-commit.f504929

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 (491) hide show
  1. package/dest/abi/decoder.d.ts +2 -2
  2. package/dest/abi/decoder.d.ts.map +1 -1
  3. package/dest/abi/decoder.js +7 -5
  4. package/dest/abi/encoder.d.ts +1 -1
  5. package/dest/abi/encoder.d.ts.map +1 -1
  6. package/dest/abi/encoder.js +37 -6
  7. package/dest/abi/event_metadata_definition.d.ts +3 -1
  8. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  9. package/dest/abi/event_metadata_definition.js +1 -1
  10. package/dest/abi/function_call.d.ts +39 -9
  11. package/dest/abi/function_call.d.ts.map +1 -1
  12. package/dest/abi/function_call.js +20 -3
  13. package/dest/abi/utils.d.ts +14 -1
  14. package/dest/abi/utils.d.ts.map +1 -1
  15. package/dest/abi/utils.js +15 -0
  16. package/dest/auth_witness/auth_witness.js +3 -3
  17. package/dest/avm/avm.d.ts +300 -300
  18. package/dest/avm/avm_proving_request.d.ts +166 -166
  19. package/dest/avm/revert_code.d.ts +16 -1
  20. package/dest/avm/revert_code.d.ts.map +1 -1
  21. package/dest/avm/revert_code.js +15 -5
  22. package/dest/block/block_data.d.ts +52 -0
  23. package/dest/block/block_data.d.ts.map +1 -0
  24. package/dest/block/block_data.js +12 -0
  25. package/dest/block/block_hash.d.ts +16 -18
  26. package/dest/block/block_hash.d.ts.map +1 -1
  27. package/dest/block/block_hash.js +21 -31
  28. package/dest/block/block_parameter.d.ts +4 -4
  29. package/dest/block/block_parameter.d.ts.map +1 -1
  30. package/dest/block/block_parameter.js +2 -2
  31. package/dest/block/checkpointed_l2_block.d.ts +6 -6
  32. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  33. package/dest/block/checkpointed_l2_block.js +3 -3
  34. package/dest/block/in_block.d.ts +11 -11
  35. package/dest/block/in_block.d.ts.map +1 -1
  36. package/dest/block/in_block.js +5 -5
  37. package/dest/block/index.d.ts +3 -2
  38. package/dest/block/index.d.ts.map +1 -1
  39. package/dest/block/index.js +2 -1
  40. package/dest/block/{l2_block_new.d.ts → l2_block.d.ts} +8 -7
  41. package/dest/block/l2_block.d.ts.map +1 -0
  42. package/dest/block/{l2_block_new.js → l2_block.js} +5 -9
  43. package/dest/block/l2_block_source.d.ts +58 -30
  44. package/dest/block/l2_block_source.d.ts.map +1 -1
  45. package/dest/block/l2_block_stream/interfaces.d.ts +3 -3
  46. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  47. package/dest/block/l2_block_stream/l2_block_stream.d.ts +6 -3
  48. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  49. package/dest/block/l2_block_stream/l2_block_stream.js +47 -25
  50. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
  51. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  52. package/dest/block/test/l2_tips_store_test_suite.js +2 -2
  53. package/dest/checkpoint/checkpoint.d.ts +27 -13
  54. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  55. package/dest/checkpoint/checkpoint.js +27 -16
  56. package/dest/checkpoint/checkpoint_data.d.ts +120 -0
  57. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  58. package/dest/checkpoint/checkpoint_data.js +26 -0
  59. package/dest/checkpoint/index.d.ts +2 -1
  60. package/dest/checkpoint/index.d.ts.map +1 -1
  61. package/dest/checkpoint/index.js +1 -0
  62. package/dest/checkpoint/published_checkpoint.d.ts +19 -4
  63. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  64. package/dest/checkpoint/published_checkpoint.js +1 -2
  65. package/dest/config/index.d.ts +2 -1
  66. package/dest/config/index.d.ts.map +1 -1
  67. package/dest/config/index.js +1 -0
  68. package/dest/config/node-rpc-config.js +1 -1
  69. package/dest/config/sequencer-config.d.ts +12 -0
  70. package/dest/config/sequencer-config.d.ts.map +1 -0
  71. package/dest/config/sequencer-config.js +25 -0
  72. package/dest/contract/contract_address.js +4 -4
  73. package/dest/contract/contract_class.d.ts +2 -3
  74. package/dest/contract/contract_class.d.ts.map +1 -1
  75. package/dest/contract/contract_class_id.d.ts +2 -2
  76. package/dest/contract/contract_class_id.d.ts.map +1 -1
  77. package/dest/contract/contract_class_id.js +6 -5
  78. package/dest/contract/interfaces/node-info.d.ts +3 -1
  79. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  80. package/dest/contract/interfaces/node-info.js +2 -1
  81. package/dest/contract/private_function.d.ts +1 -1
  82. package/dest/contract/private_function.d.ts.map +1 -1
  83. package/dest/contract/private_function.js +3 -4
  84. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  85. package/dest/contract/private_function_membership_proof.js +1 -1
  86. package/dest/database-version/database_version.d.ts +58 -0
  87. package/dest/database-version/database_version.d.ts.map +1 -0
  88. package/dest/database-version/database_version.js +69 -0
  89. package/dest/database-version/version_manager.d.ts +2 -50
  90. package/dest/database-version/version_manager.d.ts.map +1 -1
  91. package/dest/database-version/version_manager.js +1 -66
  92. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  93. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  94. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  95. package/dest/epoch-helpers/index.d.ts +7 -1
  96. package/dest/epoch-helpers/index.d.ts.map +1 -1
  97. package/dest/epoch-helpers/index.js +9 -3
  98. package/dest/file-store/local.d.ts +3 -3
  99. package/dest/file-store/local.d.ts.map +1 -1
  100. package/dest/file-store/local.js +13 -4
  101. package/dest/file-store/s3.d.ts +1 -1
  102. package/dest/file-store/s3.d.ts.map +1 -1
  103. package/dest/file-store/s3.js +11 -3
  104. package/dest/gas/gas_fees.d.ts +1 -1
  105. package/dest/gas/gas_fees.d.ts.map +1 -1
  106. package/dest/gas/gas_fees.js +4 -1
  107. package/dest/ha-signing/config.d.ts +101 -0
  108. package/dest/ha-signing/config.d.ts.map +1 -0
  109. package/dest/ha-signing/config.js +92 -0
  110. package/dest/ha-signing/index.d.ts +3 -0
  111. package/dest/ha-signing/index.d.ts.map +1 -0
  112. package/dest/ha-signing/index.js +2 -0
  113. package/dest/ha-signing/types.d.ts +85 -0
  114. package/dest/ha-signing/types.d.ts.map +1 -0
  115. package/dest/ha-signing/types.js +32 -0
  116. package/dest/hash/hash.d.ts +2 -1
  117. package/dest/hash/hash.d.ts.map +1 -1
  118. package/dest/hash/hash.js +16 -10
  119. package/dest/hash/map_slot.d.ts +1 -1
  120. package/dest/hash/map_slot.d.ts.map +1 -1
  121. package/dest/hash/map_slot.js +4 -3
  122. package/dest/interfaces/allowed_element.d.ts +2 -20
  123. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  124. package/dest/interfaces/allowed_element.js +0 -6
  125. package/dest/interfaces/api_limit.d.ts +2 -1
  126. package/dest/interfaces/api_limit.d.ts.map +1 -1
  127. package/dest/interfaces/api_limit.js +1 -0
  128. package/dest/interfaces/archiver.d.ts +1 -1
  129. package/dest/interfaces/archiver.d.ts.map +1 -1
  130. package/dest/interfaces/archiver.js +24 -18
  131. package/dest/interfaces/aztec-node-admin.d.ts +61 -29
  132. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  133. package/dest/interfaces/aztec-node-admin.js +12 -4
  134. package/dest/interfaces/aztec-node.d.ts +65 -63
  135. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  136. package/dest/interfaces/aztec-node.js +13 -17
  137. package/dest/interfaces/block-builder.d.ts +14 -8
  138. package/dest/interfaces/block-builder.d.ts.map +1 -1
  139. package/dest/interfaces/block-builder.js +8 -1
  140. package/dest/interfaces/configs.d.ts +33 -28
  141. package/dest/interfaces/configs.d.ts.map +1 -1
  142. package/dest/interfaces/configs.js +7 -2
  143. package/dest/interfaces/get_logs_response.d.ts +15 -8
  144. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  145. package/dest/interfaces/l2_logs_source.d.ts +14 -5
  146. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  147. package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
  148. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  149. package/dest/interfaces/p2p.d.ts +4 -9
  150. package/dest/interfaces/p2p.d.ts.map +1 -1
  151. package/dest/interfaces/prover-broker.d.ts +16 -1
  152. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  153. package/dest/interfaces/prover-broker.js +4 -1
  154. package/dest/interfaces/prover-client.d.ts +15 -1
  155. package/dest/interfaces/prover-client.d.ts.map +1 -1
  156. package/dest/interfaces/prover-client.js +12 -1
  157. package/dest/interfaces/proving-job.d.ts +202 -202
  158. package/dest/interfaces/slasher.d.ts +9 -1
  159. package/dest/interfaces/slasher.d.ts.map +1 -1
  160. package/dest/interfaces/slasher.js +2 -0
  161. package/dest/interfaces/tx_provider.d.ts +3 -3
  162. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  163. package/dest/interfaces/validator.d.ts +58 -29
  164. package/dest/interfaces/validator.d.ts.map +1 -1
  165. package/dest/interfaces/validator.js +7 -3
  166. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  167. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  168. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  169. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +4 -4
  170. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  171. package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -15
  172. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  173. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  174. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  175. package/dest/kernel/hints/index.d.ts +2 -2
  176. package/dest/kernel/hints/index.js +2 -2
  177. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  178. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  179. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  180. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  181. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  182. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  183. package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
  184. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  185. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  186. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  187. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  188. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  189. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
  190. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  191. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  192. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +3 -3
  193. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  194. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +7 -7
  195. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  196. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  197. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  198. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
  199. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  200. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  201. package/dest/kernel/private_validation_requests.d.ts +3 -3
  202. package/dest/kernel/private_validation_requests.js +9 -9
  203. package/dest/keys/derivation.d.ts +3 -3
  204. package/dest/keys/derivation.js +15 -15
  205. package/dest/keys/key_types.d.ts +3 -3
  206. package/dest/keys/key_types.d.ts.map +1 -1
  207. package/dest/keys/public_keys.js +2 -2
  208. package/dest/keys/utils.d.ts +1 -1
  209. package/dest/keys/utils.d.ts.map +1 -1
  210. package/dest/keys/utils.js +8 -4
  211. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  212. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  213. package/dest/l1-contracts/slash_factory.js +1 -0
  214. package/dest/logs/debug_log_store.d.ts +30 -0
  215. package/dest/logs/debug_log_store.d.ts.map +1 -0
  216. package/dest/logs/debug_log_store.js +30 -0
  217. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  218. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  219. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +23 -15
  220. package/dest/logs/extended_public_log.d.ts +13 -7
  221. package/dest/logs/extended_public_log.d.ts.map +1 -1
  222. package/dest/logs/index.d.ts +3 -2
  223. package/dest/logs/index.d.ts.map +1 -1
  224. package/dest/logs/index.js +2 -1
  225. package/dest/logs/log_id.d.ts +17 -14
  226. package/dest/logs/log_id.d.ts.map +1 -1
  227. package/dest/logs/log_id.js +20 -17
  228. package/dest/logs/pre_tag.d.ts +16 -11
  229. package/dest/logs/pre_tag.d.ts.map +1 -1
  230. package/dest/logs/pre_tag.js +2 -2
  231. package/dest/logs/private_log.d.ts +2 -2
  232. package/dest/logs/private_log.d.ts.map +1 -1
  233. package/dest/logs/public_log.d.ts +4 -3
  234. package/dest/logs/public_log.d.ts.map +1 -1
  235. package/dest/logs/public_log.js +2 -1
  236. package/dest/logs/siloed_tag.d.ts +5 -3
  237. package/dest/logs/siloed_tag.d.ts.map +1 -1
  238. package/dest/logs/siloed_tag.js +8 -6
  239. package/dest/logs/tag.js +1 -1
  240. package/dest/messaging/l2_to_l1_membership.d.ts +2 -2
  241. package/dest/messaging/l2_to_l1_membership.js +3 -3
  242. package/dest/note/index.d.ts +1 -2
  243. package/dest/note/index.d.ts.map +1 -1
  244. package/dest/note/index.js +0 -1
  245. package/dest/p2p/attestation_utils.d.ts +11 -1
  246. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  247. package/dest/p2p/attestation_utils.js +45 -0
  248. package/dest/p2p/block_proposal.d.ts +14 -7
  249. package/dest/p2p/block_proposal.d.ts.map +1 -1
  250. package/dest/p2p/block_proposal.js +3 -5
  251. package/dest/p2p/checkpoint_attestation.d.ts +2 -1
  252. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  253. package/dest/p2p/checkpoint_attestation.js +1 -1
  254. package/dest/p2p/checkpoint_proposal.d.ts +27 -8
  255. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  256. package/dest/p2p/checkpoint_proposal.js +30 -16
  257. package/dest/p2p/client_type.d.ts +2 -5
  258. package/dest/p2p/client_type.d.ts.map +1 -1
  259. package/dest/p2p/client_type.js +0 -7
  260. package/dest/p2p/consensus_payload.d.ts +12 -3
  261. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  262. package/dest/p2p/consensus_payload.js +22 -15
  263. package/dest/p2p/constants.d.ts +5 -0
  264. package/dest/p2p/constants.d.ts.map +1 -0
  265. package/dest/p2p/constants.js +3 -0
  266. package/dest/p2p/index.d.ts +2 -2
  267. package/dest/p2p/index.d.ts.map +1 -1
  268. package/dest/p2p/index.js +1 -1
  269. package/dest/p2p/message_validator.d.ts +18 -3
  270. package/dest/p2p/message_validator.d.ts.map +1 -1
  271. package/dest/p2p/message_validator.js +2 -1
  272. package/dest/p2p/topic_type.d.ts +3 -4
  273. package/dest/p2p/topic_type.d.ts.map +1 -1
  274. package/dest/p2p/topic_type.js +7 -24
  275. package/dest/rollup/checkpoint_header.d.ts +2 -2
  276. package/dest/rollup/checkpoint_header.js +2 -2
  277. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -6
  278. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  279. package/dest/rollup/checkpoint_rollup_public_inputs.js +2 -2
  280. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +2 -2
  281. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  282. package/dest/rollup/root_rollup_public_inputs.d.ts +6 -6
  283. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  284. package/dest/rollup/root_rollup_public_inputs.js +3 -3
  285. package/dest/slashing/empire.d.ts +1 -1
  286. package/dest/slashing/empire.d.ts.map +1 -1
  287. package/dest/slashing/empire.js +2 -0
  288. package/dest/slashing/helpers.d.ts +2 -2
  289. package/dest/slashing/helpers.d.ts.map +1 -1
  290. package/dest/slashing/helpers.js +6 -0
  291. package/dest/slashing/tally.d.ts +9 -2
  292. package/dest/slashing/tally.d.ts.map +1 -1
  293. package/dest/slashing/tally.js +26 -3
  294. package/dest/slashing/types.d.ts +7 -3
  295. package/dest/slashing/types.d.ts.map +1 -1
  296. package/dest/slashing/types.js +13 -1
  297. package/dest/stats/stats.d.ts +1 -3
  298. package/dest/stats/stats.d.ts.map +1 -1
  299. package/dest/tests/factories.d.ts +3 -1
  300. package/dest/tests/factories.d.ts.map +1 -1
  301. package/dest/tests/factories.js +22 -14
  302. package/dest/tests/jest.d.ts +4 -4
  303. package/dest/tests/jest.js +9 -9
  304. package/dest/tests/mocks.d.ts +19 -11
  305. package/dest/tests/mocks.d.ts.map +1 -1
  306. package/dest/tests/mocks.js +37 -26
  307. package/dest/timetable/index.d.ts +37 -0
  308. package/dest/timetable/index.d.ts.map +1 -0
  309. package/dest/timetable/index.js +39 -0
  310. package/dest/trees/public_data_leaf.d.ts +2 -1
  311. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  312. package/dest/trees/public_data_leaf.js +7 -6
  313. package/dest/tx/block_header.d.ts +3 -2
  314. package/dest/tx/block_header.d.ts.map +1 -1
  315. package/dest/tx/block_header.js +4 -3
  316. package/dest/tx/global_variables.d.ts +4 -4
  317. package/dest/tx/global_variables.d.ts.map +1 -1
  318. package/dest/tx/in_tx.d.ts +3 -3
  319. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  320. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  321. package/dest/tx/indexed_tx_effect.js +3 -2
  322. package/dest/tx/profiling.d.ts +4 -4
  323. package/dest/tx/profiling.d.ts.map +1 -1
  324. package/dest/tx/profiling.js +3 -3
  325. package/dest/tx/protocol_contracts.d.ts +1 -1
  326. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  327. package/dest/tx/protocol_contracts.js +2 -2
  328. package/dest/tx/public_simulation_output.d.ts +4 -2
  329. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  330. package/dest/tx/public_simulation_output.js +7 -3
  331. package/dest/tx/simulated_tx.d.ts +5 -2
  332. package/dest/tx/simulated_tx.d.ts.map +1 -1
  333. package/dest/tx/simulated_tx.js +4 -1
  334. package/dest/tx/tx.d.ts +2 -1
  335. package/dest/tx/tx.d.ts.map +1 -1
  336. package/dest/tx/tx.js +6 -3
  337. package/dest/tx/tx_receipt.d.ts +57 -15
  338. package/dest/tx/tx_receipt.d.ts.map +1 -1
  339. package/dest/tx/tx_receipt.js +55 -16
  340. package/dest/tx/tx_request.js +2 -2
  341. package/dest/tx/validator/empty_validator.d.ts +2 -2
  342. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  343. package/dest/tx/validator/error_texts.d.ts +4 -2
  344. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  345. package/dest/tx/validator/error_texts.js +4 -1
  346. package/dest/tx/validator/tx_validator.d.ts +2 -2
  347. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  348. package/dest/validators/schemas.d.ts +30 -30
  349. package/dest/validators/schemas.d.ts.map +1 -1
  350. package/dest/validators/schemas.js +4 -3
  351. package/dest/validators/types.d.ts +3 -3
  352. package/dest/validators/types.d.ts.map +1 -1
  353. package/package.json +25 -13
  354. package/src/abi/decoder.ts +15 -6
  355. package/src/abi/encoder.ts +49 -6
  356. package/src/abi/event_metadata_definition.ts +2 -0
  357. package/src/abi/function_call.ts +25 -3
  358. package/src/abi/utils.ts +25 -0
  359. package/src/auth_witness/auth_witness.ts +3 -3
  360. package/src/avm/revert_code.ts +15 -0
  361. package/src/block/block_data.ts +26 -0
  362. package/src/block/block_hash.ts +26 -47
  363. package/src/block/block_parameter.ts +3 -3
  364. package/src/block/checkpointed_l2_block.ts +4 -4
  365. package/src/block/in_block.ts +8 -8
  366. package/src/block/index.ts +2 -1
  367. package/src/block/{l2_block_new.ts → l2_block.ts} +8 -12
  368. package/src/block/l2_block_source.ts +62 -31
  369. package/src/block/l2_block_stream/interfaces.ts +2 -2
  370. package/src/block/l2_block_stream/l2_block_stream.ts +65 -27
  371. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  372. package/src/block/test/l2_tips_store_test_suite.ts +4 -4
  373. package/src/checkpoint/checkpoint.ts +38 -20
  374. package/src/checkpoint/checkpoint_data.ts +51 -0
  375. package/src/checkpoint/index.ts +1 -0
  376. package/src/checkpoint/published_checkpoint.ts +3 -1
  377. package/src/config/index.ts +1 -0
  378. package/src/config/node-rpc-config.ts +1 -1
  379. package/src/config/sequencer-config.ts +37 -0
  380. package/src/contract/contract_address.ts +4 -4
  381. package/src/contract/contract_class.ts +3 -3
  382. package/src/contract/contract_class_id.ts +6 -5
  383. package/src/contract/interfaces/node-info.ts +3 -0
  384. package/src/contract/private_function.ts +3 -4
  385. package/src/contract/private_function_membership_proof.ts +1 -1
  386. package/src/database-version/database_version.ts +87 -0
  387. package/src/database-version/version_manager.ts +1 -77
  388. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  389. package/src/epoch-helpers/index.ts +13 -1
  390. package/src/file-store/local.ts +15 -5
  391. package/src/file-store/s3.ts +12 -3
  392. package/src/gas/gas_fees.ts +7 -1
  393. package/src/ha-signing/config.ts +149 -0
  394. package/src/ha-signing/index.ts +18 -0
  395. package/src/ha-signing/types.ts +112 -0
  396. package/src/hash/hash.ts +14 -10
  397. package/src/hash/map_slot.ts +3 -2
  398. package/src/interfaces/allowed_element.ts +1 -5
  399. package/src/interfaces/api_limit.ts +1 -0
  400. package/src/interfaces/archiver.ts +24 -27
  401. package/src/interfaces/aztec-node-admin.ts +26 -2
  402. package/src/interfaces/aztec-node.ts +90 -121
  403. package/src/interfaces/block-builder.ts +21 -7
  404. package/src/interfaces/configs.ts +23 -8
  405. package/src/interfaces/l2_logs_source.ts +17 -4
  406. package/src/interfaces/merkle_tree_operations.ts +1 -1
  407. package/src/interfaces/p2p.ts +3 -14
  408. package/src/interfaces/prover-broker.ts +22 -0
  409. package/src/interfaces/prover-client.ts +22 -0
  410. package/src/interfaces/slasher.ts +4 -0
  411. package/src/interfaces/tx_provider.ts +2 -2
  412. package/src/interfaces/validator.ts +17 -8
  413. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  414. package/src/kernel/hints/build_nullifier_read_request_hints.ts +16 -28
  415. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  416. package/src/kernel/hints/index.ts +2 -2
  417. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  418. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  419. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  420. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  421. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  422. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +5 -5
  423. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  424. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  425. package/src/kernel/private_validation_requests.ts +8 -8
  426. package/src/keys/derivation.ts +15 -15
  427. package/src/keys/key_types.ts +6 -2
  428. package/src/keys/public_keys.ts +2 -2
  429. package/src/keys/utils.ts +8 -4
  430. package/src/l1-contracts/slash_factory.ts +1 -0
  431. package/src/logs/debug_log_store.ts +54 -0
  432. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +24 -16
  433. package/src/logs/index.ts +2 -1
  434. package/src/logs/log_id.ts +22 -18
  435. package/src/logs/pre_tag.ts +5 -5
  436. package/src/logs/public_log.ts +4 -2
  437. package/src/logs/siloed_tag.ts +10 -4
  438. package/src/logs/tag.ts +1 -1
  439. package/src/messaging/l2_to_l1_membership.ts +3 -3
  440. package/src/note/index.ts +0 -1
  441. package/src/p2p/attestation_utils.ts +56 -0
  442. package/src/p2p/block_proposal.ts +13 -8
  443. package/src/p2p/checkpoint_attestation.ts +6 -1
  444. package/src/p2p/checkpoint_proposal.ts +55 -16
  445. package/src/p2p/client_type.ts +0 -6
  446. package/src/p2p/consensus_payload.ts +25 -12
  447. package/src/p2p/constants.ts +6 -0
  448. package/src/p2p/index.ts +1 -1
  449. package/src/p2p/message_validator.ts +14 -2
  450. package/src/p2p/topic_type.ts +8 -15
  451. package/src/rollup/checkpoint_header.ts +2 -2
  452. package/src/rollup/checkpoint_rollup_public_inputs.ts +5 -5
  453. package/src/rollup/root_rollup_public_inputs.ts +7 -7
  454. package/src/slashing/empire.ts +3 -1
  455. package/src/slashing/helpers.ts +8 -0
  456. package/src/slashing/tally.ts +25 -4
  457. package/src/slashing/types.ts +14 -0
  458. package/src/stats/stats.ts +0 -2
  459. package/src/tests/factories.ts +27 -18
  460. package/src/tests/jest.ts +9 -9
  461. package/src/tests/mocks.ts +54 -30
  462. package/src/timetable/index.ts +66 -0
  463. package/src/trees/public_data_leaf.ts +11 -5
  464. package/src/tx/block_header.ts +8 -5
  465. package/src/tx/global_variables.ts +3 -3
  466. package/src/tx/indexed_tx_effect.ts +3 -2
  467. package/src/tx/profiling.ts +5 -5
  468. package/src/tx/protocol_contracts.ts +2 -2
  469. package/src/tx/public_simulation_output.ts +4 -0
  470. package/src/tx/simulated_tx.ts +8 -1
  471. package/src/tx/tx.ts +8 -9
  472. package/src/tx/tx_receipt.ts +85 -18
  473. package/src/tx/tx_request.ts +2 -2
  474. package/src/tx/validator/empty_validator.ts +1 -1
  475. package/src/tx/validator/error_texts.ts +5 -1
  476. package/src/tx/validator/tx_validator.ts +1 -1
  477. package/src/validators/schemas.ts +8 -1
  478. package/src/validators/types.ts +5 -4
  479. package/dest/block/l2_block_new.d.ts.map +0 -1
  480. package/dest/database-version/index.d.ts +0 -2
  481. package/dest/database-version/index.d.ts.map +0 -1
  482. package/dest/database-version/index.js +0 -1
  483. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  484. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  485. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  486. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  487. package/dest/note/notes_filter.d.ts +0 -27
  488. package/dest/note/notes_filter.d.ts.map +0 -1
  489. package/dest/note/notes_filter.js +0 -11
  490. package/src/database-version/index.ts +0 -1
  491. package/src/note/notes_filter.ts +0 -38
@@ -7,6 +7,9 @@ import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.
7
7
  import { type L2BlockId, type L2BlockSource, makeL2BlockId } from '../l2_block_source.js';
8
8
  import type { L2BlockStreamEvent, L2BlockStreamEventHandler, L2BlockStreamLocalDataProvider } from './interfaces.js';
9
9
 
10
+ /** Maximum number of checkpoints to prefetch at once during sync. Matches MAX_RPC_CHECKPOINTS_LEN. */
11
+ export const CHECKPOINT_PREFETCH_LIMIT = 50;
12
+
10
13
  /** Creates a stream of events for new blocks, chain tips updates, and reorgs, out of polling an archiver or a node. */
11
14
  export class L2BlockStream {
12
15
  private readonly runningPromise: RunningPromise;
@@ -16,13 +19,12 @@ export class L2BlockStream {
16
19
  constructor(
17
20
  private l2BlockSource: Pick<
18
21
  L2BlockSource,
19
- 'getL2BlocksNew' | 'getBlockHeader' | 'getL2Tips' | 'getPublishedCheckpoints' | 'getCheckpointedBlocks'
22
+ 'getBlocks' | 'getBlockHeader' | 'getL2Tips' | 'getCheckpoints' | 'getCheckpointedBlocks'
20
23
  >,
21
24
  private localData: L2BlockStreamLocalDataProvider,
22
25
  private handler: L2BlockStreamEventHandler,
23
26
  private readonly log = createLogger('types:block_stream'),
24
27
  private opts: {
25
- proven?: boolean;
26
28
  pollIntervalMS?: number;
27
29
  batchSize?: number;
28
30
  startingBlock?: number;
@@ -30,6 +32,8 @@ export class L2BlockStream {
30
32
  skipFinalized?: boolean;
31
33
  /** When true, checkpoint events will not be emitted. Blocks are still fetched via checkpoints but only blocks-added events are emitted. */
32
34
  ignoreCheckpoints?: boolean;
35
+ /** Maximum number of checkpoints to prefetch at once during sync. Defaults to CHECKPOINT_PREFETCH_LIMIT (50). */
36
+ checkpointPrefetchLimit?: number;
33
37
  } = {},
34
38
  ) {
35
39
  // Note that RunningPromise is in stopped state by default. This promise won't run until someone invokes `start`,
@@ -105,6 +109,27 @@ export class L2BlockStream {
105
109
 
106
110
  let nextBlockNumber = latestBlockNumber + 1;
107
111
  let nextCheckpointToEmit = CheckpointNumber(localTips.checkpointed.checkpoint.number + 1);
112
+
113
+ // When startingBlock is set, also skip ahead for checkpoints.
114
+ if (
115
+ this.opts.startingBlock !== undefined &&
116
+ this.opts.startingBlock >= 1 &&
117
+ nextCheckpointToEmit <= sourceTips.checkpointed.checkpoint.number
118
+ ) {
119
+ const startingBlockCheckpoints = await this.l2BlockSource.getCheckpointedBlocks(
120
+ BlockNumber(this.opts.startingBlock),
121
+ 1,
122
+ );
123
+ if (startingBlockCheckpoints.length > 0) {
124
+ nextCheckpointToEmit = CheckpointNumber(
125
+ Math.max(nextCheckpointToEmit, startingBlockCheckpoints[0].checkpointNumber),
126
+ );
127
+ } else {
128
+ // startingBlock is past all checkpointed blocks; skip Loop 1 entirely.
129
+ nextCheckpointToEmit = CheckpointNumber(sourceTips.checkpointed.checkpoint.number + 1);
130
+ }
131
+ }
132
+
108
133
  if (this.opts.skipFinalized) {
109
134
  // When skipping finalized blocks we need to provide reliable reorg detection while fetching as few blocks as
110
135
  // possible. Finalized blocks cannot be reorged by definition, so we can skip most of them. We do need the very
@@ -124,7 +149,7 @@ export class L2BlockStream {
124
149
  if (!this.opts.ignoreCheckpoints) {
125
150
  let loop1Iterations = 0;
126
151
  while (nextCheckpointToEmit <= sourceTips.checkpointed.checkpoint.number) {
127
- const checkpoints = await this.l2BlockSource.getPublishedCheckpoints(nextCheckpointToEmit, 1);
152
+ const checkpoints = await this.l2BlockSource.getCheckpoints(nextCheckpointToEmit, 1);
128
153
  if (checkpoints.length === 0) {
129
154
  break;
130
155
  }
@@ -150,27 +175,36 @@ export class L2BlockStream {
150
175
  }
151
176
  }
152
177
 
153
- // Loop 2: Fetch new checkpointed blocks. For each block, get its checkpoint, emit all blocks
178
+ // Loop 2: Fetch new checkpointed blocks. For each checkpoint, emit all blocks
154
179
  // from that checkpoint that we need, then emit the checkpoint event.
155
- // We cache the current checkpoint to avoid redundant fetches when batchSize < checkpoint size.
156
- let checkpoint: PublishedCheckpoint | undefined;
157
- while (nextBlockNumber <= sourceTips.checkpointed.block.number) {
158
- const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.checkpointed.block.number - nextBlockNumber + 1);
180
+ // We prefetch multiple checkpoints, then process them one by one.
181
+ let prefetchedCheckpoints: PublishedCheckpoint[] = [];
182
+ let prefetchIdx = 0;
183
+ let nextCheckpointNumber: CheckpointNumber | undefined;
159
184
 
160
- // Check if we need to fetch a new checkpoint (nextBlockNumber is beyond the cached one)
161
- if (!checkpoint || nextBlockNumber > checkpoint.checkpoint.blocks.at(-1)!.number) {
162
- const blocks = await this.l2BlockSource.getCheckpointedBlocks(BlockNumber(nextBlockNumber), 1);
163
- if (blocks.length === 0) {
164
- break;
165
- }
166
- const checkpoints = await this.l2BlockSource.getPublishedCheckpoints(blocks[0].checkpointNumber, 1);
167
- if (checkpoints.length === 0) {
185
+ // Find the starting checkpoint number
186
+ if (nextBlockNumber <= sourceTips.checkpointed.block.number) {
187
+ const blocks = await this.l2BlockSource.getCheckpointedBlocks(BlockNumber(nextBlockNumber), 1);
188
+ if (blocks.length > 0) {
189
+ nextCheckpointNumber = blocks[0].checkpointNumber;
190
+ }
191
+ }
192
+
193
+ while (nextBlockNumber <= sourceTips.checkpointed.block.number && nextCheckpointNumber !== undefined) {
194
+ // Refill the prefetch buffer when exhausted
195
+ if (prefetchIdx >= prefetchedCheckpoints.length) {
196
+ const prefetchLimit = this.opts.checkpointPrefetchLimit ?? CHECKPOINT_PREFETCH_LIMIT;
197
+ prefetchedCheckpoints = await this.l2BlockSource.getCheckpoints(nextCheckpointNumber, prefetchLimit);
198
+ prefetchIdx = 0;
199
+ if (prefetchedCheckpoints.length === 0) {
168
200
  break;
169
201
  }
170
- checkpoint = checkpoints[0];
171
202
  }
172
203
 
204
+ const checkpoint = prefetchedCheckpoints[prefetchIdx]!;
205
+
173
206
  // Get all blocks from this checkpoint that we need, respecting batchSize
207
+ const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.checkpointed.block.number - nextBlockNumber + 1);
174
208
  const blocksForCheckpoint = checkpoint.checkpoint.blocks
175
209
  .filter(b => b.number >= nextBlockNumber)
176
210
  .slice(0, limit);
@@ -180,23 +214,27 @@ export class L2BlockStream {
180
214
  await this.emitEvent({ type: 'blocks-added', blocks: blocksForCheckpoint });
181
215
  nextBlockNumber = blocksForCheckpoint.at(-1)!.number + 1;
182
216
 
183
- // If we've reached the end of this checkpoint, emit the checkpoint event
217
+ // If we've reached the end of this checkpoint, emit the checkpoint event and move to next
184
218
  const lastBlockInCheckpoint = checkpoint.checkpoint.blocks.at(-1)!;
185
- if (!this.opts.ignoreCheckpoints && nextBlockNumber > lastBlockInCheckpoint.number) {
186
- const lastBlockHash = await lastBlockInCheckpoint.hash();
187
- await this.emitEvent({
188
- type: 'chain-checkpointed',
189
- checkpoint,
190
- block: makeL2BlockId(lastBlockInCheckpoint.number, lastBlockHash.toString()),
191
- });
219
+ if (nextBlockNumber > lastBlockInCheckpoint.number) {
220
+ if (!this.opts.ignoreCheckpoints) {
221
+ const lastBlockHash = await lastBlockInCheckpoint.hash();
222
+ await this.emitEvent({
223
+ type: 'chain-checkpointed',
224
+ checkpoint,
225
+ block: makeL2BlockId(lastBlockInCheckpoint.number, lastBlockHash.toString()),
226
+ });
227
+ }
228
+ prefetchIdx++;
229
+ nextCheckpointNumber = CheckpointNumber(nextCheckpointNumber + 1);
192
230
  }
193
231
  }
194
232
 
195
233
  // Loop 3: Fetch any remaining uncheckpointed (proposed) blocks.
196
234
  while (nextBlockNumber <= sourceTips.proposed.number) {
197
235
  const limit = Math.min(this.opts.batchSize ?? 50, sourceTips.proposed.number - nextBlockNumber + 1);
198
- this.log.trace(`Requesting blocks from ${nextBlockNumber} limit ${limit} proven=${this.opts.proven}`);
199
- const blocks = await this.l2BlockSource.getL2BlocksNew(BlockNumber(nextBlockNumber), limit, this.opts.proven);
236
+ this.log.trace(`Requesting blocks from ${nextBlockNumber} limit ${limit}`);
237
+ const blocks = await this.l2BlockSource.getBlocks(BlockNumber(nextBlockNumber), BlockNumber(limit));
200
238
  if (blocks.length === 0) {
201
239
  break;
202
240
  }
@@ -2,7 +2,7 @@ import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/constants';
2
2
  import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
3
3
 
4
4
  import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
5
- import type { L2BlockNew } from '../l2_block_new.js';
5
+ import type { L2Block } from '../l2_block.js';
6
6
  import {
7
7
  type CheckpointId,
8
8
  GENESIS_CHECKPOINT_HEADER_HASH,
@@ -109,7 +109,7 @@ export abstract class L2TipsStoreBase implements L2BlockStreamEventHandler, L2Bl
109
109
  }
110
110
 
111
111
  // Protected helper that subclasses can override for block hash computation
112
- protected computeBlockHash(block: L2BlockNew): Promise<string> {
112
+ protected computeBlockHash(block: L2Block): Promise<string> {
113
113
  return block.hash().then(hash => hash.toString());
114
114
  }
115
115
 
@@ -5,8 +5,8 @@ import { Fr } from '@aztec/foundation/curves/bn254';
5
5
  import {
6
6
  type CheckpointId,
7
7
  GENESIS_CHECKPOINT_HEADER_HASH,
8
+ L2Block,
8
9
  type L2BlockId,
9
- L2BlockNew,
10
10
  type L2TipId,
11
11
  } from '@aztec/stdlib/block';
12
12
  import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
@@ -31,8 +31,8 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
31
31
  blockToCheckpoint.clear();
32
32
  });
33
33
 
34
- const makeBlock = async (number: number): Promise<L2BlockNew> => {
35
- const block = await L2BlockNew.random(BlockNumber(number));
34
+ const makeBlock = async (number: number): Promise<L2Block> => {
35
+ const block = await L2Block.random(BlockNumber(number));
36
36
  blockHashes.set(number, (await block.hash()).toString());
37
37
  return block;
38
38
  };
@@ -74,7 +74,7 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
74
74
  checkpointed: makeTipId(checkpointed),
75
75
  });
76
76
 
77
- const makeCheckpoint = async (checkpointNumber: number, blocks: L2BlockNew[]): Promise<PublishedCheckpoint> => {
77
+ const makeCheckpoint = async (checkpointNumber: number, blocks: L2Block[]): Promise<PublishedCheckpoint> => {
78
78
  const checkpoint = await Checkpoint.random(CheckpointNumber(checkpointNumber), {
79
79
  numBlocks: blocks.length,
80
80
  startBlockNumber: blocks[0].number,
@@ -8,15 +8,16 @@ import {
8
8
  } from '@aztec/foundation/branded-types';
9
9
  import { sum } from '@aztec/foundation/collection';
10
10
  import { Fr } from '@aztec/foundation/curves/bn254';
11
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
11
+ import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
12
12
  import type { FieldsOf } from '@aztec/foundation/types';
13
13
 
14
14
  import { z } from 'zod';
15
15
 
16
- import { L2BlockNew } from '../block/l2_block_new.js';
16
+ import { L2Block } from '../block/l2_block.js';
17
17
  import { MAX_BLOCKS_PER_CHECKPOINT } from '../deserialization/index.js';
18
18
  import { computeCheckpointOutHash } from '../messaging/out_hash.js';
19
19
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
20
+ import { schemas } from '../schemas/schemas.js';
20
21
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
21
22
  import type { CheckpointInfo } from './checkpoint_info.js';
22
23
 
@@ -29,9 +30,11 @@ export class Checkpoint {
29
30
  /** Header of the checkpoint. */
30
31
  public header: CheckpointHeader,
31
32
  /** L2 blocks in the checkpoint. */
32
- public blocks: L2BlockNew[],
33
+ public blocks: L2Block[],
33
34
  /** Number of the checkpoint. */
34
35
  public number: CheckpointNumber,
36
+ /** Fee asset price modifier in basis points (from oracle). Defaults to 0 (no change). */
37
+ public feeAssetPriceModifier: bigint = 0n,
35
38
  ) {}
36
39
 
37
40
  get slot(): SlotNumber {
@@ -43,10 +46,14 @@ export class Checkpoint {
43
46
  .object({
44
47
  archive: AppendOnlyTreeSnapshot.schema,
45
48
  header: CheckpointHeader.schema,
46
- blocks: z.array(L2BlockNew.schema),
49
+ blocks: z.array(L2Block.schema),
47
50
  number: CheckpointNumberSchema,
51
+ feeAssetPriceModifier: schemas.BigInt,
48
52
  })
49
- .transform(({ archive, header, blocks, number }) => new Checkpoint(archive, header, blocks, number));
53
+ .transform(
54
+ ({ archive, header, blocks, number, feeAssetPriceModifier }) =>
55
+ new Checkpoint(archive, header, blocks, number, feeAssetPriceModifier),
56
+ );
50
57
  }
51
58
 
52
59
  static from(fields: FieldsOfCheckpoint) {
@@ -54,21 +61,28 @@ export class Checkpoint {
54
61
  }
55
62
 
56
63
  static getFields(fields: FieldsOfCheckpoint) {
57
- return [fields.archive, fields.header, fields.blocks, fields.number] as const;
64
+ return [fields.archive, fields.header, fields.blocks, fields.number, fields.feeAssetPriceModifier] as const;
58
65
  }
59
66
 
60
67
  static fromBuffer(buf: Buffer | BufferReader) {
61
68
  const reader = BufferReader.asReader(buf);
62
- return new Checkpoint(
63
- reader.readObject(AppendOnlyTreeSnapshot),
64
- reader.readObject(CheckpointHeader),
65
- reader.readVector(L2BlockNew, MAX_BLOCKS_PER_CHECKPOINT),
66
- CheckpointNumber(reader.readNumber()),
67
- );
69
+ const archive = reader.readObject(AppendOnlyTreeSnapshot);
70
+ const header = reader.readObject(CheckpointHeader);
71
+ const blocks = reader.readVector(L2Block, MAX_BLOCKS_PER_CHECKPOINT);
72
+ const number = CheckpointNumber(reader.readNumber());
73
+ const feeAssetPriceModifier = reader.readInt256();
74
+ return new Checkpoint(archive, header, blocks, number, feeAssetPriceModifier);
68
75
  }
69
76
 
70
77
  public toBuffer() {
71
- return serializeToBuffer(this.archive, this.header, this.blocks.length, this.blocks, this.number);
78
+ return serializeToBuffer(
79
+ this.archive,
80
+ this.header,
81
+ this.blocks.length,
82
+ this.blocks,
83
+ this.number,
84
+ serializeSignedBigInt(this.feeAssetPriceModifier),
85
+ );
72
86
  }
73
87
 
74
88
  public toBlobFields(): Fr[] {
@@ -80,9 +94,11 @@ export class Checkpoint {
80
94
  return this.header.hash();
81
95
  }
82
96
 
83
- // Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
84
- // Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
85
- // checkpoints up to and including this one in the epoch.
97
+ /**
98
+ * Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
99
+ * Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
100
+ * checkpoints up to and including this one in the epoch.
101
+ */
86
102
  public getCheckpointOutHash(): Fr {
87
103
  const msgs = this.blocks.map(block => block.body.txEffects.map(txEffect => txEffect.l2ToL1Msgs));
88
104
  return computeCheckpointOutHash(msgs);
@@ -129,22 +145,24 @@ export class Checkpoint {
129
145
  numBlocks = 1,
130
146
  startBlockNumber = 1,
131
147
  previousArchive,
148
+ feeAssetPriceModifier = 0n,
132
149
  ...options
133
150
  }: {
134
151
  numBlocks?: number;
135
152
  startBlockNumber?: number;
136
153
  previousArchive?: AppendOnlyTreeSnapshot;
154
+ feeAssetPriceModifier?: bigint;
137
155
  } & Partial<Parameters<typeof CheckpointHeader.random>[0]> &
138
- Partial<Parameters<typeof L2BlockNew.random>[1]> = {},
156
+ Partial<Parameters<typeof L2Block.random>[1]> = {},
139
157
  ) {
140
158
  const header = CheckpointHeader.random(options);
141
159
 
142
160
  // Create blocks sequentially to chain archive roots properly.
143
161
  // Each block's header.lastArchive must equal the previous block's archive.
144
- const blocks: L2BlockNew[] = [];
162
+ const blocks: L2Block[] = [];
145
163
  let lastArchive = previousArchive;
146
164
  for (let i = 0; i < numBlocks; i++) {
147
- const block = await L2BlockNew.random(BlockNumber(startBlockNumber + i), {
165
+ const block = await L2Block.random(BlockNumber(startBlockNumber + i), {
148
166
  indexWithinCheckpoint: IndexWithinCheckpoint(i),
149
167
  ...options,
150
168
  ...(lastArchive ? { lastArchive } : {}),
@@ -153,6 +171,6 @@ export class Checkpoint {
153
171
  blocks.push(block);
154
172
  }
155
173
 
156
- return new Checkpoint(AppendOnlyTreeSnapshot.random(), header, blocks, checkpointNumber);
174
+ return new Checkpoint(AppendOnlyTreeSnapshot.random(), header, blocks, checkpointNumber, feeAssetPriceModifier);
157
175
  }
158
176
  }
@@ -0,0 +1,51 @@
1
+ import {
2
+ BlockNumber,
3
+ BlockNumberSchema,
4
+ CheckpointNumber,
5
+ CheckpointNumberSchema,
6
+ } from '@aztec/foundation/branded-types';
7
+ import { Fr } from '@aztec/foundation/curves/bn254';
8
+ import { schemas } from '@aztec/foundation/schemas';
9
+
10
+ import { z } from 'zod';
11
+
12
+ import { CommitteeAttestation } from '../block/proposal/committee_attestation.js';
13
+ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
14
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
15
+ import { L1PublishedData } from './published_checkpoint.js';
16
+
17
+ /** Lightweight checkpoint metadata without full block data. */
18
+ export type CheckpointData = {
19
+ checkpointNumber: CheckpointNumber;
20
+ header: CheckpointHeader;
21
+ archive: AppendOnlyTreeSnapshot;
22
+ checkpointOutHash: Fr;
23
+ startBlock: BlockNumber;
24
+ blockCount: number;
25
+ attestations: CommitteeAttestation[];
26
+ l1: L1PublishedData;
27
+ };
28
+
29
+ export const CheckpointDataSchema = z
30
+ .object({
31
+ checkpointNumber: CheckpointNumberSchema,
32
+ header: CheckpointHeader.schema,
33
+ archive: AppendOnlyTreeSnapshot.schema,
34
+ checkpointOutHash: schemas.Fr,
35
+ startBlock: BlockNumberSchema,
36
+ blockCount: schemas.Integer,
37
+ attestations: z.array(CommitteeAttestation.schema),
38
+ l1: L1PublishedData.schema,
39
+ })
40
+ .transform(
41
+ (obj): CheckpointData => ({
42
+ checkpointNumber: obj.checkpointNumber,
43
+ header: obj.header,
44
+ archive: obj.archive,
45
+ checkpointOutHash: obj.checkpointOutHash,
46
+ startBlock: obj.startBlock,
47
+ blockCount: obj.blockCount,
48
+ attestations: obj.attestations,
49
+ l1: obj.l1,
50
+ }),
51
+ );
@@ -1,3 +1,4 @@
1
1
  export * from './checkpoint.js';
2
+ export * from './checkpoint_data.js';
2
3
  export * from './checkpoint_info.js';
3
4
  export * from './published_checkpoint.js';
@@ -55,9 +55,11 @@ export class L1PublishedData {
55
55
 
56
56
  export class PublishedCheckpoint {
57
57
  constructor(
58
+ /** The checkpoint itself. */
58
59
  public checkpoint: Checkpoint,
60
+ /** Info on when this checkpoint was published on L1. */
59
61
  public l1: L1PublishedData,
60
- // The attestations for the last block in the checkpoint.
62
+ /** The attestations for the last block in the checkpoint. */
61
63
  public attestations: CommitteeAttestation[],
62
64
  ) {}
63
65
 
@@ -1,2 +1,3 @@
1
1
  export * from './chain-config.js';
2
2
  export * from './node-rpc-config.js';
3
+ export * from './sequencer-config.js';
@@ -21,7 +21,7 @@ export const nodeRpcConfigMappings: ConfigMappingsType<NodeRPCConfig> = {
21
21
  rpcMaxBodySize: {
22
22
  env: 'RPC_MAX_BODY_SIZE',
23
23
  description: 'Maximum allowed batch size for JSON RPC batch requests.',
24
- defaultValue: '50mb',
24
+ defaultValue: '1mb',
25
25
  },
26
26
  };
27
27
 
@@ -0,0 +1,37 @@
1
+ import { type ConfigMappingsType, numberConfigHelper } from '@aztec/foundation/config';
2
+
3
+ import type { SequencerConfig } from '../interfaces/configs.js';
4
+
5
+ /** Default maximum number of transactions per block. */
6
+ export const DEFAULT_MAX_TXS_PER_BLOCK = 32;
7
+
8
+ /**
9
+ * Partial sequencer config mappings for fields that need to be shared across packages.
10
+ * The full sequencer config mappings remain in sequencer-client, but shared fields
11
+ * (like blockDurationMs needed by both p2p and sequencer-client) are defined here
12
+ * to avoid duplication.
13
+ */
14
+ export const sharedSequencerConfigMappings: ConfigMappingsType<
15
+ Pick<SequencerConfig, 'blockDurationMs' | 'expectedBlockProposalsPerSlot' | 'maxTxsPerBlock'>
16
+ > = {
17
+ blockDurationMs: {
18
+ env: 'SEQ_BLOCK_DURATION_MS',
19
+ description:
20
+ 'Duration per block in milliseconds when building multiple blocks per slot. ' +
21
+ 'If undefined (default), builds a single block per slot using the full slot duration.',
22
+ parseEnv: (val: string) => (val ? parseInt(val, 10) : undefined),
23
+ },
24
+ expectedBlockProposalsPerSlot: {
25
+ env: 'SEQ_EXPECTED_BLOCK_PROPOSALS_PER_SLOT',
26
+ description:
27
+ 'Expected number of block proposals per slot for P2P peer scoring. ' +
28
+ '0 (default) disables block proposal scoring. Set to a positive value to enable.',
29
+ parseEnv: (val: string) => (val ? parseInt(val, 10) : 0),
30
+ defaultValue: 0,
31
+ },
32
+ maxTxsPerBlock: {
33
+ env: 'SEQ_MAX_TX_PER_BLOCK',
34
+ description: 'The maximum number of txs to include in a block.',
35
+ ...numberConfigHelper(DEFAULT_MAX_TXS_PER_BLOCK),
36
+ },
37
+ };
@@ -1,4 +1,4 @@
1
- import { GeneratorIndex } from '@aztec/constants';
1
+ import { DomainSeparator } from '@aztec/constants';
2
2
  import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
 
@@ -44,7 +44,7 @@ export async function computePartialAddress(
44
44
 
45
45
  return poseidon2HashWithSeparator(
46
46
  [instance.originalContractClassId, saltedInitializationHash],
47
- GeneratorIndex.PARTIAL_ADDRESS,
47
+ DomainSeparator.PARTIAL_ADDRESS,
48
48
  );
49
49
  }
50
50
 
@@ -57,7 +57,7 @@ export function computeSaltedInitializationHash(
57
57
  ): Promise<Fr> {
58
58
  return poseidon2HashWithSeparator(
59
59
  [instance.salt, instance.initializationHash, instance.deployer],
60
- GeneratorIndex.PARTIAL_ADDRESS,
60
+ DomainSeparator.PARTIAL_ADDRESS,
61
61
  );
62
62
  }
63
63
 
@@ -87,5 +87,5 @@ export async function computeInitializationHashFromEncodedArgs(
87
87
  encodedArgs: Fr[],
88
88
  ): Promise<Fr> {
89
89
  const argsHash = await computeVarArgsHash(encodedArgs);
90
- return poseidon2HashWithSeparator([initFn, argsHash], GeneratorIndex.CONSTRUCTOR);
90
+ return poseidon2HashWithSeparator([initFn, argsHash], DomainSeparator.INITIALIZER);
91
91
  }
@@ -8,7 +8,7 @@ import { type ContractClassIdPreimage, computeContractClassIdWithPreimage } from
8
8
  import type { ContractClass, ContractClassWithId } from './interfaces/index.js';
9
9
 
10
10
  /** Contract artifact including its artifact hash */
11
- type ContractArtifactWithHash = ContractArtifact & { artifactHash: Fr };
11
+ export type ContractArtifactWithHash = ContractArtifact & { artifactHash: Fr };
12
12
 
13
13
  const cmpFunctionArtifacts = <T extends { selector: FunctionSelector }>(a: T, b: T) =>
14
14
  a.selector.toField().cmp(b.selector.toField());
@@ -35,8 +35,8 @@ export async function getContractClassFromArtifact(
35
35
 
36
36
  privateArtifactFunctions.sort(cmpFunctionArtifacts);
37
37
 
38
- const contractClass: ContractClass = {
39
- version: 1,
38
+ const contractClass = {
39
+ version: 1 as const,
40
40
  artifactHash,
41
41
  packedBytecode,
42
42
  privateFunctions: privateArtifactFunctions,
@@ -1,4 +1,4 @@
1
- import { GeneratorIndex, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS } from '@aztec/constants';
1
+ import { DomainSeparator, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS } from '@aztec/constants';
2
2
  import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
 
@@ -13,7 +13,7 @@ import { computePrivateFunctionsRoot } from './private_function.js';
13
13
  *
14
14
  * ```
15
15
  * version = 1
16
- * private_function_leaves = private_functions.map(fn => pedersen([fn.function_selector as Field, fn.vk_hash], GENERATOR__FUNCTION_LEAF))
16
+ * private_function_leaves = private_functions.map(fn => pedersen([fn.function_selector as Field, fn.vk_hash], GENERATOR__PRIVATE_FUNCTION_LEAF))
17
17
  * private_functions_root = merkleize(private_function_leaves)
18
18
  * bytecode_commitment = calculate_commitment(packed_bytecode)
19
19
  * contract_class_id = pedersen([version, artifact_hash, private_functions_root, bytecode_commitment], GENERATOR__CLASS_IDENTIFIER)
@@ -40,7 +40,7 @@ export async function computeContractClassIdWithPreimage(
40
40
  : await computePublicBytecodeCommitment(contractClass.packedBytecode);
41
41
  const id = await poseidon2HashWithSeparator(
42
42
  [artifactHash, privateFunctionsRoot, publicBytecodeCommitment],
43
- GeneratorIndex.CONTRACT_CLASS_ID,
43
+ DomainSeparator.CONTRACT_CLASS_ID,
44
44
  );
45
45
  return { id, artifactHash, privateFunctionsRoot, publicBytecodeCommitment };
46
46
  }
@@ -60,7 +60,7 @@ export type ContractClassIdPreimage = {
60
60
  };
61
61
 
62
62
  export async function computePublicBytecodeCommitment(packedBytecode: Buffer) {
63
- // Encode the buffer into field elements (chunked into 32 bytes each)
63
+ // Encode the buffer into field elements (chunked into 31 bytes each)
64
64
  // The first element is the length of the bytecode (in bytes)
65
65
  const [bytecodeLengthAsField, ...bytecodeAsFields] = bufferAsFields(
66
66
  packedBytecode,
@@ -72,5 +72,6 @@ export async function computePublicBytecodeCommitment(packedBytecode: Buffer) {
72
72
 
73
73
  // NOTE: hash the bytecode here only up to the actual length of the bytecode.
74
74
  // We do not hash the entire max bytecode length!
75
- return await poseidon2HashWithSeparator(bytecodeAsFields.slice(0, bytecodeLength), GeneratorIndex.PUBLIC_BYTECODE);
75
+ const sep = BigInt(DomainSeparator.PUBLIC_BYTECODE) + (bytecodeLengthAsField.toBigInt() << 32n);
76
+ return await poseidon2HashWithSeparator(bytecodeAsFields.slice(0, bytecodeLength), new Fr(sep).toNumber());
76
77
  }
@@ -19,6 +19,8 @@ export interface NodeInfo {
19
19
  l1ContractAddresses: L1ContractAddresses;
20
20
  /** Protocol contract addresses */
21
21
  protocolContractAddresses: ProtocolContractAddresses;
22
+ /** Whether the node requires real proofs for transaction submission. */
23
+ realProofs: boolean;
22
24
  }
23
25
 
24
26
  export const NodeInfoSchema: ZodFor<NodeInfo> = z
@@ -29,5 +31,6 @@ export const NodeInfoSchema: ZodFor<NodeInfo> = z
29
31
  enr: z.string().optional(),
30
32
  l1ContractAddresses: L1ContractAddressesSchema,
31
33
  protocolContractAddresses: ProtocolContractAddressesSchema,
34
+ realProofs: z.boolean(),
32
35
  })
33
36
  .transform(obj => ({ enr: undefined, ...obj }));
@@ -1,5 +1,4 @@
1
- import { FUNCTION_TREE_HEIGHT, GeneratorIndex } from '@aztec/constants';
2
- import { pedersenHash } from '@aztec/foundation/crypto/pedersen';
1
+ import { DomainSeparator, FUNCTION_TREE_HEIGHT } from '@aztec/constants';
3
2
  import { poseidon2Hash, poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
4
3
  import { Fr } from '@aztec/foundation/curves/bn254';
5
4
  import { type MerkleTree, MerkleTreeCalculator } from '@aztec/foundation/trees';
@@ -32,13 +31,13 @@ function computePrivateFunctionLeaves(fns: PrivateFunction[]): Promise<Buffer[]>
32
31
 
33
32
  /** Returns the leaf for a given private function. */
34
33
  export async function computePrivateFunctionLeaf(fn: PrivateFunction): Promise<Buffer> {
35
- return (await poseidon2HashWithSeparator([fn.selector, fn.vkHash], GeneratorIndex.FUNCTION_LEAF)).toBuffer();
34
+ return (await poseidon2HashWithSeparator([fn.selector, fn.vkHash], DomainSeparator.PRIVATE_FUNCTION_LEAF)).toBuffer();
36
35
  }
37
36
 
38
37
  async function getPrivateFunctionTreeCalculator(): Promise<MerkleTreeCalculator> {
39
38
  if (!privateFunctionTreeCalculator) {
40
39
  const functionTreeZeroLeaf = (
41
- await pedersenHash(new Array(PRIVATE_FUNCTION_SIZE).fill(0))
40
+ await poseidon2Hash(new Array(PRIVATE_FUNCTION_SIZE).fill(0))
42
41
  ).toBuffer() as Buffer<ArrayBuffer>;
43
42
  privateFunctionTreeCalculator = await MerkleTreeCalculator.create(
44
43
  FUNCTION_TREE_HEIGHT,
@@ -99,7 +99,7 @@ export async function createPrivateFunctionMembershipProof(
99
99
  * contract_class = db.get_contract_class(contract_class_id)
100
100
  *
101
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)
102
+ * function_leaf = pedersen([selector as Field, vk_hash], GENERATOR__PRIVATE_FUNCTION_LEAF)
103
103
  * computed_private_function_tree_root = compute_root(function_leaf, private_function_tree_sibling_path)
104
104
  * assert computed_private_function_tree_root == contract_class.private_functions_root
105
105
  *