@aztec/stdlib 0.0.1-commit.86469d5 → 0.0.1-commit.8655d4a

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 (1050) hide show
  1. package/dest/abi/abi.d.ts +142 -1081
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +41 -18
  4. package/dest/abi/authorization_selector.d.ts +4 -7
  5. package/dest/abi/authorization_selector.d.ts.map +1 -1
  6. package/dest/abi/buffer.d.ts +14 -4
  7. package/dest/abi/buffer.d.ts.map +1 -1
  8. package/dest/abi/buffer.js +25 -4
  9. package/dest/abi/contract_artifact.d.ts +1 -1
  10. package/dest/abi/contract_artifact.d.ts.map +1 -1
  11. package/dest/abi/contract_artifact.js +14 -7
  12. package/dest/abi/decoder.d.ts +6 -45
  13. package/dest/abi/decoder.d.ts.map +1 -1
  14. package/dest/abi/decoder.js +17 -70
  15. package/dest/abi/encoder.d.ts +1 -1
  16. package/dest/abi/encoder.d.ts.map +1 -1
  17. package/dest/abi/encoder.js +64 -7
  18. package/dest/abi/event_metadata_definition.d.ts +3 -1
  19. package/dest/abi/event_metadata_definition.d.ts.map +1 -1
  20. package/dest/abi/event_metadata_definition.js +1 -1
  21. package/dest/abi/event_selector.d.ts +4 -7
  22. package/dest/abi/event_selector.d.ts.map +1 -1
  23. package/dest/abi/function_call.d.ts +22 -10
  24. package/dest/abi/function_call.d.ts.map +1 -1
  25. package/dest/abi/function_call.js +20 -3
  26. package/dest/abi/function_selector.d.ts +3 -6
  27. package/dest/abi/function_selector.d.ts.map +1 -1
  28. package/dest/abi/function_selector.js +2 -4
  29. package/dest/abi/function_signature_decoder.d.ts +43 -0
  30. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  31. package/dest/abi/function_signature_decoder.js +66 -0
  32. package/dest/abi/index.d.ts +2 -1
  33. package/dest/abi/index.d.ts.map +1 -1
  34. package/dest/abi/index.js +1 -0
  35. package/dest/abi/note_selector.d.ts +4 -7
  36. package/dest/abi/note_selector.d.ts.map +1 -1
  37. package/dest/abi/note_selector.js +1 -3
  38. package/dest/abi/selector.d.ts +2 -2
  39. package/dest/abi/selector.d.ts.map +1 -1
  40. package/dest/abi/selector.js +1 -1
  41. package/dest/abi/utils.d.ts +14 -1
  42. package/dest/abi/utils.d.ts.map +1 -1
  43. package/dest/abi/utils.js +16 -1
  44. package/dest/auth_witness/auth_witness.d.ts +2 -2
  45. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  46. package/dest/auth_witness/auth_witness.js +3 -3
  47. package/dest/avm/avm.d.ts +1756 -10463
  48. package/dest/avm/avm.d.ts.map +1 -1
  49. package/dest/avm/avm.js +6 -3
  50. package/dest/avm/avm_accumulated_data.d.ts +22 -86
  51. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  52. package/dest/avm/avm_circuit_public_inputs.d.ts +180 -932
  53. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  54. package/dest/avm/avm_proving_request.d.ts +653 -5446
  55. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  56. package/dest/avm/message_pack.js +12 -3
  57. package/dest/avm/public_data_write.d.ts +6 -12
  58. package/dest/avm/public_data_write.d.ts.map +1 -1
  59. package/dest/avm/revert_code.d.ts +6 -7
  60. package/dest/avm/revert_code.d.ts.map +1 -1
  61. package/dest/avm/revert_code.js +13 -21
  62. package/dest/aztec-address/index.d.ts +8 -8
  63. package/dest/aztec-address/index.d.ts.map +1 -1
  64. package/dest/aztec-address/index.js +9 -6
  65. package/dest/block/attestation_info.d.ts +3 -2
  66. package/dest/block/attestation_info.d.ts.map +1 -1
  67. package/dest/block/attestation_info.js +7 -5
  68. package/dest/block/block_data.d.ts +27 -0
  69. package/dest/block/block_data.d.ts.map +1 -0
  70. package/dest/block/block_data.js +12 -0
  71. package/dest/block/block_hash.d.ts +11 -10
  72. package/dest/block/block_hash.d.ts.map +1 -1
  73. package/dest/block/block_hash.js +10 -9
  74. package/dest/block/block_parameter.d.ts +37 -4
  75. package/dest/block/block_parameter.d.ts.map +1 -1
  76. package/dest/block/block_parameter.js +53 -2
  77. package/dest/block/in_block.d.ts +5 -24
  78. package/dest/block/in_block.d.ts.map +1 -1
  79. package/dest/block/in_block.js +1 -1
  80. package/dest/block/index.d.ts +2 -2
  81. package/dest/block/index.d.ts.map +1 -1
  82. package/dest/block/index.js +1 -1
  83. package/dest/block/l2_block.d.ts +21 -41
  84. package/dest/block/l2_block.d.ts.map +1 -1
  85. package/dest/block/l2_block.js +12 -2
  86. package/dest/block/l2_block_info.d.ts +10 -29
  87. package/dest/block/l2_block_info.d.ts.map +1 -1
  88. package/dest/block/l2_block_info.js +6 -5
  89. package/dest/block/l2_block_source.d.ts +205 -333
  90. package/dest/block/l2_block_source.d.ts.map +1 -1
  91. package/dest/block/l2_block_source.js +67 -1
  92. package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
  93. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  94. package/dest/block/l2_block_stream/l2_block_stream.d.ts +2 -2
  95. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  96. package/dest/block/l2_block_stream/l2_block_stream.js +49 -12
  97. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +3 -1
  98. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  99. package/dest/block/l2_block_stream/l2_tips_memory_store.js +3 -0
  100. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +4 -1
  101. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  102. package/dest/block/l2_block_stream/l2_tips_store_base.js +43 -11
  103. package/dest/block/proposal/attestations_and_signers.d.ts +19 -30
  104. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  105. package/dest/block/proposal/attestations_and_signers.js +26 -18
  106. package/dest/block/proposal/committee_attestation.d.ts +6 -12
  107. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  108. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  109. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  110. package/dest/block/test/l2_tips_store_test_suite.js +5 -4
  111. package/dest/checkpoint/checkpoint.d.ts +48 -99
  112. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  113. package/dest/checkpoint/checkpoint.js +41 -17
  114. package/dest/checkpoint/checkpoint_data.d.ts +97 -0
  115. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
  116. package/dest/checkpoint/checkpoint_data.js +38 -0
  117. package/dest/checkpoint/checkpoint_info.d.ts +7 -23
  118. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
  119. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +60 -0
  120. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -0
  121. package/dest/checkpoint/checkpoint_reexecution_tracker.js +108 -0
  122. package/dest/checkpoint/digest.d.ts +18 -0
  123. package/dest/checkpoint/digest.d.ts.map +1 -0
  124. package/dest/checkpoint/digest.js +12 -0
  125. package/dest/checkpoint/index.d.ts +6 -1
  126. package/dest/checkpoint/index.d.ts.map +1 -1
  127. package/dest/checkpoint/index.js +5 -0
  128. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts +33 -0
  129. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts.map +1 -0
  130. package/dest/checkpoint/previous_checkpoint_out_hashes.js +45 -0
  131. package/dest/checkpoint/published_checkpoint.d.ts +53 -190
  132. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  133. package/dest/checkpoint/published_checkpoint.js +1 -2
  134. package/dest/checkpoint/validate.d.ts +36 -0
  135. package/dest/checkpoint/validate.d.ts.map +1 -0
  136. package/dest/checkpoint/validate.js +120 -0
  137. package/dest/config/chain-config.d.ts +4 -9
  138. package/dest/config/chain-config.d.ts.map +1 -1
  139. package/dest/config/chain-config.js +13 -12
  140. package/dest/config/index.d.ts +3 -1
  141. package/dest/config/index.d.ts.map +1 -1
  142. package/dest/config/index.js +2 -0
  143. package/dest/config/pipelining-config.d.ts +15 -0
  144. package/dest/config/pipelining-config.d.ts.map +1 -0
  145. package/dest/config/pipelining-config.js +18 -0
  146. package/dest/config/sequencer-config.d.ts +14 -0
  147. package/dest/config/sequencer-config.d.ts.map +1 -0
  148. package/dest/config/sequencer-config.js +38 -0
  149. package/dest/contract/complete_address.d.ts +3 -2
  150. package/dest/contract/complete_address.d.ts.map +1 -1
  151. package/dest/contract/complete_address.js +6 -2
  152. package/dest/contract/contract_address.d.ts +6 -6
  153. package/dest/contract/contract_address.d.ts.map +1 -1
  154. package/dest/contract/contract_address.js +9 -8
  155. package/dest/contract/contract_class.d.ts +2 -3
  156. package/dest/contract/contract_class.d.ts.map +1 -1
  157. package/dest/contract/contract_class_id.d.ts +3 -3
  158. package/dest/contract/contract_class_id.d.ts.map +1 -1
  159. package/dest/contract/contract_class_id.js +7 -6
  160. package/dest/contract/contract_deployment_data.d.ts +15 -61
  161. package/dest/contract/contract_deployment_data.d.ts.map +1 -1
  162. package/dest/contract/contract_instance.d.ts +4 -2
  163. package/dest/contract/contract_instance.d.ts.map +1 -1
  164. package/dest/contract/contract_instance.js +10 -3
  165. package/dest/contract/index.d.ts +1 -3
  166. package/dest/contract/index.d.ts.map +1 -1
  167. package/dest/contract/index.js +0 -2
  168. package/dest/contract/interfaces/contract_class.d.ts +17 -241
  169. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  170. package/dest/contract/interfaces/contract_class.js +1 -28
  171. package/dest/contract/interfaces/contract_instance.d.ts +41 -95
  172. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  173. package/dest/contract/interfaces/contract_instance.js +4 -2
  174. package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
  175. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  176. package/dest/contract/interfaces/node-info.d.ts +3 -1
  177. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  178. package/dest/contract/interfaces/node-info.js +2 -1
  179. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
  180. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  181. package/dest/contract/private_function.d.ts +1 -1
  182. package/dest/contract/private_function.d.ts.map +1 -1
  183. package/dest/contract/private_function.js +4 -6
  184. package/dest/database-version/database_version.d.ts +5 -11
  185. package/dest/database-version/database_version.d.ts.map +1 -1
  186. package/dest/database-version/version_manager.d.ts +6 -2
  187. package/dest/database-version/version_manager.d.ts.map +1 -1
  188. package/dest/database-version/version_manager.js +12 -1
  189. package/dest/epoch-helpers/index.d.ts +14 -18
  190. package/dest/epoch-helpers/index.d.ts.map +1 -1
  191. package/dest/epoch-helpers/index.js +18 -2
  192. package/dest/file-store/factory.d.ts +4 -3
  193. package/dest/file-store/factory.d.ts.map +1 -1
  194. package/dest/file-store/factory.js +2 -2
  195. package/dest/file-store/http.d.ts +9 -2
  196. package/dest/file-store/http.d.ts.map +1 -1
  197. package/dest/file-store/http.js +20 -9
  198. package/dest/file-store/index.d.ts +2 -1
  199. package/dest/file-store/index.d.ts.map +1 -1
  200. package/dest/file-store/local.d.ts +3 -3
  201. package/dest/file-store/local.d.ts.map +1 -1
  202. package/dest/file-store/local.js +13 -4
  203. package/dest/file-store/s3.d.ts +1 -1
  204. package/dest/file-store/s3.d.ts.map +1 -1
  205. package/dest/file-store/s3.js +11 -3
  206. package/dest/gas/fee_math.d.ts +49 -0
  207. package/dest/gas/fee_math.d.ts.map +1 -0
  208. package/dest/gas/fee_math.js +80 -0
  209. package/dest/gas/gas.d.ts +9 -14
  210. package/dest/gas/gas.d.ts.map +1 -1
  211. package/dest/gas/gas.js +6 -3
  212. package/dest/gas/gas_fees.d.ts +13 -14
  213. package/dest/gas/gas_fees.d.ts.map +1 -1
  214. package/dest/gas/gas_fees.js +20 -4
  215. package/dest/gas/gas_settings.d.ts +66 -86
  216. package/dest/gas/gas_settings.d.ts.map +1 -1
  217. package/dest/gas/gas_settings.js +56 -9
  218. package/dest/gas/index.d.ts +2 -1
  219. package/dest/gas/index.d.ts.map +1 -1
  220. package/dest/gas/index.js +1 -0
  221. package/dest/ha-signing/config.d.ts +72 -0
  222. package/dest/ha-signing/config.d.ts.map +1 -0
  223. package/dest/ha-signing/config.js +88 -0
  224. package/dest/ha-signing/index.d.ts +4 -0
  225. package/dest/ha-signing/index.d.ts.map +1 -0
  226. package/dest/ha-signing/index.js +3 -0
  227. package/dest/ha-signing/local_config.d.ts +32 -0
  228. package/dest/ha-signing/local_config.d.ts.map +1 -0
  229. package/dest/ha-signing/local_config.js +24 -0
  230. package/dest/ha-signing/types.d.ts +90 -0
  231. package/dest/ha-signing/types.d.ts.map +1 -0
  232. package/dest/ha-signing/types.js +39 -0
  233. package/dest/hash/hash.d.ts +35 -1
  234. package/dest/hash/hash.d.ts.map +1 -1
  235. package/dest/hash/hash.js +78 -11
  236. package/dest/hash/map_slot.js +2 -2
  237. package/dest/interfaces/allowed_element.d.ts +17 -35
  238. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  239. package/dest/interfaces/allowed_element.js +8 -8
  240. package/dest/interfaces/api_limit.d.ts +1 -1
  241. package/dest/interfaces/api_limit.js +1 -1
  242. package/dest/interfaces/archiver.d.ts +22 -32
  243. package/dest/interfaces/archiver.d.ts.map +1 -1
  244. package/dest/interfaces/archiver.js +209 -64
  245. package/dest/interfaces/aztec-node-admin.d.ts +106 -255
  246. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  247. package/dest/interfaces/aztec-node-admin.js +66 -17
  248. package/dest/interfaces/aztec-node-debug.d.ts +21 -0
  249. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  250. package/dest/interfaces/aztec-node-debug.js +21 -0
  251. package/dest/interfaces/aztec-node.d.ts +85 -102
  252. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  253. package/dest/interfaces/aztec-node.js +298 -68
  254. package/dest/interfaces/block-builder.d.ts +41 -12
  255. package/dest/interfaces/block-builder.d.ts.map +1 -1
  256. package/dest/interfaces/block-builder.js +13 -6
  257. package/dest/interfaces/block_response.d.ts +90 -0
  258. package/dest/interfaces/block_response.d.ts.map +1 -0
  259. package/dest/interfaces/block_response.js +30 -0
  260. package/dest/interfaces/chain_tips.d.ts +50 -0
  261. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  262. package/dest/interfaces/chain_tips.js +11 -0
  263. package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
  264. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  265. package/dest/interfaces/checkpoint_parameter.js +18 -0
  266. package/dest/interfaces/checkpoint_response.d.ts +122 -0
  267. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  268. package/dest/interfaces/checkpoint_response.js +26 -0
  269. package/dest/interfaces/client.d.ts +8 -2
  270. package/dest/interfaces/client.d.ts.map +1 -1
  271. package/dest/interfaces/client.js +7 -1
  272. package/dest/interfaces/configs.d.ts +73 -117
  273. package/dest/interfaces/configs.d.ts.map +1 -1
  274. package/dest/interfaces/configs.js +18 -3
  275. package/dest/interfaces/l1_publish_info.d.ts +29 -0
  276. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  277. package/dest/interfaces/l1_publish_info.js +26 -0
  278. package/dest/interfaces/l2_logs_source.d.ts +14 -34
  279. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  280. package/dest/interfaces/l2_logs_source.js +5 -0
  281. package/dest/interfaces/merkle_tree_operations.d.ts +13 -22
  282. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  283. package/dest/interfaces/p2p-bootstrap.js +8 -2
  284. package/dest/interfaces/p2p.d.ts +18 -13
  285. package/dest/interfaces/p2p.d.ts.map +1 -1
  286. package/dest/interfaces/p2p.js +28 -5
  287. package/dest/interfaces/private_kernel_prover.d.ts +62 -2
  288. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  289. package/dest/interfaces/prover-agent.d.ts +5 -23
  290. package/dest/interfaces/prover-agent.d.ts.map +1 -1
  291. package/dest/interfaces/prover-agent.js +4 -1
  292. package/dest/interfaces/prover-broker.d.ts +16 -1
  293. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  294. package/dest/interfaces/prover-broker.js +4 -1
  295. package/dest/interfaces/prover-client.d.ts +12 -23
  296. package/dest/interfaces/prover-client.d.ts.map +1 -1
  297. package/dest/interfaces/prover-client.js +12 -4
  298. package/dest/interfaces/prover-node.js +22 -8
  299. package/dest/interfaces/proving-job-source.js +24 -4
  300. package/dest/interfaces/proving-job.d.ts +742 -5793
  301. package/dest/interfaces/proving-job.d.ts.map +1 -1
  302. package/dest/interfaces/proving-job.js +1 -1
  303. package/dest/interfaces/public_storage_override.d.ts +22 -0
  304. package/dest/interfaces/public_storage_override.d.ts.map +1 -0
  305. package/dest/interfaces/public_storage_override.js +7 -0
  306. package/dest/interfaces/server.d.ts +6 -1
  307. package/dest/interfaces/server.d.ts.map +1 -1
  308. package/dest/interfaces/server.js +5 -0
  309. package/dest/interfaces/slasher.d.ts +27 -59
  310. package/dest/interfaces/slasher.d.ts.map +1 -1
  311. package/dest/interfaces/slasher.js +10 -4
  312. package/dest/interfaces/tx_provider.d.ts +6 -1
  313. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  314. package/dest/interfaces/validator.d.ts +76 -194
  315. package/dest/interfaces/validator.d.ts.map +1 -1
  316. package/dest/interfaces/validator.js +16 -5
  317. package/dest/interfaces/world_state.d.ts +6 -5
  318. package/dest/interfaces/world_state.d.ts.map +1 -1
  319. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
  320. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  321. package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
  322. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  323. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  324. package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
  325. package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
  326. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  327. package/dest/kernel/hints/build_transient_data_hints.js +9 -3
  328. package/dest/kernel/hints/index.d.ts +2 -2
  329. package/dest/kernel/hints/index.js +2 -2
  330. package/dest/kernel/hints/key_validation_request.d.ts +12 -8
  331. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  332. package/dest/kernel/hints/key_validation_request.js +20 -18
  333. package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
  334. package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
  335. package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
  336. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
  337. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
  338. package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
  339. package/dest/kernel/index.d.ts +5 -1
  340. package/dest/kernel/index.d.ts.map +1 -1
  341. package/dest/kernel/index.js +4 -0
  342. package/dest/kernel/log_hash.d.ts +6 -2
  343. package/dest/kernel/log_hash.d.ts.map +1 -1
  344. package/dest/kernel/log_hash.js +21 -9
  345. package/dest/kernel/private_circuit_public_inputs.d.ts +10 -10
  346. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  347. package/dest/kernel/private_circuit_public_inputs.js +16 -16
  348. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +4 -4
  349. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  350. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
  351. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +23 -0
  352. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
  353. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +35 -0
  354. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +24 -0
  355. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
  356. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +37 -0
  357. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
  358. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
  359. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
  360. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
  361. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
  362. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
  363. package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
  364. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  365. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
  366. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  367. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
  368. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +12 -8
  369. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  370. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +32 -13
  371. package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
  372. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  373. package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
  374. package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
  375. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  376. package/dest/kernel/private_to_public_accumulated_data.js +6 -3
  377. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +7 -6
  378. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  379. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +13 -9
  380. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
  381. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  382. package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
  383. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +7 -6
  384. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  385. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +13 -9
  386. package/dest/kernel/private_validation_requests.d.ts +3 -3
  387. package/dest/kernel/private_validation_requests.js +9 -9
  388. package/dest/kernel/public_call_request.d.ts +15 -30
  389. package/dest/kernel/public_call_request.d.ts.map +1 -1
  390. package/dest/kernel/public_call_request.js +16 -7
  391. package/dest/keys/derivation.d.ts +6 -2
  392. package/dest/keys/derivation.d.ts.map +1 -1
  393. package/dest/keys/derivation.js +21 -11
  394. package/dest/keys/key_types.d.ts +3 -3
  395. package/dest/keys/key_types.d.ts.map +1 -1
  396. package/dest/keys/public_key.d.ts +22 -3
  397. package/dest/keys/public_key.d.ts.map +1 -1
  398. package/dest/keys/public_key.js +20 -1
  399. package/dest/keys/public_keys.d.ts +55 -82
  400. package/dest/keys/public_keys.d.ts.map +1 -1
  401. package/dest/keys/public_keys.js +102 -74
  402. package/dest/keys/utils.js +5 -5
  403. package/dest/kv-store/config.d.ts +14 -0
  404. package/dest/kv-store/config.d.ts.map +1 -0
  405. package/dest/kv-store/config.js +21 -0
  406. package/dest/kv-store/index.d.ts +2 -0
  407. package/dest/kv-store/index.d.ts.map +1 -0
  408. package/dest/kv-store/index.js +1 -0
  409. package/dest/l1-contracts/index.d.ts +2 -2
  410. package/dest/l1-contracts/index.d.ts.map +1 -1
  411. package/dest/l1-contracts/index.js +1 -1
  412. package/dest/logs/app_tagging_secret.d.ts +46 -0
  413. package/dest/logs/app_tagging_secret.d.ts.map +1 -0
  414. package/dest/logs/app_tagging_secret.js +109 -0
  415. package/dest/logs/app_tagging_secret_kind.d.ts +6 -0
  416. package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
  417. package/dest/logs/app_tagging_secret_kind.js +4 -0
  418. package/dest/logs/contract_class_log.d.ts +16 -34
  419. package/dest/logs/contract_class_log.d.ts.map +1 -1
  420. package/dest/logs/contract_class_log.js +11 -9
  421. package/dest/logs/debug_log_store.d.ts +30 -0
  422. package/dest/logs/debug_log_store.d.ts.map +1 -0
  423. package/dest/logs/debug_log_store.js +30 -0
  424. package/dest/logs/index.d.ts +9 -7
  425. package/dest/logs/index.d.ts.map +1 -1
  426. package/dest/logs/index.js +8 -6
  427. package/dest/logs/log_cursor.d.ts +51 -0
  428. package/dest/logs/log_cursor.d.ts.map +1 -0
  429. package/dest/logs/log_cursor.js +82 -0
  430. package/dest/logs/log_result.d.ts +54 -0
  431. package/dest/logs/log_result.d.ts.map +1 -0
  432. package/dest/logs/log_result.js +56 -0
  433. package/dest/logs/logs_query.d.ts +82 -0
  434. package/dest/logs/logs_query.d.ts.map +1 -0
  435. package/dest/logs/logs_query.js +50 -0
  436. package/dest/logs/message_context.d.ts +4 -7
  437. package/dest/logs/message_context.d.ts.map +1 -1
  438. package/dest/logs/message_context.js +23 -9
  439. package/dest/logs/pending_tagged_log.d.ts +2 -3
  440. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  441. package/dest/logs/pending_tagged_log.js +2 -2
  442. package/dest/logs/pre_tag.d.ts +14 -22
  443. package/dest/logs/pre_tag.d.ts.map +1 -1
  444. package/dest/logs/pre_tag.js +2 -2
  445. package/dest/logs/private_log.d.ts +8 -13
  446. package/dest/logs/private_log.d.ts.map +1 -1
  447. package/dest/logs/private_log.js +6 -3
  448. package/dest/logs/public_log.d.ts +4 -3
  449. package/dest/logs/public_log.d.ts.map +1 -1
  450. package/dest/logs/public_log.js +2 -1
  451. package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
  452. package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
  453. package/dest/logs/query_all_logs_by_tags.js +64 -0
  454. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  455. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  456. package/dest/logs/shared_secret_derivation.js +15 -9
  457. package/dest/logs/siloed_tag.d.ts +12 -9
  458. package/dest/logs/siloed_tag.d.ts.map +1 -1
  459. package/dest/logs/siloed_tag.js +18 -7
  460. package/dest/logs/tag.d.ts +5 -6
  461. package/dest/logs/tag.d.ts.map +1 -1
  462. package/dest/logs/tag.js +5 -1
  463. package/dest/logs/tagging_index_range.d.ts +22 -0
  464. package/dest/logs/tagging_index_range.d.ts.map +1 -0
  465. package/dest/logs/tagging_index_range.js +8 -0
  466. package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
  467. package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
  468. package/dest/messaging/append_l1_to_l2_messages.js +12 -0
  469. package/dest/messaging/index.d.ts +2 -1
  470. package/dest/messaging/index.d.ts.map +1 -1
  471. package/dest/messaging/index.js +1 -0
  472. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  473. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  474. package/dest/messaging/l1_to_l2_message.js +11 -13
  475. package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
  476. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  477. package/dest/messaging/l2_to_l1_membership.d.ts +64 -8
  478. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  479. package/dest/messaging/l2_to_l1_membership.js +118 -30
  480. package/dest/messaging/l2_to_l1_message.d.ts +38 -112
  481. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  482. package/dest/messaging/l2_to_l1_message.js +21 -12
  483. package/dest/noir/index.d.ts +5 -3
  484. package/dest/noir/index.d.ts.map +1 -1
  485. package/dest/note/index.d.ts +1 -2
  486. package/dest/note/index.d.ts.map +1 -1
  487. package/dest/note/index.js +0 -1
  488. package/dest/note/note.d.ts +2 -2
  489. package/dest/note/note.d.ts.map +1 -1
  490. package/dest/note/note_dao.d.ts +1 -1
  491. package/dest/note/note_dao.d.ts.map +1 -1
  492. package/dest/note/note_dao.js +1 -4
  493. package/dest/p2p/attestation_utils.d.ts +11 -1
  494. package/dest/p2p/attestation_utils.d.ts.map +1 -1
  495. package/dest/p2p/attestation_utils.js +45 -0
  496. package/dest/p2p/block_proposal.d.ts +32 -15
  497. package/dest/p2p/block_proposal.d.ts.map +1 -1
  498. package/dest/p2p/block_proposal.js +58 -42
  499. package/dest/p2p/checkpoint_attestation.d.ts +16 -9
  500. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  501. package/dest/p2p/checkpoint_attestation.js +23 -24
  502. package/dest/p2p/checkpoint_proposal.d.ts +50 -24
  503. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  504. package/dest/p2p/checkpoint_proposal.js +77 -65
  505. package/dest/p2p/client_type.d.ts +2 -5
  506. package/dest/p2p/client_type.d.ts.map +1 -1
  507. package/dest/p2p/client_type.js +0 -7
  508. package/dest/p2p/consensus_payload.d.ts +32 -17
  509. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  510. package/dest/p2p/consensus_payload.js +47 -21
  511. package/dest/p2p/constants.d.ts +3 -1
  512. package/dest/p2p/constants.d.ts.map +1 -1
  513. package/dest/p2p/constants.js +1 -0
  514. package/dest/p2p/gossipable.d.ts +4 -4
  515. package/dest/p2p/gossipable.d.ts.map +1 -1
  516. package/dest/p2p/index.d.ts +1 -2
  517. package/dest/p2p/index.d.ts.map +1 -1
  518. package/dest/p2p/index.js +0 -1
  519. package/dest/p2p/peer_error.d.ts +3 -1
  520. package/dest/p2p/peer_error.d.ts.map +1 -1
  521. package/dest/p2p/peer_error.js +5 -0
  522. package/dest/p2p/signature_utils.d.ts +28 -19
  523. package/dest/p2p/signature_utils.d.ts.map +1 -1
  524. package/dest/p2p/signature_utils.js +118 -21
  525. package/dest/p2p/signed_txs.d.ts +15 -13
  526. package/dest/p2p/signed_txs.d.ts.map +1 -1
  527. package/dest/p2p/signed_txs.js +26 -24
  528. package/dest/p2p/topic_type.d.ts +3 -4
  529. package/dest/p2p/topic_type.d.ts.map +1 -1
  530. package/dest/p2p/topic_type.js +7 -24
  531. package/dest/parity/parity_base_private_inputs.d.ts +8 -4
  532. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  533. package/dest/parity/parity_base_private_inputs.js +7 -5
  534. package/dest/parity/parity_public_inputs.d.ts +8 -4
  535. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  536. package/dest/parity/parity_public_inputs.js +6 -3
  537. package/dest/parity/parity_root_private_inputs.d.ts +2 -2
  538. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  539. package/dest/proofs/chonk_proof.d.ts +57 -7
  540. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  541. package/dest/proofs/chonk_proof.js +112 -15
  542. package/dest/proofs/recursive_proof.d.ts +2 -2
  543. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  544. package/dest/rollup/block_headers_hash.d.ts +1 -1
  545. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  546. package/dest/rollup/block_headers_hash.js +8 -2
  547. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
  548. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  549. package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
  550. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  551. package/dest/rollup/block_rollup_public_inputs.js +12 -0
  552. package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
  553. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  554. package/dest/rollup/checkpoint_header.d.ts +2 -2
  555. package/dest/rollup/checkpoint_header.js +2 -2
  556. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
  557. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  558. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +14 -7
  559. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  560. package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -2
  561. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +6 -6
  562. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  563. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
  564. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
  565. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
  566. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
  567. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
  568. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
  569. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
  570. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  571. package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
  572. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  573. package/dest/rollup/root_rollup_public_inputs.d.ts +7 -7
  574. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  575. package/dest/rollup/root_rollup_public_inputs.js +3 -3
  576. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
  577. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  578. package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
  579. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  580. package/dest/schemas/schemas.d.ts +32 -78
  581. package/dest/schemas/schemas.d.ts.map +1 -1
  582. package/dest/schemas/schemas.js +2 -2
  583. package/dest/slashing/helpers.d.ts +2 -2
  584. package/dest/slashing/helpers.d.ts.map +1 -1
  585. package/dest/slashing/helpers.js +16 -7
  586. package/dest/slashing/index.d.ts +2 -3
  587. package/dest/slashing/index.d.ts.map +1 -1
  588. package/dest/slashing/index.js +1 -2
  589. package/dest/slashing/serialization.d.ts +2 -6
  590. package/dest/slashing/serialization.d.ts.map +1 -1
  591. package/dest/slashing/serialization.js +0 -60
  592. package/dest/slashing/types.d.ts +21 -111
  593. package/dest/slashing/types.d.ts.map +1 -1
  594. package/dest/slashing/types.js +28 -24
  595. package/dest/slashing/{tally.d.ts → votes.d.ts} +8 -2
  596. package/dest/slashing/votes.d.ts.map +1 -0
  597. package/dest/slashing/{tally.js → votes.js} +35 -3
  598. package/dest/snapshots/types.d.ts +15 -78
  599. package/dest/snapshots/types.d.ts.map +1 -1
  600. package/dest/stats/stats.d.ts +2 -2
  601. package/dest/stats/stats.d.ts.map +1 -1
  602. package/dest/tests/factories.d.ts +25 -30
  603. package/dest/tests/factories.d.ts.map +1 -1
  604. package/dest/tests/factories.js +94 -86
  605. package/dest/tests/mocks.d.ts +15 -7
  606. package/dest/tests/mocks.d.ts.map +1 -1
  607. package/dest/tests/mocks.js +68 -70
  608. package/dest/timetable/index.d.ts +87 -0
  609. package/dest/timetable/index.d.ts.map +1 -0
  610. package/dest/timetable/index.js +243 -0
  611. package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
  612. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  613. package/dest/trees/append_only_tree_snapshot.js +6 -3
  614. package/dest/trees/nullifier_leaf.d.ts +19 -42
  615. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  616. package/dest/trees/nullifier_leaf.js +3 -0
  617. package/dest/trees/nullifier_membership_witness.d.ts +16 -59
  618. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  619. package/dest/trees/nullifier_membership_witness.js +2 -14
  620. package/dest/trees/public_data_leaf.d.ts +22 -53
  621. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  622. package/dest/trees/public_data_leaf.js +7 -6
  623. package/dest/trees/public_data_witness.d.ts +16 -58
  624. package/dest/trees/public_data_witness.d.ts.map +1 -1
  625. package/dest/tx/block_header.d.ts +7 -4
  626. package/dest/tx/block_header.d.ts.map +1 -1
  627. package/dest/tx/block_header.js +13 -6
  628. package/dest/tx/call_context.d.ts +4 -14
  629. package/dest/tx/call_context.d.ts.map +1 -1
  630. package/dest/tx/capsule.d.ts +7 -3
  631. package/dest/tx/capsule.d.ts.map +1 -1
  632. package/dest/tx/capsule.js +9 -3
  633. package/dest/tx/fee_provider.d.ts +10 -0
  634. package/dest/tx/fee_provider.d.ts.map +1 -0
  635. package/dest/tx/fee_provider.js +1 -0
  636. package/dest/tx/function_data.d.ts +4 -10
  637. package/dest/tx/function_data.d.ts.map +1 -1
  638. package/dest/tx/global_variable_builder.d.ts +3 -4
  639. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  640. package/dest/tx/global_variables.d.ts +19 -52
  641. package/dest/tx/global_variables.d.ts.map +1 -1
  642. package/dest/tx/global_variables.js +8 -12
  643. package/dest/tx/hashed_values.d.ts +4 -3
  644. package/dest/tx/hashed_values.d.ts.map +1 -1
  645. package/dest/tx/hashed_values.js +6 -3
  646. package/dest/tx/in_tx.d.ts +5 -17
  647. package/dest/tx/in_tx.d.ts.map +1 -1
  648. package/dest/tx/index.d.ts +2 -1
  649. package/dest/tx/index.d.ts.map +1 -1
  650. package/dest/tx/index.js +1 -0
  651. package/dest/tx/indexed_tx_effect.d.ts +4 -18
  652. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  653. package/dest/tx/indexed_tx_effect.js +1 -2
  654. package/dest/tx/partial_state_reference.d.ts +22 -65
  655. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  656. package/dest/tx/partial_state_reference.js +6 -3
  657. package/dest/tx/private_execution_result.d.ts +11 -21
  658. package/dest/tx/private_execution_result.d.ts.map +1 -1
  659. package/dest/tx/private_execution_result.js +6 -6
  660. package/dest/tx/profiling.d.ts +70 -356
  661. package/dest/tx/profiling.d.ts.map +1 -1
  662. package/dest/tx/profiling.js +19 -9
  663. package/dest/tx/protocol_contracts.d.ts +5 -9
  664. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  665. package/dest/tx/protocol_contracts.js +2 -2
  666. package/dest/tx/proven_tx.d.ts +30 -74
  667. package/dest/tx/proven_tx.d.ts.map +1 -1
  668. package/dest/tx/proven_tx.js +6 -0
  669. package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
  670. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  671. package/dest/tx/public_call_request_with_calldata.js +6 -3
  672. package/dest/tx/public_simulation_output.d.ts +4 -2
  673. package/dest/tx/public_simulation_output.d.ts.map +1 -1
  674. package/dest/tx/public_simulation_output.js +7 -3
  675. package/dest/tx/simulated_tx.d.ts +68 -1144
  676. package/dest/tx/simulated_tx.d.ts.map +1 -1
  677. package/dest/tx/simulated_tx.js +17 -12
  678. package/dest/tx/state_reference.d.ts +30 -117
  679. package/dest/tx/state_reference.d.ts.map +1 -1
  680. package/dest/tx/state_reference.js +6 -4
  681. package/dest/tx/tree_snapshots.d.ts +27 -84
  682. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  683. package/dest/tx/tree_snapshots.js +6 -4
  684. package/dest/tx/tx.d.ts +12 -17
  685. package/dest/tx/tx.d.ts.map +1 -1
  686. package/dest/tx/tx.js +40 -29
  687. package/dest/tx/tx_constant_data.d.ts +4 -3
  688. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  689. package/dest/tx/tx_constant_data.js +6 -3
  690. package/dest/tx/tx_context.d.ts +32 -131
  691. package/dest/tx/tx_context.d.ts.map +1 -1
  692. package/dest/tx/tx_context.js +6 -6
  693. package/dest/tx/tx_hash.d.ts +6 -4
  694. package/dest/tx/tx_hash.d.ts.map +1 -1
  695. package/dest/tx/tx_hash.js +13 -5
  696. package/dest/tx/tx_receipt.d.ts +23 -6
  697. package/dest/tx/tx_receipt.d.ts.map +1 -1
  698. package/dest/tx/tx_receipt.js +17 -19
  699. package/dest/tx/tx_request.js +2 -2
  700. package/dest/tx/validator/empty_validator.d.ts +2 -2
  701. package/dest/tx/validator/empty_validator.d.ts.map +1 -1
  702. package/dest/tx/validator/error_texts.d.ts +10 -2
  703. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  704. package/dest/tx/validator/error_texts.js +11 -1
  705. package/dest/tx/validator/tx_validator.d.ts +6 -28
  706. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  707. package/dest/tx/validator/tx_validator.js +0 -4
  708. package/dest/types/shared.d.ts +4 -12
  709. package/dest/types/shared.d.ts.map +1 -1
  710. package/dest/types/shared.js +6 -12
  711. package/dest/update-checker/dev_version.d.ts +3 -0
  712. package/dest/update-checker/dev_version.d.ts.map +1 -0
  713. package/dest/update-checker/dev_version.js +1 -0
  714. package/dest/update-checker/index.d.ts +4 -2
  715. package/dest/update-checker/index.d.ts.map +1 -1
  716. package/dest/update-checker/index.js +3 -1
  717. package/dest/update-checker/package_version.d.ts +6 -0
  718. package/dest/update-checker/package_version.d.ts.map +1 -0
  719. package/dest/update-checker/package_version.js +13 -0
  720. package/dest/update-checker/version_checker.d.ts +25 -0
  721. package/dest/update-checker/version_checker.d.ts.map +1 -0
  722. package/dest/update-checker/version_checker.js +50 -0
  723. package/dest/validators/errors.d.ts +6 -1
  724. package/dest/validators/errors.d.ts.map +1 -1
  725. package/dest/validators/errors.js +7 -0
  726. package/dest/validators/schemas.d.ts +147 -614
  727. package/dest/validators/schemas.d.ts.map +1 -1
  728. package/dest/validators/schemas.js +9 -6
  729. package/dest/validators/types.d.ts +21 -4
  730. package/dest/validators/types.d.ts.map +1 -1
  731. package/dest/versioning/versioning.d.ts +4 -2
  732. package/dest/versioning/versioning.d.ts.map +1 -1
  733. package/dest/versioning/versioning.js +5 -2
  734. package/dest/vks/verification_key.d.ts +4 -139
  735. package/dest/vks/verification_key.d.ts.map +1 -1
  736. package/dest/vks/verification_key.js +5 -126
  737. package/dest/world-state/genesis_data.d.ts +13 -0
  738. package/dest/world-state/genesis_data.d.ts.map +1 -0
  739. package/dest/world-state/genesis_data.js +7 -0
  740. package/dest/world-state/index.d.ts +2 -1
  741. package/dest/world-state/index.d.ts.map +1 -1
  742. package/dest/world-state/index.js +1 -0
  743. package/dest/world-state/world_state_revision.d.ts +15 -26
  744. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  745. package/dest/world-state/world_state_revision.js +7 -1
  746. package/package.json +27 -14
  747. package/src/abi/abi.ts +78 -21
  748. package/src/abi/authorization_selector.ts +2 -8
  749. package/src/abi/buffer.ts +25 -4
  750. package/src/abi/contract_artifact.ts +11 -6
  751. package/src/abi/decoder.ts +36 -82
  752. package/src/abi/encoder.ts +85 -6
  753. package/src/abi/event_metadata_definition.ts +2 -0
  754. package/src/abi/event_selector.ts +2 -8
  755. package/src/abi/function_call.ts +25 -3
  756. package/src/abi/function_selector.ts +4 -13
  757. package/src/abi/function_signature_decoder.ts +77 -0
  758. package/src/abi/index.ts +1 -0
  759. package/src/abi/note_selector.ts +3 -12
  760. package/src/abi/selector.ts +1 -1
  761. package/src/abi/utils.ts +31 -4
  762. package/src/auth_witness/auth_witness.ts +3 -3
  763. package/src/avm/avm.ts +5 -0
  764. package/src/avm/message_pack.ts +12 -3
  765. package/src/avm/revert_code.ts +20 -25
  766. package/src/aztec-address/index.ts +15 -12
  767. package/src/block/attestation_info.ts +11 -11
  768. package/src/block/block_data.ts +25 -0
  769. package/src/block/block_hash.ts +21 -14
  770. package/src/block/block_parameter.ts +72 -4
  771. package/src/block/in_block.ts +1 -1
  772. package/src/block/index.ts +1 -1
  773. package/src/block/l2_block.ts +13 -1
  774. package/src/block/l2_block_info.ts +8 -6
  775. package/src/block/l2_block_source.ts +199 -118
  776. package/src/block/l2_block_stream/interfaces.ts +6 -2
  777. package/src/block/l2_block_stream/l2_block_stream.ts +49 -17
  778. package/src/block/l2_block_stream/l2_tips_memory_store.ts +5 -0
  779. package/src/block/l2_block_stream/l2_tips_store_base.ts +53 -19
  780. package/src/block/proposal/attestations_and_signers.ts +32 -17
  781. package/src/block/test/l2_tips_store_test_suite.ts +10 -3
  782. package/src/checkpoint/checkpoint.ts +54 -17
  783. package/src/checkpoint/checkpoint_data.ts +91 -0
  784. package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
  785. package/src/checkpoint/digest.ts +28 -0
  786. package/src/checkpoint/index.ts +5 -0
  787. package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
  788. package/src/checkpoint/published_checkpoint.ts +3 -1
  789. package/src/checkpoint/validate.ts +230 -0
  790. package/src/config/chain-config.ts +13 -16
  791. package/src/config/index.ts +2 -0
  792. package/src/config/pipelining-config.ts +31 -0
  793. package/src/config/sequencer-config.ts +65 -0
  794. package/src/contract/complete_address.ts +7 -3
  795. package/src/contract/contract_address.ts +10 -10
  796. package/src/contract/contract_class.ts +3 -3
  797. package/src/contract/contract_class_id.ts +7 -6
  798. package/src/contract/contract_instance.ts +11 -2
  799. package/src/contract/index.ts +0 -2
  800. package/src/contract/interfaces/contract_class.ts +2 -82
  801. package/src/contract/interfaces/contract_instance.ts +6 -2
  802. package/src/contract/interfaces/node-info.ts +3 -0
  803. package/src/contract/private_function.ts +5 -3
  804. package/src/database-version/version_manager.ts +17 -0
  805. package/src/epoch-helpers/index.ts +30 -0
  806. package/src/file-store/factory.ts +13 -4
  807. package/src/file-store/http.ts +29 -10
  808. package/src/file-store/index.ts +1 -0
  809. package/src/file-store/local.ts +15 -5
  810. package/src/file-store/s3.ts +12 -3
  811. package/src/gas/README.md +154 -0
  812. package/src/gas/fee_math.ts +120 -0
  813. package/src/gas/gas.ts +8 -3
  814. package/src/gas/gas_fees.ts +29 -10
  815. package/src/gas/gas_settings.ts +73 -15
  816. package/src/gas/index.ts +1 -0
  817. package/src/ha-signing/config.ts +152 -0
  818. package/src/ha-signing/index.ts +29 -0
  819. package/src/ha-signing/local_config.ts +46 -0
  820. package/src/ha-signing/types.ts +126 -0
  821. package/src/hash/hash.ts +76 -11
  822. package/src/hash/map_slot.ts +2 -2
  823. package/src/interfaces/allowed_element.ts +29 -9
  824. package/src/interfaces/api_limit.ts +1 -1
  825. package/src/interfaces/archiver.ts +83 -87
  826. package/src/interfaces/aztec-node-admin.ts +57 -19
  827. package/src/interfaces/aztec-node-debug.ts +40 -0
  828. package/src/interfaces/aztec-node.ts +261 -241
  829. package/src/interfaces/block-builder.ts +63 -14
  830. package/src/interfaces/block_response.ts +92 -0
  831. package/src/interfaces/chain_tips.ts +24 -0
  832. package/src/interfaces/checkpoint_parameter.ts +20 -0
  833. package/src/interfaces/checkpoint_response.ts +84 -0
  834. package/src/interfaces/client.ts +7 -1
  835. package/src/interfaces/configs.ts +75 -8
  836. package/src/interfaces/l1_publish_info.ts +40 -0
  837. package/src/interfaces/l2_logs_source.ts +13 -39
  838. package/src/interfaces/merkle_tree_operations.ts +12 -21
  839. package/src/interfaces/p2p-bootstrap.ts +2 -2
  840. package/src/interfaces/p2p.ts +38 -29
  841. package/src/interfaces/private_kernel_prover.ts +88 -0
  842. package/src/interfaces/prover-agent.ts +1 -1
  843. package/src/interfaces/prover-broker.ts +22 -0
  844. package/src/interfaces/prover-client.ts +17 -5
  845. package/src/interfaces/prover-node.ts +7 -7
  846. package/src/interfaces/proving-job-source.ts +4 -4
  847. package/src/interfaces/proving-job.ts +3 -3
  848. package/src/interfaces/public_storage_override.ts +26 -0
  849. package/src/interfaces/server.ts +5 -0
  850. package/src/interfaces/slasher.ts +21 -10
  851. package/src/interfaces/tx_provider.ts +6 -0
  852. package/src/interfaces/validator.ts +87 -36
  853. package/src/interfaces/world_state.ts +5 -4
  854. package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
  855. package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
  856. package/src/kernel/hints/build_transient_data_hints.ts +17 -2
  857. package/src/kernel/hints/index.ts +2 -2
  858. package/src/kernel/hints/key_validation_request.ts +18 -16
  859. package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
  860. package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
  861. package/src/kernel/index.ts +4 -0
  862. package/src/kernel/log_hash.ts +29 -9
  863. package/src/kernel/private_circuit_public_inputs.ts +14 -14
  864. package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
  865. package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +49 -0
  866. package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +52 -0
  867. package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
  868. package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
  869. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
  870. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +42 -18
  871. package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
  872. package/src/kernel/private_to_public_accumulated_data.ts +9 -3
  873. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +14 -8
  874. package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
  875. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +13 -13
  876. package/src/kernel/private_validation_requests.ts +8 -8
  877. package/src/kernel/public_call_request.ts +22 -7
  878. package/src/keys/derivation.ts +26 -14
  879. package/src/keys/key_types.ts +6 -2
  880. package/src/keys/public_key.ts +26 -2
  881. package/src/keys/public_keys.ts +125 -111
  882. package/src/keys/utils.ts +5 -5
  883. package/src/kv-store/config.ts +29 -0
  884. package/src/kv-store/index.ts +1 -0
  885. package/src/l1-contracts/index.ts +1 -1
  886. package/src/logs/app_tagging_secret.ts +137 -0
  887. package/src/logs/app_tagging_secret_kind.ts +6 -0
  888. package/src/logs/contract_class_log.ts +15 -5
  889. package/src/logs/debug_log_store.ts +54 -0
  890. package/src/logs/index.ts +8 -6
  891. package/src/logs/log_cursor.ts +110 -0
  892. package/src/logs/log_result.ts +104 -0
  893. package/src/logs/logs_query.ts +138 -0
  894. package/src/logs/message_context.ts +17 -7
  895. package/src/logs/pending_tagged_log.ts +1 -3
  896. package/src/logs/pre_tag.ts +3 -6
  897. package/src/logs/private_log.ts +9 -3
  898. package/src/logs/public_log.ts +4 -2
  899. package/src/logs/query_all_logs_by_tags.ts +98 -0
  900. package/src/logs/shared_secret_derivation.ts +21 -10
  901. package/src/logs/siloed_tag.ts +28 -14
  902. package/src/logs/tag.ts +9 -9
  903. package/src/logs/tagging_index_range.ts +18 -0
  904. package/src/messaging/append_l1_to_l2_messages.ts +21 -0
  905. package/src/messaging/index.ts +1 -0
  906. package/src/messaging/l1_to_l2_message.ts +12 -9
  907. package/src/messaging/l1_to_l2_message_source.ts +3 -1
  908. package/src/messaging/l2_to_l1_membership.ts +174 -37
  909. package/src/messaging/l2_to_l1_message.ts +29 -9
  910. package/src/noir/index.ts +4 -2
  911. package/src/note/index.ts +0 -1
  912. package/src/note/note_dao.ts +1 -4
  913. package/src/p2p/attestation_utils.ts +56 -0
  914. package/src/p2p/block_proposal.ts +112 -39
  915. package/src/p2p/checkpoint_attestation.ts +33 -32
  916. package/src/p2p/checkpoint_proposal.ts +159 -86
  917. package/src/p2p/client_type.ts +0 -6
  918. package/src/p2p/consensus_payload.ts +68 -24
  919. package/src/p2p/constants.ts +3 -0
  920. package/src/p2p/gossipable.ts +4 -4
  921. package/src/p2p/index.ts +0 -1
  922. package/src/p2p/peer_error.ts +7 -0
  923. package/src/p2p/signature_utils.ts +110 -25
  924. package/src/p2p/signed_txs.ts +46 -28
  925. package/src/p2p/topic_type.ts +8 -15
  926. package/src/parity/parity_base_private_inputs.ts +10 -4
  927. package/src/parity/parity_public_inputs.ts +9 -2
  928. package/src/proofs/chonk_proof.ts +132 -12
  929. package/src/rollup/block_headers_hash.ts +11 -2
  930. package/src/rollup/block_rollup_public_inputs.ts +13 -0
  931. package/src/rollup/checkpoint_header.ts +2 -2
  932. package/src/rollup/checkpoint_rollup_public_inputs.ts +15 -5
  933. package/src/rollup/root_rollup_public_inputs.ts +7 -7
  934. package/src/schemas/schemas.ts +6 -1
  935. package/src/slashing/helpers.ts +21 -9
  936. package/src/slashing/index.ts +1 -2
  937. package/src/slashing/serialization.ts +1 -81
  938. package/src/slashing/types.ts +38 -49
  939. package/src/slashing/{tally.ts → votes.ts} +41 -2
  940. package/src/stats/stats.ts +4 -0
  941. package/src/tests/factories.ts +120 -119
  942. package/src/tests/mocks.ts +106 -84
  943. package/src/timetable/index.ts +361 -0
  944. package/src/trees/append_only_tree_snapshot.ts +8 -3
  945. package/src/trees/nullifier_leaf.ts +4 -0
  946. package/src/trees/nullifier_membership_witness.ts +2 -12
  947. package/src/trees/public_data_leaf.ts +11 -5
  948. package/src/tx/block_header.ts +18 -7
  949. package/src/tx/capsule.ts +10 -2
  950. package/src/tx/fee_provider.ts +10 -0
  951. package/src/tx/global_variable_builder.ts +2 -3
  952. package/src/tx/global_variables.ts +13 -21
  953. package/src/tx/hashed_values.ts +8 -3
  954. package/src/tx/index.ts +1 -0
  955. package/src/tx/indexed_tx_effect.ts +1 -2
  956. package/src/tx/partial_state_reference.ts +8 -3
  957. package/src/tx/private_execution_result.ts +5 -5
  958. package/src/tx/profiling.ts +18 -9
  959. package/src/tx/protocol_contracts.ts +2 -2
  960. package/src/tx/proven_tx.ts +6 -0
  961. package/src/tx/public_call_request_with_calldata.ts +8 -3
  962. package/src/tx/public_simulation_output.ts +4 -0
  963. package/src/tx/simulated_tx.ts +30 -22
  964. package/src/tx/state_reference.ts +9 -4
  965. package/src/tx/tree_snapshots.ts +9 -4
  966. package/src/tx/tx.ts +53 -35
  967. package/src/tx/tx_constant_data.ts +8 -3
  968. package/src/tx/tx_context.ts +8 -3
  969. package/src/tx/tx_hash.ts +20 -5
  970. package/src/tx/tx_receipt.ts +19 -16
  971. package/src/tx/tx_request.ts +2 -2
  972. package/src/tx/validator/empty_validator.ts +1 -1
  973. package/src/tx/validator/error_texts.ts +13 -1
  974. package/src/tx/validator/tx_validator.ts +2 -6
  975. package/src/types/shared.ts +8 -13
  976. package/src/update-checker/dev_version.ts +2 -0
  977. package/src/update-checker/index.ts +3 -1
  978. package/src/update-checker/package_version.ts +17 -0
  979. package/src/update-checker/version_checker.ts +65 -0
  980. package/src/validators/errors.ts +9 -0
  981. package/src/validators/schemas.ts +13 -4
  982. package/src/validators/types.ts +25 -5
  983. package/src/versioning/versioning.ts +5 -2
  984. package/src/vks/verification_key.ts +5 -184
  985. package/src/world-state/genesis_data.ts +27 -0
  986. package/src/world-state/index.ts +1 -0
  987. package/src/world-state/world_state_revision.ts +9 -1
  988. package/dest/abi/mocked_keys.d.ts +0 -2
  989. package/dest/abi/mocked_keys.d.ts.map +0 -1
  990. package/dest/abi/mocked_keys.js +0 -1
  991. package/dest/block/checkpointed_l2_block.d.ts +0 -150
  992. package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
  993. package/dest/block/checkpointed_l2_block.js +0 -46
  994. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  995. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  996. package/dest/contract/private_function_membership_proof.js +0 -124
  997. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  998. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  999. package/dest/contract/utility_function_membership_proof.js +0 -87
  1000. package/dest/interfaces/get_logs_response.d.ts +0 -90
  1001. package/dest/interfaces/get_logs_response.d.ts.map +0 -1
  1002. package/dest/interfaces/get_logs_response.js +0 -12
  1003. package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
  1004. package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
  1005. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  1006. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  1007. package/dest/l1-contracts/slash_factory.js +0 -158
  1008. package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
  1009. package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
  1010. package/dest/logs/directional_app_tagging_secret.js +0 -64
  1011. package/dest/logs/extended_contract_class_log.d.ts +0 -51
  1012. package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
  1013. package/dest/logs/extended_contract_class_log.js +0 -67
  1014. package/dest/logs/extended_public_log.d.ts +0 -100
  1015. package/dest/logs/extended_public_log.d.ts.map +0 -1
  1016. package/dest/logs/extended_public_log.js +0 -73
  1017. package/dest/logs/log_filter.d.ts +0 -22
  1018. package/dest/logs/log_filter.d.ts.map +0 -1
  1019. package/dest/logs/log_filter.js +0 -11
  1020. package/dest/logs/log_id.d.ts +0 -82
  1021. package/dest/logs/log_id.d.ts.map +0 -1
  1022. package/dest/logs/log_id.js +0 -92
  1023. package/dest/logs/tx_scoped_l2_log.d.ts +0 -49
  1024. package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
  1025. package/dest/logs/tx_scoped_l2_log.js +0 -70
  1026. package/dest/note/notes_filter.d.ts +0 -27
  1027. package/dest/note/notes_filter.d.ts.map +0 -1
  1028. package/dest/note/notes_filter.js +0 -11
  1029. package/dest/slashing/empire.d.ts +0 -31
  1030. package/dest/slashing/empire.d.ts.map +0 -1
  1031. package/dest/slashing/empire.js +0 -85
  1032. package/dest/slashing/tally.d.ts.map +0 -1
  1033. package/dest/update-checker/update-checker.d.ts +0 -49
  1034. package/dest/update-checker/update-checker.d.ts.map +0 -1
  1035. package/dest/update-checker/update-checker.js +0 -130
  1036. package/src/abi/mocked_keys.ts +0 -2
  1037. package/src/block/checkpointed_l2_block.ts +0 -70
  1038. package/src/contract/private_function_membership_proof.ts +0 -167
  1039. package/src/contract/utility_function_membership_proof.ts +0 -118
  1040. package/src/interfaces/get_logs_response.ts +0 -35
  1041. package/src/l1-contracts/slash_factory.ts +0 -180
  1042. package/src/logs/directional_app_tagging_secret.ts +0 -79
  1043. package/src/logs/extended_contract_class_log.ts +0 -87
  1044. package/src/logs/extended_public_log.ts +0 -94
  1045. package/src/logs/log_filter.ts +0 -31
  1046. package/src/logs/log_id.ts +0 -122
  1047. package/src/logs/tx_scoped_l2_log.ts +0 -98
  1048. package/src/note/notes_filter.ts +0 -38
  1049. package/src/slashing/empire.ts +0 -102
  1050. package/src/update-checker/update-checker.ts +0 -166
