@aztec/stdlib 0.0.1-commit.9372f48 → 0.0.1-commit.949a33fd8

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 (749) hide show
  1. package/dest/abi/abi.d.ts +138 -1
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +10 -2
  4. package/dest/abi/authorization_selector.d.ts +3 -6
  5. package/dest/abi/authorization_selector.d.ts.map +1 -1
  6. package/dest/abi/buffer.d.ts +14 -4
  7. package/dest/abi/buffer.d.ts.map +1 -1
  8. package/dest/abi/buffer.js +25 -4
  9. package/dest/abi/decoder.d.ts +6 -45
  10. package/dest/abi/decoder.d.ts.map +1 -1
  11. package/dest/abi/decoder.js +17 -70
  12. package/dest/abi/encoder.d.ts +1 -1
  13. package/dest/abi/encoder.d.ts.map +1 -1
  14. package/dest/abi/encoder.js +64 -7
  15. package/dest/abi/event_metadata_definition.d.ts +3 -1
  16. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  17. package/dest/abi/event_metadata_definition.js +1 -1
  18. package/dest/abi/event_selector.d.ts +3 -6
  19. package/dest/abi/event_selector.d.ts.map +1 -1
  20. package/dest/abi/function_call.d.ts +39 -9
  21. package/dest/abi/function_call.d.ts.map +1 -1
  22. package/dest/abi/function_call.js +20 -3
  23. package/dest/abi/function_selector.d.ts +3 -6
  24. package/dest/abi/function_selector.d.ts.map +1 -1
  25. package/dest/abi/function_selector.js +2 -4
  26. package/dest/abi/function_signature_decoder.d.ts +43 -0
  27. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  28. package/dest/abi/function_signature_decoder.js +66 -0
  29. package/dest/abi/index.d.ts +2 -1
  30. package/dest/abi/index.d.ts.map +1 -1
  31. package/dest/abi/index.js +1 -0
  32. package/dest/abi/note_selector.d.ts +3 -6
  33. package/dest/abi/note_selector.d.ts.map +1 -1
  34. package/dest/abi/note_selector.js +1 -3
  35. package/dest/abi/selector.d.ts +2 -2
  36. package/dest/abi/selector.d.ts.map +1 -1
  37. package/dest/abi/selector.js +1 -1
  38. package/dest/abi/utils.d.ts +14 -1
  39. package/dest/abi/utils.d.ts.map +1 -1
  40. package/dest/abi/utils.js +15 -0
  41. package/dest/auth_witness/auth_witness.js +3 -3
  42. package/dest/avm/avm_proving_request.d.ts +166 -166
  43. package/dest/avm/revert_code.d.ts +9 -4
  44. package/dest/avm/revert_code.d.ts.map +1 -1
  45. package/dest/avm/revert_code.js +16 -21
  46. package/dest/aztec-address/index.d.ts +3 -6
  47. package/dest/aztec-address/index.d.ts.map +1 -1
  48. package/dest/aztec-address/index.js +2 -4
  49. package/dest/block/attestation_info.d.ts +3 -2
  50. package/dest/block/attestation_info.d.ts.map +1 -1
  51. package/dest/block/attestation_info.js +7 -5
  52. package/dest/block/block_data.d.ts +341 -0
  53. package/dest/block/block_data.d.ts.map +1 -0
  54. package/dest/block/block_data.js +26 -0
  55. package/dest/block/block_hash.d.ts +11 -10
  56. package/dest/block/block_hash.d.ts.map +1 -1
  57. package/dest/block/block_hash.js +10 -9
  58. package/dest/block/block_parameter.d.ts +30 -3
  59. package/dest/block/block_parameter.d.ts.map +1 -1
  60. package/dest/block/block_parameter.js +36 -2
  61. package/dest/block/in_block.js +1 -1
  62. package/dest/block/index.d.ts +2 -1
  63. package/dest/block/index.d.ts.map +1 -1
  64. package/dest/block/index.js +1 -0
  65. package/dest/block/l2_block.d.ts +9 -1
  66. package/dest/block/l2_block.d.ts.map +1 -1
  67. package/dest/block/l2_block.js +12 -2
  68. package/dest/block/l2_block_info.d.ts +6 -5
  69. package/dest/block/l2_block_info.d.ts.map +1 -1
  70. package/dest/block/l2_block_info.js +6 -5
  71. package/dest/block/l2_block_source.d.ts +149 -10
  72. package/dest/block/l2_block_source.d.ts.map +1 -1
  73. package/dest/block/l2_block_source.js +1 -0
  74. package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
  75. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  76. package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -1
  77. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  78. package/dest/block/l2_block_stream/l2_block_stream.js +10 -0
  79. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +1 -1
  80. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  81. package/dest/block/l2_block_stream/l2_tips_store_base.js +18 -5
  82. package/dest/block/proposal/attestations_and_signers.d.ts +13 -6
  83. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  84. package/dest/block/proposal/attestations_and_signers.js +26 -18
  85. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  86. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  87. package/dest/block/test/l2_tips_store_test_suite.js +4 -3
  88. package/dest/checkpoint/checkpoint.d.ts +28 -7
  89. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  90. package/dest/checkpoint/checkpoint.js +41 -17
  91. package/dest/checkpoint/checkpoint_data.d.ts +192 -0
  92. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  93. package/dest/checkpoint/checkpoint_data.js +38 -0
  94. package/dest/checkpoint/index.d.ts +3 -1
  95. package/dest/checkpoint/index.d.ts.map +1 -1
  96. package/dest/checkpoint/index.js +2 -0
  97. package/dest/checkpoint/published_checkpoint.d.ts +17 -2
  98. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  99. package/dest/checkpoint/published_checkpoint.js +1 -2
  100. package/dest/checkpoint/validate.d.ts +36 -0
  101. package/dest/checkpoint/validate.d.ts.map +1 -0
  102. package/dest/checkpoint/validate.js +120 -0
  103. package/dest/config/chain-config.d.ts +2 -2
  104. package/dest/config/chain-config.d.ts.map +1 -1
  105. package/dest/config/chain-config.js +9 -3
  106. package/dest/config/index.d.ts +3 -1
  107. package/dest/config/index.d.ts.map +1 -1
  108. package/dest/config/index.js +2 -0
  109. package/dest/config/pipelining-config.d.ts +19 -0
  110. package/dest/config/pipelining-config.d.ts.map +1 -0
  111. package/dest/config/pipelining-config.js +18 -0
  112. package/dest/config/sequencer-config.d.ts +12 -0
  113. package/dest/config/sequencer-config.d.ts.map +1 -0
  114. package/dest/config/sequencer-config.js +31 -0
  115. package/dest/contract/contract_address.d.ts +3 -3
  116. package/dest/contract/contract_address.js +7 -7
  117. package/dest/contract/contract_class.d.ts +2 -3
  118. package/dest/contract/contract_class.d.ts.map +1 -1
  119. package/dest/contract/contract_class_id.d.ts +3 -3
  120. package/dest/contract/contract_class_id.d.ts.map +1 -1
  121. package/dest/contract/contract_class_id.js +7 -6
  122. package/dest/contract/index.d.ts +1 -3
  123. package/dest/contract/index.d.ts.map +1 -1
  124. package/dest/contract/index.js +0 -2
  125. package/dest/contract/interfaces/contract_class.d.ts +3 -156
  126. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  127. package/dest/contract/interfaces/contract_class.js +1 -28
  128. package/dest/contract/interfaces/node-info.d.ts +3 -1
  129. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  130. package/dest/contract/interfaces/node-info.js +2 -1
  131. package/dest/contract/private_function.d.ts +1 -1
  132. package/dest/contract/private_function.d.ts.map +1 -1
  133. package/dest/contract/private_function.js +4 -6
  134. package/dest/epoch-helpers/index.d.ts +15 -1
  135. package/dest/epoch-helpers/index.d.ts.map +1 -1
  136. package/dest/epoch-helpers/index.js +18 -2
  137. package/dest/file-store/factory.d.ts +4 -3
  138. package/dest/file-store/factory.d.ts.map +1 -1
  139. package/dest/file-store/factory.js +2 -2
  140. package/dest/file-store/http.d.ts +9 -2
  141. package/dest/file-store/http.d.ts.map +1 -1
  142. package/dest/file-store/http.js +20 -9
  143. package/dest/file-store/index.d.ts +2 -1
  144. package/dest/file-store/index.d.ts.map +1 -1
  145. package/dest/file-store/local.d.ts +3 -3
  146. package/dest/file-store/local.d.ts.map +1 -1
  147. package/dest/file-store/local.js +13 -4
  148. package/dest/file-store/s3.d.ts +1 -1
  149. package/dest/file-store/s3.d.ts.map +1 -1
  150. package/dest/file-store/s3.js +11 -3
  151. package/dest/gas/fee_math.d.ts +49 -0
  152. package/dest/gas/fee_math.d.ts.map +1 -0
  153. package/dest/gas/fee_math.js +80 -0
  154. package/dest/gas/gas_fees.d.ts +5 -1
  155. package/dest/gas/gas_fees.d.ts.map +1 -1
  156. package/dest/gas/gas_fees.js +13 -1
  157. package/dest/gas/gas_settings.d.ts +40 -3
  158. package/dest/gas/gas_settings.d.ts.map +1 -1
  159. package/dest/gas/gas_settings.js +50 -6
  160. package/dest/gas/index.d.ts +2 -1
  161. package/dest/gas/index.d.ts.map +1 -1
  162. package/dest/gas/index.js +1 -0
  163. package/dest/ha-signing/config.d.ts +136 -0
  164. package/dest/ha-signing/config.d.ts.map +1 -0
  165. package/dest/ha-signing/config.js +98 -0
  166. package/dest/ha-signing/index.d.ts +4 -0
  167. package/dest/ha-signing/index.d.ts.map +1 -0
  168. package/dest/ha-signing/index.js +3 -0
  169. package/dest/ha-signing/local_config.d.ts +63 -0
  170. package/dest/ha-signing/local_config.d.ts.map +1 -0
  171. package/dest/ha-signing/local_config.js +24 -0
  172. package/dest/ha-signing/types.d.ts +90 -0
  173. package/dest/ha-signing/types.d.ts.map +1 -0
  174. package/dest/ha-signing/types.js +39 -0
  175. package/dest/hash/hash.d.ts +35 -1
  176. package/dest/hash/hash.d.ts.map +1 -1
  177. package/dest/hash/hash.js +77 -10
  178. package/dest/hash/map_slot.js +2 -2
  179. package/dest/interfaces/allowed_element.d.ts +26 -20
  180. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  181. package/dest/interfaces/allowed_element.js +8 -8
  182. package/dest/interfaces/archiver.d.ts +11 -1
  183. package/dest/interfaces/archiver.d.ts.map +1 -1
  184. package/dest/interfaces/archiver.js +17 -3
  185. package/dest/interfaces/aztec-node-admin.d.ts +139 -48
  186. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  187. package/dest/interfaces/aztec-node-admin.js +17 -8
  188. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  189. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  190. package/dest/interfaces/aztec-node-debug.js +18 -0
  191. package/dest/interfaces/aztec-node.d.ts +59 -54
  192. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  193. package/dest/interfaces/aztec-node.js +23 -16
  194. package/dest/interfaces/block-builder.d.ts +39 -12
  195. package/dest/interfaces/block-builder.d.ts.map +1 -1
  196. package/dest/interfaces/block-builder.js +13 -6
  197. package/dest/interfaces/block_response.d.ts +156 -0
  198. package/dest/interfaces/block_response.d.ts.map +1 -0
  199. package/dest/interfaces/block_response.js +24 -0
  200. package/dest/interfaces/chain_tips.d.ts +304 -0
  201. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  202. package/dest/interfaces/chain_tips.js +11 -0
  203. package/dest/interfaces/checkpoint_parameter.d.ts +27 -0
  204. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  205. package/dest/interfaces/checkpoint_parameter.js +20 -0
  206. package/dest/interfaces/checkpoint_response.d.ts +312 -0
  207. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  208. package/dest/interfaces/checkpoint_response.js +26 -0
  209. package/dest/interfaces/client.d.ts +7 -1
  210. package/dest/interfaces/client.d.ts.map +1 -1
  211. package/dest/interfaces/client.js +6 -0
  212. package/dest/interfaces/configs.d.ts +82 -32
  213. package/dest/interfaces/configs.d.ts.map +1 -1
  214. package/dest/interfaces/configs.js +11 -3
  215. package/dest/interfaces/get_logs_response.d.ts +8 -1
  216. package/dest/interfaces/get_logs_response.d.ts.map +1 -1
  217. package/dest/interfaces/l1_publish_info.d.ts +43 -0
  218. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  219. package/dest/interfaces/l1_publish_info.js +26 -0
  220. package/dest/interfaces/l2_logs_source.d.ts +5 -3
  221. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  222. package/dest/interfaces/merkle_tree_operations.d.ts +13 -22
  223. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  224. package/dest/interfaces/p2p.d.ts +4 -9
  225. package/dest/interfaces/p2p.d.ts.map +1 -1
  226. package/dest/interfaces/prover-broker.d.ts +16 -1
  227. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  228. package/dest/interfaces/prover-broker.js +4 -1
  229. package/dest/interfaces/prover-client.d.ts +11 -1
  230. package/dest/interfaces/prover-client.d.ts.map +1 -1
  231. package/dest/interfaces/prover-client.js +12 -4
  232. package/dest/interfaces/proving-job.d.ts +202 -202
  233. package/dest/interfaces/server.d.ts +6 -1
  234. package/dest/interfaces/server.d.ts.map +1 -1
  235. package/dest/interfaces/server.js +5 -0
  236. package/dest/interfaces/slasher.d.ts +9 -10
  237. package/dest/interfaces/slasher.d.ts.map +1 -1
  238. package/dest/interfaces/slasher.js +2 -2
  239. package/dest/interfaces/validator.d.ts +170 -64
  240. package/dest/interfaces/validator.d.ts.map +1 -1
  241. package/dest/interfaces/validator.js +12 -5
  242. package/dest/interfaces/world_state.d.ts +5 -4
  243. package/dest/interfaces/world_state.d.ts.map +1 -1
  244. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  245. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  246. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  247. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  248. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  249. package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
  250. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  251. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  252. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  253. package/dest/kernel/hints/index.d.ts +2 -2
  254. package/dest/kernel/hints/index.js +2 -2
  255. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  256. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  257. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  258. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  259. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  260. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  261. package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
  262. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  263. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  264. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  265. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  266. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  267. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
  268. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  269. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  270. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -3
  271. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  272. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  273. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  274. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  275. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  276. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
  277. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  278. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  279. package/dest/kernel/private_validation_requests.d.ts +3 -3
  280. package/dest/kernel/private_validation_requests.js +9 -9
  281. package/dest/keys/derivation.js +8 -8
  282. package/dest/keys/key_types.d.ts +3 -3
  283. package/dest/keys/key_types.d.ts.map +1 -1
  284. package/dest/keys/public_keys.js +2 -2
  285. package/dest/keys/utils.js +5 -5
  286. package/dest/kv-store/config.d.ts +17 -0
  287. package/dest/kv-store/config.d.ts.map +1 -0
  288. package/dest/kv-store/config.js +26 -0
  289. package/dest/kv-store/index.d.ts +2 -0
  290. package/dest/kv-store/index.d.ts.map +1 -0
  291. package/dest/kv-store/index.js +1 -0
  292. package/dest/l1-contracts/index.d.ts +2 -2
  293. package/dest/l1-contracts/index.d.ts.map +1 -1
  294. package/dest/l1-contracts/index.js +1 -1
  295. package/dest/logs/debug_log_store.d.ts +30 -0
  296. package/dest/logs/debug_log_store.d.ts.map +1 -0
  297. package/dest/logs/debug_log_store.js +30 -0
  298. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  299. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  300. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +35 -20
  301. package/dest/logs/extended_public_log.d.ts +7 -1
  302. package/dest/logs/extended_public_log.d.ts.map +1 -1
  303. package/dest/logs/index.d.ts +4 -2
  304. package/dest/logs/index.d.ts.map +1 -1
  305. package/dest/logs/index.js +3 -1
  306. package/dest/logs/log_filter.d.ts +4 -1
  307. package/dest/logs/log_filter.d.ts.map +1 -1
  308. package/dest/logs/log_filter.js +2 -1
  309. package/dest/logs/log_id.d.ts +10 -7
  310. package/dest/logs/log_id.d.ts.map +1 -1
  311. package/dest/logs/log_id.js +16 -15
  312. package/dest/logs/message_context.d.ts +4 -7
  313. package/dest/logs/message_context.d.ts.map +1 -1
  314. package/dest/logs/message_context.js +23 -9
  315. package/dest/logs/pending_tagged_log.d.ts +2 -3
  316. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  317. package/dest/logs/pending_tagged_log.js +2 -2
  318. package/dest/logs/pre_tag.d.ts +16 -11
  319. package/dest/logs/pre_tag.d.ts.map +1 -1
  320. package/dest/logs/pre_tag.js +2 -2
  321. package/dest/logs/private_log.d.ts +2 -2
  322. package/dest/logs/private_log.d.ts.map +1 -1
  323. package/dest/logs/public_log.d.ts +4 -3
  324. package/dest/logs/public_log.d.ts.map +1 -1
  325. package/dest/logs/public_log.js +2 -1
  326. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  327. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  328. package/dest/logs/shared_secret_derivation.js +15 -9
  329. package/dest/logs/siloed_tag.d.ts +12 -9
  330. package/dest/logs/siloed_tag.d.ts.map +1 -1
  331. package/dest/logs/siloed_tag.js +16 -7
  332. package/dest/logs/tag.d.ts +5 -6
  333. package/dest/logs/tag.d.ts.map +1 -1
  334. package/dest/logs/tag.js +5 -1
  335. package/dest/logs/tagging_index_range.d.ts +40 -0
  336. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  337. package/dest/logs/tagging_index_range.js +8 -0
  338. package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
  339. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  340. package/dest/logs/tx_scoped_l2_log.js +7 -0
  341. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  342. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  343. package/dest/messaging/l1_to_l2_message.js +11 -13
  344. package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
  345. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  346. package/dest/messaging/l2_to_l1_membership.d.ts +34 -8
  347. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  348. package/dest/messaging/l2_to_l1_membership.js +72 -29
  349. package/dest/noir/index.d.ts +3 -3
  350. package/dest/noir/index.d.ts.map +1 -1
  351. package/dest/note/index.d.ts +1 -2
  352. package/dest/note/index.d.ts.map +1 -1
  353. package/dest/note/index.js +0 -1
  354. package/dest/note/note_dao.d.ts +1 -1
  355. package/dest/note/note_dao.d.ts.map +1 -1
  356. package/dest/note/note_dao.js +1 -4
  357. package/dest/p2p/attestation_utils.d.ts +11 -1
  358. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  359. package/dest/p2p/attestation_utils.js +45 -0
  360. package/dest/p2p/block_proposal.d.ts +23 -15
  361. package/dest/p2p/block_proposal.d.ts.map +1 -1
  362. package/dest/p2p/block_proposal.js +46 -43
  363. package/dest/p2p/checkpoint_attestation.d.ts +11 -8
  364. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  365. package/dest/p2p/checkpoint_attestation.js +17 -24
  366. package/dest/p2p/checkpoint_proposal.d.ts +35 -22
  367. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  368. package/dest/p2p/checkpoint_proposal.js +52 -65
  369. package/dest/p2p/client_type.d.ts +2 -5
  370. package/dest/p2p/client_type.d.ts.map +1 -1
  371. package/dest/p2p/client_type.js +0 -7
  372. package/dest/p2p/consensus_payload.d.ts +27 -7
  373. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  374. package/dest/p2p/consensus_payload.js +40 -21
  375. package/dest/p2p/constants.d.ts +3 -1
  376. package/dest/p2p/constants.d.ts.map +1 -1
  377. package/dest/p2p/constants.js +1 -0
  378. package/dest/p2p/gossipable.d.ts +4 -4
  379. package/dest/p2p/gossipable.d.ts.map +1 -1
  380. package/dest/p2p/index.d.ts +1 -2
  381. package/dest/p2p/index.d.ts.map +1 -1
  382. package/dest/p2p/index.js +0 -1
  383. package/dest/p2p/peer_error.d.ts +3 -1
  384. package/dest/p2p/peer_error.d.ts.map +1 -1
  385. package/dest/p2p/peer_error.js +5 -0
  386. package/dest/p2p/signature_utils.d.ts +28 -19
  387. package/dest/p2p/signature_utils.d.ts.map +1 -1
  388. package/dest/p2p/signature_utils.js +118 -21
  389. package/dest/p2p/signed_txs.d.ts +15 -13
  390. package/dest/p2p/signed_txs.d.ts.map +1 -1
  391. package/dest/p2p/signed_txs.js +26 -24
  392. package/dest/p2p/topic_type.d.ts +3 -4
  393. package/dest/p2p/topic_type.d.ts.map +1 -1
  394. package/dest/p2p/topic_type.js +7 -24
  395. package/dest/parity/parity_base_private_inputs.d.ts +7 -3
  396. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  397. package/dest/parity/parity_base_private_inputs.js +7 -5
  398. package/dest/parity/parity_public_inputs.d.ts +7 -3
  399. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  400. package/dest/parity/parity_public_inputs.js +6 -3
  401. package/dest/proofs/chonk_proof.d.ts +46 -2
  402. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  403. package/dest/proofs/chonk_proof.js +85 -10
  404. package/dest/rollup/block_headers_hash.d.ts +1 -1
  405. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  406. package/dest/rollup/block_headers_hash.js +8 -2
  407. package/dest/rollup/checkpoint_header.d.ts +2 -2
  408. package/dest/rollup/checkpoint_header.js +2 -2
  409. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -6
  410. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  411. package/dest/rollup/checkpoint_rollup_public_inputs.js +2 -2
  412. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +2 -2
  413. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  414. package/dest/rollup/root_rollup_public_inputs.d.ts +6 -6
  415. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  416. package/dest/rollup/root_rollup_public_inputs.js +3 -3
  417. package/dest/slashing/helpers.d.ts +2 -2
  418. package/dest/slashing/helpers.d.ts.map +1 -1
  419. package/dest/slashing/helpers.js +6 -0
  420. package/dest/slashing/index.d.ts +2 -3
  421. package/dest/slashing/index.d.ts.map +1 -1
  422. package/dest/slashing/index.js +1 -2
  423. package/dest/slashing/serialization.d.ts +2 -6
  424. package/dest/slashing/serialization.d.ts.map +1 -1
  425. package/dest/slashing/serialization.js +0 -60
  426. package/dest/slashing/types.d.ts +10 -92
  427. package/dest/slashing/types.d.ts.map +1 -1
  428. package/dest/slashing/types.js +13 -15
  429. package/dest/slashing/{tally.d.ts → votes.d.ts} +8 -2
  430. package/dest/slashing/votes.d.ts.map +1 -0
  431. package/dest/slashing/{tally.js → votes.js} +35 -3
  432. package/dest/tests/factories.d.ts +5 -10
  433. package/dest/tests/factories.d.ts.map +1 -1
  434. package/dest/tests/factories.js +37 -56
  435. package/dest/tests/mocks.d.ts +14 -3
  436. package/dest/tests/mocks.d.ts.map +1 -1
  437. package/dest/tests/mocks.js +65 -46
  438. package/dest/timetable/index.d.ts +87 -0
  439. package/dest/timetable/index.d.ts.map +1 -0
  440. package/dest/timetable/index.js +243 -0
  441. package/dest/trees/nullifier_leaf.d.ts +2 -1
  442. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  443. package/dest/trees/nullifier_leaf.js +3 -0
  444. package/dest/trees/public_data_leaf.d.ts +2 -1
  445. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  446. package/dest/trees/public_data_leaf.js +7 -6
  447. package/dest/tx/block_header.d.ts +4 -2
  448. package/dest/tx/block_header.d.ts.map +1 -1
  449. package/dest/tx/block_header.js +7 -3
  450. package/dest/tx/capsule.d.ts +6 -2
  451. package/dest/tx/capsule.d.ts.map +1 -1
  452. package/dest/tx/capsule.js +9 -3
  453. package/dest/tx/fee_provider.d.ts +10 -0
  454. package/dest/tx/fee_provider.d.ts.map +1 -0
  455. package/dest/tx/fee_provider.js +1 -0
  456. package/dest/tx/global_variable_builder.d.ts +3 -4
  457. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  458. package/dest/tx/global_variables.d.ts +4 -4
  459. package/dest/tx/global_variables.d.ts.map +1 -1
  460. package/dest/tx/index.d.ts +2 -1
  461. package/dest/tx/index.d.ts.map +1 -1
  462. package/dest/tx/index.js +1 -0
  463. package/dest/tx/indexed_tx_effect.d.ts +1 -1
  464. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  465. package/dest/tx/indexed_tx_effect.js +1 -2
  466. package/dest/tx/private_execution_result.d.ts +6 -6
  467. package/dest/tx/private_execution_result.d.ts.map +1 -1
  468. package/dest/tx/private_execution_result.js +6 -6
  469. package/dest/tx/profiling.d.ts +17 -5
  470. package/dest/tx/profiling.d.ts.map +1 -1
  471. package/dest/tx/profiling.js +19 -9
  472. package/dest/tx/protocol_contracts.d.ts +1 -1
  473. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  474. package/dest/tx/protocol_contracts.js +2 -2
  475. package/dest/tx/public_simulation_output.d.ts +4 -2
  476. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  477. package/dest/tx/public_simulation_output.js +7 -3
  478. package/dest/tx/simulated_tx.d.ts +116 -5
  479. package/dest/tx/simulated_tx.d.ts.map +1 -1
  480. package/dest/tx/simulated_tx.js +7 -4
  481. package/dest/tx/tx.d.ts +8 -7
  482. package/dest/tx/tx.d.ts.map +1 -1
  483. package/dest/tx/tx.js +18 -6
  484. package/dest/tx/tx_receipt.d.ts +29 -6
  485. package/dest/tx/tx_receipt.d.ts.map +1 -1
  486. package/dest/tx/tx_receipt.js +23 -19
  487. package/dest/tx/tx_request.js +2 -2
  488. package/dest/tx/validator/empty_validator.d.ts +2 -2
  489. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  490. package/dest/tx/validator/error_texts.d.ts +10 -2
  491. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  492. package/dest/tx/validator/error_texts.js +11 -1
  493. package/dest/tx/validator/tx_validator.d.ts +2 -2
  494. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  495. package/dest/types/shared.d.ts +1 -10
  496. package/dest/types/shared.d.ts.map +1 -1
  497. package/dest/types/shared.js +0 -9
  498. package/dest/update-checker/index.d.ts +3 -2
  499. package/dest/update-checker/index.d.ts.map +1 -1
  500. package/dest/update-checker/index.js +2 -1
  501. package/dest/update-checker/package_version.d.ts +3 -0
  502. package/dest/update-checker/package_version.d.ts.map +1 -0
  503. package/dest/update-checker/package_version.js +24 -0
  504. package/dest/update-checker/version_checker.d.ts +25 -0
  505. package/dest/update-checker/version_checker.d.ts.map +1 -0
  506. package/dest/update-checker/version_checker.js +50 -0
  507. package/dest/validators/errors.d.ts +6 -1
  508. package/dest/validators/errors.d.ts.map +1 -1
  509. package/dest/validators/errors.js +7 -0
  510. package/dest/validators/schemas.d.ts +30 -30
  511. package/dest/validators/schemas.d.ts.map +1 -1
  512. package/dest/validators/schemas.js +4 -3
  513. package/dest/validators/types.d.ts +3 -3
  514. package/dest/validators/types.d.ts.map +1 -1
  515. package/dest/versioning/versioning.d.ts +4 -2
  516. package/dest/versioning/versioning.d.ts.map +1 -1
  517. package/dest/versioning/versioning.js +4 -1
  518. package/dest/vks/verification_key.d.ts +2 -137
  519. package/dest/vks/verification_key.d.ts.map +1 -1
  520. package/dest/vks/verification_key.js +5 -126
  521. package/dest/world-state/genesis_data.d.ts +11 -0
  522. package/dest/world-state/genesis_data.d.ts.map +1 -0
  523. package/dest/world-state/genesis_data.js +4 -0
  524. package/dest/world-state/index.d.ts +2 -1
  525. package/dest/world-state/index.d.ts.map +1 -1
  526. package/dest/world-state/index.js +1 -0
  527. package/dest/world-state/world_state_revision.d.ts +8 -1
  528. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  529. package/dest/world-state/world_state_revision.js +7 -1
  530. package/package.json +24 -12
  531. package/src/abi/abi.ts +25 -2
  532. package/src/abi/authorization_selector.ts +2 -8
  533. package/src/abi/buffer.ts +25 -4
  534. package/src/abi/decoder.ts +36 -82
  535. package/src/abi/encoder.ts +85 -6
  536. package/src/abi/event_metadata_definition.ts +2 -0
  537. package/src/abi/event_selector.ts +2 -8
  538. package/src/abi/function_call.ts +25 -3
  539. package/src/abi/function_selector.ts +4 -13
  540. package/src/abi/function_signature_decoder.ts +77 -0
  541. package/src/abi/index.ts +1 -0
  542. package/src/abi/note_selector.ts +3 -12
  543. package/src/abi/selector.ts +1 -1
  544. package/src/abi/utils.ts +25 -0
  545. package/src/auth_witness/auth_witness.ts +3 -3
  546. package/src/avm/revert_code.ts +26 -25
  547. package/src/aztec-address/index.ts +4 -10
  548. package/src/block/attestation_info.ts +11 -11
  549. package/src/block/block_data.ts +42 -0
  550. package/src/block/block_hash.ts +21 -14
  551. package/src/block/block_parameter.ts +35 -2
  552. package/src/block/in_block.ts +1 -1
  553. package/src/block/index.ts +1 -0
  554. package/src/block/l2_block.ts +13 -1
  555. package/src/block/l2_block_info.ts +8 -6
  556. package/src/block/l2_block_source.ts +88 -9
  557. package/src/block/l2_block_stream/interfaces.ts +6 -2
  558. package/src/block/l2_block_stream/l2_block_stream.ts +21 -0
  559. package/src/block/l2_block_stream/l2_tips_store_base.ts +25 -13
  560. package/src/block/proposal/attestations_and_signers.ts +32 -17
  561. package/src/block/test/l2_tips_store_test_suite.ts +9 -2
  562. package/src/checkpoint/checkpoint.ts +54 -17
  563. package/src/checkpoint/checkpoint_data.ts +91 -0
  564. package/src/checkpoint/index.ts +2 -0
  565. package/src/checkpoint/published_checkpoint.ts +3 -1
  566. package/src/checkpoint/validate.ts +230 -0
  567. package/src/config/chain-config.ts +9 -4
  568. package/src/config/index.ts +2 -0
  569. package/src/config/pipelining-config.ts +31 -0
  570. package/src/config/sequencer-config.ts +51 -0
  571. package/src/contract/contract_address.ts +7 -7
  572. package/src/contract/contract_class.ts +3 -3
  573. package/src/contract/contract_class_id.ts +7 -6
  574. package/src/contract/index.ts +0 -2
  575. package/src/contract/interfaces/contract_class.ts +2 -82
  576. package/src/contract/interfaces/node-info.ts +3 -0
  577. package/src/contract/private_function.ts +5 -3
  578. package/src/epoch-helpers/index.ts +30 -0
  579. package/src/file-store/factory.ts +13 -4
  580. package/src/file-store/http.ts +29 -10
  581. package/src/file-store/index.ts +1 -0
  582. package/src/file-store/local.ts +15 -5
  583. package/src/file-store/s3.ts +12 -3
  584. package/src/gas/README.md +154 -0
  585. package/src/gas/fee_math.ts +120 -0
  586. package/src/gas/gas_fees.ts +20 -1
  587. package/src/gas/gas_settings.ts +65 -12
  588. package/src/gas/index.ts +1 -0
  589. package/src/ha-signing/config.ts +159 -0
  590. package/src/ha-signing/index.ts +29 -0
  591. package/src/ha-signing/local_config.ts +46 -0
  592. package/src/ha-signing/types.ts +126 -0
  593. package/src/hash/hash.ts +75 -10
  594. package/src/hash/map_slot.ts +2 -2
  595. package/src/interfaces/allowed_element.ts +29 -9
  596. package/src/interfaces/archiver.ts +28 -2
  597. package/src/interfaces/aztec-node-admin.ts +34 -10
  598. package/src/interfaces/aztec-node-debug.ts +40 -0
  599. package/src/interfaces/aztec-node.ts +129 -85
  600. package/src/interfaces/block-builder.ts +61 -14
  601. package/src/interfaces/block_response.ts +79 -0
  602. package/src/interfaces/chain_tips.ts +24 -0
  603. package/src/interfaces/checkpoint_parameter.ts +22 -0
  604. package/src/interfaces/checkpoint_response.ts +84 -0
  605. package/src/interfaces/client.ts +6 -0
  606. package/src/interfaces/configs.ts +40 -8
  607. package/src/interfaces/l1_publish_info.ts +40 -0
  608. package/src/interfaces/l2_logs_source.ts +4 -1
  609. package/src/interfaces/merkle_tree_operations.ts +12 -21
  610. package/src/interfaces/p2p.ts +3 -14
  611. package/src/interfaces/prover-broker.ts +22 -0
  612. package/src/interfaces/prover-client.ts +17 -5
  613. package/src/interfaces/server.ts +5 -0
  614. package/src/interfaces/slasher.ts +4 -6
  615. package/src/interfaces/validator.ts +76 -36
  616. package/src/interfaces/world_state.ts +4 -3
  617. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  618. package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
  619. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  620. package/src/kernel/hints/index.ts +2 -2
  621. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  622. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  623. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  624. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  625. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  626. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  627. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  628. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  629. package/src/kernel/private_validation_requests.ts +8 -8
  630. package/src/keys/derivation.ts +8 -8
  631. package/src/keys/key_types.ts +6 -2
  632. package/src/keys/public_keys.ts +2 -2
  633. package/src/keys/utils.ts +5 -5
  634. package/src/kv-store/config.ts +36 -0
  635. package/src/kv-store/index.ts +1 -0
  636. package/src/l1-contracts/index.ts +1 -1
  637. package/src/logs/debug_log_store.ts +54 -0
  638. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +41 -22
  639. package/src/logs/index.ts +3 -1
  640. package/src/logs/log_filter.ts +5 -0
  641. package/src/logs/log_id.ts +16 -14
  642. package/src/logs/message_context.ts +17 -7
  643. package/src/logs/pending_tagged_log.ts +1 -3
  644. package/src/logs/pre_tag.ts +5 -5
  645. package/src/logs/public_log.ts +4 -2
  646. package/src/logs/shared_secret_derivation.ts +21 -10
  647. package/src/logs/siloed_tag.ts +23 -14
  648. package/src/logs/tag.ts +9 -9
  649. package/src/logs/tagging_index_range.ts +24 -0
  650. package/src/logs/tx_scoped_l2_log.ts +16 -0
  651. package/src/messaging/l1_to_l2_message.ts +12 -9
  652. package/src/messaging/l1_to_l2_message_source.ts +3 -1
  653. package/src/messaging/l2_to_l1_membership.ts +101 -36
  654. package/src/noir/index.ts +2 -2
  655. package/src/note/index.ts +0 -1
  656. package/src/note/note_dao.ts +1 -4
  657. package/src/p2p/attestation_utils.ts +56 -0
  658. package/src/p2p/block_proposal.ts +97 -39
  659. package/src/p2p/checkpoint_attestation.ts +26 -30
  660. package/src/p2p/checkpoint_proposal.ts +119 -84
  661. package/src/p2p/client_type.ts +0 -6
  662. package/src/p2p/consensus_payload.ts +59 -24
  663. package/src/p2p/constants.ts +3 -0
  664. package/src/p2p/gossipable.ts +4 -4
  665. package/src/p2p/index.ts +0 -1
  666. package/src/p2p/peer_error.ts +7 -0
  667. package/src/p2p/signature_utils.ts +110 -25
  668. package/src/p2p/signed_txs.ts +46 -28
  669. package/src/p2p/topic_type.ts +8 -15
  670. package/src/parity/parity_base_private_inputs.ts +10 -4
  671. package/src/parity/parity_public_inputs.ts +9 -2
  672. package/src/proofs/chonk_proof.ts +91 -5
  673. package/src/rollup/block_headers_hash.ts +11 -2
  674. package/src/rollup/checkpoint_header.ts +2 -2
  675. package/src/rollup/checkpoint_rollup_public_inputs.ts +5 -5
  676. package/src/rollup/root_rollup_public_inputs.ts +7 -7
  677. package/src/slashing/helpers.ts +8 -0
  678. package/src/slashing/index.ts +1 -2
  679. package/src/slashing/serialization.ts +1 -81
  680. package/src/slashing/types.ts +17 -35
  681. package/src/slashing/{tally.ts → votes.ts} +41 -2
  682. package/src/tests/factories.ts +42 -68
  683. package/src/tests/mocks.ts +103 -53
  684. package/src/timetable/index.ts +361 -0
  685. package/src/trees/nullifier_leaf.ts +4 -0
  686. package/src/trees/public_data_leaf.ts +11 -5
  687. package/src/tx/block_header.ts +10 -4
  688. package/src/tx/capsule.ts +10 -2
  689. package/src/tx/fee_provider.ts +10 -0
  690. package/src/tx/global_variable_builder.ts +2 -3
  691. package/src/tx/global_variables.ts +3 -3
  692. package/src/tx/index.ts +1 -0
  693. package/src/tx/indexed_tx_effect.ts +1 -2
  694. package/src/tx/private_execution_result.ts +5 -5
  695. package/src/tx/profiling.ts +18 -9
  696. package/src/tx/protocol_contracts.ts +2 -2
  697. package/src/tx/public_simulation_output.ts +4 -0
  698. package/src/tx/simulated_tx.ts +14 -3
  699. package/src/tx/tx.ts +22 -13
  700. package/src/tx/tx_receipt.ts +28 -16
  701. package/src/tx/tx_request.ts +2 -2
  702. package/src/tx/validator/empty_validator.ts +1 -1
  703. package/src/tx/validator/error_texts.ts +13 -1
  704. package/src/tx/validator/tx_validator.ts +1 -1
  705. package/src/types/shared.ts +0 -10
  706. package/src/update-checker/index.ts +2 -1
  707. package/src/update-checker/package_version.ts +30 -0
  708. package/src/update-checker/version_checker.ts +65 -0
  709. package/src/validators/errors.ts +9 -0
  710. package/src/validators/schemas.ts +8 -1
  711. package/src/validators/types.ts +5 -4
  712. package/src/versioning/versioning.ts +4 -1
  713. package/src/vks/verification_key.ts +5 -184
  714. package/src/world-state/genesis_data.ts +15 -0
  715. package/src/world-state/index.ts +1 -0
  716. package/src/world-state/world_state_revision.ts +9 -1
  717. package/dest/abi/mocked_keys.d.ts +0 -2
  718. package/dest/abi/mocked_keys.d.ts.map +0 -1
  719. package/dest/abi/mocked_keys.js +0 -1
  720. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  721. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  722. package/dest/contract/private_function_membership_proof.js +0 -124
  723. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  724. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  725. package/dest/contract/utility_function_membership_proof.js +0 -87
  726. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  727. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  728. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  729. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  730. package/dest/l1-contracts/slash_factory.js +0 -158
  731. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  732. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  733. package/dest/note/notes_filter.d.ts +0 -27
  734. package/dest/note/notes_filter.d.ts.map +0 -1
  735. package/dest/note/notes_filter.js +0 -11
  736. package/dest/slashing/empire.d.ts +0 -31
  737. package/dest/slashing/empire.d.ts.map +0 -1
  738. package/dest/slashing/empire.js +0 -85
  739. package/dest/slashing/tally.d.ts.map +0 -1
  740. package/dest/update-checker/update-checker.d.ts +0 -49
  741. package/dest/update-checker/update-checker.d.ts.map +0 -1
  742. package/dest/update-checker/update-checker.js +0 -130
  743. package/src/abi/mocked_keys.ts +0 -2
  744. package/src/contract/private_function_membership_proof.ts +0 -167
  745. package/src/contract/utility_function_membership_proof.ts +0 -118
  746. package/src/l1-contracts/slash_factory.ts +0 -180
  747. package/src/note/notes_filter.ts +0 -38
  748. package/src/slashing/empire.ts +0 -102
  749. package/src/update-checker/update-checker.ts +0 -166
