@aztec/stdlib 0.0.1-commit.b6e433891 → 0.0.1-commit.b9865e97

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 (881) 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 +1 -1
  10. package/dest/abi/contract_artifact.d.ts.map +1 -1
  11. package/dest/abi/contract_artifact.js +14 -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 +210 -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 +6 -3
  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 +44 -17
  90. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +3 -1
  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 +3 -0
  93. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +4 -1
  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 +43 -11
  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 +5 -4
  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 +9 -1
  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/config/chain-config.d.ts +4 -9
  127. package/dest/config/chain-config.d.ts.map +1 -1
  128. package/dest/config/chain-config.js +13 -12
  129. package/dest/config/index.d.ts +1 -2
  130. package/dest/config/index.d.ts.map +1 -1
  131. package/dest/config/index.js +0 -1
  132. package/dest/config/sequencer-config.d.ts +5 -3
  133. package/dest/config/sequencer-config.d.ts.map +1 -1
  134. package/dest/config/sequencer-config.js +18 -4
  135. package/dest/contract/complete_address.d.ts +3 -2
  136. package/dest/contract/complete_address.d.ts.map +1 -1
  137. package/dest/contract/complete_address.js +6 -2
  138. package/dest/contract/contract_address.d.ts +5 -5
  139. package/dest/contract/contract_address.d.ts.map +1 -1
  140. package/dest/contract/contract_address.js +5 -4
  141. package/dest/contract/contract_deployment_data.d.ts +15 -61
  142. package/dest/contract/contract_deployment_data.d.ts.map +1 -1
  143. package/dest/contract/contract_instance.d.ts +4 -2
  144. package/dest/contract/contract_instance.d.ts.map +1 -1
  145. package/dest/contract/contract_instance.js +10 -3
  146. package/dest/contract/index.d.ts +1 -3
  147. package/dest/contract/index.d.ts.map +1 -1
  148. package/dest/contract/index.js +0 -2
  149. package/dest/contract/interfaces/contract_class.d.ts +17 -241
  150. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  151. package/dest/contract/interfaces/contract_class.js +1 -28
  152. package/dest/contract/interfaces/contract_instance.d.ts +41 -95
  153. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  154. package/dest/contract/interfaces/contract_instance.js +4 -2
  155. package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
  156. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  157. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
  158. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  159. package/dest/contract/private_function.d.ts +1 -1
  160. package/dest/contract/private_function.d.ts.map +1 -1
  161. package/dest/contract/private_function.js +2 -4
  162. package/dest/database-version/database_version.d.ts +5 -11
  163. package/dest/database-version/database_version.d.ts.map +1 -1
  164. package/dest/database-version/version_manager.d.ts +6 -2
  165. package/dest/database-version/version_manager.d.ts.map +1 -1
  166. package/dest/database-version/version_manager.js +12 -1
  167. package/dest/epoch-helpers/index.d.ts +10 -22
  168. package/dest/epoch-helpers/index.d.ts.map +1 -1
  169. package/dest/epoch-helpers/index.js +12 -0
  170. package/dest/file-store/factory.d.ts +4 -3
  171. package/dest/file-store/factory.d.ts.map +1 -1
  172. package/dest/file-store/factory.js +2 -2
  173. package/dest/file-store/http.d.ts +9 -2
  174. package/dest/file-store/http.d.ts.map +1 -1
  175. package/dest/file-store/http.js +20 -9
  176. package/dest/file-store/index.d.ts +2 -1
  177. package/dest/file-store/index.d.ts.map +1 -1
  178. package/dest/gas/fee_math.d.ts +49 -0
  179. package/dest/gas/fee_math.d.ts.map +1 -0
  180. package/dest/gas/fee_math.js +80 -0
  181. package/dest/gas/gas.d.ts +9 -14
  182. package/dest/gas/gas.d.ts.map +1 -1
  183. package/dest/gas/gas.js +6 -3
  184. package/dest/gas/gas_fees.d.ts +13 -14
  185. package/dest/gas/gas_fees.d.ts.map +1 -1
  186. package/dest/gas/gas_fees.js +17 -4
  187. package/dest/gas/gas_settings.d.ts +66 -86
  188. package/dest/gas/gas_settings.d.ts.map +1 -1
  189. package/dest/gas/gas_settings.js +56 -9
  190. package/dest/gas/index.d.ts +2 -1
  191. package/dest/gas/index.d.ts.map +1 -1
  192. package/dest/gas/index.js +1 -0
  193. package/dest/ha-signing/config.d.ts +11 -75
  194. package/dest/ha-signing/config.d.ts.map +1 -1
  195. package/dest/ha-signing/config.js +9 -18
  196. package/dest/ha-signing/index.d.ts +2 -2
  197. package/dest/ha-signing/index.d.ts.map +1 -1
  198. package/dest/ha-signing/index.js +1 -1
  199. package/dest/ha-signing/local_config.d.ts +3 -34
  200. package/dest/ha-signing/local_config.d.ts.map +1 -1
  201. package/dest/ha-signing/local_config.js +2 -2
  202. package/dest/ha-signing/types.d.ts +37 -32
  203. package/dest/ha-signing/types.d.ts.map +1 -1
  204. package/dest/ha-signing/types.js +13 -6
  205. package/dest/hash/hash.d.ts +19 -1
  206. package/dest/hash/hash.d.ts.map +1 -1
  207. package/dest/hash/hash.js +39 -2
  208. package/dest/interfaces/allowed_element.d.ts +4 -28
  209. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  210. package/dest/interfaces/api_limit.d.ts +1 -1
  211. package/dest/interfaces/api_limit.js +1 -1
  212. package/dest/interfaces/archiver.d.ts +22 -32
  213. package/dest/interfaces/archiver.d.ts.map +1 -1
  214. package/dest/interfaces/archiver.js +214 -70
  215. package/dest/interfaces/aztec-node-admin.d.ts +65 -303
  216. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  217. package/dest/interfaces/aztec-node-admin.js +59 -16
  218. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  219. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  220. package/dest/interfaces/aztec-node-debug.js +21 -0
  221. package/dest/interfaces/aztec-node.d.ts +109 -106
  222. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  223. package/dest/interfaces/aztec-node.js +309 -69
  224. package/dest/interfaces/block-builder.d.ts +3 -1
  225. package/dest/interfaces/block-builder.d.ts.map +1 -1
  226. package/dest/interfaces/block_response.d.ts +90 -0
  227. package/dest/interfaces/block_response.d.ts.map +1 -0
  228. package/dest/interfaces/block_response.js +30 -0
  229. package/dest/interfaces/chain_tips.d.ts +50 -0
  230. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  231. package/dest/interfaces/chain_tips.js +11 -0
  232. package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
  233. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  234. package/dest/interfaces/checkpoint_parameter.js +18 -0
  235. package/dest/interfaces/checkpoint_response.d.ts +122 -0
  236. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  237. package/dest/interfaces/checkpoint_response.js +26 -0
  238. package/dest/interfaces/client.d.ts +8 -2
  239. package/dest/interfaces/client.d.ts.map +1 -1
  240. package/dest/interfaces/client.js +7 -1
  241. package/dest/interfaces/configs.d.ts +41 -130
  242. package/dest/interfaces/configs.d.ts.map +1 -1
  243. package/dest/interfaces/configs.js +9 -1
  244. package/dest/interfaces/l1_publish_info.d.ts +29 -0
  245. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  246. package/dest/interfaces/l1_publish_info.js +26 -0
  247. package/dest/interfaces/l2_logs_source.d.ts +14 -36
  248. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  249. package/dest/interfaces/l2_logs_source.js +5 -0
  250. package/dest/interfaces/merkle_tree_operations.d.ts +12 -5
  251. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  252. package/dest/interfaces/p2p-bootstrap.js +8 -2
  253. package/dest/interfaces/p2p.d.ts +15 -5
  254. package/dest/interfaces/p2p.d.ts.map +1 -1
  255. package/dest/interfaces/p2p.js +28 -5
  256. package/dest/interfaces/private_kernel_prover.d.ts +62 -2
  257. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  258. package/dest/interfaces/prover-agent.d.ts +5 -23
  259. package/dest/interfaces/prover-agent.d.ts.map +1 -1
  260. package/dest/interfaces/prover-agent.js +4 -1
  261. package/dest/interfaces/prover-client.d.ts +6 -27
  262. package/dest/interfaces/prover-client.d.ts.map +1 -1
  263. package/dest/interfaces/prover-client.js +0 -3
  264. package/dest/interfaces/prover-node.js +22 -8
  265. package/dest/interfaces/proving-job-source.js +24 -4
  266. package/dest/interfaces/proving-job.d.ts +742 -5793
  267. package/dest/interfaces/proving-job.d.ts.map +1 -1
  268. package/dest/interfaces/proving-job.js +1 -1
  269. package/dest/interfaces/public_storage_override.d.ts +22 -0
  270. package/dest/interfaces/public_storage_override.d.ts.map +1 -0
  271. package/dest/interfaces/public_storage_override.js +7 -0
  272. package/dest/interfaces/server.d.ts +6 -1
  273. package/dest/interfaces/server.d.ts.map +1 -1
  274. package/dest/interfaces/server.js +5 -0
  275. package/dest/interfaces/slasher.d.ts +25 -65
  276. package/dest/interfaces/slasher.d.ts.map +1 -1
  277. package/dest/interfaces/slasher.js +8 -4
  278. package/dest/interfaces/tx_provider.d.ts +6 -1
  279. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  280. package/dest/interfaces/validator.d.ts +48 -248
  281. package/dest/interfaces/validator.d.ts.map +1 -1
  282. package/dest/interfaces/validator.js +5 -1
  283. package/dest/interfaces/world_state.d.ts +2 -2
  284. package/dest/interfaces/world_state.d.ts.map +1 -1
  285. package/dest/kernel/hints/key_validation_request.d.ts +12 -8
  286. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  287. package/dest/kernel/hints/key_validation_request.js +20 -18
  288. package/dest/kernel/index.d.ts +5 -1
  289. package/dest/kernel/index.d.ts.map +1 -1
  290. package/dest/kernel/index.js +4 -0
  291. package/dest/kernel/log_hash.d.ts +6 -2
  292. package/dest/kernel/log_hash.d.ts.map +1 -1
  293. package/dest/kernel/log_hash.js +21 -9
  294. package/dest/kernel/private_circuit_public_inputs.d.ts +2 -2
  295. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  296. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -2
  297. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  298. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +23 -0
  299. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
  300. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +35 -0
  301. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +24 -0
  302. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
  303. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +37 -0
  304. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
  305. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
  306. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
  307. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
  308. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
  309. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
  310. package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
  311. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  312. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +9 -6
  313. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  314. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +22 -7
  315. package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
  316. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  317. package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
  318. package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
  319. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  320. package/dest/kernel/private_to_public_accumulated_data.js +6 -3
  321. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +5 -4
  322. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  323. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -3
  324. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
  325. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  326. package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
  327. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +5 -4
  328. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  329. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -3
  330. package/dest/kernel/public_call_request.d.ts +15 -30
  331. package/dest/kernel/public_call_request.d.ts.map +1 -1
  332. package/dest/kernel/public_call_request.js +16 -7
  333. package/dest/keys/derivation.d.ts +6 -2
  334. package/dest/keys/derivation.d.ts.map +1 -1
  335. package/dest/keys/derivation.js +16 -6
  336. package/dest/keys/public_key.d.ts +22 -3
  337. package/dest/keys/public_key.d.ts.map +1 -1
  338. package/dest/keys/public_key.js +20 -1
  339. package/dest/keys/public_keys.d.ts +55 -82
  340. package/dest/keys/public_keys.d.ts.map +1 -1
  341. package/dest/keys/public_keys.js +102 -74
  342. package/dest/kv-store/config.d.ts +3 -6
  343. package/dest/kv-store/config.d.ts.map +1 -1
  344. package/dest/kv-store/config.js +2 -7
  345. package/dest/l1-contracts/index.d.ts +2 -2
  346. package/dest/l1-contracts/index.d.ts.map +1 -1
  347. package/dest/l1-contracts/index.js +1 -1
  348. package/dest/logs/app_tagging_secret.d.ts +46 -0
  349. package/dest/logs/app_tagging_secret.d.ts.map +1 -0
  350. package/dest/logs/app_tagging_secret.js +109 -0
  351. package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
  352. package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
  353. package/dest/logs/app_tagging_secret_kind.js +17 -0
  354. package/dest/logs/contract_class_log.d.ts +16 -34
  355. package/dest/logs/contract_class_log.d.ts.map +1 -1
  356. package/dest/logs/contract_class_log.js +11 -9
  357. package/dest/logs/index.d.ts +7 -7
  358. package/dest/logs/index.d.ts.map +1 -1
  359. package/dest/logs/index.js +6 -6
  360. package/dest/logs/log_cursor.d.ts +51 -0
  361. package/dest/logs/log_cursor.d.ts.map +1 -0
  362. package/dest/logs/log_cursor.js +82 -0
  363. package/dest/logs/log_result.d.ts +54 -0
  364. package/dest/logs/log_result.d.ts.map +1 -0
  365. package/dest/logs/log_result.js +56 -0
  366. package/dest/logs/logs_query.d.ts +82 -0
  367. package/dest/logs/logs_query.d.ts.map +1 -0
  368. package/dest/logs/logs_query.js +50 -0
  369. package/dest/logs/message_context.d.ts +6 -8
  370. package/dest/logs/message_context.d.ts.map +1 -1
  371. package/dest/logs/message_context.js +27 -9
  372. package/dest/logs/pending_tagged_log.d.ts +2 -3
  373. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  374. package/dest/logs/pending_tagged_log.js +2 -2
  375. package/dest/logs/pre_tag.d.ts +11 -24
  376. package/dest/logs/pre_tag.d.ts.map +1 -1
  377. package/dest/logs/pre_tag.js +2 -2
  378. package/dest/logs/private_log.d.ts +7 -12
  379. package/dest/logs/private_log.d.ts.map +1 -1
  380. package/dest/logs/private_log.js +6 -3
  381. package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
  382. package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
  383. package/dest/logs/query_all_logs_by_tags.js +64 -0
  384. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  385. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  386. package/dest/logs/shared_secret_derivation.js +15 -9
  387. package/dest/logs/siloed_tag.d.ts +8 -7
  388. package/dest/logs/siloed_tag.d.ts.map +1 -1
  389. package/dest/logs/siloed_tag.js +13 -3
  390. package/dest/logs/tag.d.ts +5 -6
  391. package/dest/logs/tag.d.ts.map +1 -1
  392. package/dest/logs/tag.js +4 -0
  393. package/dest/logs/tagging_index_range.d.ts +13 -31
  394. package/dest/logs/tagging_index_range.d.ts.map +1 -1
  395. package/dest/logs/tagging_index_range.js +2 -2
  396. package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
  397. package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
  398. package/dest/messaging/append_l1_to_l2_messages.js +12 -0
  399. package/dest/messaging/index.d.ts +2 -1
  400. package/dest/messaging/index.d.ts.map +1 -1
  401. package/dest/messaging/index.js +1 -0
  402. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  403. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  404. package/dest/messaging/l1_to_l2_message.js +11 -13
  405. package/dest/messaging/l2_to_l1_membership.d.ts +43 -6
  406. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  407. package/dest/messaging/l2_to_l1_membership.js +72 -12
  408. package/dest/messaging/l2_to_l1_message.d.ts +38 -112
  409. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  410. package/dest/messaging/l2_to_l1_message.js +21 -12
  411. package/dest/noir/index.d.ts +3 -1
  412. package/dest/noir/index.d.ts.map +1 -1
  413. package/dest/note/note.d.ts +2 -2
  414. package/dest/note/note.d.ts.map +1 -1
  415. package/dest/note/note_dao.d.ts +1 -1
  416. package/dest/note/note_dao.d.ts.map +1 -1
  417. package/dest/note/note_dao.js +1 -4
  418. package/dest/p2p/block_proposal.d.ts +31 -14
  419. package/dest/p2p/block_proposal.d.ts.map +1 -1
  420. package/dest/p2p/block_proposal.js +57 -39
  421. package/dest/p2p/checkpoint_attestation.d.ts +15 -9
  422. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  423. package/dest/p2p/checkpoint_attestation.js +23 -24
  424. package/dest/p2p/checkpoint_proposal.d.ts +35 -16
  425. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  426. package/dest/p2p/checkpoint_proposal.js +59 -51
  427. package/dest/p2p/consensus_payload.d.ts +26 -20
  428. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  429. package/dest/p2p/consensus_payload.js +38 -19
  430. package/dest/p2p/gossipable.d.ts +4 -4
  431. package/dest/p2p/gossipable.d.ts.map +1 -1
  432. package/dest/p2p/signature_utils.d.ts +28 -19
  433. package/dest/p2p/signature_utils.d.ts.map +1 -1
  434. package/dest/p2p/signature_utils.js +118 -21
  435. package/dest/p2p/signed_txs.d.ts +15 -13
  436. package/dest/p2p/signed_txs.d.ts.map +1 -1
  437. package/dest/p2p/signed_txs.js +26 -24
  438. package/dest/parity/parity_base_private_inputs.d.ts +8 -4
  439. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  440. package/dest/parity/parity_base_private_inputs.js +7 -5
  441. package/dest/parity/parity_public_inputs.d.ts +8 -4
  442. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  443. package/dest/parity/parity_public_inputs.js +6 -3
  444. package/dest/parity/parity_root_private_inputs.d.ts +2 -2
  445. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  446. package/dest/proofs/chonk_proof.d.ts +57 -7
  447. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  448. package/dest/proofs/chonk_proof.js +112 -15
  449. package/dest/proofs/recursive_proof.d.ts +2 -2
  450. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  451. package/dest/rollup/block_headers_hash.d.ts +1 -1
  452. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  453. package/dest/rollup/block_headers_hash.js +8 -2
  454. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
  455. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  456. package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
  457. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  458. package/dest/rollup/block_rollup_public_inputs.js +12 -0
  459. package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
  460. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  461. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
  462. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  463. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +9 -2
  464. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  465. package/dest/rollup/checkpoint_rollup_public_inputs.js +9 -0
  466. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +5 -5
  467. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  468. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
  469. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
  470. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
  471. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
  472. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
  473. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
  474. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
  475. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  476. package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
  477. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  478. package/dest/rollup/root_rollup_public_inputs.d.ts +2 -2
  479. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  480. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
  481. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  482. package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
  483. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  484. package/dest/schemas/schemas.d.ts +32 -78
  485. package/dest/schemas/schemas.d.ts.map +1 -1
  486. package/dest/schemas/schemas.js +2 -2
  487. package/dest/slashing/helpers.d.ts +2 -2
  488. package/dest/slashing/helpers.d.ts.map +1 -1
  489. package/dest/slashing/helpers.js +10 -7
  490. package/dest/slashing/index.d.ts +2 -3
  491. package/dest/slashing/index.d.ts.map +1 -1
  492. package/dest/slashing/index.js +1 -2
  493. package/dest/slashing/serialization.d.ts +2 -6
  494. package/dest/slashing/serialization.d.ts.map +1 -1
  495. package/dest/slashing/serialization.js +0 -60
  496. package/dest/slashing/types.d.ts +18 -112
  497. package/dest/slashing/types.d.ts.map +1 -1
  498. package/dest/slashing/types.js +16 -24
  499. package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
  500. package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
  501. package/dest/slashing/{tally.js → votes.js} +1 -1
  502. package/dest/snapshots/types.d.ts +15 -78
  503. package/dest/snapshots/types.d.ts.map +1 -1
  504. package/dest/stats/stats.d.ts +2 -2
  505. package/dest/stats/stats.d.ts.map +1 -1
  506. package/dest/tests/factories.d.ts +25 -32
  507. package/dest/tests/factories.d.ts.map +1 -1
  508. package/dest/tests/factories.js +82 -82
  509. package/dest/tests/mocks.d.ts +8 -5
  510. package/dest/tests/mocks.d.ts.map +1 -1
  511. package/dest/tests/mocks.js +42 -54
  512. package/dest/timetable/index.d.ts +48 -1
  513. package/dest/timetable/index.d.ts.map +1 -1
  514. package/dest/timetable/index.js +184 -14
  515. package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
  516. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  517. package/dest/trees/append_only_tree_snapshot.js +6 -3
  518. package/dest/trees/nullifier_leaf.d.ts +19 -42
  519. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  520. package/dest/trees/nullifier_leaf.js +3 -0
  521. package/dest/trees/nullifier_membership_witness.d.ts +16 -59
  522. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  523. package/dest/trees/nullifier_membership_witness.js +2 -14
  524. package/dest/trees/public_data_leaf.d.ts +21 -53
  525. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  526. package/dest/trees/public_data_witness.d.ts +16 -58
  527. package/dest/trees/public_data_witness.d.ts.map +1 -1
  528. package/dest/tx/block_header.d.ts +5 -4
  529. package/dest/tx/block_header.d.ts.map +1 -1
  530. package/dest/tx/block_header.js +7 -4
  531. package/dest/tx/call_context.d.ts +4 -14
  532. package/dest/tx/call_context.d.ts.map +1 -1
  533. package/dest/tx/capsule.d.ts +7 -3
  534. package/dest/tx/capsule.d.ts.map +1 -1
  535. package/dest/tx/capsule.js +9 -3
  536. package/dest/tx/fee_provider.d.ts +10 -0
  537. package/dest/tx/fee_provider.d.ts.map +1 -0
  538. package/dest/tx/fee_provider.js +1 -0
  539. package/dest/tx/function_data.d.ts +4 -10
  540. package/dest/tx/function_data.d.ts.map +1 -1
  541. package/dest/tx/global_variable_builder.d.ts +3 -4
  542. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  543. package/dest/tx/global_variables.d.ts +16 -49
  544. package/dest/tx/global_variables.d.ts.map +1 -1
  545. package/dest/tx/global_variables.js +8 -12
  546. package/dest/tx/hashed_values.d.ts +4 -3
  547. package/dest/tx/hashed_values.d.ts.map +1 -1
  548. package/dest/tx/hashed_values.js +6 -3
  549. package/dest/tx/in_tx.d.ts +5 -17
  550. package/dest/tx/in_tx.d.ts.map +1 -1
  551. package/dest/tx/index.d.ts +2 -1
  552. package/dest/tx/index.d.ts.map +1 -1
  553. package/dest/tx/index.js +1 -0
  554. package/dest/tx/indexed_tx_effect.d.ts +8 -19
  555. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  556. package/dest/tx/indexed_tx_effect.js +9 -6
  557. package/dest/tx/partial_state_reference.d.ts +22 -65
  558. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  559. package/dest/tx/partial_state_reference.js +6 -3
  560. package/dest/tx/private_execution_result.d.ts +6 -16
  561. package/dest/tx/private_execution_result.d.ts.map +1 -1
  562. package/dest/tx/profiling.d.ts +54 -352
  563. package/dest/tx/profiling.d.ts.map +1 -1
  564. package/dest/tx/profiling.js +4 -4
  565. package/dest/tx/protocol_contracts.d.ts +5 -9
  566. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  567. package/dest/tx/proven_tx.d.ts +30 -74
  568. package/dest/tx/proven_tx.d.ts.map +1 -1
  569. package/dest/tx/proven_tx.js +6 -0
  570. package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
  571. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  572. package/dest/tx/public_call_request_with_calldata.js +6 -3
  573. package/dest/tx/simulated_tx.d.ts +64 -1143
  574. package/dest/tx/simulated_tx.d.ts.map +1 -1
  575. package/dest/tx/simulated_tx.js +13 -11
  576. package/dest/tx/state_reference.d.ts +30 -117
  577. package/dest/tx/state_reference.d.ts.map +1 -1
  578. package/dest/tx/state_reference.js +6 -4
  579. package/dest/tx/tree_snapshots.d.ts +27 -84
  580. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  581. package/dest/tx/tree_snapshots.js +6 -4
  582. package/dest/tx/tx.d.ts +14 -13
  583. package/dest/tx/tx.d.ts.map +1 -1
  584. package/dest/tx/tx.js +30 -23
  585. package/dest/tx/tx_constant_data.d.ts +4 -3
  586. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  587. package/dest/tx/tx_constant_data.js +6 -3
  588. package/dest/tx/tx_context.d.ts +32 -131
  589. package/dest/tx/tx_context.d.ts.map +1 -1
  590. package/dest/tx/tx_context.js +6 -6
  591. package/dest/tx/tx_hash.d.ts +6 -4
  592. package/dest/tx/tx_hash.d.ts.map +1 -1
  593. package/dest/tx/tx_hash.js +13 -5
  594. package/dest/tx/tx_receipt.d.ts +144 -63
  595. package/dest/tx/tx_receipt.d.ts.map +1 -1
  596. package/dest/tx/tx_receipt.js +143 -60
  597. package/dest/tx/validator/error_texts.d.ts +5 -1
  598. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  599. package/dest/tx/validator/error_texts.js +6 -0
  600. package/dest/tx/validator/tx_validator.d.ts +5 -27
  601. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  602. package/dest/tx/validator/tx_validator.js +0 -4
  603. package/dest/types/shared.d.ts +4 -12
  604. package/dest/types/shared.d.ts.map +1 -1
  605. package/dest/types/shared.js +6 -12
  606. package/dest/update-checker/dev_version.d.ts +3 -0
  607. package/dest/update-checker/dev_version.d.ts.map +1 -0
  608. package/dest/update-checker/dev_version.js +1 -0
  609. package/dest/update-checker/index.d.ts +2 -1
  610. package/dest/update-checker/index.d.ts.map +1 -1
  611. package/dest/update-checker/index.js +1 -0
  612. package/dest/update-checker/package_version.d.ts +6 -3
  613. package/dest/update-checker/package_version.d.ts.map +1 -1
  614. package/dest/update-checker/package_version.js +8 -19
  615. package/dest/validators/schemas.d.ts +147 -614
  616. package/dest/validators/schemas.d.ts.map +1 -1
  617. package/dest/validators/schemas.js +6 -4
  618. package/dest/validators/types.d.ts +20 -3
  619. package/dest/validators/types.d.ts.map +1 -1
  620. package/dest/versioning/versioning.js +1 -1
  621. package/dest/vks/verification_key.d.ts +4 -139
  622. package/dest/vks/verification_key.d.ts.map +1 -1
  623. package/dest/vks/verification_key.js +5 -126
  624. package/dest/world-state/genesis_data.d.ts +13 -0
  625. package/dest/world-state/genesis_data.d.ts.map +1 -0
  626. package/dest/world-state/genesis_data.js +7 -0
  627. package/dest/world-state/index.d.ts +2 -1
  628. package/dest/world-state/index.d.ts.map +1 -1
  629. package/dest/world-state/index.js +1 -0
  630. package/dest/world-state/world_state_revision.d.ts +11 -39
  631. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  632. package/dest/world-state/world_state_revision.js +7 -21
  633. package/package.json +12 -11
  634. package/src/abi/abi.ts +78 -21
  635. package/src/abi/authorization_selector.ts +2 -8
  636. package/src/abi/buffer.ts +25 -4
  637. package/src/abi/contract_artifact.ts +11 -6
  638. package/src/abi/decoder.ts +23 -78
  639. package/src/abi/encoder.ts +42 -6
  640. package/src/abi/event_selector.ts +2 -8
  641. package/src/abi/function_selector.ts +4 -13
  642. package/src/abi/function_signature_decoder.ts +77 -0
  643. package/src/abi/index.ts +1 -0
  644. package/src/abi/note_selector.ts +3 -12
  645. package/src/abi/selector.ts +1 -1
  646. package/src/abi/utils.ts +6 -4
  647. package/src/avm/avm.ts +5 -0
  648. package/src/avm/message_pack.ts +12 -3
  649. package/src/avm/revert_code.ts +19 -39
  650. package/src/aztec-address/index.ts +15 -12
  651. package/src/block/attestation_info.ts +11 -11
  652. package/src/block/block_data.ts +3 -4
  653. package/src/block/block_hash.ts +21 -14
  654. package/src/block/block_parameter.ts +72 -4
  655. package/src/block/index.ts +0 -1
  656. package/src/block/l2_block_info.ts +8 -6
  657. package/src/block/l2_block_source.ts +209 -147
  658. package/src/block/l2_block_stream/interfaces.ts +6 -2
  659. package/src/block/l2_block_stream/l2_block_stream.ts +39 -28
  660. package/src/block/l2_block_stream/l2_tips_memory_store.ts +5 -0
  661. package/src/block/l2_block_stream/l2_tips_store_base.ts +53 -19
  662. package/src/block/proposal/attestations_and_signers.ts +32 -17
  663. package/src/block/test/l2_tips_store_test_suite.ts +10 -3
  664. package/src/checkpoint/checkpoint.ts +11 -1
  665. package/src/checkpoint/checkpoint_data.ts +44 -4
  666. package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
  667. package/src/checkpoint/digest.ts +28 -0
  668. package/src/checkpoint/index.ts +3 -0
  669. package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
  670. package/src/config/chain-config.ts +13 -16
  671. package/src/config/index.ts +0 -1
  672. package/src/config/sequencer-config.ts +34 -6
  673. package/src/contract/complete_address.ts +7 -3
  674. package/src/contract/contract_address.ts +6 -6
  675. package/src/contract/contract_instance.ts +11 -2
  676. package/src/contract/index.ts +0 -2
  677. package/src/contract/interfaces/contract_class.ts +2 -82
  678. package/src/contract/interfaces/contract_instance.ts +6 -2
  679. package/src/contract/private_function.ts +3 -1
  680. package/src/database-version/version_manager.ts +17 -0
  681. package/src/epoch-helpers/index.ts +24 -0
  682. package/src/file-store/factory.ts +13 -4
  683. package/src/file-store/http.ts +29 -10
  684. package/src/file-store/index.ts +1 -0
  685. package/src/gas/README.md +31 -0
  686. package/src/gas/fee_math.ts +120 -0
  687. package/src/gas/gas.ts +8 -3
  688. package/src/gas/gas_fees.ts +26 -13
  689. package/src/gas/gas_settings.ts +73 -15
  690. package/src/gas/index.ts +1 -0
  691. package/src/ha-signing/config.ts +14 -18
  692. package/src/ha-signing/index.ts +3 -1
  693. package/src/ha-signing/local_config.ts +2 -2
  694. package/src/ha-signing/types.ts +48 -34
  695. package/src/hash/hash.ts +34 -2
  696. package/src/interfaces/api_limit.ts +1 -1
  697. package/src/interfaces/archiver.ts +89 -93
  698. package/src/interfaces/aztec-node-admin.ts +35 -20
  699. package/src/interfaces/aztec-node-debug.ts +40 -0
  700. package/src/interfaces/aztec-node.ts +306 -257
  701. package/src/interfaces/block-builder.ts +2 -0
  702. package/src/interfaces/block_response.ts +92 -0
  703. package/src/interfaces/chain_tips.ts +24 -0
  704. package/src/interfaces/checkpoint_parameter.ts +20 -0
  705. package/src/interfaces/checkpoint_response.ts +84 -0
  706. package/src/interfaces/client.ts +7 -1
  707. package/src/interfaces/configs.ts +40 -1
  708. package/src/interfaces/l1_publish_info.ts +40 -0
  709. package/src/interfaces/l2_logs_source.ts +13 -42
  710. package/src/interfaces/merkle_tree_operations.ts +12 -4
  711. package/src/interfaces/p2p-bootstrap.ts +2 -2
  712. package/src/interfaces/p2p.ts +35 -15
  713. package/src/interfaces/private_kernel_prover.ts +88 -0
  714. package/src/interfaces/prover-agent.ts +1 -1
  715. package/src/interfaces/prover-client.ts +2 -5
  716. package/src/interfaces/prover-node.ts +7 -7
  717. package/src/interfaces/proving-job-source.ts +4 -4
  718. package/src/interfaces/proving-job.ts +3 -3
  719. package/src/interfaces/public_storage_override.ts +26 -0
  720. package/src/interfaces/server.ts +5 -0
  721. package/src/interfaces/slasher.ts +17 -10
  722. package/src/interfaces/tx_provider.ts +6 -0
  723. package/src/interfaces/validator.ts +34 -15
  724. package/src/interfaces/world_state.ts +1 -1
  725. package/src/kernel/hints/key_validation_request.ts +18 -16
  726. package/src/kernel/index.ts +4 -0
  727. package/src/kernel/log_hash.ts +29 -9
  728. package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +49 -0
  729. package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +52 -0
  730. package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
  731. package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
  732. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +29 -14
  733. package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
  734. package/src/kernel/private_to_public_accumulated_data.ts +9 -3
  735. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +10 -4
  736. package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
  737. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
  738. package/src/kernel/public_call_request.ts +22 -7
  739. package/src/keys/derivation.ts +21 -9
  740. package/src/keys/public_key.ts +26 -2
  741. package/src/keys/public_keys.ts +124 -110
  742. package/src/kv-store/config.ts +3 -10
  743. package/src/l1-contracts/index.ts +1 -1
  744. package/src/logs/app_tagging_secret.ts +137 -0
  745. package/src/logs/app_tagging_secret_kind.ts +21 -0
  746. package/src/logs/contract_class_log.ts +15 -5
  747. package/src/logs/index.ts +6 -6
  748. package/src/logs/log_cursor.ts +110 -0
  749. package/src/logs/log_result.ts +104 -0
  750. package/src/logs/logs_query.ts +138 -0
  751. package/src/logs/message_context.ts +22 -8
  752. package/src/logs/pending_tagged_log.ts +1 -3
  753. package/src/logs/pre_tag.ts +3 -6
  754. package/src/logs/private_log.ts +9 -3
  755. package/src/logs/query_all_logs_by_tags.ts +98 -0
  756. package/src/logs/shared_secret_derivation.ts +21 -10
  757. package/src/logs/siloed_tag.ts +20 -11
  758. package/src/logs/tag.ts +8 -8
  759. package/src/logs/tagging_index_range.ts +4 -10
  760. package/src/messaging/append_l1_to_l2_messages.ts +21 -0
  761. package/src/messaging/index.ts +1 -0
  762. package/src/messaging/l1_to_l2_message.ts +12 -9
  763. package/src/messaging/l2_to_l1_membership.ts +108 -19
  764. package/src/messaging/l2_to_l1_message.ts +29 -9
  765. package/src/noir/index.ts +2 -0
  766. package/src/note/note_dao.ts +1 -4
  767. package/src/p2p/block_proposal.ts +111 -36
  768. package/src/p2p/checkpoint_attestation.ts +27 -31
  769. package/src/p2p/checkpoint_proposal.ts +128 -73
  770. package/src/p2p/consensus_payload.ts +59 -28
  771. package/src/p2p/gossipable.ts +4 -4
  772. package/src/p2p/signature_utils.ts +110 -25
  773. package/src/p2p/signed_txs.ts +46 -28
  774. package/src/parity/parity_base_private_inputs.ts +10 -4
  775. package/src/parity/parity_public_inputs.ts +9 -2
  776. package/src/proofs/chonk_proof.ts +132 -12
  777. package/src/rollup/block_headers_hash.ts +11 -2
  778. package/src/rollup/block_rollup_public_inputs.ts +13 -0
  779. package/src/rollup/checkpoint_rollup_public_inputs.ts +10 -0
  780. package/src/schemas/schemas.ts +6 -1
  781. package/src/slashing/helpers.ts +13 -9
  782. package/src/slashing/index.ts +1 -2
  783. package/src/slashing/serialization.ts +1 -81
  784. package/src/slashing/types.ts +24 -49
  785. package/src/slashing/{tally.ts → votes.ts} +1 -1
  786. package/src/stats/stats.ts +4 -0
  787. package/src/tests/factories.ts +103 -111
  788. package/src/tests/mocks.ts +66 -70
  789. package/src/timetable/index.ts +251 -13
  790. package/src/trees/append_only_tree_snapshot.ts +8 -3
  791. package/src/trees/nullifier_leaf.ts +4 -0
  792. package/src/trees/nullifier_membership_witness.ts +2 -12
  793. package/src/tx/block_header.ts +10 -5
  794. package/src/tx/capsule.ts +10 -2
  795. package/src/tx/fee_provider.ts +10 -0
  796. package/src/tx/global_variable_builder.ts +2 -3
  797. package/src/tx/global_variables.ts +10 -18
  798. package/src/tx/hashed_values.ts +8 -3
  799. package/src/tx/index.ts +1 -0
  800. package/src/tx/indexed_tx_effect.ts +18 -6
  801. package/src/tx/partial_state_reference.ts +8 -3
  802. package/src/tx/profiling.ts +4 -4
  803. package/src/tx/proven_tx.ts +6 -0
  804. package/src/tx/public_call_request_with_calldata.ts +8 -3
  805. package/src/tx/simulated_tx.ts +22 -21
  806. package/src/tx/state_reference.ts +9 -4
  807. package/src/tx/tree_snapshots.ts +9 -4
  808. package/src/tx/tx.ts +43 -24
  809. package/src/tx/tx_constant_data.ts +8 -3
  810. package/src/tx/tx_context.ts +8 -3
  811. package/src/tx/tx_hash.ts +20 -5
  812. package/src/tx/tx_receipt.ts +265 -85
  813. package/src/tx/validator/error_texts.ts +8 -0
  814. package/src/tx/validator/tx_validator.ts +1 -5
  815. package/src/types/shared.ts +8 -13
  816. package/src/update-checker/dev_version.ts +2 -0
  817. package/src/update-checker/index.ts +1 -0
  818. package/src/update-checker/package_version.ts +10 -23
  819. package/src/validators/schemas.ts +6 -4
  820. package/src/validators/types.ts +21 -2
  821. package/src/versioning/versioning.ts +1 -1
  822. package/src/vks/verification_key.ts +5 -184
  823. package/src/world-state/genesis_data.ts +27 -0
  824. package/src/world-state/index.ts +1 -0
  825. package/src/world-state/world_state_revision.ts +9 -34
  826. package/dest/abi/mocked_keys.d.ts +0 -2
  827. package/dest/abi/mocked_keys.d.ts.map +0 -1
  828. package/dest/abi/mocked_keys.js +0 -1
  829. package/dest/block/checkpointed_l2_block.d.ts +0 -150
  830. package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
  831. package/dest/block/checkpointed_l2_block.js +0 -46
  832. package/dest/config/pipelining-config.d.ts +0 -19
  833. package/dest/config/pipelining-config.d.ts.map +0 -1
  834. package/dest/config/pipelining-config.js +0 -18
  835. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  836. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  837. package/dest/contract/private_function_membership_proof.js +0 -124
  838. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  839. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  840. package/dest/contract/utility_function_membership_proof.js +0 -87
  841. package/dest/interfaces/get_logs_response.d.ts +0 -97
  842. package/dest/interfaces/get_logs_response.d.ts.map +0 -1
  843. package/dest/interfaces/get_logs_response.js +0 -12
  844. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  845. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  846. package/dest/l1-contracts/slash_factory.js +0 -158
  847. package/dest/logs/extended_contract_class_log.d.ts +0 -51
  848. package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
  849. package/dest/logs/extended_contract_class_log.js +0 -67
  850. package/dest/logs/extended_directional_app_tagging_secret.d.ts +0 -47
  851. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +0 -1
  852. package/dest/logs/extended_directional_app_tagging_secret.js +0 -72
  853. package/dest/logs/extended_public_log.d.ts +0 -106
  854. package/dest/logs/extended_public_log.d.ts.map +0 -1
  855. package/dest/logs/extended_public_log.js +0 -73
  856. package/dest/logs/log_filter.d.ts +0 -25
  857. package/dest/logs/log_filter.d.ts.map +0 -1
  858. package/dest/logs/log_filter.js +0 -12
  859. package/dest/logs/log_id.d.ts +0 -85
  860. package/dest/logs/log_id.d.ts.map +0 -1
  861. package/dest/logs/log_id.js +0 -94
  862. package/dest/logs/tx_scoped_l2_log.d.ts +0 -51
  863. package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
  864. package/dest/logs/tx_scoped_l2_log.js +0 -77
  865. package/dest/slashing/empire.d.ts +0 -31
  866. package/dest/slashing/empire.d.ts.map +0 -1
  867. package/dest/slashing/empire.js +0 -87
  868. package/src/abi/mocked_keys.ts +0 -2
  869. package/src/block/checkpointed_l2_block.ts +0 -70
  870. package/src/config/pipelining-config.ts +0 -31
  871. package/src/contract/private_function_membership_proof.ts +0 -167
  872. package/src/contract/utility_function_membership_proof.ts +0 -118
  873. package/src/interfaces/get_logs_response.ts +0 -35
  874. package/src/l1-contracts/slash_factory.ts +0 -180
  875. package/src/logs/extended_contract_class_log.ts +0 -87
  876. package/src/logs/extended_directional_app_tagging_secret.ts +0 -87
  877. package/src/logs/extended_public_log.ts +0 -94
  878. package/src/logs/log_filter.ts +0 -36
  879. package/src/logs/log_id.ts +0 -125
  880. package/src/logs/tx_scoped_l2_log.ts +0 -114
  881. package/src/slashing/empire.ts +0 -104