@@ -1,5 +1,5 @@
1
- import { SlotNumber } from '@aztec/foundation/branded-types';
2
- import { Buffer32 } from '@aztec/foundation/buffer';
1
+ import { CheckpointProposalHash, type SlotNumber } from '@aztec/foundation/branded-types';
2
+ import { type BaseBuffer32 } from '@aztec/foundation/buffer';
3
3
  import type { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import type { EthAddress } from '@aztec/foundation/eth-address';
5
5
  import { Signature } from '@aztec/foundation/eth-signature';
@@ -7,10 +7,8 @@ import { BufferReader } from '@aztec/foundation/serialize';
7
7
  import type { ZodFor } from '../schemas/index.js';
8
8
  import { ConsensusPayload } from './consensus_payload.js';
9
9
  import { Gossipable } from './gossipable.js';
10
+ import { type CoordinationSignatureContext } from './signature_utils.js';
10
11
  import { TopicType } from './topic_type.js';
11
- export declare class CheckpointAttestationHash extends Buffer32 {
12
- constructor(hash: Buffer);
13
- }
14
12
  /**
15
13
  * CheckpointAttestation
16
14
  *
@@ -25,8 +23,8 @@ export declare class CheckpointAttestation extends Gossipable {
25
23
  /** The signature from the checkpoint proposer */
26
24
  readonly proposerSignature: Signature;
27
25
  static p2pTopic: TopicType;
28
- private sender;
29
- private proposer;
26
+ private cachedSender;
27
+ private cachedProposer;
30
28
  constructor(
31
29
  /** The payload of the message, and what the signature is over */
32
30
  payload: ConsensusPayload,
@@ -35,9 +33,10 @@ export declare class CheckpointAttestation extends Gossipable {
35
33
  /** The signature from the checkpoint proposer */
36
34
  proposerSignature: Signature);
37
35
  static get schema(): ZodFor<CheckpointAttestation>;
38
- generateP2PMessageIdentifier(): Promise<Buffer32>;
36
+ generateP2PMessageIdentifier(): Promise<BaseBuffer32>;
39
37
  get archive(): Fr;
40
38
  get slotNumber(): SlotNumber;
39
+ get signatureContext(): CoordinationSignatureContext;
41
40
  /**
42
41
  * Lazily evaluate and cache the signer of the attestation
43
42
  * @returns The signer of the attestation, or undefined if signature recovery fails
@@ -49,6 +48,11 @@ export declare class CheckpointAttestation extends Gossipable {
49
48
  */
50
49
  getProposer(): EthAddress | undefined;
51
50
  getPayload(): Buffer;
51
+ /**
52
+ * Returns a keccak256 hash of the signed consensus payload.
53
+ * Used to dedup distinct signed payloads. Returns same hash than the corresponding proposal.
54
+ */
55
+ getPayloadHash(): CheckpointProposalHash;
52
56
  toBuffer(): Buffer;
53
57
  static fromBuffer(buf: Buffer | BufferReader): CheckpointAttestation;
54
58
  static empty(): CheckpointAttestation;
@@ -73,9 +77,12 @@ export declare class CheckpointAttestation extends Gossipable {
73
77
  totalManaUsed: bigint;
74
78
  };
75
79
  archive: `0x${string}`;
80
+ feeAssetPriceModifier: string;
81
+ chainId: number;
82
+ rollupAddress: `0x${string}`;
76
83
  };
77
84
  signature: `0x${string}`;
78
85
  proposerSignature: `0x${string}`;
79
86
  };