@@ -1,7 +1,6 @@
1
- import { SlotNumber } from '@aztec/foundation/branded-types';
2
- import { Buffer32 } from '@aztec/foundation/buffer';
1
+ import { CheckpointAttestationHash, SlotNumber } from '@aztec/foundation/branded-types';
2
+ import type { BaseBuffer32 } from '@aztec/foundation/buffer';
3
3
  import { keccak256 } from '@aztec/foundation/crypto/keccak';
4
- import { tryRecoverAddress } from '@aztec/foundation/crypto/secp256k1-signer';
5
4
  import type { Fr } from '@aztec/foundation/curves/bn254';
6
5
  import type { EthAddress } from '@aztec/foundation/eth-address';
7
6
  import { Signature } from '@aztec/foundation/eth-signature';
@@ -13,14 +12,10 @@ import type { ZodFor } from '../schemas/index.js';
13
12
  import { CheckpointProposal } from './checkpoint_proposal.js';
14
13
  import { ConsensusPayload } from './consensus_payload.js';
15
14
  import { Gossipable } from './gossipable.js';
16
- import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from './signature_utils.js';
15
+ import { type CoordinationSignatureContext, recoverCoordinationSigner } from './signature_utils.js';
17
16
  import { TopicType } from './topic_type.js';
18
17
 
