@aztec/stdlib 5.0.0-private.20260319 → 5.0.0-rc.1

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 (929) hide show
  1. package/dest/abi/abi.d.ts +142 -1081
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +41 -18
  4. package/dest/abi/authorization_selector.d.ts +4 -7
  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/contract_artifact.d.ts +14 -1
  10. package/dest/abi/contract_artifact.d.ts.map +1 -1
  11. package/dest/abi/contract_artifact.js +31 -7
  12. package/dest/abi/decoder.d.ts +5 -44
  13. package/dest/abi/decoder.d.ts.map +1 -1
  14. package/dest/abi/decoder.js +12 -67
  15. package/dest/abi/encoder.d.ts +1 -1
  16. package/dest/abi/encoder.d.ts.map +1 -1
  17. package/dest/abi/encoder.js +32 -6
  18. package/dest/abi/event_selector.d.ts +4 -7
  19. package/dest/abi/event_selector.d.ts.map +1 -1
  20. package/dest/abi/function_call.d.ts +7 -25
  21. package/dest/abi/function_call.d.ts.map +1 -1
  22. package/dest/abi/function_selector.d.ts +3 -6
  23. package/dest/abi/function_selector.d.ts.map +1 -1
  24. package/dest/abi/function_selector.js +2 -4
  25. package/dest/abi/function_signature_decoder.d.ts +43 -0
  26. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  27. package/dest/abi/function_signature_decoder.js +66 -0
  28. package/dest/abi/index.d.ts +2 -1
  29. package/dest/abi/index.d.ts.map +1 -1
  30. package/dest/abi/index.js +1 -0
  31. package/dest/abi/note_selector.d.ts +4 -7
  32. package/dest/abi/note_selector.d.ts.map +1 -1
  33. package/dest/abi/note_selector.js +1 -3
  34. package/dest/abi/selector.d.ts +2 -2
  35. package/dest/abi/selector.d.ts.map +1 -1
  36. package/dest/abi/selector.js +1 -1
  37. package/dest/abi/utils.d.ts +1 -1
  38. package/dest/abi/utils.d.ts.map +1 -1
  39. package/dest/abi/utils.js +1 -1
  40. package/dest/auth_witness/auth_witness.d.ts +2 -2
  41. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  42. package/dest/avm/avm.d.ts +1756 -10463
  43. package/dest/avm/avm.d.ts.map +1 -1
  44. package/dest/avm/avm.js +6 -3
  45. package/dest/avm/avm_accumulated_data.d.ts +22 -86
  46. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  47. package/dest/avm/avm_circuit_public_inputs.d.ts +180 -932
  48. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  49. package/dest/avm/avm_proving_request.d.ts +653 -5446
  50. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  51. package/dest/avm/message_pack.js +12 -3
  52. package/dest/avm/public_data_write.d.ts +6 -12
  53. package/dest/avm/public_data_write.d.ts.map +1 -1
  54. package/dest/avm/revert_code.d.ts +5 -21
  55. package/dest/avm/revert_code.d.ts.map +1 -1
  56. package/dest/avm/revert_code.js +12 -30
  57. package/dest/aztec-address/index.d.ts +8 -8
  58. package/dest/aztec-address/index.d.ts.map +1 -1
  59. package/dest/aztec-address/index.js +9 -6
  60. package/dest/block/attestation_info.d.ts +3 -2
  61. package/dest/block/attestation_info.d.ts.map +1 -1
  62. package/dest/block/attestation_info.js +7 -5
  63. package/dest/block/block_data.d.ts +13 -38
  64. package/dest/block/block_data.d.ts.map +1 -1
  65. package/dest/block/block_data.js +2 -2
  66. package/dest/block/block_hash.d.ts +11 -10
  67. package/dest/block/block_hash.d.ts.map +1 -1
  68. package/dest/block/block_hash.js +10 -9
  69. package/dest/block/block_parameter.d.ts +37 -4
  70. package/dest/block/block_parameter.d.ts.map +1 -1
  71. package/dest/block/block_parameter.js +53 -2
  72. package/dest/block/in_block.d.ts +5 -24
  73. package/dest/block/in_block.d.ts.map +1 -1
  74. package/dest/block/index.d.ts +1 -2
  75. package/dest/block/index.d.ts.map +1 -1
  76. package/dest/block/index.js +0 -1
  77. package/dest/block/l2_block.d.ts +13 -41
  78. package/dest/block/l2_block.d.ts.map +1 -1
  79. package/dest/block/l2_block_info.d.ts +10 -29
  80. package/dest/block/l2_block_info.d.ts.map +1 -1
  81. package/dest/block/l2_block_info.js +6 -5
  82. package/dest/block/l2_block_source.d.ts +216 -357
  83. package/dest/block/l2_block_source.d.ts.map +1 -1
  84. package/dest/block/l2_block_source.js +67 -1
  85. package/dest/block/l2_block_stream/interfaces.d.ts +46 -7
  86. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  87. package/dest/block/l2_block_stream/l2_block_stream.d.ts +2 -2
  88. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  89. package/dest/block/l2_block_stream/l2_block_stream.js +57 -21
  90. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +8 -12
  91. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  92. package/dest/block/l2_block_stream/l2_tips_memory_store.js +11 -32
  93. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +12 -18
  94. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  95. package/dest/block/l2_block_stream/l2_tips_store_base.js +66 -40
  96. package/dest/block/proposal/attestations_and_signers.d.ts +19 -30
  97. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  98. package/dest/block/proposal/attestations_and_signers.js +26 -18
  99. package/dest/block/proposal/committee_attestation.d.ts +6 -12
  100. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  101. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  102. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  103. package/dest/block/test/l2_tips_store_test_suite.js +202 -33
  104. package/dest/checkpoint/checkpoint.d.ts +30 -96
  105. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  106. package/dest/checkpoint/checkpoint.js +11 -3
  107. package/dest/checkpoint/checkpoint_data.d.ts +68 -91
  108. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
  109. package/dest/checkpoint/checkpoint_data.js +12 -0
  110. package/dest/checkpoint/checkpoint_info.d.ts +7 -23
  111. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
  112. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +60 -0
  113. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -0
  114. package/dest/checkpoint/checkpoint_reexecution_tracker.js +108 -0
  115. package/dest/checkpoint/digest.d.ts +18 -0
  116. package/dest/checkpoint/digest.d.ts.map +1 -0
  117. package/dest/checkpoint/digest.js +12 -0
  118. package/dest/checkpoint/index.d.ts +4 -1
  119. package/dest/checkpoint/index.d.ts.map +1 -1
  120. package/dest/checkpoint/index.js +3 -0
  121. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts +33 -0
  122. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts.map +1 -0
  123. package/dest/checkpoint/previous_checkpoint_out_hashes.js +45 -0
  124. package/dest/checkpoint/published_checkpoint.d.ts +42 -194
  125. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  126. package/dest/checkpoint/validate.d.ts +11 -3
  127. package/dest/checkpoint/validate.d.ts.map +1 -1
  128. package/dest/checkpoint/validate.js +9 -6
  129. package/dest/config/chain-config.d.ts +4 -9
  130. package/dest/config/chain-config.d.ts.map +1 -1
  131. package/dest/config/chain-config.js +13 -12
  132. package/dest/config/index.d.ts +2 -2
  133. package/dest/config/index.d.ts.map +1 -1
  134. package/dest/config/index.js +1 -1
  135. package/dest/config/network-consensus-config.d.ts +72 -0
  136. package/dest/config/network-consensus-config.d.ts.map +1 -0
  137. package/dest/config/network-consensus-config.js +231 -0
  138. package/dest/config/sequencer-config.d.ts +7 -3
  139. package/dest/config/sequencer-config.d.ts.map +1 -1
  140. package/dest/config/sequencer-config.js +38 -5
  141. package/dest/contract/complete_address.d.ts +3 -2
  142. package/dest/contract/complete_address.d.ts.map +1 -1
  143. package/dest/contract/complete_address.js +6 -2
  144. package/dest/contract/contract_address.d.ts +5 -5
  145. package/dest/contract/contract_address.d.ts.map +1 -1
  146. package/dest/contract/contract_address.js +5 -4
  147. package/dest/contract/contract_deployment_data.d.ts +15 -61
  148. package/dest/contract/contract_deployment_data.d.ts.map +1 -1
  149. package/dest/contract/contract_instance.d.ts +4 -2
  150. package/dest/contract/contract_instance.d.ts.map +1 -1
  151. package/dest/contract/contract_instance.js +10 -3
  152. package/dest/contract/index.d.ts +1 -3
  153. package/dest/contract/index.d.ts.map +1 -1
  154. package/dest/contract/index.js +0 -2
  155. package/dest/contract/interfaces/contract_class.d.ts +17 -241
  156. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  157. package/dest/contract/interfaces/contract_class.js +1 -28
  158. package/dest/contract/interfaces/contract_instance.d.ts +41 -95
  159. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  160. package/dest/contract/interfaces/contract_instance.js +4 -2
  161. package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
  162. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  163. package/dest/contract/interfaces/node-info.d.ts +11 -1
  164. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  165. package/dest/contract/interfaces/node-info.js +7 -1
  166. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
  167. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  168. package/dest/contract/private_function.d.ts +1 -1
  169. package/dest/contract/private_function.d.ts.map +1 -1
  170. package/dest/contract/private_function.js +2 -4
  171. package/dest/database-version/database_version.d.ts +5 -11
  172. package/dest/database-version/database_version.d.ts.map +1 -1
  173. package/dest/database-version/version_manager.d.ts +6 -2
  174. package/dest/database-version/version_manager.d.ts.map +1 -1
  175. package/dest/database-version/version_manager.js +12 -1
  176. package/dest/deserialization/index.d.ts +35 -3
  177. package/dest/deserialization/index.d.ts.map +1 -1
  178. package/dest/deserialization/index.js +32 -1
  179. package/dest/epoch-helpers/index.d.ts +10 -22
  180. package/dest/epoch-helpers/index.d.ts.map +1 -1
  181. package/dest/epoch-helpers/index.js +12 -0
  182. package/dest/file-store/factory.d.ts +4 -3
  183. package/dest/file-store/factory.d.ts.map +1 -1
  184. package/dest/file-store/factory.js +2 -2
  185. package/dest/file-store/http.d.ts +9 -2
  186. package/dest/file-store/http.d.ts.map +1 -1
  187. package/dest/file-store/http.js +20 -9
  188. package/dest/file-store/index.d.ts +2 -1
  189. package/dest/file-store/index.d.ts.map +1 -1
  190. package/dest/gas/fee_math.d.ts +49 -0
  191. package/dest/gas/fee_math.d.ts.map +1 -0
  192. package/dest/gas/fee_math.js +80 -0
  193. package/dest/gas/gas.d.ts +9 -14
  194. package/dest/gas/gas.d.ts.map +1 -1
  195. package/dest/gas/gas.js +6 -3
  196. package/dest/gas/gas_fees.d.ts +13 -14
  197. package/dest/gas/gas_fees.d.ts.map +1 -1
  198. package/dest/gas/gas_fees.js +17 -4
  199. package/dest/gas/gas_settings.d.ts +60 -86
  200. package/dest/gas/gas_settings.d.ts.map +1 -1
  201. package/dest/gas/gas_settings.js +49 -9
  202. package/dest/gas/index.d.ts +3 -1
  203. package/dest/gas/index.d.ts.map +1 -1
  204. package/dest/gas/index.js +2 -0
  205. package/dest/gas/tx_gas_limits.d.ts +72 -0
  206. package/dest/gas/tx_gas_limits.d.ts.map +1 -0
  207. package/dest/gas/tx_gas_limits.js +85 -0
  208. package/dest/ha-signing/config.d.ts +11 -75
  209. package/dest/ha-signing/config.d.ts.map +1 -1
  210. package/dest/ha-signing/config.js +9 -18
  211. package/dest/ha-signing/index.d.ts +2 -2
  212. package/dest/ha-signing/index.d.ts.map +1 -1
  213. package/dest/ha-signing/index.js +1 -1
  214. package/dest/ha-signing/local_config.d.ts +3 -34
  215. package/dest/ha-signing/local_config.d.ts.map +1 -1
  216. package/dest/ha-signing/local_config.js +2 -2
  217. package/dest/ha-signing/types.d.ts +37 -32
  218. package/dest/ha-signing/types.d.ts.map +1 -1
  219. package/dest/ha-signing/types.js +13 -6
  220. package/dest/hash/hash.d.ts +19 -1
  221. package/dest/hash/hash.d.ts.map +1 -1
  222. package/dest/hash/hash.js +39 -2
  223. package/dest/interfaces/allowed_element.d.ts +4 -28
  224. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  225. package/dest/interfaces/api_limit.d.ts +1 -1
  226. package/dest/interfaces/api_limit.js +1 -1
  227. package/dest/interfaces/archiver.d.ts +20 -32
  228. package/dest/interfaces/archiver.d.ts.map +1 -1
  229. package/dest/interfaces/archiver.js +215 -70
  230. package/dest/interfaces/aztec-node-admin.d.ts +71 -305
  231. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  232. package/dest/interfaces/aztec-node-admin.js +60 -17
  233. package/dest/interfaces/aztec-node-debug.d.ts +34 -0
  234. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  235. package/dest/interfaces/aztec-node-debug.js +29 -0
  236. package/dest/interfaces/aztec-node.d.ts +156 -112
  237. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  238. package/dest/interfaces/aztec-node.js +354 -71
  239. package/dest/interfaces/block-builder.d.ts +5 -1
  240. package/dest/interfaces/block-builder.d.ts.map +1 -1
  241. package/dest/interfaces/block_response.d.ts +90 -0
  242. package/dest/interfaces/block_response.d.ts.map +1 -0
  243. package/dest/interfaces/block_response.js +30 -0
  244. package/dest/interfaces/chain_tips.d.ts +50 -0
  245. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  246. package/dest/interfaces/chain_tips.js +11 -0
  247. package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
  248. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  249. package/dest/interfaces/checkpoint_parameter.js +18 -0
  250. package/dest/interfaces/checkpoint_response.d.ts +122 -0
  251. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  252. package/dest/interfaces/checkpoint_response.js +26 -0
  253. package/dest/interfaces/client.d.ts +9 -2
  254. package/dest/interfaces/client.d.ts.map +1 -1
  255. package/dest/interfaces/client.js +7 -1
  256. package/dest/interfaces/configs.d.ts +63 -134
  257. package/dest/interfaces/configs.d.ts.map +1 -1
  258. package/dest/interfaces/configs.js +13 -2
  259. package/dest/interfaces/get_tx_by_hash_options.d.ts +9 -0
  260. package/dest/interfaces/get_tx_by_hash_options.d.ts.map +1 -0
  261. package/dest/interfaces/get_tx_by_hash_options.js +4 -0
  262. package/dest/interfaces/l1_publish_info.d.ts +29 -0
  263. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  264. package/dest/interfaces/l1_publish_info.js +26 -0
  265. package/dest/interfaces/l2_logs_source.d.ts +14 -36
  266. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  267. package/dest/interfaces/l2_logs_source.js +5 -0
  268. package/dest/interfaces/merkle_tree_operations.d.ts +4 -3
  269. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  270. package/dest/interfaces/p2p-bootstrap.js +8 -2
  271. package/dest/interfaces/p2p.d.ts +46 -7
  272. package/dest/interfaces/p2p.d.ts.map +1 -1
  273. package/dest/interfaces/p2p.js +41 -6
  274. package/dest/interfaces/private_kernel_prover.d.ts +62 -2
  275. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  276. package/dest/interfaces/prover-agent.d.ts +5 -23
  277. package/dest/interfaces/prover-agent.d.ts.map +1 -1
  278. package/dest/interfaces/prover-agent.js +4 -1
  279. package/dest/interfaces/prover-client.d.ts +7 -29
  280. package/dest/interfaces/prover-client.d.ts.map +1 -1
  281. package/dest/interfaces/prover-client.js +0 -3
  282. package/dest/interfaces/prover-node.d.ts +8 -3
  283. package/dest/interfaces/prover-node.d.ts.map +1 -1
  284. package/dest/interfaces/prover-node.js +30 -14
  285. package/dest/interfaces/proving-job-source.js +24 -4
  286. package/dest/interfaces/proving-job.d.ts +763 -5814
  287. package/dest/interfaces/proving-job.d.ts.map +1 -1
  288. package/dest/interfaces/proving-job.js +1 -1
  289. package/dest/interfaces/public_storage_override.d.ts +22 -0
  290. package/dest/interfaces/public_storage_override.d.ts.map +1 -0
  291. package/dest/interfaces/public_storage_override.js +7 -0
  292. package/dest/interfaces/server.d.ts +6 -2
  293. package/dest/interfaces/server.d.ts.map +1 -1
  294. package/dest/interfaces/server.js +5 -1
  295. package/dest/interfaces/slasher.d.ts +25 -65
  296. package/dest/interfaces/slasher.d.ts.map +1 -1
  297. package/dest/interfaces/slasher.js +8 -4
  298. package/dest/interfaces/tx_provider.d.ts +6 -1
  299. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  300. package/dest/interfaces/validator.d.ts +55 -248
  301. package/dest/interfaces/validator.d.ts.map +1 -1
  302. package/dest/interfaces/validator.js +8 -2
  303. package/dest/interfaces/world_state.d.ts +2 -2
  304. package/dest/interfaces/world_state.d.ts.map +1 -1
  305. package/dest/kernel/hints/key_validation_request.d.ts +12 -8
  306. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  307. package/dest/kernel/hints/key_validation_request.js +20 -18
  308. package/dest/kernel/index.d.ts +5 -1
  309. package/dest/kernel/index.d.ts.map +1 -1
  310. package/dest/kernel/index.js +4 -0
  311. package/dest/kernel/log_hash.d.ts +6 -2
  312. package/dest/kernel/log_hash.d.ts.map +1 -1
  313. package/dest/kernel/log_hash.js +21 -9
  314. package/dest/kernel/private_circuit_public_inputs.d.ts +2 -2
  315. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  316. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -2
  317. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  318. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +23 -0
  319. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
  320. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +35 -0
  321. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +24 -0
  322. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
  323. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +37 -0
  324. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
  325. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
  326. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
  327. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
  328. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
  329. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
  330. package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
  331. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  332. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +9 -6
  333. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  334. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +22 -7
  335. package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
  336. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  337. package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
  338. package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
  339. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  340. package/dest/kernel/private_to_public_accumulated_data.js +6 -3
  341. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +5 -4
  342. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  343. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -3
  344. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
  345. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  346. package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
  347. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +5 -4
  348. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  349. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -3
  350. package/dest/kernel/public_call_request.d.ts +15 -30
  351. package/dest/kernel/public_call_request.d.ts.map +1 -1
  352. package/dest/kernel/public_call_request.js +16 -7
  353. package/dest/keys/derivation.d.ts +6 -2
  354. package/dest/keys/derivation.d.ts.map +1 -1
  355. package/dest/keys/derivation.js +16 -6
  356. package/dest/keys/public_key.d.ts +22 -3
  357. package/dest/keys/public_key.d.ts.map +1 -1
  358. package/dest/keys/public_key.js +20 -1
  359. package/dest/keys/public_keys.d.ts +55 -82
  360. package/dest/keys/public_keys.d.ts.map +1 -1
  361. package/dest/keys/public_keys.js +102 -74
  362. package/dest/kv-store/config.d.ts +3 -6
  363. package/dest/kv-store/config.d.ts.map +1 -1
  364. package/dest/kv-store/config.js +2 -7
  365. package/dest/l1-contracts/index.d.ts +2 -2
  366. package/dest/l1-contracts/index.d.ts.map +1 -1
  367. package/dest/l1-contracts/index.js +1 -1
  368. package/dest/logs/app_tagging_secret.d.ts +46 -0
  369. package/dest/logs/app_tagging_secret.d.ts.map +1 -0
  370. package/dest/logs/app_tagging_secret.js +109 -0
  371. package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
  372. package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
  373. package/dest/logs/app_tagging_secret_kind.js +17 -0
  374. package/dest/logs/contract_class_log.d.ts +16 -34
  375. package/dest/logs/contract_class_log.d.ts.map +1 -1
  376. package/dest/logs/contract_class_log.js +11 -9
  377. package/dest/logs/index.d.ts +7 -7
  378. package/dest/logs/index.d.ts.map +1 -1
  379. package/dest/logs/index.js +6 -6
  380. package/dest/logs/log_cursor.d.ts +51 -0
  381. package/dest/logs/log_cursor.d.ts.map +1 -0
  382. package/dest/logs/log_cursor.js +82 -0
  383. package/dest/logs/log_result.d.ts +54 -0
  384. package/dest/logs/log_result.d.ts.map +1 -0
  385. package/dest/logs/log_result.js +56 -0
  386. package/dest/logs/logs_query.d.ts +82 -0
  387. package/dest/logs/logs_query.d.ts.map +1 -0
  388. package/dest/logs/logs_query.js +50 -0
  389. package/dest/logs/message_context.d.ts +6 -8
  390. package/dest/logs/message_context.d.ts.map +1 -1
  391. package/dest/logs/message_context.js +27 -9
  392. package/dest/logs/pending_tagged_log.d.ts +2 -3
  393. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  394. package/dest/logs/pending_tagged_log.js +2 -2
  395. package/dest/logs/pre_tag.d.ts +11 -24
  396. package/dest/logs/pre_tag.d.ts.map +1 -1
  397. package/dest/logs/pre_tag.js +2 -2
  398. package/dest/logs/private_log.d.ts +7 -12
  399. package/dest/logs/private_log.d.ts.map +1 -1
  400. package/dest/logs/private_log.js +6 -3
  401. package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
  402. package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
  403. package/dest/logs/query_all_logs_by_tags.js +64 -0
  404. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  405. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  406. package/dest/logs/shared_secret_derivation.js +15 -9
  407. package/dest/logs/siloed_tag.d.ts +8 -7
  408. package/dest/logs/siloed_tag.d.ts.map +1 -1
  409. package/dest/logs/siloed_tag.js +13 -3
  410. package/dest/logs/tag.d.ts +5 -6
  411. package/dest/logs/tag.d.ts.map +1 -1
  412. package/dest/logs/tag.js +4 -0
  413. package/dest/logs/tagging_index_range.d.ts +13 -31
  414. package/dest/logs/tagging_index_range.d.ts.map +1 -1
  415. package/dest/logs/tagging_index_range.js +2 -2
  416. package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
  417. package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
  418. package/dest/messaging/append_l1_to_l2_messages.js +12 -0
  419. package/dest/messaging/index.d.ts +2 -1
  420. package/dest/messaging/index.d.ts.map +1 -1
  421. package/dest/messaging/index.js +1 -0
  422. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  423. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  424. package/dest/messaging/l1_to_l2_message.js +11 -13
  425. package/dest/messaging/l2_to_l1_membership.d.ts +43 -6
  426. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  427. package/dest/messaging/l2_to_l1_membership.js +72 -12
  428. package/dest/messaging/l2_to_l1_message.d.ts +38 -112
  429. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  430. package/dest/messaging/l2_to_l1_message.js +21 -12
  431. package/dest/noir/index.d.ts +3 -1
  432. package/dest/noir/index.d.ts.map +1 -1
  433. package/dest/note/note.d.ts +2 -2
  434. package/dest/note/note.d.ts.map +1 -1
  435. package/dest/note/note_dao.d.ts +1 -1
  436. package/dest/note/note_dao.d.ts.map +1 -1
  437. package/dest/note/note_dao.js +1 -4
  438. package/dest/p2p/block_proposal.d.ts +31 -14
  439. package/dest/p2p/block_proposal.d.ts.map +1 -1
  440. package/dest/p2p/block_proposal.js +57 -39
  441. package/dest/p2p/checkpoint_attestation.d.ts +15 -9
  442. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  443. package/dest/p2p/checkpoint_attestation.js +23 -24
  444. package/dest/p2p/checkpoint_proposal.d.ts +35 -16
  445. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  446. package/dest/p2p/checkpoint_proposal.js +59 -51
  447. package/dest/p2p/consensus_payload.d.ts +26 -20
  448. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  449. package/dest/p2p/consensus_payload.js +38 -19
  450. package/dest/p2p/gossipable.d.ts +4 -4
  451. package/dest/p2p/gossipable.d.ts.map +1 -1
  452. package/dest/p2p/signature_utils.d.ts +28 -19
  453. package/dest/p2p/signature_utils.d.ts.map +1 -1
  454. package/dest/p2p/signature_utils.js +118 -21
  455. package/dest/p2p/signed_txs.d.ts +15 -13
  456. package/dest/p2p/signed_txs.d.ts.map +1 -1
  457. package/dest/p2p/signed_txs.js +26 -24
  458. package/dest/parity/parity_base_private_inputs.d.ts +8 -4
  459. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  460. package/dest/parity/parity_base_private_inputs.js +7 -5
  461. package/dest/parity/parity_public_inputs.d.ts +8 -4
  462. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  463. package/dest/parity/parity_public_inputs.js +6 -3
  464. package/dest/parity/parity_root_private_inputs.d.ts +2 -2
  465. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  466. package/dest/proofs/chonk_proof.d.ts +57 -7
  467. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  468. package/dest/proofs/chonk_proof.js +112 -15
  469. package/dest/proofs/recursive_proof.d.ts +2 -2
  470. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  471. package/dest/rollup/block_headers_hash.d.ts +1 -1
  472. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  473. package/dest/rollup/block_headers_hash.js +8 -2
  474. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
  475. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  476. package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
  477. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  478. package/dest/rollup/block_rollup_public_inputs.js +12 -0
  479. package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
  480. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  481. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
  482. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  483. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +9 -2
  484. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  485. package/dest/rollup/checkpoint_rollup_public_inputs.js +9 -0
  486. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +5 -5
  487. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  488. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
  489. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
  490. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
  491. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
  492. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
  493. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
  494. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
  495. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  496. package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
  497. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  498. package/dest/rollup/root_rollup_public_inputs.d.ts +2 -2
  499. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  500. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
  501. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  502. package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
  503. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  504. package/dest/schemas/schemas.d.ts +32 -78
  505. package/dest/schemas/schemas.d.ts.map +1 -1
  506. package/dest/schemas/schemas.js +2 -2
  507. package/dest/slashing/helpers.d.ts +2 -2
  508. package/dest/slashing/helpers.d.ts.map +1 -1
  509. package/dest/slashing/helpers.js +10 -7
  510. package/dest/slashing/index.d.ts +2 -3
  511. package/dest/slashing/index.d.ts.map +1 -1
  512. package/dest/slashing/index.js +1 -2
  513. package/dest/slashing/serialization.d.ts +2 -6
  514. package/dest/slashing/serialization.d.ts.map +1 -1
  515. package/dest/slashing/serialization.js +0 -60
  516. package/dest/slashing/types.d.ts +18 -112
  517. package/dest/slashing/types.d.ts.map +1 -1
  518. package/dest/slashing/types.js +16 -24
  519. package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
  520. package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
  521. package/dest/slashing/{tally.js → votes.js} +1 -1
  522. package/dest/snapshots/types.d.ts +15 -78
  523. package/dest/snapshots/types.d.ts.map +1 -1
  524. package/dest/stats/stats.d.ts +2 -2
  525. package/dest/stats/stats.d.ts.map +1 -1
  526. package/dest/tests/factories.d.ts +25 -32
  527. package/dest/tests/factories.d.ts.map +1 -1
  528. package/dest/tests/factories.js +85 -82
  529. package/dest/tests/mocks.d.ts +8 -5
  530. package/dest/tests/mocks.d.ts.map +1 -1
  531. package/dest/tests/mocks.js +45 -56
  532. package/dest/timetable/budgets.d.ts +57 -0
  533. package/dest/timetable/budgets.d.ts.map +1 -0
  534. package/dest/timetable/budgets.js +56 -0
  535. package/dest/timetable/build_proposer_timetable.d.ts +21 -0
  536. package/dest/timetable/build_proposer_timetable.d.ts.map +1 -0
  537. package/dest/timetable/build_proposer_timetable.js +17 -0
  538. package/dest/timetable/consensus_timetable.d.ts +70 -0
  539. package/dest/timetable/consensus_timetable.d.ts.map +1 -0
  540. package/dest/timetable/consensus_timetable.js +89 -0
  541. package/dest/timetable/index.d.ts +5 -37
  542. package/dest/timetable/index.d.ts.map +1 -1
  543. package/dest/timetable/index.js +4 -39
  544. package/dest/timetable/proposer_timetable.d.ts +106 -0
  545. package/dest/timetable/proposer_timetable.d.ts.map +1 -0
  546. package/dest/timetable/proposer_timetable.js +132 -0
  547. package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
  548. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  549. package/dest/trees/append_only_tree_snapshot.js +6 -3
  550. package/dest/trees/nullifier_leaf.d.ts +19 -42
  551. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  552. package/dest/trees/nullifier_leaf.js +3 -0
  553. package/dest/trees/nullifier_membership_witness.d.ts +16 -59
  554. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  555. package/dest/trees/nullifier_membership_witness.js +2 -14
  556. package/dest/trees/public_data_leaf.d.ts +21 -53
  557. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  558. package/dest/trees/public_data_witness.d.ts +16 -58
  559. package/dest/trees/public_data_witness.d.ts.map +1 -1
  560. package/dest/tx/block_header.d.ts +5 -4
  561. package/dest/tx/block_header.d.ts.map +1 -1
  562. package/dest/tx/block_header.js +7 -4
  563. package/dest/tx/call_context.d.ts +4 -14
  564. package/dest/tx/call_context.d.ts.map +1 -1
  565. package/dest/tx/capsule.d.ts +7 -3
  566. package/dest/tx/capsule.d.ts.map +1 -1
  567. package/dest/tx/capsule.js +9 -3
  568. package/dest/tx/fee_provider.d.ts +10 -0
  569. package/dest/tx/fee_provider.d.ts.map +1 -0
  570. package/dest/tx/fee_provider.js +1 -0
  571. package/dest/tx/function_data.d.ts +4 -10
  572. package/dest/tx/function_data.d.ts.map +1 -1
  573. package/dest/tx/global_variable_builder.d.ts +3 -4
  574. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  575. package/dest/tx/global_variables.d.ts +16 -49
  576. package/dest/tx/global_variables.d.ts.map +1 -1
  577. package/dest/tx/global_variables.js +8 -12
  578. package/dest/tx/hashed_values.d.ts +4 -3
  579. package/dest/tx/hashed_values.d.ts.map +1 -1
  580. package/dest/tx/hashed_values.js +6 -3
  581. package/dest/tx/in_tx.d.ts +5 -17
  582. package/dest/tx/in_tx.d.ts.map +1 -1
  583. package/dest/tx/index.d.ts +2 -1
  584. package/dest/tx/index.d.ts.map +1 -1
  585. package/dest/tx/index.js +1 -0
  586. package/dest/tx/indexed_tx_effect.d.ts +8 -19
  587. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  588. package/dest/tx/indexed_tx_effect.js +9 -6
  589. package/dest/tx/partial_state_reference.d.ts +22 -65
  590. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  591. package/dest/tx/partial_state_reference.js +6 -3
  592. package/dest/tx/private_execution_result.d.ts +6 -16
  593. package/dest/tx/private_execution_result.d.ts.map +1 -1
  594. package/dest/tx/profiling.d.ts +54 -352
  595. package/dest/tx/profiling.d.ts.map +1 -1
  596. package/dest/tx/profiling.js +4 -4
  597. package/dest/tx/protocol_contracts.d.ts +5 -9
  598. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  599. package/dest/tx/proven_tx.d.ts +30 -74
  600. package/dest/tx/proven_tx.d.ts.map +1 -1
  601. package/dest/tx/proven_tx.js +6 -0
  602. package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
  603. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  604. package/dest/tx/public_call_request_with_calldata.js +6 -3
  605. package/dest/tx/simulated_tx.d.ts +64 -1143
  606. package/dest/tx/simulated_tx.d.ts.map +1 -1
  607. package/dest/tx/simulated_tx.js +13 -11
  608. package/dest/tx/state_reference.d.ts +30 -117
  609. package/dest/tx/state_reference.d.ts.map +1 -1
  610. package/dest/tx/state_reference.js +6 -4
  611. package/dest/tx/tree_snapshots.d.ts +27 -84
  612. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  613. package/dest/tx/tree_snapshots.js +6 -4
  614. package/dest/tx/tx.d.ts +22 -13
  615. package/dest/tx/tx.d.ts.map +1 -1
  616. package/dest/tx/tx.js +44 -22
  617. package/dest/tx/tx_constant_data.d.ts +4 -3
  618. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  619. package/dest/tx/tx_constant_data.js +6 -3
  620. package/dest/tx/tx_context.d.ts +32 -131
  621. package/dest/tx/tx_context.d.ts.map +1 -1
  622. package/dest/tx/tx_context.js +6 -6
  623. package/dest/tx/tx_hash.d.ts +6 -4
  624. package/dest/tx/tx_hash.d.ts.map +1 -1
  625. package/dest/tx/tx_hash.js +13 -5
  626. package/dest/tx/tx_receipt.d.ts +144 -63
  627. package/dest/tx/tx_receipt.d.ts.map +1 -1
  628. package/dest/tx/tx_receipt.js +143 -60
  629. package/dest/tx/validator/error_texts.d.ts +6 -2
  630. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  631. package/dest/tx/validator/error_texts.js +7 -1
  632. package/dest/tx/validator/tx_validator.d.ts +5 -27
  633. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  634. package/dest/tx/validator/tx_validator.js +0 -4
  635. package/dest/types/shared.d.ts +4 -12
  636. package/dest/types/shared.d.ts.map +1 -1
  637. package/dest/types/shared.js +6 -12
  638. package/dest/update-checker/dev_version.d.ts +3 -0
  639. package/dest/update-checker/dev_version.d.ts.map +1 -0
  640. package/dest/update-checker/dev_version.js +1 -0
  641. package/dest/update-checker/index.d.ts +2 -1
  642. package/dest/update-checker/index.d.ts.map +1 -1
  643. package/dest/update-checker/index.js +1 -0
  644. package/dest/update-checker/package_version.d.ts +6 -3
  645. package/dest/update-checker/package_version.d.ts.map +1 -1
  646. package/dest/update-checker/package_version.js +8 -19
  647. package/dest/validators/schemas.d.ts +147 -614
  648. package/dest/validators/schemas.d.ts.map +1 -1
  649. package/dest/validators/schemas.js +6 -4
  650. package/dest/validators/types.d.ts +20 -3
  651. package/dest/validators/types.d.ts.map +1 -1
  652. package/dest/versioning/versioning.js +1 -1
  653. package/dest/vks/verification_key.d.ts +4 -139
  654. package/dest/vks/verification_key.d.ts.map +1 -1
  655. package/dest/vks/verification_key.js +5 -126
  656. package/dest/world-state/genesis_data.d.ts +13 -0
  657. package/dest/world-state/genesis_data.d.ts.map +1 -0
  658. package/dest/world-state/genesis_data.js +7 -0
  659. package/dest/world-state/index.d.ts +2 -1
  660. package/dest/world-state/index.d.ts.map +1 -1
  661. package/dest/world-state/index.js +1 -0
  662. package/dest/world-state/world_state_revision.d.ts +15 -26
  663. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  664. package/dest/world-state/world_state_revision.js +7 -1
  665. package/package.json +12 -11
  666. package/src/abi/abi.ts +78 -21
  667. package/src/abi/authorization_selector.ts +2 -8
  668. package/src/abi/buffer.ts +25 -4
  669. package/src/abi/contract_artifact.ts +30 -6
  670. package/src/abi/decoder.ts +23 -78
  671. package/src/abi/encoder.ts +42 -6
  672. package/src/abi/event_selector.ts +2 -8
  673. package/src/abi/function_selector.ts +4 -13
  674. package/src/abi/function_signature_decoder.ts +77 -0
  675. package/src/abi/index.ts +1 -0
  676. package/src/abi/note_selector.ts +3 -12
  677. package/src/abi/selector.ts +1 -1
  678. package/src/abi/utils.ts +6 -4
  679. package/src/avm/avm.ts +5 -0
  680. package/src/avm/message_pack.ts +12 -3
  681. package/src/avm/revert_code.ts +19 -39
  682. package/src/aztec-address/index.ts +15 -12
  683. package/src/block/attestation_info.ts +11 -11
  684. package/src/block/block_data.ts +3 -4
  685. package/src/block/block_hash.ts +21 -14
  686. package/src/block/block_parameter.ts +72 -4
  687. package/src/block/index.ts +0 -1
  688. package/src/block/l2_block_info.ts +8 -6
  689. package/src/block/l2_block_source.ts +216 -147
  690. package/src/block/l2_block_stream/interfaces.ts +42 -6
  691. package/src/block/l2_block_stream/l2_block_stream.ts +60 -31
  692. package/src/block/l2_block_stream/l2_tips_memory_store.ts +17 -41
  693. package/src/block/l2_block_stream/l2_tips_store_base.ts +64 -60
  694. package/src/block/proposal/attestations_and_signers.ts +32 -17
  695. package/src/block/test/l2_tips_store_test_suite.ts +198 -18
  696. package/src/checkpoint/checkpoint.ts +13 -3
  697. package/src/checkpoint/checkpoint_data.ts +44 -4
  698. package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
  699. package/src/checkpoint/digest.ts +28 -0
  700. package/src/checkpoint/index.ts +3 -0
  701. package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
  702. package/src/checkpoint/validate.ts +16 -6
  703. package/src/config/chain-config.ts +13 -16
  704. package/src/config/index.ts +1 -1
  705. package/src/config/network-consensus-config.ts +302 -0
  706. package/src/config/sequencer-config.ts +68 -9
  707. package/src/contract/complete_address.ts +7 -3
  708. package/src/contract/contract_address.ts +6 -6
  709. package/src/contract/contract_instance.ts +11 -2
  710. package/src/contract/index.ts +0 -2
  711. package/src/contract/interfaces/contract_class.ts +2 -82
  712. package/src/contract/interfaces/contract_instance.ts +6 -2
  713. package/src/contract/interfaces/node-info.ts +11 -0
  714. package/src/contract/private_function.ts +3 -1
  715. package/src/database-version/version_manager.ts +17 -0
  716. package/src/deserialization/index.ts +35 -2
  717. package/src/epoch-helpers/index.ts +24 -0
  718. package/src/file-store/factory.ts +13 -4
  719. package/src/file-store/http.ts +29 -10
  720. package/src/file-store/index.ts +1 -0
  721. package/src/gas/README.md +123 -0
  722. package/src/gas/fee_math.ts +120 -0
  723. package/src/gas/gas.ts +8 -3
  724. package/src/gas/gas_fees.ts +26 -13
  725. package/src/gas/gas_settings.ts +63 -15
  726. package/src/gas/index.ts +2 -0
  727. package/src/gas/tx_gas_limits.ts +123 -0
  728. package/src/ha-signing/config.ts +14 -18
  729. package/src/ha-signing/index.ts +3 -1
  730. package/src/ha-signing/local_config.ts +2 -2
  731. package/src/ha-signing/types.ts +48 -34
  732. package/src/hash/hash.ts +34 -2
  733. package/src/interfaces/api_limit.ts +1 -1
  734. package/src/interfaces/archiver.ts +88 -93
  735. package/src/interfaces/aztec-node-admin.ts +36 -21
  736. package/src/interfaces/aztec-node-debug.ts +55 -0
  737. package/src/interfaces/aztec-node.ts +389 -259
  738. package/src/interfaces/block-builder.ts +4 -0
  739. package/src/interfaces/block_response.ts +92 -0
  740. package/src/interfaces/chain_tips.ts +24 -0
  741. package/src/interfaces/checkpoint_parameter.ts +20 -0
  742. package/src/interfaces/checkpoint_response.ts +84 -0
  743. package/src/interfaces/client.ts +8 -1
  744. package/src/interfaces/configs.ts +64 -7
  745. package/src/interfaces/get_tx_by_hash_options.ts +14 -0
  746. package/src/interfaces/l1_publish_info.ts +40 -0
  747. package/src/interfaces/l2_logs_source.ts +13 -42
  748. package/src/interfaces/merkle_tree_operations.ts +3 -2
  749. package/src/interfaces/p2p-bootstrap.ts +2 -2
  750. package/src/interfaces/p2p.ts +59 -19
  751. package/src/interfaces/private_kernel_prover.ts +88 -0
  752. package/src/interfaces/prover-agent.ts +1 -1
  753. package/src/interfaces/prover-client.ts +3 -8
  754. package/src/interfaces/prover-node.ts +19 -12
  755. package/src/interfaces/proving-job-source.ts +4 -4
  756. package/src/interfaces/proving-job.ts +3 -3
  757. package/src/interfaces/public_storage_override.ts +26 -0
  758. package/src/interfaces/server.ts +5 -1
  759. package/src/interfaces/slasher.ts +17 -10
  760. package/src/interfaces/tx_provider.ts +6 -0
  761. package/src/interfaces/validator.ts +45 -15
  762. package/src/interfaces/world_state.ts +1 -1
  763. package/src/kernel/hints/key_validation_request.ts +18 -16
  764. package/src/kernel/index.ts +4 -0
  765. package/src/kernel/log_hash.ts +29 -9
  766. package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +49 -0
  767. package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +52 -0
  768. package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
  769. package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
  770. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +29 -14
  771. package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
  772. package/src/kernel/private_to_public_accumulated_data.ts +9 -3
  773. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +10 -4
  774. package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
  775. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
  776. package/src/kernel/public_call_request.ts +22 -7
  777. package/src/keys/derivation.ts +21 -9
  778. package/src/keys/public_key.ts +26 -2
  779. package/src/keys/public_keys.ts +124 -110
  780. package/src/kv-store/config.ts +3 -10
  781. package/src/l1-contracts/index.ts +1 -1
  782. package/src/logs/app_tagging_secret.ts +137 -0
  783. package/src/logs/app_tagging_secret_kind.ts +21 -0
  784. package/src/logs/contract_class_log.ts +15 -5
  785. package/src/logs/index.ts +6 -6
  786. package/src/logs/log_cursor.ts +110 -0
  787. package/src/logs/log_result.ts +104 -0
  788. package/src/logs/logs_query.ts +138 -0
  789. package/src/logs/message_context.ts +22 -8
  790. package/src/logs/pending_tagged_log.ts +1 -3
  791. package/src/logs/pre_tag.ts +3 -6
  792. package/src/logs/private_log.ts +9 -3
  793. package/src/logs/query_all_logs_by_tags.ts +98 -0
  794. package/src/logs/shared_secret_derivation.ts +21 -10
  795. package/src/logs/siloed_tag.ts +20 -11
  796. package/src/logs/tag.ts +8 -8
  797. package/src/logs/tagging_index_range.ts +4 -10
  798. package/src/messaging/append_l1_to_l2_messages.ts +21 -0
  799. package/src/messaging/index.ts +1 -0
  800. package/src/messaging/l1_to_l2_message.ts +12 -9
  801. package/src/messaging/l2_to_l1_membership.ts +108 -19
  802. package/src/messaging/l2_to_l1_message.ts +29 -9
  803. package/src/noir/index.ts +2 -0
  804. package/src/note/note_dao.ts +1 -4
  805. package/src/p2p/block_proposal.ts +111 -36
  806. package/src/p2p/checkpoint_attestation.ts +27 -31
  807. package/src/p2p/checkpoint_proposal.ts +128 -73
  808. package/src/p2p/consensus_payload.ts +59 -28
  809. package/src/p2p/gossipable.ts +4 -4
  810. package/src/p2p/signature_utils.ts +110 -25
  811. package/src/p2p/signed_txs.ts +46 -28
  812. package/src/parity/parity_base_private_inputs.ts +10 -4
  813. package/src/parity/parity_public_inputs.ts +9 -2
  814. package/src/proofs/chonk_proof.ts +132 -12
  815. package/src/rollup/block_headers_hash.ts +11 -2
  816. package/src/rollup/block_rollup_public_inputs.ts +13 -0
  817. package/src/rollup/checkpoint_rollup_public_inputs.ts +10 -0
  818. package/src/schemas/schemas.ts +6 -1
  819. package/src/slashing/helpers.ts +13 -9
  820. package/src/slashing/index.ts +1 -2
  821. package/src/slashing/serialization.ts +1 -81
  822. package/src/slashing/types.ts +24 -49
  823. package/src/slashing/{tally.ts → votes.ts} +1 -1
  824. package/src/stats/stats.ts +4 -0
  825. package/src/tests/factories.ts +109 -111
  826. package/src/tests/mocks.ts +72 -71
  827. package/src/timetable/README.md +609 -0
  828. package/src/timetable/budgets.ts +87 -0
  829. package/src/timetable/build_proposer_timetable.ts +42 -0
  830. package/src/timetable/consensus_timetable.ts +126 -0
  831. package/src/timetable/index.ts +4 -66
  832. package/src/timetable/proposer_timetable.ts +190 -0
  833. package/src/timetable/timetable-example.svg +108 -0
  834. package/src/trees/append_only_tree_snapshot.ts +8 -3
  835. package/src/trees/nullifier_leaf.ts +4 -0
  836. package/src/trees/nullifier_membership_witness.ts +2 -12
  837. package/src/tx/block_header.ts +10 -5
  838. package/src/tx/capsule.ts +10 -2
  839. package/src/tx/fee_provider.ts +10 -0
  840. package/src/tx/global_variable_builder.ts +2 -3
  841. package/src/tx/global_variables.ts +10 -18
  842. package/src/tx/hashed_values.ts +8 -3
  843. package/src/tx/index.ts +1 -0
  844. package/src/tx/indexed_tx_effect.ts +18 -6
  845. package/src/tx/partial_state_reference.ts +8 -3
  846. package/src/tx/profiling.ts +4 -4
  847. package/src/tx/proven_tx.ts +6 -0
  848. package/src/tx/public_call_request_with_calldata.ts +8 -3
  849. package/src/tx/simulated_tx.ts +22 -21
  850. package/src/tx/state_reference.ts +9 -4
  851. package/src/tx/tree_snapshots.ts +9 -4
  852. package/src/tx/tx.ts +60 -24
  853. package/src/tx/tx_constant_data.ts +8 -3
  854. package/src/tx/tx_context.ts +8 -3
  855. package/src/tx/tx_hash.ts +20 -5
  856. package/src/tx/tx_receipt.ts +265 -85
  857. package/src/tx/validator/error_texts.ts +10 -1
  858. package/src/tx/validator/tx_validator.ts +1 -5
  859. package/src/types/shared.ts +8 -13
  860. package/src/update-checker/dev_version.ts +2 -0
  861. package/src/update-checker/index.ts +1 -0
  862. package/src/update-checker/package_version.ts +10 -23
  863. package/src/validators/schemas.ts +6 -4
  864. package/src/validators/types.ts +21 -2
  865. package/src/versioning/versioning.ts +1 -1
  866. package/src/vks/verification_key.ts +5 -184
  867. package/src/world-state/genesis_data.ts +27 -0
  868. package/src/world-state/index.ts +1 -0
  869. package/src/world-state/world_state_revision.ts +9 -1
  870. package/dest/abi/mocked_keys.d.ts +0 -2
  871. package/dest/abi/mocked_keys.d.ts.map +0 -1
  872. package/dest/abi/mocked_keys.js +0 -1
  873. package/dest/block/checkpointed_l2_block.d.ts +0 -150
  874. package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
  875. package/dest/block/checkpointed_l2_block.js +0 -46
  876. package/dest/config/pipelining-config.d.ts +0 -19
  877. package/dest/config/pipelining-config.d.ts.map +0 -1
  878. package/dest/config/pipelining-config.js +0 -18
  879. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  880. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  881. package/dest/contract/private_function_membership_proof.js +0 -124
  882. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  883. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  884. package/dest/contract/utility_function_membership_proof.js +0 -87
  885. package/dest/interfaces/epoch-prover.d.ts +0 -57
  886. package/dest/interfaces/epoch-prover.d.ts.map +0 -1
  887. package/dest/interfaces/epoch-prover.js +0 -1
  888. package/dest/interfaces/get_logs_response.d.ts +0 -97
  889. package/dest/interfaces/get_logs_response.d.ts.map +0 -1
  890. package/dest/interfaces/get_logs_response.js +0 -12
  891. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  892. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  893. package/dest/l1-contracts/slash_factory.js +0 -158
  894. package/dest/logs/extended_contract_class_log.d.ts +0 -51
  895. package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
  896. package/dest/logs/extended_contract_class_log.js +0 -67
  897. package/dest/logs/extended_directional_app_tagging_secret.d.ts +0 -47
  898. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +0 -1
  899. package/dest/logs/extended_directional_app_tagging_secret.js +0 -72
  900. package/dest/logs/extended_public_log.d.ts +0 -106
  901. package/dest/logs/extended_public_log.d.ts.map +0 -1
  902. package/dest/logs/extended_public_log.js +0 -73
  903. package/dest/logs/log_filter.d.ts +0 -25
  904. package/dest/logs/log_filter.d.ts.map +0 -1
  905. package/dest/logs/log_filter.js +0 -12
  906. package/dest/logs/log_id.d.ts +0 -85
  907. package/dest/logs/log_id.d.ts.map +0 -1
  908. package/dest/logs/log_id.js +0 -94
  909. package/dest/logs/tx_scoped_l2_log.d.ts +0 -51
  910. package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
  911. package/dest/logs/tx_scoped_l2_log.js +0 -77
  912. package/dest/slashing/empire.d.ts +0 -31
  913. package/dest/slashing/empire.d.ts.map +0 -1
  914. package/dest/slashing/empire.js +0 -87
  915. package/src/abi/mocked_keys.ts +0 -2
  916. package/src/block/checkpointed_l2_block.ts +0 -70
  917. package/src/config/pipelining-config.ts +0 -31
  918. package/src/contract/private_function_membership_proof.ts +0 -167
  919. package/src/contract/utility_function_membership_proof.ts +0 -118
  920. package/src/interfaces/epoch-prover.ts +0 -72
  921. package/src/interfaces/get_logs_response.ts +0 -35
  922. package/src/l1-contracts/slash_factory.ts +0 -180
  923. package/src/logs/extended_contract_class_log.ts +0 -87
  924. package/src/logs/extended_directional_app_tagging_secret.ts +0 -87
  925. package/src/logs/extended_public_log.ts +0 -94
  926. package/src/logs/log_filter.ts +0 -36
  927. package/src/logs/log_id.ts +0 -125
  928. package/src/logs/tx_scoped_l2_log.ts +0 -114
  929. package/src/slashing/empire.ts +0 -104