80
87
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9hdHRlc3RhdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9jaGVja3BvaW50X2F0dGVzdGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHcEQsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFJOUUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1QyxxQkFBYSx5QkFBMEIsU0FBUSxRQUFRO0lBQ3JELFlBQVksSUFBSSxFQUFFLE1BQU0sRUFFdkI7Q0FDRjtBQUVEOzs7OztHQUtHO0FBQ0gscUJBQWEscUJBQXNCLFNBQVEsVUFBVTtJQU9qRCxpRUFBaUU7YUFDakQsT0FBTyxFQUFFLGdCQUFnQjtJQUV6QywrQ0FBK0M7YUFDL0IsU0FBUyxFQUFFLFNBQVM7SUFFcEMsaURBQWlEO2FBQ2pDLGlCQUFpQixFQUFFLFNBQVM7SUFiOUMsT0FBZ0IsUUFBUSxZQUFvQztJQUU1RCxPQUFPLENBQUMsTUFBTSxDQUF5QjtJQUN2QyxPQUFPLENBQUMsUUFBUSxDQUF5QjtJQUV6QztJQUNFLGlFQUFpRTtJQUNqRCxPQUFPLEVBQUUsZ0JBQWdCO0lBRXpDLCtDQUErQztJQUMvQixTQUFTLEVBQUUsU0FBUztJQUVwQyxpREFBaUQ7SUFDakMsaUJBQWlCLEVBQUUsU0FBUyxFQUc3QztJQUVELE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBUWpEO0lBRVEsNEJBQTRCLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUV6RDtJQUVELElBQUksT0FBTyxJQUFJLEVBQUUsQ0FFaEI7SUFFRCxJQUFJLFVBQVUsSUFBSSxVQUFVLENBRTNCO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxJQUFJLFVBQVUsR0FBRyxTQUFTLENBWWxDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxJQUFJLFVBQVUsR0FBRyxTQUFTLENBV3BDO0lBRUQsVUFBVSxJQUFJLE1BQU0sQ0FFbkI7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcscUJBQXFCLENBT25FO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxxQkFBcUIsQ0FFcEM7SUFFRCxNQUFNLENBQUMsTUFBTSxJQUFJLHFCQUFxQixDQUVyQztJQUVELE9BQU8sSUFBSSxNQUFNLENBRWhCO0lBRUQsU0FBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQU1SO0NBQ0YifQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9hdHRlc3RhdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9jaGVja3BvaW50X2F0dGVzdGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxLQUFLLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBSTlFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsS0FBSyw0QkFBNEIsRUFBNkIsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFNUM7Ozs7O0dBS0c7QUFDSCxxQkFBYSxxQkFBc0IsU0FBUSxVQUFVO0lBT2pELGlFQUFpRTthQUNqRCxPQUFPLEVBQUUsZ0JBQWdCO0lBRXpDLCtDQUErQzthQUMvQixTQUFTLEVBQUUsU0FBUztJQUVwQyxpREFBaUQ7YUFDakMsaUJBQWlCLEVBQUUsU0FBUztJQWI5QyxPQUFnQixRQUFRLFlBQW9DO0lBRTVELE9BQU8sQ0FBQyxZQUFZLENBQTRDO0lBQ2hFLE9BQU8sQ0FBQyxjQUFjLENBQTRDO0lBRWxFO0lBQ0UsaUVBQWlFO0lBQ2pELE9BQU8sRUFBRSxnQkFBZ0I7SUFFekMsK0NBQStDO0lBQy9CLFNBQVMsRUFBRSxTQUFTO0lBRXBDLGlEQUFpRDtJQUNqQyxpQkFBaUIsRUFBRSxTQUFTLEVBRzdDO0lBRUQsTUFBTSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FRakQ7SUFFUSw0QkFBNEIsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLENBRTdEO0lBRUQsSUFBSSxPQUFPLElBQUksRUFBRSxDQUVoQjtJQUVELElBQUksVUFBVSxJQUFJLFVBQVUsQ0FFM0I7SUFFRCxJQUFJLGdCQUFnQixJQUFJLDRCQUE0QixDQUVuRDtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLEdBQUcsU0FBUyxDQUtsQztJQUVEOzs7T0FHRztJQUNILFdBQVcsSUFBSSxVQUFVLEdBQUcsU0FBUyxDQWVwQztJQUVELFVBQVUsSUFBSSxNQUFNLENBRW5CO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxJQUFJLHNCQUFzQixDQUV2QztJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxxQkFBcUIsQ0FPbkU7SUFFRCxNQUFNLENBQUMsS0FBSyxJQUFJLHFCQUFxQixDQUVwQztJQUVELE1BQU0sQ0FBQyxNQUFNLElBQUkscUJBQXFCLENBRXJDO0lBRUQsT0FBTyxJQUFJLE1BQU0sQ0FFaEI7SUFFRCxTQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BTVI7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint_attestation.d.ts","sourceRoot":"","sources":["../../src/p2p/checkpoint_attestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAI9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,yBAA0B,SAAQ,QAAQ;IACrD,YAAY,IAAI,EAAE,MAAM,EAEvB;CACF;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;IAOjD,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,+CAA+C;aAC/B,SAAS,EAAE,SAAS;IAEpC,iDAAiD;aACjC,iBAAiB,EAAE,SAAS;IAb9C,OAAgB,QAAQ,YAAoC;IAE5D,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,QAAQ,CAAyB;IAEzC;IACE,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,+CAA+C;IAC/B,SAAS,EAAE,SAAS;IAEpC,iDAAiD;IACjC,iBAAiB,EAAE,SAAS,EAG7C;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAQjD;IAEQ,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC,CAEzD;IAED,IAAI,OAAO,IAAI,EAAE,CAEhB;IAED,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,GAAG,SAAS,CAYlC;IAED;;;OAGG;IACH,WAAW,IAAI,UAAU,GAAG,SAAS,CAWpC;IAED,UAAU,IAAI,MAAM,CAEnB;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,qBAAqB,CAOnE;IAED,MAAM,CAAC,KAAK,IAAI,qBAAqB,CAEpC;IAED,MAAM,CAAC,MAAM,IAAI,qBAAqB,CAErC;IAED,OAAO,IAAI,MAAM,CAEhB;IAED,SAAS;;;;;;;;;;;;;;;;;;;;;;MAMR;CACF"}
1
+ {"version":3,"file":"checkpoint_attestation.d.ts","sourceRoot":"","sources":["../../src/p2p/checkpoint_attestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAI9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,4BAA4B,EAA6B,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;IAOjD,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,+CAA+C;aAC/B,SAAS,EAAE,SAAS;IAEpC,iDAAiD;aACjC,iBAAiB,EAAE,SAAS;IAb9C,OAAgB,QAAQ,YAAoC;IAE5D,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,cAAc,CAA4C;IAElE;IACE,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,+CAA+C;IAC/B,SAAS,EAAE,SAAS;IAEpC,iDAAiD;IACjC,iBAAiB,EAAE,SAAS,EAG7C;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAQjD;IAEQ,4BAA4B,IAAI,OAAO,CAAC,YAAY,CAAC,CAE7D;IAED,IAAI,OAAO,IAAI,EAAE,CAEhB;IAED,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,IAAI,gBAAgB,IAAI,4BAA4B,CAEnD;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,GAAG,SAAS,CAKlC;IAED;;;OAGG;IACH,WAAW,IAAI,UAAU,GAAG,SAAS,CAepC;IAED,UAAU,IAAI,MAAM,CAEnB;IAED;;;OAGG;IACH,cAAc,IAAI,sBAAsB,CAEvC;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,qBAAqB,CAOnE;IAED,MAAM,CAAC,KAAK,IAAI,qBAAqB,CAEpC;IAED,MAAM,CAAC,MAAM,IAAI,qBAAqB,CAErC;IAED,OAAO,IAAI,MAAM,CAEhB;IAED,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;MAMR;CACF"}
@@ -1,19 +1,13 @@
1
+ import { CheckpointProposalHash } from '@aztec/foundation/branded-types';
1
2
  import { Buffer32 } from '@aztec/foundation/buffer';
2
- import { keccak256 } from '@aztec/foundation/crypto/keccak';
3
- import { tryRecoverAddress } from '@aztec/foundation/crypto/secp256k1-signer';
4
3
  import { Signature } from '@aztec/foundation/eth-signature';
5
4
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
6
5
  import { z } from 'zod';
7
6
  import { CheckpointProposal } from './checkpoint_proposal.js';
8
7
  import { ConsensusPayload } from './consensus_payload.js';
9
8
  import { Gossipable } from './gossipable.js';
10
- import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from './signature_utils.js';
9
+ import { recoverCoordinationSigner } from './signature_utils.js';
11
10
  import { TopicType } from './topic_type.js';
12
- export class CheckpointAttestationHash extends Buffer32 {
13
- constructor(hash){
14
- super(hash);
15
- }
16
- }
17
11
  /**
18
12
  * CheckpointAttestation
19
13
  *
@@ -24,10 +18,10 @@ export class CheckpointAttestationHash extends Buffer32 {
24
18
  signature;
25
19
  proposerSignature;
26
20
  static p2pTopic = TopicType.checkpoint_attestation;
27
- sender;
28
- proposer;
21
+ cachedSender;
22
+ cachedProposer;
29
23
  constructor(/** The payload of the message, and what the signature is over */ payload, /** The signature of the checkpoint attester */ signature, /** The signature from the checkpoint proposer */ proposerSignature){
30
- super(), this.payload = payload, this.signature = signature, this.proposerSignature = proposerSignature;
24
+ super(), this.payload = payload, this.signature = signature, this.proposerSignature = proposerSignature, this.cachedSender = undefined, this.cachedProposer = undefined;
31
25
  }