19
- export class CheckpointAttestationHash extends Buffer32 {
20
- constructor(hash: Buffer) {
21
- super(hash);
22
- }
23
- }
18
+ export type { CheckpointAttestationHash } from '@aztec/foundation/branded-types';
24
19
 
25
20
  /**
26
21
  * CheckpointAttestation
@@ -31,8 +26,8 @@ export class CheckpointAttestationHash extends Buffer32 {
31
26
  export class CheckpointAttestation extends Gossipable {
32
27
  static override p2pTopic = TopicType.checkpoint_attestation;
33
28
 
34
- private sender: EthAddress | undefined;
35
- private proposer: EthAddress | undefined;
29
+ private cachedSender: EthAddress | undefined | null = undefined;
30
+ private cachedProposer: EthAddress | undefined | null = undefined;
36
31
 
37
32
  constructor(
38
33
  /** The payload of the message, and what the signature is over */
@@ -57,8 +52,8 @@ export class CheckpointAttestation extends Gossipable {
57
52
  .transform(obj => new CheckpointAttestation(obj.payload, obj.signature, obj.proposerSignature));
58
53
  }
59
54
 
60
- override generateP2PMessageIdentifier(): Promise<Buffer32> {
61
- return Promise.resolve(new CheckpointAttestationHash(keccak256(this.signature.toBuffer())));
55
+ override generateP2PMessageIdentifier(): Promise<BaseBuffer32> {
56
+ return Promise.resolve(CheckpointAttestationHash.fromBuffer(keccak256(this.signature.toBuffer())));
62
57
  }
63
58
 
64
59
  get archive(): Fr {
@@ -69,22 +64,19 @@ export class CheckpointAttestation extends Gossipable {
69
64
  return this.payload.header.slotNumber;
70
65
  }
71
66
 
67
+ get signatureContext(): CoordinationSignatureContext {
68
+ return this.payload.signatureContext;
69
+ }
70
+
72
71
  /**
73
72
  * Lazily evaluate and cache the signer of the attestation
74
73
  * @returns The signer of the attestation, or undefined if signature recovery fails
75
74
  */
76
75
  getSender(): EthAddress | undefined {
77
- if (!this.sender) {
78
- // Recover the sender from the attestation
79
- const hashed = getHashedSignaturePayloadEthSignedMessage(
80
- this.payload,
81
- SignatureDomainSeparator.checkpointAttestation,
82
- );
83
- // Cache the sender for later use
84
- this.sender = tryRecoverAddress(hashed, this.signature);
76
+ if (this.cachedSender === undefined) {
77
+ this.cachedSender = recoverCoordinationSigner(this.payload, this.signature) ?? null;
85
78
  }
86
-
87
- return this.sender;
79
+ return this.cachedSender ?? undefined;
88
80
  }
89
81
 
90
82
  /**
@@ -92,20 +84,24 @@ export class CheckpointAttestation extends Gossipable {
92
84
  * @returns The proposer of the checkpoint
93
85
  */
94
86
  getProposer(): EthAddress | undefined {
95
- if (!this.proposer) {
87
+ if (this.cachedProposer === undefined) {
96
88
  // Create a temporary CheckpointProposal to recover the proposer address.
97
89
  // We need to use CheckpointProposal because it has a different getPayloadToSign()
98
90
  // implementation than ConsensusPayload (uses serializeToBuffer vs ABI encoding).
99
- const proposal = new CheckpointProposal(this.payload.header, this.payload.archive, this.proposerSignature);
100
- // Cache the proposer for later use
101
- this.proposer = proposal.getSender();
91
+ const proposal = new CheckpointProposal(
92
+ this.payload.header,
93
+ this.payload.archive,
94
+ this.payload.feeAssetPriceModifier,
95
+ this.proposerSignature,
96
+ this.payload.signatureContext,
97
+ );
98
+ this.cachedProposer = proposal.getSender() ?? null;
102
99
  }
103
-
104
- return this.proposer;
100
+ return this.cachedProposer ?? undefined;
105
101
  }
106
102
 
107
103
  getPayload(): Buffer {
108
- return this.payload.getPayloadToSign(SignatureDomainSeparator.checkpointAttestation);
104
+ return this.payload.getPayloadToSign();
109
105
  }
110
106
 
111
107
  toBuffer(): Buffer {
@@ -1,15 +1,21 @@
1
- import { BlockNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
2
- import { Buffer32 } from '@aztec/foundation/buffer';
1
+ import {
2
+ type CheckpointNumber,
3
+ CheckpointProposalHash,
4
+ IndexWithinCheckpoint,
5
+ SlotNumber,
6
+ } from '@aztec/foundation/branded-types';
7
+ import type { BaseBuffer32 } from '@aztec/foundation/buffer';
3
8
  import { keccak256 } from '@aztec/foundation/crypto/keccak';
4
- import { tryRecoverAddress } from '@aztec/foundation/crypto/secp256k1-signer';
5
9
  import { Fr } from '@aztec/foundation/curves/bn254';
6
10
  import type { EthAddress } from '@aztec/foundation/eth-address';
7
11
  import { Signature } from '@aztec/foundation/eth-signature';
8
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
9
- import { DutyType, type SigningContext } from '@aztec/validator-ha-signer/types';
12
+ import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
13
+
14
+ import type { TypedDataDefinition } from 'viem';
10
15
 
11
16
  import type { L2BlockInfo } from '../block/l2_block_info.js';
12
17
  import { MAX_TXS_PER_BLOCK } from '../deserialization/index.js';
18
+ import { DutyType, type SigningContext } from '../ha-signing/index.js';
13
19
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
14
20
  import { BlockHeader } from '../tx/block_header.js';
15
21
  import { TxHash } from '../tx/index.js';
@@ -17,19 +23,19 @@ import type { Tx } from '../tx/tx.js';
17
23
  import { BlockProposal } from './block_proposal.js';
18
24
  import { Gossipable } from './gossipable.js';
19
25
  import {
20
- SignatureDomainSeparator,
21
- getHashedSignaturePayload,
22
- getHashedSignaturePayloadEthSignedMessage,
26
+ type CoordinationSignatureContext,
27
+ type CoordinationSignatureType,
28
+ EMPTY_COORDINATION_SIGNATURE_CONTEXT,
29
+ type Signable,
30
+ getCoordinationSignatureTypedData,
31
+ readCoordinationSignatureContext,
32
+ recoverCoordinationSigner,
33
+ serializeCoordinationSignatureContext,
23
34
  } from './signature_utils.js';
24
35
  import { SignedTxs } from './signed_txs.js';
25
36
  import { TopicType } from './topic_type.js';
26
37
 
27
- // REFACTOR(palla): Use a branded type instead of a subclass of Buffer32
28
- export class CheckpointProposalHash extends Buffer32 {
29
- constructor(hash: Buffer) {
30
- super(hash);
31
- }
32
- }
38
+ export type { CheckpointProposalHash } from '@aztec/foundation/branded-types';
33
39
 
34
40
  export type CheckpointProposalOptions = {
35
41
  /**
@@ -69,10 +75,12 @@ export type CheckpointLastBlock = Omit<CheckpointLastBlockData, 'txs'> & {
69
75
  * It includes the aggregated checkpoint header that validators will attest to, plus optionally
70
76
  * the last block's info for nodes to re-execute. This marks the completion of a slot's worth of blocks.
71
77
  */
72
- export class CheckpointProposal extends Gossipable {
78
+ export class CheckpointProposal extends Gossipable implements Signable {
73
79
  static override p2pTopic = TopicType.checkpoint_proposal;
74
80
 
75
- private sender: EthAddress | undefined;
81
+ readonly primaryType: CoordinationSignatureType = 'CheckpointProposal';
82
+
83
+ private cachedSender: EthAddress | undefined | null = undefined;
76
84
 
77
85
  constructor(
78
86
  /** The aggregated checkpoint header for consensus */
@@ -81,40 +89,29 @@ export class CheckpointProposal extends Gossipable {
81
89
  /** Archive root after this checkpoint is applied */
82
90
  public readonly archive: Fr,
83
91
 
84
- /** The proposer's signature over the checkpoint payload (checkpointHeader + archive) */
92
+ /** The fee asset price modifier in basis points (from oracle) */
93
+ public readonly feeAssetPriceModifier: bigint,
94
+
95
+ /** The proposer's signature over the checkpoint payload (checkpointHeader + archive + feeAssetPriceModifier) */
85
96
  public readonly signature: Signature,
86
97
 
98
+ /** The signing domain (chainId + rollupAddress) the signature is bound to */
99
+ public readonly signatureContext: CoordinationSignatureContext,
100
+
87
101
  /** Optional last block info, including its own signature for BlockProposal extraction */
88
102
  public readonly lastBlock?: CheckpointLastBlock,
89
103
  ) {
90
104
  super();
91
105
  }
92
106
 
93
- override generateP2PMessageIdentifier(): Promise<Buffer32> {
94
- return Promise.resolve(new CheckpointProposalHash(keccak256(this.signature.toBuffer())));
107
+ override generateP2PMessageIdentifier(): Promise<BaseBuffer32> {
108
+ return Promise.resolve(CheckpointProposalHash.fromBuffer(keccak256(this.signature.toBuffer())));
95
109
  }
96
110
 
97
111
  get slotNumber(): SlotNumber {
98
112
  return this.checkpointHeader.slotNumber;
99
113
  }
100
114
 
101
- get blockNumber(): BlockNumber {
102
- if (!this.lastBlock) {
103
- throw new Error('Cannot get blockNumber without lastBlock');
104
- }
105
- return this.lastBlock.blockHeader.getBlockNumber();
106
- }
107
-
108
- /** Convenience getter for txHashes from lastBlock */
109
- get txHashes(): TxHash[] {
110
- return this.lastBlock?.txHashes ?? [];
111
- }
112
-
113
- /** Convenience getter for txs from lastBlock */
114
- get txs(): Tx[] | undefined {
115
- return this.lastBlock?.signedTxs?.txs;
116
- }
117
-
118
115
  /**
119
116
  * Extract a BlockProposal from the last block info.
120
117
  * Uses inHash from checkpointHeader.contentCommitment.inHash
@@ -131,6 +128,7 @@ export class CheckpointProposal extends Gossipable {
131
128
  this.archive,
132
129
  this.lastBlock.txHashes,
133
130
  this.lastBlock.signature,
131
+ this.signatureContext,
134
132
  this.lastBlock.signedTxs,
135
133
  );
136
134
  }
@@ -148,52 +146,58 @@ export class CheckpointProposal extends Gossipable {
148
146
  };
149
147
  }
150
148
 
149
+ toCheckpointInfo() {
150
+ return {
151
+ slotNumber: this.slotNumber,
152
+ archive: this.archive,
153
+ lastBlockNumber: this.lastBlock?.blockHeader.getBlockNumber(),
154
+ lastBlockIndex: this.lastBlock?.indexWithinCheckpoint,
155
+ blockHeadersHash: this.checkpointHeader.blockHeadersHash,
156
+ };
157
+ }
158
+
151
159
  /**
152
160
  * Get the payload to sign for this checkpoint proposal.
153
- * The signature is over the checkpoint header + archive root (for consensus).
161
+ * The signature is over the checkpoint header + archive root + feeAssetPriceModifier (for consensus).
154
162
  */
155
- getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer {
156
- return serializeToBuffer([domainSeparator, this.checkpointHeader, this.archive]);
163
+ getPayloadToSign(): Buffer {
164
+ return serializeToBuffer([this.checkpointHeader, this.archive, serializeSignedBigInt(this.feeAssetPriceModifier)]);
157
165
  }
158
166
 
159
167
  static async createProposalFromSigner(
160
168
  checkpointHeader: CheckpointHeader,
161
169
  archiveRoot: Fr,
162
- lastBlockInfo: CheckpointLastBlockData | undefined,
163
- payloadSigner: (payload: Buffer32, context: SigningContext) => Promise<Signature>,
170
+ checkpointNumber: CheckpointNumber,
171
+ feeAssetPriceModifier: bigint,
172
+ lastBlockProposal: BlockProposal | undefined,
173
+ signatureContext: CoordinationSignatureContext,
174
+ payloadSigner: (typedData: TypedDataDefinition, context: SigningContext) => Promise<Signature>,
164
175
  ): Promise<CheckpointProposal> {
165
176
  // Sign the checkpoint payload with CHECKPOINT_PROPOSAL duty type
166
- const tempProposal = new CheckpointProposal(checkpointHeader, archiveRoot, Signature.empty(), undefined);
167
- const checkpointHash = getHashedSignaturePayload(tempProposal, SignatureDomainSeparator.checkpointProposal);
168
-
177
+ const tempProposal = new CheckpointProposal(
178
+ checkpointHeader,
179
+ archiveRoot,
180
+ feeAssetPriceModifier,
181
+ Signature.empty(),
182
+ signatureContext,
183
+ );
169
184
  const checkpointContext: SigningContext = {
170
185
  slot: checkpointHeader.slotNumber,
171
- blockNumber: lastBlockInfo?.blockHeader?.globalVariables.blockNumber ?? BlockNumber(0),
186
+ checkpointNumber,
172
187
  dutyType: DutyType.CHECKPOINT_PROPOSAL,
173
188
  };
174
- const checkpointSignature = await payloadSigner(checkpointHash, checkpointContext);
175
189
 
176
- if (!lastBlockInfo) {
177
- return new CheckpointProposal(checkpointHeader, archiveRoot, checkpointSignature);
178
- }
190
+ const typedData = getCoordinationSignatureTypedData(tempProposal);
191
+ const checkpointSignature = await payloadSigner(typedData, checkpointContext);
179
192
 
180
- const lastBlockProposal = await BlockProposal.createProposalFromSigner(
181
- lastBlockInfo.blockHeader,
182
- lastBlockInfo.indexWithinCheckpoint,
183
- checkpointHeader.inHash,
193
+ return new CheckpointProposal(
194
+ checkpointHeader,
184
195
  archiveRoot,
185
- lastBlockInfo.txHashes,
186
- lastBlockInfo.txs,
187
- payloadSigner,
196
+ feeAssetPriceModifier,
197
+ checkpointSignature,
198
+ signatureContext,
199
+ lastBlockProposal,
188
200
  );
189
-
190
- return new CheckpointProposal(checkpointHeader, archiveRoot, checkpointSignature, {
191
- blockHeader: lastBlockInfo.blockHeader,
192
- indexWithinCheckpoint: lastBlockInfo.indexWithinCheckpoint,
193
- txHashes: lastBlockInfo.txHashes,
194
- signature: lastBlockProposal.signature,
195
- signedTxs: lastBlockProposal.signedTxs,
196
- });
197
201
  }
198
202
 
199
203
  /**
@@ -202,32 +206,36 @@ export class CheckpointProposal extends Gossipable {
202
206
  * @returns The sender address, or undefined if signature recovery fails or senders don't match
203
207
  */
204
208
  getSender(): EthAddress | undefined {
205
- if (!this.sender) {
206
- const hashed = getHashedSignaturePayloadEthSignedMessage(this, SignatureDomainSeparator.checkpointProposal);
207
- const checkpointSender = tryRecoverAddress(hashed, this.signature);
209
+ if (this.cachedSender === undefined) {
210
+ const checkpointSender = recoverCoordinationSigner(this, this.signature);
208
211
 
209
- // If there's a lastBlock, verify the block proposal sender matches
210
212
  if (checkpointSender && this.lastBlock) {
211
213
  const blockProposal = this.getBlockProposal();
212
214
  const blockSender = blockProposal?.getSender();
213
215
  if (!blockSender || !blockSender.equals(checkpointSender)) {
214
- return undefined; // Sender mismatch - fail
216
+ this.cachedSender = null;
217
+ return undefined;
215
218
  }
216
219
  }
217
220
 
218
- // Cache the sender for later use
219
- this.sender = checkpointSender;
221
+ this.cachedSender = checkpointSender ?? null;
220
222
  }
221
223
 
222
- return this.sender;
224
+ return this.cachedSender ?? undefined;
223
225
  }
224
226
 
225
227
  getPayload() {
226
- return this.getPayloadToSign(SignatureDomainSeparator.checkpointProposal);
228
+ return this.getPayloadToSign();
227
229
  }
228
230
 
229
231
  toBuffer(): Buffer {
230
- const buffer: any[] = [this.checkpointHeader, this.archive, this.signature];
232
+ const buffer: any[] = [
233
+ this.checkpointHeader,
234
+ this.archive,
235
+ serializeSignedBigInt(this.feeAssetPriceModifier),
236
+ this.signature,
237
+ serializeCoordinationSignatureContext(this.signatureContext),
238
+ ];
231
239
 
232
240
  if (this.lastBlock) {
233
241
  buffer.push(1); // hasLastBlock = true
@@ -254,7 +262,9 @@ export class CheckpointProposal extends Gossipable {
254
262
 
255
263
  const checkpointHeader = reader.readObject(CheckpointHeader);
256
264
  const archive = reader.readObject(Fr);
265
+ const feeAssetPriceModifier = reader.readInt256();
257
266
  const signature = reader.readObject(Signature);
267
+ const signatureContext = readCoordinationSignatureContext(reader);
258
268
 
259
269
  const hasLastBlock = reader.readNumber();
260
270
 
@@ -276,7 +286,7 @@ export class CheckpointProposal extends Gossipable {
276
286
  }
277
287
  }
278
288
 
279
- return new CheckpointProposal(checkpointHeader, archive, signature, {
289
+ return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, signatureContext, {
280
290
  blockHeader,
281
291
  indexWithinCheckpoint,
282
292
  txHashes,
@@ -285,7 +295,7 @@ export class CheckpointProposal extends Gossipable {
285
295
  });
286
296
  }
287
297
 
288
- return new CheckpointProposal(checkpointHeader, archive, signature);
298
+ return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, signatureContext);
289
299
  }
290
300
 
291
301
  getSize(): number {
@@ -293,6 +303,9 @@ export class CheckpointProposal extends Gossipable {
293
303
  this.checkpointHeader.toBuffer().length +
294
304
  this.archive.size +
295
305
  this.signature.getSize() +
306
+ 8 /* feeAssetPriceModifier */ +
307
+ 4 /* chainId */ +
308
+ 20 /* rollupAddress */ +
296
309
  4; /* hasLastBlock flag */
297
310
 
298
311
  if (this.lastBlock) {
@@ -310,16 +323,29 @@ export class CheckpointProposal extends Gossipable {
310
323
  }
311
324
 
312
325
  static empty(): CheckpointProposal {
313
- return new CheckpointProposal(CheckpointHeader.empty(), Fr.ZERO, Signature.empty());
326
+ return new CheckpointProposal(
327
+ CheckpointHeader.empty(),
328
+ Fr.ZERO,
329
+ 0n,
330
+ Signature.empty(),
331
+ EMPTY_COORDINATION_SIGNATURE_CONTEXT,
332
+ );
314
333
  }
315
334
 
316
335
  static random(): CheckpointProposal {
317
- return new CheckpointProposal(CheckpointHeader.random(), Fr.random(), Signature.random(), {
318
- blockHeader: BlockHeader.random(),
319
- indexWithinCheckpoint: IndexWithinCheckpoint(Math.floor(Math.random() * 5)),
320
- txHashes: [TxHash.random(), TxHash.random()],
321
- signature: Signature.random(),
322
- });
336
+ return new CheckpointProposal(
337
+ CheckpointHeader.random(),
338
+ Fr.random(),
339
+ 0n,
340
+ Signature.random(),
341
+ EMPTY_COORDINATION_SIGNATURE_CONTEXT,
342
+ {
343
+ blockHeader: BlockHeader.random(),
344
+ indexWithinCheckpoint: IndexWithinCheckpoint(Math.floor(Math.random() * 5)),
345
+ txHashes: [TxHash.random(), TxHash.random()],
346
+ signature: Signature.random(),
347
+ },
348
+ );
323
349
  }
324
350
 
325
351
  toInspect() {
@@ -327,6 +353,9 @@ export class CheckpointProposal extends Gossipable {
327
353
  checkpointHeader: this.checkpointHeader.toInspect(),
328
354
  archive: this.archive.toString(),
329
355
  signature: this.signature.toString(),
356
+ feeAssetPriceModifier: this.feeAssetPriceModifier.toString(),
357
+ chainId: this.signatureContext.chainId,
358
+ rollupAddress: this.signatureContext.rollupAddress.toString(),
330
359
  lastBlock: this.lastBlock
331
360
  ? {
332
361
  blockHeader: this.lastBlock.blockHeader.toInspect(),
@@ -343,7 +372,13 @@ export class CheckpointProposal extends Gossipable {
343
372
  * Used when the lastBlock has been extracted and stored separately.
344
373
  */
345
374
  toCore(): CheckpointProposalCore {
346
- return new CheckpointProposal(this.checkpointHeader, this.archive, this.signature);
375
+ return new CheckpointProposal(
376
+ this.checkpointHeader,
377
+ this.archive,
378
+ this.feeAssetPriceModifier,
379
+ this.signature,
380
+ this.signatureContext,
381
+ );
347
382
  }
348
383
  }
349
384
 
@@ -1,6 +0,0 @@
1
- export enum P2PClientType {
2
- // Full p2p clients will subscribe to all gossip topics
3
- Full,
4
- // Prove p2p clients will only subscribe to transaction and proving topics
5
- Prover,
6
- }
@@ -1,6 +1,6 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { schemas } from '@aztec/foundation/schemas';
3
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
+ import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
4
4
  import { hexToBuffer } from '@aztec/foundation/string';
5
5
  import type { FieldsOf } from '@aztec/foundation/types';
6
6
 
@@ -10,10 +10,21 @@ import { z } from 'zod';
10
10
  import type { Checkpoint } from '../checkpoint/checkpoint.js';
11
11
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
12
12
  import type { CheckpointProposal, CheckpointProposalCore } from './checkpoint_proposal.js';
13
- import type { Signable, SignatureDomainSeparator } from './signature_utils.js';
13
+ import {
14
+ type CoordinationSignatureContext,
15
+ type CoordinationSignatureType,
16
+ EMPTY_COORDINATION_SIGNATURE_CONTEXT,
17
+ type Signable,
18
+ coordinationSignatureContextEquals,
19
+ coordinationSignatureContextSchema,
20
+ readCoordinationSignatureContext,
21
+ serializeCoordinationSignatureContext,
22
+ } from './signature_utils.js';
14
23
 
15
24
  /** Checkpoint consensus payload as signed by validators and verified on L1. */
16
25
  export class ConsensusPayload implements Signable {
26
+ readonly primaryType: CoordinationSignatureType = 'CheckpointAttestation';
27
+
17
28
  private size: number | undefined;
18
29
 
19
30
  constructor(
@@ -21,6 +32,10 @@ export class ConsensusPayload implements Signable {
21
32
  public readonly header: CheckpointHeader,
22
33
  /** The archive root after the block is added */
23
34
  public readonly archive: Fr,
35
+ /** The fee asset price modifier in basis points (from oracle) */
36
+ public readonly feeAssetPriceModifier: bigint,
37
+ /** The signing domain (chainId + rollupAddress) the signature is bound to */
38
+ public readonly signatureContext: CoordinationSignatureContext,
24
39
  ) {}
25
40
 
26
41
  static get schema() {
@@ -28,63 +43,80 @@ export class ConsensusPayload implements Signable {
28
43
  .object({
29
44
  header: CheckpointHeader.schema,
30
45
  archive: schemas.Fr,
46
+ feeAssetPriceModifier: schemas.BigInt,
47
+ signatureContext: coordinationSignatureContextSchema,
31
48
  })
32
- .transform(obj => new ConsensusPayload(obj.header, obj.archive));
49
+ .transform(obj => new ConsensusPayload(obj.header, obj.archive, obj.feeAssetPriceModifier, obj.signatureContext));
33
50
  }
34
51
 
35
- static getFields(fields: FieldsOf<ConsensusPayload>) {
36
- return [fields.header, fields.archive] as const;
52
+ static getFields(fields: Omit<FieldsOf<ConsensusPayload>, 'primaryType'>) {
53
+ return [fields.header, fields.archive, fields.feeAssetPriceModifier, fields.signatureContext] as const;
37
54
  }
38
55
 
39
- getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer {
56
+ getPayloadToSign(): Buffer {
57
+ // Matches the L1 ProposePayload struct in ProposeLib.sol.
40
58
  const abi = parseAbiParameters(
41
- 'uint8, ' + //domainSeperator
42
- '(' +
59
+ '(' +
43
60
  'bytes32, ' + // archive
44
61
  '(int256), ' + // oracleInput
45
62
  'bytes32' + // headerHash
46
63
  ')',
47
64
  );
48
65
  const archiveRoot = this.archive.toString();
49
-
50
66
  const headerHash = this.header.hash().toString();
51
- const encodedData = encodeAbiParameters(abi, [
52
- domainSeparator,
53
- [archiveRoot, [0n] /* @todo See #9963 */, headerHash],
54
- ] as const);
67
+ const encodedData = encodeAbiParameters(abi, [[archiveRoot, [this.feeAssetPriceModifier], headerHash]] as const);
55
68
 
56
69
  return hexToBuffer(encodedData);
57
70
  }
58
71
 
59
72
  toBuffer(): Buffer {
60
- return serializeToBuffer([this.header, this.archive]);
73
+ return serializeToBuffer([
74
+ this.header,
75
+ this.archive,
76
+ serializeSignedBigInt(this.feeAssetPriceModifier),
77
+ serializeCoordinationSignatureContext(this.signatureContext),
78
+ ]);
61
79
  }
62
80
 
63
81
  public equals(other: ConsensusPayload | CheckpointProposal | CheckpointProposalCore): boolean {
64
82
  const otherHeader = 'checkpointHeader' in other ? other.checkpointHeader : other.header;
65
- return this.header.equals(otherHeader) && this.archive.equals(other.archive);
83
+ const otherModifier = 'feeAssetPriceModifier' in other ? other.feeAssetPriceModifier : 0n;
84
+ return (
85
+ this.header.equals(otherHeader) &&
86
+ this.archive.equals(other.archive) &&
87
+ this.feeAssetPriceModifier === otherModifier &&
88
+ coordinationSignatureContextEquals(this.signatureContext, other.signatureContext)
89
+ );
66
90
  }
67
91
 
68
92
  static fromBuffer(buf: Buffer | BufferReader): ConsensusPayload {
69
93
  const reader = BufferReader.asReader(buf);
70
- const payload = new ConsensusPayload(reader.readObject(CheckpointHeader), reader.readObject(Fr));
71
- return payload;
94
+ const header = reader.readObject(CheckpointHeader);
95
+ const archive = reader.readObject(Fr);
96
+ const feeAssetPriceModifier = reader.readInt256();
97
+ const signatureContext = readCoordinationSignatureContext(reader);
98
+ return new ConsensusPayload(header, archive, feeAssetPriceModifier, signatureContext);
72
99
  }
73
100
 
74
- static fromFields(fields: FieldsOf<ConsensusPayload>): ConsensusPayload {
75
- return new ConsensusPayload(fields.header, fields.archive);
101
+ static fromFields(fields: Omit<FieldsOf<ConsensusPayload>, 'primaryType'>): ConsensusPayload {
102
+ return new ConsensusPayload(fields.header, fields.archive, fields.feeAssetPriceModifier, fields.signatureContext);
76
103
  }
77
104
 
78
- static fromCheckpoint(checkpoint: Checkpoint): ConsensusPayload {
79
- return new ConsensusPayload(checkpoint.header, checkpoint.archive.root);
105
+ static fromCheckpoint(checkpoint: Checkpoint, signatureContext: CoordinationSignatureContext): ConsensusPayload {
106
+ return new ConsensusPayload(
107
+ checkpoint.header,
108
+ checkpoint.archive.root,
109
+ checkpoint.feeAssetPriceModifier,
110
+ signatureContext,
111
+ );
80
112
  }
81
113
 
82
114
  static empty(): ConsensusPayload {
83
- return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO);
115
+ return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, 0n, EMPTY_COORDINATION_SIGNATURE_CONTEXT);
84
116
  }
85
117
 
86
118
  static random(): ConsensusPayload {
87
- return new ConsensusPayload(CheckpointHeader.random(), Fr.random());
119
+ return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), 0n, EMPTY_COORDINATION_SIGNATURE_CONTEXT);
88
120
  }
89
121
 
90
122
  /**
@@ -104,10 +136,13 @@ export class ConsensusPayload implements Signable {
104
136
  return {
105
137
  header: this.header.toInspect(),
106
138
  archive: this.archive.toString(),
139
+ feeAssetPriceModifier: this.feeAssetPriceModifier.toString(),
140
+ chainId: this.signatureContext.chainId,
141
+ rollupAddress: this.signatureContext.rollupAddress.toString(),
107
142
  };
108
143
  }
109
144
 
110
145
  toString() {
111
- return `header: ${this.header.toString()}, archive: ${this.archive.toString()}}`;
146
+ return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, feeAssetPriceModifier: ${this.feeAssetPriceModifier}, chainId: ${this.signatureContext.chainId}, rollupAddress: ${this.signatureContext.rollupAddress.toString()}`;
112
147
  }
113
148
  }
@@ -1,3 +1,6 @@
1
1
  export const MAX_TX_SIZE_KB: number = 512;
2
2
 
3
3
  export const MAX_MESSAGE_SIZE_KB: number = 10 * 1024;
4
+
5
+ /** Maximum size for L2Block response (contains TxEffects, not full Txs with proofs) */
6
+ export const MAX_L2_BLOCK_SIZE_KB: number = 3 * 1024; // 3 MB
@@ -1,4 +1,4 @@
1
- import { Buffer32 } from '@aztec/foundation/buffer';
1
+ import { BaseBuffer32 } from '@aztec/foundation/buffer';
2
2
  import { BufferReader, bigintToUInt64BE, serializeToBuffer } from '@aztec/foundation/serialize';
3
3
 
4
4
  import type { TopicType } from './topic_type.js';
@@ -46,7 +46,7 @@ export class P2PMessage {
46
46
  * Any class which extends gossipable will be able to be Gossiped over the p2p network
47
47
  */
48
48
  export abstract class Gossipable {
49
- private cachedId: Buffer32 | undefined;
49
+ private cachedId: BaseBuffer32 | undefined;
50
50
  /** The p2p topic identifier, this determines how the message is handled */
51
51
  static p2pTopic: TopicType;
52
52
 
@@ -54,7 +54,7 @@ export abstract class Gossipable {
54
54
  * A digest of the message information **used for logging only**.
55
55
  * The identifier used for deduplication is `getMsgIdFn` as defined in `encoding.ts` which is a hash over topic and data.
56
56
  */
57
- async p2pMessageLoggingIdentifier(): Promise<Buffer32> {
57
+ async p2pMessageLoggingIdentifier(): Promise<BaseBuffer32> {
58
58
  if (this.cachedId) {
59
59
  return this.cachedId;
60
60
  }
@@ -62,7 +62,7 @@ export abstract class Gossipable {
62
62
  return this.cachedId;
63
63
  }
64
64
 
65
- abstract generateP2PMessageIdentifier(): Promise<Buffer32>;
65
+ abstract generateP2PMessageIdentifier(): Promise<BaseBuffer32>;
66
66
 
67
67
  abstract toBuffer(): Buffer;
68
68