@@ -1,6 +1,7 @@
1
1
  import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
2
2
 
3
3
  import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
4
+ import type { BlockHash } from '../block_hash.js';
4
5
  import type { L2BlockTag } from '../l2_block_source.js';
5
6
  import { L2TipsStoreBase } from './l2_tips_store_base.js';
6
7
 
@@ -9,6 +10,10 @@ import { L2TipsStoreBase } from './l2_tips_store_base.js';
9
10
  * @dev Tests in kv-store/src/stores/l2_tips_memory_store.test.ts
10
11
  */
11
12
  export class L2TipsMemoryStore extends L2TipsStoreBase {
13
+ constructor(initialBlockHash: BlockHash) {
14
+ super(initialBlockHash);
15
+ }
16
+
12
17
  private readonly tips = new Map<L2BlockTag, BlockNumber>();
13
18
  private readonly blockHashes = new Map<number, string>();
14
19
  private readonly blockToCheckpoint = new Map<number, CheckpointNumber>();
@@ -1,7 +1,7 @@
1
- import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/constants';
2
1
  import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
3
2
 
4
3
  import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
4
+ import type { BlockHash } from '../block_hash.js';
5
5
  import type { L2Block } from '../l2_block.js';
6
6
  import {
7
7
  type CheckpointId,
@@ -17,6 +17,7 @@ import type { L2BlockStreamEvent, L2BlockStreamEventHandler, L2BlockStreamLocalD
17
17
  * while delegating storage operations to subclasses.
18
18
  */
19
19
  export abstract class L2TipsStoreBase implements L2BlockStreamEventHandler, L2BlockStreamLocalDataProvider {
20
+ constructor(protected readonly initialBlockHash: BlockHash) {}
20
21
  // Abstract storage primitives - subclasses implement these based on their backing store
21
22
 
22
23
  /** Gets the block number for a given tag. */
@@ -60,30 +61,38 @@ export abstract class L2TipsStoreBase implements L2BlockStreamEventHandler, L2Bl
60
61
 
61
62
  // Public interface implementation
62
63
 
63
- public getL2BlockHash(number: BlockNumber): Promise<string | undefined> {
64
+ public async getL2BlockHash(number: BlockNumber): Promise<string | undefined> {
65
+ if (number === 0) {
66
+ return (await this.getStoredBlockHash(number)) ?? this.initialBlockHash.toString();
67
+ }
64
68
  return this.getStoredBlockHash(number);
65
69
  }
66
70
 
67
71
  public getL2Tips(): Promise<L2Tips> {
68
72
  return this.runInTransaction(async () => {
69
- const [proposedBlockId, finalizedBlockId, provenBlockId, checkpointedBlockId] = await Promise.all([
70
- this.getBlockId('proposed'),
71
- this.getBlockId('finalized'),
72
- this.getBlockId('proven'),
73
- this.getBlockId('checkpointed'),
74
- ]);
75
-
76
- const [finalizedCheckpointId, provenCheckpointId, checkpointedCheckpointId] = await Promise.all([
77
- this.getCheckpointId('finalized'),
78
- this.getCheckpointId('proven'),
79
- this.getCheckpointId('checkpointed'),
80
- ]);
73
+ const [proposedBlockId, finalizedBlockId, provenBlockId, checkpointedBlockId, proposedCheckpointBlockId] =
74
+ await Promise.all([
75
+ this.getBlockId('proposed'),
76
+ this.getBlockId('finalized'),
77
+ this.getBlockId('proven'),
78
+ this.getBlockId('checkpointed'),
79
+ this.getBlockId('proposedCheckpoint'),
80
+ ]);
81
+
82
+ const [finalizedCheckpointId, provenCheckpointId, checkpointedCheckpointId, proposedCheckpointId] =
83
+ await Promise.all([
84
+ this.getCheckpointId('finalized'),
85
+ this.getCheckpointId('proven'),
86
+ this.getCheckpointId('checkpointed'),
87
+ this.getCheckpointId('proposedCheckpoint'),
88
+ ]);
81
89
 
82
90
  return {
83
91
  proposed: proposedBlockId,
84
92
  finalized: { block: finalizedBlockId, checkpoint: finalizedCheckpointId },
85
93
  proven: { block: provenBlockId, checkpoint: provenCheckpointId },
86
94
  checkpointed: { block: checkpointedBlockId, checkpoint: checkpointedCheckpointId },
95
+ proposedCheckpoint: { block: proposedCheckpointBlockId, checkpoint: proposedCheckpointId },
87
96
  };
88
97
  });
89
98
  }
@@ -118,7 +127,7 @@ export abstract class L2TipsStoreBase implements L2BlockStreamEventHandler, L2Bl
118
127
  private async getBlockId(tag: L2BlockTag): Promise<L2BlockId> {
119
128
  const blockNumber = await this.getTip(tag);
120
129
  if (blockNumber === undefined || blockNumber === 0) {
121
- return { number: BlockNumber.ZERO, hash: GENESIS_BLOCK_HEADER_HASH.toString() };
130
+ return { number: BlockNumber.ZERO, hash: this.initialBlockHash.toString() };
122
131
  }
123
132
  const blockHash = await this.getStoredBlockHash(blockNumber);
124
133
  if (!blockHash) {
@@ -134,7 +143,6 @@ export abstract class L2TipsStoreBase implements L2BlockStreamEventHandler, L2Bl
134
143
  }
135
144
  const checkpointNumber = await this.getCheckpointNumberForBlock(blockNumber);
136
145
  if (checkpointNumber === undefined) {
137
- // No checkpoint associated with this block yet
138
146
  return { number: CheckpointNumber.ZERO, hash: GENESIS_CHECKPOINT_HEADER_HASH.toString() };
139
147
  }
140
148
  const checkpoint = await this.getCheckpoint(checkpointNumber);
@@ -164,6 +172,12 @@ export abstract class L2TipsStoreBase implements L2BlockStreamEventHandler, L2Bl
164
172
  await this.runInTransaction(async () => {
165
173
  await this.saveTag('checkpointed', event.block);
166
174
  await this.saveCheckpoint(event.checkpoint);
175
+ // proposedCheckpoint is always >= checkpointed. If checkpointed has caught up
176
+ // or surpassed it, advance proposedCheckpoint to match.
177
+ const proposedCheckpointBlock = await this.getBlockId('proposedCheckpoint');
178
+ if (event.block.number > proposedCheckpointBlock.number) {
179
+ await this.saveTag('proposedCheckpoint', event.block);
180
+ }
167
181
  });
168
182
  }
169
183
 
@@ -174,6 +188,7 @@ export abstract class L2TipsStoreBase implements L2BlockStreamEventHandler, L2Bl
174
188
  await this.runInTransaction(async () => {
175
189
  await this.saveTag('proposed', event.block);
176
190
  await this.saveTag('checkpointed', event.block);
191
+ await this.saveTag('proposedCheckpoint', event.block);
177
192
  const storeProven = await this.getBlockId('proven');
178
193
  if (storeProven.number > event.block.number) {
179
194
  await this.saveTag('proven', event.block);
@@ -198,11 +213,30 @@ export abstract class L2TipsStoreBase implements L2BlockStreamEventHandler, L2Bl
198
213
  await this.saveTag('finalized', event.block);
199
214
  const finalizedCheckpointNumber = await this.getCheckpointNumberForBlock(event.block.number);
200
215
 
201
- await this.deleteBlockHashesBefore(event.block.number);
202
- await this.deleteBlockToCheckpointBefore(event.block.number);
216
+ // Cap the deletion bound at the lowest live tip. This should always be the finalized tip, but
217
+ // we have hit bugs where this is not the case. Deleting the block hash, block-to-checkpoint mapping,
218
+ // or enclosing checkpoint object for a live tip would dangle subsequent `getBlockId`/`getCheckpointId`
219
+ // lookups and lock the block stream into an error loop.
220
+ const tips = await Promise.all([
221
+ this.getTip('proposed'),
222
+ this.getTip('proposedCheckpoint'),
223
+ this.getTip('checkpointed'),
224
+ this.getTip('proven'),
225
+ ]);
226
+ const liveTipBlocks = tips.filter((t): t is BlockNumber => t !== undefined && t > 0);
227
+ const safeBlockBound = BlockNumber(Math.min(event.block.number, ...liveTipBlocks));
228
+ await this.deleteBlockHashesBefore(safeBlockBound);
229
+ await this.deleteBlockToCheckpointBefore(safeBlockBound);
203
230
 
204
231
  if (finalizedCheckpointNumber !== undefined) {
205
- await this.deleteCheckpointsBefore(finalizedCheckpointNumber);
232
+ const tipCheckpoints = await Promise.all(liveTipBlocks.map(b => this.getCheckpointNumberForBlock(b)));
233
+ const safeCheckpointBound = CheckpointNumber(
234
+ Math.min(
235
+ finalizedCheckpointNumber,
236
+ ...tipCheckpoints.filter((c): c is CheckpointNumber => c !== undefined && c > 0),
237
+ ),
238
+ );
239
+ await this.deleteCheckpointsBefore(safeCheckpointBound);
206
240
  }
207
241
  });
208
242
  }
@@ -4,26 +4,37 @@ import { hexToBuffer } from '@aztec/foundation/string';
4
4
  import { encodeAbiParameters, parseAbiParameters } from 'viem';
5
5
  import { z } from 'zod';
6
6
 
7
- import type { Signable, SignatureDomainSeparator } from '../../p2p/signature_utils.js';
7
+ import {
8
+ type CoordinationSignatureContext,
9
+ type CoordinationSignatureType,
10
+ type Signable,
11
+ coordinationSignatureContextSchema,
12
+ } from '../../p2p/signature_utils.js';
8
13
  import { CommitteeAttestation, EthAddress } from './committee_attestation.js';
9
14
 
10
15
  export class CommitteeAttestationsAndSigners implements Signable {
11
- constructor(public attestations: CommitteeAttestation[]) {}
16
+ readonly primaryType: CoordinationSignatureType = 'AttestationsAndSigners';
17
+
18
+ constructor(
19
+ public attestations: CommitteeAttestation[],
20
+ public readonly signatureContext: CoordinationSignatureContext,
21
+ ) {}
12
22
 
13
23
  static get schema() {
14
24
  return z
15
25
  .object({
16
26
  attestations: CommitteeAttestation.schema.array(),
27
+ signatureContext: coordinationSignatureContextSchema,
17
28
  })
18
- .transform(obj => new CommitteeAttestationsAndSigners(obj.attestations));
29
+ .transform(obj => new CommitteeAttestationsAndSigners(obj.attestations, obj.signatureContext));
19
30
  }
20
31
 
21
- getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer {
22
- const abi = parseAbiParameters('uint8,(bytes,bytes),address[]');
32
+ getPayloadToSign(): Buffer {
33
+ // Matches the L1 abi.encode(attestations, signers) in AttestationLib.sol#getAttestationsAndSignersDigest.
34
+ const abi = parseAbiParameters('(bytes,bytes),address[]');
23
35
  const packed = this.getPackedAttestations();
24
36
 
25
37
  const encodedData = encodeAbiParameters(abi, [
26
- domainSeparator,
27
38
  [packed.signatureIndices, packed.signaturesOrAddresses],
28
39
  this.getSigners().map(s => s.toString()),
29
40
  ]);
@@ -31,8 +42,8 @@ export class CommitteeAttestationsAndSigners implements Signable {
31
42
  return hexToBuffer(encodedData);
32
43
  }
33
44
 
34
- static empty(): CommitteeAttestationsAndSigners {
35
- return new CommitteeAttestationsAndSigners([]);
45
+ static empty(signatureContext: CoordinationSignatureContext): CommitteeAttestationsAndSigners {
46
+ return new CommitteeAttestationsAndSigners([], signatureContext);
36
47
  }
37
48
 
38
49
  toString() {
@@ -53,9 +64,9 @@ export class CommitteeAttestationsAndSigners implements Signable {
53
64
  * @param attestations - Array of committee attestations with addresses and signatures
54
65
  * @returns Packed attestations with bitmap and tightly packed signature/address data
55
66
  */
56
- getPackedAttestations(): ViemCommitteeAttestations {
57
- const length = this.attestations.length;
58
- const attestations = this.attestations.map(a => a.toViem());
67
+ static packAttestations(attestations: CommitteeAttestation[]): ViemCommitteeAttestations {
68
+ const length = attestations.length;
69
+ const viemAttestations = attestations.map(a => a.toViem());
59
70
 
60
71
  // Calculate bitmap size (1 bit per attestation, rounded up to nearest byte)
61
72
  const bitmapSize = Math.ceil(length / 8);
@@ -63,8 +74,8 @@ export class CommitteeAttestationsAndSigners implements Signable {
63
74
 
64
75
  // Calculate total data size needed
65
76
  let totalDataSize = 0;
66
- for (let i = 0; i < length; i++) {
67
- const signature = attestations[i].signature;
77
+ for (const attestation of viemAttestations) {
78
+ const signature = attestation.signature;
68
79
  // Check if signature is empty (v = 0)
69
80
  const isEmpty = signature.v === 0;
70
81
 
@@ -79,8 +90,7 @@ export class CommitteeAttestationsAndSigners implements Signable {
79
90
  let dataIndex = 0;
80
91
 
81
92
  // Pack the data
82
- for (let i = 0; i < length; i++) {
83
- const attestation = attestations[i];
93
+ for (const [i, attestation] of viemAttestations.entries()) {
84
94
  const signature = attestation.signature;
85
95
 
86
96
  // Check if signature is empty
@@ -90,7 +100,7 @@ export class CommitteeAttestationsAndSigners implements Signable {
90
100
  // Set bit in bitmap (bit 7-0 in each byte, left to right)
91
101
  const byteIndex = Math.floor(i / 8);
92
102
  const bitIndex = 7 - (i % 8);
93
- signatureIndices[byteIndex] |= 1 << bitIndex;
103
+ signatureIndices[byteIndex] = (signatureIndices[byteIndex] ?? 0) | (1 << bitIndex);
94
104
 
95
105
  // Pack signature: v + r + s
96
106
  signaturesOrAddresses[dataIndex] = signature.v;
@@ -118,6 +128,10 @@ export class CommitteeAttestationsAndSigners implements Signable {
118
128
  signaturesOrAddresses: `0x${Buffer.from(signaturesOrAddresses).toString('hex')}`,
119
129
  };
120
130
  }
131
+
132
+ getPackedAttestations(): ViemCommitteeAttestations {
133
+ return CommitteeAttestationsAndSigners.packAttestations(this.attestations);
134
+ }
121
135
  }
122
136
 
123
137
  /**
@@ -130,8 +144,9 @@ export class MaliciousCommitteeAttestationsAndSigners extends CommitteeAttestati
130
144
  constructor(
131
145
  attestations: CommitteeAttestation[],
132
146
  private signers: EthAddress[],
147
+ signatureContext: CoordinationSignatureContext,
133
148
  ) {
134
- super(attestations);
149
+ super(attestations, signatureContext);
135
150
  }
136
151
 
137
152
  override getSigners(): EthAddress[] {
@@ -1,4 +1,3 @@
1
- import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/constants';
2
1
  import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
3
2
  import { times } from '@aztec/foundation/collection';
4
3
  import { Fr } from '@aztec/foundation/curves/bn254';
@@ -11,8 +10,9 @@ import {
11
10
  } from '@aztec/stdlib/block';
12
11
  import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
13
12
 
14
- import { jestExpect as expect } from '@jest/expect';
13
+ import { expect } from 'vitest';
15
14
 
15
+ import { GENESIS_BLOCK_HEADER_HASH } from '../block_hash.js';
16
16
  import type { L2TipsStore } from '../l2_block_stream/index.js';
17
17
 
18
18
  export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
@@ -67,11 +67,18 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
67
67
  checkpoint: makeCheckpointIdForBlock(blockNumber),
68
68
  });
69
69
 
70
- const makeTips = (proposed: number, proven: number, finalized: number, checkpointed: number = 0) => ({
70
+ const makeTips = (
71
+ proposed: number,
72
+ proven: number,
73
+ finalized: number,
74
+ checkpointed: number = 0,
75
+ proposedCheckpoint: number = 0,
76
+ ) => ({
71
77
  proposed: makeTip(proposed),
72
78
  proven: makeTipId(proven),
73
79
  finalized: makeTipId(finalized),
74
80
  checkpointed: makeTipId(checkpointed),
81
+ proposedCheckpoint: makeTipId(proposedCheckpoint),
75
82
  });
76
83
 
77
84
  const makeCheckpoint = async (checkpointNumber: number, blocks: L2Block[]): Promise<PublishedCheckpoint> => {
@@ -100,7 +100,16 @@ export class Checkpoint {
100
100
  * checkpoints up to and including this one in the epoch.
101
101
  */
102
102
  public getCheckpointOutHash(): Fr {
103
- const msgs = this.blocks.map(block => block.body.txEffects.map(txEffect => txEffect.l2ToL1Msgs));
103
+ return Checkpoint.getCheckpointOutHash(this.blocks);
104
+ }
105
+
106
+ /**
107
+ * Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
108
+ * Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
109
+ * checkpoints up to and including this one in the epoch.
110
+ */
111
+ static getCheckpointOutHash(blocks: L2Block[]): Fr {
112
+ const msgs = blocks.map(block => block.body.txEffects.map(txEffect => txEffect.l2ToL1Msgs));
104
113
  return computeCheckpointOutHash(msgs);
105
114
  }
106
115
 
@@ -165,6 +174,7 @@ export class Checkpoint {
165
174
  let lastArchive = previousArchive;
166
175
  for (let i = 0; i < numBlocks; i++) {
167
176
  const block = await L2Block.random(BlockNumber(startBlockNumber + i), {
177
+ checkpointNumber,
168
178
  indexWithinCheckpoint: IndexWithinCheckpoint(i),
169
179
  ...options,
170
180
  ...(lastArchive ? { lastArchive } : {}),
@@ -14,18 +14,56 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
14
14
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
15
15
  import { L1PublishedData } from './published_checkpoint.js';
16
16
 
17
- /** Lightweight checkpoint metadata without full block data. */
18
- export type CheckpointData = {
17
+ /** Base type for checkpoint data */
18
+ export type CommonCheckpointData = {
19
19
  checkpointNumber: CheckpointNumber;
20
20
  header: CheckpointHeader;
21
- archive: AppendOnlyTreeSnapshot;
22
- checkpointOutHash: Fr;
23
21
  startBlock: BlockNumber;
24
22
  blockCount: number;
23
+ };
24
+
25
+ /** Data stored with checkpoint data after publishing on l1 */
26
+ export type L1EnrichedCheckpointData = {
25
27
  attestations: CommitteeAttestation[];
26
28
  l1: L1PublishedData;
27
29
  };
28
30
 
31
+ /** Data stored alongside checkpoint data in storage */
32
+ export type StorageEnrichedCheckpointData = {
33
+ archive: AppendOnlyTreeSnapshot;
34
+ checkpointOutHash: Fr;
35
+ /** Fee asset price modifier in basis points. Defaults to 0 (no change) when not explicitly set. */
36
+ feeAssetPriceModifier: bigint;
37
+ };
38
+
39
+ /** Data stored only with proposed checkpoint data */
40
+ export type ProposedOnlyCheckpointData = {
41
+ totalManaUsed: bigint;
42
+ feeAssetPriceModifier: bigint;
43
+ };
44
+
45
+ /** Lightweight checkpoint metadata without full block data. */
46
+ export type CheckpointData = CommonCheckpointData & StorageEnrichedCheckpointData & L1EnrichedCheckpointData;
47
+
48
+ /** Input for setting a proposed checkpoint. The archive and checkpointOutHash are computed
49
+ * internally by the block store from the stored blocks. */
50
+ export type ProposedCheckpointInput = CommonCheckpointData & ProposedOnlyCheckpointData;
51
+
52
+ /** Full data for a proposed checkpoint (proposed but not yet L1-confirmed).
53
+ * Includes fee-relevant fields used during pipelining to compute the fee header override. */
54
+ export type ProposedCheckpointData = ProposedCheckpointInput & StorageEnrichedCheckpointData;
55
+
56
+ export const ProposedCheckpointDataSchema = z.object({
57
+ checkpointNumber: CheckpointNumberSchema,
58
+ header: CheckpointHeader.schema,
59
+ archive: AppendOnlyTreeSnapshot.schema,
60
+ checkpointOutHash: schemas.Fr,
61
+ startBlock: BlockNumberSchema,
62
+ blockCount: z.number(),
63
+ totalManaUsed: schemas.BigInt,
64
+ feeAssetPriceModifier: schemas.BigInt,
65
+ });
66
+
29
67
  export const CheckpointDataSchema = z
30
68
  .object({
31
69
  checkpointNumber: CheckpointNumberSchema,
@@ -34,6 +72,7 @@ export const CheckpointDataSchema = z
34
72
  checkpointOutHash: schemas.Fr,
35
73
  startBlock: BlockNumberSchema,
36
74
  blockCount: schemas.Integer,
75
+ feeAssetPriceModifier: schemas.BigInt,
37
76
  attestations: z.array(CommitteeAttestation.schema),
38
77
  l1: L1PublishedData.schema,
39
78
  })
@@ -45,6 +84,7 @@ export const CheckpointDataSchema = z
45
84
  checkpointOutHash: obj.checkpointOutHash,
46
85
  startBlock: obj.startBlock,
47
86
  blockCount: obj.blockCount,
87
+ feeAssetPriceModifier: obj.feeAssetPriceModifier,
48
88
  attestations: obj.attestations,
49
89
  l1: obj.l1,
50
90
  }),
@@ -0,0 +1,167 @@
1
+ import type { CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
2
+ import type { Fr } from '@aztec/foundation/curves/bn254';
3
+
4
+ /**
5
+ * Outcome of attempting to re-execute a checkpoint proposal locally.
6
+ *
7
+ * - `valid` — re-execution succeeded and the computed checkpoint matched the proposal.
8
+ * - `invalid` — the proposal disagreed with the computed checkpoint, or violated a deterministic
9
+ * constraint (limits, signatures, etc).
10
+ * - `unvalidated` — the local node could not complete validation for non-deterministic reasons
11
+ * (missing blocks/txs, timeouts, infra errors). Treated as proposer-fault for
12
+ * slashing but surfaced separately for telemetry.
13
+ */
14
+ export type ReexecutionOutcome = 'valid' | 'invalid' | 'unvalidated';
15
+
16
+ /**
17
+ * Tracks two pieces of per-slot state collected during proposal handling:
18
+ *
19
+ * 1. Whether each block proposal's transactions were successfully collected locally
20
+ * (keyed by `slot` + `indexWithinCheckpoint`). Consumed by the data-withholding watcher.
21
+ * 2. The outcome of locally re-executing each checkpoint proposal (keyed by
22
+ * `(checkpointNumber, archiveRoot)` and by `slot`). Consumed by the data-withholding
23
+ * watcher (via `hasReexecuted`) and the sentinel (via `getOutcomeForSlot`).
24
+ *
25
+ * Both pieces of state live on the same per-slot `Entry`, so cleanup via `removeBefore`
26
+ * naturally drops everything for a pruned slot in one step.
27
+ */
28
+ interface Entry {
29
+ // Set by recordOutcome — these may be undefined until the checkpoint proposal has been
30
+ // evaluated. recordTxsCollected may create an Entry before any of them are known.
31
+ checkpointNumber: CheckpointNumber | undefined;
32
+ archiveRoot: string | undefined;
33
+ outcome: ReexecutionOutcome | undefined;
34
+
35
+ slot: SlotNumber;
36
+
37
+ // Per block-proposal at this slot: indexWithinCheckpoint → true (collected) | false (failed to collect).
38
+ txsCollected: Map<number, boolean>;
39
+ }
40
+
41
+ export class CheckpointReexecutionTracker {
42
+ private readonly byCheckpoint = new Map<CheckpointNumber, Map<string, Entry>>();
43
+ private readonly bySlot = new Map<SlotNumber, Entry>();
44
+
45
+ /**
46
+ * Record the outcome of evaluating a checkpoint proposal.
47
+ * @param slot - Slot the proposal was for. Always required.
48
+ * @param archiveRoot - Archive root in the proposal.
49
+ * @param outcome - Outcome of evaluation.
50
+ * @param checkpointNumber - Checkpoint number, if known. Required for `valid` outcomes; optional
51
+ * for `invalid`/`unvalidated` because some early rejections fire before blocks are loaded.
52
+ */
53
+ public recordOutcome(
54
+ slot: SlotNumber,
55
+ archiveRoot: Fr,
56
+ outcome: ReexecutionOutcome,
57
+ checkpointNumber?: CheckpointNumber,
58
+ ): void {
59
+ const archiveRootStr = archiveRoot.toString();
60
+
61
+ // Preserve any per-block txsCollected already accumulated for this slot.
62
+ const existing = this.bySlot.get(slot);
63
+ const entry: Entry = {
64
+ checkpointNumber,
65
+ archiveRoot: archiveRootStr,
66
+ slot,
67
+ outcome,
68
+ txsCollected: existing?.txsCollected ?? new Map(),
69
+ };
70
+
71
+ if (checkpointNumber !== undefined) {
72
+ let archives = this.byCheckpoint.get(checkpointNumber);
73
+ if (!archives) {
74
+ archives = new Map();
75
+ this.byCheckpoint.set(checkpointNumber, archives);
76
+ }
77
+ archives.set(archiveRootStr, entry);
78
+ }
79
+
80
+ this.bySlot.set(slot, entry);
81
+ }
82
+
83
+ /**
84
+ * Record whether the local node successfully collected the transactions for a block proposal.
85
+ * Called from the validator's proposal handler immediately after tx collection completes
86
+ * (regardless of whether re-execution will subsequently succeed). The data-withholding
87
+ * watcher consults these records as an authoritative signal: tx availability now is too
88
+ * weak (txs may have been evicted from the mempool by the time the watcher runs), but a
89
+ * record that the txs *were* available at proposal time still vouches for the proposer.
90
+ *
91
+ * @param slot - Slot the block proposal was for.
92
+ * @param indexWithinCheckpoint - Index of the block within its enclosing checkpoint.
93
+ * @param collected - True if every tx in the proposal was collected locally before deadline.
94
+ */
95
+ public recordTxsCollected(slot: SlotNumber, indexWithinCheckpoint: number, collected: boolean): void {
96
+ let entry = this.bySlot.get(slot);
97
+ if (!entry) {
98
+ entry = {
99
+ checkpointNumber: undefined,
100
+ archiveRoot: undefined,
101
+ slot,
102
+ outcome: undefined,
103
+ txsCollected: new Map(),
104
+ };
105
+ this.bySlot.set(slot, entry);
106
+ }
107
+ entry.txsCollected.set(indexWithinCheckpoint, collected);
108
+ }
109
+
110
+ /**
111
+ * Returns true if the given (checkpoint number, archive root) has been successfully
112
+ * re-executed locally (outcome `valid`).
113
+ */
114
+ public hasReexecuted(checkpointNumber: CheckpointNumber, archiveRoot: Fr): boolean {
115
+ return this.byCheckpoint.get(checkpointNumber)?.get(archiveRoot.toString())?.outcome === 'valid';
116
+ }
117
+
118
+ /** Returns the recorded outcome for a given slot, or undefined if no proposal was evaluated. */
119
+ public getOutcomeForSlot(slot: SlotNumber): ReexecutionOutcome | undefined {
120
+ return this.bySlot.get(slot)?.outcome;
121
+ }
122
+
123
+ /**
124
+ * Returns the recorded tx-collection result for a block proposal at the given slot and
125
+ * `indexWithinCheckpoint`, or `undefined` if no record exists.
126
+ *
127
+ * Three-valued by design:
128
+ * - `true` — we collected every tx for this block proposal before the deadline.
129
+ * - `false` — we tried and failed (missing txs at the deadline).
130
+ * - `undefined` — no record (e.g. we never saw the block proposal). Callers should fall
131
+ * back to a current-state check (e.g. mempool probe) for this case.
132
+ */
133
+ public getTxsCollectedRecord(slot: SlotNumber, indexWithinCheckpoint: number): boolean | undefined {
134
+ return this.bySlot.get(slot)?.txsCollected.get(indexWithinCheckpoint);
135
+ }
136
+
137
+ /** Drops entries for checkpoints with `number < checkpointNumber`. */
138
+ public removeBefore(checkpointNumber: CheckpointNumber): void {
139
+ // Track the highest slot among checkpoints we're pruning. Once we know it, any slot
140
+ // strictly below that watermark is older than the most recently pruned checkpoint and
141
+ // can be dropped from `bySlot` too — including slot-only entries (no checkpoint number)
142
+ // which would otherwise leak, because removing by checkpoint number can't reach them.
143
+ let maxRemovedSlot: SlotNumber | undefined;
144
+ for (const [n, archives] of this.byCheckpoint) {
145
+ if (n < checkpointNumber) {
146
+ for (const entry of archives.values()) {
147
+ // Only drop the slot index if it still points at the entry we're removing.
148
+ if (this.bySlot.get(entry.slot) === entry) {
149
+ this.bySlot.delete(entry.slot);
150
+ }
151
+ if (maxRemovedSlot === undefined || entry.slot > maxRemovedSlot) {
152
+ maxRemovedSlot = entry.slot;
153
+ }
154
+ }
155
+ this.byCheckpoint.delete(n);
156
+ }
157
+ }
158
+
159
+ if (maxRemovedSlot !== undefined) {
160
+ for (const slot of [...this.bySlot.keys()]) {
161
+ if (slot < maxRemovedSlot) {
162
+ this.bySlot.delete(slot);
163
+ }
164
+ }
165
+ }
166
+ }
167
+ }
@@ -0,0 +1,28 @@
1
+ import type { Buffer32 } from '@aztec/foundation/buffer';
2
+ import type { Fr } from '@aztec/foundation/curves/bn254';
3
+
4
+ import { ConsensusPayload } from '../p2p/consensus_payload.js';
5
+ import { type CoordinationSignatureContext, getHashedSignaturePayloadTypedData } from '../p2p/signature_utils.js';
6
+ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
7
+
8
+ /**
9
+ * Computes the EIP-712 payload digest for a checkpoint proposal — the digest validators sign
10
+ * and the L1 contract verifies during `propose()`. Mirrors `ProposeLib.digest(ProposePayload)` on L1.
11
+ *
12
+ * The result is the same `bytes32` that gets stored in `tempCheckpointLogs[checkpointNumber].payloadDigest`,
13
+ * so this helper is also reused when constructing simulation state overrides for pipelined proposals.
14
+ */
15
+ export function computeCheckpointPayloadDigest(args: {
16
+ header: CheckpointHeader;
17
+ archiveRoot: Fr;
18
+ feeAssetPriceModifier: bigint;
19
+ signatureContext: CoordinationSignatureContext;
20
+ }): Buffer32 {
21
+ const consensusPayload = new ConsensusPayload(
22
+ args.header,
23
+ args.archiveRoot,
24
+ args.feeAssetPriceModifier,
25
+ args.signatureContext,
26
+ );
27
+ return getHashedSignaturePayloadTypedData(consensusPayload);
28
+ }
@@ -1,5 +1,8 @@
1
1
  export * from './checkpoint.js';
2
2
  export * from './checkpoint_data.js';
3
3
  export * from './checkpoint_info.js';
4
+ export * from './checkpoint_reexecution_tracker.js';
5
+ export * from './digest.js';
6
+ export * from './previous_checkpoint_out_hashes.js';
4
7
  export * from './published_checkpoint.js';
5
8
  export * from './validate.js';