32
26
  static get schema() {
33
27
  return z.object({
@@ -37,7 +31,7 @@ export class CheckpointAttestationHash extends Buffer32 {
37
31
  }).transform((obj)=>new CheckpointAttestation(obj.payload, obj.signature, obj.proposerSignature));
38
32
  }
39
33
  generateP2PMessageIdentifier() {
40
- return Promise.resolve(new CheckpointAttestationHash(keccak256(this.signature.toBuffer())));
34
+ return Promise.resolve(new Buffer32(this.payload.getPayloadHash()));
41
35
  }
42
36
  get archive() {
43
37
  return this.payload.archive;
@@ -45,34 +39,39 @@ export class CheckpointAttestationHash extends Buffer32 {
45
39
  get slotNumber() {
46
40
  return this.payload.header.slotNumber;
47
41
  }
42
+ get signatureContext() {
43
+ return this.payload.signatureContext;
44
+ }
48
45
  /**
49
46
  * Lazily evaluate and cache the signer of the attestation
50
47
  * @returns The signer of the attestation, or undefined if signature recovery fails
51
48
  */ getSender() {
52
- if (!this.sender) {
53
- // Recover the sender from the attestation
54
- const hashed = getHashedSignaturePayloadEthSignedMessage(this.payload, SignatureDomainSeparator.checkpointAttestation);
55
- // Cache the sender for later use
56
- this.sender = tryRecoverAddress(hashed, this.signature);
49
+ if (this.cachedSender === undefined) {
50
+ this.cachedSender = recoverCoordinationSigner(this.payload, this.signature) ?? null;
57
51
  }
58
- return this.sender;
52
+ return this.cachedSender ?? undefined;
59
53
  }
60
54
  /**
61
55
  * Lazily evaluate and cache the proposer of the checkpoint
62
56
  * @returns The proposer of the checkpoint
63
57
  */ getProposer() {
64
- if (!this.proposer) {
58
+ if (this.cachedProposer === undefined) {
65
59
  // Create a temporary CheckpointProposal to recover the proposer address.
66
60
  // We need to use CheckpointProposal because it has a different getPayloadToSign()
67
61
  // implementation than ConsensusPayload (uses serializeToBuffer vs ABI encoding).
68
- const proposal = new CheckpointProposal(this.payload.header, this.payload.archive, this.proposerSignature);
69
- // Cache the proposer for later use
70
- this.proposer = proposal.getSender();
62
+ const proposal = new CheckpointProposal(this.payload.header, this.payload.archive, this.payload.feeAssetPriceModifier, this.proposerSignature, this.payload.signatureContext);
63
+ this.cachedProposer = proposal.getSender() ?? null;
71
64
  }
72
- return this.proposer;
65
+ return this.cachedProposer ?? undefined;
73
66
  }
74
67
  getPayload() {
75
- return this.payload.getPayloadToSign(SignatureDomainSeparator.checkpointAttestation);
68
+ return this.payload.getPayloadToSign();
69
+ }
70
+ /**
71
+ * Returns a keccak256 hash of the signed consensus payload.
72
+ * Used to dedup distinct signed payloads. Returns same hash than the corresponding proposal.
73
+ */ getPayloadHash() {
74
+ return CheckpointProposalHash.fromBuffer(this.payload.getPayloadHash());
76
75
  }
77
76
  toBuffer() {
78
77
  return serializeToBuffer([
@@ -1,23 +1,23 @@
1
- import { BlockNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
2
- import { Buffer32 } from '@aztec/foundation/buffer';
1
+ import { type CheckpointNumber, CheckpointProposalHash, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
2
+ import { type BaseBuffer32 } from '@aztec/foundation/buffer';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import type { EthAddress } from '@aztec/foundation/eth-address';
5
5
  import { Signature } from '@aztec/foundation/eth-signature';
6
6
  import { BufferReader } from '@aztec/foundation/serialize';
7
- import { type SigningContext } from '@aztec/validator-ha-signer/types';
7
+ import type { TypedDataDefinition } from 'viem';
8
8
  import type { L2BlockInfo } from '../block/l2_block_info.js';
9
+ import { type SigningContext } from '../ha-signing/index.js';
9
10
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
10
11
  import { BlockHeader } from '../tx/block_header.js';
11
12
  import { TxHash } from '../tx/index.js';
12
13
  import type { Tx } from '../tx/tx.js';
13
14
  import { BlockProposal } from './block_proposal.js';
15
+ import { ConsensusPayload } from './consensus_payload.js';
14
16
  import { Gossipable } from './gossipable.js';
15
- import { SignatureDomainSeparator } from './signature_utils.js';
17
+ import { type CoordinationSignatureContext, type CoordinationSignatureType, type Signable } from './signature_utils.js';
16
18
  import { SignedTxs } from './signed_txs.js';
17
19
  import { TopicType } from './topic_type.js';
18
- export declare class CheckpointProposalHash extends Buffer32 {
19
- constructor(hash: Buffer);
20
- }
20
+ export type { CheckpointProposalHash } from '@aztec/foundation/branded-types';
21
21
  export type CheckpointProposalOptions = {
22
22
  /**
23
23
  * Whether to include the tx objects along with the block proposal.
@@ -53,45 +53,68 @@ export type CheckpointLastBlock = Omit<CheckpointLastBlockData, 'txs'> & {
53
53
  * It includes the aggregated checkpoint header that validators will attest to, plus optionally
54
54
  * the last block's info for nodes to re-execute. This marks the completion of a slot's worth of blocks.
55
55
  */
56
- export declare class CheckpointProposal extends Gossipable {
56
+ export declare class CheckpointProposal extends Gossipable implements Signable {
57
57
  /** The aggregated checkpoint header for consensus */
58
58
  readonly checkpointHeader: CheckpointHeader;
59
59
  /** Archive root after this checkpoint is applied */
60
60
  readonly archive: Fr;
61
- /** The proposer's signature over the checkpoint payload (checkpointHeader + archive) */
61
+ /** The fee asset price modifier in basis points (from oracle) */
62
+ readonly feeAssetPriceModifier: bigint;
63
+ /** The proposer's signature over the checkpoint payload (checkpointHeader + archive + feeAssetPriceModifier) */
62
64
  readonly signature: Signature;
65
+ /** The signing domain (chainId + rollupAddress) the signature is bound to */
66
+ readonly signatureContext: CoordinationSignatureContext;
63
67
  /** Optional last block info, including its own signature for BlockProposal extraction */
64
- readonly lastBlock?: CheckpointLastBlock | undefined;
68
+ readonly lastBlock?: BlockProposal | CheckpointLastBlock | undefined;
65
69
  static p2pTopic: TopicType;
66
- private sender;
70
+ readonly primaryType: CoordinationSignatureType;
71
+ private cachedSender;
67
72
  constructor(
68
73
  /** The aggregated checkpoint header for consensus */
69
74
  checkpointHeader: CheckpointHeader,
70
75
  /** Archive root after this checkpoint is applied */
71
76
  archive: Fr,
72
- /** The proposer's signature over the checkpoint payload (checkpointHeader + archive) */
77
+ /** The fee asset price modifier in basis points (from oracle) */
78
+ feeAssetPriceModifier: bigint,
79
+ /** The proposer's signature over the checkpoint payload (checkpointHeader + archive + feeAssetPriceModifier) */
73
80
  signature: Signature,
81
+ /** The signing domain (chainId + rollupAddress) the signature is bound to */
82
+ signatureContext: CoordinationSignatureContext,
74
83
  /** Optional last block info, including its own signature for BlockProposal extraction */
75
- lastBlock?: CheckpointLastBlock | undefined);
76
- generateP2PMessageIdentifier(): Promise<Buffer32>;
84
+ lastBlock?: BlockProposal | CheckpointLastBlock | undefined);
85
+ generateP2PMessageIdentifier(): Promise<BaseBuffer32>;
77
86
  get slotNumber(): SlotNumber;
78
- get blockNumber(): BlockNumber;
79
- /** Convenience getter for txHashes from lastBlock */
80
- get txHashes(): TxHash[];
81
- /** Convenience getter for txs from lastBlock */
82
- get txs(): Tx[] | undefined;
83
87
  /**
84
88
  * Extract a BlockProposal from the last block info.
85
89
  * Uses inHash from checkpointHeader.contentCommitment.inHash
86
90
  */
87
91
  getBlockProposal(): BlockProposal | undefined;
88
92
  toBlockInfo(): Omit<L2BlockInfo, 'blockNumber'>;
93
+ toCheckpointInfo(): {
94
+ slotNumber: SlotNumber;
95
+ archive: Fr;
96
+ lastBlockNumber: import("@aztec/foundation/branded-types").BlockNumber | undefined;
97
+ lastBlockIndex: IndexWithinCheckpoint | undefined;
98
+ blockHeadersHash: Fr;
99
+ };
89
100
  /**
90
101
  * Get the payload to sign for this checkpoint proposal.
91
- * The signature is over the checkpoint header + archive root (for consensus).
102
+ * The signature is over the checkpoint header + archive root + feeAssetPriceModifier (for consensus).
103
+ */
104
+ getPayloadToSign(): Buffer;
105
+ /**
106
+ * Returns a content-addressed keccak256 hash of the consensus payload
107
+ * (header + archive + feeAssetPriceModifier + signatureContext).
108
+ *
109
+ * Used by the attestation pool to dedup distinct signed payloads at the same slot
110
+ * regardless of archive/header collisions on `feeAssetPriceModifier` variants.
111
+ * The hash deliberately excludes the signature so non-deterministic ECDSA
112
+ * re-signs of the same payload do not look like equivocation.
92
113
  */
93
- getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
94
- static createProposalFromSigner(checkpointHeader: CheckpointHeader, archiveRoot: Fr, lastBlockInfo: CheckpointLastBlockData | undefined, payloadSigner: (payload: Buffer32, context: SigningContext) => Promise<Signature>): Promise<CheckpointProposal>;
114
+ getPayloadHash(): CheckpointProposalHash;
115
+ /** Returns the ConsensusPayload that an attester would sign for this proposal. */
116
+ toConsensusPayload(): ConsensusPayload;
117
+ static createProposalFromSigner(checkpointHeader: CheckpointHeader, archiveRoot: Fr, checkpointNumber: CheckpointNumber, feeAssetPriceModifier: bigint, lastBlockProposal: BlockProposal | undefined, signatureContext: CoordinationSignatureContext, payloadSigner: (typedData: TypedDataDefinition, context: SigningContext) => Promise<Signature>): Promise<CheckpointProposal>;
95
118
  /**
96
119
  * Lazily evaluate the sender of the proposal; result is cached.
97
120
  * If there's a lastBlock, also verifies the block proposal sender matches the checkpoint sender.
@@ -123,6 +146,9 @@ export declare class CheckpointProposal extends Gossipable {
123
146
  };
124
147
  archive: `0x${string}`;
125
148
  signature: `0x${string}`;
149
+ feeAssetPriceModifier: string;
150
+ chainId: number;
151
+ rollupAddress: `0x${string}`;
126
152
  lastBlock: {
127
153
  blockHeader: {
128
154
  lastArchive: `0x${string}`;
@@ -136,7 +162,7 @@ export declare class CheckpointProposal extends Gossipable {
136
162
  globalVariables: {
137
163
  chainId: number;
138
164
  version: number;
139
- blockNumber: BlockNumber;
165
+ blockNumber: import("@aztec/foundation/branded-types").BlockNumber;
140
166
  slotNumber: SlotNumber;
141
167
  timestamp: bigint;
142
168
  coinbase: `0x${string}`;
@@ -164,4 +190,4 @@ export declare class CheckpointProposal extends Gossipable {
164
190
  * This type makes it clear that lastBlock and getBlockProposal() are not available.
165
191
  */
166
192
  export type CheckpointProposalCore = Omit<CheckpointProposal, 'lastBlock' | 'getBlockProposal' | 'toCore'>;
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9wcm9wb3NhbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9jaGVja3BvaW50X3Byb3Bvc2FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3BELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RSxPQUFPLEVBQVksS0FBSyxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFDTCx3QkFBd0IsRUFHekIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFN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
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9wcm9wb3NhbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9jaGVja3BvaW50X3Byb3Bvc2FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGdCQUFnQixFQUNyQixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLFVBQVUsRUFDWCxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBNEMsTUFBTSw2QkFBNkIsQ0FBQztBQUVyRyxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQVksS0FBSyxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFD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
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint_proposal.d.ts","sourceRoot":"","sources":["../../src/p2p/checkpoint_proposal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkpoint_proposal.d.ts","sourceRoot":"","sources":["../../src/p2p/checkpoint_proposal.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,19 @@
1
- import { BlockNumber, IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
1
+ import { CheckpointProposalHash, IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
2
2
  import { Buffer32 } from '@aztec/foundation/buffer';
3
- 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
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
8
- import { DutyType } from '@aztec/validator-ha-signer/types';
5
+ import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
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';
12
+ import { ConsensusPayload } from './consensus_payload.js';
14
13
  import { Gossipable } from './gossipable.js';
15
- import { SignatureDomainSeparator, getHashedSignaturePayload, getHashedSignaturePayloadEthSignedMessage } from './signature_utils.js';
14
+ import { EMPTY_COORDINATION_SIGNATURE_CONTEXT, coordinationSignatureContextEquals, getCoordinationSignatureTypedData, readCoordinationSignatureContext, recoverCoordinationSigner, serializeCoordinationSignatureContext } from './signature_utils.js';
16
15
  import { SignedTxs } from './signed_txs.js';
17
16
  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
17
  /**
25
18
  * A checkpoint proposal is created by the leader of the chain for the last block in a checkpoint.
26
19
  * It includes the aggregated checkpoint header that validators will attest to, plus optionally
@@ -28,31 +21,32 @@ export class CheckpointProposalHash extends Buffer32 {
28
21
  */ export class CheckpointProposal extends Gossipable {
29
22
  checkpointHeader;
30
23
  archive;
24
+ feeAssetPriceModifier;
31
25
  signature;
26
+ signatureContext;
32
27
  lastBlock;
33
28
  static p2pTopic = TopicType.checkpoint_proposal;
34
- sender;
35
- constructor(/** The aggregated checkpoint header for consensus */ checkpointHeader, /** Archive root after this checkpoint is applied */ archive, /** The proposer's signature over the checkpoint payload (checkpointHeader + archive) */ signature, /** Optional last block info, including its own signature for BlockProposal extraction */ lastBlock){
36
- super(), this.checkpointHeader = checkpointHeader, this.archive = archive, this.signature = signature, this.lastBlock = lastBlock;
29
+ primaryType;
30
+ cachedSender;
31
+ 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){
32
+ 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;
33
+ // Check that last block properties match those of the checkpoint.
34
+ if (lastBlock && 'inHash' in lastBlock && !lastBlock.inHash.equals(checkpointHeader.inHash)) {
35
+ throw new Error(`CheckpointProposal lastBlock inHash ${lastBlock.inHash} does not match checkpoint inHash ${checkpointHeader.inHash}`);
36
+ }
37
+ if (lastBlock && 'archiveRoot' in lastBlock && !lastBlock.archiveRoot.equals(archive)) {
38
+ throw new Error(`CheckpointProposal lastBlock archive ${lastBlock.archiveRoot} does not match checkpoint archive ${archive}`);
39
+ }
40
+ if (lastBlock && 'signatureContext' in lastBlock && !coordinationSignatureContextEquals(lastBlock.signatureContext, signatureContext)) {
41
+ throw new Error(`CheckpointProposal lastBlock signatureContext does not match checkpoint signatureContext`);
42
+ }
37
43
  }
38
44
  generateP2PMessageIdentifier() {
39
- return Promise.resolve(new CheckpointProposalHash(keccak256(this.signature.toBuffer())));
45
+ return Promise.resolve(new Buffer32(this.toConsensusPayload().getPayloadHash()));
40
46
  }
41
47
  get slotNumber() {
42
48
  return this.checkpointHeader.slotNumber;
43
49
  }
44
- get blockNumber() {
45
- if (!this.lastBlock) {
46
- throw new Error('Cannot get blockNumber without lastBlock');
47
- }
48
- return this.lastBlock.blockHeader.getBlockNumber();
49
- }
50
- /** Convenience getter for txHashes from lastBlock */ get txHashes() {
51
- return this.lastBlock?.txHashes ?? [];
52
- }
53
- /** Convenience getter for txs from lastBlock */ get txs() {
54
- return this.lastBlock?.signedTxs?.txs;
55
- }
56
50
  /**
57
51
  * Extract a BlockProposal from the last block info.
58
52
  * Uses inHash from checkpointHeader.contentCommitment.inHash
@@ -60,7 +54,7 @@ export class CheckpointProposalHash extends Buffer32 {
60
54
  if (!this.lastBlock) {
61
55
  return undefined;
62
56
  }
63
- return new BlockProposal(this.lastBlock.blockHeader, this.lastBlock.indexWithinCheckpoint, this.checkpointHeader.inHash, this.archive, this.lastBlock.txHashes, this.lastBlock.signature, this.lastBlock.signedTxs);
57
+ 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);
64
58
  }
65
59
  toBlockInfo() {
66
60
  if (!this.lastBlock) {
@@ -74,67 +68,80 @@ export class CheckpointProposalHash extends Buffer32 {
74
68
  txCount: this.lastBlock.txHashes.length
75
69
  };
76
70
  }
71
+ toCheckpointInfo() {
72
+ return {
73
+ slotNumber: this.slotNumber,
74
+ archive: this.archive,
75
+ lastBlockNumber: this.lastBlock?.blockHeader.getBlockNumber(),
76
+ lastBlockIndex: this.lastBlock?.indexWithinCheckpoint,
77
+ blockHeadersHash: this.checkpointHeader.blockHeadersHash
78
+ };
79
+ }
77
80
  /**
78
81
  * Get the payload to sign for this checkpoint proposal.
79
- * The signature is over the checkpoint header + archive root (for consensus).
80
- */ getPayloadToSign(domainSeparator) {
82
+ * The signature is over the checkpoint header + archive root + feeAssetPriceModifier (for consensus).
83
+ */ getPayloadToSign() {
81
84
  return serializeToBuffer([
82
- domainSeparator,
83
85
  this.checkpointHeader,
84
- this.archive
86
+ this.archive,
87
+ serializeSignedBigInt(this.feeAssetPriceModifier)
85
88
  ]);
86
89
  }
87
- static async createProposalFromSigner(checkpointHeader, archiveRoot, lastBlockInfo, payloadSigner) {
90
+ /**
91
+ * Returns a content-addressed keccak256 hash of the consensus payload
92
+ * (header + archive + feeAssetPriceModifier + signatureContext).
93
+ *
94
+ * Used by the attestation pool to dedup distinct signed payloads at the same slot
95
+ * regardless of archive/header collisions on `feeAssetPriceModifier` variants.
96
+ * The hash deliberately excludes the signature so non-deterministic ECDSA
97
+ * re-signs of the same payload do not look like equivocation.
98
+ */ getPayloadHash() {
99
+ return CheckpointProposalHash.fromBuffer(this.toConsensusPayload().getPayloadHash());
100
+ }
101
+ /** Returns the ConsensusPayload that an attester would sign for this proposal. */ toConsensusPayload() {
102
+ return new ConsensusPayload(this.checkpointHeader, this.archive, this.feeAssetPriceModifier, this.signatureContext);
103
+ }
104
+ static async createProposalFromSigner(checkpointHeader, archiveRoot, checkpointNumber, feeAssetPriceModifier, lastBlockProposal, signatureContext, payloadSigner) {
88
105
  // Sign the checkpoint payload with CHECKPOINT_PROPOSAL duty type
89
- const tempProposal = new CheckpointProposal(checkpointHeader, archiveRoot, Signature.empty(), undefined);
90
- const checkpointHash = getHashedSignaturePayload(tempProposal, SignatureDomainSeparator.checkpointProposal);
106
+ const tempProposal = new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, Signature.empty(), signatureContext);
91
107
  const checkpointContext = {
92
108
  slot: checkpointHeader.slotNumber,
93
- blockNumber: lastBlockInfo?.blockHeader?.globalVariables.blockNumber ?? BlockNumber(0),
109
+ checkpointNumber,
94
110
  dutyType: DutyType.CHECKPOINT_PROPOSAL
95
111
  };
96
- const checkpointSignature = await payloadSigner(checkpointHash, checkpointContext);
97
- if (!lastBlockInfo) {
98
- return new CheckpointProposal(checkpointHeader, archiveRoot, checkpointSignature);
99
- }
100
- const lastBlockProposal = await BlockProposal.createProposalFromSigner(lastBlockInfo.blockHeader, lastBlockInfo.indexWithinCheckpoint, checkpointHeader.inHash, archiveRoot, lastBlockInfo.txHashes, lastBlockInfo.txs, payloadSigner);
101
- return new CheckpointProposal(checkpointHeader, archiveRoot, checkpointSignature, {
102
- blockHeader: lastBlockInfo.blockHeader,
103
- indexWithinCheckpoint: lastBlockInfo.indexWithinCheckpoint,
104
- txHashes: lastBlockInfo.txHashes,
105
- signature: lastBlockProposal.signature,
106
- signedTxs: lastBlockProposal.signedTxs
107
- });
112
+ const typedData = getCoordinationSignatureTypedData(tempProposal);
113
+ const checkpointSignature = await payloadSigner(typedData, checkpointContext);
114
+ return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature, signatureContext, lastBlockProposal);
108
115
  }
109
116
  /**
110
117
  * Lazily evaluate the sender of the proposal; result is cached.
111
118
  * If there's a lastBlock, also verifies the block proposal sender matches the checkpoint sender.
112
119
  * @returns The sender address, or undefined if signature recovery fails or senders don't match
113
120
  */ getSender() {
114
- if (!this.sender) {
115
- const hashed = getHashedSignaturePayloadEthSignedMessage(this, SignatureDomainSeparator.checkpointProposal);
116
- const checkpointSender = tryRecoverAddress(hashed, this.signature);
117
- // If there's a lastBlock, verify the block proposal sender matches
121
+ if (this.cachedSender === undefined) {
122
+ const checkpointSender = recoverCoordinationSigner(this, this.signature);
118
123
  if (checkpointSender && this.lastBlock) {
119
124
  const blockProposal = this.getBlockProposal();
120
125
  const blockSender = blockProposal?.getSender();
121
126
  if (!blockSender || !blockSender.equals(checkpointSender)) {
122
- return undefined; // Sender mismatch - fail
127
+ this.cachedSender = null;
128
+ return undefined;
123
129
  }
124
130
  }
125
- // Cache the sender for later use
126
- this.sender = checkpointSender;
131
+ this.cachedSender = checkpointSender ?? null;
127
132
  }
128
- return this.sender;
133
+ return this.cachedSender ?? undefined;
129
134
  }
130
135
  getPayload() {
131
- return this.getPayloadToSign(SignatureDomainSeparator.checkpointProposal);
136
+ return this.getPayloadToSign();
132
137
  }
133
138
  toBuffer() {
134
139
  const buffer = [
135
140
  this.checkpointHeader,
136
141
  this.archive,
137
- this.signature
142
+ serializeSignedBigInt(this.feeAssetPriceModifier),
143
+ this.signature,
144
+ serializeCoordinationSignatureContext(this.signatureContext)
138
145
  ];
139
146
  if (this.lastBlock) {
140
147
  buffer.push(1); // hasLastBlock = true
@@ -158,7 +165,9 @@ export class CheckpointProposalHash extends Buffer32 {
158
165
  const reader = BufferReader.asReader(buf);
159
166
  const checkpointHeader = reader.readObject(CheckpointHeader);
160
167
  const archive = reader.readObject(Fr);
168
+ const feeAssetPriceModifier = reader.readInt256();
161
169
  const signature = reader.readObject(Signature);
170
+ const signatureContext = readCoordinationSignatureContext(reader);
162
171
  const hasLastBlock = reader.readNumber();
163
172
  if (hasLastBlock) {
164
173
  const blockHeader = reader.readObject(BlockHeader);
@@ -176,7 +185,7 @@ export class CheckpointProposalHash extends Buffer32 {
176
185
  signedTxs = SignedTxs.fromBuffer(reader);
177
186
  }
178
187
  }
179
- return new CheckpointProposal(checkpointHeader, archive, signature, {
188
+ return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, signatureContext, {
180
189
  blockHeader,
181
190
  indexWithinCheckpoint,
182
191
  txHashes,
@@ -184,20 +193,20 @@ export class CheckpointProposalHash extends Buffer32 {
184
193
  signedTxs
185
194
  });
186
195
  }
187
- return new CheckpointProposal(checkpointHeader, archive, signature);
196
+ return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, signatureContext);
188
197
  }
189
198
  getSize() {
190
- let size = this.checkpointHeader.toBuffer().length + this.archive.size + this.signature.getSize() + 4; /* hasLastBlock flag */
199
+ let size = this.checkpointHeader.toBuffer().length + this.archive.size + this.signature.getSize() + 8 /* feeAssetPriceModifier */ + 4 /* chainId */ + 20 /* rollupAddress */ + 4; /* hasLastBlock flag */
191
200
  if (this.lastBlock) {
192
201
  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);
193
202
  }
194
203
  return size;
195
204
  }
196
205
  static empty() {
197
- return new CheckpointProposal(CheckpointHeader.empty(), Fr.ZERO, Signature.empty());
206
+ return new CheckpointProposal(CheckpointHeader.empty(), Fr.ZERO, 0n, Signature.empty(), EMPTY_COORDINATION_SIGNATURE_CONTEXT);
198
207
  }
199
208
  static random() {
200
- return new CheckpointProposal(CheckpointHeader.random(), Fr.random(), Signature.random(), {
209
+ return new CheckpointProposal(CheckpointHeader.random(), Fr.random(), 0n, Signature.random(), EMPTY_COORDINATION_SIGNATURE_CONTEXT, {
201
210
  blockHeader: BlockHeader.random(),
202
211
  indexWithinCheckpoint: IndexWithinCheckpoint(Math.floor(Math.random() * 5)),
203
212
  txHashes: [
@@ -212,6 +221,9 @@ export class CheckpointProposalHash extends Buffer32 {
212
221
  checkpointHeader: this.checkpointHeader.toInspect(),
213
222
  archive: this.archive.toString(),
214
223
  signature: this.signature.toString(),
224
+ feeAssetPriceModifier: this.feeAssetPriceModifier.toString(),
225
+ chainId: this.signatureContext.chainId,
226
+ rollupAddress: this.signatureContext.rollupAddress.toString(),
215
227
  lastBlock: this.lastBlock ? {
216
228
  blockHeader: this.lastBlock.blockHeader.toInspect(),
217
229
  indexWithinCheckpoint: this.lastBlock.indexWithinCheckpoint,
@@ -224,6 +236,6 @@ export class CheckpointProposalHash extends Buffer32 {
224
236
  * Returns a copy of this proposal without lastBlock info, as a CheckpointProposalCore.
225
237
  * Used when the lastBlock has been extracted and stored separately.
226
238
  */ toCore() {
227
- return new CheckpointProposal(this.checkpointHeader, this.archive, this.signature);
239
+ return new CheckpointProposal(this.checkpointHeader, this.archive, this.feeAssetPriceModifier, this.signature, this.signatureContext);
228
240
  }
229
241
  }
@@ -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