@aztec/stdlib 0.0.1-commit.29c6b1a3 → 0.0.1-commit.2c0ee1788

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 (770) 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/authorization_selector.d.ts +3 -6
  5. package/dest/abi/authorization_selector.d.ts.map +1 -1
  6. package/dest/abi/buffer.d.ts +14 -4
  7. package/dest/abi/buffer.d.ts.map +1 -1
  8. package/dest/abi/buffer.js +25 -4
  9. package/dest/abi/decoder.d.ts +6 -45
  10. package/dest/abi/decoder.d.ts.map +1 -1
  11. package/dest/abi/decoder.js +17 -70
  12. package/dest/abi/encoder.d.ts +1 -1
  13. package/dest/abi/encoder.d.ts.map +1 -1
  14. package/dest/abi/encoder.js +64 -7
  15. package/dest/abi/event_metadata_definition.d.ts +3 -1
  16. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  17. package/dest/abi/event_metadata_definition.js +1 -1
  18. package/dest/abi/event_selector.d.ts +3 -6
  19. package/dest/abi/event_selector.d.ts.map +1 -1
  20. package/dest/abi/function_call.d.ts +39 -9
  21. package/dest/abi/function_call.d.ts.map +1 -1
  22. package/dest/abi/function_call.js +20 -3
  23. package/dest/abi/function_selector.d.ts +3 -6
  24. package/dest/abi/function_selector.d.ts.map +1 -1
  25. package/dest/abi/function_selector.js +2 -4
  26. package/dest/abi/function_signature_decoder.d.ts +43 -0
  27. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  28. package/dest/abi/function_signature_decoder.js +66 -0
  29. package/dest/abi/index.d.ts +2 -1
  30. package/dest/abi/index.d.ts.map +1 -1
  31. package/dest/abi/index.js +1 -0
  32. package/dest/abi/note_selector.d.ts +3 -6
  33. package/dest/abi/note_selector.d.ts.map +1 -1
  34. package/dest/abi/note_selector.js +1 -3
  35. package/dest/abi/selector.d.ts +2 -2
  36. package/dest/abi/selector.d.ts.map +1 -1
  37. package/dest/abi/selector.js +1 -1
  38. package/dest/abi/utils.d.ts +14 -1
  39. package/dest/abi/utils.d.ts.map +1 -1
  40. package/dest/abi/utils.js +15 -0
  41. package/dest/auth_witness/auth_witness.js +3 -3
  42. package/dest/avm/avm_proving_request.d.ts +166 -166
  43. package/dest/avm/revert_code.d.ts +9 -4
  44. package/dest/avm/revert_code.d.ts.map +1 -1
  45. package/dest/avm/revert_code.js +16 -21
  46. package/dest/aztec-address/index.d.ts +3 -6
  47. package/dest/aztec-address/index.d.ts.map +1 -1
  48. package/dest/aztec-address/index.js +2 -4
  49. package/dest/block/attestation_info.d.ts +3 -2
  50. package/dest/block/attestation_info.d.ts.map +1 -1
  51. package/dest/block/attestation_info.js +7 -5
  52. package/dest/block/block_data.d.ts +341 -0
  53. package/dest/block/block_data.d.ts.map +1 -0
  54. package/dest/block/block_data.js +26 -0
  55. package/dest/block/block_hash.d.ts +17 -19
  56. package/dest/block/block_hash.d.ts.map +1 -1
  57. package/dest/block/block_hash.js +22 -34
  58. package/dest/block/block_parameter.d.ts +30 -3
  59. package/dest/block/block_parameter.d.ts.map +1 -1
  60. package/dest/block/block_parameter.js +36 -2
  61. package/dest/block/in_block.d.ts +5 -5
  62. package/dest/block/in_block.js +2 -2
  63. package/dest/block/index.d.ts +2 -1
  64. package/dest/block/index.d.ts.map +1 -1
  65. package/dest/block/index.js +1 -0
  66. package/dest/block/l2_block.d.ts +11 -2
  67. package/dest/block/l2_block.d.ts.map +1 -1
  68. package/dest/block/l2_block.js +14 -5
  69. package/dest/block/l2_block_info.d.ts +6 -5
  70. package/dest/block/l2_block_info.d.ts.map +1 -1
  71. package/dest/block/l2_block_info.js +6 -5
  72. package/dest/block/l2_block_source.d.ts +153 -13
  73. package/dest/block/l2_block_source.d.ts.map +1 -1
  74. package/dest/block/l2_block_source.js +1 -0
  75. package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
  76. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  77. package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -1
  78. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  79. package/dest/block/l2_block_stream/l2_block_stream.js +10 -0
  80. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +1 -1
  81. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  82. package/dest/block/l2_block_stream/l2_tips_store_base.js +18 -5
  83. package/dest/block/proposal/attestations_and_signers.d.ts +13 -6
  84. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  85. package/dest/block/proposal/attestations_and_signers.js +26 -18
  86. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  87. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  88. package/dest/block/test/l2_tips_store_test_suite.js +4 -3
  89. package/dest/checkpoint/checkpoint.d.ts +28 -7
  90. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  91. package/dest/checkpoint/checkpoint.js +41 -17
  92. package/dest/checkpoint/checkpoint_data.d.ts +192 -0
  93. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  94. package/dest/checkpoint/checkpoint_data.js +38 -0
  95. package/dest/checkpoint/index.d.ts +3 -1
  96. package/dest/checkpoint/index.d.ts.map +1 -1
  97. package/dest/checkpoint/index.js +2 -0
  98. package/dest/checkpoint/published_checkpoint.d.ts +17 -2
  99. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  100. package/dest/checkpoint/published_checkpoint.js +1 -2
  101. package/dest/checkpoint/validate.d.ts +36 -0
  102. package/dest/checkpoint/validate.d.ts.map +1 -0
  103. package/dest/checkpoint/validate.js +120 -0
  104. package/dest/config/chain-config.d.ts +2 -2
  105. package/dest/config/chain-config.d.ts.map +1 -1
  106. package/dest/config/chain-config.js +9 -3
  107. package/dest/config/index.d.ts +3 -1
  108. package/dest/config/index.d.ts.map +1 -1
  109. package/dest/config/index.js +2 -0
  110. package/dest/config/pipelining-config.d.ts +19 -0
  111. package/dest/config/pipelining-config.d.ts.map +1 -0
  112. package/dest/config/pipelining-config.js +18 -0
  113. package/dest/config/sequencer-config.d.ts +14 -0
  114. package/dest/config/sequencer-config.d.ts.map +1 -0
  115. package/dest/config/sequencer-config.js +38 -0
  116. package/dest/contract/contract_address.d.ts +3 -3
  117. package/dest/contract/contract_address.js +7 -7
  118. package/dest/contract/contract_class.d.ts +2 -3
  119. package/dest/contract/contract_class.d.ts.map +1 -1
  120. package/dest/contract/contract_class_id.d.ts +3 -3
  121. package/dest/contract/contract_class_id.d.ts.map +1 -1
  122. package/dest/contract/contract_class_id.js +7 -6
  123. package/dest/contract/index.d.ts +1 -3
  124. package/dest/contract/index.d.ts.map +1 -1
  125. package/dest/contract/index.js +0 -2
  126. package/dest/contract/interfaces/contract_class.d.ts +3 -156
  127. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  128. package/dest/contract/interfaces/contract_class.js +1 -28
  129. package/dest/contract/interfaces/node-info.d.ts +3 -1
  130. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  131. package/dest/contract/interfaces/node-info.js +2 -1
  132. package/dest/contract/private_function.d.ts +1 -1
  133. package/dest/contract/private_function.d.ts.map +1 -1
  134. package/dest/contract/private_function.js +4 -6
  135. package/dest/database-version/database_version.d.ts +58 -0
  136. package/dest/database-version/database_version.d.ts.map +1 -0
  137. package/dest/database-version/database_version.js +69 -0
  138. package/dest/database-version/version_manager.d.ts +2 -50
  139. package/dest/database-version/version_manager.d.ts.map +1 -1
  140. package/dest/database-version/version_manager.js +1 -66
  141. package/dest/epoch-helpers/index.d.ts +17 -1
  142. package/dest/epoch-helpers/index.d.ts.map +1 -1
  143. package/dest/epoch-helpers/index.js +22 -2
  144. package/dest/file-store/factory.d.ts +4 -3
  145. package/dest/file-store/factory.d.ts.map +1 -1
  146. package/dest/file-store/factory.js +2 -2
  147. package/dest/file-store/http.d.ts +9 -2
  148. package/dest/file-store/http.d.ts.map +1 -1
  149. package/dest/file-store/http.js +20 -9
  150. package/dest/file-store/index.d.ts +2 -1
  151. package/dest/file-store/index.d.ts.map +1 -1
  152. package/dest/file-store/local.d.ts +3 -3
  153. package/dest/file-store/local.d.ts.map +1 -1
  154. package/dest/file-store/local.js +13 -4
  155. package/dest/file-store/s3.d.ts +1 -1
  156. package/dest/file-store/s3.d.ts.map +1 -1
  157. package/dest/file-store/s3.js +11 -3
  158. package/dest/gas/fee_math.d.ts +49 -0
  159. package/dest/gas/fee_math.d.ts.map +1 -0
  160. package/dest/gas/fee_math.js +80 -0
  161. package/dest/gas/gas_fees.d.ts +5 -1
  162. package/dest/gas/gas_fees.d.ts.map +1 -1
  163. package/dest/gas/gas_fees.js +13 -1
  164. package/dest/gas/gas_settings.d.ts +40 -3
  165. package/dest/gas/gas_settings.d.ts.map +1 -1
  166. package/dest/gas/gas_settings.js +50 -6
  167. package/dest/gas/index.d.ts +2 -1
  168. package/dest/gas/index.d.ts.map +1 -1
  169. package/dest/gas/index.js +1 -0
  170. package/dest/ha-signing/config.d.ts +136 -0
  171. package/dest/ha-signing/config.d.ts.map +1 -0
  172. package/dest/ha-signing/config.js +98 -0
  173. package/dest/ha-signing/index.d.ts +4 -0
  174. package/dest/ha-signing/index.d.ts.map +1 -0
  175. package/dest/ha-signing/index.js +3 -0
  176. package/dest/ha-signing/local_config.d.ts +63 -0
  177. package/dest/ha-signing/local_config.d.ts.map +1 -0
  178. package/dest/ha-signing/local_config.js +24 -0
  179. package/dest/ha-signing/types.d.ts +90 -0
  180. package/dest/ha-signing/types.d.ts.map +1 -0
  181. package/dest/ha-signing/types.js +39 -0
  182. package/dest/hash/hash.d.ts +35 -1
  183. package/dest/hash/hash.d.ts.map +1 -1
  184. package/dest/hash/hash.js +77 -10
  185. package/dest/hash/map_slot.d.ts +1 -1
  186. package/dest/hash/map_slot.d.ts.map +1 -1
  187. package/dest/hash/map_slot.js +4 -3
  188. package/dest/interfaces/allowed_element.d.ts +26 -20
  189. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  190. package/dest/interfaces/allowed_element.js +8 -8
  191. package/dest/interfaces/archiver.d.ts +11 -1
  192. package/dest/interfaces/archiver.d.ts.map +1 -1
  193. package/dest/interfaces/archiver.js +21 -6
  194. package/dest/interfaces/aztec-node-admin.d.ts +142 -48
  195. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  196. package/dest/interfaces/aztec-node-admin.js +17 -8
  197. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  198. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  199. package/dest/interfaces/aztec-node-debug.js +18 -0
  200. package/dest/interfaces/aztec-node.d.ts +85 -101
  201. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  202. package/dest/interfaces/aztec-node.js +25 -22
  203. package/dest/interfaces/block-builder.d.ts +44 -11
  204. package/dest/interfaces/block-builder.d.ts.map +1 -1
  205. package/dest/interfaces/block-builder.js +16 -2
  206. package/dest/interfaces/block_response.d.ts +156 -0
  207. package/dest/interfaces/block_response.d.ts.map +1 -0
  208. package/dest/interfaces/block_response.js +24 -0
  209. package/dest/interfaces/chain_tips.d.ts +304 -0
  210. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  211. package/dest/interfaces/chain_tips.js +11 -0
  212. package/dest/interfaces/checkpoint_parameter.d.ts +27 -0
  213. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  214. package/dest/interfaces/checkpoint_parameter.js +20 -0
  215. package/dest/interfaces/checkpoint_response.d.ts +312 -0
  216. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  217. package/dest/interfaces/checkpoint_response.js +26 -0
  218. package/dest/interfaces/client.d.ts +7 -1
  219. package/dest/interfaces/client.d.ts.map +1 -1
  220. package/dest/interfaces/client.js +6 -0
  221. package/dest/interfaces/configs.d.ts +87 -32
  222. package/dest/interfaces/configs.d.ts.map +1 -1
  223. package/dest/interfaces/configs.js +12 -3
  224. package/dest/interfaces/get_logs_response.d.ts +14 -7
  225. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  226. package/dest/interfaces/l1_publish_info.d.ts +43 -0
  227. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  228. package/dest/interfaces/l1_publish_info.js +26 -0
  229. package/dest/interfaces/l2_logs_source.d.ts +5 -3
  230. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  231. package/dest/interfaces/merkle_tree_operations.d.ts +13 -22
  232. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  233. package/dest/interfaces/p2p.d.ts +4 -9
  234. package/dest/interfaces/p2p.d.ts.map +1 -1
  235. package/dest/interfaces/prover-broker.d.ts +16 -1
  236. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  237. package/dest/interfaces/prover-broker.js +4 -1
  238. package/dest/interfaces/prover-client.d.ts +11 -1
  239. package/dest/interfaces/prover-client.d.ts.map +1 -1
  240. package/dest/interfaces/prover-client.js +12 -4
  241. package/dest/interfaces/proving-job.d.ts +202 -202
  242. package/dest/interfaces/server.d.ts +6 -1
  243. package/dest/interfaces/server.d.ts.map +1 -1
  244. package/dest/interfaces/server.js +5 -0
  245. package/dest/interfaces/slasher.d.ts +9 -10
  246. package/dest/interfaces/slasher.d.ts.map +1 -1
  247. package/dest/interfaces/slasher.js +2 -2
  248. package/dest/interfaces/validator.d.ts +173 -64
  249. package/dest/interfaces/validator.d.ts.map +1 -1
  250. package/dest/interfaces/validator.js +13 -5
  251. package/dest/interfaces/world_state.d.ts +5 -4
  252. package/dest/interfaces/world_state.d.ts.map +1 -1
  253. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  254. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  255. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  256. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  257. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  258. package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
  259. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  260. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  261. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  262. package/dest/kernel/hints/index.d.ts +2 -2
  263. package/dest/kernel/hints/index.js +2 -2
  264. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  265. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  266. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  267. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  268. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  269. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  270. package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
  271. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  272. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  273. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  274. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  275. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  276. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
  277. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  278. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  279. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -3
  280. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  281. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  282. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  283. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  284. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  285. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
  286. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  287. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  288. package/dest/kernel/private_validation_requests.d.ts +3 -3
  289. package/dest/kernel/private_validation_requests.js +9 -9
  290. package/dest/keys/derivation.d.ts +3 -3
  291. package/dest/keys/derivation.js +15 -15
  292. package/dest/keys/key_types.d.ts +3 -3
  293. package/dest/keys/key_types.d.ts.map +1 -1
  294. package/dest/keys/public_keys.js +2 -2
  295. package/dest/keys/utils.d.ts +1 -1
  296. package/dest/keys/utils.d.ts.map +1 -1
  297. package/dest/keys/utils.js +8 -4
  298. package/dest/kv-store/config.d.ts +17 -0
  299. package/dest/kv-store/config.d.ts.map +1 -0
  300. package/dest/kv-store/config.js +26 -0
  301. package/dest/kv-store/index.d.ts +2 -0
  302. package/dest/kv-store/index.d.ts.map +1 -0
  303. package/dest/kv-store/index.js +1 -0
  304. package/dest/l1-contracts/index.d.ts +2 -2
  305. package/dest/l1-contracts/index.d.ts.map +1 -1
  306. package/dest/l1-contracts/index.js +1 -1
  307. package/dest/logs/debug_log_store.d.ts +30 -0
  308. package/dest/logs/debug_log_store.d.ts.map +1 -0
  309. package/dest/logs/debug_log_store.js +30 -0
  310. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  311. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  312. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +35 -20
  313. package/dest/logs/extended_public_log.d.ts +12 -6
  314. package/dest/logs/extended_public_log.d.ts.map +1 -1
  315. package/dest/logs/index.d.ts +4 -2
  316. package/dest/logs/index.d.ts.map +1 -1
  317. package/dest/logs/index.js +3 -1
  318. package/dest/logs/log_filter.d.ts +4 -1
  319. package/dest/logs/log_filter.d.ts.map +1 -1
  320. package/dest/logs/log_filter.js +2 -1
  321. package/dest/logs/log_id.d.ts +13 -10
  322. package/dest/logs/log_id.d.ts.map +1 -1
  323. package/dest/logs/log_id.js +16 -14
  324. package/dest/logs/message_context.d.ts +4 -7
  325. package/dest/logs/message_context.d.ts.map +1 -1
  326. package/dest/logs/message_context.js +23 -9
  327. package/dest/logs/pending_tagged_log.d.ts +2 -3
  328. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  329. package/dest/logs/pending_tagged_log.js +2 -2
  330. package/dest/logs/pre_tag.d.ts +16 -11
  331. package/dest/logs/pre_tag.d.ts.map +1 -1
  332. package/dest/logs/pre_tag.js +2 -2
  333. package/dest/logs/private_log.d.ts +2 -2
  334. package/dest/logs/private_log.d.ts.map +1 -1
  335. package/dest/logs/public_log.d.ts +4 -3
  336. package/dest/logs/public_log.d.ts.map +1 -1
  337. package/dest/logs/public_log.js +2 -1
  338. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  339. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  340. package/dest/logs/shared_secret_derivation.js +15 -9
  341. package/dest/logs/siloed_tag.d.ts +12 -9
  342. package/dest/logs/siloed_tag.d.ts.map +1 -1
  343. package/dest/logs/siloed_tag.js +16 -6
  344. package/dest/logs/tag.d.ts +5 -6
  345. package/dest/logs/tag.d.ts.map +1 -1
  346. package/dest/logs/tag.js +5 -1
  347. package/dest/logs/tagging_index_range.d.ts +40 -0
  348. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  349. package/dest/logs/tagging_index_range.js +8 -0
  350. package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
  351. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  352. package/dest/logs/tx_scoped_l2_log.js +7 -0
  353. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  354. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  355. package/dest/messaging/l1_to_l2_message.js +11 -13
  356. package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
  357. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  358. package/dest/messaging/l2_to_l1_membership.d.ts +34 -8
  359. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  360. package/dest/messaging/l2_to_l1_membership.js +72 -29
  361. package/dest/noir/index.d.ts +3 -3
  362. package/dest/noir/index.d.ts.map +1 -1
  363. package/dest/note/index.d.ts +1 -2
  364. package/dest/note/index.d.ts.map +1 -1
  365. package/dest/note/index.js +0 -1
  366. package/dest/note/note_dao.d.ts +1 -1
  367. package/dest/note/note_dao.d.ts.map +1 -1
  368. package/dest/note/note_dao.js +1 -4
  369. package/dest/p2p/attestation_utils.d.ts +11 -1
  370. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  371. package/dest/p2p/attestation_utils.js +45 -0
  372. package/dest/p2p/block_proposal.d.ts +23 -15
  373. package/dest/p2p/block_proposal.d.ts.map +1 -1
  374. package/dest/p2p/block_proposal.js +46 -43
  375. package/dest/p2p/checkpoint_attestation.d.ts +11 -8
  376. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  377. package/dest/p2p/checkpoint_attestation.js +17 -24
  378. package/dest/p2p/checkpoint_proposal.d.ts +35 -22
  379. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  380. package/dest/p2p/checkpoint_proposal.js +52 -65
  381. package/dest/p2p/client_type.d.ts +2 -5
  382. package/dest/p2p/client_type.d.ts.map +1 -1
  383. package/dest/p2p/client_type.js +0 -7
  384. package/dest/p2p/consensus_payload.d.ts +27 -7
  385. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  386. package/dest/p2p/consensus_payload.js +40 -21
  387. package/dest/p2p/constants.d.ts +3 -1
  388. package/dest/p2p/constants.d.ts.map +1 -1
  389. package/dest/p2p/constants.js +1 -0
  390. package/dest/p2p/gossipable.d.ts +4 -4
  391. package/dest/p2p/gossipable.d.ts.map +1 -1
  392. package/dest/p2p/index.d.ts +1 -2
  393. package/dest/p2p/index.d.ts.map +1 -1
  394. package/dest/p2p/index.js +0 -1
  395. package/dest/p2p/peer_error.d.ts +3 -1
  396. package/dest/p2p/peer_error.d.ts.map +1 -1
  397. package/dest/p2p/peer_error.js +5 -0
  398. package/dest/p2p/signature_utils.d.ts +28 -19
  399. package/dest/p2p/signature_utils.d.ts.map +1 -1
  400. package/dest/p2p/signature_utils.js +118 -21
  401. package/dest/p2p/signed_txs.d.ts +15 -13
  402. package/dest/p2p/signed_txs.d.ts.map +1 -1
  403. package/dest/p2p/signed_txs.js +26 -24
  404. package/dest/p2p/topic_type.d.ts +3 -4
  405. package/dest/p2p/topic_type.d.ts.map +1 -1
  406. package/dest/p2p/topic_type.js +7 -24
  407. package/dest/parity/parity_base_private_inputs.d.ts +7 -3
  408. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  409. package/dest/parity/parity_base_private_inputs.js +7 -5
  410. package/dest/parity/parity_public_inputs.d.ts +7 -3
  411. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  412. package/dest/parity/parity_public_inputs.js +6 -3
  413. package/dest/proofs/chonk_proof.d.ts +46 -2
  414. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  415. package/dest/proofs/chonk_proof.js +85 -10
  416. package/dest/rollup/block_headers_hash.d.ts +1 -1
  417. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  418. package/dest/rollup/block_headers_hash.js +8 -2
  419. package/dest/rollup/checkpoint_header.d.ts +2 -2
  420. package/dest/rollup/checkpoint_header.js +2 -2
  421. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -6
  422. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  423. package/dest/rollup/checkpoint_rollup_public_inputs.js +2 -2
  424. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +2 -2
  425. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  426. package/dest/rollup/root_rollup_public_inputs.d.ts +6 -6
  427. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  428. package/dest/rollup/root_rollup_public_inputs.js +3 -3
  429. package/dest/slashing/helpers.d.ts +2 -2
  430. package/dest/slashing/helpers.d.ts.map +1 -1
  431. package/dest/slashing/helpers.js +6 -0
  432. package/dest/slashing/index.d.ts +2 -3
  433. package/dest/slashing/index.d.ts.map +1 -1
  434. package/dest/slashing/index.js +1 -2
  435. package/dest/slashing/serialization.d.ts +2 -6
  436. package/dest/slashing/serialization.d.ts.map +1 -1
  437. package/dest/slashing/serialization.js +0 -60
  438. package/dest/slashing/types.d.ts +10 -92
  439. package/dest/slashing/types.d.ts.map +1 -1
  440. package/dest/slashing/types.js +13 -15
  441. package/dest/slashing/{tally.d.ts → votes.d.ts} +8 -2
  442. package/dest/slashing/votes.d.ts.map +1 -0
  443. package/dest/slashing/{tally.js → votes.js} +35 -3
  444. package/dest/stats/stats.d.ts +1 -3
  445. package/dest/stats/stats.d.ts.map +1 -1
  446. package/dest/tests/factories.d.ts +5 -10
  447. package/dest/tests/factories.d.ts.map +1 -1
  448. package/dest/tests/factories.js +37 -56
  449. package/dest/tests/mocks.d.ts +14 -3
  450. package/dest/tests/mocks.d.ts.map +1 -1
  451. package/dest/tests/mocks.js +65 -46
  452. package/dest/timetable/index.d.ts +87 -0
  453. package/dest/timetable/index.d.ts.map +1 -0
  454. package/dest/timetable/index.js +243 -0
  455. package/dest/trees/nullifier_leaf.d.ts +2 -1
  456. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  457. package/dest/trees/nullifier_leaf.js +3 -0
  458. package/dest/trees/public_data_leaf.d.ts +2 -1
  459. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  460. package/dest/trees/public_data_leaf.js +7 -6
  461. package/dest/tx/block_header.d.ts +4 -2
  462. package/dest/tx/block_header.d.ts.map +1 -1
  463. package/dest/tx/block_header.js +7 -3
  464. package/dest/tx/capsule.d.ts +6 -2
  465. package/dest/tx/capsule.d.ts.map +1 -1
  466. package/dest/tx/capsule.js +9 -3
  467. package/dest/tx/fee_provider.d.ts +10 -0
  468. package/dest/tx/fee_provider.d.ts.map +1 -0
  469. package/dest/tx/fee_provider.js +1 -0
  470. package/dest/tx/global_variable_builder.d.ts +3 -4
  471. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  472. package/dest/tx/global_variables.d.ts +4 -4
  473. package/dest/tx/global_variables.d.ts.map +1 -1
  474. package/dest/tx/in_tx.d.ts +2 -2
  475. package/dest/tx/index.d.ts +2 -1
  476. package/dest/tx/index.d.ts.map +1 -1
  477. package/dest/tx/index.js +1 -0
  478. package/dest/tx/indexed_tx_effect.d.ts +2 -2
  479. package/dest/tx/indexed_tx_effect.js +1 -1
  480. package/dest/tx/private_execution_result.d.ts +6 -6
  481. package/dest/tx/private_execution_result.d.ts.map +1 -1
  482. package/dest/tx/private_execution_result.js +6 -6
  483. package/dest/tx/profiling.d.ts +17 -5
  484. package/dest/tx/profiling.d.ts.map +1 -1
  485. package/dest/tx/profiling.js +19 -9
  486. package/dest/tx/protocol_contracts.d.ts +1 -1
  487. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  488. package/dest/tx/protocol_contracts.js +2 -2
  489. package/dest/tx/public_simulation_output.d.ts +4 -2
  490. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  491. package/dest/tx/public_simulation_output.js +7 -3
  492. package/dest/tx/simulated_tx.d.ts +116 -5
  493. package/dest/tx/simulated_tx.d.ts.map +1 -1
  494. package/dest/tx/simulated_tx.js +7 -4
  495. package/dest/tx/tx.d.ts +8 -7
  496. package/dest/tx/tx.d.ts.map +1 -1
  497. package/dest/tx/tx.js +18 -6
  498. package/dest/tx/tx_receipt.d.ts +29 -6
  499. package/dest/tx/tx_receipt.d.ts.map +1 -1
  500. package/dest/tx/tx_receipt.js +23 -19
  501. package/dest/tx/tx_request.js +2 -2
  502. package/dest/tx/validator/empty_validator.d.ts +2 -2
  503. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  504. package/dest/tx/validator/error_texts.d.ts +10 -2
  505. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  506. package/dest/tx/validator/error_texts.js +11 -1
  507. package/dest/tx/validator/tx_validator.d.ts +2 -2
  508. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  509. package/dest/types/shared.d.ts +1 -10
  510. package/dest/types/shared.d.ts.map +1 -1
  511. package/dest/types/shared.js +0 -9
  512. package/dest/update-checker/index.d.ts +3 -2
  513. package/dest/update-checker/index.d.ts.map +1 -1
  514. package/dest/update-checker/index.js +2 -1
  515. package/dest/update-checker/package_version.d.ts +3 -0
  516. package/dest/update-checker/package_version.d.ts.map +1 -0
  517. package/dest/update-checker/package_version.js +24 -0
  518. package/dest/update-checker/version_checker.d.ts +25 -0
  519. package/dest/update-checker/version_checker.d.ts.map +1 -0
  520. package/dest/update-checker/version_checker.js +50 -0
  521. package/dest/validators/errors.d.ts +6 -1
  522. package/dest/validators/errors.d.ts.map +1 -1
  523. package/dest/validators/errors.js +7 -0
  524. package/dest/validators/schemas.d.ts +30 -30
  525. package/dest/validators/schemas.d.ts.map +1 -1
  526. package/dest/validators/schemas.js +4 -3
  527. package/dest/validators/types.d.ts +3 -3
  528. package/dest/validators/types.d.ts.map +1 -1
  529. package/dest/versioning/versioning.d.ts +4 -2
  530. package/dest/versioning/versioning.d.ts.map +1 -1
  531. package/dest/versioning/versioning.js +4 -1
  532. package/dest/vks/verification_key.d.ts +2 -137
  533. package/dest/vks/verification_key.d.ts.map +1 -1
  534. package/dest/vks/verification_key.js +5 -126
  535. package/dest/world-state/genesis_data.d.ts +11 -0
  536. package/dest/world-state/genesis_data.d.ts.map +1 -0
  537. package/dest/world-state/genesis_data.js +4 -0
  538. package/dest/world-state/index.d.ts +2 -1
  539. package/dest/world-state/index.d.ts.map +1 -1
  540. package/dest/world-state/index.js +1 -0
  541. package/dest/world-state/world_state_revision.d.ts +8 -1
  542. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  543. package/dest/world-state/world_state_revision.js +7 -1
  544. package/package.json +26 -13
  545. package/src/abi/abi.ts +25 -2
  546. package/src/abi/authorization_selector.ts +2 -8
  547. package/src/abi/buffer.ts +25 -4
  548. package/src/abi/decoder.ts +36 -82
  549. package/src/abi/encoder.ts +85 -6
  550. package/src/abi/event_metadata_definition.ts +2 -0
  551. package/src/abi/event_selector.ts +2 -8
  552. package/src/abi/function_call.ts +25 -3
  553. package/src/abi/function_selector.ts +4 -13
  554. package/src/abi/function_signature_decoder.ts +77 -0
  555. package/src/abi/index.ts +1 -0
  556. package/src/abi/note_selector.ts +3 -12
  557. package/src/abi/selector.ts +1 -1
  558. package/src/abi/utils.ts +25 -0
  559. package/src/auth_witness/auth_witness.ts +3 -3
  560. package/src/avm/revert_code.ts +26 -25
  561. package/src/aztec-address/index.ts +4 -10
  562. package/src/block/attestation_info.ts +11 -11
  563. package/src/block/block_data.ts +42 -0
  564. package/src/block/block_hash.ts +31 -49
  565. package/src/block/block_parameter.ts +35 -2
  566. package/src/block/in_block.ts +2 -2
  567. package/src/block/index.ts +1 -0
  568. package/src/block/l2_block.ts +16 -4
  569. package/src/block/l2_block_info.ts +8 -6
  570. package/src/block/l2_block_source.ts +92 -12
  571. package/src/block/l2_block_stream/interfaces.ts +6 -2
  572. package/src/block/l2_block_stream/l2_block_stream.ts +21 -0
  573. package/src/block/l2_block_stream/l2_tips_store_base.ts +25 -13
  574. package/src/block/proposal/attestations_and_signers.ts +32 -17
  575. package/src/block/test/l2_tips_store_test_suite.ts +9 -2
  576. package/src/checkpoint/checkpoint.ts +54 -17
  577. package/src/checkpoint/checkpoint_data.ts +91 -0
  578. package/src/checkpoint/index.ts +2 -0
  579. package/src/checkpoint/published_checkpoint.ts +3 -1
  580. package/src/checkpoint/validate.ts +230 -0
  581. package/src/config/chain-config.ts +9 -4
  582. package/src/config/index.ts +2 -0
  583. package/src/config/pipelining-config.ts +31 -0
  584. package/src/config/sequencer-config.ts +65 -0
  585. package/src/contract/contract_address.ts +7 -7
  586. package/src/contract/contract_class.ts +3 -3
  587. package/src/contract/contract_class_id.ts +7 -6
  588. package/src/contract/index.ts +0 -2
  589. package/src/contract/interfaces/contract_class.ts +2 -82
  590. package/src/contract/interfaces/node-info.ts +3 -0
  591. package/src/contract/private_function.ts +5 -3
  592. package/src/database-version/database_version.ts +87 -0
  593. package/src/database-version/version_manager.ts +1 -77
  594. package/src/epoch-helpers/index.ts +39 -0
  595. package/src/file-store/factory.ts +13 -4
  596. package/src/file-store/http.ts +29 -10
  597. package/src/file-store/index.ts +1 -0
  598. package/src/file-store/local.ts +15 -5
  599. package/src/file-store/s3.ts +12 -3
  600. package/src/gas/README.md +154 -0
  601. package/src/gas/fee_math.ts +120 -0
  602. package/src/gas/gas_fees.ts +20 -1
  603. package/src/gas/gas_settings.ts +65 -12
  604. package/src/gas/index.ts +1 -0
  605. package/src/ha-signing/config.ts +159 -0
  606. package/src/ha-signing/index.ts +29 -0
  607. package/src/ha-signing/local_config.ts +46 -0
  608. package/src/ha-signing/types.ts +126 -0
  609. package/src/hash/hash.ts +75 -10
  610. package/src/hash/map_slot.ts +3 -2
  611. package/src/interfaces/allowed_element.ts +29 -9
  612. package/src/interfaces/archiver.ts +32 -5
  613. package/src/interfaces/aztec-node-admin.ts +34 -10
  614. package/src/interfaces/aztec-node-debug.ts +40 -0
  615. package/src/interfaces/aztec-node.ts +162 -169
  616. package/src/interfaces/block-builder.ts +68 -11
  617. package/src/interfaces/block_response.ts +79 -0
  618. package/src/interfaces/chain_tips.ts +24 -0
  619. package/src/interfaces/checkpoint_parameter.ts +22 -0
  620. package/src/interfaces/checkpoint_response.ts +84 -0
  621. package/src/interfaces/client.ts +6 -0
  622. package/src/interfaces/configs.ts +43 -8
  623. package/src/interfaces/l1_publish_info.ts +40 -0
  624. package/src/interfaces/l2_logs_source.ts +4 -1
  625. package/src/interfaces/merkle_tree_operations.ts +12 -21
  626. package/src/interfaces/p2p.ts +3 -14
  627. package/src/interfaces/prover-broker.ts +22 -0
  628. package/src/interfaces/prover-client.ts +17 -5
  629. package/src/interfaces/server.ts +5 -0
  630. package/src/interfaces/slasher.ts +4 -6
  631. package/src/interfaces/validator.ts +77 -36
  632. package/src/interfaces/world_state.ts +4 -3
  633. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  634. package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
  635. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  636. package/src/kernel/hints/index.ts +2 -2
  637. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  638. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  639. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  640. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  641. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  642. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  643. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  644. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  645. package/src/kernel/private_validation_requests.ts +8 -8
  646. package/src/keys/derivation.ts +15 -15
  647. package/src/keys/key_types.ts +6 -2
  648. package/src/keys/public_keys.ts +2 -2
  649. package/src/keys/utils.ts +8 -4
  650. package/src/kv-store/config.ts +36 -0
  651. package/src/kv-store/index.ts +1 -0
  652. package/src/l1-contracts/index.ts +1 -1
  653. package/src/logs/debug_log_store.ts +54 -0
  654. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +41 -22
  655. package/src/logs/index.ts +3 -1
  656. package/src/logs/log_filter.ts +5 -0
  657. package/src/logs/log_id.ts +16 -13
  658. package/src/logs/message_context.ts +17 -7
  659. package/src/logs/pending_tagged_log.ts +1 -3
  660. package/src/logs/pre_tag.ts +5 -5
  661. package/src/logs/public_log.ts +4 -2
  662. package/src/logs/shared_secret_derivation.ts +21 -10
  663. package/src/logs/siloed_tag.ts +23 -13
  664. package/src/logs/tag.ts +9 -9
  665. package/src/logs/tagging_index_range.ts +24 -0
  666. package/src/logs/tx_scoped_l2_log.ts +16 -0
  667. package/src/messaging/l1_to_l2_message.ts +12 -9
  668. package/src/messaging/l1_to_l2_message_source.ts +3 -1
  669. package/src/messaging/l2_to_l1_membership.ts +101 -36
  670. package/src/noir/index.ts +2 -2
  671. package/src/note/index.ts +0 -1
  672. package/src/note/note_dao.ts +1 -4
  673. package/src/p2p/attestation_utils.ts +56 -0
  674. package/src/p2p/block_proposal.ts +97 -39
  675. package/src/p2p/checkpoint_attestation.ts +26 -30
  676. package/src/p2p/checkpoint_proposal.ts +119 -84
  677. package/src/p2p/client_type.ts +0 -6
  678. package/src/p2p/consensus_payload.ts +59 -24
  679. package/src/p2p/constants.ts +3 -0
  680. package/src/p2p/gossipable.ts +4 -4
  681. package/src/p2p/index.ts +0 -1
  682. package/src/p2p/peer_error.ts +7 -0
  683. package/src/p2p/signature_utils.ts +110 -25
  684. package/src/p2p/signed_txs.ts +46 -28
  685. package/src/p2p/topic_type.ts +8 -15
  686. package/src/parity/parity_base_private_inputs.ts +10 -4
  687. package/src/parity/parity_public_inputs.ts +9 -2
  688. package/src/proofs/chonk_proof.ts +91 -5
  689. package/src/rollup/block_headers_hash.ts +11 -2
  690. package/src/rollup/checkpoint_header.ts +2 -2
  691. package/src/rollup/checkpoint_rollup_public_inputs.ts +5 -5
  692. package/src/rollup/root_rollup_public_inputs.ts +7 -7
  693. package/src/slashing/helpers.ts +8 -0
  694. package/src/slashing/index.ts +1 -2
  695. package/src/slashing/serialization.ts +1 -81
  696. package/src/slashing/types.ts +17 -35
  697. package/src/slashing/{tally.ts → votes.ts} +41 -2
  698. package/src/stats/stats.ts +0 -2
  699. package/src/tests/factories.ts +42 -68
  700. package/src/tests/mocks.ts +103 -53
  701. package/src/timetable/index.ts +361 -0
  702. package/src/trees/nullifier_leaf.ts +4 -0
  703. package/src/trees/public_data_leaf.ts +11 -5
  704. package/src/tx/block_header.ts +11 -5
  705. package/src/tx/capsule.ts +10 -2
  706. package/src/tx/fee_provider.ts +10 -0
  707. package/src/tx/global_variable_builder.ts +2 -3
  708. package/src/tx/global_variables.ts +3 -3
  709. package/src/tx/index.ts +1 -0
  710. package/src/tx/indexed_tx_effect.ts +1 -1
  711. package/src/tx/private_execution_result.ts +5 -5
  712. package/src/tx/profiling.ts +18 -9
  713. package/src/tx/protocol_contracts.ts +2 -2
  714. package/src/tx/public_simulation_output.ts +4 -0
  715. package/src/tx/simulated_tx.ts +14 -3
  716. package/src/tx/tx.ts +22 -13
  717. package/src/tx/tx_receipt.ts +28 -16
  718. package/src/tx/tx_request.ts +2 -2
  719. package/src/tx/validator/empty_validator.ts +1 -1
  720. package/src/tx/validator/error_texts.ts +13 -1
  721. package/src/tx/validator/tx_validator.ts +1 -1
  722. package/src/types/shared.ts +0 -10
  723. package/src/update-checker/index.ts +2 -1
  724. package/src/update-checker/package_version.ts +30 -0
  725. package/src/update-checker/version_checker.ts +65 -0
  726. package/src/validators/errors.ts +9 -0
  727. package/src/validators/schemas.ts +8 -1
  728. package/src/validators/types.ts +5 -4
  729. package/src/versioning/versioning.ts +4 -1
  730. package/src/vks/verification_key.ts +5 -184
  731. package/src/world-state/genesis_data.ts +15 -0
  732. package/src/world-state/index.ts +1 -0
  733. package/src/world-state/world_state_revision.ts +9 -1
  734. package/dest/abi/mocked_keys.d.ts +0 -2
  735. package/dest/abi/mocked_keys.d.ts.map +0 -1
  736. package/dest/abi/mocked_keys.js +0 -1
  737. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  738. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  739. package/dest/contract/private_function_membership_proof.js +0 -124
  740. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  741. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  742. package/dest/contract/utility_function_membership_proof.js +0 -87
  743. package/dest/database-version/index.d.ts +0 -2
  744. package/dest/database-version/index.d.ts.map +0 -1
  745. package/dest/database-version/index.js +0 -1
  746. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  747. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  748. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  749. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  750. package/dest/l1-contracts/slash_factory.js +0 -157
  751. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  752. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  753. package/dest/note/notes_filter.d.ts +0 -27
  754. package/dest/note/notes_filter.d.ts.map +0 -1
  755. package/dest/note/notes_filter.js +0 -11
  756. package/dest/slashing/empire.d.ts +0 -31
  757. package/dest/slashing/empire.d.ts.map +0 -1
  758. package/dest/slashing/empire.js +0 -85
  759. package/dest/slashing/tally.d.ts.map +0 -1
  760. package/dest/update-checker/update-checker.d.ts +0 -49
  761. package/dest/update-checker/update-checker.d.ts.map +0 -1
  762. package/dest/update-checker/update-checker.js +0 -130
  763. package/src/abi/mocked_keys.ts +0 -2
  764. package/src/contract/private_function_membership_proof.ts +0 -167
  765. package/src/contract/utility_function_membership_proof.ts +0 -118
  766. package/src/database-version/index.ts +0 -1
  767. package/src/l1-contracts/slash_factory.ts +0 -179
  768. package/src/note/notes_filter.ts +0 -38
  769. package/src/slashing/empire.ts +0 -102
  770. package/src/update-checker/update-checker.ts +0 -166
