@aztec/stdlib 0.86.0 → 0.87.0

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 (570) hide show
  1. package/dest/abi/abi.d.ts +291 -241
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +14 -14
  4. package/dest/abi/buffer.d.ts +0 -2
  5. package/dest/abi/buffer.d.ts.map +1 -1
  6. package/dest/abi/contract_artifact.d.ts +0 -2
  7. package/dest/abi/contract_artifact.d.ts.map +1 -1
  8. package/dest/abi/contract_artifact.js +3 -16
  9. package/dest/abi/decoder.d.ts.map +1 -1
  10. package/dest/abi/decoder.js +1 -1
  11. package/dest/abi/encoder.d.ts.map +1 -1
  12. package/dest/abi/encoder.js +1 -1
  13. package/dest/abi/event_selector.d.ts +0 -2
  14. package/dest/abi/event_selector.d.ts.map +1 -1
  15. package/dest/abi/function_selector.d.ts +0 -2
  16. package/dest/abi/function_selector.d.ts.map +1 -1
  17. package/dest/abi/note_selector.d.ts +0 -2
  18. package/dest/abi/note_selector.d.ts.map +1 -1
  19. package/dest/abi/selector.d.ts +0 -3
  20. package/dest/abi/selector.d.ts.map +1 -1
  21. package/dest/abi/utils.d.ts +0 -2
  22. package/dest/abi/utils.d.ts.map +1 -1
  23. package/dest/auth_witness/auth_witness.d.ts +1 -3
  24. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  25. package/dest/avm/avm.d.ts +39 -40
  26. package/dest/avm/avm.d.ts.map +1 -1
  27. package/dest/avm/avm.js +5 -5
  28. package/dest/avm/avm_accumulated_data.d.ts +4 -4
  29. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  30. package/dest/avm/avm_accumulated_data.js +18 -2
  31. package/dest/avm/avm_circuit_public_inputs.d.ts +2 -4
  32. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  33. package/dest/avm/avm_circuit_public_inputs.js +26 -1
  34. package/dest/avm/avm_proving_request.d.ts +15 -17
  35. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  36. package/dest/avm/contract_storage_read.d.ts +1 -3
  37. package/dest/avm/contract_storage_read.d.ts.map +1 -1
  38. package/dest/avm/contract_storage_update_request.d.ts +1 -3
  39. package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
  40. package/dest/avm/message_pack.d.ts +0 -2
  41. package/dest/avm/message_pack.d.ts.map +1 -1
  42. package/dest/avm/message_pack.js +7 -1
  43. package/dest/avm/public_call_stack_item_compressed.d.ts +1 -3
  44. package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
  45. package/dest/avm/public_data_hint.d.ts +1 -3
  46. package/dest/avm/public_data_hint.d.ts.map +1 -1
  47. package/dest/avm/public_data_read.d.ts +1 -3
  48. package/dest/avm/public_data_read.d.ts.map +1 -1
  49. package/dest/avm/public_data_update_request.d.ts +1 -4
  50. package/dest/avm/public_data_update_request.d.ts.map +1 -1
  51. package/dest/avm/public_data_write.d.ts +4 -3
  52. package/dest/avm/public_data_write.d.ts.map +1 -1
  53. package/dest/avm/public_data_write.js +19 -1
  54. package/dest/avm/public_inner_call_request.d.ts +1 -4
  55. package/dest/avm/public_inner_call_request.d.ts.map +1 -1
  56. package/dest/avm/public_inner_call_request.js +1 -1
  57. package/dest/avm/revert_code.d.ts +0 -3
  58. package/dest/avm/revert_code.d.ts.map +1 -1
  59. package/dest/aztec-address/index.d.ts +1 -4
  60. package/dest/aztec-address/index.d.ts.map +1 -1
  61. package/dest/block/block_hash.d.ts +1 -3
  62. package/dest/block/block_hash.d.ts.map +1 -1
  63. package/dest/block/body.d.ts +1 -4
  64. package/dest/block/body.d.ts.map +1 -1
  65. package/dest/block/body.js +5 -11
  66. package/dest/block/l2_block.d.ts +1 -20
  67. package/dest/block/l2_block.d.ts.map +1 -1
  68. package/dest/block/l2_block.js +1 -41
  69. package/dest/block/l2_block_code_to_purge.d.ts +0 -2
  70. package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
  71. package/dest/block/l2_block_source.d.ts +0 -1
  72. package/dest/block/l2_block_source.d.ts.map +1 -1
  73. package/dest/block/published_l2_block.d.ts +2 -1
  74. package/dest/block/published_l2_block.d.ts.map +1 -1
  75. package/dest/block/published_l2_block.js +5 -18
  76. package/dest/config/{config.d.ts → chain-config.d.ts} +1 -1
  77. package/dest/config/chain-config.d.ts.map +1 -0
  78. package/dest/config/index.d.ts +2 -1
  79. package/dest/config/index.d.ts.map +1 -1
  80. package/dest/config/index.js +2 -1
  81. package/dest/config/node-rpc-config.d.ts +7 -0
  82. package/dest/config/node-rpc-config.d.ts.map +1 -0
  83. package/dest/config/node-rpc-config.js +8 -0
  84. package/dest/contract/artifact_hash.d.ts +1 -3
  85. package/dest/contract/artifact_hash.d.ts.map +1 -1
  86. package/dest/contract/artifact_hash.js +3 -2
  87. package/dest/contract/complete_address.d.ts +0 -2
  88. package/dest/contract/complete_address.d.ts.map +1 -1
  89. package/dest/contract/contract_class_id.d.ts +0 -2
  90. package/dest/contract/contract_class_id.d.ts.map +1 -1
  91. package/dest/contract/contract_instance.d.ts +1 -3
  92. package/dest/contract/contract_instance.d.ts.map +1 -1
  93. package/dest/contract/contract_instance_update.d.ts +1 -3
  94. package/dest/contract/contract_instance_update.d.ts.map +1 -1
  95. package/dest/contract/interfaces/contract_class.d.ts +17 -19
  96. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  97. package/dest/contract/interfaces/contract_instance.d.ts +2 -2
  98. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  99. package/dest/contract/private_function.d.ts +0 -2
  100. package/dest/contract/private_function.d.ts.map +1 -1
  101. package/dest/database-version/version_manager.d.ts +0 -4
  102. package/dest/database-version/version_manager.d.ts.map +1 -1
  103. package/dest/errors/proving_error.d.ts.map +1 -1
  104. package/dest/errors/simulation_error.d.ts.map +1 -1
  105. package/dest/errors/simulation_error.js +2 -2
  106. package/dest/file-store/factory.js +1 -1
  107. package/dest/file-store/gcs.d.ts +0 -2
  108. package/dest/file-store/gcs.d.ts.map +1 -1
  109. package/dest/file-store/http.d.ts +1 -2
  110. package/dest/file-store/http.d.ts.map +1 -1
  111. package/dest/file-store/http.js +32 -16
  112. package/dest/file-store/interface.d.ts +0 -2
  113. package/dest/file-store/interface.d.ts.map +1 -1
  114. package/dest/file-store/local.d.ts +0 -2
  115. package/dest/file-store/local.d.ts.map +1 -1
  116. package/dest/gas/gas.d.ts +1 -4
  117. package/dest/gas/gas.d.ts.map +1 -1
  118. package/dest/gas/gas_fees.d.ts +1 -4
  119. package/dest/gas/gas_fees.d.ts.map +1 -1
  120. package/dest/gas/gas_settings.d.ts +1 -3
  121. package/dest/gas/gas_settings.d.ts.map +1 -1
  122. package/dest/interfaces/aztec-node-admin.d.ts +10 -0
  123. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  124. package/dest/interfaces/aztec-node-admin.js +4 -1
  125. package/dest/interfaces/aztec-node.d.ts +1 -2
  126. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  127. package/dest/interfaces/aztec-node.js +7 -2
  128. package/dest/interfaces/configs.d.ts +5 -0
  129. package/dest/interfaces/configs.d.ts.map +1 -1
  130. package/dest/interfaces/configs.js +1 -0
  131. package/dest/interfaces/merkle_tree_operations.d.ts +0 -2
  132. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  133. package/dest/interfaces/p2p.d.ts +2 -0
  134. package/dest/interfaces/p2p.d.ts.map +1 -1
  135. package/dest/interfaces/p2p.js +1 -0
  136. package/dest/interfaces/private_kernel_prover.d.ts +0 -2
  137. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  138. package/dest/interfaces/prover-client.d.ts.map +1 -1
  139. package/dest/interfaces/proving-job.d.ts +15 -17
  140. package/dest/interfaces/proving-job.d.ts.map +1 -1
  141. package/dest/interfaces/pxe.d.ts +6 -6
  142. package/dest/interfaces/pxe.d.ts.map +1 -1
  143. package/dest/interfaces/pxe.js +4 -4
  144. package/dest/interfaces/service.d.ts +2 -3
  145. package/dest/interfaces/service.d.ts.map +1 -1
  146. package/dest/interfaces/world_state.d.ts +4 -1
  147. package/dest/interfaces/world_state.d.ts.map +1 -1
  148. package/dest/kernel/combined_constant_data.d.ts +1 -3
  149. package/dest/kernel/combined_constant_data.d.ts.map +1 -1
  150. package/dest/kernel/hints/key_validation_hint.d.ts +1 -3
  151. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  152. package/dest/kernel/hints/key_validation_request.d.ts +1 -3
  153. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  154. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +1 -3
  155. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
  156. package/dest/kernel/hints/note_hash_read_request_hints.d.ts +0 -2
  157. package/dest/kernel/hints/note_hash_read_request_hints.d.ts.map +1 -1
  158. package/dest/kernel/hints/nullifier_read_request_hints.d.ts +0 -2
  159. package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
  160. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +1 -3
  161. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  162. package/dest/kernel/hints/read_request.d.ts +0 -2
  163. package/dest/kernel/hints/read_request.d.ts.map +1 -1
  164. package/dest/kernel/hints/read_request_hints.d.ts +4 -6
  165. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  166. package/dest/kernel/hints/rollup_validation_requests.d.ts +1 -3
  167. package/dest/kernel/hints/rollup_validation_requests.d.ts.map +1 -1
  168. package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts +1 -3
  169. package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts.map +1 -1
  170. package/dest/kernel/hints/transient_data_index_hint.d.ts +0 -3
  171. package/dest/kernel/hints/transient_data_index_hint.d.ts.map +1 -1
  172. package/dest/kernel/hints/tree_leaf_read_request.d.ts +0 -2
  173. package/dest/kernel/hints/tree_leaf_read_request.d.ts.map +1 -1
  174. package/dest/kernel/log_hash.d.ts +27 -9
  175. package/dest/kernel/log_hash.d.ts.map +1 -1
  176. package/dest/kernel/log_hash.js +72 -13
  177. package/dest/kernel/note_hash.d.ts +0 -2
  178. package/dest/kernel/note_hash.d.ts.map +1 -1
  179. package/dest/kernel/nullifier.d.ts +0 -2
  180. package/dest/kernel/nullifier.d.ts.map +1 -1
  181. package/dest/kernel/private_accumulated_data.d.ts +4 -6
  182. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  183. package/dest/kernel/private_accumulated_data.js +3 -3
  184. package/dest/kernel/private_call_data.d.ts +0 -2
  185. package/dest/kernel/private_call_data.d.ts.map +1 -1
  186. package/dest/kernel/private_call_request.d.ts +1 -3
  187. package/dest/kernel/private_call_request.d.ts.map +1 -1
  188. package/dest/kernel/private_call_request.js +1 -1
  189. package/dest/kernel/private_circuit_public_inputs.d.ts +5 -7
  190. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  191. package/dest/kernel/private_circuit_public_inputs.js +4 -4
  192. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -4
  193. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  194. package/dest/kernel/private_kernel_data.d.ts +1 -3
  195. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  196. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +1 -3
  197. package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
  198. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +1 -3
  199. package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
  200. package/dest/kernel/private_kernel_prover_output.d.ts +31 -7
  201. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  202. package/dest/kernel/private_kernel_prover_output.js +5 -1
  203. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +2 -4
  204. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  205. package/dest/kernel/private_kernel_reset_dimensions.d.ts +1 -3
  206. package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
  207. package/dest/kernel/private_kernel_simulated_output.d.ts +0 -2
  208. package/dest/kernel/private_kernel_simulated_output.d.ts.map +1 -1
  209. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +1 -3
  210. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  211. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +8 -8
  212. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  213. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -2
  214. package/dest/kernel/private_log_data.d.ts +1 -4
  215. package/dest/kernel/private_log_data.d.ts.map +1 -1
  216. package/dest/kernel/private_log_data.js +4 -2
  217. package/dest/kernel/private_to_avm_accumulated_data.d.ts +3 -5
  218. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  219. package/dest/kernel/private_to_avm_accumulated_data.js +7 -0
  220. package/dest/kernel/private_to_public_accumulated_data.d.ts +1 -4
  221. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  222. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +1 -3
  223. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  224. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +2 -5
  225. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  226. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +2 -4
  227. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  228. package/dest/kernel/private_validation_requests.d.ts +1 -4
  229. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  230. package/dest/kernel/private_validation_requests.js +1 -1
  231. package/dest/kernel/public_call_request.d.ts +2 -5
  232. package/dest/kernel/public_call_request.d.ts.map +1 -1
  233. package/dest/kernel/utils/optional_number.d.ts +1 -3
  234. package/dest/kernel/utils/optional_number.d.ts.map +1 -1
  235. package/dest/keys/public_keys.d.ts +0 -2
  236. package/dest/keys/public_keys.d.ts.map +1 -1
  237. package/dest/keys/public_keys.js +0 -1
  238. package/dest/logs/contract_class_log.d.ts +53 -12
  239. package/dest/logs/contract_class_log.d.ts.map +1 -1
  240. package/dest/logs/contract_class_log.js +129 -66
  241. package/dest/logs/extended_contract_class_log.d.ts +0 -2
  242. package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
  243. package/dest/logs/extended_public_log.d.ts +0 -2
  244. package/dest/logs/extended_public_log.d.ts.map +1 -1
  245. package/dest/logs/indexed_tagging_secret.d.ts.map +1 -1
  246. package/dest/logs/log_id.d.ts +0 -2
  247. package/dest/logs/log_id.d.ts.map +1 -1
  248. package/dest/logs/log_with_tx_data.d.ts.map +1 -1
  249. package/dest/logs/log_with_tx_data.js +8 -3
  250. package/dest/logs/private_log.d.ts +13 -7
  251. package/dest/logs/private_log.d.ts.map +1 -1
  252. package/dest/logs/private_log.js +44 -30
  253. package/dest/logs/public_log.d.ts +9 -9
  254. package/dest/logs/public_log.d.ts.map +1 -1
  255. package/dest/logs/public_log.js +45 -32
  256. package/dest/logs/tx_scoped_l2_log.d.ts +8 -6
  257. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  258. package/dest/logs/tx_scoped_l2_log.js +1 -2
  259. package/dest/messaging/inbox_leaf.d.ts +5 -2
  260. package/dest/messaging/inbox_leaf.d.ts.map +1 -1
  261. package/dest/messaging/inbox_leaf.js +11 -0
  262. package/dest/messaging/l1_actor.d.ts +0 -2
  263. package/dest/messaging/l1_actor.d.ts.map +1 -1
  264. package/dest/messaging/l1_to_l2_message.d.ts +0 -2
  265. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  266. package/dest/messaging/l2_actor.d.ts +0 -2
  267. package/dest/messaging/l2_actor.d.ts.map +1 -1
  268. package/dest/messaging/l2_to_l1_message.d.ts +0 -2
  269. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  270. package/dest/note/extended_note.d.ts +3 -5
  271. package/dest/note/extended_note.d.ts.map +1 -1
  272. package/dest/note/note.d.ts +5 -13
  273. package/dest/note/note.d.ts.map +1 -1
  274. package/dest/p2p/block_attestation.d.ts +6 -5
  275. package/dest/p2p/block_attestation.d.ts.map +1 -1
  276. package/dest/p2p/block_attestation.js +12 -11
  277. package/dest/p2p/block_proposal.d.ts +17 -8
  278. package/dest/p2p/block_proposal.d.ts.map +1 -1
  279. package/dest/p2p/block_proposal.js +29 -13
  280. package/dest/p2p/consensus_payload.d.ts +185 -12
  281. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  282. package/dest/p2p/consensus_payload.js +24 -14
  283. package/dest/p2p/gossipable.d.ts +14 -4
  284. package/dest/p2p/gossipable.d.ts.map +1 -1
  285. package/dest/p2p/gossipable.js +43 -0
  286. package/dest/p2p/signature_utils.d.ts +0 -2
  287. package/dest/p2p/signature_utils.d.ts.map +1 -1
  288. package/dest/p2p/topic_type.d.ts.map +1 -1
  289. package/dest/p2p/topic_type.js +5 -0
  290. package/dest/parity/base_parity_inputs.d.ts +2 -4
  291. package/dest/parity/base_parity_inputs.d.ts.map +1 -1
  292. package/dest/parity/parity_public_inputs.d.ts +2 -4
  293. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  294. package/dest/parity/root_parity_input.d.ts +4 -6
  295. package/dest/parity/root_parity_input.d.ts.map +1 -1
  296. package/dest/parity/root_parity_inputs.d.ts +2 -4
  297. package/dest/parity/root_parity_inputs.d.ts.map +1 -1
  298. package/dest/proofs/client_ivc_proof.d.ts +2 -4
  299. package/dest/proofs/client_ivc_proof.d.ts.map +1 -1
  300. package/dest/proofs/proof.d.ts +1 -3
  301. package/dest/proofs/proof.d.ts.map +1 -1
  302. package/dest/proofs/proof.js +5 -5
  303. package/dest/proofs/recursive_proof.d.ts +4 -6
  304. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  305. package/dest/rollup/avm_proof_data.d.ts +1 -3
  306. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  307. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts +2 -4
  308. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +1 -1
  309. package/dest/rollup/base_rollup_hints.d.ts +9 -11
  310. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  311. package/dest/rollup/base_rollup_hints.js +5 -5
  312. package/dest/rollup/block_merge_rollup.d.ts +2 -4
  313. package/dest/rollup/block_merge_rollup.d.ts.map +1 -1
  314. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +11 -5
  315. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +1 -1
  316. package/dest/rollup/block_root_or_block_merge_public_inputs.js +6 -2
  317. package/dest/rollup/block_root_rollup.d.ts +8 -10
  318. package/dest/rollup/block_root_rollup.d.ts.map +1 -1
  319. package/dest/rollup/constant_rollup_data.d.ts +1 -3
  320. package/dest/rollup/constant_rollup_data.d.ts.map +1 -1
  321. package/dest/rollup/empty_block_root_rollup_inputs.d.ts +2 -4
  322. package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +1 -1
  323. package/dest/rollup/merge_rollup.d.ts +2 -4
  324. package/dest/rollup/merge_rollup.d.ts.map +1 -1
  325. package/dest/rollup/previous_rollup_block_data.d.ts +0 -2
  326. package/dest/rollup/previous_rollup_block_data.d.ts.map +1 -1
  327. package/dest/rollup/previous_rollup_data.d.ts +0 -2
  328. package/dest/rollup/previous_rollup_data.d.ts.map +1 -1
  329. package/dest/rollup/private_base_rollup_inputs.d.ts +2 -4
  330. package/dest/rollup/private_base_rollup_inputs.d.ts.map +1 -1
  331. package/dest/rollup/private_tube_data.d.ts +1 -3
  332. package/dest/rollup/private_tube_data.d.ts.map +1 -1
  333. package/dest/rollup/public_base_rollup_inputs.d.ts +2 -4
  334. package/dest/rollup/public_base_rollup_inputs.d.ts.map +1 -1
  335. package/dest/rollup/public_tube_data.d.ts +1 -3
  336. package/dest/rollup/public_tube_data.d.ts.map +1 -1
  337. package/dest/rollup/root_rollup.d.ts +9 -8
  338. package/dest/rollup/root_rollup.d.ts.map +1 -1
  339. package/dest/rollup/root_rollup.js +12 -3
  340. package/dest/rollup/state_diff_hints.d.ts +0 -2
  341. package/dest/rollup/state_diff_hints.d.ts.map +1 -1
  342. package/dest/rollup/tube_inputs.d.ts +2 -4
  343. package/dest/rollup/tube_inputs.d.ts.map +1 -1
  344. package/dest/schemas/schemas.d.ts +4 -6
  345. package/dest/schemas/schemas.d.ts.map +1 -1
  346. package/dest/shared_mutable/scheduled_delay_change.d.ts.map +1 -1
  347. package/dest/shared_mutable/scheduled_value_change.d.ts.map +1 -1
  348. package/dest/shared_mutable/shared_mutable_values.d.ts +0 -2
  349. package/dest/shared_mutable/shared_mutable_values.d.ts.map +1 -1
  350. package/dest/snapshots/download.d.ts +1 -1
  351. package/dest/snapshots/download.d.ts.map +1 -1
  352. package/dest/snapshots/download.js +3 -3
  353. package/dest/snapshots/index.d.ts +1 -1
  354. package/dest/snapshots/index.d.ts.map +1 -1
  355. package/dest/snapshots/index.js +1 -1
  356. package/dest/snapshots/types.d.ts +27 -4
  357. package/dest/snapshots/types.d.ts.map +1 -1
  358. package/dest/snapshots/types.js +8 -0
  359. package/dest/snapshots/upload.d.ts +6 -3
  360. package/dest/snapshots/upload.d.ts.map +1 -1
  361. package/dest/snapshots/upload.js +10 -6
  362. package/dest/tests/factories.d.ts +0 -2
  363. package/dest/tests/factories.d.ts.map +1 -1
  364. package/dest/tests/factories.js +19 -16
  365. package/dest/tests/mocks.d.ts +13 -3
  366. package/dest/tests/mocks.d.ts.map +1 -1
  367. package/dest/tests/mocks.js +40 -8
  368. package/dest/trees/append_only_tree_snapshot.d.ts +1 -4
  369. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  370. package/dest/trees/nullifier_leaf.d.ts +0 -2
  371. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  372. package/dest/trees/nullifier_membership_witness.d.ts +4 -6
  373. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  374. package/dest/trees/protocol_contract_leaf.d.ts +0 -2
  375. package/dest/trees/protocol_contract_leaf.d.ts.map +1 -1
  376. package/dest/trees/public_data_leaf.d.ts +1 -3
  377. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  378. package/dest/trees/public_data_witness.d.ts +4 -6
  379. package/dest/trees/public_data_witness.d.ts.map +1 -1
  380. package/dest/tx/block_header.d.ts +3 -4
  381. package/dest/tx/block_header.d.ts.map +1 -1
  382. package/dest/tx/block_header.js +5 -1
  383. package/dest/tx/call_context.d.ts +1 -4
  384. package/dest/tx/call_context.d.ts.map +1 -1
  385. package/dest/tx/capsule.d.ts +1 -3
  386. package/dest/tx/capsule.d.ts.map +1 -1
  387. package/dest/tx/content_commitment.d.ts +10 -12
  388. package/dest/tx/content_commitment.d.ts.map +1 -1
  389. package/dest/tx/function_data.d.ts +0 -2
  390. package/dest/tx/function_data.d.ts.map +1 -1
  391. package/dest/tx/global_variables.d.ts +1 -4
  392. package/dest/tx/global_variables.d.ts.map +1 -1
  393. package/dest/tx/hashed_values.d.ts +1 -3
  394. package/dest/tx/hashed_values.d.ts.map +1 -1
  395. package/dest/tx/index.d.ts +2 -1
  396. package/dest/tx/index.d.ts.map +1 -1
  397. package/dest/tx/index.js +2 -1
  398. package/dest/tx/max_block_number.d.ts +1 -3
  399. package/dest/tx/max_block_number.d.ts.map +1 -1
  400. package/dest/tx/partial_state_reference.d.ts +1 -3
  401. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  402. package/dest/tx/private_execution_result.d.ts +18 -9
  403. package/dest/tx/private_execution_result.d.ts.map +1 -1
  404. package/dest/tx/private_execution_result.js +12 -3
  405. package/dest/tx/profiling.d.ts +110 -0
  406. package/dest/tx/profiling.d.ts.map +1 -0
  407. package/dest/tx/profiling.js +97 -0
  408. package/dest/tx/proposed_block_header.d.ts +80 -0
  409. package/dest/tx/proposed_block_header.d.ts.map +1 -0
  410. package/dest/tx/proposed_block_header.js +130 -0
  411. package/dest/tx/proven_tx.d.ts +73 -1
  412. package/dest/tx/proven_tx.d.ts.map +1 -1
  413. package/dest/tx/proven_tx.js +7 -2
  414. package/dest/tx/public_call_request_with_calldata.d.ts +1 -4
  415. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  416. package/dest/tx/simulated_tx.d.ts +5 -3
  417. package/dest/tx/simulated_tx.d.ts.map +1 -1
  418. package/dest/tx/simulated_tx.js +10 -5
  419. package/dest/tx/state_reference.d.ts +1 -4
  420. package/dest/tx/state_reference.d.ts.map +1 -1
  421. package/dest/tx/tree_snapshots.d.ts +1 -4
  422. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  423. package/dest/tx/tx.d.ts +6 -11
  424. package/dest/tx/tx.d.ts.map +1 -1
  425. package/dest/tx/tx.js +18 -15
  426. package/dest/tx/tx_constant_data.d.ts +1 -3
  427. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  428. package/dest/tx/tx_context.d.ts +1 -3
  429. package/dest/tx/tx_context.d.ts.map +1 -1
  430. package/dest/tx/tx_effect.d.ts +1 -4
  431. package/dest/tx/tx_effect.d.ts.map +1 -1
  432. package/dest/tx/tx_effect.js +33 -63
  433. package/dest/tx/tx_execution_request.d.ts +13 -6
  434. package/dest/tx/tx_execution_request.d.ts.map +1 -1
  435. package/dest/tx/tx_execution_request.js +14 -7
  436. package/dest/tx/tx_hash.d.ts +2 -4
  437. package/dest/tx/tx_hash.d.ts.map +1 -1
  438. package/dest/tx/tx_receipt.d.ts.map +1 -1
  439. package/dest/tx/tx_receipt.js +1 -1
  440. package/dest/tx/tx_request.d.ts +7 -5
  441. package/dest/tx/tx_request.d.ts.map +1 -1
  442. package/dest/tx/tx_request.js +8 -5
  443. package/dest/tx/validator/error_texts.d.ts +4 -2
  444. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  445. package/dest/tx/validator/error_texts.js +4 -2
  446. package/dest/types/shared.d.ts +5 -3
  447. package/dest/types/shared.d.ts.map +1 -1
  448. package/dest/update-checker/index.d.ts +2 -0
  449. package/dest/update-checker/index.d.ts.map +1 -0
  450. package/dest/update-checker/index.js +1 -0
  451. package/dest/update-checker/update-checker.d.ts +48 -0
  452. package/dest/update-checker/update-checker.d.ts.map +1 -0
  453. package/dest/update-checker/update-checker.js +121 -0
  454. package/dest/validators/schemas.d.ts +24 -24
  455. package/dest/validators/schemas.js +1 -1
  456. package/dest/validators/types.d.ts +2 -2
  457. package/dest/validators/types.d.ts.map +1 -1
  458. package/dest/versioning/versioning.d.ts +1 -1
  459. package/dest/versioning/versioning.d.ts.map +1 -1
  460. package/dest/vks/verification_key.d.ts +7 -9
  461. package/dest/vks/verification_key.d.ts.map +1 -1
  462. package/dest/vks/vk_witness_data.d.ts +1 -3
  463. package/dest/vks/vk_witness_data.d.ts.map +1 -1
  464. package/package.json +16 -13
  465. package/src/abi/abi.ts +29 -12
  466. package/src/abi/contract_artifact.ts +3 -17
  467. package/src/abi/decoder.ts +10 -3
  468. package/src/abi/encoder.ts +5 -2
  469. package/src/avm/avm.ts +13 -7
  470. package/src/avm/avm_accumulated_data.ts +30 -2
  471. package/src/avm/avm_circuit_public_inputs.ts +26 -0
  472. package/src/avm/message_pack.ts +7 -1
  473. package/src/avm/public_data_write.ts +21 -1
  474. package/src/avm/public_inner_call_request.ts +1 -1
  475. package/src/avm/revert_code.ts +5 -5
  476. package/src/block/body.ts +5 -11
  477. package/src/block/l2_block.ts +1 -61
  478. package/src/block/published_l2_block.ts +8 -16
  479. package/src/config/index.ts +2 -1
  480. package/src/config/node-rpc-config.ts +14 -0
  481. package/src/contract/artifact_hash.ts +5 -3
  482. package/src/contract/private_function.ts +4 -2
  483. package/src/errors/proving_error.ts +5 -1
  484. package/src/errors/simulation_error.ts +2 -2
  485. package/src/file-store/factory.ts +1 -1
  486. package/src/file-store/http.ts +27 -18
  487. package/src/gas/gas.ts +4 -1
  488. package/src/interfaces/aztec-node-admin.ts +16 -0
  489. package/src/interfaces/aztec-node.ts +4 -2
  490. package/src/interfaces/configs.ts +3 -0
  491. package/src/interfaces/p2p.ts +4 -0
  492. package/src/interfaces/prover-client.ts +4 -1
  493. package/src/interfaces/pxe.ts +12 -7
  494. package/src/interfaces/service.ts +2 -3
  495. package/src/interfaces/world_state.ts +6 -1
  496. package/src/kernel/hints/note_hash_read_request_hints.ts +4 -1
  497. package/src/kernel/hints/nullifier_read_request_hints.ts +4 -1
  498. package/src/kernel/hints/read_request.ts +4 -1
  499. package/src/kernel/hints/read_request_hints.ts +12 -3
  500. package/src/kernel/hints/transient_data_index_hint.ts +4 -1
  501. package/src/kernel/hints/tree_leaf_read_request.ts +4 -1
  502. package/src/kernel/log_hash.ts +86 -14
  503. package/src/kernel/note_hash.ts +8 -2
  504. package/src/kernel/nullifier.ts +9 -2
  505. package/src/kernel/private_accumulated_data.ts +4 -4
  506. package/src/kernel/private_call_request.ts +1 -1
  507. package/src/kernel/private_circuit_public_inputs.ts +5 -5
  508. package/src/kernel/private_kernel_prover_output.ts +10 -0
  509. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +13 -2
  510. package/src/kernel/private_log_data.ts +13 -4
  511. package/src/kernel/private_to_avm_accumulated_data.ts +9 -1
  512. package/src/kernel/private_validation_requests.ts +1 -1
  513. package/src/kernel/public_call_request.ts +4 -1
  514. package/src/keys/public_keys.ts +1 -1
  515. package/src/logs/contract_class_log.ts +156 -57
  516. package/src/logs/indexed_tagging_secret.ts +4 -1
  517. package/src/logs/log_with_tx_data.ts +7 -2
  518. package/src/logs/private_log.ts +52 -30
  519. package/src/logs/public_log.ts +62 -38
  520. package/src/logs/tx_scoped_l2_log.ts +1 -2
  521. package/src/messaging/inbox_leaf.ts +10 -0
  522. package/src/messaging/l2_to_l1_message.ts +9 -2
  523. package/src/p2p/block_attestation.ts +16 -12
  524. package/src/p2p/block_proposal.ts +42 -11
  525. package/src/p2p/consensus_payload.ts +33 -16
  526. package/src/p2p/gossipable.ts +44 -2
  527. package/src/p2p/topic_type.ts +2 -0
  528. package/src/proofs/proof.ts +5 -5
  529. package/src/rollup/base_rollup_hints.ts +7 -7
  530. package/src/rollup/block_root_or_block_merge_public_inputs.ts +10 -1
  531. package/src/rollup/private_base_rollup_inputs.ts +4 -1
  532. package/src/rollup/root_rollup.ts +12 -0
  533. package/src/rollup/tube_inputs.ts +4 -1
  534. package/src/shared_mutable/scheduled_delay_change.ts +5 -1
  535. package/src/shared_mutable/scheduled_value_change.ts +5 -1
  536. package/src/shared_mutable/shared_mutable_values.ts +4 -1
  537. package/src/snapshots/download.ts +3 -4
  538. package/src/snapshots/index.ts +1 -1
  539. package/src/snapshots/types.ts +12 -0
  540. package/src/snapshots/upload.ts +19 -11
  541. package/src/tests/factories.ts +35 -18
  542. package/src/tests/mocks.ts +69 -10
  543. package/src/tx/block_header.ts +16 -2
  544. package/src/tx/content_commitment.ts +6 -1
  545. package/src/tx/index.ts +2 -1
  546. package/src/tx/private_execution_result.ts +14 -5
  547. package/src/tx/profiling.ts +126 -0
  548. package/src/tx/proposed_block_header.ts +169 -0
  549. package/src/tx/proven_tx.ts +4 -0
  550. package/src/tx/simulated_tx.ts +12 -2
  551. package/src/tx/tx.ts +18 -17
  552. package/src/tx/tx_effect.ts +36 -76
  553. package/src/tx/tx_execution_request.ts +11 -0
  554. package/src/tx/tx_receipt.ts +1 -1
  555. package/src/tx/tx_request.ts +12 -3
  556. package/src/tx/validator/error_texts.ts +4 -2
  557. package/src/types/shared.ts +5 -0
  558. package/src/update-checker/index.ts +1 -0
  559. package/src/update-checker/update-checker.ts +152 -0
  560. package/src/validators/schemas.ts +1 -1
  561. package/src/validators/types.ts +2 -2
  562. package/src/versioning/versioning.ts +1 -1
  563. package/src/vks/verification_key.ts +8 -2
  564. package/dest/config/config.d.ts.map +0 -1
  565. package/dest/tx/profiled_tx.d.ts +0 -9
  566. package/dest/tx/profiled_tx.d.ts.map +0 -1
  567. package/dest/tx/profiled_tx.js +0 -28
  568. package/src/tx/profiled_tx.ts +0 -28
  569. /package/dest/config/{config.js → chain-config.js} +0 -0
  570. /package/src/config/{config.ts → chain-config.ts} +0 -0
