@aztec/stdlib 5.0.0-private.20260318 → 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 +11 -8
  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 -1
  133. package/dest/config/index.d.ts.map +1 -1
  134. package/dest/config/index.js +1 -0
  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 +6 -6
  145. package/dest/contract/contract_address.d.ts.map +1 -1
  146. package/dest/contract/contract_address.js +6 -5
  147. package/dest/contract/contract_class_id.d.ts +2 -2
  148. package/dest/contract/contract_class_id.js +2 -2
  149. package/dest/contract/contract_deployment_data.d.ts +15 -61
  150. package/dest/contract/contract_deployment_data.d.ts.map +1 -1
  151. package/dest/contract/contract_instance.d.ts +4 -2
  152. package/dest/contract/contract_instance.d.ts.map +1 -1
  153. package/dest/contract/contract_instance.js +10 -3
  154. package/dest/contract/index.d.ts +1 -3
  155. package/dest/contract/index.d.ts.map +1 -1
  156. package/dest/contract/index.js +0 -2
  157. package/dest/contract/interfaces/contract_class.d.ts +17 -241
  158. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  159. package/dest/contract/interfaces/contract_class.js +1 -28
  160. package/dest/contract/interfaces/contract_instance.d.ts +41 -95
  161. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  162. package/dest/contract/interfaces/contract_instance.js +4 -2
  163. package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
  164. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  165. package/dest/contract/interfaces/node-info.d.ts +11 -1
  166. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  167. package/dest/contract/interfaces/node-info.js +7 -1
  168. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
  169. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  170. package/dest/contract/private_function.d.ts +1 -1
  171. package/dest/contract/private_function.d.ts.map +1 -1
  172. package/dest/contract/private_function.js +2 -4
  173. package/dest/database-version/database_version.d.ts +5 -11
  174. package/dest/database-version/database_version.d.ts.map +1 -1
  175. package/dest/database-version/version_manager.d.ts +6 -2
  176. package/dest/database-version/version_manager.d.ts.map +1 -1
  177. package/dest/database-version/version_manager.js +12 -1
  178. package/dest/deserialization/index.d.ts +35 -3
  179. package/dest/deserialization/index.d.ts.map +1 -1
  180. package/dest/deserialization/index.js +32 -1
  181. package/dest/epoch-helpers/index.d.ts +10 -22
  182. package/dest/epoch-helpers/index.d.ts.map +1 -1
  183. package/dest/epoch-helpers/index.js +12 -0
  184. package/dest/file-store/factory.d.ts +4 -3
  185. package/dest/file-store/factory.d.ts.map +1 -1
  186. package/dest/file-store/factory.js +2 -2
  187. package/dest/file-store/http.d.ts +9 -2
  188. package/dest/file-store/http.d.ts.map +1 -1
  189. package/dest/file-store/http.js +20 -9
  190. package/dest/file-store/index.d.ts +2 -1
  191. package/dest/file-store/index.d.ts.map +1 -1
  192. package/dest/gas/fee_math.d.ts +49 -0
  193. package/dest/gas/fee_math.d.ts.map +1 -0
  194. package/dest/gas/fee_math.js +80 -0
  195. package/dest/gas/gas.d.ts +9 -14
  196. package/dest/gas/gas.d.ts.map +1 -1
  197. package/dest/gas/gas.js +6 -3
  198. package/dest/gas/gas_fees.d.ts +13 -14
  199. package/dest/gas/gas_fees.d.ts.map +1 -1
  200. package/dest/gas/gas_fees.js +17 -4
  201. package/dest/gas/gas_settings.d.ts +60 -86
  202. package/dest/gas/gas_settings.d.ts.map +1 -1
  203. package/dest/gas/gas_settings.js +49 -9
  204. package/dest/gas/index.d.ts +3 -1
  205. package/dest/gas/index.d.ts.map +1 -1
  206. package/dest/gas/index.js +2 -0
  207. package/dest/gas/tx_gas_limits.d.ts +72 -0
  208. package/dest/gas/tx_gas_limits.d.ts.map +1 -0
  209. package/dest/gas/tx_gas_limits.js +85 -0
  210. package/dest/ha-signing/config.d.ts +11 -75
  211. package/dest/ha-signing/config.d.ts.map +1 -1
  212. package/dest/ha-signing/config.js +9 -18
  213. package/dest/ha-signing/index.d.ts +2 -2
  214. package/dest/ha-signing/index.d.ts.map +1 -1
  215. package/dest/ha-signing/index.js +1 -1
  216. package/dest/ha-signing/local_config.d.ts +3 -34
  217. package/dest/ha-signing/local_config.d.ts.map +1 -1
  218. package/dest/ha-signing/local_config.js +2 -2
  219. package/dest/ha-signing/types.d.ts +37 -32
  220. package/dest/ha-signing/types.d.ts.map +1 -1
  221. package/dest/ha-signing/types.js +13 -6
  222. package/dest/hash/hash.d.ts +34 -1
  223. package/dest/hash/hash.d.ts.map +1 -1
  224. package/dest/hash/hash.js +63 -2
  225. package/dest/interfaces/allowed_element.d.ts +4 -28
  226. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  227. package/dest/interfaces/api_limit.d.ts +1 -1
  228. package/dest/interfaces/api_limit.js +1 -1
  229. package/dest/interfaces/archiver.d.ts +20 -32
  230. package/dest/interfaces/archiver.d.ts.map +1 -1
  231. package/dest/interfaces/archiver.js +215 -70
  232. package/dest/interfaces/aztec-node-admin.d.ts +71 -308
  233. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  234. package/dest/interfaces/aztec-node-admin.js +60 -17
  235. package/dest/interfaces/aztec-node-debug.d.ts +34 -0
  236. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  237. package/dest/interfaces/aztec-node-debug.js +29 -0
  238. package/dest/interfaces/aztec-node.d.ts +156 -112
  239. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  240. package/dest/interfaces/aztec-node.js +354 -71
  241. package/dest/interfaces/block-builder.d.ts +30 -7
  242. package/dest/interfaces/block-builder.d.ts.map +1 -1
  243. package/dest/interfaces/block-builder.js +1 -4
  244. package/dest/interfaces/block_response.d.ts +90 -0
  245. package/dest/interfaces/block_response.d.ts.map +1 -0
  246. package/dest/interfaces/block_response.js +30 -0
  247. package/dest/interfaces/chain_tips.d.ts +50 -0
  248. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  249. package/dest/interfaces/chain_tips.js +11 -0
  250. package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
  251. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  252. package/dest/interfaces/checkpoint_parameter.js +18 -0
  253. package/dest/interfaces/checkpoint_response.d.ts +122 -0
  254. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  255. package/dest/interfaces/checkpoint_response.js +26 -0
  256. package/dest/interfaces/client.d.ts +9 -2
  257. package/dest/interfaces/client.d.ts.map +1 -1
  258. package/dest/interfaces/client.js +7 -1
  259. package/dest/interfaces/configs.d.ts +63 -139
  260. package/dest/interfaces/configs.d.ts.map +1 -1
  261. package/dest/interfaces/configs.js +13 -3
  262. package/dest/interfaces/get_tx_by_hash_options.d.ts +9 -0
  263. package/dest/interfaces/get_tx_by_hash_options.d.ts.map +1 -0
  264. package/dest/interfaces/get_tx_by_hash_options.js +4 -0
  265. package/dest/interfaces/l1_publish_info.d.ts +29 -0
  266. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  267. package/dest/interfaces/l1_publish_info.js +26 -0
  268. package/dest/interfaces/l2_logs_source.d.ts +14 -36
  269. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  270. package/dest/interfaces/l2_logs_source.js +5 -0
  271. package/dest/interfaces/merkle_tree_operations.d.ts +4 -3
  272. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  273. package/dest/interfaces/p2p-bootstrap.js +8 -2
  274. package/dest/interfaces/p2p.d.ts +46 -7
  275. package/dest/interfaces/p2p.d.ts.map +1 -1
  276. package/dest/interfaces/p2p.js +41 -6
  277. package/dest/interfaces/private_kernel_prover.d.ts +62 -2
  278. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  279. package/dest/interfaces/prover-agent.d.ts +5 -23
  280. package/dest/interfaces/prover-agent.d.ts.map +1 -1
  281. package/dest/interfaces/prover-agent.js +4 -1
  282. package/dest/interfaces/prover-client.d.ts +7 -29
  283. package/dest/interfaces/prover-client.d.ts.map +1 -1
  284. package/dest/interfaces/prover-client.js +0 -3
  285. package/dest/interfaces/prover-node.d.ts +8 -3
  286. package/dest/interfaces/prover-node.d.ts.map +1 -1
  287. package/dest/interfaces/prover-node.js +30 -14
  288. package/dest/interfaces/proving-job-source.js +24 -4
  289. package/dest/interfaces/proving-job.d.ts +763 -5814
  290. package/dest/interfaces/proving-job.d.ts.map +1 -1
  291. package/dest/interfaces/proving-job.js +1 -1
  292. package/dest/interfaces/public_storage_override.d.ts +22 -0
  293. package/dest/interfaces/public_storage_override.d.ts.map +1 -0
  294. package/dest/interfaces/public_storage_override.js +7 -0
  295. package/dest/interfaces/server.d.ts +6 -2
  296. package/dest/interfaces/server.d.ts.map +1 -1
  297. package/dest/interfaces/server.js +5 -1
  298. package/dest/interfaces/slasher.d.ts +25 -65
  299. package/dest/interfaces/slasher.d.ts.map +1 -1
  300. package/dest/interfaces/slasher.js +8 -4
  301. package/dest/interfaces/tx_provider.d.ts +6 -1
  302. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  303. package/dest/interfaces/validator.d.ts +55 -248
  304. package/dest/interfaces/validator.d.ts.map +1 -1
  305. package/dest/interfaces/validator.js +8 -2
  306. package/dest/interfaces/world_state.d.ts +2 -2
  307. package/dest/interfaces/world_state.d.ts.map +1 -1
  308. package/dest/kernel/hints/key_validation_request.d.ts +12 -8
  309. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  310. package/dest/kernel/hints/key_validation_request.js +20 -18
  311. package/dest/kernel/index.d.ts +5 -1
  312. package/dest/kernel/index.d.ts.map +1 -1
  313. package/dest/kernel/index.js +4 -0
  314. package/dest/kernel/log_hash.d.ts +6 -2
  315. package/dest/kernel/log_hash.d.ts.map +1 -1
  316. package/dest/kernel/log_hash.js +21 -9
  317. package/dest/kernel/private_circuit_public_inputs.d.ts +2 -2
  318. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  319. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -2
  320. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  321. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +23 -0
  322. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
  323. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +35 -0
  324. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +24 -0
  325. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
  326. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +37 -0
  327. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
  328. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
  329. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
  330. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
  331. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
  332. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
  333. package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
  334. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  335. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +9 -6
  336. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  337. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +22 -7
  338. package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
  339. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  340. package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
  341. package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
  342. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  343. package/dest/kernel/private_to_public_accumulated_data.js +6 -3
  344. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +5 -4
  345. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  346. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -3
  347. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
  348. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  349. package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
  350. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +5 -4
  351. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  352. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -3
  353. package/dest/kernel/public_call_request.d.ts +15 -30
  354. package/dest/kernel/public_call_request.d.ts.map +1 -1
  355. package/dest/kernel/public_call_request.js +16 -7
  356. package/dest/keys/derivation.d.ts +6 -2
  357. package/dest/keys/derivation.d.ts.map +1 -1
  358. package/dest/keys/derivation.js +16 -6
  359. package/dest/keys/public_key.d.ts +22 -3
  360. package/dest/keys/public_key.d.ts.map +1 -1
  361. package/dest/keys/public_key.js +20 -1
  362. package/dest/keys/public_keys.d.ts +55 -82
  363. package/dest/keys/public_keys.d.ts.map +1 -1
  364. package/dest/keys/public_keys.js +102 -74
  365. package/dest/kv-store/config.d.ts +3 -6
  366. package/dest/kv-store/config.d.ts.map +1 -1
  367. package/dest/kv-store/config.js +2 -7
  368. package/dest/l1-contracts/index.d.ts +2 -2
  369. package/dest/l1-contracts/index.d.ts.map +1 -1
  370. package/dest/l1-contracts/index.js +1 -1
  371. package/dest/logs/app_tagging_secret.d.ts +46 -0
  372. package/dest/logs/app_tagging_secret.d.ts.map +1 -0
  373. package/dest/logs/app_tagging_secret.js +109 -0
  374. package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
  375. package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
  376. package/dest/logs/app_tagging_secret_kind.js +17 -0
  377. package/dest/logs/contract_class_log.d.ts +16 -34
  378. package/dest/logs/contract_class_log.d.ts.map +1 -1
  379. package/dest/logs/contract_class_log.js +11 -9
  380. package/dest/logs/index.d.ts +7 -7
  381. package/dest/logs/index.d.ts.map +1 -1
  382. package/dest/logs/index.js +6 -6
  383. package/dest/logs/log_cursor.d.ts +51 -0
  384. package/dest/logs/log_cursor.d.ts.map +1 -0
  385. package/dest/logs/log_cursor.js +82 -0
  386. package/dest/logs/log_result.d.ts +54 -0
  387. package/dest/logs/log_result.d.ts.map +1 -0
  388. package/dest/logs/log_result.js +56 -0
  389. package/dest/logs/logs_query.d.ts +82 -0
  390. package/dest/logs/logs_query.d.ts.map +1 -0
  391. package/dest/logs/logs_query.js +50 -0
  392. package/dest/logs/message_context.d.ts +6 -8
  393. package/dest/logs/message_context.d.ts.map +1 -1
  394. package/dest/logs/message_context.js +27 -9
  395. package/dest/logs/pending_tagged_log.d.ts +2 -3
  396. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  397. package/dest/logs/pending_tagged_log.js +2 -2
  398. package/dest/logs/pre_tag.d.ts +11 -24
  399. package/dest/logs/pre_tag.d.ts.map +1 -1
  400. package/dest/logs/pre_tag.js +2 -2
  401. package/dest/logs/private_log.d.ts +7 -12
  402. package/dest/logs/private_log.d.ts.map +1 -1
  403. package/dest/logs/private_log.js +6 -3
  404. package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
  405. package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
  406. package/dest/logs/query_all_logs_by_tags.js +64 -0
  407. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  408. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  409. package/dest/logs/shared_secret_derivation.js +15 -9
  410. package/dest/logs/siloed_tag.d.ts +8 -7
  411. package/dest/logs/siloed_tag.d.ts.map +1 -1
  412. package/dest/logs/siloed_tag.js +13 -3
  413. package/dest/logs/tag.d.ts +5 -6
  414. package/dest/logs/tag.d.ts.map +1 -1
  415. package/dest/logs/tag.js +4 -0
  416. package/dest/logs/tagging_index_range.d.ts +13 -31
  417. package/dest/logs/tagging_index_range.d.ts.map +1 -1
  418. package/dest/logs/tagging_index_range.js +2 -2
  419. package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
  420. package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
  421. package/dest/messaging/append_l1_to_l2_messages.js +12 -0
  422. package/dest/messaging/index.d.ts +2 -1
  423. package/dest/messaging/index.d.ts.map +1 -1
  424. package/dest/messaging/index.js +1 -0
  425. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  426. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  427. package/dest/messaging/l1_to_l2_message.js +11 -13
  428. package/dest/messaging/l2_to_l1_membership.d.ts +43 -6
  429. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  430. package/dest/messaging/l2_to_l1_membership.js +72 -12
  431. package/dest/messaging/l2_to_l1_message.d.ts +38 -112
  432. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  433. package/dest/messaging/l2_to_l1_message.js +21 -12
  434. package/dest/noir/index.d.ts +5 -3
  435. package/dest/noir/index.d.ts.map +1 -1
  436. package/dest/note/note.d.ts +2 -2
  437. package/dest/note/note.d.ts.map +1 -1
  438. package/dest/note/note_dao.d.ts +1 -1
  439. package/dest/note/note_dao.d.ts.map +1 -1
  440. package/dest/note/note_dao.js +1 -4
  441. package/dest/p2p/block_proposal.d.ts +31 -14
  442. package/dest/p2p/block_proposal.d.ts.map +1 -1
  443. package/dest/p2p/block_proposal.js +57 -39
  444. package/dest/p2p/checkpoint_attestation.d.ts +15 -9
  445. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  446. package/dest/p2p/checkpoint_attestation.js +23 -24
  447. package/dest/p2p/checkpoint_proposal.d.ts +35 -16
  448. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  449. package/dest/p2p/checkpoint_proposal.js +59 -49
  450. package/dest/p2p/consensus_payload.d.ts +26 -20
  451. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  452. package/dest/p2p/consensus_payload.js +38 -19
  453. package/dest/p2p/gossipable.d.ts +4 -4
  454. package/dest/p2p/gossipable.d.ts.map +1 -1
  455. package/dest/p2p/signature_utils.d.ts +28 -19
  456. package/dest/p2p/signature_utils.d.ts.map +1 -1
  457. package/dest/p2p/signature_utils.js +118 -21
  458. package/dest/p2p/signed_txs.d.ts +15 -13
  459. package/dest/p2p/signed_txs.d.ts.map +1 -1
  460. package/dest/p2p/signed_txs.js +26 -24
  461. package/dest/parity/parity_base_private_inputs.d.ts +8 -4
  462. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  463. package/dest/parity/parity_base_private_inputs.js +7 -5
  464. package/dest/parity/parity_public_inputs.d.ts +8 -4
  465. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  466. package/dest/parity/parity_public_inputs.js +6 -3
  467. package/dest/parity/parity_root_private_inputs.d.ts +2 -2
  468. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  469. package/dest/proofs/chonk_proof.d.ts +57 -7
  470. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  471. package/dest/proofs/chonk_proof.js +112 -15
  472. package/dest/proofs/recursive_proof.d.ts +2 -2
  473. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  474. package/dest/rollup/block_headers_hash.d.ts +1 -1
  475. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  476. package/dest/rollup/block_headers_hash.js +8 -2
  477. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
  478. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  479. package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
  480. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  481. package/dest/rollup/block_rollup_public_inputs.js +12 -0
  482. package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
  483. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  484. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
  485. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  486. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +9 -2
  487. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  488. package/dest/rollup/checkpoint_rollup_public_inputs.js +9 -0
  489. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +5 -5
  490. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  491. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
  492. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
  493. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
  494. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
  495. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
  496. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
  497. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
  498. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  499. package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
  500. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  501. package/dest/rollup/root_rollup_public_inputs.d.ts +2 -2
  502. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  503. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
  504. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  505. package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
  506. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  507. package/dest/schemas/schemas.d.ts +32 -78
  508. package/dest/schemas/schemas.d.ts.map +1 -1
  509. package/dest/schemas/schemas.js +2 -2
  510. package/dest/slashing/helpers.d.ts +2 -2
  511. package/dest/slashing/helpers.d.ts.map +1 -1
  512. package/dest/slashing/helpers.js +10 -7
  513. package/dest/slashing/index.d.ts +2 -3
  514. package/dest/slashing/index.d.ts.map +1 -1
  515. package/dest/slashing/index.js +1 -2
  516. package/dest/slashing/serialization.d.ts +2 -6
  517. package/dest/slashing/serialization.d.ts.map +1 -1
  518. package/dest/slashing/serialization.js +0 -60
  519. package/dest/slashing/types.d.ts +18 -112
  520. package/dest/slashing/types.d.ts.map +1 -1
  521. package/dest/slashing/types.js +16 -24
  522. package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
  523. package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
  524. package/dest/slashing/{tally.js → votes.js} +1 -1
  525. package/dest/snapshots/types.d.ts +15 -78
  526. package/dest/snapshots/types.d.ts.map +1 -1
  527. package/dest/stats/stats.d.ts +2 -2
  528. package/dest/stats/stats.d.ts.map +1 -1
  529. package/dest/tests/factories.d.ts +25 -32
  530. package/dest/tests/factories.d.ts.map +1 -1
  531. package/dest/tests/factories.js +85 -82
  532. package/dest/tests/mocks.d.ts +8 -5
  533. package/dest/tests/mocks.d.ts.map +1 -1
  534. package/dest/tests/mocks.js +45 -56
  535. package/dest/timetable/budgets.d.ts +57 -0
  536. package/dest/timetable/budgets.d.ts.map +1 -0
  537. package/dest/timetable/budgets.js +56 -0
  538. package/dest/timetable/build_proposer_timetable.d.ts +21 -0
  539. package/dest/timetable/build_proposer_timetable.d.ts.map +1 -0
  540. package/dest/timetable/build_proposer_timetable.js +17 -0
  541. package/dest/timetable/consensus_timetable.d.ts +70 -0
  542. package/dest/timetable/consensus_timetable.d.ts.map +1 -0
  543. package/dest/timetable/consensus_timetable.js +89 -0
  544. package/dest/timetable/index.d.ts +5 -37
  545. package/dest/timetable/index.d.ts.map +1 -1
  546. package/dest/timetable/index.js +4 -39
  547. package/dest/timetable/proposer_timetable.d.ts +106 -0
  548. package/dest/timetable/proposer_timetable.d.ts.map +1 -0
  549. package/dest/timetable/proposer_timetable.js +132 -0
  550. package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
  551. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  552. package/dest/trees/append_only_tree_snapshot.js +6 -3
  553. package/dest/trees/nullifier_leaf.d.ts +19 -42
  554. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  555. package/dest/trees/nullifier_leaf.js +3 -0
  556. package/dest/trees/nullifier_membership_witness.d.ts +16 -59
  557. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  558. package/dest/trees/nullifier_membership_witness.js +2 -14
  559. package/dest/trees/public_data_leaf.d.ts +21 -53
  560. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  561. package/dest/trees/public_data_witness.d.ts +16 -58
  562. package/dest/trees/public_data_witness.d.ts.map +1 -1
  563. package/dest/tx/block_header.d.ts +5 -4
  564. package/dest/tx/block_header.d.ts.map +1 -1
  565. package/dest/tx/block_header.js +7 -4
  566. package/dest/tx/call_context.d.ts +4 -14
  567. package/dest/tx/call_context.d.ts.map +1 -1
  568. package/dest/tx/capsule.d.ts +7 -3
  569. package/dest/tx/capsule.d.ts.map +1 -1
  570. package/dest/tx/capsule.js +9 -3
  571. package/dest/tx/fee_provider.d.ts +10 -0
  572. package/dest/tx/fee_provider.d.ts.map +1 -0
  573. package/dest/tx/fee_provider.js +1 -0
  574. package/dest/tx/function_data.d.ts +4 -10
  575. package/dest/tx/function_data.d.ts.map +1 -1
  576. package/dest/tx/global_variable_builder.d.ts +3 -4
  577. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  578. package/dest/tx/global_variables.d.ts +16 -49
  579. package/dest/tx/global_variables.d.ts.map +1 -1
  580. package/dest/tx/global_variables.js +8 -12
  581. package/dest/tx/hashed_values.d.ts +4 -3
  582. package/dest/tx/hashed_values.d.ts.map +1 -1
  583. package/dest/tx/hashed_values.js +6 -3
  584. package/dest/tx/in_tx.d.ts +5 -17
  585. package/dest/tx/in_tx.d.ts.map +1 -1
  586. package/dest/tx/index.d.ts +2 -1
  587. package/dest/tx/index.d.ts.map +1 -1
  588. package/dest/tx/index.js +1 -0
  589. package/dest/tx/indexed_tx_effect.d.ts +8 -19
  590. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  591. package/dest/tx/indexed_tx_effect.js +9 -6
  592. package/dest/tx/partial_state_reference.d.ts +22 -65
  593. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  594. package/dest/tx/partial_state_reference.js +6 -3
  595. package/dest/tx/private_execution_result.d.ts +6 -16
  596. package/dest/tx/private_execution_result.d.ts.map +1 -1
  597. package/dest/tx/profiling.d.ts +54 -352
  598. package/dest/tx/profiling.d.ts.map +1 -1
  599. package/dest/tx/profiling.js +4 -4
  600. package/dest/tx/protocol_contracts.d.ts +5 -9
  601. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  602. package/dest/tx/proven_tx.d.ts +30 -74
  603. package/dest/tx/proven_tx.d.ts.map +1 -1
  604. package/dest/tx/proven_tx.js +6 -0
  605. package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
  606. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  607. package/dest/tx/public_call_request_with_calldata.js +6 -3
  608. package/dest/tx/simulated_tx.d.ts +64 -1143
  609. package/dest/tx/simulated_tx.d.ts.map +1 -1
  610. package/dest/tx/simulated_tx.js +13 -11
  611. package/dest/tx/state_reference.d.ts +30 -117
  612. package/dest/tx/state_reference.d.ts.map +1 -1
  613. package/dest/tx/state_reference.js +6 -4
  614. package/dest/tx/tree_snapshots.d.ts +27 -84
  615. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  616. package/dest/tx/tree_snapshots.js +6 -4
  617. package/dest/tx/tx.d.ts +22 -13
  618. package/dest/tx/tx.d.ts.map +1 -1
  619. package/dest/tx/tx.js +44 -22
  620. package/dest/tx/tx_constant_data.d.ts +4 -3
  621. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  622. package/dest/tx/tx_constant_data.js +6 -3
  623. package/dest/tx/tx_context.d.ts +32 -131
  624. package/dest/tx/tx_context.d.ts.map +1 -1
  625. package/dest/tx/tx_context.js +6 -6
  626. package/dest/tx/tx_hash.d.ts +6 -4
  627. package/dest/tx/tx_hash.d.ts.map +1 -1
  628. package/dest/tx/tx_hash.js +13 -5
  629. package/dest/tx/tx_receipt.d.ts +144 -63
  630. package/dest/tx/tx_receipt.d.ts.map +1 -1
  631. package/dest/tx/tx_receipt.js +143 -60
  632. package/dest/tx/validator/error_texts.d.ts +6 -2
  633. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  634. package/dest/tx/validator/error_texts.js +7 -1
  635. package/dest/tx/validator/tx_validator.d.ts +5 -27
  636. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  637. package/dest/tx/validator/tx_validator.js +0 -4
  638. package/dest/types/shared.d.ts +4 -12
  639. package/dest/types/shared.d.ts.map +1 -1
  640. package/dest/types/shared.js +6 -12
  641. package/dest/update-checker/dev_version.d.ts +3 -0
  642. package/dest/update-checker/dev_version.d.ts.map +1 -0
  643. package/dest/update-checker/dev_version.js +1 -0
  644. package/dest/update-checker/index.d.ts +2 -1
  645. package/dest/update-checker/index.d.ts.map +1 -1
  646. package/dest/update-checker/index.js +1 -0
  647. package/dest/update-checker/package_version.d.ts +6 -3
  648. package/dest/update-checker/package_version.d.ts.map +1 -1
  649. package/dest/update-checker/package_version.js +8 -19
  650. package/dest/validators/schemas.d.ts +147 -614
  651. package/dest/validators/schemas.d.ts.map +1 -1
  652. package/dest/validators/schemas.js +6 -4
  653. package/dest/validators/types.d.ts +20 -3
  654. package/dest/validators/types.d.ts.map +1 -1
  655. package/dest/versioning/versioning.js +1 -1
  656. package/dest/vks/verification_key.d.ts +4 -139
  657. package/dest/vks/verification_key.d.ts.map +1 -1
  658. package/dest/vks/verification_key.js +5 -126
  659. package/dest/world-state/genesis_data.d.ts +13 -0
  660. package/dest/world-state/genesis_data.d.ts.map +1 -0
  661. package/dest/world-state/genesis_data.js +7 -0
  662. package/dest/world-state/index.d.ts +2 -1
  663. package/dest/world-state/index.d.ts.map +1 -1
  664. package/dest/world-state/index.js +1 -0
  665. package/dest/world-state/world_state_revision.d.ts +15 -26
  666. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  667. package/dest/world-state/world_state_revision.js +7 -1
  668. package/package.json +12 -11
  669. package/src/abi/abi.ts +78 -21
  670. package/src/abi/authorization_selector.ts +2 -8
  671. package/src/abi/buffer.ts +25 -4
  672. package/src/abi/contract_artifact.ts +30 -6
  673. package/src/abi/decoder.ts +23 -78
  674. package/src/abi/encoder.ts +42 -6
  675. package/src/abi/event_selector.ts +2 -8
  676. package/src/abi/function_selector.ts +4 -13
  677. package/src/abi/function_signature_decoder.ts +77 -0
  678. package/src/abi/index.ts +1 -0
  679. package/src/abi/note_selector.ts +3 -12
  680. package/src/abi/selector.ts +1 -1
  681. package/src/abi/utils.ts +6 -4
  682. package/src/avm/avm.ts +5 -0
  683. package/src/avm/message_pack.ts +12 -3
  684. package/src/avm/revert_code.ts +19 -39
  685. package/src/aztec-address/index.ts +15 -12
  686. package/src/block/attestation_info.ts +11 -11
  687. package/src/block/block_data.ts +3 -4
  688. package/src/block/block_hash.ts +21 -14
  689. package/src/block/block_parameter.ts +72 -4
  690. package/src/block/index.ts +0 -1
  691. package/src/block/l2_block_info.ts +8 -6
  692. package/src/block/l2_block_source.ts +216 -147
  693. package/src/block/l2_block_stream/interfaces.ts +42 -6
  694. package/src/block/l2_block_stream/l2_block_stream.ts +60 -31
  695. package/src/block/l2_block_stream/l2_tips_memory_store.ts +17 -41
  696. package/src/block/l2_block_stream/l2_tips_store_base.ts +64 -60
  697. package/src/block/proposal/attestations_and_signers.ts +32 -17
  698. package/src/block/test/l2_tips_store_test_suite.ts +198 -18
  699. package/src/checkpoint/checkpoint.ts +13 -3
  700. package/src/checkpoint/checkpoint_data.ts +44 -4
  701. package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
  702. package/src/checkpoint/digest.ts +28 -0
  703. package/src/checkpoint/index.ts +3 -0
  704. package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
  705. package/src/checkpoint/validate.ts +18 -8
  706. package/src/config/chain-config.ts +13 -16
  707. package/src/config/index.ts +1 -0
  708. package/src/config/network-consensus-config.ts +302 -0
  709. package/src/config/sequencer-config.ts +68 -9
  710. package/src/contract/complete_address.ts +7 -3
  711. package/src/contract/contract_address.ts +7 -7
  712. package/src/contract/contract_class_id.ts +2 -2
  713. package/src/contract/contract_instance.ts +11 -2
  714. package/src/contract/index.ts +0 -2
  715. package/src/contract/interfaces/contract_class.ts +2 -82
  716. package/src/contract/interfaces/contract_instance.ts +6 -2
  717. package/src/contract/interfaces/node-info.ts +11 -0
  718. package/src/contract/private_function.ts +3 -1
  719. package/src/database-version/version_manager.ts +17 -0
  720. package/src/deserialization/index.ts +35 -2
  721. package/src/epoch-helpers/index.ts +24 -0
  722. package/src/file-store/factory.ts +13 -4
  723. package/src/file-store/http.ts +29 -10
  724. package/src/file-store/index.ts +1 -0
  725. package/src/gas/README.md +123 -0
  726. package/src/gas/fee_math.ts +120 -0
  727. package/src/gas/gas.ts +8 -3
  728. package/src/gas/gas_fees.ts +26 -13
  729. package/src/gas/gas_settings.ts +63 -15
  730. package/src/gas/index.ts +2 -0
  731. package/src/gas/tx_gas_limits.ts +123 -0
  732. package/src/ha-signing/config.ts +14 -18
  733. package/src/ha-signing/index.ts +3 -1
  734. package/src/ha-signing/local_config.ts +2 -2
  735. package/src/ha-signing/types.ts +48 -34
  736. package/src/hash/hash.ts +63 -2
  737. package/src/interfaces/api_limit.ts +1 -1
  738. package/src/interfaces/archiver.ts +88 -93
  739. package/src/interfaces/aztec-node-admin.ts +36 -21
  740. package/src/interfaces/aztec-node-debug.ts +55 -0
  741. package/src/interfaces/aztec-node.ts +389 -259
  742. package/src/interfaces/block-builder.ts +31 -9
  743. package/src/interfaces/block_response.ts +92 -0
  744. package/src/interfaces/chain_tips.ts +24 -0
  745. package/src/interfaces/checkpoint_parameter.ts +20 -0
  746. package/src/interfaces/checkpoint_response.ts +84 -0
  747. package/src/interfaces/client.ts +8 -1
  748. package/src/interfaces/configs.ts +63 -11
  749. package/src/interfaces/get_tx_by_hash_options.ts +14 -0
  750. package/src/interfaces/l1_publish_info.ts +40 -0
  751. package/src/interfaces/l2_logs_source.ts +13 -42
  752. package/src/interfaces/merkle_tree_operations.ts +3 -2
  753. package/src/interfaces/p2p-bootstrap.ts +2 -2
  754. package/src/interfaces/p2p.ts +59 -19
  755. package/src/interfaces/private_kernel_prover.ts +88 -0
  756. package/src/interfaces/prover-agent.ts +1 -1
  757. package/src/interfaces/prover-client.ts +3 -8
  758. package/src/interfaces/prover-node.ts +19 -12
  759. package/src/interfaces/proving-job-source.ts +4 -4
  760. package/src/interfaces/proving-job.ts +3 -3
  761. package/src/interfaces/public_storage_override.ts +26 -0
  762. package/src/interfaces/server.ts +5 -1
  763. package/src/interfaces/slasher.ts +17 -10
  764. package/src/interfaces/tx_provider.ts +6 -0
  765. package/src/interfaces/validator.ts +45 -15
  766. package/src/interfaces/world_state.ts +1 -1
  767. package/src/kernel/hints/key_validation_request.ts +18 -16
  768. package/src/kernel/index.ts +4 -0
  769. package/src/kernel/log_hash.ts +29 -9
  770. package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +49 -0
  771. package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +52 -0
  772. package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
  773. package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
  774. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +29 -14
  775. package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
  776. package/src/kernel/private_to_public_accumulated_data.ts +9 -3
  777. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +10 -4
  778. package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
  779. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
  780. package/src/kernel/public_call_request.ts +22 -7
  781. package/src/keys/derivation.ts +21 -9
  782. package/src/keys/public_key.ts +26 -2
  783. package/src/keys/public_keys.ts +124 -110
  784. package/src/kv-store/config.ts +3 -10
  785. package/src/l1-contracts/index.ts +1 -1
  786. package/src/logs/app_tagging_secret.ts +137 -0
  787. package/src/logs/app_tagging_secret_kind.ts +21 -0
  788. package/src/logs/contract_class_log.ts +15 -5
  789. package/src/logs/index.ts +6 -6
  790. package/src/logs/log_cursor.ts +110 -0
  791. package/src/logs/log_result.ts +104 -0
  792. package/src/logs/logs_query.ts +138 -0
  793. package/src/logs/message_context.ts +22 -8
  794. package/src/logs/pending_tagged_log.ts +1 -3
  795. package/src/logs/pre_tag.ts +3 -6
  796. package/src/logs/private_log.ts +9 -3
  797. package/src/logs/query_all_logs_by_tags.ts +98 -0
  798. package/src/logs/shared_secret_derivation.ts +21 -10
  799. package/src/logs/siloed_tag.ts +20 -11
  800. package/src/logs/tag.ts +8 -8
  801. package/src/logs/tagging_index_range.ts +4 -10
  802. package/src/messaging/append_l1_to_l2_messages.ts +21 -0
  803. package/src/messaging/index.ts +1 -0
  804. package/src/messaging/l1_to_l2_message.ts +12 -9
  805. package/src/messaging/l2_to_l1_membership.ts +108 -19
  806. package/src/messaging/l2_to_l1_message.ts +29 -9
  807. package/src/noir/index.ts +4 -2
  808. package/src/note/note_dao.ts +1 -4
  809. package/src/p2p/block_proposal.ts +111 -36
  810. package/src/p2p/checkpoint_attestation.ts +27 -31
  811. package/src/p2p/checkpoint_proposal.ts +126 -68
  812. package/src/p2p/consensus_payload.ts +59 -28
  813. package/src/p2p/gossipable.ts +4 -4
  814. package/src/p2p/signature_utils.ts +110 -25
  815. package/src/p2p/signed_txs.ts +46 -28
  816. package/src/parity/parity_base_private_inputs.ts +10 -4
  817. package/src/parity/parity_public_inputs.ts +9 -2
  818. package/src/proofs/chonk_proof.ts +132 -12
  819. package/src/rollup/block_headers_hash.ts +11 -2
  820. package/src/rollup/block_rollup_public_inputs.ts +13 -0
  821. package/src/rollup/checkpoint_rollup_public_inputs.ts +10 -0
  822. package/src/schemas/schemas.ts +6 -1
  823. package/src/slashing/helpers.ts +13 -9
  824. package/src/slashing/index.ts +1 -2
  825. package/src/slashing/serialization.ts +1 -81
  826. package/src/slashing/types.ts +24 -49
  827. package/src/slashing/{tally.ts → votes.ts} +1 -1
  828. package/src/stats/stats.ts +4 -0
  829. package/src/tests/factories.ts +109 -111
  830. package/src/tests/mocks.ts +72 -71
  831. package/src/timetable/README.md +609 -0
  832. package/src/timetable/budgets.ts +87 -0
  833. package/src/timetable/build_proposer_timetable.ts +42 -0
  834. package/src/timetable/consensus_timetable.ts +126 -0
  835. package/src/timetable/index.ts +4 -66
  836. package/src/timetable/proposer_timetable.ts +190 -0
  837. package/src/timetable/timetable-example.svg +108 -0
  838. package/src/trees/append_only_tree_snapshot.ts +8 -3
  839. package/src/trees/nullifier_leaf.ts +4 -0
  840. package/src/trees/nullifier_membership_witness.ts +2 -12
  841. package/src/tx/block_header.ts +10 -5
  842. package/src/tx/capsule.ts +10 -2
  843. package/src/tx/fee_provider.ts +10 -0
  844. package/src/tx/global_variable_builder.ts +2 -3
  845. package/src/tx/global_variables.ts +10 -18
  846. package/src/tx/hashed_values.ts +8 -3
  847. package/src/tx/index.ts +1 -0
  848. package/src/tx/indexed_tx_effect.ts +18 -6
  849. package/src/tx/partial_state_reference.ts +8 -3
  850. package/src/tx/profiling.ts +4 -4
  851. package/src/tx/proven_tx.ts +6 -0
  852. package/src/tx/public_call_request_with_calldata.ts +8 -3
  853. package/src/tx/simulated_tx.ts +22 -21
  854. package/src/tx/state_reference.ts +9 -4
  855. package/src/tx/tree_snapshots.ts +9 -4
  856. package/src/tx/tx.ts +60 -24
  857. package/src/tx/tx_constant_data.ts +8 -3
  858. package/src/tx/tx_context.ts +8 -3
  859. package/src/tx/tx_hash.ts +20 -5
  860. package/src/tx/tx_receipt.ts +265 -85
  861. package/src/tx/validator/error_texts.ts +10 -1
  862. package/src/tx/validator/tx_validator.ts +1 -5
  863. package/src/types/shared.ts +8 -13
  864. package/src/update-checker/dev_version.ts +2 -0
  865. package/src/update-checker/index.ts +1 -0
  866. package/src/update-checker/package_version.ts +10 -23
  867. package/src/validators/schemas.ts +6 -4
  868. package/src/validators/types.ts +21 -2
  869. package/src/versioning/versioning.ts +1 -1
  870. package/src/vks/verification_key.ts +5 -184
  871. package/src/world-state/genesis_data.ts +27 -0
  872. package/src/world-state/index.ts +1 -0
  873. package/src/world-state/world_state_revision.ts +9 -1
  874. package/dest/abi/mocked_keys.d.ts +0 -2
  875. package/dest/abi/mocked_keys.d.ts.map +0 -1
  876. package/dest/abi/mocked_keys.js +0 -1
  877. package/dest/block/checkpointed_l2_block.d.ts +0 -150
  878. package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
  879. package/dest/block/checkpointed_l2_block.js +0 -46
  880. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  881. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  882. package/dest/contract/private_function_membership_proof.js +0 -124
  883. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  884. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  885. package/dest/contract/utility_function_membership_proof.js +0 -87
  886. package/dest/interfaces/epoch-prover.d.ts +0 -57
  887. package/dest/interfaces/epoch-prover.d.ts.map +0 -1
  888. package/dest/interfaces/epoch-prover.js +0 -1
  889. package/dest/interfaces/get_logs_response.d.ts +0 -97
  890. package/dest/interfaces/get_logs_response.d.ts.map +0 -1
  891. package/dest/interfaces/get_logs_response.js +0 -12
  892. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  893. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  894. package/dest/l1-contracts/slash_factory.js +0 -158
  895. package/dest/logs/extended_contract_class_log.d.ts +0 -51
  896. package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
  897. package/dest/logs/extended_contract_class_log.js +0 -67
  898. package/dest/logs/extended_directional_app_tagging_secret.d.ts +0 -47
  899. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +0 -1
  900. package/dest/logs/extended_directional_app_tagging_secret.js +0 -72
  901. package/dest/logs/extended_public_log.d.ts +0 -106
  902. package/dest/logs/extended_public_log.d.ts.map +0 -1
  903. package/dest/logs/extended_public_log.js +0 -73
  904. package/dest/logs/log_filter.d.ts +0 -25
  905. package/dest/logs/log_filter.d.ts.map +0 -1
  906. package/dest/logs/log_filter.js +0 -12
  907. package/dest/logs/log_id.d.ts +0 -85
  908. package/dest/logs/log_id.d.ts.map +0 -1
  909. package/dest/logs/log_id.js +0 -94
  910. package/dest/logs/tx_scoped_l2_log.d.ts +0 -49
  911. package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
  912. package/dest/logs/tx_scoped_l2_log.js +0 -70
  913. package/dest/slashing/empire.d.ts +0 -31
  914. package/dest/slashing/empire.d.ts.map +0 -1
  915. package/dest/slashing/empire.js +0 -87
  916. package/src/abi/mocked_keys.ts +0 -2
  917. package/src/block/checkpointed_l2_block.ts +0 -70
  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 -98
  929. package/src/slashing/empire.ts +0 -104