@@ -4,26 +4,37 @@ import { hexToBuffer } from '@aztec/foundation/string';
4
4
  import { encodeAbiParameters, parseAbiParameters } from 'viem';
5
5
  import { z } from 'zod';
6
6
 
7
- import type { Signable, SignatureDomainSeparator } from '../../p2p/signature_utils.js';
7
+ import {
8
+ type CoordinationSignatureContext,
9
+ type CoordinationSignatureType,
10
+ type Signable,
11
+ coordinationSignatureContextSchema,
12
+ } from '../../p2p/signature_utils.js';
8
13
  import { CommitteeAttestation, EthAddress } from './committee_attestation.js';
9
14
 
10
15
  export class CommitteeAttestationsAndSigners implements Signable {
11
- constructor(public attestations: CommitteeAttestation[]) {}
16
+ readonly primaryType: CoordinationSignatureType = 'AttestationsAndSigners';
17
+
18
+ constructor(
19
+ public attestations: CommitteeAttestation[],
20
+ public readonly signatureContext: CoordinationSignatureContext,
21
+ ) {}
12
22
 
13
23
  static get schema() {
14
24
  return z
15
25
  .object({
16
26
  attestations: CommitteeAttestation.schema.array(),
27
+ signatureContext: coordinationSignatureContextSchema,
17
28
  })
18
- .transform(obj => new CommitteeAttestationsAndSigners(obj.attestations));
29
+ .transform(obj => new CommitteeAttestationsAndSigners(obj.attestations, obj.signatureContext));
19
30
  }
20
31
 
21
- getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer {
22
- const abi = parseAbiParameters('uint8,(bytes,bytes),address[]');
32
+ getPayloadToSign(): Buffer {
33
+ // Matches the L1 abi.encode(attestations, signers) in AttestationLib.sol#getAttestationsAndSignersDigest.
34
+ const abi = parseAbiParameters('(bytes,bytes),address[]');
23
35
  const packed = this.getPackedAttestations();
24
36
 
25
37
  const encodedData = encodeAbiParameters(abi, [
26
- domainSeparator,
27
38
  [packed.signatureIndices, packed.signaturesOrAddresses],
28
39
  this.getSigners().map(s => s.toString()),
29
40
  ]);
@@ -31,8 +42,8 @@ export class CommitteeAttestationsAndSigners implements Signable {
31
42
  return hexToBuffer(encodedData);
32
43
  }
33
44
 
34
- static empty(): CommitteeAttestationsAndSigners {
35
- return new CommitteeAttestationsAndSigners([]);
45
+ static empty(signatureContext: CoordinationSignatureContext): CommitteeAttestationsAndSigners {
46
+ return new CommitteeAttestationsAndSigners([], signatureContext);
36
47
  }
37
48
 
38
49
  toString() {
@@ -53,9 +64,9 @@ export class CommitteeAttestationsAndSigners implements Signable {
53
64
  * @param attestations - Array of committee attestations with addresses and signatures
54
65
  * @returns Packed attestations with bitmap and tightly packed signature/address data
55
66
  */
56
- getPackedAttestations(): ViemCommitteeAttestations {
57
- const length = this.attestations.length;
58
- const attestations = this.attestations.map(a => a.toViem());
67
+ static packAttestations(attestations: CommitteeAttestation[]): ViemCommitteeAttestations {
68
+ const length = attestations.length;
69
+ const viemAttestations = attestations.map(a => a.toViem());
59
70
 
60
71
  // Calculate bitmap size (1 bit per attestation, rounded up to nearest byte)
61
72
  const bitmapSize = Math.ceil(length / 8);
@@ -63,8 +74,8 @@ export class CommitteeAttestationsAndSigners implements Signable {
63
74
 
64
75
  // Calculate total data size needed
65
76
  let totalDataSize = 0;
66
- for (let i = 0; i < length; i++) {
67
- const signature = attestations[i].signature;
77
+ for (const attestation of viemAttestations) {
78
+ const signature = attestation.signature;
68
79
  // Check if signature is empty (v = 0)
69
80
  const isEmpty = signature.v === 0;
70
81
 
@@ -79,8 +90,7 @@ export class CommitteeAttestationsAndSigners implements Signable {
79
90
  let dataIndex = 0;
80
91
 
81
92
  // Pack the data
82
- for (let i = 0; i < length; i++) {
83
- const attestation = attestations[i];
93
+ for (const [i, attestation] of viemAttestations.entries()) {
84
94
  const signature = attestation.signature;
85
95
 
86
96
  // Check if signature is empty
@@ -90,7 +100,7 @@ export class CommitteeAttestationsAndSigners implements Signable {
90
100
  // Set bit in bitmap (bit 7-0 in each byte, left to right)
91
101
  const byteIndex = Math.floor(i / 8);
92
102
  const bitIndex = 7 - (i % 8);
93
- signatureIndices[byteIndex] |= 1 << bitIndex;
103
+ signatureIndices[byteIndex] = (signatureIndices[byteIndex] ?? 0) | (1 << bitIndex);
94
104
 
95
105
  // Pack signature: v + r + s
96
106
  signaturesOrAddresses[dataIndex] = signature.v;
@@ -118,6 +128,10 @@ export class CommitteeAttestationsAndSigners implements Signable {
118
128
  signaturesOrAddresses: `0x${Buffer.from(signaturesOrAddresses).toString('hex')}`,
119
129
  };
120
130
  }
131
+
132
+ getPackedAttestations(): ViemCommitteeAttestations {
133
+ return CommitteeAttestationsAndSigners.packAttestations(this.attestations);
134
+ }
121
135
  }
122
136
 
123
137
  /**
@@ -130,8 +144,9 @@ export class MaliciousCommitteeAttestationsAndSigners extends CommitteeAttestati
130
144
  constructor(
131
145
  attestations: CommitteeAttestation[],
132
146
  private signers: EthAddress[],
147
+ signatureContext: CoordinationSignatureContext,
133
148
  ) {
134
- super(attestations);
149
+ super(attestations, signatureContext);
135
150
  }
136
151
 
137
152
  override getSigners(): EthAddress[] {
@@ -1,4 +1,3 @@
1
- import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/constants';
2
1
  import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
3
2
  import { times } from '@aztec/foundation/collection';
4
3
  import { Fr } from '@aztec/foundation/curves/bn254';
@@ -13,6 +12,7 @@ import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/
13
12
 
14
13
  import { jestExpect as expect } from '@jest/expect';
15
14
 
15
+ import { GENESIS_BLOCK_HEADER_HASH } from '../block_hash.js';
16
16
  import type { L2TipsStore } from '../l2_block_stream/index.js';
17
17
 
18
18
  export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
@@ -67,11 +67,18 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
67
67
  checkpoint: makeCheckpointIdForBlock(blockNumber),
68
68
  });
69
69
 
70
- const makeTips = (proposed: number, proven: number, finalized: number, checkpointed: number = 0) => ({
70
+ const makeTips = (
71
+ proposed: number,
72
+ proven: number,
73
+ finalized: number,
74
+ checkpointed: number = 0,
75
+ proposedCheckpoint: number = 0,
76
+ ) => ({
71
77
  proposed: makeTip(proposed),
72
78
  proven: makeTipId(proven),
73
79
  finalized: makeTipId(finalized),
74
80
  checkpointed: makeTipId(checkpointed),
81
+ proposedCheckpoint: makeTipId(proposedCheckpoint),
75
82
  });
76
83
 
77
84
  const makeCheckpoint = async (checkpointNumber: number, blocks: L2Block[]): Promise<PublishedCheckpoint> => {
@@ -6,9 +6,9 @@ import {
6
6
  IndexWithinCheckpoint,
7
7
  SlotNumber,
8
8
  } from '@aztec/foundation/branded-types';
9
- import { sum } from '@aztec/foundation/collection';
9
+ import { pick, 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';
@@ -17,6 +17,7 @@ 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
 
@@ -32,6 +33,8 @@ export class Checkpoint {
32
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 {
@@ -45,8 +48,12 @@ export class Checkpoint {
45
48
  header: CheckpointHeader.schema,
46
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(L2Block, 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,11 +94,22 @@ 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
- const msgs = this.blocks.map(block => block.body.txEffects.map(txEffect => txEffect.l2ToL1Msgs));
103
+ return Checkpoint.getCheckpointOutHash(this.blocks);
104
+ }
105
+
106
+ /**
107
+ * Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
108
+ * Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
109
+ * checkpoints up to and including this one in the epoch.
110
+ */
111
+ static getCheckpointOutHash(blocks: L2Block[]): Fr {
112
+ const msgs = blocks.map(block => block.body.txEffects.map(txEffect => txEffect.l2ToL1Msgs));
88
113
  return computeCheckpointOutHash(msgs);
89
114
  }
90
115
 
@@ -129,15 +154,19 @@ export class Checkpoint {
129
154
  numBlocks = 1,
130
155
  startBlockNumber = 1,
131
156
  previousArchive,
157
+ feeAssetPriceModifier = 0n,
132
158
  ...options
133
159
  }: {
134
160
  numBlocks?: number;
135
161
  startBlockNumber?: number;
136
162
  previousArchive?: AppendOnlyTreeSnapshot;
163
+ feeAssetPriceModifier?: bigint;
164
+ archive?: AppendOnlyTreeSnapshot;
137
165
  } & Partial<Parameters<typeof CheckpointHeader.random>[0]> &
138
166
  Partial<Parameters<typeof L2Block.random>[1]> = {},
139
167
  ) {
140
- const header = CheckpointHeader.random(options);
168
+ const headerOptions = previousArchive ? { lastArchiveRoot: previousArchive.root, ...options } : options;
169
+ const header = CheckpointHeader.random(headerOptions);
141
170
 
142
171
  // Create blocks sequentially to chain archive roots properly.
143
172
  // Each block's header.lastArchive must equal the previous block's archive.
@@ -145,14 +174,22 @@ export class Checkpoint {
145
174
  let lastArchive = previousArchive;
146
175
  for (let i = 0; i < numBlocks; i++) {
147
176
  const block = await L2Block.random(BlockNumber(startBlockNumber + i), {
177
+ checkpointNumber,
148
178
  indexWithinCheckpoint: IndexWithinCheckpoint(i),
149
179
  ...options,
150
180
  ...(lastArchive ? { lastArchive } : {}),
181
+ ...pick(header, 'slotNumber', 'timestamp', 'coinbase', 'feeRecipient', 'gasFees'),
151
182
  });
152
183
  lastArchive = block.archive;
153
184
  blocks.push(block);
154
185
  }
155
186
 
156
- return new Checkpoint(AppendOnlyTreeSnapshot.random(), header, blocks, checkpointNumber);
187
+ return new Checkpoint(
188
+ options.archive ?? AppendOnlyTreeSnapshot.random(),
189
+ header,
190
+ blocks,
191
+ checkpointNumber,
192
+ feeAssetPriceModifier,
193
+ );
157
194
  }
158
195
  }
@@ -0,0 +1,91 @@
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
+ /** Base type for checkpoint data */
18
+ export type CommonCheckpointData = {
19
+ checkpointNumber: CheckpointNumber;
20
+ header: CheckpointHeader;
21
+ startBlock: BlockNumber;
22
+ blockCount: number;
23
+ };
24
+
25
+ /** Data stored with checkpoint data after publishing on l1 */
26
+ export type L1EnrichedCheckpointData = {
27
+ attestations: CommitteeAttestation[];
28
+ l1: L1PublishedData;
29
+ };
30
+
31
+ /** Data stored alongside checkpoint data in storage */
32
+ export type StorageEnrichedCheckpointData = {
33
+ archive: AppendOnlyTreeSnapshot;
34
+ checkpointOutHash: Fr;
35
+ /** Fee asset price modifier in basis points. Defaults to 0 (no change) when not explicitly set. */
36
+ feeAssetPriceModifier: bigint;
37
+ };
38
+
39
+ /** Data stored only with proposed checkpoint data */
40
+ export type ProposedOnlyCheckpointData = {
41
+ totalManaUsed: bigint;
42
+ feeAssetPriceModifier: bigint;
43
+ };
44
+
45
+ /** Lightweight checkpoint metadata without full block data. */
46
+ export type CheckpointData = CommonCheckpointData & StorageEnrichedCheckpointData & L1EnrichedCheckpointData;
47
+
48
+ /** Input for setting a proposed checkpoint. The archive and checkpointOutHash are computed
49
+ * internally by the block store from the stored blocks. */
50
+ export type ProposedCheckpointInput = CommonCheckpointData & ProposedOnlyCheckpointData;
51
+
52
+ /** Full data for a proposed checkpoint (proposed but not yet L1-confirmed).
53
+ * Includes fee-relevant fields used during pipelining to compute the fee header override. */
54
+ export type ProposedCheckpointData = ProposedCheckpointInput & StorageEnrichedCheckpointData;
55
+
56
+ export const ProposedCheckpointDataSchema = z.object({
57
+ checkpointNumber: CheckpointNumberSchema,
58
+ header: CheckpointHeader.schema,
59
+ archive: AppendOnlyTreeSnapshot.schema,
60
+ checkpointOutHash: schemas.Fr,
61
+ startBlock: BlockNumberSchema,
62
+ blockCount: z.number(),
63
+ totalManaUsed: schemas.BigInt,
64
+ feeAssetPriceModifier: schemas.BigInt,
65
+ });
66
+
67
+ export const CheckpointDataSchema = z
68
+ .object({
69
+ checkpointNumber: CheckpointNumberSchema,
70
+ header: CheckpointHeader.schema,
71
+ archive: AppendOnlyTreeSnapshot.schema,
72
+ checkpointOutHash: schemas.Fr,
73
+ startBlock: BlockNumberSchema,
74
+ blockCount: schemas.Integer,
75
+ feeAssetPriceModifier: schemas.BigInt,
76
+ attestations: z.array(CommitteeAttestation.schema),
77
+ l1: L1PublishedData.schema,
78
+ })
79
+ .transform(
80
+ (obj): CheckpointData => ({
81
+ checkpointNumber: obj.checkpointNumber,
82
+ header: obj.header,
83
+ archive: obj.archive,
84
+ checkpointOutHash: obj.checkpointOutHash,
85
+ startBlock: obj.startBlock,
86
+ blockCount: obj.blockCount,
87
+ feeAssetPriceModifier: obj.feeAssetPriceModifier,
88
+ attestations: obj.attestations,
89
+ l1: obj.l1,
90
+ }),
91
+ );
@@ -1,3 +1,5 @@
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';
5
+ export * from './validate.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
 
@@ -0,0 +1,230 @@
1
+ import { BLOBS_PER_CHECKPOINT, FIELDS_PER_BLOB, MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT } from '@aztec/constants';
2
+ import type { CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
3
+ import { sum } from '@aztec/foundation/collection';
4
+
5
+ import { MAX_BLOCKS_PER_CHECKPOINT } from '../deserialization/index.js';
6
+ import type { Checkpoint } from './checkpoint.js';
7
+
8
+ export class CheckpointValidationError extends Error {
9
+ constructor(
10
+ message: string,
11
+ public readonly checkpointNumber: CheckpointNumber,
12
+ public readonly slot: SlotNumber,
13
+ ) {
14
+ super(message);
15
+ this.name = 'CheckpointValidationError';
16
+ }
17
+ }
18
+
19
+ /**
20
+ * Validates a checkpoint. Throws a CheckpointValidationError if any validation fails.
21
+ * - Validates structural integrity (non-empty, block count, sequential numbers, archive chaining, slot consistency)
22
+ * - Validates checkpoint blob field count against maxBlobFields limit
23
+ * - Validates total L2 gas used by checkpoint blocks against the Rollup contract mana limit
24
+ * - Validates total DA gas used by checkpoint blocks against MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT
25
+ * - Validates individual block L2 gas and DA gas against maxL2BlockGas and maxDABlockGas limits
26
+ */
27
+ export function validateCheckpoint(
28
+ checkpoint: Checkpoint,
29
+ opts: {
30
+ rollupManaLimit?: number;
31
+ maxL2BlockGas?: number;
32
+ maxDABlockGas?: number;
33
+ maxTxsPerCheckpoint?: number;
34
+ maxTxsPerBlock?: number;
35
+ },
36
+ ): void {
37
+ validateCheckpointStructure(checkpoint);
38
+ validateCheckpointLimits(checkpoint, opts);
39
+ validateCheckpointBlocksLimits(checkpoint, opts);
40
+ }
41
+
42
+ /**
43
+ * Validates structural integrity of a checkpoint.
44
+ * - Non-empty block list
45
+ * - Block count within MAX_BLOCKS_PER_CHECKPOINT
46
+ * - Checkpoint slot matches the first block's slot
47
+ * - Checkpoint lastArchiveRoot matches the first block's lastArchive root
48
+ * - Sequential block numbers without gaps
49
+ * - Sequential indexWithinCheckpoint starting at 0
50
+ * - Archive root chaining between consecutive blocks
51
+ * - Consistent slot number across all blocks
52
+ * - Global variables (slot, timestamp, coinbase, feeRecipient, gasFees) match checkpoint header for each block
53
+ */
54
+ export function validateCheckpointStructure(checkpoint: Checkpoint): void {
55
+ const { blocks, number, slot } = checkpoint;
56
+
57
+ if (blocks.length === 0) {
58
+ throw new CheckpointValidationError('Checkpoint has no blocks', number, slot);
59
+ }
60
+
61
+ if (blocks.length > MAX_BLOCKS_PER_CHECKPOINT) {
62
+ throw new CheckpointValidationError(
63
+ `Checkpoint has ${blocks.length} blocks, exceeding limit of ${MAX_BLOCKS_PER_CHECKPOINT}`,
64
+ number,
65
+ slot,
66
+ );
67
+ }
68
+
69
+ const firstBlock = blocks[0];
70
+
71
+ if (!checkpoint.header.lastArchiveRoot.equals(firstBlock.header.lastArchive.root)) {
72
+ throw new CheckpointValidationError(
73
+ `Checkpoint lastArchiveRoot does not match first block's lastArchive root`,
74
+ number,
75
+ slot,
76
+ );
77
+ }
78
+
79
+ for (let i = 0; i < blocks.length; i++) {
80
+ const block = blocks[i];
81
+
82
+ if (block.indexWithinCheckpoint !== i) {
83
+ throw new CheckpointValidationError(
84
+ `Block at index ${i} has indexWithinCheckpoint ${block.indexWithinCheckpoint}, expected ${i}`,
85
+ number,
86
+ slot,
87
+ );
88
+ }
89
+
90
+ if (block.slot !== slot) {
91
+ throw new CheckpointValidationError(
92
+ `Block ${block.number} has slot ${block.slot}, expected ${slot} (all blocks must share the same slot)`,
93
+ number,
94
+ slot,
95
+ );
96
+ }
97
+
98
+ if (!checkpoint.header.matchesGlobalVariables(block.header.globalVariables)) {
99
+ throw new CheckpointValidationError(
100
+ `Block ${block.number} global variables (slot, timestamp, coinbase, feeRecipient, gasFees) do not match checkpoint header`,
101
+ number,
102
+ slot,
103
+ );
104
+ }
105
+
106
+ if (i > 0) {
107
+ const prev = blocks[i - 1];
108
+ if (block.number !== prev.number + 1) {
109
+ throw new CheckpointValidationError(
110
+ `Block numbers are not sequential: block at index ${i - 1} has number ${prev.number}, block at index ${i} has number ${block.number}`,
111
+ number,
112
+ slot,
113
+ );
114
+ }
115
+
116
+ if (!block.header.lastArchive.root.equals(prev.archive.root)) {
117
+ throw new CheckpointValidationError(
118
+ `Block ${block.number} lastArchive root does not match archive root of block ${prev.number}`,
119
+ number,
120
+ slot,
121
+ );
122
+ }
123
+ }
124
+ }
125
+ }
126
+
127
+ /** Validates checkpoint blocks gas limits */
128
+ function validateCheckpointBlocksLimits(
129
+ checkpoint: Checkpoint,
130
+ opts: {
131
+ maxL2BlockGas?: number;
132
+ maxDABlockGas?: number;
133
+ maxTxsPerBlock?: number;
134
+ },
135
+ ): void {
136
+ const { maxL2BlockGas, maxDABlockGas, maxTxsPerBlock } = opts;
137
+
138
+ if (maxL2BlockGas !== undefined) {
139
+ for (const block of checkpoint.blocks) {
140
+ const blockL2Gas = block.header.totalManaUsed.toNumber();
141
+ if (blockL2Gas > maxL2BlockGas) {
142
+ throw new CheckpointValidationError(
143
+ `Block ${block.number} in checkpoint has L2 gas used ${blockL2Gas} exceeding limit of ${maxL2BlockGas}`,
144
+ checkpoint.number,
145
+ checkpoint.slot,
146
+ );
147
+ }
148
+ }
149
+ }
150
+
151
+ if (maxDABlockGas !== undefined) {
152
+ for (const block of checkpoint.blocks) {
153
+ const blockDAGas = block.computeDAGasUsed();
154
+ if (blockDAGas > maxDABlockGas) {
155
+ throw new CheckpointValidationError(
156
+ `Block ${block.number} in checkpoint has DA gas used ${blockDAGas} exceeding limit of ${maxDABlockGas}`,
157
+ checkpoint.number,
158
+ checkpoint.slot,
159
+ );
160
+ }
161
+ }
162
+ }
163
+
164
+ if (maxTxsPerBlock !== undefined) {
165
+ for (const block of checkpoint.blocks) {
166
+ const blockTxCount = block.body.txEffects.length;
167
+ if (blockTxCount > maxTxsPerBlock) {
168
+ throw new CheckpointValidationError(
169
+ `Block ${block.number} in checkpoint has ${blockTxCount} txs exceeding limit of ${maxTxsPerBlock}`,
170
+ checkpoint.number,
171
+ checkpoint.slot,
172
+ );
173
+ }
174
+ }
175
+ }
176
+ }
177
+
178
+ /** Validates checkpoint max blob fields, gas limits, and tx limits */
179
+ function validateCheckpointLimits(
180
+ checkpoint: Checkpoint,
181
+ opts: {
182
+ rollupManaLimit?: number;
183
+ maxTxsPerCheckpoint?: number;
184
+ },
185
+ ): void {
186
+ const { rollupManaLimit, maxTxsPerCheckpoint } = opts;
187
+
188
+ const maxBlobFields = BLOBS_PER_CHECKPOINT * FIELDS_PER_BLOB;
189
+ const maxDAGas = MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT;
190
+
191
+ if (rollupManaLimit !== undefined) {
192
+ const checkpointMana = sum(checkpoint.blocks.map(block => block.header.totalManaUsed.toNumber()));
193
+ if (checkpointMana > rollupManaLimit) {
194
+ throw new CheckpointValidationError(
195
+ `Checkpoint mana cost ${checkpointMana} exceeds rollup limit of ${rollupManaLimit}`,
196
+ checkpoint.number,
197
+ checkpoint.slot,
198
+ );
199
+ }
200
+ }
201
+
202
+ const checkpointDAGas = sum(checkpoint.blocks.map(block => block.computeDAGasUsed()));
203
+ if (checkpointDAGas > maxDAGas) {
204
+ throw new CheckpointValidationError(
205
+ `Checkpoint DA gas cost ${checkpointDAGas} exceeds limit of ${maxDAGas}`,
206
+ checkpoint.number,
207
+ checkpoint.slot,
208
+ );
209
+ }
210
+
211
+ const checkpointBlobFields = checkpoint.toBlobFields().length;
212
+ if (checkpointBlobFields > maxBlobFields) {
213
+ throw new CheckpointValidationError(
214
+ `Checkpoint blob field count ${checkpointBlobFields} exceeds limit of ${maxBlobFields}`,
215
+ checkpoint.number,
216
+ checkpoint.slot,
217
+ );
218
+ }
219
+
220
+ if (maxTxsPerCheckpoint !== undefined) {
221
+ const checkpointTxCount = sum(checkpoint.blocks.map(block => block.body.txEffects.length));
222
+ if (checkpointTxCount > maxTxsPerCheckpoint) {
223
+ throw new CheckpointValidationError(
224
+ `Checkpoint tx count ${checkpointTxCount} exceeds limit of ${maxTxsPerCheckpoint}`,
225
+ checkpoint.number,
226
+ checkpoint.slot,
227
+ );
228
+ }
229
+ }
230
+ }
@@ -1,5 +1,5 @@
1
1
  import { l1ContractAddressesMapping } from '@aztec/ethereum/l1-contract-addresses';
2
- import type { ConfigMappingsType } from '@aztec/foundation/config';
2
+ import { type ConfigMappingsType, numberConfigHelper } from '@aztec/foundation/config';
3
3
  import { EthAddress } from '@aztec/foundation/eth-address';
4
4
 
5
5
  export { type SequencerConfig, SequencerConfigSchema } from '../interfaces/configs.js';
@@ -14,14 +14,19 @@ export const emptyChainConfig: ChainConfig = {
14
14
  export const chainConfigMappings: ConfigMappingsType<ChainConfig> = {
15
15
  l1ChainId: {
16
16
  env: 'L1_CHAIN_ID',
17
- parseEnv: (val: string) => +val,
18
- defaultValue: 31337,
17
+ ...numberConfigHelper(31337),
19
18
  description: 'The chain ID of the ethereum host.',
20
19
  },
21
20
  rollupVersion: {
22
21
  env: 'ROLLUP_VERSION',
23
22
  description: 'The version of the rollup.',
24
- parseEnv: (val: string) => (Number.isSafeInteger(parseInt(val, 10)) ? parseInt(val, 10) : undefined),
23
+ parseEnv: (val: string) => {
24
+ const parsed = parseInt(val, 10);
25
+ if (!Number.isSafeInteger(parsed)) {
26
+ throw new Error(`Invalid rollup version: ${val}`);
27
+ }
28
+ return parsed;
29
+ },
25
30
  },
26
31
  l1Contracts: {
27
32
  description: 'The deployed L1 contract addresses',
@@ -1,2 +1,4 @@
1
1
  export * from './chain-config.js';
2
2
  export * from './node-rpc-config.js';
3
+ export * from './pipelining-config.js';
4
+ export * from './sequencer-config.js';