@aztec/stdlib 0.0.1-commit.0c875d939 → 0.0.1-commit.0ec55a70b

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 (687) 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_selector.d.ts +3 -6
  21. package/dest/abi/function_selector.d.ts.map +1 -1
  22. package/dest/abi/function_selector.js +2 -4
  23. package/dest/abi/function_signature_decoder.d.ts +43 -0
  24. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  25. package/dest/abi/function_signature_decoder.js +66 -0
  26. package/dest/abi/index.d.ts +2 -1
  27. package/dest/abi/index.d.ts.map +1 -1
  28. package/dest/abi/index.js +1 -0
  29. package/dest/abi/note_selector.d.ts +3 -6
  30. package/dest/abi/note_selector.d.ts.map +1 -1
  31. package/dest/abi/note_selector.js +1 -3
  32. package/dest/abi/selector.d.ts +2 -2
  33. package/dest/abi/selector.d.ts.map +1 -1
  34. package/dest/abi/selector.js +1 -1
  35. package/dest/abi/utils.d.ts +14 -1
  36. package/dest/abi/utils.d.ts.map +1 -1
  37. package/dest/abi/utils.js +15 -0
  38. package/dest/auth_witness/auth_witness.js +3 -3
  39. package/dest/avm/avm_proving_request.d.ts +166 -166
  40. package/dest/avm/revert_code.d.ts +9 -4
  41. package/dest/avm/revert_code.d.ts.map +1 -1
  42. package/dest/avm/revert_code.js +16 -21
  43. package/dest/aztec-address/index.d.ts +3 -6
  44. package/dest/aztec-address/index.d.ts.map +1 -1
  45. package/dest/aztec-address/index.js +2 -4
  46. package/dest/block/attestation_info.d.ts +3 -2
  47. package/dest/block/attestation_info.d.ts.map +1 -1
  48. package/dest/block/attestation_info.js +7 -5
  49. package/dest/block/block_data.d.ts +341 -0
  50. package/dest/block/block_data.d.ts.map +1 -0
  51. package/dest/block/block_data.js +26 -0
  52. package/dest/block/block_hash.d.ts +11 -10
  53. package/dest/block/block_hash.d.ts.map +1 -1
  54. package/dest/block/block_hash.js +10 -9
  55. package/dest/block/block_parameter.d.ts +30 -3
  56. package/dest/block/block_parameter.d.ts.map +1 -1
  57. package/dest/block/block_parameter.js +36 -2
  58. package/dest/block/index.d.ts +2 -1
  59. package/dest/block/index.d.ts.map +1 -1
  60. package/dest/block/index.js +1 -0
  61. package/dest/block/l2_block.d.ts +9 -1
  62. package/dest/block/l2_block.d.ts.map +1 -1
  63. package/dest/block/l2_block.js +12 -2
  64. package/dest/block/l2_block_info.d.ts +6 -5
  65. package/dest/block/l2_block_info.d.ts.map +1 -1
  66. package/dest/block/l2_block_info.js +6 -5
  67. package/dest/block/l2_block_source.d.ts +149 -10
  68. package/dest/block/l2_block_source.d.ts.map +1 -1
  69. package/dest/block/l2_block_source.js +1 -0
  70. package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
  71. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  72. package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -1
  73. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  74. package/dest/block/l2_block_stream/l2_block_stream.js +10 -0
  75. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +1 -1
  76. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  77. package/dest/block/l2_block_stream/l2_tips_store_base.js +18 -5
  78. package/dest/block/proposal/attestations_and_signers.d.ts +13 -6
  79. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  80. package/dest/block/proposal/attestations_and_signers.js +26 -18
  81. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  82. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  83. package/dest/block/test/l2_tips_store_test_suite.js +4 -3
  84. package/dest/checkpoint/checkpoint.d.ts +13 -1
  85. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  86. package/dest/checkpoint/checkpoint.js +23 -9
  87. package/dest/checkpoint/checkpoint_data.d.ts +192 -0
  88. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  89. package/dest/checkpoint/checkpoint_data.js +38 -0
  90. package/dest/checkpoint/index.d.ts +3 -1
  91. package/dest/checkpoint/index.d.ts.map +1 -1
  92. package/dest/checkpoint/index.js +2 -0
  93. package/dest/checkpoint/published_checkpoint.d.ts +11 -2
  94. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  95. package/dest/checkpoint/published_checkpoint.js +1 -2
  96. package/dest/checkpoint/validate.d.ts +36 -0
  97. package/dest/checkpoint/validate.d.ts.map +1 -0
  98. package/dest/checkpoint/validate.js +120 -0
  99. package/dest/config/chain-config.d.ts +2 -2
  100. package/dest/config/chain-config.d.ts.map +1 -1
  101. package/dest/config/chain-config.js +9 -3
  102. package/dest/config/index.d.ts +2 -1
  103. package/dest/config/index.d.ts.map +1 -1
  104. package/dest/config/index.js +1 -0
  105. package/dest/config/pipelining-config.d.ts +19 -0
  106. package/dest/config/pipelining-config.d.ts.map +1 -0
  107. package/dest/config/pipelining-config.js +18 -0
  108. package/dest/config/sequencer-config.d.ts +7 -3
  109. package/dest/config/sequencer-config.d.ts.map +1 -1
  110. package/dest/config/sequencer-config.js +27 -1
  111. package/dest/contract/contract_address.d.ts +3 -3
  112. package/dest/contract/contract_address.js +7 -7
  113. package/dest/contract/contract_class.d.ts +2 -3
  114. package/dest/contract/contract_class.d.ts.map +1 -1
  115. package/dest/contract/contract_class_id.d.ts +2 -2
  116. package/dest/contract/contract_class_id.js +5 -5
  117. package/dest/contract/index.d.ts +1 -3
  118. package/dest/contract/index.d.ts.map +1 -1
  119. package/dest/contract/index.js +0 -2
  120. package/dest/contract/interfaces/contract_class.d.ts +3 -156
  121. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  122. package/dest/contract/interfaces/contract_class.js +1 -28
  123. package/dest/contract/private_function.d.ts +1 -1
  124. package/dest/contract/private_function.d.ts.map +1 -1
  125. package/dest/contract/private_function.js +4 -6
  126. package/dest/epoch-helpers/index.d.ts +11 -1
  127. package/dest/epoch-helpers/index.d.ts.map +1 -1
  128. package/dest/epoch-helpers/index.js +16 -2
  129. package/dest/file-store/factory.d.ts +4 -3
  130. package/dest/file-store/factory.d.ts.map +1 -1
  131. package/dest/file-store/factory.js +2 -2
  132. package/dest/file-store/http.d.ts +9 -2
  133. package/dest/file-store/http.d.ts.map +1 -1
  134. package/dest/file-store/http.js +20 -9
  135. package/dest/file-store/index.d.ts +2 -1
  136. package/dest/file-store/index.d.ts.map +1 -1
  137. package/dest/file-store/local.d.ts +3 -3
  138. package/dest/file-store/local.d.ts.map +1 -1
  139. package/dest/file-store/local.js +13 -4
  140. package/dest/file-store/s3.d.ts +1 -1
  141. package/dest/file-store/s3.d.ts.map +1 -1
  142. package/dest/file-store/s3.js +11 -3
  143. package/dest/gas/fee_math.d.ts +49 -0
  144. package/dest/gas/fee_math.d.ts.map +1 -0
  145. package/dest/gas/fee_math.js +80 -0
  146. package/dest/gas/gas_fees.d.ts +5 -1
  147. package/dest/gas/gas_fees.d.ts.map +1 -1
  148. package/dest/gas/gas_fees.js +13 -1
  149. package/dest/gas/gas_settings.d.ts +40 -3
  150. package/dest/gas/gas_settings.d.ts.map +1 -1
  151. package/dest/gas/gas_settings.js +50 -6
  152. package/dest/gas/index.d.ts +2 -1
  153. package/dest/gas/index.d.ts.map +1 -1
  154. package/dest/gas/index.js +1 -0
  155. package/dest/ha-signing/config.d.ts +136 -0
  156. package/dest/ha-signing/config.d.ts.map +1 -0
  157. package/dest/ha-signing/config.js +98 -0
  158. package/dest/ha-signing/index.d.ts +4 -0
  159. package/dest/ha-signing/index.d.ts.map +1 -0
  160. package/dest/ha-signing/index.js +3 -0
  161. package/dest/ha-signing/local_config.d.ts +63 -0
  162. package/dest/ha-signing/local_config.d.ts.map +1 -0
  163. package/dest/ha-signing/local_config.js +24 -0
  164. package/dest/ha-signing/types.d.ts +90 -0
  165. package/dest/ha-signing/types.d.ts.map +1 -0
  166. package/dest/ha-signing/types.js +39 -0
  167. package/dest/hash/hash.d.ts +34 -1
  168. package/dest/hash/hash.d.ts.map +1 -1
  169. package/dest/hash/hash.js +72 -11
  170. package/dest/hash/map_slot.js +2 -2
  171. package/dest/interfaces/allowed_element.d.ts +26 -20
  172. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  173. package/dest/interfaces/allowed_element.js +8 -8
  174. package/dest/interfaces/archiver.d.ts +11 -1
  175. package/dest/interfaces/archiver.d.ts.map +1 -1
  176. package/dest/interfaces/archiver.js +17 -3
  177. package/dest/interfaces/aztec-node-admin.d.ts +126 -47
  178. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  179. package/dest/interfaces/aztec-node-admin.js +14 -7
  180. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  181. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  182. package/dest/interfaces/aztec-node-debug.js +18 -0
  183. package/dest/interfaces/aztec-node.d.ts +59 -54
  184. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  185. package/dest/interfaces/aztec-node.js +23 -16
  186. package/dest/interfaces/block-builder.d.ts +38 -11
  187. package/dest/interfaces/block-builder.d.ts.map +1 -1
  188. package/dest/interfaces/block-builder.js +13 -6
  189. package/dest/interfaces/block_response.d.ts +156 -0
  190. package/dest/interfaces/block_response.d.ts.map +1 -0
  191. package/dest/interfaces/block_response.js +24 -0
  192. package/dest/interfaces/chain_tips.d.ts +304 -0
  193. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  194. package/dest/interfaces/chain_tips.js +11 -0
  195. package/dest/interfaces/checkpoint_parameter.d.ts +27 -0
  196. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  197. package/dest/interfaces/checkpoint_parameter.js +20 -0
  198. package/dest/interfaces/checkpoint_response.d.ts +312 -0
  199. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  200. package/dest/interfaces/checkpoint_response.js +26 -0
  201. package/dest/interfaces/client.d.ts +7 -1
  202. package/dest/interfaces/client.d.ts.map +1 -1
  203. package/dest/interfaces/client.js +6 -0
  204. package/dest/interfaces/configs.d.ts +87 -32
  205. package/dest/interfaces/configs.d.ts.map +1 -1
  206. package/dest/interfaces/configs.js +12 -3
  207. package/dest/interfaces/l1_publish_info.d.ts +43 -0
  208. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  209. package/dest/interfaces/l1_publish_info.js +26 -0
  210. package/dest/interfaces/l2_logs_source.d.ts +5 -3
  211. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  212. package/dest/interfaces/merkle_tree_operations.d.ts +13 -22
  213. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  214. package/dest/interfaces/p2p.d.ts +3 -8
  215. package/dest/interfaces/p2p.d.ts.map +1 -1
  216. package/dest/interfaces/prover-client.d.ts +6 -1
  217. package/dest/interfaces/prover-client.d.ts.map +1 -1
  218. package/dest/interfaces/prover-client.js +7 -4
  219. package/dest/interfaces/proving-job.d.ts +34 -34
  220. package/dest/interfaces/server.d.ts +6 -1
  221. package/dest/interfaces/server.d.ts.map +1 -1
  222. package/dest/interfaces/server.js +5 -0
  223. package/dest/interfaces/slasher.d.ts +1 -10
  224. package/dest/interfaces/slasher.d.ts.map +1 -1
  225. package/dest/interfaces/slasher.js +0 -2
  226. package/dest/interfaces/validator.d.ts +127 -64
  227. package/dest/interfaces/validator.d.ts.map +1 -1
  228. package/dest/interfaces/validator.js +10 -5
  229. package/dest/interfaces/world_state.d.ts +5 -4
  230. package/dest/interfaces/world_state.d.ts.map +1 -1
  231. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  232. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  233. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  234. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  235. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  236. package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
  237. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  238. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  239. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  240. package/dest/kernel/hints/index.d.ts +2 -2
  241. package/dest/kernel/hints/index.js +2 -2
  242. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  243. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  244. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  245. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  246. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  247. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  248. package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
  249. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  250. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  251. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
  252. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  253. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  254. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
  255. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  256. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  257. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -3
  258. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  259. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
  260. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
  261. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  262. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
  263. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
  264. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  265. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
  266. package/dest/kernel/private_validation_requests.d.ts +3 -3
  267. package/dest/kernel/private_validation_requests.js +9 -9
  268. package/dest/keys/derivation.js +8 -8
  269. package/dest/keys/key_types.d.ts +3 -3
  270. package/dest/keys/key_types.d.ts.map +1 -1
  271. package/dest/keys/public_keys.js +2 -2
  272. package/dest/keys/utils.js +5 -5
  273. package/dest/kv-store/config.d.ts +17 -0
  274. package/dest/kv-store/config.d.ts.map +1 -0
  275. package/dest/kv-store/config.js +26 -0
  276. package/dest/kv-store/index.d.ts +2 -0
  277. package/dest/kv-store/index.d.ts.map +1 -0
  278. package/dest/kv-store/index.js +1 -0
  279. package/dest/l1-contracts/index.d.ts +2 -2
  280. package/dest/l1-contracts/index.d.ts.map +1 -1
  281. package/dest/l1-contracts/index.js +1 -1
  282. package/dest/logs/debug_log_store.d.ts +30 -0
  283. package/dest/logs/debug_log_store.d.ts.map +1 -0
  284. package/dest/logs/debug_log_store.js +30 -0
  285. package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
  286. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
  287. package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +35 -20
  288. package/dest/logs/index.d.ts +4 -2
  289. package/dest/logs/index.d.ts.map +1 -1
  290. package/dest/logs/index.js +3 -1
  291. package/dest/logs/log_filter.d.ts +4 -1
  292. package/dest/logs/log_filter.d.ts.map +1 -1
  293. package/dest/logs/log_filter.js +2 -1
  294. package/dest/logs/log_id.d.ts +1 -1
  295. package/dest/logs/log_id.d.ts.map +1 -1
  296. package/dest/logs/log_id.js +1 -2
  297. package/dest/logs/message_context.d.ts +4 -7
  298. package/dest/logs/message_context.d.ts.map +1 -1
  299. package/dest/logs/message_context.js +23 -9
  300. package/dest/logs/pending_tagged_log.d.ts +2 -3
  301. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  302. package/dest/logs/pending_tagged_log.js +2 -2
  303. package/dest/logs/pre_tag.d.ts +16 -11
  304. package/dest/logs/pre_tag.d.ts.map +1 -1
  305. package/dest/logs/pre_tag.js +2 -2
  306. package/dest/logs/private_log.d.ts +2 -2
  307. package/dest/logs/private_log.d.ts.map +1 -1
  308. package/dest/logs/public_log.d.ts +4 -3
  309. package/dest/logs/public_log.d.ts.map +1 -1
  310. package/dest/logs/public_log.js +2 -1
  311. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  312. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  313. package/dest/logs/shared_secret_derivation.js +15 -9
  314. package/dest/logs/siloed_tag.d.ts +12 -9
  315. package/dest/logs/siloed_tag.d.ts.map +1 -1
  316. package/dest/logs/siloed_tag.js +15 -2
  317. package/dest/logs/tag.d.ts +5 -6
  318. package/dest/logs/tag.d.ts.map +1 -1
  319. package/dest/logs/tag.js +5 -1
  320. package/dest/logs/tagging_index_range.d.ts +40 -0
  321. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  322. package/dest/logs/tagging_index_range.js +8 -0
  323. package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
  324. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  325. package/dest/logs/tx_scoped_l2_log.js +7 -0
  326. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  327. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  328. package/dest/messaging/l1_to_l2_message.js +11 -13
  329. package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
  330. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  331. package/dest/messaging/l2_to_l1_membership.d.ts +32 -6
  332. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  333. package/dest/messaging/l2_to_l1_membership.js +69 -26
  334. package/dest/noir/index.d.ts +3 -3
  335. package/dest/noir/index.d.ts.map +1 -1
  336. package/dest/note/note_dao.d.ts +1 -1
  337. package/dest/note/note_dao.d.ts.map +1 -1
  338. package/dest/note/note_dao.js +1 -4
  339. package/dest/p2p/attestation_utils.d.ts +11 -1
  340. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  341. package/dest/p2p/attestation_utils.js +45 -0
  342. package/dest/p2p/block_proposal.d.ts +23 -15
  343. package/dest/p2p/block_proposal.d.ts.map +1 -1
  344. package/dest/p2p/block_proposal.js +46 -43
  345. package/dest/p2p/checkpoint_attestation.d.ts +10 -8
  346. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  347. package/dest/p2p/checkpoint_attestation.js +17 -24
  348. package/dest/p2p/checkpoint_proposal.d.ts +21 -20
  349. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  350. package/dest/p2p/checkpoint_proposal.js +35 -62
  351. package/dest/p2p/client_type.d.ts +2 -5
  352. package/dest/p2p/client_type.d.ts.map +1 -1
  353. package/dest/p2p/client_type.js +0 -7
  354. package/dest/p2p/consensus_payload.d.ts +18 -7
  355. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  356. package/dest/p2p/consensus_payload.js +31 -19
  357. package/dest/p2p/gossipable.d.ts +4 -4
  358. package/dest/p2p/gossipable.d.ts.map +1 -1
  359. package/dest/p2p/index.d.ts +1 -2
  360. package/dest/p2p/index.d.ts.map +1 -1
  361. package/dest/p2p/index.js +0 -1
  362. package/dest/p2p/peer_error.d.ts +3 -1
  363. package/dest/p2p/peer_error.d.ts.map +1 -1
  364. package/dest/p2p/peer_error.js +5 -0
  365. package/dest/p2p/signature_utils.d.ts +28 -19
  366. package/dest/p2p/signature_utils.d.ts.map +1 -1
  367. package/dest/p2p/signature_utils.js +118 -21
  368. package/dest/p2p/signed_txs.d.ts +15 -13
  369. package/dest/p2p/signed_txs.d.ts.map +1 -1
  370. package/dest/p2p/signed_txs.js +26 -24
  371. package/dest/p2p/topic_type.d.ts +3 -4
  372. package/dest/p2p/topic_type.d.ts.map +1 -1
  373. package/dest/p2p/topic_type.js +7 -24
  374. package/dest/parity/parity_base_private_inputs.d.ts +7 -3
  375. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  376. package/dest/parity/parity_base_private_inputs.js +7 -5
  377. package/dest/parity/parity_public_inputs.d.ts +7 -3
  378. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  379. package/dest/parity/parity_public_inputs.js +6 -3
  380. package/dest/proofs/chonk_proof.d.ts +46 -2
  381. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  382. package/dest/proofs/chonk_proof.js +85 -10
  383. package/dest/rollup/block_headers_hash.d.ts +1 -1
  384. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  385. package/dest/rollup/block_headers_hash.js +8 -2
  386. package/dest/rollup/checkpoint_header.d.ts +2 -2
  387. package/dest/rollup/checkpoint_header.js +2 -2
  388. package/dest/slashing/index.d.ts +2 -3
  389. package/dest/slashing/index.d.ts.map +1 -1
  390. package/dest/slashing/index.js +1 -2
  391. package/dest/slashing/serialization.d.ts +2 -6
  392. package/dest/slashing/serialization.d.ts.map +1 -1
  393. package/dest/slashing/serialization.js +0 -60
  394. package/dest/slashing/types.d.ts +4 -90
  395. package/dest/slashing/types.d.ts.map +1 -1
  396. package/dest/slashing/types.js +0 -14
  397. package/dest/slashing/{tally.d.ts → votes.d.ts} +7 -2
  398. package/dest/slashing/votes.d.ts.map +1 -0
  399. package/dest/slashing/{tally.js → votes.js} +30 -2
  400. package/dest/tests/factories.d.ts +5 -10
  401. package/dest/tests/factories.d.ts.map +1 -1
  402. package/dest/tests/factories.js +35 -54
  403. package/dest/tests/mocks.d.ts +11 -3
  404. package/dest/tests/mocks.d.ts.map +1 -1
  405. package/dest/tests/mocks.js +59 -45
  406. package/dest/timetable/index.d.ts +51 -1
  407. package/dest/timetable/index.d.ts.map +1 -1
  408. package/dest/timetable/index.js +218 -14
  409. package/dest/trees/nullifier_leaf.d.ts +2 -1
  410. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  411. package/dest/trees/nullifier_leaf.js +3 -0
  412. package/dest/tx/block_header.d.ts +4 -2
  413. package/dest/tx/block_header.d.ts.map +1 -1
  414. package/dest/tx/block_header.js +7 -3
  415. package/dest/tx/capsule.d.ts +6 -2
  416. package/dest/tx/capsule.d.ts.map +1 -1
  417. package/dest/tx/capsule.js +9 -3
  418. package/dest/tx/fee_provider.d.ts +10 -0
  419. package/dest/tx/fee_provider.d.ts.map +1 -0
  420. package/dest/tx/fee_provider.js +1 -0
  421. package/dest/tx/global_variable_builder.d.ts +3 -4
  422. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  423. package/dest/tx/global_variables.d.ts +4 -4
  424. package/dest/tx/global_variables.d.ts.map +1 -1
  425. package/dest/tx/index.d.ts +2 -1
  426. package/dest/tx/index.d.ts.map +1 -1
  427. package/dest/tx/index.js +1 -0
  428. package/dest/tx/indexed_tx_effect.d.ts +1 -1
  429. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  430. package/dest/tx/indexed_tx_effect.js +1 -2
  431. package/dest/tx/private_execution_result.d.ts +6 -6
  432. package/dest/tx/private_execution_result.d.ts.map +1 -1
  433. package/dest/tx/private_execution_result.js +6 -6
  434. package/dest/tx/profiling.d.ts +17 -5
  435. package/dest/tx/profiling.d.ts.map +1 -1
  436. package/dest/tx/profiling.js +19 -9
  437. package/dest/tx/protocol_contracts.d.ts +1 -1
  438. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  439. package/dest/tx/protocol_contracts.js +2 -2
  440. package/dest/tx/public_simulation_output.d.ts +4 -2
  441. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  442. package/dest/tx/public_simulation_output.js +7 -3
  443. package/dest/tx/simulated_tx.d.ts +116 -5
  444. package/dest/tx/simulated_tx.d.ts.map +1 -1
  445. package/dest/tx/simulated_tx.js +7 -4
  446. package/dest/tx/tx.d.ts +8 -7
  447. package/dest/tx/tx.d.ts.map +1 -1
  448. package/dest/tx/tx.js +18 -6
  449. package/dest/tx/tx_receipt.d.ts +29 -6
  450. package/dest/tx/tx_receipt.d.ts.map +1 -1
  451. package/dest/tx/tx_receipt.js +23 -19
  452. package/dest/tx/tx_request.js +2 -2
  453. package/dest/tx/validator/error_texts.d.ts +10 -2
  454. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  455. package/dest/tx/validator/error_texts.js +11 -1
  456. package/dest/types/shared.d.ts +1 -10
  457. package/dest/types/shared.d.ts.map +1 -1
  458. package/dest/types/shared.js +0 -9
  459. package/dest/update-checker/index.d.ts +3 -2
  460. package/dest/update-checker/index.d.ts.map +1 -1
  461. package/dest/update-checker/index.js +2 -1
  462. package/dest/update-checker/package_version.d.ts +3 -0
  463. package/dest/update-checker/package_version.d.ts.map +1 -0
  464. package/dest/update-checker/package_version.js +24 -0
  465. package/dest/update-checker/version_checker.d.ts +25 -0
  466. package/dest/update-checker/version_checker.d.ts.map +1 -0
  467. package/dest/update-checker/version_checker.js +50 -0
  468. package/dest/validators/errors.d.ts +6 -1
  469. package/dest/validators/errors.d.ts.map +1 -1
  470. package/dest/validators/errors.js +7 -0
  471. package/dest/versioning/versioning.d.ts +4 -2
  472. package/dest/versioning/versioning.d.ts.map +1 -1
  473. package/dest/versioning/versioning.js +4 -1
  474. package/dest/vks/verification_key.d.ts +2 -137
  475. package/dest/vks/verification_key.d.ts.map +1 -1
  476. package/dest/vks/verification_key.js +5 -126
  477. package/dest/world-state/genesis_data.d.ts +11 -0
  478. package/dest/world-state/genesis_data.d.ts.map +1 -0
  479. package/dest/world-state/genesis_data.js +4 -0
  480. package/dest/world-state/index.d.ts +2 -1
  481. package/dest/world-state/index.d.ts.map +1 -1
  482. package/dest/world-state/index.js +1 -0
  483. package/dest/world-state/world_state_revision.d.ts +8 -1
  484. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  485. package/dest/world-state/world_state_revision.js +7 -1
  486. package/package.json +12 -11
  487. package/src/abi/abi.ts +25 -2
  488. package/src/abi/authorization_selector.ts +2 -8
  489. package/src/abi/buffer.ts +25 -4
  490. package/src/abi/decoder.ts +36 -82
  491. package/src/abi/encoder.ts +85 -6
  492. package/src/abi/event_metadata_definition.ts +2 -0
  493. package/src/abi/event_selector.ts +2 -8
  494. package/src/abi/function_selector.ts +4 -13
  495. package/src/abi/function_signature_decoder.ts +77 -0
  496. package/src/abi/index.ts +1 -0
  497. package/src/abi/note_selector.ts +3 -12
  498. package/src/abi/selector.ts +1 -1
  499. package/src/abi/utils.ts +25 -0
  500. package/src/auth_witness/auth_witness.ts +3 -3
  501. package/src/avm/revert_code.ts +26 -25
  502. package/src/aztec-address/index.ts +4 -10
  503. package/src/block/attestation_info.ts +11 -11
  504. package/src/block/block_data.ts +42 -0
  505. package/src/block/block_hash.ts +21 -14
  506. package/src/block/block_parameter.ts +35 -2
  507. package/src/block/index.ts +1 -0
  508. package/src/block/l2_block.ts +13 -1
  509. package/src/block/l2_block_info.ts +8 -6
  510. package/src/block/l2_block_source.ts +88 -9
  511. package/src/block/l2_block_stream/interfaces.ts +6 -2
  512. package/src/block/l2_block_stream/l2_block_stream.ts +21 -0
  513. package/src/block/l2_block_stream/l2_tips_store_base.ts +25 -13
  514. package/src/block/proposal/attestations_and_signers.ts +32 -17
  515. package/src/block/test/l2_tips_store_test_suite.ts +9 -2
  516. package/src/checkpoint/checkpoint.ts +28 -7
  517. package/src/checkpoint/checkpoint_data.ts +91 -0
  518. package/src/checkpoint/index.ts +2 -0
  519. package/src/checkpoint/published_checkpoint.ts +3 -1
  520. package/src/checkpoint/validate.ts +230 -0
  521. package/src/config/chain-config.ts +9 -4
  522. package/src/config/index.ts +1 -0
  523. package/src/config/pipelining-config.ts +31 -0
  524. package/src/config/sequencer-config.ts +49 -3
  525. package/src/contract/contract_address.ts +7 -7
  526. package/src/contract/contract_class.ts +3 -3
  527. package/src/contract/contract_class_id.ts +5 -5
  528. package/src/contract/index.ts +0 -2
  529. package/src/contract/interfaces/contract_class.ts +2 -82
  530. package/src/contract/private_function.ts +5 -3
  531. package/src/epoch-helpers/index.ts +27 -0
  532. package/src/file-store/factory.ts +13 -4
  533. package/src/file-store/http.ts +29 -10
  534. package/src/file-store/index.ts +1 -0
  535. package/src/file-store/local.ts +15 -5
  536. package/src/file-store/s3.ts +12 -3
  537. package/src/gas/README.md +154 -0
  538. package/src/gas/fee_math.ts +120 -0
  539. package/src/gas/gas_fees.ts +20 -1
  540. package/src/gas/gas_settings.ts +65 -12
  541. package/src/gas/index.ts +1 -0
  542. package/src/ha-signing/config.ts +159 -0
  543. package/src/ha-signing/index.ts +29 -0
  544. package/src/ha-signing/local_config.ts +46 -0
  545. package/src/ha-signing/types.ts +126 -0
  546. package/src/hash/hash.ts +72 -11
  547. package/src/hash/map_slot.ts +2 -2
  548. package/src/interfaces/allowed_element.ts +29 -9
  549. package/src/interfaces/archiver.ts +28 -2
  550. package/src/interfaces/aztec-node-admin.ts +31 -8
  551. package/src/interfaces/aztec-node-debug.ts +40 -0
  552. package/src/interfaces/aztec-node.ts +129 -85
  553. package/src/interfaces/block-builder.ts +60 -14
  554. package/src/interfaces/block_response.ts +79 -0
  555. package/src/interfaces/chain_tips.ts +24 -0
  556. package/src/interfaces/checkpoint_parameter.ts +22 -0
  557. package/src/interfaces/checkpoint_response.ts +84 -0
  558. package/src/interfaces/client.ts +6 -0
  559. package/src/interfaces/configs.ts +43 -8
  560. package/src/interfaces/l1_publish_info.ts +40 -0
  561. package/src/interfaces/l2_logs_source.ts +4 -1
  562. package/src/interfaces/merkle_tree_operations.ts +12 -21
  563. package/src/interfaces/p2p.ts +2 -13
  564. package/src/interfaces/prover-client.ts +10 -5
  565. package/src/interfaces/server.ts +5 -0
  566. package/src/interfaces/slasher.ts +0 -6
  567. package/src/interfaces/validator.ts +68 -37
  568. package/src/interfaces/world_state.ts +4 -3
  569. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  570. package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
  571. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  572. package/src/kernel/hints/index.ts +2 -2
  573. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  574. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  575. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  576. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  577. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  578. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
  579. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
  580. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
  581. package/src/kernel/private_validation_requests.ts +8 -8
  582. package/src/keys/derivation.ts +8 -8
  583. package/src/keys/key_types.ts +6 -2
  584. package/src/keys/public_keys.ts +2 -2
  585. package/src/keys/utils.ts +5 -5
  586. package/src/kv-store/config.ts +36 -0
  587. package/src/kv-store/index.ts +1 -0
  588. package/src/l1-contracts/index.ts +1 -1
  589. package/src/logs/debug_log_store.ts +54 -0
  590. package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +41 -22
  591. package/src/logs/index.ts +3 -1
  592. package/src/logs/log_filter.ts +5 -0
  593. package/src/logs/log_id.ts +1 -2
  594. package/src/logs/message_context.ts +17 -7
  595. package/src/logs/pending_tagged_log.ts +1 -3
  596. package/src/logs/pre_tag.ts +5 -5
  597. package/src/logs/public_log.ts +4 -2
  598. package/src/logs/shared_secret_derivation.ts +21 -10
  599. package/src/logs/siloed_tag.ts +22 -12
  600. package/src/logs/tag.ts +9 -9
  601. package/src/logs/tagging_index_range.ts +24 -0
  602. package/src/logs/tx_scoped_l2_log.ts +16 -0
  603. package/src/messaging/l1_to_l2_message.ts +12 -9
  604. package/src/messaging/l1_to_l2_message_source.ts +3 -1
  605. package/src/messaging/l2_to_l1_membership.ts +98 -33
  606. package/src/noir/index.ts +2 -2
  607. package/src/note/note_dao.ts +1 -4
  608. package/src/p2p/attestation_utils.ts +56 -0
  609. package/src/p2p/block_proposal.ts +97 -39
  610. package/src/p2p/checkpoint_attestation.ts +20 -29
  611. package/src/p2p/checkpoint_proposal.ts +87 -84
  612. package/src/p2p/client_type.ts +0 -6
  613. package/src/p2p/consensus_payload.ts +50 -28
  614. package/src/p2p/gossipable.ts +4 -4
  615. package/src/p2p/index.ts +0 -1
  616. package/src/p2p/peer_error.ts +7 -0
  617. package/src/p2p/signature_utils.ts +110 -25
  618. package/src/p2p/signed_txs.ts +46 -28
  619. package/src/p2p/topic_type.ts +8 -15
  620. package/src/parity/parity_base_private_inputs.ts +10 -4
  621. package/src/parity/parity_public_inputs.ts +9 -2
  622. package/src/proofs/chonk_proof.ts +91 -5
  623. package/src/rollup/block_headers_hash.ts +11 -2
  624. package/src/rollup/checkpoint_header.ts +2 -2
  625. package/src/slashing/index.ts +1 -2
  626. package/src/slashing/serialization.ts +1 -81
  627. package/src/slashing/types.ts +3 -35
  628. package/src/slashing/{tally.ts → votes.ts} +34 -1
  629. package/src/tests/factories.ts +37 -63
  630. package/src/tests/mocks.ts +90 -51
  631. package/src/timetable/index.ts +308 -13
  632. package/src/trees/nullifier_leaf.ts +4 -0
  633. package/src/tx/block_header.ts +10 -4
  634. package/src/tx/capsule.ts +10 -2
  635. package/src/tx/fee_provider.ts +10 -0
  636. package/src/tx/global_variable_builder.ts +2 -3
  637. package/src/tx/global_variables.ts +3 -3
  638. package/src/tx/index.ts +1 -0
  639. package/src/tx/indexed_tx_effect.ts +1 -2
  640. package/src/tx/private_execution_result.ts +5 -5
  641. package/src/tx/profiling.ts +18 -9
  642. package/src/tx/protocol_contracts.ts +2 -2
  643. package/src/tx/public_simulation_output.ts +4 -0
  644. package/src/tx/simulated_tx.ts +14 -3
  645. package/src/tx/tx.ts +22 -13
  646. package/src/tx/tx_receipt.ts +28 -16
  647. package/src/tx/tx_request.ts +2 -2
  648. package/src/tx/validator/error_texts.ts +13 -1
  649. package/src/types/shared.ts +0 -10
  650. package/src/update-checker/index.ts +2 -1
  651. package/src/update-checker/package_version.ts +30 -0
  652. package/src/update-checker/version_checker.ts +65 -0
  653. package/src/validators/errors.ts +9 -0
  654. package/src/versioning/versioning.ts +4 -1
  655. package/src/vks/verification_key.ts +5 -184
  656. package/src/world-state/genesis_data.ts +15 -0
  657. package/src/world-state/index.ts +1 -0
  658. package/src/world-state/world_state_revision.ts +9 -1
  659. package/dest/abi/mocked_keys.d.ts +0 -2
  660. package/dest/abi/mocked_keys.d.ts.map +0 -1
  661. package/dest/abi/mocked_keys.js +0 -1
  662. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  663. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  664. package/dest/contract/private_function_membership_proof.js +0 -124
  665. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  666. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  667. package/dest/contract/utility_function_membership_proof.js +0 -87
  668. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  669. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  670. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  671. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  672. package/dest/l1-contracts/slash_factory.js +0 -158
  673. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  674. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  675. package/dest/slashing/empire.d.ts +0 -31
  676. package/dest/slashing/empire.d.ts.map +0 -1
  677. package/dest/slashing/empire.js +0 -87
  678. package/dest/slashing/tally.d.ts.map +0 -1
  679. package/dest/update-checker/update-checker.d.ts +0 -49
  680. package/dest/update-checker/update-checker.d.ts.map +0 -1
  681. package/dest/update-checker/update-checker.js +0 -130
  682. package/src/abi/mocked_keys.ts +0 -2
  683. package/src/contract/private_function_membership_proof.ts +0 -167
  684. package/src/contract/utility_function_membership_proof.ts +0 -118
  685. package/src/l1-contracts/slash_factory.ts +0 -180
  686. package/src/slashing/empire.ts +0 -104
  687. package/src/update-checker/update-checker.ts +0 -166