@@ -1,9 +1,7 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import { Buffer32 } from '@aztec/foundation/buffer';
4
2
  import type { EthAddress } from '@aztec/foundation/eth-address';
5
3
  import { Signature } from '@aztec/foundation/eth-signature';
6
- import type { Fr } from '@aztec/foundation/fields';
4
+ import { Fr } from '@aztec/foundation/fields';
7
5
  import { BufferReader } from '@aztec/foundation/serialize';
8
6
  import type { ZodFor } from '../schemas/index.js';
9
7
  import { ConsensusPayload } from './consensus_payload.js';
@@ -19,6 +17,8 @@ export declare class BlockAttestationHash extends Buffer32 {
19
17
  * will produce a block attestation over the header of the block
20
18
  */
21
19
  export declare class BlockAttestation extends Gossipable {
20
+ /** The block number of the attestation. */
21
+ readonly blockNumber: Fr;
22
22
  /** The payload of the message, and what the signature is over */
23
23
  readonly payload: ConsensusPayload;
24
24
  /** The signature of the block attester */
@@ -26,15 +26,16 @@ export declare class BlockAttestation extends Gossipable {
26
26
  static p2pTopic: TopicType;
27
27
  private sender;
28
28
  constructor(
29
+ /** The block number of the attestation. */
30
+ blockNumber: Fr,
29
31
  /** The payload of the message, and what the signature is over */
30
32
  payload: ConsensusPayload,
31
33
  /** The signature of the block attester */
32
34
  signature: Signature);
33
35
  static get schema(): ZodFor<BlockAttestation>;
34
- p2pMessageIdentifier(): Promise<Buffer32>;
36
+ generateP2PMessageIdentifier(): Promise<Buffer32>;
35
37
  get archive(): Fr;
36
38
  get slotNumber(): Fr;
37
- get blockNumber(): Fr;
38
39
  /**Get sender
39
40
  *
40
41
  * Lazily evaluate and cache the sender of the attestation
@@ -1 +1 @@
1
- {"version":3,"file":"block_attestation.d.ts","sourceRoot":"","sources":["../../src/p2p/block_attestation.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAI9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,oBAAqB,SAAQ,QAAQ;gBACpC,IAAI,EAAE,MAAM;CAGzB;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAM5C,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;aAC1B,SAAS,EAAE,SAAS;IATtC,OAAgB,QAAQ,YAA+B;IAEvD,OAAO,CAAC,MAAM,CAAyB;;IAGrC,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;IAC1B,SAAS,EAAE,SAAS;IAKtC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAO5C;IAEQ,oBAAoB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAIlD,IAAI,OAAO,IAAI,EAAE,CAEhB;IAED,IAAI,UAAU,IAAI,EAAE,CAEnB;IAED,IAAI,WAAW,IAAI,EAAE,CAEpB;IAED;;;;OAIG;IACH,SAAS,IAAI,UAAU;IAWvB,UAAU,IAAI,MAAM;IAIpB,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAK/D,MAAM,CAAC,KAAK,IAAI,gBAAgB;IAIhC,OAAO,IAAI,MAAM;CAGlB"}
1
+ {"version":3,"file":"block_attestation.d.ts","sourceRoot":"","sources":["../../src/p2p/block_attestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAI9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,oBAAqB,SAAQ,QAAQ;gBACpC,IAAI,EAAE,MAAM;CAGzB;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAM5C,2CAA2C;aAC3B,WAAW,EAAE,EAAE;IAE/B,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;aAC1B,SAAS,EAAE,SAAS;IAZtC,OAAgB,QAAQ,YAA+B;IAEvD,OAAO,CAAC,MAAM,CAAyB;;IAGrC,2CAA2C;IAC3B,WAAW,EAAE,EAAE;IAE/B,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;IAC1B,SAAS,EAAE,SAAS;IAKtC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAQ5C;IAEQ,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC;IAI1D,IAAI,OAAO,IAAI,EAAE,CAEhB;IAED,IAAI,UAAU,IAAI,EAAE,CAEnB;IAED;;;;OAIG;IACH,SAAS,IAAI,UAAU;IAWvB,UAAU,IAAI,MAAM;IAIpB,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAS/D,MAAM,CAAC,KAAK,IAAI,gBAAgB;IAIhC,OAAO,IAAI,MAAM;CAGlB"}
@@ -1,6 +1,7 @@
1
1
  import { Buffer32 } from '@aztec/foundation/buffer';
2
2
  import { keccak256, recoverAddress } from '@aztec/foundation/crypto';
3
3
  import { Signature } from '@aztec/foundation/eth-signature';
4
+ import { Fr } from '@aztec/foundation/fields';
4
5
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
5
6
  import { z } from 'zod';
6
7
  import { ConsensusPayload } from './consensus_payload.js';
@@ -18,30 +19,29 @@ export class BlockAttestationHash extends Buffer32 {
18
19
  * A validator that has attested to seeing the contents of a block
19
20
  * will produce a block attestation over the header of the block
20
21
  */ export class BlockAttestation extends Gossipable {
22
+ blockNumber;
21
23
  payload;
22
24
  signature;
23
25
  static p2pTopic = TopicType.block_attestation;
24
26
  sender;
25
- constructor(/** The payload of the message, and what the signature is over */ payload, /** The signature of the block attester */ signature){
26
- super(), this.payload = payload, this.signature = signature;
27
+ constructor(/** The block number of the attestation. */ blockNumber, /** The payload of the message, and what the signature is over */ payload, /** The signature of the block attester */ signature){
28
+ super(), this.blockNumber = blockNumber, this.payload = payload, this.signature = signature;
27
29
  }
28
30
  static get schema() {
29
31
  return z.object({
32
+ blockNumber: Fr.schema,
30
33
  payload: ConsensusPayload.schema,
31
34
  signature: Signature.schema
32
- }).transform((obj)=>new BlockAttestation(obj.payload, obj.signature));
35
+ }).transform((obj)=>new BlockAttestation(obj.blockNumber, obj.payload, obj.signature));
33
36
  }
34
- p2pMessageIdentifier() {
37
+ generateP2PMessageIdentifier() {
35
38
  return Promise.resolve(new BlockAttestationHash(keccak256(this.signature.toBuffer())));
36
39
  }
37
40
  get archive() {
38
41
  return this.payload.archive;
39
42
  }
40
43
  get slotNumber() {
41
- return this.payload.header.globalVariables.slotNumber;
42
- }
43
- get blockNumber() {
44
- return this.payload.header.globalVariables.blockNumber;
44
+ return this.payload.header.slotNumber;
45
45
  }
46
46
  /**Get sender
47
47
  *
@@ -61,18 +61,19 @@ export class BlockAttestationHash extends Buffer32 {
61
61
  }
62
62
  toBuffer() {
63
63
  return serializeToBuffer([
64
+ this.blockNumber,
64
65
  this.payload,
65
66
  this.signature
66
67
  ]);
67
68
  }
68
69
  static fromBuffer(buf) {
69
70
  const reader = BufferReader.asReader(buf);
70
- return new BlockAttestation(reader.readObject(ConsensusPayload), reader.readObject(Signature));
71
+ return new BlockAttestation(reader.readObject(Fr), reader.readObject(ConsensusPayload), reader.readObject(Signature));
71
72
  }
72
73
  static empty() {
73
- return new BlockAttestation(ConsensusPayload.empty(), Signature.empty());
74
+ return new BlockAttestation(Fr.ZERO, ConsensusPayload.empty(), Signature.empty());
74
75
  }
75
76
  getSize() {
76
- return this.payload.getSize() + this.signature.getSize();
77
+ return this.blockNumber.size + this.payload.getSize() + this.signature.getSize();
77
78
  }
78
79
  }
@@ -1,16 +1,18 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import { Buffer32 } from '@aztec/foundation/buffer';
4
2
  import type { EthAddress } from '@aztec/foundation/eth-address';
5
3
  import { Signature } from '@aztec/foundation/eth-signature';
6
- import type { Fr } from '@aztec/foundation/fields';
4
+ import { Fr } from '@aztec/foundation/fields';
7
5
  import { BufferReader } from '@aztec/foundation/serialize';
6
+ import { Tx } from '../tx/tx.js';
8
7
  import { ConsensusPayload } from './consensus_payload.js';
9
8
  import { Gossipable } from './gossipable.js';
10
9
  import { TopicType } from './topic_type.js';
11
10
  export declare class BlockProposalHash extends Buffer32 {
12
11
  constructor(hash: Buffer);
13
12
  }
13
+ export type BlockProposalOptions = {
14
+ publishFullTxs: boolean;
15
+ };
14
16
  /**
15
17
  * BlockProposal
16
18
  *
@@ -18,27 +20,34 @@ export declare class BlockProposalHash extends Buffer32 {
18
20
  * be included in the head of the chain
19
21
  */
20
22
  export declare class BlockProposal extends Gossipable {
23
+ /** The number of the block */
24
+ readonly blockNumber: Fr;
21
25
  /** The payload of the message, and what the signature is over */
22
26
  readonly payload: ConsensusPayload;
23
27
  /** The signer of the BlockProposal over the header of the new block*/
24
28
  readonly signature: Signature;
29
+ /** The transactions in the block */
30
+ readonly txs?: Tx[] | undefined;
25
31
  static p2pTopic: TopicType;
26
32
  private sender;
27
33
  constructor(
34
+ /** The number of the block */
35
+ blockNumber: Fr,
28
36
  /** The payload of the message, and what the signature is over */
29
37
  payload: ConsensusPayload,
30
38
  /** The signer of the BlockProposal over the header of the new block*/
31
- signature: Signature);
32
- p2pMessageIdentifier(): Promise<Buffer32>;
39
+ signature: Signature,
40
+ /** The transactions in the block */
41
+ txs?: Tx[] | undefined);
42
+ generateP2PMessageIdentifier(): Promise<Buffer32>;
33
43
  get archive(): Fr;
34
44
  get slotNumber(): Fr;
35
- get blockNumber(): Fr;
36
- static createProposalFromSigner(payload: ConsensusPayload, payloadSigner: (payload: Buffer32) => Promise<Signature>): Promise<BlockProposal>;
45
+ static createProposalFromSigner(blockNumber: Fr, payload: ConsensusPayload, txs: Tx[] | undefined, payloadSigner: (payload: Buffer32) => Promise<Signature>): Promise<BlockProposal>;
37
46
  /**Get Sender
38
47
  * Lazily evaluate the sender of the proposal; result is cached
39
48
  */
40
49
  getSender(): EthAddress;
41
- getPayload(): Buffer;
50
+ getPayload(): Buffer<ArrayBufferLike>;
42
51
  toBuffer(): Buffer;
43
52
  static fromBuffer(buf: Buffer | BufferReader): BlockProposal;
44
53
  getSize(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"block_proposal.d.ts","sourceRoot":"","sources":["../../src/p2p/block_proposal.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,iBAAkB,SAAQ,QAAQ;gBACjC,IAAI,EAAE,MAAM;CAGzB;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAMzC,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,sEAAsE;aACtD,SAAS,EAAE,SAAS;IATtC,OAAgB,QAAQ,YAA4B;IAEpD,OAAO,CAAC,MAAM,CAAyB;;IAGrC,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,sEAAsE;IACtD,SAAS,EAAE,SAAS;IAK7B,oBAAoB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAIlD,IAAI,OAAO,IAAI,EAAE,CAEhB;IAED,IAAI,UAAU,IAAI,EAAE,CAEnB;IAED,IAAI,WAAW,IAAI,EAAE,CAEpB;WAEY,wBAAwB,CACnC,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC;IAQ1D;;OAEG;IACH,SAAS;IAUT,UAAU;IAIV,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa;IAK5D,OAAO,IAAI,MAAM;CAGlB"}
1
+ {"version":3,"file":"block_proposal.d.ts","sourceRoot":"","sources":["../../src/p2p/block_proposal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,iBAAkB,SAAQ,QAAQ;gBACjC,IAAI,EAAE,MAAM;CAGzB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAMzC,8BAA8B;aACd,WAAW,EAAE,EAAE;IAE/B,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,sEAAsE;aACtD,SAAS,EAAE,SAAS;IAGpC,oCAAoC;aACpB,GAAG,CAAC,EAAE,EAAE,EAAE;IAhB5B,OAAgB,QAAQ,YAA4B;IAEpD,OAAO,CAAC,MAAM,CAAyB;;IAGrC,8BAA8B;IACd,WAAW,EAAE,EAAE;IAE/B,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,sEAAsE;IACtD,SAAS,EAAE,SAAS;IAGpC,oCAAoC;IACpB,GAAG,CAAC,EAAE,EAAE,EAAE,YAAA;IAKnB,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC;IAI1D,IAAI,OAAO,IAAI,EAAE,CAEhB;IAED,IAAI,UAAU,IAAI,EAAE,CAEnB;WAEY,wBAAwB,CACnC,WAAW,EAAE,EAAE,EACf,OAAO,EAAE,gBAAgB,EAEzB,GAAG,EAAE,EAAE,EAAE,GAAG,SAAS,EACrB,aAAa,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC;IAQ1D;;OAEG;IACH,SAAS;IAUT,UAAU;IAIV,QAAQ,IAAI,MAAM;IASlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa;IAe5D,OAAO,IAAI,MAAM;CAQlB"}
@@ -1,7 +1,9 @@
1
1
  import { Buffer32 } from '@aztec/foundation/buffer';
2
2
  import { keccak256, recoverAddress } from '@aztec/foundation/crypto';
3
3
  import { Signature } from '@aztec/foundation/eth-signature';
4
+ import { Fr } from '@aztec/foundation/fields';
4
5
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
6
+ import { Tx } from '../tx/tx.js';
5
7
  import { ConsensusPayload } from './consensus_payload.js';
6
8
  import { Gossipable } from './gossipable.js';
7
9
  import { SignatureDomainSeparator, getHashedSignaturePayload, getHashedSignaturePayloadEthSignedMessage } from './signature_utils.js';
@@ -17,29 +19,30 @@ export class BlockProposalHash extends Buffer32 {
17
19
  * A block proposal is created by the leader of the chain proposing a sequence of transactions to
18
20
  * be included in the head of the chain
19
21
  */ export class BlockProposal extends Gossipable {
22
+ blockNumber;
20
23
  payload;
21
24
  signature;
25
+ txs;
22
26
  static p2pTopic = TopicType.block_proposal;
23
27
  sender;
24
- constructor(/** The payload of the message, and what the signature is over */ payload, /** The signer of the BlockProposal over the header of the new block*/ signature){
25
- super(), this.payload = payload, this.signature = signature;
28
+ constructor(/** The number of the block */ blockNumber, /** The payload of the message, and what the signature is over */ payload, /** The signer of the BlockProposal over the header of the new block*/ signature, // Note(md): this is placed after the txs payload in order to be backwards compatible with previous versions
29
+ /** The transactions in the block */ txs){
30
+ super(), this.blockNumber = blockNumber, this.payload = payload, this.signature = signature, this.txs = txs;
26
31
  }
27
- p2pMessageIdentifier() {
32
+ generateP2PMessageIdentifier() {
28
33
  return Promise.resolve(new BlockProposalHash(keccak256(this.signature.toBuffer())));
29
34
  }
30
35
  get archive() {
31
36
  return this.payload.archive;
32
37
  }
33
38
  get slotNumber() {
34
- return this.payload.header.globalVariables.slotNumber;
39
+ return this.payload.header.slotNumber;
35
40
  }
36
- get blockNumber() {
37
- return this.payload.header.globalVariables.blockNumber;
38
- }
39
- static async createProposalFromSigner(payload, payloadSigner) {
41
+ static async createProposalFromSigner(blockNumber, payload, // Note(md): Provided separately to tx hashes such that this function can be optional
42
+ txs, payloadSigner) {
40
43
  const hashed = getHashedSignaturePayload(payload, SignatureDomainSeparator.blockProposal);
41
44
  const sig = await payloadSigner(hashed);
42
- return new BlockProposal(payload, sig);
45
+ return new BlockProposal(blockNumber, payload, sig, txs);
43
46
  }
44
47
  /**Get Sender
45
48
  * Lazily evaluate the sender of the proposal; result is cached
@@ -55,16 +58,29 @@ export class BlockProposalHash extends Buffer32 {
55
58
  return this.payload.getPayloadToSign(SignatureDomainSeparator.blockProposal);
56
59
  }
57
60
  toBuffer() {
58
- return serializeToBuffer([
61
+ const buffer = [
62
+ this.blockNumber,
59
63
  this.payload,
60
64
  this.signature
61
- ]);
65
+ ];
66
+ if (this.txs) {
67
+ buffer.push(this.txs.length);
68
+ buffer.push(this.txs);
69
+ }
70
+ return serializeToBuffer(buffer);
62
71
  }
63
72
  static fromBuffer(buf) {
64
73
  const reader = BufferReader.asReader(buf);
65
- return new BlockProposal(reader.readObject(ConsensusPayload), reader.readObject(Signature));
74
+ const blockNumber = reader.readObject(Fr);
75
+ const payload = reader.readObject(ConsensusPayload);
76
+ const sig = reader.readObject(Signature);
77
+ if (!reader.isEmpty()) {
78
+ const txs = reader.readArray(reader.readNumber(), Tx);
79
+ return new BlockProposal(blockNumber, payload, sig, txs);
80
+ }
81
+ return new BlockProposal(blockNumber, payload, sig);
66
82
  }
67
83
  getSize() {
68
- return this.payload.getSize() + this.signature.getSize();
84
+ return this.blockNumber.size + this.payload.getSize() + this.signature.getSize() + (this.txs ? this.txs.reduce((acc, tx)=>acc + tx.getSize(), 0) : 0);
69
85
  }
70
86
  }
@@ -1,43 +1,215 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import { Fr } from '@aztec/foundation/fields';
4
2
  import { BufferReader } from '@aztec/foundation/serialize';
5
3
  import type { FieldsOf } from '@aztec/foundation/types';
6
4
  import { z } from 'zod';
7
5
  import type { L2Block } from '../block/l2_block.js';
8
- import { BlockHeader } from '../tx/block_header.js';
9
- import { TxHash } from '../tx/tx_hash.js';
6
+ import { ProposedBlockHeader, StateReference, TxHash } from '../tx/index.js';
10
7
  import type { Signable, SignatureDomainSeparator } from './signature_utils.js';
11
8
  export declare class ConsensusPayload implements Signable {
12
- /** The block header the attestation is made over */
13
- readonly header: BlockHeader;
9
+ /** The proposed block header the attestation is made over */
10
+ readonly header: ProposedBlockHeader;
11
+ /** The archive root after the block is added */
14
12
  readonly archive: Fr;
13
+ /** The state reference after the block is added */
14
+ readonly stateReference: StateReference;
15
15
  /** The sequence of transactions in the block */
16
16
  readonly txHashes: TxHash[];
17
17
  private size;
18
18
  constructor(
19
- /** The block header the attestation is made over */
20
- header: BlockHeader, archive: Fr,
19
+ /** The proposed block header the attestation is made over */
20
+ header: ProposedBlockHeader,
21
+ /** The archive root after the block is added */
22
+ archive: Fr,
23
+ /** The state reference after the block is added */
24
+ stateReference: StateReference,
21
25
  /** The sequence of transactions in the block */
22
26
  txHashes: TxHash[]);
23
27
  static get schema(): z.ZodEffects<z.ZodObject<{
24
- header: import("@aztec/foundation/schemas").ZodFor<BlockHeader>;
28
+ header: import("@aztec/foundation/schemas").ZodFor<ProposedBlockHeader>;
25
29
  archive: z.ZodType<Fr, any, string>;
26
- txHashes: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer, string>, TxHash, string>, "many">;
30
+ stateReference: z.ZodEffects<z.ZodObject<{
31
+ l1ToL2MessageTree: z.ZodEffects<z.ZodObject<{
32
+ root: z.ZodType<Fr, any, string>;
33
+ nextAvailableLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ root: Fr;
36
+ nextAvailableLeafIndex: number;
37
+ }, {
38
+ root: string;
39
+ nextAvailableLeafIndex: string | number | bigint;
40
+ }>, import("../trees/append_only_tree_snapshot.js").AppendOnlyTreeSnapshot, {
41
+ root: string;
42
+ nextAvailableLeafIndex: string | number | bigint;
43
+ }>;
44
+ partial: z.ZodEffects<z.ZodObject<{
45
+ noteHashTree: z.ZodEffects<z.ZodObject<{
46
+ root: z.ZodType<Fr, any, string>;
47
+ nextAvailableLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
48
+ }, "strip", z.ZodTypeAny, {
49
+ root: Fr;
50
+ nextAvailableLeafIndex: number;
51
+ }, {
52
+ root: string;
53
+ nextAvailableLeafIndex: string | number | bigint;
54
+ }>, import("../trees/append_only_tree_snapshot.js").AppendOnlyTreeSnapshot, {
55
+ root: string;
56
+ nextAvailableLeafIndex: string | number | bigint;
57
+ }>;
58
+ nullifierTree: z.ZodEffects<z.ZodObject<{
59
+ root: z.ZodType<Fr, any, string>;
60
+ nextAvailableLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
61
+ }, "strip", z.ZodTypeAny, {
62
+ root: Fr;
63
+ nextAvailableLeafIndex: number;
64
+ }, {
65
+ root: string;
66
+ nextAvailableLeafIndex: string | number | bigint;
67
+ }>, import("../trees/append_only_tree_snapshot.js").AppendOnlyTreeSnapshot, {
68
+ root: string;
69
+ nextAvailableLeafIndex: string | number | bigint;
70
+ }>;
71
+ publicDataTree: z.ZodEffects<z.ZodObject<{
72
+ root: z.ZodType<Fr, any, string>;
73
+ nextAvailableLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
74
+ }, "strip", z.ZodTypeAny, {
75
+ root: Fr;
76
+ nextAvailableLeafIndex: number;
77
+ }, {
78
+ root: string;
79
+ nextAvailableLeafIndex: string | number | bigint;
80
+ }>, import("../trees/append_only_tree_snapshot.js").AppendOnlyTreeSnapshot, {
81
+ root: string;
82
+ nextAvailableLeafIndex: string | number | bigint;
83
+ }>;
84
+ }, "strip", z.ZodTypeAny, {
85
+ noteHashTree: import("../trees/append_only_tree_snapshot.js").AppendOnlyTreeSnapshot;
86
+ nullifierTree: import("../trees/append_only_tree_snapshot.js").AppendOnlyTreeSnapshot;
87
+ publicDataTree: import("../trees/append_only_tree_snapshot.js").AppendOnlyTreeSnapshot;
88
+ }, {
89
+ noteHashTree: {
90
+ root: string;
91
+ nextAvailableLeafIndex: string | number | bigint;
92
+ };
93
+ nullifierTree: {
94
+ root: string;
95
+ nextAvailableLeafIndex: string | number | bigint;
96
+ };
97
+ publicDataTree: {
98
+ root: string;
99
+ nextAvailableLeafIndex: string | number | bigint;
100
+ };
101
+ }>, import("../tx/partial_state_reference.js").PartialStateReference, {
102
+ noteHashTree: {
103
+ root: string;
104
+ nextAvailableLeafIndex: string | number | bigint;
105
+ };
106
+ nullifierTree: {
107
+ root: string;
108
+ nextAvailableLeafIndex: string | number | bigint;
109
+ };
110
+ publicDataTree: {
111
+ root: string;
112
+ nextAvailableLeafIndex: string | number | bigint;
113
+ };
114
+ }>;
115
+ }, "strip", z.ZodTypeAny, {
116
+ partial: import("../tx/partial_state_reference.js").PartialStateReference;
117
+ l1ToL2MessageTree: import("../trees/append_only_tree_snapshot.js").AppendOnlyTreeSnapshot;
118
+ }, {
119
+ partial: {
120
+ noteHashTree: {
121
+ root: string;
122
+ nextAvailableLeafIndex: string | number | bigint;
123
+ };
124
+ nullifierTree: {
125
+ root: string;
126
+ nextAvailableLeafIndex: string | number | bigint;
127
+ };
128
+ publicDataTree: {
129
+ root: string;
130
+ nextAvailableLeafIndex: string | number | bigint;
131
+ };
132
+ };
133
+ l1ToL2MessageTree: {
134
+ root: string;
135
+ nextAvailableLeafIndex: string | number | bigint;
136
+ };
137
+ }>, StateReference, {
138
+ partial: {
139
+ noteHashTree: {
140
+ root: string;
141
+ nextAvailableLeafIndex: string | number | bigint;
142
+ };
143
+ nullifierTree: {
144
+ root: string;
145
+ nextAvailableLeafIndex: string | number | bigint;
146
+ };
147
+ publicDataTree: {
148
+ root: string;
149
+ nextAvailableLeafIndex: string | number | bigint;
150
+ };
151
+ };
152
+ l1ToL2MessageTree: {
153
+ root: string;
154
+ nextAvailableLeafIndex: string | number | bigint;
155
+ };
156
+ }>;
157
+ txHashes: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>, TxHash, string>, "many">;
27
158
  }, "strip", z.ZodTypeAny, {
28
159
  archive: Fr;
29
- header: BlockHeader;
160
+ header: ProposedBlockHeader;
161
+ stateReference: StateReference;
30
162
  txHashes: TxHash[];
31
163
  }, {
32
164
  archive: string;
165
+ stateReference: {
166
+ partial: {
167
+ noteHashTree: {
168
+ root: string;
169
+ nextAvailableLeafIndex: string | number | bigint;
170
+ };
171
+ nullifierTree: {
172
+ root: string;
173
+ nextAvailableLeafIndex: string | number | bigint;
174
+ };
175
+ publicDataTree: {
176
+ root: string;
177
+ nextAvailableLeafIndex: string | number | bigint;
178
+ };
179
+ };
180
+ l1ToL2MessageTree: {
181
+ root: string;
182
+ nextAvailableLeafIndex: string | number | bigint;
183
+ };
184
+ };
33
185
  txHashes: string[];
34
186
  header?: any;
35
187
  }>, ConsensusPayload, {
36
188
  archive: string;
189
+ stateReference: {
190
+ partial: {
191
+ noteHashTree: {
192
+ root: string;
193
+ nextAvailableLeafIndex: string | number | bigint;
194
+ };
195
+ nullifierTree: {
196
+ root: string;
197
+ nextAvailableLeafIndex: string | number | bigint;
198
+ };
199
+ publicDataTree: {
200
+ root: string;
201
+ nextAvailableLeafIndex: string | number | bigint;
202
+ };
203
+ };
204
+ l1ToL2MessageTree: {
205
+ root: string;
206
+ nextAvailableLeafIndex: string | number | bigint;
207
+ };
208
+ };
37
209
  txHashes: string[];
38
210
  header?: any;
39
211
  }>;
40
- static getFields(fields: FieldsOf<ConsensusPayload>): readonly [BlockHeader, Fr, TxHash[]];
212
+ static getFields(fields: FieldsOf<ConsensusPayload>): readonly [ProposedBlockHeader, Fr, StateReference, TxHash[]];
41
213
  getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
42
214
  toBuffer(): Buffer;
43
215
  static fromBuffer(buf: Buffer | BufferReader): ConsensusPayload;
@@ -49,5 +221,6 @@ export declare class ConsensusPayload implements Signable {
49
221
  * @returns The size of the consensus payload.
50
222
  */
51
223
  getSize(): number;
224
+ toString(): string;
52
225
  }
53
226
  //# sourceMappingURL=consensus_payload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consensus_payload.d.ts","sourceRoot":"","sources":["../../src/p2p/consensus_payload.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,qBAAa,gBAAiB,YAAW,QAAQ;IAI7C,oDAAoD;aACpC,MAAM,EAAE,WAAW;aAEnB,OAAO,EAAE,EAAE;IAC3B,gDAAgD;aAChC,QAAQ,EAAE,MAAM,EAAE;IARpC,OAAO,CAAC,IAAI,CAAqB;;IAG/B,oDAAoD;IACpC,MAAM,EAAE,WAAW,EAEnB,OAAO,EAAE,EAAE;IAC3B,gDAAgD;IAChC,QAAQ,EAAE,MAAM,EAAE;IAGpC,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAInD,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM;IAWnE,QAAQ,IAAI,MAAM;IAMlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAS/D,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;IAIvE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IAQlD,MAAM,CAAC,KAAK,IAAI,gBAAgB;IAIhC;;;OAGG;IACH,OAAO,IAAI,MAAM;CAQlB"}
1
+ {"version":3,"file":"consensus_payload.d.ts","sourceRoot":"","sources":["../../src/p2p/consensus_payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,qBAAa,gBAAiB,YAAW,QAAQ;IAI7C,6DAA6D;aAC7C,MAAM,EAAE,mBAAmB;IAC3C,gDAAgD;aAChC,OAAO,EAAE,EAAE;IAC3B,mDAAmD;aACnC,cAAc,EAAE,cAAc;IAC9C,gDAAgD;aAChC,QAAQ,EAAE,MAAM,EAAE;IAVpC,OAAO,CAAC,IAAI,CAAqB;;IAG/B,6DAA6D;IAC7C,MAAM,EAAE,mBAAmB;IAC3C,gDAAgD;IAChC,OAAO,EAAE,EAAE;IAC3B,mDAAmD;IACnC,cAAc,EAAE,cAAc;IAC9C,gDAAgD;IAChC,QAAQ,EAAE,MAAM,EAAE;IAGpC,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAShB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAInD,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM;IAcnE,QAAQ,IAAI,MAAM;IAYlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAU/D,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;IAIvE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IASlD,MAAM,CAAC,KAAK,IAAI,gBAAgB;IAIhC;;;OAGG;IACH,OAAO,IAAI,MAAM;IASjB,QAAQ;CAGT"}
@@ -2,46 +2,52 @@ import { Fr } from '@aztec/foundation/fields';
2
2
  import { schemas } from '@aztec/foundation/schemas';
3
3
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
4
  import { hexToBuffer } from '@aztec/foundation/string';
5
- import { encodeAbiParameters, parseAbiParameters } from 'viem';
5
+ import { encodeAbiParameters, parseAbiParameters, toHex } from 'viem';
6
6
  import { z } from 'zod';
7
- import { BlockHeader } from '../tx/block_header.js';
8
- import { TxHash } from '../tx/tx_hash.js';
7
+ import { ProposedBlockHeader, StateReference, TxHash } from '../tx/index.js';
9
8
  export class ConsensusPayload {
10
9
  header;
11
10
  archive;
11
+ stateReference;
12
12
  txHashes;
13
13
  size;
14
- constructor(/** The block header the attestation is made over */ header, // TODO(https://github.com/AztecProtocol/aztec-packages/pull/7727#discussion_r1713670830): temporary
15
- archive, /** The sequence of transactions in the block */ txHashes){
14
+ constructor(/** The proposed block header the attestation is made over */ header, /** The archive root after the block is added */ archive, /** The state reference after the block is added */ stateReference, /** The sequence of transactions in the block */ txHashes){
16
15
  this.header = header;
17
16
  this.archive = archive;
17
+ this.stateReference = stateReference;
18
18
  this.txHashes = txHashes;
19
19
  }
20
20
  static get schema() {
21
21
  return z.object({
22
- header: BlockHeader.schema,
22
+ header: ProposedBlockHeader.schema,
23
23
  archive: schemas.Fr,
24
+ stateReference: StateReference.schema,
24
25
  txHashes: z.array(TxHash.schema)
25
- }).transform((obj)=>new ConsensusPayload(obj.header, obj.archive, obj.txHashes));
26
+ }).transform((obj)=>new ConsensusPayload(obj.header, obj.archive, obj.stateReference, obj.txHashes));
26
27
  }
27
28
  static getFields(fields) {
28
29
  return [
29
30
  fields.header,
30
31
  fields.archive,
32
+ fields.stateReference,
31
33
  fields.txHashes
32
34
  ];
33
35
  }
34
36
  getPayloadToSign(domainSeparator) {
35
- const abi = parseAbiParameters('uint8, (bytes32, (uint256), bytes, bytes32[])');
37
+ const abi = parseAbiParameters('uint8, (bytes32, bytes, (uint256), bytes32, bytes32[])');
38
+ const archiveRoot = this.archive.toString();
39
+ const stateReference = toHex(this.stateReference.toBuffer());
40
+ const headerHash = this.header.hash().toString();
36
41
  const txArray = this.txHashes.map((tx)=>tx.toString());
37
42
  const encodedData = encodeAbiParameters(abi, [
38
43
  domainSeparator,
39
44
  [
40
- this.archive.toString(),
45
+ archiveRoot,
46
+ stateReference,
41
47
  [
42
48
  0n
43
49
  ],
44
- this.header.toString(),
50
+ headerHash,
45
51
  txArray
46
52
  ]
47
53
  ]);
@@ -51,6 +57,7 @@ export class ConsensusPayload {
51
57
  const buffer = serializeToBuffer([
52
58
  this.header,
53
59
  this.archive,
60
+ this.stateReference,
54
61
  this.txHashes.length,
55
62
  this.txHashes
56
63
  ]);
@@ -59,16 +66,16 @@ export class ConsensusPayload {
59
66
  }
60
67
  static fromBuffer(buf) {
61
68
  const reader = BufferReader.asReader(buf);
62
- return new ConsensusPayload(reader.readObject(BlockHeader), reader.readObject(Fr), reader.readArray(reader.readNumber(), TxHash));
69
+ return new ConsensusPayload(reader.readObject(ProposedBlockHeader), reader.readObject(Fr), reader.readObject(StateReference), reader.readArray(reader.readNumber(), TxHash));
63
70
  }
64
71
  static fromFields(fields) {
65
- return new ConsensusPayload(fields.header, fields.archive, fields.txHashes);
72
+ return new ConsensusPayload(fields.header, fields.archive, fields.stateReference, fields.txHashes);
66
73
  }
67
74
  static fromBlock(block) {
68
- return new ConsensusPayload(block.header, block.archive.root, block.body.txEffects.map((tx)=>tx.txHash));
75
+ return new ConsensusPayload(block.header.toPropose(), block.archive.root, block.header.state, block.body.txEffects.map((tx)=>tx.txHash));
69
76
  }
70
77
  static empty() {
71
- return new ConsensusPayload(BlockHeader.empty(), Fr.ZERO, []);
78
+ return new ConsensusPayload(ProposedBlockHeader.empty(), Fr.ZERO, StateReference.empty(), []);
72
79
  }
73
80
  /**
74
81
  * Get the size of the consensus payload in bytes.
@@ -81,4 +88,7 @@ export class ConsensusPayload {
81
88
  this.size = this.toBuffer().length;
82
89
  return this.size;
83
90
  }
91
+ toString() {
92
+ return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, stateReference: ${this.stateReference.l1ToL2MessageTree.root.toString()}, txHashes: ${this.txHashes.join(', ')}`;
93
+ }
84
94
  }
@@ -1,13 +1,21 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- import type { Buffer32 } from '@aztec/foundation/buffer';
1
+ import { Buffer32 } from '@aztec/foundation/buffer';
4
2
  import type { TopicType } from './topic_type.js';
3
+ export declare class P2PMessage {
4
+ readonly publishTime: Date;
5
+ readonly id: Buffer32;
6
+ readonly payload: Buffer;
7
+ constructor(publishTime: Date, id: Buffer32, payload: Buffer);
8
+ static fromGossipable(message: Gossipable): Promise<P2PMessage>;
9
+ static fromMessageData(messageData: Buffer): P2PMessage;
10
+ toMessageData(): Buffer;
11
+ }
5
12
  /**
6
13
  * Gossipable
7
14
  *
8
15
  * Any class which extends gossipable will be able to be Gossiped over the p2p network
9
16
  */
10
17
  export declare abstract class Gossipable {
18
+ private cachedId;
11
19
  /** p2p Topic
12
20
  *
13
21
  * - The p2p topic identifier, this determines how the message is handled
@@ -17,12 +25,14 @@ export declare abstract class Gossipable {
17
25
  *
18
26
  * - A digest of the message information, this key is used for deduplication
19
27
  */
20
- abstract p2pMessageIdentifier(): Promise<Buffer32>;
28
+ p2pMessageIdentifier(): Promise<Buffer32>;
29
+ abstract generateP2PMessageIdentifier(): Promise<Buffer32>;
21
30
  /** To Buffer
22
31
  *
23
32
  * - Serialization method
24
33
  */
25
34
  abstract toBuffer(): Buffer;
35
+ toMessage(): Buffer;
26
36
  /**
27
37
  * Get the size of the gossipable object.
28
38
  *