@@ -0,0 +1,609 @@
1
+ # Block Building Timetable Spec
2
+
3
+ This document specifies the timing model for pipelined block building, checkpoint validation, attestation collection, and L1 publishing.
4
+
5
+ ## Goals
6
+
7
+ The timetable has these goals:
8
+
9
+ - schedule block sub-slots so the proposer produces a checkpoint at a predictable cadence;
10
+ - enforce consensus-critical deadlines so validators and the next proposer agree on the proposed chain, by agreeing on when a proposal is too late to build on;
11
+ - maximize the time available for the L1 publish transaction by making the payload ready before the ideal L1 send time, which is one Ethereum slot before the target L2 slot;
12
+ - accept late checkpoint proposals until the next-proposer handoff deadline, and late attestations until the latest useful L1 publish deadline.
13
+
14
+ Pipelining is the only production mode. For target slot `target_slot`, the proposer builds during the preceding `build_slot` and the L1 transaction is meant to land inside `target_slot`.
15
+
16
+ This model does not describe deterministic automine or other synchronous local-mining modes. Those modes may publish inside the same slot and do not use the pipelined build-slot/target-slot timetable.
17
+
18
+ ## Example
19
+
20
+ This example uses the production-like values proposed below: `aztec_slot_duration = 72s`,
21
+ `ethereum_slot_duration = 12s`, `block_duration = 6s`, `p2p_propagation_time = 2s`,
22
+ `checkpoint_proposal_prepare_time = 1s`, and `checkpoint_proposal_init_time = 1s`.
23
+
24
+ All times are offsets from `build_frame_start`. Rows are ordered by the ideal path; deadline-path values show late acceptance cutoffs for the same activity.
25
+
26
+ | Step | Ideal path | Deadline path |
27
+ | --- | ---: | ---: |
28
+ | Build frame opens | +0s (`build_frame_start`) | +0s (`build_frame_start`) |
29
+ | First sub-slot opens | +1s (`first_subslot_start`) | +1s (`first_subslot_start`) |
30
+ | Block 1 build deadline | +7s (`block_build_deadline(0)`) | +7s (`block_build_deadline(0)`) |
31
+ | Build slot starts | +12s (`build_slot_start`) | +12s (`build_slot_start`) |
32
+ | Latest useful block-building start | +59s (`start_deadline`) | +59s (`start_deadline`) |
33
+ | Last block build time | +61s (`last_block_build_time`) | +61s (`last_block_build_time`) |
34
+ | Checkpoint proposal sent | +62s (`checkpoint_proposal_send_time`) | +62s (`checkpoint_proposal_send_time`) |
35
+ | Checkpoint proposal received | +64s (`checkpoint_proposal_receive_ideal_time`) | +66s (`checkpoint_proposal_receive_deadline`) |
36
+ | Proposal validation complete and attestation sent | +70s (`proposal_validation_ideal_time`) | +132s (`attestation_deadline`) |
37
+ | Next-proposer handoff complete | +70s (`next_proposer_handoff_ideal_time`) | +72s (`next_proposer_handoff_deadline`) |
38
+ | Attestation received / deadline | +72s (`attestation_receive_ideal_time`) | +132s (`attestation_deadline`) |
39
+ | Next proposer build frame opens | +72s (`next_proposer_build_frame_start`) | +72s (`next_proposer_build_frame_start`) |
40
+ | L1 publish tx sent / latest useful send | +72s (`l1_publish_ideal_time`) | +132s (`attestation_deadline`) |
41
+
42
+ The ideal path is the proposer scheduling target for maximizing L1 publishing time. The deadline path is the latest consensus-safe path: validators and the next proposer use `checkpoint_proposal_receive_deadline`, which depends only on the target slot timing and `block_duration`.
43
+
44
+ ### Example timeline diagram
45
+
46
+ The diagram highlights the most relevant steps from the table above, as offsets from `build_frame_start` (`target_slot_start - aztec_slot_duration - ethereum_slot_duration`). Blue marks build/structural deadlines, green marks the ideal path, and red marks the late-acceptance deadlines. Dashed lines are slot boundaries.
47
+
48
+ _Mermaid version (evenly spaced):_
49
+
50
+ ```mermaid
51
+ timeline
52
+ title Example timetable (offsets from build_frame_start)
53
+ section Build frame
54
+ +0s : Build frame opens
55
+ +61s : Last block build time
56
+ section Dead zone / handoff
57
+ +64s : Checkpoint proposal received (ideal)
58
+ +66s : Checkpoint proposal received (deadline)
59
+ +72s : Attestations received (ideal) : Next proposer frame opens : L1 publish tx sent (ideal)
60
+ section Target L2 slot
61
+ +132s : Attestation deadline : L1 publish latest useful send
62
+ ```
63
+
64
+ _SVG version (proportional):_
65
+
66
+ ![Example timetable (proportional SVG)](./timetable-example.svg)
67
+
68
+ ## Inputs
69
+
70
+ All timing inputs are expressed in seconds unless otherwise stated. Inputs are grouped by how they are controlled.
71
+
72
+ ### Protocol Constants
73
+
74
+ These values come from the rollup protocol or network definition. Nodes should not tune them locally.
75
+
76
+ | Input | Meaning |
77
+ | --- | --- |
78
+ | `genesis_time` | L1 timestamp for L2 slot zero. |
79
+ | `aztec_slot_duration` | Duration of one L2 slot. |
80
+ | `ethereum_slot_duration` | Duration of one Ethereum slot. |
81
+ | `block_duration` | Normal sub-slot duration allocated to building one block and to validator re-execution. |
82
+
83
+ `block_duration` should be treated as a network-wide timing constant. Validators use it as the expected re-execution
84
+ budget, so proposer and validator nodes must agree on it.
85
+
86
+ ### Build Configuration
87
+
88
+ These values are operational timing budgets. They may differ between production and local test profiles, but nodes in the
89
+ same network should use the same values for coordinated proposer and validator behavior.
90
+
91
+ | Input | Meaning |
92
+ | --- | --- |
93
+ | `min_block_duration` | Minimum block-building time that is still worth allocating if the proposer starts late. |
94
+ | `p2p_propagation_time` | One-way propagation budget for proposals and attestations. |
95
+ | `checkpoint_proposal_prepare_time` | Local time between the last block build finishing and the checkpoint proposal being ready for p2p send. |
96
+ | `checkpoint_proposal_init_time` | Proposer budget reserved at the start of the build frame for sync, the proposer check, and checkpoint initialization before the first block sub-slot opens. |
97
+
98
+ `checkpoint_proposal_prepare_time` includes `completeCheckpoint`, local checkpoint validation, header validation simulation, checkpoint proposal signing, proposed-checkpoint archiver sync, and the immediate call into p2p broadcast.
99
+
100
+ ### Parameters
101
+
102
+ These values change per timetable evaluation.
103
+
104
+ | Input | Meaning |
105
+ | --- | --- |
106
+ | `target_slot` | The L2 slot the checkpoint commits to and whose proposer is building this checkpoint. |
107
+
108
+ ## Derived Slot Times
109
+
110
+ The model derives all wall-clock times from `target_slot`, `genesis_time`, and the slot durations.
111
+
112
+ ```text
113
+ target_slot_start = genesis_time + target_slot * aztec_slot_duration
114
+
115
+ build_slot = target_slot - 1
116
+
117
+ build_slot_start = genesis_time + build_slot * aztec_slot_duration
118
+
119
+ build_frame_start = build_slot_start - ethereum_slot_duration
120
+
121
+ next_proposer_build_frame_start = target_slot_start - ethereum_slot_duration
122
+ ```
123
+
124
+ The build frame starts one Ethereum slot before the build slot starts.
125
+
126
+ ## L1 Publish and Attestation Deadline
127
+
128
+ The model distinguishes an ideal L1 send time from a single hard attestation deadline.
129
+
130
+ ```text
131
+ l1_publish_ideal_time = target_slot_start - ethereum_slot_duration
132
+ ```
133
+
134
+ This is the time by which we want the L1 transaction ready and submitted to maximize the chance of inclusion in the first Ethereum block of `target_slot`.
135
+
136
+ ```text
137
+ last_ethereum_block_in_target_slot = target_slot_start + aztec_slot_duration - ethereum_slot_duration
138
+
139
+ attestation_deadline = last_ethereum_block_in_target_slot - ethereum_slot_duration
140
+ ```
141
+
142
+ `attestation_deadline` is the hard deadline by which validators must have completed re-execution/validation and signed their attestation. It is also the latest useful L1 send time if the only requirement is for the tx to land in the final Ethereum block inside `target_slot`.
143
+
144
+ This deadline is consensus-driven, not operational. It is used for inactivity/slashing decisions, so all nodes must agree
145
+ on it. It is derived only from slot timing protocol constants.
146
+
147
+ With `aztec_slot_duration = 72` and `ethereum_slot_duration = 12`:
148
+
149
+ ```text
150
+ l1_publish_ideal_time = target_slot_start - 12
151
+ attestation_deadline = target_slot_start + 48
152
+ ```
153
+
154
+ ## Ideal Times vs Deadlines
155
+
156
+ _Be conservative in what you send, be liberal in what you accept._
157
+
158
+ The timetable has two rails:
159
+
160
+ - **Ideal times** describe when work should complete on the happy path to maximize the L1 publishing window.
161
+ - **Deadlines** describe the latest time work can complete under the rule that applies to that activity.
162
+
163
+ The proposer should schedule block production and checkpoint proposal sending against ideal L1 publishing. Validators and p2p should enforce consensus deadlines, late attestation deadlines, and small clock-disparity tolerances. This lets delayed validators contribute attestations while keeping the proposer from planning around the slow path.
164
+
165
+ Checkpoint proposal timing has both an ideal target and a hard deadline. The ideal target is derived from the L1 publish path and is not a consensus gate. The hard receive deadline is derived only from the next-proposer handoff constraint.
166
+
167
+ ## Checkpoint Proposal Deadlines
168
+
169
+ The checkpoint proposal affects consensus: it determines the proposed checkpoint the next proposer may build on top of. For that reason, the receive deadline used for validation must not depend on operational budgets such as p2p propagation or L1 publish preparation time.
170
+
171
+ The ideal receive time is a proposer scheduling target. It is the receive time that leaves enough room for validators to re-execute the checkpoint and send attestations back by `l1_publish_ideal_time`:
172
+
173
+ ```text
174
+ checkpoint_proposal_receive_ideal_time = proposal_validation_ideal_time - block_duration
175
+ ```
176
+
177
+ The hard receive deadline is the consensus gate. Validators reject checkpoint proposals that arrive after this time, and the next proposer does not build on them. It is derived from the next proposer's own build frame:
178
+
179
+ ```text
180
+ checkpoint_proposal_receive_deadline = next_proposer_build_frame_start - block_duration
181
+ ```
182
+
183
+ The send time is proposer-owned and is derived by subtracting one propagation hop from the ideal receive time:
184
+
185
+ ```text
186
+ checkpoint_proposal_send_time = checkpoint_proposal_receive_ideal_time - p2p_propagation_time
187
+ ```
188
+
189
+ The sequencer does not need to wait for this send time. It should send the checkpoint proposal as soon as the final block and local checkpoint proposal preparation are complete. The proposer schedules block building only against the ideal L1 publish path:
190
+
191
+ ```text
192
+ last_block_build_time = checkpoint_proposal_send_time - checkpoint_proposal_prepare_time
193
+ ```
194
+
195
+ The first consensus boundary for the checkpoint proposal is `checkpoint_proposal_receive_deadline`, not a send deadline.
196
+
197
+ ## Checkpoint Proposal Materialization and Orphan Pruning
198
+
199
+ After an in-time checkpoint proposal is received, it still has to validate and materialize into the archiver's
200
+ proposed-checkpoint state before the next proposer can safely build on it. The materialization deadline is:
201
+
202
+ ```text
203
+ checkpoint_proposal_synced_deadline = next_proposer_build_frame_start + checkpoint_proposal_sync_grace
204
+ ```
205
+
206
+ `checkpoint_proposal_sync_grace` is a consensus/network value, defaulting to `2 * block_duration`. It is not an
207
+ operator-tuned archiver knob: nodes need to agree on when a received proposal has had enough time to materialize.
208
+
209
+ Orphan proposed-block pruning has two branches:
210
+
211
+ - If no checkpoint proposal was received for the orphan slot, the archiver prunes once strictly past
212
+ `checkpoint_proposal_receive_deadline + orphan_prune_no_proposal_tolerance`.
213
+ - If a checkpoint proposal was received but has not materialized into proposed archiver state, the archiver prunes
214
+ once strictly past `checkpoint_proposal_synced_deadline`.
215
+
216
+ `orphan_prune_no_proposal_tolerance` is archiver-local tolerance, defaulting to 1 second. It only covers
217
+ polling and timer skew in the no-proposal branch; it does not define whether a checkpoint proposal is buildable.
218
+
219
+ The no-proposal branch deliberately does not wait for `attestation_deadline`. A malicious proposer can broadcast
220
+ block proposals while withholding transaction data and never send the checkpoint proposal. Other nodes may then
221
+ spend the remaining validation window trying to collect missing transactions and re-execute a checkpoint that will
222
+ not be buildable by the next proposer. Pruning after the receive deadline plus local tolerance restores next-proposer
223
+ liveness.
224
+
225
+ The received-proposal branch gives bounded time for validation and archiver insertion. Validators that do not
226
+ finish re-execution before `checkpoint_proposal_synced_deadline` may fail to attest on time and may only follow the
227
+ checkpoint once it is re-synced from L1.
228
+
229
+ ## Proposal Validation and Attestation Times
230
+
231
+ The relevant validator-side activity is proposal validation: receiving proposals, collecting transactions if needed, re-executing blocks, validating the checkpoint, and then signing an attestation.
232
+
233
+ For intermediate block proposals within the checkpoint, the same principle applies at each sub-slot: validators should receive the proposal, collect any missing transactions, and re-execute the block within the block's validation budget. For the final checkpoint proposal, `proposal_validation_ideal_time` is the aggregate end-of-checkpoint validation target.
234
+
235
+ Ideal validation completion is computed from the ideal L1 send time:
236
+
237
+ ```text
238
+ attestation_receive_ideal_time = l1_publish_ideal_time
239
+
240
+ proposal_validation_ideal_time = attestation_receive_ideal_time - p2p_propagation_time
241
+ ```
242
+
243
+ The hard validation deadline is `attestation_deadline`:
244
+
245
+ ```text
246
+ block_validation_deadline = attestation_deadline
247
+ checkpoint_validation_deadline = attestation_deadline
248
+ ```
249
+
250
+ The ideal difference between validation completion and attestation receipt is one propagation hop:
251
+
252
+ ```text
253
+ attestation_receive_ideal_time - proposal_validation_ideal_time = p2p_propagation_time
254
+ ```
255
+
256
+ The proposer should aim to have enough attestations by `attestation_receive_ideal_time`. Validators may still validate blocks, validate the checkpoint, and sign attestations until `attestation_deadline`. This deadline is the same for all block proposals and the final checkpoint proposal. It must be consensus-driven because inactivity/slashing checks use it to decide whether a validator failed to attest on time.
257
+
258
+ The `attestation_deadline` above is a validation/re-execution deadline, not an arrival gate. Arrival at the p2p layer is gated separately and more tightly: intermediate block proposals share the checkpoint proposal's receive window as their arrival gate. Every block proposal for a slot is sent before that slot's checkpoint proposal, so nothing legitimate can arrive after `checkpoint_proposal_receive_deadline`. A block proposal arriving after that deadline is therefore rejected at p2p ingress, exactly as a late checkpoint proposal would be. The `attestation_deadline` remains the validation/re-execution deadline for any block or checkpoint proposal that did arrive in time.
259
+
260
+ ## Block Sub-Slots
261
+
262
+ Block sub-slots are fixed windows counted from the first sub-slot start, which sits one `checkpoint_proposal_init_time` after `build_frame_start`. `min_block_duration` is the spec name for the minimum execution headroom currently called `minExecutionTime`.
263
+
264
+ `checkpoint_proposal_init_time` is the proposer budget reserved at the start of the build frame for sync, the proposer check, and checkpoint initialization. The proposer rarely begins building exactly at `build_frame_start` — it enters the build loop only after that prologue completes — so the sub-slot grid is offset by this budget. Without it, any non-zero prologue eats into the first sub-slot, and when `min_block_duration` equals `block_duration` (tight fast profiles) the first sub-slot becomes unstartable, leaving the checkpoint under-packed. This is an operational proposer budget, so it lives in the proposer timetable and does not affect any consensus-acceptance deadline.
265
+
266
+ ```text
267
+ first_subslot_start = build_frame_start + checkpoint_proposal_init_time
268
+
269
+ block_build_start(block_index) = first_subslot_start + block_index * block_duration
270
+
271
+ block_build_deadline(block_index) = first_subslot_start + (block_index + 1) * block_duration
272
+ ```
273
+
274
+ where `block_index` is zero-based.
275
+
276
+ Sub-slot starts and deadlines do not move when earlier blocks finish early or late. If block `k` finishes early, the proposer waits until `block_build_deadline(k)` before attempting block `k + 1`. If block `k` finishes late, the next sub-slot keeps its original deadline and therefore has less remaining headroom.
277
+
278
+ The number of full-duration block sub-slots a node's local operational budgets compute is:
279
+
280
+ ```text
281
+ computed_blocks_per_checkpoint = floor((last_block_build_time - first_subslot_start) / block_duration)
282
+ ```
283
+
284
+ The effective `max_blocks_per_checkpoint` is this computed value, clamped down to the explicit network value when
285
+ the network value is lower. A network value at or above the computed count has no effect and the computed count is
286
+ used. When the local budgets compute more blocks than the network allows, the computed count is clamped down to the
287
+ network value and a warning is emitted. Clamping never raises the effective value above what the local budgets can
288
+ fit, preserving the invariant that every offered sub-slot's build deadline stays within `last_block_build_time`.
289
+
290
+ `max_blocks_per_checkpoint` is also an input to the network tx admission limits (it divides the per-checkpoint gas budgets into a per-block share); see [`../gas/README.md`](../gas/README.md) under "Gas and Data Limits".
291
+
292
+ The start deadline is the latest time at which the proposer can still squeeze one minimum-duration block and make the ideal L1 publish path:
293
+
294
+ ```text
295
+ start_deadline = last_block_build_time - min_block_duration
296
+ ```
297
+
298
+ If the sequencer reaches the build frame after `start_deadline`, it should abandon block production for the slot. A later
299
+ checkpoint proposal might still satisfy the consensus receive deadline, but the proposer timetable intentionally does not
300
+ plan around that path because it prioritizes publishing at `l1_publish_ideal_time`. If it starts before `start_deadline`
301
+ but is late for a particular sub-slot, it should skip to the next available sub-slot with at least `min_block_duration`
302
+ remaining.
303
+
304
+ When choosing whether to start a block, the proposer scans the sub-slots in order and selects the first one whose
305
+ deadline is at least `min_block_duration` in the future:
306
+
307
+ ```text
308
+ block_build_deadline(block_index) - now >= min_block_duration
309
+ ```
310
+
311
+ Sub-slots that do not satisfy this condition are skipped. This is also the rule while waiting for enough transactions. If
312
+ the proposer is waiting for txs for a selected sub-slot, it may wait only until:
313
+
314
+ ```text
315
+ wait_for_txs_deadline(block_index) = block_build_deadline(block_index) - min_block_duration
316
+ ```
317
+
318
+ If enough txs arrive before `wait_for_txs_deadline(block_index)`, the proposer starts building in that sub-slot. If not,
319
+ the sub-slot is dropped without committing a block, the proposer waits until the sub-slot deadline, and then retries with
320
+ the next available sub-slot. If the dropped sub-slot was the final sub-slot, block production for the checkpoint ends.
321
+ Empty-checkpoint forcing may override the tx-count rule, but it must not remove the `min_block_duration` headroom
322
+ requirement.
323
+
324
+ `block_build_deadline(block_index)` is an execution cutoff, not only a scheduling hint. Block building should stop public
325
+ tx execution at that deadline and then finalize the block from whatever txs were successfully executed. Finalization may
326
+ spill slightly past the deadline, but later sub-slot starts and deadlines must not move.
327
+
328
+ ## Parallel Execution
329
+
330
+ For non-final blocks, proposer building and committee validation are pipelined. After the proposer finishes and broadcasts
331
+ block `k`, validators receive it, collect any missing txs, and re-execute it while the proposer waits for or starts block
332
+ `k + 1`.
333
+
334
+ This is why `block_duration` is used both as the proposer’s normal build cadence and as the validator re-execution
335
+ budget. The system does not wait for committee validation of block `k` before beginning block `k + 1`; it relies on the
336
+ fixed sub-slot cadence and p2p propagation budget to keep both sides aligned.
337
+
338
+ The final block is different. There is no block `k + 1` to build in parallel, and the final block should not be broadcast
339
+ as a regular block proposal. The proposer holds it and includes it in the checkpoint proposal, then spends the dead zone
340
+ assembling and sending that checkpoint proposal, waiting for committee re-execution and attestations, and preparing the
341
+ L1 publish request.
342
+
343
+ ## Handling Timing Variations
344
+
345
+ The sub-slot schedule is fixed, so timing variation changes how much headroom remains; it does not move deadlines.
346
+
347
+ - If the proposer initializes early, the first block gets extra time before its fixed deadline.
348
+ - If the proposer initializes late but the current sub-slot still has at least `min_block_duration` remaining, it may
349
+ build in that sub-slot.
350
+ - If initialization or a previous block overrun leaves less than `min_block_duration` before the current sub-slot deadline, that sub-slot is skipped.
351
+ - If a block finishes early, the proposer waits until the next sub-slot boundary before attempting the next block.
352
+ - If a block finishes late, the next block may still start if some later sub-slot has enough remaining headroom.
353
+ - If a block cannot be built because there are not enough txs, the current sub-slot is dropped and the proposer retries at the next available sub-slot, unless the dropped sub-slot was the final one.
354
+
355
+ ## Dead Zone
356
+
357
+ The dead zone is the time between the previous proposer finishing its final block and the next proposer starting its own build frame. During this interval no proposer is actively building new blocks.
358
+
359
+ ```text
360
+ dead_zone = next_proposer_build_frame_start - last_block_build_time
361
+ ```
362
+
363
+ Expanded through the ideal L1 publish path:
364
+
365
+ ```text
366
+ dead_zone = checkpoint_proposal_prepare_time
367
+ + p2p_propagation_time
368
+ + block_duration
369
+ + p2p_propagation_time
370
+ ```
371
+
372
+ The two `p2p_propagation_time` terms are different hops:
373
+
374
+ - checkpoint proposal propagation from proposer to validators;
375
+ - attestation propagation from validators back to the proposer.
376
+
377
+ The dead zone is deliberate. It buys enough time to assemble and broadcast the checkpoint proposal, let validators re-execute it, and receive attestations back before `l1_publish_ideal_time`. A later checkpoint proposal may still satisfy the consensus handoff deadline, but the proposer does not size block production around that fallback.
378
+
379
+ ## Next-Proposer Handoff
380
+
381
+ The next proposer must have enough time to receive and re-execute the previous checkpoint before its own build frame starts. This is the consensus-critical receive deadline:
382
+
383
+ ```text
384
+ next_proposer_handoff_deadline = checkpoint_proposal_receive_deadline + block_duration
385
+
386
+ next_proposer_handoff_deadline = next_proposer_build_frame_start
387
+ ```
388
+
389
+ The handoff driven by the ideal path that maximizes L1 inclusion times is earlier:
390
+
391
+ ```text
392
+ next_proposer_handoff_ideal_time = checkpoint_proposal_receive_ideal_time + block_duration
393
+
394
+ next_proposer_handoff_ideal_time = next_proposer_build_frame_start - p2p_propagation_time
395
+ ```
396
+
397
+ Therefore:
398
+
399
+ ```text
400
+ next_proposer_handoff_ideal_time <= next_proposer_build_frame_start
401
+
402
+ next_proposer_handoff_deadline = next_proposer_build_frame_start
403
+ ```
404
+
405
+ The ideal handoff margin is:
406
+
407
+ ```text
408
+ next_proposer_build_frame_start - next_proposer_handoff_ideal_time = p2p_propagation_time
409
+ ```
410
+
411
+ The consensus handoff deadline is `p2p_propagation_time` later than the ideal handoff target. That slack is for accepting otherwise valid late checkpoint proposals, not for sizing normal block production.
412
+
413
+ ## Constraints
414
+
415
+ ### Input constraints
416
+
417
+ ```text
418
+ target_slot > 0
419
+ aztec_slot_duration > 0
420
+ ethereum_slot_duration > 0
421
+ aztec_slot_duration >= ethereum_slot_duration
422
+ aztec_slot_duration % ethereum_slot_duration == 0
423
+ block_duration > 0
424
+ min_block_duration > 0
425
+ min_block_duration <= block_duration
426
+ p2p_propagation_time >= 0
427
+ checkpoint_proposal_prepare_time >= 0
428
+ checkpoint_proposal_init_time >= 0
429
+ ```
430
+
431
+ ### Build frame constraint
432
+
433
+ ```text
434
+ build_frame_start = build_slot_start - ethereum_slot_duration
435
+ ```
436
+
437
+ ### P2P propagation constraints
438
+
439
+ ```text
440
+ checkpoint_proposal_receive_ideal_time - checkpoint_proposal_send_time = p2p_propagation_time
441
+
442
+ attestation_receive_ideal_time - proposal_validation_ideal_time = p2p_propagation_time
443
+ ```
444
+
445
+ ### Next proposer constraint
446
+
447
+ ```text
448
+ checkpoint_proposal_receive_deadline = next_proposer_build_frame_start - block_duration
449
+
450
+ next_proposer_handoff_deadline = checkpoint_proposal_receive_deadline + block_duration
451
+
452
+ next_proposer_handoff_deadline = next_proposer_build_frame_start
453
+ ```
454
+
455
+ The ideal target must be no later than the consensus handoff:
456
+
457
+ ```text
458
+ next_proposer_handoff_ideal_time = checkpoint_proposal_receive_ideal_time + block_duration
459
+
460
+ next_proposer_handoff_ideal_time = next_proposer_build_frame_start - p2p_propagation_time
461
+
462
+ next_proposer_handoff_ideal_time <= next_proposer_handoff_deadline
463
+ ```
464
+
465
+ ### Attestation deadline constraints
466
+
467
+ ```text
468
+ attestation_deadline = last_ethereum_block_in_target_slot - ethereum_slot_duration
469
+
470
+ block_validation_deadline = attestation_deadline
471
+
472
+ checkpoint_validation_deadline = attestation_deadline
473
+ ```
474
+
475
+ ### Checkpoint proposal preparation constraint
476
+
477
+ ```text
478
+ checkpoint_proposal_send_time - last_block_build_time = checkpoint_proposal_prepare_time
479
+ ```
480
+
481
+ ### Minimum useful checkpoint constraint
482
+
483
+ ```text
484
+ start_deadline >= build_frame_start
485
+ max_blocks_per_checkpoint >= 1
486
+ ```
487
+
488
+ Expanded:
489
+
490
+ ```text
491
+ last_block_build_time - min_block_duration >= build_frame_start
492
+ ```
493
+
494
+ ### Ideal-before-deadline constraints
495
+
496
+ ```text
497
+ l1_publish_ideal_time <= attestation_deadline
498
+ attestation_receive_ideal_time <= attestation_deadline
499
+ proposal_validation_ideal_time <= attestation_deadline
500
+ checkpoint_proposal_receive_ideal_time <= checkpoint_proposal_receive_deadline
501
+ ```
502
+
503
+ ### Happy-path readiness constraint
504
+
505
+ To maximize the L1 publishing window, the proposer should not plan around late attestation acceptance. On the happy path:
506
+
507
+ ```text
508
+ actual_checkpoint_proposal_receive_time <= checkpoint_proposal_receive_ideal_time
509
+
510
+ actual_proposal_validation_complete_time <= proposal_validation_ideal_time
511
+
512
+ actual_attestation_receive_time <= attestation_receive_ideal_time
513
+ ```
514
+
515
+ Then the L1 publish tx can be sent at:
516
+
517
+ ```text
518
+ l1_publish_ideal_time
519
+ ```
520
+
521
+ For consensus acceptance:
522
+
523
+ ```text
524
+ actual_checkpoint_proposal_receive_time <= checkpoint_proposal_receive_deadline
525
+ actual_block_validation_complete_time <= attestation_deadline
526
+ actual_checkpoint_validation_complete_time <= attestation_deadline
527
+ actual_attestation_signed_time <= attestation_deadline
528
+ ```
529
+
530
+ ## Suggested Constants
531
+
532
+ These are proposed values for the new model. They intentionally separate production settings from local e2e settings with mocked p2p networks.
533
+
534
+ ### Production
535
+
536
+ | Input | Proposed value | Rationale |
537
+ | --- | ---: | --- |
538
+ | `aztec_slot_duration` | 72s | Mainnet-like L2 slot duration. |
539
+ | `ethereum_slot_duration` | 12s | Ethereum mainnet slot duration. |
540
+ | `block_duration` | 6s | Allows up to 10 blocks while still targeting the ideal L1 publish time. |
541
+ | `min_block_duration` | 2s | Conservative minimum useful execution budget. |
542
+ | `p2p_propagation_time` | 2s | Conservative one-way proposal/attestation propagation budget. |
543
+ | `checkpoint_proposal_prepare_time` | 1s | Conservative checkpoint assembly and broadcast preparation budget. |
544
+ | `checkpoint_proposal_init_time` | 1s | Sync + proposer-check + init budget reserved before the first sub-slot. |
545
+
546
+ Derived shape with these values:
547
+
548
+ ```text
549
+ l1_publish_ideal_time is 12s before target_slot_start
550
+ attestation_deadline is 48s after target_slot_start
551
+ attestation_receive_ideal_time is 12s before target_slot_start
552
+ proposal_validation_ideal_time is 14s before target_slot_start
553
+ checkpoint_proposal_receive_ideal_time is 20s before target_slot_start
554
+ checkpoint_proposal_receive_deadline is 18s before target_slot_start
555
+ checkpoint_proposal_send_time is 22s before target_slot_start
556
+ last_block_build_time is 23s before target_slot_start
557
+ dead_zone = 11s
558
+ max_blocks_per_checkpoint = 10
559
+ ```
560
+
561
+ The ideal publish path is the normal scheduling target: it reserves one attestation propagation hop, validator re-execution time, one checkpoint proposal propagation hop, and local checkpoint proposal preparation. The hard checkpoint proposal receive deadline is later and is used for consensus acceptance.
562
+
563
+ ### Local e2e with mocked p2p
564
+
565
+ For mocked p2p networks, local profiles can use shorter propagation and preparation budgets. A fast profile should still
566
+ preserve the same ordering constraints as production.
567
+
568
+ These fast-profile budgets are applied automatically when `ethereum_slot_duration` is below `FAST_PROFILE_ETHEREUM_SLOT_DURATION` (8s): the timetable clamps `p2p_propagation_time`, `checkpoint_proposal_prepare_time`, and `min_block_duration` down to the fast values below. Without this, a fast network would inherit the conservative production budgets (e.g. `p2p_propagation_time = 2s`), which shrink the per-checkpoint build window and under-pack checkpoints. The clamp only lowers budgets, so an operator that explicitly configures a smaller value keeps it; `checkpoint_proposal_init_time` is a proposer prologue budget and is not affected by the profile.
569
+
570
+ Recommended fast local profile:
571
+
572
+ | Input | Proposed value | Rationale |
573
+ | --- | ---: | --- |
574
+ | `aztec_slot_duration` | 36s | Fast local e2e slot duration for epoch tests. |
575
+ | `ethereum_slot_duration` | 4s | Fast anvil-style Ethereum slot duration. |
576
+ | `block_duration` | 6s | Fast block cadence while still leaving room for validation. |
577
+ | `min_block_duration` | 1s | Local execution and mocked p2p are faster; preserves late-start behavior. |
578
+ | `p2p_propagation_time` | 0.5s | Mocked one-way proposal/attestation propagation budget. |
579
+ | `checkpoint_proposal_prepare_time` | 0.5s | Short local checkpoint assembly and broadcast preparation budget. |
580
+ | `checkpoint_proposal_init_time` | 1s | Sync + proposer-check + init budget reserved before the first sub-slot. |
581
+
582
+ Derived shape with these values:
583
+
584
+ ```text
585
+ l1_publish_ideal_time is 4s before target_slot_start
586
+ attestation_deadline is 28s after target_slot_start
587
+ attestation_receive_ideal_time is 4s before target_slot_start
588
+ proposal_validation_ideal_time is 4.5s before target_slot_start
589
+ checkpoint_proposal_receive_ideal_time is 10.5s before target_slot_start
590
+ checkpoint_proposal_receive_deadline is 10s before target_slot_start
591
+ checkpoint_proposal_send_time is 11s before target_slot_start
592
+ last_block_build_time is 11.5s before target_slot_start
593
+ dead_zone = 7.5s
594
+ max_blocks_per_checkpoint = 4
595
+ ```
596
+
597
+ Alternative slower-block local profile:
598
+
599
+ | Input | Proposed value | Rationale |
600
+ | --- | ---: | --- |
601
+ | `aztec_slot_duration` | 36s |
602
+ | `ethereum_slot_duration` | 4s |
603
+ | `block_duration` | 8s |
604
+ | `min_block_duration` | 1s |
605
+ | `p2p_propagation_time` | 0.5s |
606
+ | `checkpoint_proposal_prepare_time` | 0.5s |
607
+ | `checkpoint_proposal_init_time` | 1s |
608
+
609
+ This yields `max_blocks_per_checkpoint = 3` for a 36s/4s/8s local profile.