@@ -1,26 +1,18 @@
1
- import { BlockNumber, IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
2
- import { Buffer32 } from '@aztec/foundation/buffer';
1
+ import { CheckpointProposalHash, IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
3
2
  import { keccak256 } from '@aztec/foundation/crypto/keccak';
4
- import { tryRecoverAddress } from '@aztec/foundation/crypto/secp256k1-signer';
5
3
  import { Fr } from '@aztec/foundation/curves/bn254';
6
4
  import { Signature } from '@aztec/foundation/eth-signature';
7
5
  import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
8
- import { DutyType } from '@aztec/validator-ha-signer/types';
9
6
  import { MAX_TXS_PER_BLOCK } from '../deserialization/index.js';
7
+ import { DutyType } from '../ha-signing/index.js';
10
8
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
11
9
  import { BlockHeader } from '../tx/block_header.js';
12
10
  import { TxHash } from '../tx/index.js';
13
11
  import { BlockProposal } from './block_proposal.js';
14
12
  import { Gossipable } from './gossipable.js';
15
- import { SignatureDomainSeparator, getHashedSignaturePayload, getHashedSignaturePayloadEthSignedMessage } from './signature_utils.js';
13
+ import { EMPTY_COORDINATION_SIGNATURE_CONTEXT, getCoordinationSignatureTypedData, readCoordinationSignatureContext, recoverCoordinationSigner, serializeCoordinationSignatureContext } from './signature_utils.js';
16
14
  import { SignedTxs } from './signed_txs.js';
17
15
  import { TopicType } from './topic_type.js';
18
- // REFACTOR(palla): Use a branded type instead of a subclass of Buffer32
19
- export class CheckpointProposalHash extends Buffer32 {
20
- constructor(hash){
21
- super(hash);
22
- }
23
- }
24
16
  /**
25
17
  * A checkpoint proposal is created by the leader of the chain for the last block in a checkpoint.
26
18
  * It includes the aggregated checkpoint header that validators will attest to, plus optionally
@@ -30,30 +22,20 @@ export class CheckpointProposalHash extends Buffer32 {
30
22
  archive;
31
23
  feeAssetPriceModifier;
32
24
  signature;
25
+ signatureContext;
33
26
  lastBlock;
34
27
  static p2pTopic = TopicType.checkpoint_proposal;
35
- sender;
36
- constructor(/** The aggregated checkpoint header for consensus */ checkpointHeader, /** Archive root after this checkpoint is applied */ archive, /** The fee asset price modifier in basis points (from oracle) */ feeAssetPriceModifier, /** The proposer's signature over the checkpoint payload (checkpointHeader + archive + feeAssetPriceModifier) */ signature, /** Optional last block info, including its own signature for BlockProposal extraction */ lastBlock){
37
- super(), this.checkpointHeader = checkpointHeader, this.archive = archive, this.feeAssetPriceModifier = feeAssetPriceModifier, this.signature = signature, this.lastBlock = lastBlock;
28
+ primaryType;
29
+ cachedSender;
30
+ constructor(/** The aggregated checkpoint header for consensus */ checkpointHeader, /** Archive root after this checkpoint is applied */ archive, /** The fee asset price modifier in basis points (from oracle) */ feeAssetPriceModifier, /** The proposer's signature over the checkpoint payload (checkpointHeader + archive + feeAssetPriceModifier) */ signature, /** The signing domain (chainId + rollupAddress) the signature is bound to */ signatureContext, /** Optional last block info, including its own signature for BlockProposal extraction */ lastBlock){
31
+ super(), this.checkpointHeader = checkpointHeader, this.archive = archive, this.feeAssetPriceModifier = feeAssetPriceModifier, this.signature = signature, this.signatureContext = signatureContext, this.lastBlock = lastBlock, this.primaryType = 'CheckpointProposal', this.cachedSender = undefined;
38
32
  }
39
33
  generateP2PMessageIdentifier() {
40
- return Promise.resolve(new CheckpointProposalHash(keccak256(this.signature.toBuffer())));
34
+ return Promise.resolve(CheckpointProposalHash.fromBuffer(keccak256(this.signature.toBuffer())));
41
35
  }
42
36
  get slotNumber() {
43
37
  return this.checkpointHeader.slotNumber;
44
38
  }
45
- get blockNumber() {
46
- if (!this.lastBlock) {
47
- throw new Error('Cannot get blockNumber without lastBlock');
48
- }
49
- return this.lastBlock.blockHeader.getBlockNumber();
50
- }
51
- /** Convenience getter for txHashes from lastBlock */ get txHashes() {
52
- return this.lastBlock?.txHashes ?? [];
53
- }
54
- /** Convenience getter for txs from lastBlock */ get txs() {
55
- return this.lastBlock?.signedTxs?.txs;
56
- }
57
39
  /**
58
40
  * Extract a BlockProposal from the last block info.
59
41
  * Uses inHash from checkpointHeader.contentCommitment.inHash
@@ -61,7 +43,7 @@ export class CheckpointProposalHash extends Buffer32 {
61
43
  if (!this.lastBlock) {
62
44
  return undefined;
63
45
  }
64
- return new BlockProposal(this.lastBlock.blockHeader, this.lastBlock.indexWithinCheckpoint, this.checkpointHeader.inHash, this.archive, this.lastBlock.txHashes, this.lastBlock.signature, this.lastBlock.signedTxs);
46
+ return new BlockProposal(this.lastBlock.blockHeader, this.lastBlock.indexWithinCheckpoint, this.checkpointHeader.inHash, this.archive, this.lastBlock.txHashes, this.lastBlock.signature, this.signatureContext, this.lastBlock.signedTxs);
65
47
  }
66
48
  toBlockInfo() {
67
49
  if (!this.lastBlock) {
@@ -87,66 +69,54 @@ export class CheckpointProposalHash extends Buffer32 {
87
69
  /**
88
70
  * Get the payload to sign for this checkpoint proposal.
89
71
  * The signature is over the checkpoint header + archive root + feeAssetPriceModifier (for consensus).
90
- */ getPayloadToSign(domainSeparator) {
72
+ */ getPayloadToSign() {
91
73
  return serializeToBuffer([
92
- domainSeparator,
93
74
  this.checkpointHeader,
94
75
  this.archive,
95
76
  serializeSignedBigInt(this.feeAssetPriceModifier)
96
77
  ]);
97
78
  }
98
- static async createProposalFromSigner(checkpointHeader, archiveRoot, feeAssetPriceModifier, lastBlockInfo, payloadSigner) {
79
+ static async createProposalFromSigner(checkpointHeader, archiveRoot, checkpointNumber, feeAssetPriceModifier, lastBlockProposal, signatureContext, payloadSigner) {
99
80
  // Sign the checkpoint payload with CHECKPOINT_PROPOSAL duty type
100
- const tempProposal = new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, Signature.empty());
101
- const checkpointHash = getHashedSignaturePayload(tempProposal, SignatureDomainSeparator.checkpointProposal);
81
+ const tempProposal = new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, Signature.empty(), signatureContext);
102
82
  const checkpointContext = {
103
83
  slot: checkpointHeader.slotNumber,
104
- blockNumber: lastBlockInfo?.blockHeader?.globalVariables.blockNumber ?? BlockNumber(0),
84
+ checkpointNumber,
105
85
  dutyType: DutyType.CHECKPOINT_PROPOSAL
106
86
  };
107
- const checkpointSignature = await payloadSigner(checkpointHash, checkpointContext);
108
- if (!lastBlockInfo) {
109
- return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature);
110
- }
111
- const lastBlockProposal = await BlockProposal.createProposalFromSigner(lastBlockInfo.blockHeader, lastBlockInfo.indexWithinCheckpoint, checkpointHeader.inHash, archiveRoot, lastBlockInfo.txHashes, lastBlockInfo.txs, payloadSigner);
112
- return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature, {
113
- blockHeader: lastBlockInfo.blockHeader,
114
- indexWithinCheckpoint: lastBlockInfo.indexWithinCheckpoint,
115
- txHashes: lastBlockInfo.txHashes,
116
- signature: lastBlockProposal.signature,
117
- signedTxs: lastBlockProposal.signedTxs
118
- });
87
+ const typedData = getCoordinationSignatureTypedData(tempProposal);
88
+ const checkpointSignature = await payloadSigner(typedData, checkpointContext);
89
+ return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature, signatureContext, lastBlockProposal);
119
90
  }