@@ -1,12 +1,17 @@
1
- import { BlockNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
2
- import { Buffer32 } from '@aztec/foundation/buffer';
3
- import { keccak256 } from '@aztec/foundation/crypto/keccak';
4
- import { tryRecoverAddress } from '@aztec/foundation/crypto/secp256k1-signer';
1
+ import {
2
+ type CheckpointNumber,
3
+ CheckpointProposalHash,
4
+ IndexWithinCheckpoint,
5
+ SlotNumber,
6
+ } from '@aztec/foundation/branded-types';
7
+ import { type BaseBuffer32, Buffer32 } from '@aztec/foundation/buffer';
5
8
  import { Fr } from '@aztec/foundation/curves/bn254';
6
9
  import type { EthAddress } from '@aztec/foundation/eth-address';
7
10
  import { Signature } from '@aztec/foundation/eth-signature';
8
11
  import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
9
12
 
13
+ import type { TypedDataDefinition } from 'viem';
14
+
10
15
  import type { L2BlockInfo } from '../block/l2_block_info.js';
11
16
  import { MAX_TXS_PER_BLOCK } from '../deserialization/index.js';
12
17
  import { DutyType, type SigningContext } from '../ha-signing/index.js';
@@ -15,21 +20,23 @@ import { BlockHeader } from '../tx/block_header.js';
15
20
  import { TxHash } from '../tx/index.js';
16
21
  import type { Tx } from '../tx/tx.js';
17
22
  import { BlockProposal } from './block_proposal.js';
23
+ import { ConsensusPayload } from './consensus_payload.js';
18
24
  import { Gossipable } from './gossipable.js';
19
25
  import {
20
- SignatureDomainSeparator,
21
- getHashedSignaturePayload,
22
- getHashedSignaturePayloadEthSignedMessage,
26
+ type CoordinationSignatureContext,
27
+ type CoordinationSignatureType,
28
+ EMPTY_COORDINATION_SIGNATURE_CONTEXT,
29
+ type Signable,
30
+ coordinationSignatureContextEquals,
31
+ getCoordinationSignatureTypedData,
32
+ readCoordinationSignatureContext,
33
+ recoverCoordinationSigner,
34
+ serializeCoordinationSignatureContext,
23
35
  } from './signature_utils.js';
24
36
  import { SignedTxs } from './signed_txs.js';
25
37
  import { TopicType } from './topic_type.js';
26
38
 
27
- // REFACTOR(palla): Use a branded type instead of a subclass of Buffer32
28
- export class CheckpointProposalHash extends Buffer32 {
29
- constructor(hash: Buffer) {
30
- super(hash);
31
- }
32
- }
39
+ export type { CheckpointProposalHash } from '@aztec/foundation/branded-types';
33
40
 
34
41
  export type CheckpointProposalOptions = {
35
42
  /**
@@ -69,10 +76,12 @@ export type CheckpointLastBlock = Omit<CheckpointLastBlockData, 'txs'> & {
69
76
  * It includes the aggregated checkpoint header that validators will attest to, plus optionally
70
77
  * the last block's info for nodes to re-execute. This marks the completion of a slot's worth of blocks.
71
78
  */
72
- export class CheckpointProposal extends Gossipable {
79
+ export class CheckpointProposal extends Gossipable implements Signable {
73
80
  static override p2pTopic = TopicType.checkpoint_proposal;
74
81
 
75
- private sender: EthAddress | undefined;
82
+ readonly primaryType: CoordinationSignatureType = 'CheckpointProposal';
83
+
84
+ private cachedSender: EthAddress | undefined | null = undefined;
76
85
 
77
86
  constructor(
78
87
  /** The aggregated checkpoint header for consensus */
@@ -87,14 +96,36 @@ export class CheckpointProposal extends Gossipable {
87
96
  /** The proposer's signature over the checkpoint payload (checkpointHeader + archive + feeAssetPriceModifier) */
88
97
  public readonly signature: Signature,
89
98
 
99
+ /** The signing domain (chainId + rollupAddress) the signature is bound to */
100
+ public readonly signatureContext: CoordinationSignatureContext,
101
+
90
102
  /** Optional last block info, including its own signature for BlockProposal extraction */
91
- public readonly lastBlock?: CheckpointLastBlock,
103
+ public readonly lastBlock?: CheckpointLastBlock | BlockProposal,
92
104
  ) {
93
105
  super();
106
+
107
+ // Check that last block properties match those of the checkpoint.
108
+ if (lastBlock && 'inHash' in lastBlock && !lastBlock.inHash.equals(checkpointHeader.inHash)) {
109
+ throw new Error(
110
+ `CheckpointProposal lastBlock inHash ${lastBlock.inHash} does not match checkpoint inHash ${checkpointHeader.inHash}`,
111
+ );
112
+ }
113
+ if (lastBlock && 'archiveRoot' in lastBlock && !lastBlock.archiveRoot.equals(archive)) {
114
+ throw new Error(
115
+ `CheckpointProposal lastBlock archive ${lastBlock.archiveRoot} does not match checkpoint archive ${archive}`,
116
+ );
117
+ }
118
+ if (
119
+ lastBlock &&
120
+ 'signatureContext' in lastBlock &&
121
+ !coordinationSignatureContextEquals(lastBlock.signatureContext, signatureContext)
122
+ ) {
123
+ throw new Error(`CheckpointProposal lastBlock signatureContext does not match checkpoint signatureContext`);
124
+ }
94
125
  }
95
126
 
96
- override generateP2PMessageIdentifier(): Promise<Buffer32> {
97
- return Promise.resolve(new CheckpointProposalHash(keccak256(this.signature.toBuffer())));
127
+ override generateP2PMessageIdentifier(): Promise<BaseBuffer32> {
128
+ return Promise.resolve(new Buffer32(this.toConsensusPayload().getPayloadHash()));
98
129
  }
99
130
 
100
131
  get slotNumber(): SlotNumber {
@@ -117,6 +148,7 @@ export class CheckpointProposal extends Gossipable {
117
148
  this.archive,
118
149
  this.lastBlock.txHashes,
119
150
  this.lastBlock.signature,
151
+ this.signatureContext,
120
152
  this.lastBlock.signedTxs,
121
153
  );
122
154
  }
@@ -148,21 +180,36 @@ export class CheckpointProposal extends Gossipable {
148
180
  * Get the payload to sign for this checkpoint proposal.
149
181
  * The signature is over the checkpoint header + archive root + feeAssetPriceModifier (for consensus).
150
182
  */
151
- getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer {
152
- return serializeToBuffer([
153
- domainSeparator,
154
- this.checkpointHeader,
155
- this.archive,
156
- serializeSignedBigInt(this.feeAssetPriceModifier),
157
- ]);
183
+ getPayloadToSign(): Buffer {
184
+ return serializeToBuffer([this.checkpointHeader, this.archive, serializeSignedBigInt(this.feeAssetPriceModifier)]);
185
+ }
186
+
187
+ /**
188
+ * Returns a content-addressed keccak256 hash of the consensus payload
189
+ * (header + archive + feeAssetPriceModifier + signatureContext).
190
+ *
191
+ * Used by the attestation pool to dedup distinct signed payloads at the same slot
192
+ * regardless of archive/header collisions on `feeAssetPriceModifier` variants.
193
+ * The hash deliberately excludes the signature so non-deterministic ECDSA
194
+ * re-signs of the same payload do not look like equivocation.
195
+ */
196
+ getPayloadHash(): CheckpointProposalHash {
197
+ return CheckpointProposalHash.fromBuffer(this.toConsensusPayload().getPayloadHash());
198
+ }
199
+
200
+ /** Returns the ConsensusPayload that an attester would sign for this proposal. */
201
+ toConsensusPayload(): ConsensusPayload {
202
+ return new ConsensusPayload(this.checkpointHeader, this.archive, this.feeAssetPriceModifier, this.signatureContext);
158
203
  }
159
204
 
160
205
  static async createProposalFromSigner(
161
206
  checkpointHeader: CheckpointHeader,
162
207
  archiveRoot: Fr,
208
+ checkpointNumber: CheckpointNumber,
163
209
  feeAssetPriceModifier: bigint,
164
- lastBlockInfo: CheckpointLastBlockData | undefined,
165
- payloadSigner: (payload: Buffer32, context: SigningContext) => Promise<Signature>,
210
+ lastBlockProposal: BlockProposal | undefined,
211
+ signatureContext: CoordinationSignatureContext,
212
+ payloadSigner: (typedData: TypedDataDefinition, context: SigningContext) => Promise<Signature>,
166
213
  ): Promise<CheckpointProposal> {
167
214
  // Sign the checkpoint payload with CHECKPOINT_PROPOSAL duty type
168
215
  const tempProposal = new CheckpointProposal(
@@ -170,37 +217,25 @@ export class CheckpointProposal extends Gossipable {
170
217
  archiveRoot,
171
218
  feeAssetPriceModifier,
172
219
  Signature.empty(),
220
+ signatureContext,
173
221
  );
174
- const checkpointHash = getHashedSignaturePayload(tempProposal, SignatureDomainSeparator.checkpointProposal);
175
-
176
222
  const checkpointContext: SigningContext = {
177
223
  slot: checkpointHeader.slotNumber,
178
- blockNumber: lastBlockInfo?.blockHeader?.globalVariables.blockNumber ?? BlockNumber(0),
224
+ checkpointNumber,
179
225
  dutyType: DutyType.CHECKPOINT_PROPOSAL,
180
226
  };
181
- const checkpointSignature = await payloadSigner(checkpointHash, checkpointContext);
182
227
 
183
- if (!lastBlockInfo) {
184
- return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature);
185
- }
228
+ const typedData = getCoordinationSignatureTypedData(tempProposal);
229
+ const checkpointSignature = await payloadSigner(typedData, checkpointContext);
186
230
 
187
- const lastBlockProposal = await BlockProposal.createProposalFromSigner(
188
- lastBlockInfo.blockHeader,
189
- lastBlockInfo.indexWithinCheckpoint,
190
- checkpointHeader.inHash,
231
+ return new CheckpointProposal(
232
+ checkpointHeader,
191
233
  archiveRoot,
192
- lastBlockInfo.txHashes,
193
- lastBlockInfo.txs,
194
- payloadSigner,
234
+ feeAssetPriceModifier,
235
+ checkpointSignature,
236
+ signatureContext,
237
+ lastBlockProposal,
195
238
  );
196
-
197
- return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature, {
198
- blockHeader: lastBlockInfo.blockHeader,
199
- indexWithinCheckpoint: lastBlockInfo.indexWithinCheckpoint,
200
- txHashes: lastBlockInfo.txHashes,
201
- signature: lastBlockProposal.signature,
202
- signedTxs: lastBlockProposal.signedTxs,
203
- });
204
239
  }
205
240
 
206
241
  /**
@@ -209,28 +244,26 @@ export class CheckpointProposal extends Gossipable {
209
244
  * @returns The sender address, or undefined if signature recovery fails or senders don't match
210
245
  */
211
246
  getSender(): EthAddress | undefined {
212
- if (!this.sender) {
213
- const hashed = getHashedSignaturePayloadEthSignedMessage(this, SignatureDomainSeparator.checkpointProposal);
214
- const checkpointSender = tryRecoverAddress(hashed, this.signature);
247
+ if (this.cachedSender === undefined) {
248
+ const checkpointSender = recoverCoordinationSigner(this, this.signature);
215
249
 
216
- // If there's a lastBlock, verify the block proposal sender matches
217
250
  if (checkpointSender && this.lastBlock) {
218
251
  const blockProposal = this.getBlockProposal();
219
252
  const blockSender = blockProposal?.getSender();
220
253
  if (!blockSender || !blockSender.equals(checkpointSender)) {
221
- return undefined; // Sender mismatch - fail
254
+ this.cachedSender = null;
255
+ return undefined;
222
256
  }
223
257
  }
224
258
 
225
- // Cache the sender for later use
226
- this.sender = checkpointSender;
259
+ this.cachedSender = checkpointSender ?? null;
227
260
  }
228
261
 
229
- return this.sender;
262
+ return this.cachedSender ?? undefined;
230
263
  }
231
264
 
232
265
  getPayload() {
233
- return this.getPayloadToSign(SignatureDomainSeparator.checkpointProposal);
266
+ return this.getPayloadToSign();
234
267
  }
235
268
 
236
269
  toBuffer(): Buffer {
@@ -239,6 +272,7 @@ export class CheckpointProposal extends Gossipable {
239
272
  this.archive,
240
273
  serializeSignedBigInt(this.feeAssetPriceModifier),
241
274
  this.signature,
275
+ serializeCoordinationSignatureContext(this.signatureContext),
242
276
  ];
243
277
 
244
278
  if (this.lastBlock) {
@@ -268,6 +302,7 @@ export class CheckpointProposal extends Gossipable {
268
302
  const archive = reader.readObject(Fr);
269
303
  const feeAssetPriceModifier = reader.readInt256();
270
304
  const signature = reader.readObject(Signature);
305
+ const signatureContext = readCoordinationSignatureContext(reader);
271
306
 
272
307
  const hasLastBlock = reader.readNumber();
273
308
 
@@ -289,7 +324,7 @@ export class CheckpointProposal extends Gossipable {
289
324
  }
290
325
  }
291
326
 
292
- return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, {
327
+ return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, signatureContext, {
293
328
  blockHeader,
294
329
  indexWithinCheckpoint,
295
330
  txHashes,
@@ -298,7 +333,7 @@ export class CheckpointProposal extends Gossipable {
298
333
  });
299
334
  }
300
335
 
301
- return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature);
336
+ return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, signatureContext);
302
337
  }
303
338
 
304
339
  getSize(): number {
@@ -307,6 +342,8 @@ export class CheckpointProposal extends Gossipable {
307
342
  this.archive.size +
308
343
  this.signature.getSize() +
309
344
  8 /* feeAssetPriceModifier */ +
345
+ 4 /* chainId */ +
346
+ 20 /* rollupAddress */ +
310
347
  4; /* hasLastBlock flag */
311
348
 
312
349
  if (this.lastBlock) {
@@ -324,16 +361,29 @@ export class CheckpointProposal extends Gossipable {
324
361
  }
325
362
 
326
363
  static empty(): CheckpointProposal {
327
- return new CheckpointProposal(CheckpointHeader.empty(), Fr.ZERO, 0n, Signature.empty());
364
+ return new CheckpointProposal(
365
+ CheckpointHeader.empty(),
366
+ Fr.ZERO,
367
+ 0n,
368
+ Signature.empty(),
369
+ EMPTY_COORDINATION_SIGNATURE_CONTEXT,
370
+ );
328
371
  }
329
372
 
330
373
  static random(): CheckpointProposal {
331
- return new CheckpointProposal(CheckpointHeader.random(), Fr.random(), 0n, Signature.random(), {
332
- blockHeader: BlockHeader.random(),
333
- indexWithinCheckpoint: IndexWithinCheckpoint(Math.floor(Math.random() * 5)),
334
- txHashes: [TxHash.random(), TxHash.random()],
335
- signature: Signature.random(),
336
- });
374
+ return new CheckpointProposal(
375
+ CheckpointHeader.random(),
376
+ Fr.random(),
377
+ 0n,
378
+ Signature.random(),
379
+ EMPTY_COORDINATION_SIGNATURE_CONTEXT,
380
+ {
381
+ blockHeader: BlockHeader.random(),
382
+ indexWithinCheckpoint: IndexWithinCheckpoint(Math.floor(Math.random() * 5)),
383
+ txHashes: [TxHash.random(), TxHash.random()],
384
+ signature: Signature.random(),
385
+ },
386
+ );
337
387
  }
338
388
 
339
389
  toInspect() {
@@ -342,6 +392,8 @@ export class CheckpointProposal extends Gossipable {
342
392
  archive: this.archive.toString(),
343
393
  signature: this.signature.toString(),
344
394
  feeAssetPriceModifier: this.feeAssetPriceModifier.toString(),
395
+ chainId: this.signatureContext.chainId,
396
+ rollupAddress: this.signatureContext.rollupAddress.toString(),
345
397
  lastBlock: this.lastBlock
346
398
  ? {
347
399
  blockHeader: this.lastBlock.blockHeader.toInspect(),
@@ -358,7 +410,13 @@ export class CheckpointProposal extends Gossipable {
358
410
  * Used when the lastBlock has been extracted and stored separately.
359
411
  */
360
412
  toCore(): CheckpointProposalCore {
361
- return new CheckpointProposal(this.checkpointHeader, this.archive, this.feeAssetPriceModifier, this.signature);
413
+ return new CheckpointProposal(
414
+ this.checkpointHeader,
415
+ this.archive,
416
+ this.feeAssetPriceModifier,
417
+ this.signature,
418
+ this.signatureContext,
419
+ );
362
420
  }
363
421
  }
364
422
 
@@ -1,3 +1,4 @@
1
+ import { keccak256 } from '@aztec/foundation/crypto/keccak';
1
2
  import { Fr } from '@aztec/foundation/curves/bn254';
2
3
  import { schemas } from '@aztec/foundation/schemas';
3
4
  import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
@@ -10,10 +11,21 @@ import { z } from 'zod';
10
11
  import type { Checkpoint } from '../checkpoint/checkpoint.js';
11
12
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
12
13
  import type { CheckpointProposal, CheckpointProposalCore } from './checkpoint_proposal.js';
13
- import type { Signable, SignatureDomainSeparator } from './signature_utils.js';
14
+ import {
15
+ type CoordinationSignatureContext,
16
+ type CoordinationSignatureType,
17
+ EMPTY_COORDINATION_SIGNATURE_CONTEXT,
18
+ type Signable,
19
+ coordinationSignatureContextEquals,
20
+ coordinationSignatureContextSchema,
21
+ readCoordinationSignatureContext,
22
+ serializeCoordinationSignatureContext,
23
+ } from './signature_utils.js';
14
24
 
15
25
  /** Checkpoint consensus payload as signed by validators and verified on L1. */
16
26
  export class ConsensusPayload implements Signable {
27
+ readonly primaryType: CoordinationSignatureType = 'CheckpointAttestation';
28
+
17
29
  private size: number | undefined;
18
30
 
19
31
  constructor(
@@ -22,7 +34,9 @@ export class ConsensusPayload implements Signable {
22
34
  /** The archive root after the block is added */
23
35
  public readonly archive: Fr,
24
36
  /** The fee asset price modifier in basis points (from oracle) */
25
- public readonly feeAssetPriceModifier: bigint = 0n,
37
+ public readonly feeAssetPriceModifier: bigint,
38
+ /** The signing domain (chainId + rollupAddress) the signature is bound to */
39
+ public readonly signatureContext: CoordinationSignatureContext,
26
40
  ) {}
27
41
 
28
42
  static get schema() {
@@ -31,36 +45,46 @@ export class ConsensusPayload implements Signable {
31
45
  header: CheckpointHeader.schema,
32
46
  archive: schemas.Fr,
33
47
  feeAssetPriceModifier: schemas.BigInt,
48
+ signatureContext: coordinationSignatureContextSchema,
34
49
  })
35
- .transform(obj => new ConsensusPayload(obj.header, obj.archive, obj.feeAssetPriceModifier));
50
+ .transform(obj => new ConsensusPayload(obj.header, obj.archive, obj.feeAssetPriceModifier, obj.signatureContext));
36
51
  }
37
52
 
38
- static getFields(fields: FieldsOf<ConsensusPayload>) {
39
- return [fields.header, fields.archive, fields.feeAssetPriceModifier] as const;
53
+ static getFields(fields: Omit<FieldsOf<ConsensusPayload>, 'primaryType'>) {
54
+ return [fields.header, fields.archive, fields.feeAssetPriceModifier, fields.signatureContext] as const;
40
55
  }
41
56
 
42
- getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer {
57
+ getPayloadToSign(): Buffer {
58
+ // Matches the L1 ProposePayload struct in ProposeLib.sol.
43
59
  const abi = parseAbiParameters(
44
- 'uint8, ' + //domainSeperator
45
- '(' +
60
+ '(' +
46
61
  'bytes32, ' + // archive
47
62
  '(int256), ' + // oracleInput
48
63
  'bytes32' + // headerHash
49
64
  ')',
50
65
  );
51
66
  const archiveRoot = this.archive.toString();
52
-
53
67
  const headerHash = this.header.hash().toString();
54
- const encodedData = encodeAbiParameters(abi, [
55
- domainSeparator,
56
- [archiveRoot, [this.feeAssetPriceModifier], headerHash],
57
- ] as const);
68
+ const encodedData = encodeAbiParameters(abi, [[archiveRoot, [this.feeAssetPriceModifier], headerHash]] as const);
58
69
 
59
70
  return hexToBuffer(encodedData);
60
71
  }
61
72
 
73
+ /**
74
+ * Returns a keccak256 hash of the signed payload (header + archive + feeAssetPriceModifier).
75
+ * Used by the attestation pool to dedup distinct signed payloads.
76
+ */
77
+ getPayloadHash(): Buffer {
78
+ return keccak256(this.getPayloadToSign());
79
+ }
80
+
62
81
  toBuffer(): Buffer {
63
- return serializeToBuffer([this.header, this.archive, serializeSignedBigInt(this.feeAssetPriceModifier)]);
82
+ return serializeToBuffer([
83
+ this.header,
84
+ this.archive,
85
+ serializeSignedBigInt(this.feeAssetPriceModifier),
86
+ serializeCoordinationSignatureContext(this.signatureContext),
87
+ ]);
64
88
  }
65
89
 
66
90
  public equals(other: ConsensusPayload | CheckpointProposal | CheckpointProposalCore): boolean {
@@ -69,34 +93,39 @@ export class ConsensusPayload implements Signable {
69
93
  return (
70
94
  this.header.equals(otherHeader) &&
71
95
  this.archive.equals(other.archive) &&
72
- this.feeAssetPriceModifier === otherModifier
96
+ this.feeAssetPriceModifier === otherModifier &&
97
+ coordinationSignatureContextEquals(this.signatureContext, other.signatureContext)
73
98
  );
74
99
  }
75
100
 
76
101
  static fromBuffer(buf: Buffer | BufferReader): ConsensusPayload {
77
102
  const reader = BufferReader.asReader(buf);
78
- const payload = new ConsensusPayload(
79
- reader.readObject(CheckpointHeader),
80
- reader.readObject(Fr),
81
- reader.readInt256(),
82
- );
83
- return payload;
103
+ const header = reader.readObject(CheckpointHeader);
104
+ const archive = reader.readObject(Fr);
105
+ const feeAssetPriceModifier = reader.readInt256();
106
+ const signatureContext = readCoordinationSignatureContext(reader);
107
+ return new ConsensusPayload(header, archive, feeAssetPriceModifier, signatureContext);
84
108
  }
85
109
 
86
- static fromFields(fields: FieldsOf<ConsensusPayload>): ConsensusPayload {
87
- return new ConsensusPayload(fields.header, fields.archive, fields.feeAssetPriceModifier);
110
+ static fromFields(fields: Omit<FieldsOf<ConsensusPayload>, 'primaryType'>): ConsensusPayload {
111
+ return new ConsensusPayload(fields.header, fields.archive, fields.feeAssetPriceModifier, fields.signatureContext);
88
112
  }
89
113
 
90
- static fromCheckpoint(checkpoint: Checkpoint): ConsensusPayload {
91
- return new ConsensusPayload(checkpoint.header, checkpoint.archive.root, checkpoint.feeAssetPriceModifier);
114
+ static fromCheckpoint(checkpoint: Checkpoint, signatureContext: CoordinationSignatureContext): ConsensusPayload {
115
+ return new ConsensusPayload(
116
+ checkpoint.header,
117
+ checkpoint.archive.root,
118
+ checkpoint.feeAssetPriceModifier,
119
+ signatureContext,
120
+ );
92
121
  }
93
122
 
94
123
  static empty(): ConsensusPayload {
95
- return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, 0n);
124
+ return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, 0n, EMPTY_COORDINATION_SIGNATURE_CONTEXT);
96
125
  }
97
126
 
98
127
  static random(): ConsensusPayload {
99
- return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), 0n);
128
+ return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), 0n, EMPTY_COORDINATION_SIGNATURE_CONTEXT);
100
129
  }
101
130
 
102
131
  /**
@@ -117,10 +146,12 @@ export class ConsensusPayload implements Signable {
117
146
  header: this.header.toInspect(),
118
147
  archive: this.archive.toString(),
119
148
  feeAssetPriceModifier: this.feeAssetPriceModifier.toString(),
149
+ chainId: this.signatureContext.chainId,
150
+ rollupAddress: this.signatureContext.rollupAddress.toString(),
120
151
  };
121
152
  }
122
153
 
123
154
  toString() {
124
- return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, feeAssetPriceModifier: ${this.feeAssetPriceModifier}}`;
155
+ return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, feeAssetPriceModifier: ${this.feeAssetPriceModifier}, chainId: ${this.signatureContext.chainId}, rollupAddress: ${this.signatureContext.rollupAddress.toString()}`;
125
156
  }
126
157
  }
@@ -1,4 +1,4 @@
1
- import { Buffer32 } from '@aztec/foundation/buffer';
1
+ import { BaseBuffer32 } from '@aztec/foundation/buffer';
2
2
  import { BufferReader, bigintToUInt64BE, serializeToBuffer } from '@aztec/foundation/serialize';
3
3
 
4
4
  import type { TopicType } from './topic_type.js';
@@ -46,7 +46,7 @@ export class P2PMessage {
46
46
  * Any class which extends gossipable will be able to be Gossiped over the p2p network
47
47
  */
48
48
  export abstract class Gossipable {
49
- private cachedId: Buffer32 | undefined;
49
+ private cachedId: BaseBuffer32 | undefined;
50
50
  /** The p2p topic identifier, this determines how the message is handled */
51
51
  static p2pTopic: TopicType;
52
52
 
@@ -54,7 +54,7 @@ export abstract class Gossipable {
54
54
  * A digest of the message information **used for logging only**.
55
55
  * The identifier used for deduplication is `getMsgIdFn` as defined in `encoding.ts` which is a hash over topic and data.
56
56
  */
57
- async p2pMessageLoggingIdentifier(): Promise<Buffer32> {
57
+ async p2pMessageLoggingIdentifier(): Promise<BaseBuffer32> {
58
58
  if (this.cachedId) {
59
59
  return this.cachedId;
60
60
  }
@@ -62,7 +62,7 @@ export abstract class Gossipable {
62
62
  return this.cachedId;
63
63
  }
64
64
 
65
- abstract generateP2PMessageIdentifier(): Promise<Buffer32>;
65
+ abstract generateP2PMessageIdentifier(): Promise<BaseBuffer32>;
66
66
 
67
67
  abstract toBuffer(): Buffer;
68
68