120
91
  /**
121
92
  * Lazily evaluate the sender of the proposal; result is cached.
122
93
  * If there's a lastBlock, also verifies the block proposal sender matches the checkpoint sender.
123
94
  * @returns The sender address, or undefined if signature recovery fails or senders don't match
124
95
  */ getSender() {
125
- if (!this.sender) {
126
- const hashed = getHashedSignaturePayloadEthSignedMessage(this, SignatureDomainSeparator.checkpointProposal);
127
- const checkpointSender = tryRecoverAddress(hashed, this.signature);
128
- // If there's a lastBlock, verify the block proposal sender matches
96
+ if (this.cachedSender === undefined) {
97
+ const checkpointSender = recoverCoordinationSigner(this, this.signature);
129
98
  if (checkpointSender && this.lastBlock) {
130
99
  const blockProposal = this.getBlockProposal();
131
100
  const blockSender = blockProposal?.getSender();
132
101
  if (!blockSender || !blockSender.equals(checkpointSender)) {
133
- return undefined; // Sender mismatch - fail
102
+ this.cachedSender = null;
103
+ return undefined;
134
104
  }
135
105
  }
136
- // Cache the sender for later use
137
- this.sender = checkpointSender;
106
+ this.cachedSender = checkpointSender ?? null;
138
107
  }
139
- return this.sender;
108
+ return this.cachedSender ?? undefined;
140
109
  }
141
110
  getPayload() {
142
- return this.getPayloadToSign(SignatureDomainSeparator.checkpointProposal);
111
+ return this.getPayloadToSign();
143
112
  }
144
113
  toBuffer() {
145
114
  const buffer = [
146
115
  this.checkpointHeader,
147
116
  this.archive,
148
117
  serializeSignedBigInt(this.feeAssetPriceModifier),
149
- this.signature
118
+ this.signature,
119
+ serializeCoordinationSignatureContext(this.signatureContext)
150
120
  ];
151
121
  if (this.lastBlock) {
152
122
  buffer.push(1); // hasLastBlock = true
@@ -172,6 +142,7 @@ export class CheckpointProposalHash extends Buffer32 {
172
142
  const archive = reader.readObject(Fr);
173
143
  const feeAssetPriceModifier = reader.readInt256();
174
144
  const signature = reader.readObject(Signature);
145
+ const signatureContext = readCoordinationSignatureContext(reader);
175
146
  const hasLastBlock = reader.readNumber();
176
147
  if (hasLastBlock) {
177
148
  const blockHeader = reader.readObject(BlockHeader);
@@ -189,7 +160,7 @@ export class CheckpointProposalHash extends Buffer32 {
189
160
  signedTxs = SignedTxs.fromBuffer(reader);
190
161
  }
191
162
  }
192
- return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, {
163
+ return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, signatureContext, {
193
164
  blockHeader,
194
165
  indexWithinCheckpoint,
195
166
  txHashes,
@@ -197,20 +168,20 @@ export class CheckpointProposalHash extends Buffer32 {
197
168
  signedTxs
198
169
  });
199
170
  }
200
- return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature);
171
+ return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, signatureContext);
201
172
  }
202
173
  getSize() {
203
- let size = this.checkpointHeader.toBuffer().length + this.archive.size + this.signature.getSize() + 8 /* feeAssetPriceModifier */ + 4; /* hasLastBlock flag */
174
+ let size = this.checkpointHeader.toBuffer().length + this.archive.size + this.signature.getSize() + 8 /* feeAssetPriceModifier */ + 4 /* chainId */ + 20 /* rollupAddress */ + 4; /* hasLastBlock flag */
204
175
  if (this.lastBlock) {
205
176
  size += this.lastBlock.blockHeader.getSize() + 4 /* indexWithinCheckpoint */ + this.lastBlock.signature.getSize() + 4 /* txHashes.length */ + this.lastBlock.txHashes.length * TxHash.SIZE + 4 /* hasSignedTxs flag */ + (this.lastBlock.signedTxs ? this.lastBlock.signedTxs.getSize() : 0);
206
177
  }
207
178
  return size;
208
179
  }
209
180
  static empty() {
210
- return new CheckpointProposal(CheckpointHeader.empty(), Fr.ZERO, 0n, Signature.empty());
181
+ return new CheckpointProposal(CheckpointHeader.empty(), Fr.ZERO, 0n, Signature.empty(), EMPTY_COORDINATION_SIGNATURE_CONTEXT);
211
182
  }
212
183
  static random() {
213
- return new CheckpointProposal(CheckpointHeader.random(), Fr.random(), 0n, Signature.random(), {
184
+ return new CheckpointProposal(CheckpointHeader.random(), Fr.random(), 0n, Signature.random(), EMPTY_COORDINATION_SIGNATURE_CONTEXT, {
214
185
  blockHeader: BlockHeader.random(),
215
186
  indexWithinCheckpoint: IndexWithinCheckpoint(Math.floor(Math.random() * 5)),
216
187
  txHashes: [
@@ -226,6 +197,8 @@ export class CheckpointProposalHash extends Buffer32 {
226
197
  archive: this.archive.toString(),
227
198
  signature: this.signature.toString(),
228
199
  feeAssetPriceModifier: this.feeAssetPriceModifier.toString(),
200
+ chainId: this.signatureContext.chainId,
201
+ rollupAddress: this.signatureContext.rollupAddress.toString(),
229
202
  lastBlock: this.lastBlock ? {
230
203
  blockHeader: this.lastBlock.blockHeader.toInspect(),
231
204
  indexWithinCheckpoint: this.lastBlock.indexWithinCheckpoint,
@@ -238,6 +211,6 @@ export class CheckpointProposalHash extends Buffer32 {
238
211
  * Returns a copy of this proposal without lastBlock info, as a CheckpointProposalCore.
239
212
  * Used when the lastBlock has been extracted and stored separately.
240
213
  */ toCore() {
241
- return new CheckpointProposal(this.checkpointHeader, this.archive, this.feeAssetPriceModifier, this.signature);
214
+ return new CheckpointProposal(this.checkpointHeader, this.archive, this.feeAssetPriceModifier, this.signature, this.signatureContext);
242
215
  }
243
216
  }
@@ -1,5 +1,2 @@
1
- export declare enum P2PClientType {
2
- Full = 0,
3
- Prover = 1
4
- }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50X3R5cGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvY2xpZW50X3R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQVksYUFBYTtJQUV2QixJQUFJLElBQUE7SUFFSixNQUFNLElBQUE7Q0FDUCJ9
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50X3R5cGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvY2xpZW50X3R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"client_type.d.ts","sourceRoot":"","sources":["../../src/p2p/client_type.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IAEvB,IAAI,IAAA;IAEJ,MAAM,IAAA;CACP"}
1
+ {"version":3,"file":"client_type.d.ts","sourceRoot":"","sources":["../../src/p2p/client_type.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- export var P2PClientType = /*#__PURE__*/ function(P2PClientType) {
2
- // Full p2p clients will subscribe to all gossip topics
3
- P2PClientType[P2PClientType["Full"] = 0] = "Full";
4
- // Prove p2p clients will only subscribe to transaction and proving topics
5
- P2PClientType[P2PClientType["Prover"] = 1] = "Prover";
6
- return P2PClientType;
7
- }({});
@@ -5,7 +5,7 @@ import { z } from 'zod';
5
5
  import type { Checkpoint } from '../checkpoint/checkpoint.js';
6
6
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
7
7
  import type { CheckpointProposal, CheckpointProposalCore } from './checkpoint_proposal.js';
8
- import type { Signable, SignatureDomainSeparator } from './signature_utils.js';
8
+ import { type CoordinationSignatureContext, type CoordinationSignatureType, type Signable } from './signature_utils.js';
9
9
  /** Checkpoint consensus payload as signed by validators and verified on L1. */
10
10
  export declare class ConsensusPayload implements Signable {
11
11
  /** The proposed block header the attestation is made over */
@@ -14,6 +14,9 @@ export declare class ConsensusPayload implements Signable {
14
14
  readonly archive: Fr;
15
15
  /** The fee asset price modifier in basis points (from oracle) */
16
16
  readonly feeAssetPriceModifier: bigint;
17
+ /** The signing domain (chainId + rollupAddress) the signature is bound to */
18
+ readonly signatureContext: CoordinationSignatureContext;
19
+ readonly primaryType: CoordinationSignatureType;
17
20
  private size;
18
21
  constructor(
19
22
  /** The proposed block header the attestation is made over */
@@ -21,31 +24,37 @@ export declare class ConsensusPayload implements Signable {
21
24
  /** The archive root after the block is added */
22
25
  archive: Fr,
23
26
  /** The fee asset price modifier in basis points (from oracle) */
24
- feeAssetPriceModifier?: bigint);
27
+ feeAssetPriceModifier: bigint,
28
+ /** The signing domain (chainId + rollupAddress) the signature is bound to */
29
+ signatureContext: CoordinationSignatureContext);
25
30
  static get schema(): z.ZodEffects<z.ZodObject<{
26
31
  header: import("@aztec/foundation/schemas").ZodFor<CheckpointHeader>;
27
32
  archive: z.ZodType<Fr, any, string>;
28
33
  feeAssetPriceModifier: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
34
+ signatureContext: import("@aztec/foundation/schemas").ZodFor<CoordinationSignatureContext>;
29
35
  }, "strip", z.ZodTypeAny, {
30
36
  header: CheckpointHeader;
31
37
  archive: Fr;
32
38
  feeAssetPriceModifier: bigint;
39
+ signatureContext: CoordinationSignatureContext;
33
40
  }, {
34
41
  header?: any;
35
42
  archive: string;
36
43
  feeAssetPriceModifier: string | number | bigint;
44
+ signatureContext?: any;
37
45
  }>, ConsensusPayload, {
38
46
  header?: any;
39
47
  archive: string;
40
48
  feeAssetPriceModifier: string | number | bigint;
49
+ signatureContext?: any;
41
50
  }>;
42
- static getFields(fields: FieldsOf<ConsensusPayload>): readonly [CheckpointHeader, Fr, bigint];
43
- getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
51
+ static getFields(fields: Omit<FieldsOf<ConsensusPayload>, 'primaryType'>): readonly [CheckpointHeader, Fr, bigint, CoordinationSignatureContext];
52
+ getPayloadToSign(): Buffer;
44
53
  toBuffer(): Buffer;
45
54
  equals(other: ConsensusPayload | CheckpointProposal | CheckpointProposalCore): boolean;
46
55
  static fromBuffer(buf: Buffer | BufferReader): ConsensusPayload;
47
- static fromFields(fields: FieldsOf<ConsensusPayload>): ConsensusPayload;
48
- static fromCheckpoint(checkpoint: Checkpoint): ConsensusPayload;
56
+ static fromFields(fields: Omit<FieldsOf<ConsensusPayload>, 'primaryType'>): ConsensusPayload;
57
+ static fromCheckpoint(checkpoint: Checkpoint, signatureContext: CoordinationSignatureContext): ConsensusPayload;
49
58
  static empty(): ConsensusPayload;
50
59
  static random(): ConsensusPayload;
51
60
  /**
@@ -72,7 +81,9 @@ export declare class ConsensusPayload implements Signable {
72
81
  };
73
82
  archive: `0x${string}`;
74
83
  feeAssetPriceModifier: string;
84
+ chainId: number;
85
+ rollupAddress: `0x${string}`;
75
86
  };
76
87
  toString(): string;
77
88
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2Vuc3VzX3BheWxvYWQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvY29uc2Vuc3VzX3BheWxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQTRDLE1BQU0sNkJBQTZCLENBQUM7QUFFckcsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHeEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNGLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9FLCtFQUErRTtBQUMvRSxxQkFBYSxnQkFBaUIsWUFBVyxRQUFRO0lBSTdDLDZEQUE2RDthQUM3QyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hDLGdEQUFnRDthQUNoQyxPQUFPLEVBQUUsRUFBRTtJQUMzQixpRUFBaUU7YUFDakQscUJBQXFCLEVBQUUsTUFBTTtJQVIvQyxPQUFPLENBQUMsSUFBSSxDQUFxQjtJQUVqQztJQUNFLDZEQUE2RDtJQUM3QyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hDLGdEQUFnRDtJQUNoQyxPQUFPLEVBQUUsRUFBRTtJQUMzQixpRUFBaUU7SUFDakQscUJBQXFCLEdBQUUsTUFBVyxFQUNoRDtJQUVKLE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7O09BUWhCO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLDJDQUVsRDtJQUVELGdCQUFnQixDQUFDLGVBQWUsRUFBRSx3QkFBd0IsR0FBRyxNQUFNLENBa0JsRTtJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRU0sTUFBTSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxzQkFBc0IsR0FBRyxPQUFPLENBUTVGO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxnQkFBZ0IsQ0FROUQ7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxnQkFBZ0IsQ0FFdEU7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxVQUFVLEdBQUcsZ0JBQWdCLENBRTlEO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxnQkFBZ0IsQ0FFL0I7SUFFRCxNQUFNLENBQUMsTUFBTSxJQUFJLGdCQUFnQixDQUVoQztJQUVEOzs7T0FHRztJQUNILE9BQU8sSUFBSSxNQUFNLENBT2hCO0lBRUQsU0FBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQU1SO0lBRUQsUUFBUSxXQUVQO0NBQ0YifQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2Vuc3VzX3BheWxvYWQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvY29uc2Vuc3VzX3BheWxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQTRDLE1BQU0sNkJBQTZCLENBQUM7QUFFckcsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHeEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNGLE9BQU8sRUFDTCxLQUFLLDRCQUE0QixFQUNqQyxLQUFLLHlCQUF5QixFQUU5QixLQUFLLFFBQVEsRUFLZCxNQUFNLHNCQUFzQixDQUFDO0FBRTlCLCtFQUErRTtBQUMvRSxxQkFBYSxnQkFBaUIsWUFBVyxRQUFRO0lBTTdDLDZEQUE2RDthQUM3QyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hDLGdEQUFnRDthQUNoQyxPQUFPLEVBQUUsRUFBRTtJQUMzQixpRUFBaUU7YUFDakQscUJBQXFCLEVBQUUsTUFBTTtJQUM3Qyw2RUFBNkU7YUFDN0QsZ0JBQWdCLEVBQUUsNEJBQTRCO0lBWmhFLFFBQVEsQ0FBQyxXQUFXLEVBQUUseUJBQXlCLENBQTJCO0lBRTFFLE9BQU8sQ0FBQyxJQUFJLENBQXFCO0lBRWpDO0lBQ0UsNkRBQTZEO0lBQzdDLE1BQU0sRUFBRSxnQkFBZ0I7SUFDeEMsZ0RBQWdEO0lBQ2hDLE9BQU8sRUFBRSxFQUFFO0lBQzNCLGlFQUFpRTtJQUNqRCxxQkFBcUIsRUFBRSxNQUFNO0lBQzdDLDZFQUE2RTtJQUM3RCxnQkFBZ0IsRUFBRSw0QkFBNEIsRUFDNUQ7SUFFSixNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FTaEI7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsYUFBYSxDQUFDLHlFQUV2RTtJQUVELGdCQUFnQixJQUFJLE1BQU0sQ0FjekI7SUFFRCxRQUFRLElBQUksTUFBTSxDQU9qQjtJQUVNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEdBQUcsa0JBQWtCLEdBQUcsc0JBQXNCLEdBQUcsT0FBTyxDQVM1RjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsZ0JBQWdCLENBTzlEO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxHQUFHLGdCQUFnQixDQUUzRjtJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSw0QkFBNEIsR0FBRyxnQkFBZ0IsQ0FPOUc7SUFFRCxNQUFNLENBQUMsS0FBSyxJQUFJLGdCQUFnQixDQUUvQjtJQUVELE1BQU0sQ0FBQyxNQUFNLElBQUksZ0JBQWdCLENBRWhDO0lBRUQ7OztPQUdHO0lBQ0gsT0FBTyxJQUFJLE1BQU0sQ0FPaEI7SUFFRCxTQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFRUjtJQUVELFFBQVEsV0FFUDtDQUNGIn0=
@@ -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,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAA4C,MAAM,6BAA6B,CAAC;AAErG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,+EAA+E;AAC/E,qBAAa,gBAAiB,YAAW,QAAQ;IAI7C,6DAA6D;aAC7C,MAAM,EAAE,gBAAgB;IACxC,gDAAgD;aAChC,OAAO,EAAE,EAAE;IAC3B,iEAAiE;aACjD,qBAAqB,EAAE,MAAM;IAR/C,OAAO,CAAC,IAAI,CAAqB;IAEjC;IACE,6DAA6D;IAC7C,MAAM,EAAE,gBAAgB;IACxC,gDAAgD;IAChC,OAAO,EAAE,EAAE;IAC3B,iEAAiE;IACjD,qBAAqB,GAAE,MAAW,EAChD;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,2CAElD;IAED,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM,CAkBlE;IAED,QAAQ,IAAI,MAAM,CAEjB;IAEM,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,OAAO,CAQ5F;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAQ9D;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAEtE;IAED,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,gBAAgB,CAE9D;IAED,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAE/B;IAED,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAEhC;IAED;;;OAGG;IACH,OAAO,IAAI,MAAM,CAOhB;IAED,SAAS;;;;;;;;;;;;;;;;;;;MAMR;IAED,QAAQ,WAEP;CACF"}
1
+ {"version":3,"file":"consensus_payload.d.ts","sourceRoot":"","sources":["../../src/p2p/consensus_payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAA4C,MAAM,6BAA6B,CAAC;AAErG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAE9B,KAAK,QAAQ,EAKd,MAAM,sBAAsB,CAAC;AAE9B,+EAA+E;AAC/E,qBAAa,gBAAiB,YAAW,QAAQ;IAM7C,6DAA6D;aAC7C,MAAM,EAAE,gBAAgB;IACxC,gDAAgD;aAChC,OAAO,EAAE,EAAE;IAC3B,iEAAiE;aACjD,qBAAqB,EAAE,MAAM;IAC7C,6EAA6E;aAC7D,gBAAgB,EAAE,4BAA4B;IAZhE,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAA2B;IAE1E,OAAO,CAAC,IAAI,CAAqB;IAEjC;IACE,6DAA6D;IAC7C,MAAM,EAAE,gBAAgB;IACxC,gDAAgD;IAChC,OAAO,EAAE,EAAE;IAC3B,iEAAiE;IACjD,qBAAqB,EAAE,MAAM;IAC7C,6EAA6E;IAC7D,gBAAgB,EAAE,4BAA4B,EAC5D;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;OAShB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,yEAEvE;IAED,gBAAgB,IAAI,MAAM,CAczB;IAED,QAAQ,IAAI,MAAM,CAOjB;IAEM,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,OAAO,CAS5F;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAO9D;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,GAAG,gBAAgB,CAE3F;IAED,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,4BAA4B,GAAG,gBAAgB,CAO9G;IAED,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAE/B;IAED,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAEhC;IAED;;;OAGG;IACH,OAAO,IAAI,MAAM,CAOhB;IAED,SAAS;;;;;;;;;;;;;;;;;;;;;MAQR;IAED,QAAQ,WAEP;CACF"}
@@ -5,40 +5,46 @@ import { hexToBuffer } from '@aztec/foundation/string';
5
5
  import { encodeAbiParameters, parseAbiParameters } from 'viem';
6
6
  import { z } from 'zod';
7
7
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
8
+ import { EMPTY_COORDINATION_SIGNATURE_CONTEXT, coordinationSignatureContextEquals, coordinationSignatureContextSchema, readCoordinationSignatureContext, serializeCoordinationSignatureContext } from './signature_utils.js';
8
9
  /** Checkpoint consensus payload as signed by validators and verified on L1. */ export class ConsensusPayload {
9
10
  header;
10
11
  archive;
11
12
  feeAssetPriceModifier;
13
+ signatureContext;
14
+ primaryType;
12
15
  size;
13
- constructor(/** The proposed block header the attestation is made over */ header, /** The archive root after the block is added */ archive, /** The fee asset price modifier in basis points (from oracle) */ feeAssetPriceModifier = 0n){
16
+ constructor(/** The proposed block header the attestation is made over */ header, /** The archive root after the block is added */ archive, /** The fee asset price modifier in basis points (from oracle) */ feeAssetPriceModifier, /** The signing domain (chainId + rollupAddress) the signature is bound to */ signatureContext){
14
17
  this.header = header;
15
18
  this.archive = archive;
16
19
  this.feeAssetPriceModifier = feeAssetPriceModifier;
20
+ this.signatureContext = signatureContext;
21
+ this.primaryType = 'CheckpointAttestation';
17
22
  }
18
23
  static get schema() {
19
24
  return z.object({
20
25
  header: CheckpointHeader.schema,
21
26
  archive: schemas.Fr,
22
- feeAssetPriceModifier: schemas.BigInt
23
- }).transform((obj)=>new ConsensusPayload(obj.header, obj.archive, obj.feeAssetPriceModifier));
27
+ feeAssetPriceModifier: schemas.BigInt,
28
+ signatureContext: coordinationSignatureContextSchema
29
+ }).transform((obj)=>new ConsensusPayload(obj.header, obj.archive, obj.feeAssetPriceModifier, obj.signatureContext));
24
30
  }
25
31
  static getFields(fields) {
26
32
  return [
27
33
  fields.header,
28
34
  fields.archive,
29
- fields.feeAssetPriceModifier
35
+ fields.feeAssetPriceModifier,
36
+ fields.signatureContext
30
37
  ];
31
38
  }
32
- getPayloadToSign(domainSeparator) {
33
- const abi = parseAbiParameters('uint8, ' + //domainSeperator
34
- '(' + 'bytes32, ' + // archive
39
+ getPayloadToSign() {
40
+ // Matches the L1 ProposePayload struct in ProposeLib.sol.
41
+ const abi = parseAbiParameters('(' + 'bytes32, ' + // archive
35
42
  '(int256), ' + // oracleInput
36
43
  'bytes32' + // headerHash
37
44
  ')');
38
45
  const archiveRoot = this.archive.toString();
39
46
  const headerHash = this.header.hash().toString();
40
47
  const encodedData = encodeAbiParameters(abi, [
41
- domainSeparator,
42
48
  [
43
49
  archiveRoot,
44
50
  [
@@ -53,30 +59,34 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
53
59
  return serializeToBuffer([
54
60
  this.header,
55
61
  this.archive,
56
- serializeSignedBigInt(this.feeAssetPriceModifier)
62
+ serializeSignedBigInt(this.feeAssetPriceModifier),
63
+ serializeCoordinationSignatureContext(this.signatureContext)
57
64
  ]);
58
65
  }
59
66
  equals(other) {
60
67
  const otherHeader = 'checkpointHeader' in other ? other.checkpointHeader : other.header;
61
68
  const otherModifier = 'feeAssetPriceModifier' in other ? other.feeAssetPriceModifier : 0n;
62
- return this.header.equals(otherHeader) && this.archive.equals(other.archive) && this.feeAssetPriceModifier === otherModifier;
69
+ return this.header.equals(otherHeader) && this.archive.equals(other.archive) && this.feeAssetPriceModifier === otherModifier && coordinationSignatureContextEquals(this.signatureContext, other.signatureContext);
63
70
  }
64
71
  static fromBuffer(buf) {
65
72
  const reader = BufferReader.asReader(buf);
66
- const payload = new ConsensusPayload(reader.readObject(CheckpointHeader), reader.readObject(Fr), reader.readInt256());
67
- return payload;
73
+ const header = reader.readObject(CheckpointHeader);
74
+ const archive = reader.readObject(Fr);
75
+ const feeAssetPriceModifier = reader.readInt256();
76
+ const signatureContext = readCoordinationSignatureContext(reader);
77
+ return new ConsensusPayload(header, archive, feeAssetPriceModifier, signatureContext);
68
78
  }
69
79
  static fromFields(fields) {
70
- return new ConsensusPayload(fields.header, fields.archive, fields.feeAssetPriceModifier);
80
+ return new ConsensusPayload(fields.header, fields.archive, fields.feeAssetPriceModifier, fields.signatureContext);
71
81
  }
72
- static fromCheckpoint(checkpoint) {
73
- return new ConsensusPayload(checkpoint.header, checkpoint.archive.root, checkpoint.feeAssetPriceModifier);
82
+ static fromCheckpoint(checkpoint, signatureContext) {
83
+ return new ConsensusPayload(checkpoint.header, checkpoint.archive.root, checkpoint.feeAssetPriceModifier, signatureContext);
74
84
  }
75
85
  static empty() {
76
- return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, 0n);
86
+ return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, 0n, EMPTY_COORDINATION_SIGNATURE_CONTEXT);
77
87
  }
78
88
  static random() {
79
- return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), 0n);
89
+ return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), 0n, EMPTY_COORDINATION_SIGNATURE_CONTEXT);
80
90
  }
81
91
  /**
82
92
  * Get the size of the consensus payload in bytes.
@@ -93,10 +103,12 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
93
103
  return {
94
104
  header: this.header.toInspect(),
95
105
  archive: this.archive.toString(),
96
- feeAssetPriceModifier: this.feeAssetPriceModifier.toString()
106
+ feeAssetPriceModifier: this.feeAssetPriceModifier.toString(),
107
+ chainId: this.signatureContext.chainId,
108
+ rollupAddress: this.signatureContext.rollupAddress.toString()
97
109
  };
98
110
  }
99
111
  toString() {
100
- return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, feeAssetPriceModifier: ${this.feeAssetPriceModifier}}`;
112
+ return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, feeAssetPriceModifier: ${this.feeAssetPriceModifier}, chainId: ${this.signatureContext.chainId}, rollupAddress: ${this.signatureContext.rollupAddress.toString()}`;
101
113
  }
102
114
  }
@@ -1,4 +1,4 @@
1
- import { Buffer32 } from '@aztec/foundation/buffer';
1
+ import { BaseBuffer32 } from '@aztec/foundation/buffer';
2
2
  import type { TopicType } from './topic_type.js';
3
3
  export declare class P2PMessage {
4
4
  readonly payload: Buffer;
@@ -22,8 +22,8 @@ export declare abstract class Gossipable {
22
22
  * A digest of the message information **used for logging only**.
23
23
  * The identifier used for deduplication is `getMsgIdFn` as defined in `encoding.ts` which is a hash over topic and data.
24
24
  */
25
- p2pMessageLoggingIdentifier(): Promise<Buffer32>;
26
- abstract generateP2PMessageIdentifier(): Promise<Buffer32>;
25
+ p2pMessageLoggingIdentifier(): Promise<BaseBuffer32>;
26
+ abstract generateP2PMessageIdentifier(): Promise<BaseBuffer32>;
27
27
  abstract toBuffer(): Buffer;
28
28
  toMessage(): Buffer;
29
29
  /**
@@ -32,4 +32,4 @@ export declare abstract class Gossipable {
32
32
  */
33
33
  abstract getSize(): number;
34
34
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29zc2lwYWJsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9nb3NzaXBhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxxQkFBYSxVQUFVO2FBRUgsT0FBTyxFQUFFLE1BQU07YUFDZixTQUFTLENBQUM7YUFDVixZQUFZLENBQUM7SUFIL0IsWUFDa0IsT0FBTyxFQUFFLE1BQU0sRUFDZixTQUFTLENBQUMsa0JBQU0sRUFDaEIsWUFBWSxDQUFDLG9CQUFRLEVBQ25DO0lBRUosTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixVQUFRLEVBQUUsWUFBWSxDQUFDLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FLeEc7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLFVBQVEsR0FBRyxVQUFVLENBVWxGO0lBRUQsYUFBYSxJQUFJLE1BQU0sQ0FRdEI7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCw4QkFBc0IsVUFBVTtJQUM5QixPQUFPLENBQUMsUUFBUSxDQUF1QjtJQUN2QywyRUFBMkU7SUFDM0UsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7SUFFM0I7OztPQUdHO0lBQ0csMkJBQTJCLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQU1yRDtJQUVELFFBQVEsQ0FBQyw0QkFBNEIsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFM0QsUUFBUSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUM7SUFFNUIsU0FBUyxJQUFJLE1BQU0sQ0FFbEI7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQztDQUM1QiJ9
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29zc2lwYWJsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9nb3NzaXBhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd4RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxxQkFBYSxVQUFVO2FBRUgsT0FBTyxFQUFFLE1BQU07YUFDZixTQUFTLENBQUM7YUFDVixZQUFZLENBQUM7SUFIL0IsWUFDa0IsT0FBTyxFQUFFLE1BQU0sRUFDZixTQUFTLENBQUMsa0JBQU0sRUFDaEIsWUFBWSxDQUFDLG9CQUFRLEVBQ25DO0lBRUosTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixVQUFRLEVBQUUsWUFBWSxDQUFDLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FLeEc7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLFVBQVEsR0FBRyxVQUFVLENBVWxGO0lBRUQsYUFBYSxJQUFJLE1BQU0sQ0FRdEI7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCw4QkFBc0IsVUFBVTtJQUM5QixPQUFPLENBQUMsUUFBUSxDQUEyQjtJQUMzQywyRUFBMkU7SUFDM0UsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7SUFFM0I7OztPQUdHO0lBQ0csMkJBQTJCLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQU16RDtJQUVELFFBQVEsQ0FBQyw0QkFBNEIsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFL0QsUUFBUSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUM7SUFFNUIsU0FBUyxJQUFJLE1BQU0sQ0FFbEI7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQztDQUM1QiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"gossipable.d.ts","sourceRoot":"","sources":["../../src/p2p/gossipable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;aAEH,OAAO,EAAE,MAAM;aACf,SAAS,CAAC;aACV,YAAY,CAAC;IAH/B,YACkB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,kBAAM,EAChB,YAAY,CAAC,oBAAQ,EACnC;IAEJ,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,UAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAKxG;IAED,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,UAAQ,GAAG,UAAU,CAUlF;IAED,aAAa,IAAI,MAAM,CAQtB;CACF;AAED;;;;GAIG;AACH,8BAAsB,UAAU;IAC9B,OAAO,CAAC,QAAQ,CAAuB;IACvC,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;IAE3B;;;OAGG;IACG,2BAA2B,IAAI,OAAO,CAAC,QAAQ,CAAC,CAMrD;IAED,QAAQ,CAAC,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE3D,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC;IAE5B,SAAS,IAAI,MAAM,CAElB;IAED;;;OAGG;IACH,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"gossipable.d.ts","sourceRoot":"","sources":["../../src/p2p/gossipable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;aAEH,OAAO,EAAE,MAAM;aACf,SAAS,CAAC;aACV,YAAY,CAAC;IAH/B,YACkB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,kBAAM,EAChB,YAAY,CAAC,oBAAQ,EACnC;IAEJ,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,UAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAKxG;IAED,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,UAAQ,GAAG,UAAU,CAUlF;IAED,aAAa,IAAI,MAAM,CAQtB;CACF;AAED;;;;GAIG;AACH,8BAAsB,UAAU;IAC9B,OAAO,CAAC,QAAQ,CAA2B;IAC3C,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;IAE3B;;;OAGG;IACG,2BAA2B,IAAI,OAAO,CAAC,YAAY,CAAC,CAMzD;IAED,QAAQ,CAAC,4BAA4B,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/D,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC;IAE5B,SAAS,IAAI,MAAM,CAElB;IAED;;;OAGG;IACH,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC;CAC5B"}
@@ -8,8 +8,7 @@ export * from './interface.js';
8
8
  export * from './signature_utils.js';
9
9
  export * from './signed_txs.js';
10
10
  export * from './topic_type.js';
11
- export * from './client_type.js';
12
11
  export * from './message_validator.js';
13
12
  export * from './peer_error.js';
14
13
  export * from './constants.js';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdCQUFnQixDQUFDIn0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
package/dest/p2p/index.js CHANGED
@@ -8,7 +8,6 @@ export * from './interface.js';
8
8
  export * from './signature_utils.js';
9
9
  export * from './signed_txs.js';
10
10
  export * from './topic_type.js';
11
- export * from './client_type.js';
12
11
  export * from './message_validator.js';
13
12
  export * from './peer_error.js';
14
13
  export * from './constants.js';
@@ -15,4 +15,6 @@ export declare enum PeerErrorSeverity {
15
15
  */
16
16
  HighToleranceError = "HighToleranceError"
17
17
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVlcl9lcnJvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9wZWVyX2Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFZLGlCQUFpQjtJQUMzQjs7O09BR0c7SUFDSCxpQkFBaUIsc0JBQXNCO0lBQ3ZDOzs7T0FHRztJQUNILGlCQUFpQixzQkFBc0I7SUFDdkM7OztPQUdHO0lBQ0gsa0JBQWtCLHVCQUF1QjtDQUMxQyJ9
18
+ /** Severities ordered from mildest to harshest. */
19
+ export declare const PeerErrorSeverityByHarshness: readonly [PeerErrorSeverity.HighToleranceError, PeerErrorSeverity.MidToleranceError, PeerErrorSeverity.LowToleranceError];
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVlcl9lcnJvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9wZWVyX2Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFZLGlCQUFpQjtJQUMzQjs7O09BR0c7SUFDSCxpQkFBaUIsc0JBQXNCO0lBQ3ZDOzs7T0FHRztJQUNILGlCQUFpQixzQkFBc0I7SUFDdkM7OztPQUdHO0lBQ0gsa0JBQWtCLHVCQUF1QjtDQUMxQztBQUVELG1EQUFtRDtBQUNuRCxlQUFPLE1BQU0sNEJBQTRCLDJIQUkvQixDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"peer_error.d.ts","sourceRoot":"","sources":["../../src/p2p/peer_error.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B;;;OAGG;IACH,iBAAiB,sBAAsB;IACvC;;;OAGG;IACH,iBAAiB,sBAAsB;IACvC;;;OAGG;IACH,kBAAkB,uBAAuB;CAC1C"}
1
+ {"version":3,"file":"peer_error.d.ts","sourceRoot":"","sources":["../../src/p2p/peer_error.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B;;;OAGG;IACH,iBAAiB,sBAAsB;IACvC;;;OAGG;IACH,iBAAiB,sBAAsB;IACvC;;;OAGG;IACH,kBAAkB,uBAAuB;CAC1C;AAED,mDAAmD;AACnD,eAAO,MAAM,4BAA4B,2HAI/B,CAAC"}
@@ -13,3 +13,8 @@ export var PeerErrorSeverity = /*#__PURE__*/ function(PeerErrorSeverity) {
13
13
  */ PeerErrorSeverity["HighToleranceError"] = "HighToleranceError";
14
14
  return PeerErrorSeverity;
15
15
  }({});
16
+ /** Severities ordered from mildest to harshest. */ export const PeerErrorSeverityByHarshness = [
17
+ "HighToleranceError",
18
+ "MidToleranceError",
19
+ "LowToleranceError"
20
+ ];
@@ -1,24 +1,33 @@
1
1
  import { Buffer32 } from '@aztec/foundation/buffer';
2
- export declare enum SignatureDomainSeparator {
3
- blockProposal = 0,
4
- checkpointAttestation = 1,
5
- attestationsAndSigners = 2,
6
- checkpointProposal = 3,
7
- signedTxs = 4
8
- }
2
+ import { EthAddress } from '@aztec/foundation/eth-address';
3
+ import type { Signature } from '@aztec/foundation/eth-signature';
4
+ import { type BufferReader } from '@aztec/foundation/serialize';
5
+ import { type TypedDataDefinition } from 'viem';
6
+ import type { ZodFor } from '../schemas/index.js';
7
+ export type CoordinationSignatureType = 'BlockProposal' | 'CheckpointProposal' | 'CheckpointAttestation' | 'AttestationsAndSigners' | 'SignedTxs';
8
+ export type CoordinationSignatureContext = {
9
+ chainId: number;
10
+ rollupAddress: EthAddress;
11
+ };
12
+ export declare const EMPTY_COORDINATION_SIGNATURE_CONTEXT: CoordinationSignatureContext;
13
+ export declare const coordinationSignatureContextSchema: ZodFor<CoordinationSignatureContext>;
9
14
  export interface Signable {
10
- getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
15
+ readonly primaryType: CoordinationSignatureType;
16
+ readonly signatureContext: CoordinationSignatureContext;
17
+ getPayloadToSign(): Buffer;
11
18
  }
19
+ export declare function coordinationSignatureContextEquals(a: CoordinationSignatureContext, b: CoordinationSignatureContext): boolean;
20
+ export declare function serializeCoordinationSignatureContext(ctx: CoordinationSignatureContext): Buffer;
21
+ export declare function readCoordinationSignatureContext(reader: BufferReader): CoordinationSignatureContext;
12
22
  /**
13
- * Get the hashed payload for the signature of the `Signable`
14
- * @param s - The `Signable` to sign
15
- * @returns The hashed payload for the signature of the `Signable`
16
- */
17
- export declare function getHashedSignaturePayload(s: Signable, domainSeparator: SignatureDomainSeparator): Buffer32;
18
- /**
19
- * Get the hashed payload for the signature of the `Signable` as an Ethereum signed message EIP-712
20
- * @param s - the `Signable` to sign
21
- * @returns The hashed payload for the signature of the `Signable` as an Ethereum signed message
23
+ * Returns true if the signable carries a context matching the node's expected context.
24
+ * Use this at the P2P ingress boundary to reject foreign-chain messages cheaply before
25
+ * performing any signature recovery.
22
26
  */
23
- export declare function getHashedSignaturePayloadEthSignedMessage(s: Signable, domainSeparator: SignatureDomainSeparator): Buffer32;
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlX3V0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcDJwL3NpZ25hdHVyZV91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJcEQsb0JBQVksd0JBQXdCO0lBQ2xDLGFBQWEsSUFBSTtJQUNqQixxQkFBcUIsSUFBSTtJQUN6QixzQkFBc0IsSUFBSTtJQUMxQixrQkFBa0IsSUFBSTtJQUN0QixTQUFTLElBQUk7Q0FDZDtBQUVELE1BQU0sV0FBVyxRQUFRO0lBQ3ZCLGdCQUFnQixDQUFDLGVBQWUsRUFBRSx3QkFBd0IsR0FBRyxNQUFNLENBQUM7Q0FDckU7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixHQUFHLFFBQVEsQ0FFMUc7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHlDQUF5QyxDQUN2RCxDQUFDLEVBQUUsUUFBUSxFQUNYLGVBQWUsRUFBRSx3QkFBd0IsR0FDeEMsUUFBUSxDQUdWIn0=
27
+ export declare function hasValidSignatureContext(signable: Signable, expected: CoordinationSignatureContext): boolean;
28
+ export declare function getCoordinationSignatureTypedDataForPayloadHash(payloadHash: Buffer32, type: CoordinationSignatureType, context: CoordinationSignatureContext): TypedDataDefinition;
29
+ export declare function getCoordinationSignatureTypedData(signable: Signable): TypedDataDefinition;
30
+ export declare function getHashedSignaturePayloadTypedData(signable: Signable): Buffer32;
31
+ export declare function recoverCoordinationSigner(signable: Signable, signature: Signature): EthAddress | undefined;
32
+ export declare function getHashedSignaturePayload(s: Signable): Buffer32;
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlX3V0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcDJwL3NpZ25hdHVyZV91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRixPQUFPLEVBQUUsS0FBSyxtQkFBbUIsRUFBaUIsTUFBTSxNQUFNLENBQUM7QUFHL0QsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsTUFBTSxNQUFNLHlCQUF5QixHQUNqQyxlQUFlLEdBQ2Ysb0JBQW9CLEdBQ3BCLHVCQUF1QixHQUN2Qix3QkFBd0IsR0FDeEIsV0FBVyxDQUFDO0FBRWhCLE1BQU0sTUFBTSw0QkFBNEIsR0FBRztJQUN6QyxPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLGFBQWEsRUFBRSxVQUFVLENBQUM7Q0FDM0IsQ0FBQztBQUVGLGVBQU8sTUFBTSxvQ0FBb0MsRUFBRSw0QkFHbEQsQ0FBQztBQUVGLGVBQU8sTUFBTSxrQ0FBa0MsRUFBRSxNQUFNLENBQUMsNEJBQTRCLENBR2xGLENBQUM7QUFFSCxNQUFNLFdBQVcsUUFBUTtJQUN2QixRQUFRLENBQUMsV0FBVyxFQUFFLHlCQUF5QixDQUFDO0lBQ2hELFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSw0QkFBNEIsQ0FBQztJQUN4RCxnQkFBZ0IsSUFBSSxNQUFNLENBQUM7Q0FDNUI7QUFFRCx3QkFBZ0Isa0NBQWtDLENBQ2hELENBQUMsRUFBRSw0QkFBNEIsRUFDL0IsQ0FBQyxFQUFFLDRCQUE0QixHQUM5QixPQUFPLENBRVQ7QUFFRCx3QkFBZ0IscUNBQXFDLENBQUMsR0FBRyxFQUFFLDRCQUE0QixHQUFHLE1BQU0sQ0FFL0Y7QUFFRCx3QkFBZ0IsZ0NBQWdDLENBQUMsTUFBTSxFQUFFLFlBQVksR0FBRyw0QkFBNEIsQ0FJbkc7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLDRCQUE0QixHQUFHLE9BQU8sQ0FFNUc7QUFxQkQsd0JBQWdCLCtDQUErQyxDQUM3RCxXQUFXLEVBQUUsUUFBUSxFQUNyQixJQUFJLEVBQUUseUJBQXlCLEVBQy9CLE9BQU8sRUFBRSw0QkFBNEIsR0FDcEMsbUJBQW1CLENBY3JCO0FBRUQsd0JBQWdCLGlDQUFpQyxDQUFDLFFBQVEsRUFBRSxRQUFRLEdBQUcsbUJBQW1CLENBR3pGO0FBRUQsd0JBQWdCLGtDQUFrQyxDQUFDLFFBQVEsRUFBRSxRQUFRLEdBQUcsUUFBUSxDQUUvRTtBQUVELHdCQUFnQix5QkFBeUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEdBQUcsVUFBVSxHQUFHLFNBQVMsQ0FHMUc7QUFFRCx3QkFBZ0IseUJBQXlCLENBQUMsQ0FBQyxFQUFFLFFBQVEsR0FBRyxRQUFRLENBRS9EIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"signature_utils.d.ts","sourceRoot":"","sources":["../../src/p2p/signature_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIpD,oBAAY,wBAAwB;IAClC,aAAa,IAAI;IACjB,qBAAqB,IAAI;IACzB,sBAAsB,IAAI;IAC1B,kBAAkB,IAAI;IACtB,SAAS,IAAI;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM,CAAC;CACrE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,wBAAwB,GAAG,QAAQ,CAE1G;AAED;;;;GAIG;AACH,wBAAgB,yCAAyC,CACvD,CAAC,EAAE,QAAQ,EACX,eAAe,EAAE,wBAAwB,GACxC,QAAQ,CAGV"}
1
+ {"version":3,"file":"signature_utils.d.ts","sourceRoot":"","sources":["../../src/p2p/signature_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAEnF,OAAO,EAAE,KAAK,mBAAmB,EAAiB,MAAM,MAAM,CAAC;AAG/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,MAAM,yBAAyB,GACjC,eAAe,GACf,oBAAoB,GACpB,uBAAuB,GACvB,wBAAwB,GACxB,WAAW,CAAC;AAEhB,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,UAAU,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,oCAAoC,EAAE,4BAGlD,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,MAAM,CAAC,4BAA4B,CAGlF,CAAC;AAEH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC;IAChD,QAAQ,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;IACxD,gBAAgB,IAAI,MAAM,CAAC;CAC5B;AAED,wBAAgB,kCAAkC,CAChD,CAAC,EAAE,4BAA4B,EAC/B,CAAC,EAAE,4BAA4B,GAC9B,OAAO,CAET;AAED,wBAAgB,qCAAqC,CAAC,GAAG,EAAE,4BAA4B,GAAG,MAAM,CAE/F;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,YAAY,GAAG,4BAA4B,CAInG;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,4BAA4B,GAAG,OAAO,CAE5G;AAqBD,wBAAgB,+CAA+C,CAC7D,WAAW,EAAE,QAAQ,EACrB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,4BAA4B,GACpC,mBAAmB,CAcrB;AAED,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,GAAG,mBAAmB,CAGzF;AAED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAE/E;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAG1G;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAE/D"}