@aztec/stdlib 5.0.0-private.20260318 → 5.0.0-rc.1

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 (929) 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 +14 -1
  10. package/dest/abi/contract_artifact.d.ts.map +1 -1
  11. package/dest/abi/contract_artifact.js +31 -7
  12. package/dest/abi/decoder.d.ts +5 -44
  13. package/dest/abi/decoder.d.ts.map +1 -1
  14. package/dest/abi/decoder.js +12 -67
  15. package/dest/abi/encoder.d.ts +1 -1
  16. package/dest/abi/encoder.d.ts.map +1 -1
  17. package/dest/abi/encoder.js +32 -6
  18. package/dest/abi/event_selector.d.ts +4 -7
  19. package/dest/abi/event_selector.d.ts.map +1 -1
  20. package/dest/abi/function_call.d.ts +7 -25
  21. package/dest/abi/function_call.d.ts.map +1 -1
  22. package/dest/abi/function_selector.d.ts +3 -6
  23. package/dest/abi/function_selector.d.ts.map +1 -1
  24. package/dest/abi/function_selector.js +2 -4
  25. package/dest/abi/function_signature_decoder.d.ts +43 -0
  26. package/dest/abi/function_signature_decoder.d.ts.map +1 -0
  27. package/dest/abi/function_signature_decoder.js +66 -0
  28. package/dest/abi/index.d.ts +2 -1
  29. package/dest/abi/index.d.ts.map +1 -1
  30. package/dest/abi/index.js +1 -0
  31. package/dest/abi/note_selector.d.ts +4 -7
  32. package/dest/abi/note_selector.d.ts.map +1 -1
  33. package/dest/abi/note_selector.js +1 -3
  34. package/dest/abi/selector.d.ts +2 -2
  35. package/dest/abi/selector.d.ts.map +1 -1
  36. package/dest/abi/selector.js +1 -1
  37. package/dest/abi/utils.d.ts +1 -1
  38. package/dest/abi/utils.d.ts.map +1 -1
  39. package/dest/abi/utils.js +1 -1
  40. package/dest/auth_witness/auth_witness.d.ts +2 -2
  41. package/dest/auth_witness/auth_witness.d.ts.map +1 -1
  42. package/dest/avm/avm.d.ts +1756 -10463
  43. package/dest/avm/avm.d.ts.map +1 -1
  44. package/dest/avm/avm.js +6 -3
  45. package/dest/avm/avm_accumulated_data.d.ts +22 -86
  46. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  47. package/dest/avm/avm_circuit_public_inputs.d.ts +180 -932
  48. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  49. package/dest/avm/avm_proving_request.d.ts +653 -5446
  50. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  51. package/dest/avm/message_pack.js +12 -3
  52. package/dest/avm/public_data_write.d.ts +6 -12
  53. package/dest/avm/public_data_write.d.ts.map +1 -1
  54. package/dest/avm/revert_code.d.ts +5 -21
  55. package/dest/avm/revert_code.d.ts.map +1 -1
  56. package/dest/avm/revert_code.js +12 -30
  57. package/dest/aztec-address/index.d.ts +8 -8
  58. package/dest/aztec-address/index.d.ts.map +1 -1
  59. package/dest/aztec-address/index.js +9 -6
  60. package/dest/block/attestation_info.d.ts +3 -2
  61. package/dest/block/attestation_info.d.ts.map +1 -1
  62. package/dest/block/attestation_info.js +7 -5
  63. package/dest/block/block_data.d.ts +13 -38
  64. package/dest/block/block_data.d.ts.map +1 -1
  65. package/dest/block/block_data.js +2 -2
  66. package/dest/block/block_hash.d.ts +11 -10
  67. package/dest/block/block_hash.d.ts.map +1 -1
  68. package/dest/block/block_hash.js +10 -9
  69. package/dest/block/block_parameter.d.ts +37 -4
  70. package/dest/block/block_parameter.d.ts.map +1 -1
  71. package/dest/block/block_parameter.js +53 -2
  72. package/dest/block/in_block.d.ts +5 -24
  73. package/dest/block/in_block.d.ts.map +1 -1
  74. package/dest/block/index.d.ts +1 -2
  75. package/dest/block/index.d.ts.map +1 -1
  76. package/dest/block/index.js +0 -1
  77. package/dest/block/l2_block.d.ts +13 -41
  78. package/dest/block/l2_block.d.ts.map +1 -1
  79. package/dest/block/l2_block_info.d.ts +10 -29
  80. package/dest/block/l2_block_info.d.ts.map +1 -1
  81. package/dest/block/l2_block_info.js +6 -5
  82. package/dest/block/l2_block_source.d.ts +216 -357
  83. package/dest/block/l2_block_source.d.ts.map +1 -1
  84. package/dest/block/l2_block_source.js +67 -1
  85. package/dest/block/l2_block_stream/interfaces.d.ts +46 -7
  86. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  87. package/dest/block/l2_block_stream/l2_block_stream.d.ts +2 -2
  88. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  89. package/dest/block/l2_block_stream/l2_block_stream.js +57 -21
  90. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +8 -12
  91. package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
  92. package/dest/block/l2_block_stream/l2_tips_memory_store.js +11 -32
  93. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +12 -18
  94. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  95. package/dest/block/l2_block_stream/l2_tips_store_base.js +66 -40
  96. package/dest/block/proposal/attestations_and_signers.d.ts +19 -30
  97. package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
  98. package/dest/block/proposal/attestations_and_signers.js +26 -18
  99. package/dest/block/proposal/committee_attestation.d.ts +6 -12
  100. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  101. package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
  102. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  103. package/dest/block/test/l2_tips_store_test_suite.js +202 -33
  104. package/dest/checkpoint/checkpoint.d.ts +30 -96
  105. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  106. package/dest/checkpoint/checkpoint.js +11 -3
  107. package/dest/checkpoint/checkpoint_data.d.ts +68 -91
  108. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
  109. package/dest/checkpoint/checkpoint_data.js +12 -0
  110. package/dest/checkpoint/checkpoint_info.d.ts +7 -23
  111. package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
  112. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +60 -0
  113. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -0
  114. package/dest/checkpoint/checkpoint_reexecution_tracker.js +108 -0
  115. package/dest/checkpoint/digest.d.ts +18 -0
  116. package/dest/checkpoint/digest.d.ts.map +1 -0
  117. package/dest/checkpoint/digest.js +12 -0
  118. package/dest/checkpoint/index.d.ts +4 -1
  119. package/dest/checkpoint/index.d.ts.map +1 -1
  120. package/dest/checkpoint/index.js +3 -0
  121. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts +33 -0
  122. package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts.map +1 -0
  123. package/dest/checkpoint/previous_checkpoint_out_hashes.js +45 -0
  124. package/dest/checkpoint/published_checkpoint.d.ts +42 -194
  125. package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
  126. package/dest/checkpoint/validate.d.ts +11 -3
  127. package/dest/checkpoint/validate.d.ts.map +1 -1
  128. package/dest/checkpoint/validate.js +11 -8
  129. package/dest/config/chain-config.d.ts +4 -9
  130. package/dest/config/chain-config.d.ts.map +1 -1
  131. package/dest/config/chain-config.js +13 -12
  132. package/dest/config/index.d.ts +2 -1
  133. package/dest/config/index.d.ts.map +1 -1
  134. package/dest/config/index.js +1 -0
  135. package/dest/config/network-consensus-config.d.ts +72 -0
  136. package/dest/config/network-consensus-config.d.ts.map +1 -0
  137. package/dest/config/network-consensus-config.js +231 -0
  138. package/dest/config/sequencer-config.d.ts +7 -3
  139. package/dest/config/sequencer-config.d.ts.map +1 -1
  140. package/dest/config/sequencer-config.js +38 -5
  141. package/dest/contract/complete_address.d.ts +3 -2
  142. package/dest/contract/complete_address.d.ts.map +1 -1
  143. package/dest/contract/complete_address.js +6 -2
  144. package/dest/contract/contract_address.d.ts +6 -6
  145. package/dest/contract/contract_address.d.ts.map +1 -1
  146. package/dest/contract/contract_address.js +6 -5
  147. package/dest/contract/contract_class_id.d.ts +2 -2
  148. package/dest/contract/contract_class_id.js +2 -2
  149. package/dest/contract/contract_deployment_data.d.ts +15 -61
  150. package/dest/contract/contract_deployment_data.d.ts.map +1 -1
  151. package/dest/contract/contract_instance.d.ts +4 -2
  152. package/dest/contract/contract_instance.d.ts.map +1 -1
  153. package/dest/contract/contract_instance.js +10 -3
  154. package/dest/contract/index.d.ts +1 -3
  155. package/dest/contract/index.d.ts.map +1 -1
  156. package/dest/contract/index.js +0 -2
  157. package/dest/contract/interfaces/contract_class.d.ts +17 -241
  158. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  159. package/dest/contract/interfaces/contract_class.js +1 -28
  160. package/dest/contract/interfaces/contract_instance.d.ts +41 -95
  161. package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
  162. package/dest/contract/interfaces/contract_instance.js +4 -2
  163. package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
  164. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  165. package/dest/contract/interfaces/node-info.d.ts +11 -1
  166. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  167. package/dest/contract/interfaces/node-info.js +7 -1
  168. package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
  169. package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
  170. package/dest/contract/private_function.d.ts +1 -1
  171. package/dest/contract/private_function.d.ts.map +1 -1
  172. package/dest/contract/private_function.js +2 -4
  173. package/dest/database-version/database_version.d.ts +5 -11
  174. package/dest/database-version/database_version.d.ts.map +1 -1
  175. package/dest/database-version/version_manager.d.ts +6 -2
  176. package/dest/database-version/version_manager.d.ts.map +1 -1
  177. package/dest/database-version/version_manager.js +12 -1
  178. package/dest/deserialization/index.d.ts +35 -3
  179. package/dest/deserialization/index.d.ts.map +1 -1
  180. package/dest/deserialization/index.js +32 -1
  181. package/dest/epoch-helpers/index.d.ts +10 -22
  182. package/dest/epoch-helpers/index.d.ts.map +1 -1
  183. package/dest/epoch-helpers/index.js +12 -0
  184. package/dest/file-store/factory.d.ts +4 -3
  185. package/dest/file-store/factory.d.ts.map +1 -1
  186. package/dest/file-store/factory.js +2 -2
  187. package/dest/file-store/http.d.ts +9 -2
  188. package/dest/file-store/http.d.ts.map +1 -1
  189. package/dest/file-store/http.js +20 -9
  190. package/dest/file-store/index.d.ts +2 -1
  191. package/dest/file-store/index.d.ts.map +1 -1
  192. package/dest/gas/fee_math.d.ts +49 -0
  193. package/dest/gas/fee_math.d.ts.map +1 -0
  194. package/dest/gas/fee_math.js +80 -0
  195. package/dest/gas/gas.d.ts +9 -14
  196. package/dest/gas/gas.d.ts.map +1 -1
  197. package/dest/gas/gas.js +6 -3
  198. package/dest/gas/gas_fees.d.ts +13 -14
  199. package/dest/gas/gas_fees.d.ts.map +1 -1
  200. package/dest/gas/gas_fees.js +17 -4
  201. package/dest/gas/gas_settings.d.ts +60 -86
  202. package/dest/gas/gas_settings.d.ts.map +1 -1
  203. package/dest/gas/gas_settings.js +49 -9
  204. package/dest/gas/index.d.ts +3 -1
  205. package/dest/gas/index.d.ts.map +1 -1
  206. package/dest/gas/index.js +2 -0
  207. package/dest/gas/tx_gas_limits.d.ts +72 -0
  208. package/dest/gas/tx_gas_limits.d.ts.map +1 -0
  209. package/dest/gas/tx_gas_limits.js +85 -0
  210. package/dest/ha-signing/config.d.ts +11 -75
  211. package/dest/ha-signing/config.d.ts.map +1 -1
  212. package/dest/ha-signing/config.js +9 -18
  213. package/dest/ha-signing/index.d.ts +2 -2
  214. package/dest/ha-signing/index.d.ts.map +1 -1
  215. package/dest/ha-signing/index.js +1 -1
  216. package/dest/ha-signing/local_config.d.ts +3 -34
  217. package/dest/ha-signing/local_config.d.ts.map +1 -1
  218. package/dest/ha-signing/local_config.js +2 -2
  219. package/dest/ha-signing/types.d.ts +37 -32
  220. package/dest/ha-signing/types.d.ts.map +1 -1
  221. package/dest/ha-signing/types.js +13 -6
  222. package/dest/hash/hash.d.ts +34 -1
  223. package/dest/hash/hash.d.ts.map +1 -1
  224. package/dest/hash/hash.js +63 -2
  225. package/dest/interfaces/allowed_element.d.ts +4 -28
  226. package/dest/interfaces/allowed_element.d.ts.map +1 -1
  227. package/dest/interfaces/api_limit.d.ts +1 -1
  228. package/dest/interfaces/api_limit.js +1 -1
  229. package/dest/interfaces/archiver.d.ts +20 -32
  230. package/dest/interfaces/archiver.d.ts.map +1 -1
  231. package/dest/interfaces/archiver.js +215 -70
  232. package/dest/interfaces/aztec-node-admin.d.ts +71 -308
  233. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  234. package/dest/interfaces/aztec-node-admin.js +60 -17
  235. package/dest/interfaces/aztec-node-debug.d.ts +34 -0
  236. package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
  237. package/dest/interfaces/aztec-node-debug.js +29 -0
  238. package/dest/interfaces/aztec-node.d.ts +156 -112
  239. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  240. package/dest/interfaces/aztec-node.js +354 -71
  241. package/dest/interfaces/block-builder.d.ts +30 -7
  242. package/dest/interfaces/block-builder.d.ts.map +1 -1
  243. package/dest/interfaces/block-builder.js +1 -4
  244. package/dest/interfaces/block_response.d.ts +90 -0
  245. package/dest/interfaces/block_response.d.ts.map +1 -0
  246. package/dest/interfaces/block_response.js +30 -0
  247. package/dest/interfaces/chain_tips.d.ts +50 -0
  248. package/dest/interfaces/chain_tips.d.ts.map +1 -0
  249. package/dest/interfaces/chain_tips.js +11 -0
  250. package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
  251. package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
  252. package/dest/interfaces/checkpoint_parameter.js +18 -0
  253. package/dest/interfaces/checkpoint_response.d.ts +122 -0
  254. package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
  255. package/dest/interfaces/checkpoint_response.js +26 -0
  256. package/dest/interfaces/client.d.ts +9 -2
  257. package/dest/interfaces/client.d.ts.map +1 -1
  258. package/dest/interfaces/client.js +7 -1
  259. package/dest/interfaces/configs.d.ts +63 -139
  260. package/dest/interfaces/configs.d.ts.map +1 -1
  261. package/dest/interfaces/configs.js +13 -3
  262. package/dest/interfaces/get_tx_by_hash_options.d.ts +9 -0
  263. package/dest/interfaces/get_tx_by_hash_options.d.ts.map +1 -0
  264. package/dest/interfaces/get_tx_by_hash_options.js +4 -0
  265. package/dest/interfaces/l1_publish_info.d.ts +29 -0
  266. package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
  267. package/dest/interfaces/l1_publish_info.js +26 -0
  268. package/dest/interfaces/l2_logs_source.d.ts +14 -36
  269. package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
  270. package/dest/interfaces/l2_logs_source.js +5 -0
  271. package/dest/interfaces/merkle_tree_operations.d.ts +4 -3
  272. package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
  273. package/dest/interfaces/p2p-bootstrap.js +8 -2
  274. package/dest/interfaces/p2p.d.ts +46 -7
  275. package/dest/interfaces/p2p.d.ts.map +1 -1
  276. package/dest/interfaces/p2p.js +41 -6
  277. package/dest/interfaces/private_kernel_prover.d.ts +62 -2
  278. package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
  279. package/dest/interfaces/prover-agent.d.ts +5 -23
  280. package/dest/interfaces/prover-agent.d.ts.map +1 -1
  281. package/dest/interfaces/prover-agent.js +4 -1
  282. package/dest/interfaces/prover-client.d.ts +7 -29
  283. package/dest/interfaces/prover-client.d.ts.map +1 -1
  284. package/dest/interfaces/prover-client.js +0 -3
  285. package/dest/interfaces/prover-node.d.ts +8 -3
  286. package/dest/interfaces/prover-node.d.ts.map +1 -1
  287. package/dest/interfaces/prover-node.js +30 -14
  288. package/dest/interfaces/proving-job-source.js +24 -4
  289. package/dest/interfaces/proving-job.d.ts +763 -5814
  290. package/dest/interfaces/proving-job.d.ts.map +1 -1
  291. package/dest/interfaces/proving-job.js +1 -1
  292. package/dest/interfaces/public_storage_override.d.ts +22 -0
  293. package/dest/interfaces/public_storage_override.d.ts.map +1 -0
  294. package/dest/interfaces/public_storage_override.js +7 -0
  295. package/dest/interfaces/server.d.ts +6 -2
  296. package/dest/interfaces/server.d.ts.map +1 -1
  297. package/dest/interfaces/server.js +5 -1
  298. package/dest/interfaces/slasher.d.ts +25 -65
  299. package/dest/interfaces/slasher.d.ts.map +1 -1
  300. package/dest/interfaces/slasher.js +8 -4
  301. package/dest/interfaces/tx_provider.d.ts +6 -1
  302. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  303. package/dest/interfaces/validator.d.ts +55 -248
  304. package/dest/interfaces/validator.d.ts.map +1 -1
  305. package/dest/interfaces/validator.js +8 -2
  306. package/dest/interfaces/world_state.d.ts +2 -2
  307. package/dest/interfaces/world_state.d.ts.map +1 -1
  308. package/dest/kernel/hints/key_validation_request.d.ts +12 -8
  309. package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
  310. package/dest/kernel/hints/key_validation_request.js +20 -18
  311. package/dest/kernel/index.d.ts +5 -1
  312. package/dest/kernel/index.d.ts.map +1 -1
  313. package/dest/kernel/index.js +4 -0
  314. package/dest/kernel/log_hash.d.ts +6 -2
  315. package/dest/kernel/log_hash.d.ts.map +1 -1
  316. package/dest/kernel/log_hash.js +21 -9
  317. package/dest/kernel/private_circuit_public_inputs.d.ts +2 -2
  318. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  319. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -2
  320. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  321. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +23 -0
  322. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
  323. package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +35 -0
  324. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +24 -0
  325. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
  326. package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +37 -0
  327. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
  328. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
  329. package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
  330. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
  331. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
  332. package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
  333. package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
  334. package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
  335. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +9 -6
  336. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  337. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +22 -7
  338. package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
  339. package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
  340. package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
  341. package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
  342. package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
  343. package/dest/kernel/private_to_public_accumulated_data.js +6 -3
  344. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +5 -4
  345. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  346. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -3
  347. package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
  348. package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
  349. package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
  350. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +5 -4
  351. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  352. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -3
  353. package/dest/kernel/public_call_request.d.ts +15 -30
  354. package/dest/kernel/public_call_request.d.ts.map +1 -1
  355. package/dest/kernel/public_call_request.js +16 -7
  356. package/dest/keys/derivation.d.ts +6 -2
  357. package/dest/keys/derivation.d.ts.map +1 -1
  358. package/dest/keys/derivation.js +16 -6
  359. package/dest/keys/public_key.d.ts +22 -3
  360. package/dest/keys/public_key.d.ts.map +1 -1
  361. package/dest/keys/public_key.js +20 -1
  362. package/dest/keys/public_keys.d.ts +55 -82
  363. package/dest/keys/public_keys.d.ts.map +1 -1
  364. package/dest/keys/public_keys.js +102 -74
  365. package/dest/kv-store/config.d.ts +3 -6
  366. package/dest/kv-store/config.d.ts.map +1 -1
  367. package/dest/kv-store/config.js +2 -7
  368. package/dest/l1-contracts/index.d.ts +2 -2
  369. package/dest/l1-contracts/index.d.ts.map +1 -1
  370. package/dest/l1-contracts/index.js +1 -1
  371. package/dest/logs/app_tagging_secret.d.ts +46 -0
  372. package/dest/logs/app_tagging_secret.d.ts.map +1 -0
  373. package/dest/logs/app_tagging_secret.js +109 -0
  374. package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
  375. package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
  376. package/dest/logs/app_tagging_secret_kind.js +17 -0
  377. package/dest/logs/contract_class_log.d.ts +16 -34
  378. package/dest/logs/contract_class_log.d.ts.map +1 -1
  379. package/dest/logs/contract_class_log.js +11 -9
  380. package/dest/logs/index.d.ts +7 -7
  381. package/dest/logs/index.d.ts.map +1 -1
  382. package/dest/logs/index.js +6 -6
  383. package/dest/logs/log_cursor.d.ts +51 -0
  384. package/dest/logs/log_cursor.d.ts.map +1 -0
  385. package/dest/logs/log_cursor.js +82 -0
  386. package/dest/logs/log_result.d.ts +54 -0
  387. package/dest/logs/log_result.d.ts.map +1 -0
  388. package/dest/logs/log_result.js +56 -0
  389. package/dest/logs/logs_query.d.ts +82 -0
  390. package/dest/logs/logs_query.d.ts.map +1 -0
  391. package/dest/logs/logs_query.js +50 -0
  392. package/dest/logs/message_context.d.ts +6 -8
  393. package/dest/logs/message_context.d.ts.map +1 -1
  394. package/dest/logs/message_context.js +27 -9
  395. package/dest/logs/pending_tagged_log.d.ts +2 -3
  396. package/dest/logs/pending_tagged_log.d.ts.map +1 -1
  397. package/dest/logs/pending_tagged_log.js +2 -2
  398. package/dest/logs/pre_tag.d.ts +11 -24
  399. package/dest/logs/pre_tag.d.ts.map +1 -1
  400. package/dest/logs/pre_tag.js +2 -2
  401. package/dest/logs/private_log.d.ts +7 -12
  402. package/dest/logs/private_log.d.ts.map +1 -1
  403. package/dest/logs/private_log.js +6 -3
  404. package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
  405. package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
  406. package/dest/logs/query_all_logs_by_tags.js +64 -0
  407. package/dest/logs/shared_secret_derivation.d.ts +11 -10
  408. package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
  409. package/dest/logs/shared_secret_derivation.js +15 -9
  410. package/dest/logs/siloed_tag.d.ts +8 -7
  411. package/dest/logs/siloed_tag.d.ts.map +1 -1
  412. package/dest/logs/siloed_tag.js +13 -3
  413. package/dest/logs/tag.d.ts +5 -6
  414. package/dest/logs/tag.d.ts.map +1 -1
  415. package/dest/logs/tag.js +4 -0
  416. package/dest/logs/tagging_index_range.d.ts +13 -31
  417. package/dest/logs/tagging_index_range.d.ts.map +1 -1
  418. package/dest/logs/tagging_index_range.js +2 -2
  419. package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
  420. package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
  421. package/dest/messaging/append_l1_to_l2_messages.js +12 -0
  422. package/dest/messaging/index.d.ts +2 -1
  423. package/dest/messaging/index.d.ts.map +1 -1
  424. package/dest/messaging/index.js +1 -0
  425. package/dest/messaging/l1_to_l2_message.d.ts +3 -2
  426. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  427. package/dest/messaging/l1_to_l2_message.js +11 -13
  428. package/dest/messaging/l2_to_l1_membership.d.ts +43 -6
  429. package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
  430. package/dest/messaging/l2_to_l1_membership.js +72 -12
  431. package/dest/messaging/l2_to_l1_message.d.ts +38 -112
  432. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  433. package/dest/messaging/l2_to_l1_message.js +21 -12
  434. package/dest/noir/index.d.ts +5 -3
  435. package/dest/noir/index.d.ts.map +1 -1
  436. package/dest/note/note.d.ts +2 -2
  437. package/dest/note/note.d.ts.map +1 -1
  438. package/dest/note/note_dao.d.ts +1 -1
  439. package/dest/note/note_dao.d.ts.map +1 -1
  440. package/dest/note/note_dao.js +1 -4
  441. package/dest/p2p/block_proposal.d.ts +31 -14
  442. package/dest/p2p/block_proposal.d.ts.map +1 -1
  443. package/dest/p2p/block_proposal.js +57 -39
  444. package/dest/p2p/checkpoint_attestation.d.ts +15 -9
  445. package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
  446. package/dest/p2p/checkpoint_attestation.js +23 -24
  447. package/dest/p2p/checkpoint_proposal.d.ts +35 -16
  448. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  449. package/dest/p2p/checkpoint_proposal.js +59 -49
  450. package/dest/p2p/consensus_payload.d.ts +26 -20
  451. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  452. package/dest/p2p/consensus_payload.js +38 -19
  453. package/dest/p2p/gossipable.d.ts +4 -4
  454. package/dest/p2p/gossipable.d.ts.map +1 -1
  455. package/dest/p2p/signature_utils.d.ts +28 -19
  456. package/dest/p2p/signature_utils.d.ts.map +1 -1
  457. package/dest/p2p/signature_utils.js +118 -21
  458. package/dest/p2p/signed_txs.d.ts +15 -13
  459. package/dest/p2p/signed_txs.d.ts.map +1 -1
  460. package/dest/p2p/signed_txs.js +26 -24
  461. package/dest/parity/parity_base_private_inputs.d.ts +8 -4
  462. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
  463. package/dest/parity/parity_base_private_inputs.js +7 -5
  464. package/dest/parity/parity_public_inputs.d.ts +8 -4
  465. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  466. package/dest/parity/parity_public_inputs.js +6 -3
  467. package/dest/parity/parity_root_private_inputs.d.ts +2 -2
  468. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
  469. package/dest/proofs/chonk_proof.d.ts +57 -7
  470. package/dest/proofs/chonk_proof.d.ts.map +1 -1
  471. package/dest/proofs/chonk_proof.js +112 -15
  472. package/dest/proofs/recursive_proof.d.ts +2 -2
  473. package/dest/proofs/recursive_proof.d.ts.map +1 -1
  474. package/dest/rollup/block_headers_hash.d.ts +1 -1
  475. package/dest/rollup/block_headers_hash.d.ts.map +1 -1
  476. package/dest/rollup/block_headers_hash.js +8 -2
  477. package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
  478. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
  479. package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
  480. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  481. package/dest/rollup/block_rollup_public_inputs.js +12 -0
  482. package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
  483. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  484. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
  485. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
  486. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +9 -2
  487. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  488. package/dest/rollup/checkpoint_rollup_public_inputs.js +9 -0
  489. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +5 -5
  490. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  491. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
  492. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
  493. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
  494. package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
  495. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
  496. package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
  497. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
  498. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  499. package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
  500. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
  501. package/dest/rollup/root_rollup_public_inputs.d.ts +2 -2
  502. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  503. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
  504. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
  505. package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
  506. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  507. package/dest/schemas/schemas.d.ts +32 -78
  508. package/dest/schemas/schemas.d.ts.map +1 -1
  509. package/dest/schemas/schemas.js +2 -2
  510. package/dest/slashing/helpers.d.ts +2 -2
  511. package/dest/slashing/helpers.d.ts.map +1 -1
  512. package/dest/slashing/helpers.js +10 -7
  513. package/dest/slashing/index.d.ts +2 -3
  514. package/dest/slashing/index.d.ts.map +1 -1
  515. package/dest/slashing/index.js +1 -2
  516. package/dest/slashing/serialization.d.ts +2 -6
  517. package/dest/slashing/serialization.d.ts.map +1 -1
  518. package/dest/slashing/serialization.js +0 -60
  519. package/dest/slashing/types.d.ts +18 -112
  520. package/dest/slashing/types.d.ts.map +1 -1
  521. package/dest/slashing/types.js +16 -24
  522. package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
  523. package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
  524. package/dest/slashing/{tally.js → votes.js} +1 -1
  525. package/dest/snapshots/types.d.ts +15 -78
  526. package/dest/snapshots/types.d.ts.map +1 -1
  527. package/dest/stats/stats.d.ts +2 -2
  528. package/dest/stats/stats.d.ts.map +1 -1
  529. package/dest/tests/factories.d.ts +25 -32
  530. package/dest/tests/factories.d.ts.map +1 -1
  531. package/dest/tests/factories.js +85 -82
  532. package/dest/tests/mocks.d.ts +8 -5
  533. package/dest/tests/mocks.d.ts.map +1 -1
  534. package/dest/tests/mocks.js +45 -56
  535. package/dest/timetable/budgets.d.ts +57 -0
  536. package/dest/timetable/budgets.d.ts.map +1 -0
  537. package/dest/timetable/budgets.js +56 -0
  538. package/dest/timetable/build_proposer_timetable.d.ts +21 -0
  539. package/dest/timetable/build_proposer_timetable.d.ts.map +1 -0
  540. package/dest/timetable/build_proposer_timetable.js +17 -0
  541. package/dest/timetable/consensus_timetable.d.ts +70 -0
  542. package/dest/timetable/consensus_timetable.d.ts.map +1 -0
  543. package/dest/timetable/consensus_timetable.js +89 -0
  544. package/dest/timetable/index.d.ts +5 -37
  545. package/dest/timetable/index.d.ts.map +1 -1
  546. package/dest/timetable/index.js +4 -39
  547. package/dest/timetable/proposer_timetable.d.ts +106 -0
  548. package/dest/timetable/proposer_timetable.d.ts.map +1 -0
  549. package/dest/timetable/proposer_timetable.js +132 -0
  550. package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
  551. package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
  552. package/dest/trees/append_only_tree_snapshot.js +6 -3
  553. package/dest/trees/nullifier_leaf.d.ts +19 -42
  554. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  555. package/dest/trees/nullifier_leaf.js +3 -0
  556. package/dest/trees/nullifier_membership_witness.d.ts +16 -59
  557. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  558. package/dest/trees/nullifier_membership_witness.js +2 -14
  559. package/dest/trees/public_data_leaf.d.ts +21 -53
  560. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  561. package/dest/trees/public_data_witness.d.ts +16 -58
  562. package/dest/trees/public_data_witness.d.ts.map +1 -1
  563. package/dest/tx/block_header.d.ts +5 -4
  564. package/dest/tx/block_header.d.ts.map +1 -1
  565. package/dest/tx/block_header.js +7 -4
  566. package/dest/tx/call_context.d.ts +4 -14
  567. package/dest/tx/call_context.d.ts.map +1 -1
  568. package/dest/tx/capsule.d.ts +7 -3
  569. package/dest/tx/capsule.d.ts.map +1 -1
  570. package/dest/tx/capsule.js +9 -3
  571. package/dest/tx/fee_provider.d.ts +10 -0
  572. package/dest/tx/fee_provider.d.ts.map +1 -0
  573. package/dest/tx/fee_provider.js +1 -0
  574. package/dest/tx/function_data.d.ts +4 -10
  575. package/dest/tx/function_data.d.ts.map +1 -1
  576. package/dest/tx/global_variable_builder.d.ts +3 -4
  577. package/dest/tx/global_variable_builder.d.ts.map +1 -1
  578. package/dest/tx/global_variables.d.ts +16 -49
  579. package/dest/tx/global_variables.d.ts.map +1 -1
  580. package/dest/tx/global_variables.js +8 -12
  581. package/dest/tx/hashed_values.d.ts +4 -3
  582. package/dest/tx/hashed_values.d.ts.map +1 -1
  583. package/dest/tx/hashed_values.js +6 -3
  584. package/dest/tx/in_tx.d.ts +5 -17
  585. package/dest/tx/in_tx.d.ts.map +1 -1
  586. package/dest/tx/index.d.ts +2 -1
  587. package/dest/tx/index.d.ts.map +1 -1
  588. package/dest/tx/index.js +1 -0
  589. package/dest/tx/indexed_tx_effect.d.ts +8 -19
  590. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  591. package/dest/tx/indexed_tx_effect.js +9 -6
  592. package/dest/tx/partial_state_reference.d.ts +22 -65
  593. package/dest/tx/partial_state_reference.d.ts.map +1 -1
  594. package/dest/tx/partial_state_reference.js +6 -3
  595. package/dest/tx/private_execution_result.d.ts +6 -16
  596. package/dest/tx/private_execution_result.d.ts.map +1 -1
  597. package/dest/tx/profiling.d.ts +54 -352
  598. package/dest/tx/profiling.d.ts.map +1 -1
  599. package/dest/tx/profiling.js +4 -4
  600. package/dest/tx/protocol_contracts.d.ts +5 -9
  601. package/dest/tx/protocol_contracts.d.ts.map +1 -1
  602. package/dest/tx/proven_tx.d.ts +30 -74
  603. package/dest/tx/proven_tx.d.ts.map +1 -1
  604. package/dest/tx/proven_tx.js +6 -0
  605. package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
  606. package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
  607. package/dest/tx/public_call_request_with_calldata.js +6 -3
  608. package/dest/tx/simulated_tx.d.ts +64 -1143
  609. package/dest/tx/simulated_tx.d.ts.map +1 -1
  610. package/dest/tx/simulated_tx.js +13 -11
  611. package/dest/tx/state_reference.d.ts +30 -117
  612. package/dest/tx/state_reference.d.ts.map +1 -1
  613. package/dest/tx/state_reference.js +6 -4
  614. package/dest/tx/tree_snapshots.d.ts +27 -84
  615. package/dest/tx/tree_snapshots.d.ts.map +1 -1
  616. package/dest/tx/tree_snapshots.js +6 -4
  617. package/dest/tx/tx.d.ts +22 -13
  618. package/dest/tx/tx.d.ts.map +1 -1
  619. package/dest/tx/tx.js +44 -22
  620. package/dest/tx/tx_constant_data.d.ts +4 -3
  621. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  622. package/dest/tx/tx_constant_data.js +6 -3
  623. package/dest/tx/tx_context.d.ts +32 -131
  624. package/dest/tx/tx_context.d.ts.map +1 -1
  625. package/dest/tx/tx_context.js +6 -6
  626. package/dest/tx/tx_hash.d.ts +6 -4
  627. package/dest/tx/tx_hash.d.ts.map +1 -1
  628. package/dest/tx/tx_hash.js +13 -5
  629. package/dest/tx/tx_receipt.d.ts +144 -63
  630. package/dest/tx/tx_receipt.d.ts.map +1 -1
  631. package/dest/tx/tx_receipt.js +143 -60
  632. package/dest/tx/validator/error_texts.d.ts +6 -2
  633. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  634. package/dest/tx/validator/error_texts.js +7 -1
  635. package/dest/tx/validator/tx_validator.d.ts +5 -27
  636. package/dest/tx/validator/tx_validator.d.ts.map +1 -1
  637. package/dest/tx/validator/tx_validator.js +0 -4
  638. package/dest/types/shared.d.ts +4 -12
  639. package/dest/types/shared.d.ts.map +1 -1
  640. package/dest/types/shared.js +6 -12
  641. package/dest/update-checker/dev_version.d.ts +3 -0
  642. package/dest/update-checker/dev_version.d.ts.map +1 -0
  643. package/dest/update-checker/dev_version.js +1 -0
  644. package/dest/update-checker/index.d.ts +2 -1
  645. package/dest/update-checker/index.d.ts.map +1 -1
  646. package/dest/update-checker/index.js +1 -0
  647. package/dest/update-checker/package_version.d.ts +6 -3
  648. package/dest/update-checker/package_version.d.ts.map +1 -1
  649. package/dest/update-checker/package_version.js +8 -19
  650. package/dest/validators/schemas.d.ts +147 -614
  651. package/dest/validators/schemas.d.ts.map +1 -1
  652. package/dest/validators/schemas.js +6 -4
  653. package/dest/validators/types.d.ts +20 -3
  654. package/dest/validators/types.d.ts.map +1 -1
  655. package/dest/versioning/versioning.js +1 -1
  656. package/dest/vks/verification_key.d.ts +4 -139
  657. package/dest/vks/verification_key.d.ts.map +1 -1
  658. package/dest/vks/verification_key.js +5 -126
  659. package/dest/world-state/genesis_data.d.ts +13 -0
  660. package/dest/world-state/genesis_data.d.ts.map +1 -0
  661. package/dest/world-state/genesis_data.js +7 -0
  662. package/dest/world-state/index.d.ts +2 -1
  663. package/dest/world-state/index.d.ts.map +1 -1
  664. package/dest/world-state/index.js +1 -0
  665. package/dest/world-state/world_state_revision.d.ts +15 -26
  666. package/dest/world-state/world_state_revision.d.ts.map +1 -1
  667. package/dest/world-state/world_state_revision.js +7 -1
  668. package/package.json +12 -11
  669. package/src/abi/abi.ts +78 -21
  670. package/src/abi/authorization_selector.ts +2 -8
  671. package/src/abi/buffer.ts +25 -4
  672. package/src/abi/contract_artifact.ts +30 -6
  673. package/src/abi/decoder.ts +23 -78
  674. package/src/abi/encoder.ts +42 -6
  675. package/src/abi/event_selector.ts +2 -8
  676. package/src/abi/function_selector.ts +4 -13
  677. package/src/abi/function_signature_decoder.ts +77 -0
  678. package/src/abi/index.ts +1 -0
  679. package/src/abi/note_selector.ts +3 -12
  680. package/src/abi/selector.ts +1 -1
  681. package/src/abi/utils.ts +6 -4
  682. package/src/avm/avm.ts +5 -0
  683. package/src/avm/message_pack.ts +12 -3
  684. package/src/avm/revert_code.ts +19 -39
  685. package/src/aztec-address/index.ts +15 -12
  686. package/src/block/attestation_info.ts +11 -11
  687. package/src/block/block_data.ts +3 -4
  688. package/src/block/block_hash.ts +21 -14
  689. package/src/block/block_parameter.ts +72 -4
  690. package/src/block/index.ts +0 -1
  691. package/src/block/l2_block_info.ts +8 -6
  692. package/src/block/l2_block_source.ts +216 -147
  693. package/src/block/l2_block_stream/interfaces.ts +42 -6
  694. package/src/block/l2_block_stream/l2_block_stream.ts +60 -31
  695. package/src/block/l2_block_stream/l2_tips_memory_store.ts +17 -41
  696. package/src/block/l2_block_stream/l2_tips_store_base.ts +64 -60
  697. package/src/block/proposal/attestations_and_signers.ts +32 -17
  698. package/src/block/test/l2_tips_store_test_suite.ts +198 -18
  699. package/src/checkpoint/checkpoint.ts +13 -3
  700. package/src/checkpoint/checkpoint_data.ts +44 -4
  701. package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
  702. package/src/checkpoint/digest.ts +28 -0
  703. package/src/checkpoint/index.ts +3 -0
  704. package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
  705. package/src/checkpoint/validate.ts +18 -8
  706. package/src/config/chain-config.ts +13 -16
  707. package/src/config/index.ts +1 -0
  708. package/src/config/network-consensus-config.ts +302 -0
  709. package/src/config/sequencer-config.ts +68 -9
  710. package/src/contract/complete_address.ts +7 -3
  711. package/src/contract/contract_address.ts +7 -7
  712. package/src/contract/contract_class_id.ts +2 -2
  713. package/src/contract/contract_instance.ts +11 -2
  714. package/src/contract/index.ts +0 -2
  715. package/src/contract/interfaces/contract_class.ts +2 -82
  716. package/src/contract/interfaces/contract_instance.ts +6 -2
  717. package/src/contract/interfaces/node-info.ts +11 -0
  718. package/src/contract/private_function.ts +3 -1
  719. package/src/database-version/version_manager.ts +17 -0
  720. package/src/deserialization/index.ts +35 -2
  721. package/src/epoch-helpers/index.ts +24 -0
  722. package/src/file-store/factory.ts +13 -4
  723. package/src/file-store/http.ts +29 -10
  724. package/src/file-store/index.ts +1 -0
  725. package/src/gas/README.md +123 -0
  726. package/src/gas/fee_math.ts +120 -0
  727. package/src/gas/gas.ts +8 -3
  728. package/src/gas/gas_fees.ts +26 -13
  729. package/src/gas/gas_settings.ts +63 -15
  730. package/src/gas/index.ts +2 -0
  731. package/src/gas/tx_gas_limits.ts +123 -0
  732. package/src/ha-signing/config.ts +14 -18
  733. package/src/ha-signing/index.ts +3 -1
  734. package/src/ha-signing/local_config.ts +2 -2
  735. package/src/ha-signing/types.ts +48 -34
  736. package/src/hash/hash.ts +63 -2
  737. package/src/interfaces/api_limit.ts +1 -1
  738. package/src/interfaces/archiver.ts +88 -93
  739. package/src/interfaces/aztec-node-admin.ts +36 -21
  740. package/src/interfaces/aztec-node-debug.ts +55 -0
  741. package/src/interfaces/aztec-node.ts +389 -259
  742. package/src/interfaces/block-builder.ts +31 -9
  743. package/src/interfaces/block_response.ts +92 -0
  744. package/src/interfaces/chain_tips.ts +24 -0
  745. package/src/interfaces/checkpoint_parameter.ts +20 -0
  746. package/src/interfaces/checkpoint_response.ts +84 -0
  747. package/src/interfaces/client.ts +8 -1
  748. package/src/interfaces/configs.ts +63 -11
  749. package/src/interfaces/get_tx_by_hash_options.ts +14 -0
  750. package/src/interfaces/l1_publish_info.ts +40 -0
  751. package/src/interfaces/l2_logs_source.ts +13 -42
  752. package/src/interfaces/merkle_tree_operations.ts +3 -2
  753. package/src/interfaces/p2p-bootstrap.ts +2 -2
  754. package/src/interfaces/p2p.ts +59 -19
  755. package/src/interfaces/private_kernel_prover.ts +88 -0
  756. package/src/interfaces/prover-agent.ts +1 -1
  757. package/src/interfaces/prover-client.ts +3 -8
  758. package/src/interfaces/prover-node.ts +19 -12
  759. package/src/interfaces/proving-job-source.ts +4 -4
  760. package/src/interfaces/proving-job.ts +3 -3
  761. package/src/interfaces/public_storage_override.ts +26 -0
  762. package/src/interfaces/server.ts +5 -1
  763. package/src/interfaces/slasher.ts +17 -10
  764. package/src/interfaces/tx_provider.ts +6 -0
  765. package/src/interfaces/validator.ts +45 -15
  766. package/src/interfaces/world_state.ts +1 -1
  767. package/src/kernel/hints/key_validation_request.ts +18 -16
  768. package/src/kernel/index.ts +4 -0
  769. package/src/kernel/log_hash.ts +29 -9
  770. package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +49 -0
  771. package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +52 -0
  772. package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
  773. package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
  774. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +29 -14
  775. package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
  776. package/src/kernel/private_to_public_accumulated_data.ts +9 -3
  777. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +10 -4
  778. package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
  779. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
  780. package/src/kernel/public_call_request.ts +22 -7
  781. package/src/keys/derivation.ts +21 -9
  782. package/src/keys/public_key.ts +26 -2
  783. package/src/keys/public_keys.ts +124 -110
  784. package/src/kv-store/config.ts +3 -10
  785. package/src/l1-contracts/index.ts +1 -1
  786. package/src/logs/app_tagging_secret.ts +137 -0
  787. package/src/logs/app_tagging_secret_kind.ts +21 -0
  788. package/src/logs/contract_class_log.ts +15 -5
  789. package/src/logs/index.ts +6 -6
  790. package/src/logs/log_cursor.ts +110 -0
  791. package/src/logs/log_result.ts +104 -0
  792. package/src/logs/logs_query.ts +138 -0
  793. package/src/logs/message_context.ts +22 -8
  794. package/src/logs/pending_tagged_log.ts +1 -3
  795. package/src/logs/pre_tag.ts +3 -6
  796. package/src/logs/private_log.ts +9 -3
  797. package/src/logs/query_all_logs_by_tags.ts +98 -0
  798. package/src/logs/shared_secret_derivation.ts +21 -10
  799. package/src/logs/siloed_tag.ts +20 -11
  800. package/src/logs/tag.ts +8 -8
  801. package/src/logs/tagging_index_range.ts +4 -10
  802. package/src/messaging/append_l1_to_l2_messages.ts +21 -0
  803. package/src/messaging/index.ts +1 -0
  804. package/src/messaging/l1_to_l2_message.ts +12 -9
  805. package/src/messaging/l2_to_l1_membership.ts +108 -19
  806. package/src/messaging/l2_to_l1_message.ts +29 -9
  807. package/src/noir/index.ts +4 -2
  808. package/src/note/note_dao.ts +1 -4
  809. package/src/p2p/block_proposal.ts +111 -36
  810. package/src/p2p/checkpoint_attestation.ts +27 -31
  811. package/src/p2p/checkpoint_proposal.ts +126 -68
  812. package/src/p2p/consensus_payload.ts +59 -28
  813. package/src/p2p/gossipable.ts +4 -4
  814. package/src/p2p/signature_utils.ts +110 -25
  815. package/src/p2p/signed_txs.ts +46 -28
  816. package/src/parity/parity_base_private_inputs.ts +10 -4
  817. package/src/parity/parity_public_inputs.ts +9 -2
  818. package/src/proofs/chonk_proof.ts +132 -12
  819. package/src/rollup/block_headers_hash.ts +11 -2
  820. package/src/rollup/block_rollup_public_inputs.ts +13 -0
  821. package/src/rollup/checkpoint_rollup_public_inputs.ts +10 -0
  822. package/src/schemas/schemas.ts +6 -1
  823. package/src/slashing/helpers.ts +13 -9
  824. package/src/slashing/index.ts +1 -2
  825. package/src/slashing/serialization.ts +1 -81
  826. package/src/slashing/types.ts +24 -49
  827. package/src/slashing/{tally.ts → votes.ts} +1 -1
  828. package/src/stats/stats.ts +4 -0
  829. package/src/tests/factories.ts +109 -111
  830. package/src/tests/mocks.ts +72 -71
  831. package/src/timetable/README.md +609 -0
  832. package/src/timetable/budgets.ts +87 -0
  833. package/src/timetable/build_proposer_timetable.ts +42 -0
  834. package/src/timetable/consensus_timetable.ts +126 -0
  835. package/src/timetable/index.ts +4 -66
  836. package/src/timetable/proposer_timetable.ts +190 -0
  837. package/src/timetable/timetable-example.svg +108 -0
  838. package/src/trees/append_only_tree_snapshot.ts +8 -3
  839. package/src/trees/nullifier_leaf.ts +4 -0
  840. package/src/trees/nullifier_membership_witness.ts +2 -12
  841. package/src/tx/block_header.ts +10 -5
  842. package/src/tx/capsule.ts +10 -2
  843. package/src/tx/fee_provider.ts +10 -0
  844. package/src/tx/global_variable_builder.ts +2 -3
  845. package/src/tx/global_variables.ts +10 -18
  846. package/src/tx/hashed_values.ts +8 -3
  847. package/src/tx/index.ts +1 -0
  848. package/src/tx/indexed_tx_effect.ts +18 -6
  849. package/src/tx/partial_state_reference.ts +8 -3
  850. package/src/tx/profiling.ts +4 -4
  851. package/src/tx/proven_tx.ts +6 -0
  852. package/src/tx/public_call_request_with_calldata.ts +8 -3
  853. package/src/tx/simulated_tx.ts +22 -21
  854. package/src/tx/state_reference.ts +9 -4
  855. package/src/tx/tree_snapshots.ts +9 -4
  856. package/src/tx/tx.ts +60 -24
  857. package/src/tx/tx_constant_data.ts +8 -3
  858. package/src/tx/tx_context.ts +8 -3
  859. package/src/tx/tx_hash.ts +20 -5
  860. package/src/tx/tx_receipt.ts +265 -85
  861. package/src/tx/validator/error_texts.ts +10 -1
  862. package/src/tx/validator/tx_validator.ts +1 -5
  863. package/src/types/shared.ts +8 -13
  864. package/src/update-checker/dev_version.ts +2 -0
  865. package/src/update-checker/index.ts +1 -0
  866. package/src/update-checker/package_version.ts +10 -23
  867. package/src/validators/schemas.ts +6 -4
  868. package/src/validators/types.ts +21 -2
  869. package/src/versioning/versioning.ts +1 -1
  870. package/src/vks/verification_key.ts +5 -184
  871. package/src/world-state/genesis_data.ts +27 -0
  872. package/src/world-state/index.ts +1 -0
  873. package/src/world-state/world_state_revision.ts +9 -1
  874. package/dest/abi/mocked_keys.d.ts +0 -2
  875. package/dest/abi/mocked_keys.d.ts.map +0 -1
  876. package/dest/abi/mocked_keys.js +0 -1
  877. package/dest/block/checkpointed_l2_block.d.ts +0 -150
  878. package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
  879. package/dest/block/checkpointed_l2_block.js +0 -46
  880. package/dest/contract/private_function_membership_proof.d.ts +0 -32
  881. package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
  882. package/dest/contract/private_function_membership_proof.js +0 -124
  883. package/dest/contract/utility_function_membership_proof.d.ts +0 -27
  884. package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
  885. package/dest/contract/utility_function_membership_proof.js +0 -87
  886. package/dest/interfaces/epoch-prover.d.ts +0 -57
  887. package/dest/interfaces/epoch-prover.d.ts.map +0 -1
  888. package/dest/interfaces/epoch-prover.js +0 -1
  889. package/dest/interfaces/get_logs_response.d.ts +0 -97
  890. package/dest/interfaces/get_logs_response.d.ts.map +0 -1
  891. package/dest/interfaces/get_logs_response.js +0 -12
  892. package/dest/l1-contracts/slash_factory.d.ts +0 -45
  893. package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
  894. package/dest/l1-contracts/slash_factory.js +0 -158
  895. package/dest/logs/extended_contract_class_log.d.ts +0 -51
  896. package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
  897. package/dest/logs/extended_contract_class_log.js +0 -67
  898. package/dest/logs/extended_directional_app_tagging_secret.d.ts +0 -47
  899. package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +0 -1
  900. package/dest/logs/extended_directional_app_tagging_secret.js +0 -72
  901. package/dest/logs/extended_public_log.d.ts +0 -106
  902. package/dest/logs/extended_public_log.d.ts.map +0 -1
  903. package/dest/logs/extended_public_log.js +0 -73
  904. package/dest/logs/log_filter.d.ts +0 -25
  905. package/dest/logs/log_filter.d.ts.map +0 -1
  906. package/dest/logs/log_filter.js +0 -12
  907. package/dest/logs/log_id.d.ts +0 -85
  908. package/dest/logs/log_id.d.ts.map +0 -1
  909. package/dest/logs/log_id.js +0 -94
  910. package/dest/logs/tx_scoped_l2_log.d.ts +0 -49
  911. package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
  912. package/dest/logs/tx_scoped_l2_log.js +0 -70
  913. package/dest/slashing/empire.d.ts +0 -31
  914. package/dest/slashing/empire.d.ts.map +0 -1
  915. package/dest/slashing/empire.js +0 -87
  916. package/src/abi/mocked_keys.ts +0 -2
  917. package/src/block/checkpointed_l2_block.ts +0 -70
  918. package/src/contract/private_function_membership_proof.ts +0 -167
  919. package/src/contract/utility_function_membership_proof.ts +0 -118
  920. package/src/interfaces/epoch-prover.ts +0 -72
  921. package/src/interfaces/get_logs_response.ts +0 -35
  922. package/src/l1-contracts/slash_factory.ts +0 -180
  923. package/src/logs/extended_contract_class_log.ts +0 -87
  924. package/src/logs/extended_directional_app_tagging_secret.ts +0 -87
  925. package/src/logs/extended_public_log.ts +0 -94
  926. package/src/logs/log_filter.ts +0 -36
  927. package/src/logs/log_id.ts +0 -125
  928. package/src/logs/tx_scoped_l2_log.ts +0 -98
  929. package/src/slashing/empire.ts +0 -104
@@ -1,3 +1,4 @@
1
+ import { keccak256 } from '@aztec/foundation/crypto/keccak';
1
2
  import { Fr } from '@aztec/foundation/curves/bn254';
2
3
  import { schemas } from '@aztec/foundation/schemas';
3
4
  import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
@@ -5,40 +6,46 @@ import { hexToBuffer } from '@aztec/foundation/string';
5
6
  import { encodeAbiParameters, parseAbiParameters } from 'viem';
6
7
  import { z } from 'zod';
7
8
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
9
+ import { EMPTY_COORDINATION_SIGNATURE_CONTEXT, coordinationSignatureContextEquals, coordinationSignatureContextSchema, readCoordinationSignatureContext, serializeCoordinationSignatureContext } from './signature_utils.js';
8
10
  /** Checkpoint consensus payload as signed by validators and verified on L1. */ export class ConsensusPayload {
9
11
  header;
10
12
  archive;
11
13
  feeAssetPriceModifier;
14
+ signatureContext;
15
+ primaryType;
12
16
  size;
13
- constructor(/** The proposed block header the attestation is made over */ header, /** The archive root after the block is added */ archive, /** The fee asset price modifier in basis points (from oracle) */ feeAssetPriceModifier = 0n){
17
+ constructor(/** The proposed block header the attestation is made over */ header, /** The archive root after the block is added */ archive, /** The fee asset price modifier in basis points (from oracle) */ feeAssetPriceModifier, /** The signing domain (chainId + rollupAddress) the signature is bound to */ signatureContext){
14
18
  this.header = header;
15
19
  this.archive = archive;
16
20
  this.feeAssetPriceModifier = feeAssetPriceModifier;
21
+ this.signatureContext = signatureContext;
22
+ this.primaryType = 'CheckpointAttestation';
17
23
  }
18
24
  static get schema() {
19
25
  return z.object({
20
26
  header: CheckpointHeader.schema,
21
27
  archive: schemas.Fr,
22
- feeAssetPriceModifier: schemas.BigInt
23
- }).transform((obj)=>new ConsensusPayload(obj.header, obj.archive, obj.feeAssetPriceModifier));
28
+ feeAssetPriceModifier: schemas.BigInt,
29
+ signatureContext: coordinationSignatureContextSchema
30
+ }).transform((obj)=>new ConsensusPayload(obj.header, obj.archive, obj.feeAssetPriceModifier, obj.signatureContext));
24
31
  }
25
32
  static getFields(fields) {
26
33
  return [
27
34
  fields.header,
28
35
  fields.archive,
29
- fields.feeAssetPriceModifier
36
+ fields.feeAssetPriceModifier,
37
+ fields.signatureContext
30
38
  ];
31
39
  }
32
- getPayloadToSign(domainSeparator) {
33
- const abi = parseAbiParameters('uint8, ' + //domainSeperator
34
- '(' + 'bytes32, ' + // archive
40
+ getPayloadToSign() {
41
+ // Matches the L1 ProposePayload struct in ProposeLib.sol.
42
+ const abi = parseAbiParameters('(' + 'bytes32, ' + // archive
35
43
  '(int256), ' + // oracleInput
36
44
  'bytes32' + // headerHash
37
45
  ')');
38
46
  const archiveRoot = this.archive.toString();
39
47
  const headerHash = this.header.hash().toString();
40
48
  const encodedData = encodeAbiParameters(abi, [
41
- domainSeparator,
42
49
  [
43
50
  archiveRoot,
44
51
  [
@@ -49,34 +56,44 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
49
56
  ]);
50
57
  return hexToBuffer(encodedData);
51
58
  }
59
+ /**
60
+ * Returns a keccak256 hash of the signed payload (header + archive + feeAssetPriceModifier).
61
+ * Used by the attestation pool to dedup distinct signed payloads.
62
+ */ getPayloadHash() {
63
+ return keccak256(this.getPayloadToSign());
64
+ }
52
65
  toBuffer() {
53
66
  return serializeToBuffer([
54
67
  this.header,
55
68
  this.archive,
56
- serializeSignedBigInt(this.feeAssetPriceModifier)
69
+ serializeSignedBigInt(this.feeAssetPriceModifier),
70
+ serializeCoordinationSignatureContext(this.signatureContext)
57
71
  ]);
58
72
  }
59
73
  equals(other) {
60
74
  const otherHeader = 'checkpointHeader' in other ? other.checkpointHeader : other.header;
61
75
  const otherModifier = 'feeAssetPriceModifier' in other ? other.feeAssetPriceModifier : 0n;
62
- return this.header.equals(otherHeader) && this.archive.equals(other.archive) && this.feeAssetPriceModifier === otherModifier;
76
+ return this.header.equals(otherHeader) && this.archive.equals(other.archive) && this.feeAssetPriceModifier === otherModifier && coordinationSignatureContextEquals(this.signatureContext, other.signatureContext);
63
77
  }
64
78
  static fromBuffer(buf) {
65
79
  const reader = BufferReader.asReader(buf);
66
- const payload = new ConsensusPayload(reader.readObject(CheckpointHeader), reader.readObject(Fr), reader.readInt256());
67
- return payload;
80
+ const header = reader.readObject(CheckpointHeader);
81
+ const archive = reader.readObject(Fr);
82
+ const feeAssetPriceModifier = reader.readInt256();
83
+ const signatureContext = readCoordinationSignatureContext(reader);
84
+ return new ConsensusPayload(header, archive, feeAssetPriceModifier, signatureContext);
68
85
  }
69
86
  static fromFields(fields) {
70
- return new ConsensusPayload(fields.header, fields.archive, fields.feeAssetPriceModifier);
87
+ return new ConsensusPayload(fields.header, fields.archive, fields.feeAssetPriceModifier, fields.signatureContext);
71
88
  }
72
- static fromCheckpoint(checkpoint) {
73
- return new ConsensusPayload(checkpoint.header, checkpoint.archive.root, checkpoint.feeAssetPriceModifier);
89
+ static fromCheckpoint(checkpoint, signatureContext) {
90
+ return new ConsensusPayload(checkpoint.header, checkpoint.archive.root, checkpoint.feeAssetPriceModifier, signatureContext);
74
91
  }
75
92
  static empty() {
76
- return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, 0n);
93
+ return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, 0n, EMPTY_COORDINATION_SIGNATURE_CONTEXT);
77
94
  }
78
95
  static random() {
79
- return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), 0n);
96
+ return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), 0n, EMPTY_COORDINATION_SIGNATURE_CONTEXT);
80
97
  }
81
98
  /**
82
99
  * Get the size of the consensus payload in bytes.
@@ -93,10 +110,12 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
93
110
  return {
94
111
  header: this.header.toInspect(),
95
112
  archive: this.archive.toString(),
96
- feeAssetPriceModifier: this.feeAssetPriceModifier.toString()
113
+ feeAssetPriceModifier: this.feeAssetPriceModifier.toString(),
114
+ chainId: this.signatureContext.chainId,
115
+ rollupAddress: this.signatureContext.rollupAddress.toString()
97
116
  };
98
117
  }
99
118
  toString() {
100
- return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, feeAssetPriceModifier: ${this.feeAssetPriceModifier}}`;
119
+ return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, feeAssetPriceModifier: ${this.feeAssetPriceModifier}, chainId: ${this.signatureContext.chainId}, rollupAddress: ${this.signatureContext.rollupAddress.toString()}`;
101
120
  }
102
121
  }
@@ -1,4 +1,4 @@
1
- import { Buffer32 } from '@aztec/foundation/buffer';
1
+ import { BaseBuffer32 } from '@aztec/foundation/buffer';
2
2
  import type { TopicType } from './topic_type.js';
3
3
  export declare class P2PMessage {
4
4
  readonly payload: Buffer;
@@ -22,8 +22,8 @@ export declare abstract class Gossipable {
22
22
  * A digest of the message information **used for logging only**.
23
23
  * The identifier used for deduplication is `getMsgIdFn` as defined in `encoding.ts` which is a hash over topic and data.
24
24
  */
25
- p2pMessageLoggingIdentifier(): Promise<Buffer32>;
26
- abstract generateP2PMessageIdentifier(): Promise<Buffer32>;
25
+ p2pMessageLoggingIdentifier(): Promise<BaseBuffer32>;
26
+ abstract generateP2PMessageIdentifier(): Promise<BaseBuffer32>;
27
27
  abstract toBuffer(): Buffer;
28
28
  toMessage(): Buffer;
29
29
  /**
@@ -32,4 +32,4 @@ export declare abstract class Gossipable {
32
32
  */
33
33
  abstract getSize(): number;
34
34
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29zc2lwYWJsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9nb3NzaXBhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxxQkFBYSxVQUFVO2FBRUgsT0FBTyxFQUFFLE1BQU07YUFDZixTQUFTLENBQUM7YUFDVixZQUFZLENBQUM7SUFIL0IsWUFDa0IsT0FBTyxFQUFFLE1BQU0sRUFDZixTQUFTLENBQUMsa0JBQU0sRUFDaEIsWUFBWSxDQUFDLG9CQUFRLEVBQ25DO0lBRUosTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixVQUFRLEVBQUUsWUFBWSxDQUFDLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FLeEc7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLFVBQVEsR0FBRyxVQUFVLENBVWxGO0lBRUQsYUFBYSxJQUFJLE1BQU0sQ0FRdEI7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCw4QkFBc0IsVUFBVTtJQUM5QixPQUFPLENBQUMsUUFBUSxDQUF1QjtJQUN2QywyRUFBMkU7SUFDM0UsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7SUFFM0I7OztPQUdHO0lBQ0csMkJBQTJCLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQU1yRDtJQUVELFFBQVEsQ0FBQyw0QkFBNEIsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFM0QsUUFBUSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUM7SUFFNUIsU0FBUyxJQUFJLE1BQU0sQ0FFbEI7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQztDQUM1QiJ9
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29zc2lwYWJsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9nb3NzaXBhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd4RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxxQkFBYSxVQUFVO2FBRUgsT0FBTyxFQUFFLE1BQU07YUFDZixTQUFTLENBQUM7YUFDVixZQUFZLENBQUM7SUFIL0IsWUFDa0IsT0FBTyxFQUFFLE1BQU0sRUFDZixTQUFTLENBQUMsa0JBQU0sRUFDaEIsWUFBWSxDQUFDLG9CQUFRLEVBQ25DO0lBRUosTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixVQUFRLEVBQUUsWUFBWSxDQUFDLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FLeEc7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLFVBQVEsR0FBRyxVQUFVLENBVWxGO0lBRUQsYUFBYSxJQUFJLE1BQU0sQ0FRdEI7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCw4QkFBc0IsVUFBVTtJQUM5QixPQUFPLENBQUMsUUFBUSxDQUEyQjtJQUMzQywyRUFBMkU7SUFDM0UsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7SUFFM0I7OztPQUdHO0lBQ0csMkJBQTJCLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQU16RDtJQUVELFFBQVEsQ0FBQyw0QkFBNEIsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFL0QsUUFBUSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUM7SUFFNUIsU0FBUyxJQUFJLE1BQU0sQ0FFbEI7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQztDQUM1QiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"gossipable.d.ts","sourceRoot":"","sources":["../../src/p2p/gossipable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;aAEH,OAAO,EAAE,MAAM;aACf,SAAS,CAAC;aACV,YAAY,CAAC;IAH/B,YACkB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,kBAAM,EAChB,YAAY,CAAC,oBAAQ,EACnC;IAEJ,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,UAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAKxG;IAED,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,UAAQ,GAAG,UAAU,CAUlF;IAED,aAAa,IAAI,MAAM,CAQtB;CACF;AAED;;;;GAIG;AACH,8BAAsB,UAAU;IAC9B,OAAO,CAAC,QAAQ,CAAuB;IACvC,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;IAE3B;;;OAGG;IACG,2BAA2B,IAAI,OAAO,CAAC,QAAQ,CAAC,CAMrD;IAED,QAAQ,CAAC,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE3D,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC;IAE5B,SAAS,IAAI,MAAM,CAElB;IAED;;;OAGG;IACH,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"gossipable.d.ts","sourceRoot":"","sources":["../../src/p2p/gossipable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;aAEH,OAAO,EAAE,MAAM;aACf,SAAS,CAAC;aACV,YAAY,CAAC;IAH/B,YACkB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,kBAAM,EAChB,YAAY,CAAC,oBAAQ,EACnC;IAEJ,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,UAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAKxG;IAED,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,UAAQ,GAAG,UAAU,CAUlF;IAED,aAAa,IAAI,MAAM,CAQtB;CACF;AAED;;;;GAIG;AACH,8BAAsB,UAAU;IAC9B,OAAO,CAAC,QAAQ,CAA2B;IAC3C,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;IAE3B;;;OAGG;IACG,2BAA2B,IAAI,OAAO,CAAC,YAAY,CAAC,CAMzD;IAED,QAAQ,CAAC,4BAA4B,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/D,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC;IAE5B,SAAS,IAAI,MAAM,CAElB;IAED;;;OAGG;IACH,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC;CAC5B"}
@@ -1,24 +1,33 @@
1
1
  import { Buffer32 } from '@aztec/foundation/buffer';
2
- export declare enum SignatureDomainSeparator {
3
- blockProposal = 0,
4
- checkpointAttestation = 1,
5
- attestationsAndSigners = 2,
6
- checkpointProposal = 3,
7
- signedTxs = 4
8
- }
2
+ import { EthAddress } from '@aztec/foundation/eth-address';
3
+ import type { Signature } from '@aztec/foundation/eth-signature';
4
+ import { type BufferReader } from '@aztec/foundation/serialize';
5
+ import { type TypedDataDefinition } from 'viem';
6
+ import type { ZodFor } from '../schemas/index.js';
7
+ export type CoordinationSignatureType = 'BlockProposal' | 'CheckpointProposal' | 'CheckpointAttestation' | 'AttestationsAndSigners' | 'SignedTxs';
8
+ export type CoordinationSignatureContext = {
9
+ chainId: number;
10
+ rollupAddress: EthAddress;
11
+ };
12
+ export declare const EMPTY_COORDINATION_SIGNATURE_CONTEXT: CoordinationSignatureContext;
13
+ export declare const coordinationSignatureContextSchema: ZodFor<CoordinationSignatureContext>;
9
14
  export interface Signable {
10
- getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
15
+ readonly primaryType: CoordinationSignatureType;
16
+ readonly signatureContext: CoordinationSignatureContext;
17
+ getPayloadToSign(): Buffer;
11
18
  }
19
+ export declare function coordinationSignatureContextEquals(a: CoordinationSignatureContext, b: CoordinationSignatureContext): boolean;
20
+ export declare function serializeCoordinationSignatureContext(ctx: CoordinationSignatureContext): Buffer;
21
+ export declare function readCoordinationSignatureContext(reader: BufferReader): CoordinationSignatureContext;
12
22
  /**
13
- * Get the hashed payload for the signature of the `Signable`
14
- * @param s - The `Signable` to sign
15
- * @returns The hashed payload for the signature of the `Signable`
16
- */
17
- export declare function getHashedSignaturePayload(s: Signable, domainSeparator: SignatureDomainSeparator): Buffer32;
18
- /**
19
- * Get the hashed payload for the signature of the `Signable` as an Ethereum signed message EIP-712
20
- * @param s - the `Signable` to sign
21
- * @returns The hashed payload for the signature of the `Signable` as an Ethereum signed message
23
+ * Returns true if the signable carries a context matching the node's expected context.
24
+ * Use this at the P2P ingress boundary to reject foreign-chain messages cheaply before
25
+ * performing any signature recovery.
22
26
  */
23
- export declare function getHashedSignaturePayloadEthSignedMessage(s: Signable, domainSeparator: SignatureDomainSeparator): Buffer32;
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlX3V0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcDJwL3NpZ25hdHVyZV91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJcEQsb0JBQVksd0JBQXdCO0lBQ2xDLGFBQWEsSUFBSTtJQUNqQixxQkFBcUIsSUFBSTtJQUN6QixzQkFBc0IsSUFBSTtJQUMxQixrQkFBa0IsSUFBSTtJQUN0QixTQUFTLElBQUk7Q0FDZDtBQUVELE1BQU0sV0FBVyxRQUFRO0lBQ3ZCLGdCQUFnQixDQUFDLGVBQWUsRUFBRSx3QkFBd0IsR0FBRyxNQUFNLENBQUM7Q0FDckU7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixHQUFHLFFBQVEsQ0FFMUc7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHlDQUF5QyxDQUN2RCxDQUFDLEVBQUUsUUFBUSxFQUNYLGVBQWUsRUFBRSx3QkFBd0IsR0FDeEMsUUFBUSxDQUdWIn0=
27
+ export declare function hasValidSignatureContext(signable: Signable, expected: CoordinationSignatureContext): boolean;
28
+ export declare function getCoordinationSignatureTypedDataForPayloadHash(payloadHash: Buffer32, type: CoordinationSignatureType, context: CoordinationSignatureContext): TypedDataDefinition;
29
+ export declare function getCoordinationSignatureTypedData(signable: Signable): TypedDataDefinition;
30
+ export declare function getHashedSignaturePayloadTypedData(signable: Signable): Buffer32;
31
+ export declare function recoverCoordinationSigner(signable: Signable, signature: Signature): EthAddress | undefined;
32
+ export declare function getHashedSignaturePayload(s: Signable): Buffer32;
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlX3V0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcDJwL3NpZ25hdHVyZV91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRixPQUFPLEVBQUUsS0FBSyxtQkFBbUIsRUFBaUIsTUFBTSxNQUFNLENBQUM7QUFHL0QsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsTUFBTSxNQUFNLHlCQUF5QixHQUNqQyxlQUFlLEdBQ2Ysb0JBQW9CLEdBQ3BCLHVCQUF1QixHQUN2Qix3QkFBd0IsR0FDeEIsV0FBVyxDQUFDO0FBRWhCLE1BQU0sTUFBTSw0QkFBNEIsR0FBRztJQUN6QyxPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLGFBQWEsRUFBRSxVQUFVLENBQUM7Q0FDM0IsQ0FBQztBQUVGLGVBQU8sTUFBTSxvQ0FBb0MsRUFBRSw0QkFHbEQsQ0FBQztBQUVGLGVBQU8sTUFBTSxrQ0FBa0MsRUFBRSxNQUFNLENBQUMsNEJBQTRCLENBR2xGLENBQUM7QUFFSCxNQUFNLFdBQVcsUUFBUTtJQUN2QixRQUFRLENBQUMsV0FBVyxFQUFFLHlCQUF5QixDQUFDO0lBQ2hELFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSw0QkFBNEIsQ0FBQztJQUN4RCxnQkFBZ0IsSUFBSSxNQUFNLENBQUM7Q0FDNUI7QUFFRCx3QkFBZ0Isa0NBQWtDLENBQ2hELENBQUMsRUFBRSw0QkFBNEIsRUFDL0IsQ0FBQyxFQUFFLDRCQUE0QixHQUM5QixPQUFPLENBRVQ7QUFFRCx3QkFBZ0IscUNBQXFDLENBQUMsR0FBRyxFQUFFLDRCQUE0QixHQUFHLE1BQU0sQ0FFL0Y7QUFFRCx3QkFBZ0IsZ0NBQWdDLENBQUMsTUFBTSxFQUFFLFlBQVksR0FBRyw0QkFBNEIsQ0FJbkc7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLDRCQUE0QixHQUFHLE9BQU8sQ0FFNUc7QUFxQkQsd0JBQWdCLCtDQUErQyxDQUM3RCxXQUFXLEVBQUUsUUFBUSxFQUNyQixJQUFJLEVBQUUseUJBQXlCLEVBQy9CLE9BQU8sRUFBRSw0QkFBNEIsR0FDcEMsbUJBQW1CLENBY3JCO0FBRUQsd0JBQWdCLGlDQUFpQyxDQUFDLFFBQVEsRUFBRSxRQUFRLEdBQUcsbUJBQW1CLENBR3pGO0FBRUQsd0JBQWdCLGtDQUFrQyxDQUFDLFFBQVEsRUFBRSxRQUFRLEdBQUcsUUFBUSxDQUUvRTtBQUVELHdCQUFnQix5QkFBeUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEdBQUcsVUFBVSxHQUFHLFNBQVMsQ0FHMUc7QUFFRCx3QkFBZ0IseUJBQXlCLENBQUMsQ0FBQyxFQUFFLFFBQVEsR0FBRyxRQUFRLENBRS9EIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"signature_utils.d.ts","sourceRoot":"","sources":["../../src/p2p/signature_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIpD,oBAAY,wBAAwB;IAClC,aAAa,IAAI;IACjB,qBAAqB,IAAI;IACzB,sBAAsB,IAAI;IAC1B,kBAAkB,IAAI;IACtB,SAAS,IAAI;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM,CAAC;CACrE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,wBAAwB,GAAG,QAAQ,CAE1G;AAED;;;;GAIG;AACH,wBAAgB,yCAAyC,CACvD,CAAC,EAAE,QAAQ,EACX,eAAe,EAAE,wBAAwB,GACxC,QAAQ,CAGV"}
1
+ {"version":3,"file":"signature_utils.d.ts","sourceRoot":"","sources":["../../src/p2p/signature_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAEnF,OAAO,EAAE,KAAK,mBAAmB,EAAiB,MAAM,MAAM,CAAC;AAG/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,MAAM,yBAAyB,GACjC,eAAe,GACf,oBAAoB,GACpB,uBAAuB,GACvB,wBAAwB,GACxB,WAAW,CAAC;AAEhB,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,UAAU,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,oCAAoC,EAAE,4BAGlD,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,MAAM,CAAC,4BAA4B,CAGlF,CAAC;AAEH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC;IAChD,QAAQ,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;IACxD,gBAAgB,IAAI,MAAM,CAAC;CAC5B;AAED,wBAAgB,kCAAkC,CAChD,CAAC,EAAE,4BAA4B,EAC/B,CAAC,EAAE,4BAA4B,GAC9B,OAAO,CAET;AAED,wBAAgB,qCAAqC,CAAC,GAAG,EAAE,4BAA4B,GAAG,MAAM,CAE/F;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,YAAY,GAAG,4BAA4B,CAInG;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,4BAA4B,GAAG,OAAO,CAE5G;AAqBD,wBAAgB,+CAA+C,CAC7D,WAAW,EAAE,QAAQ,EACrB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,4BAA4B,GACpC,mBAAmB,CAcrB;AAED,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,GAAG,mBAAmB,CAGzF;AAED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAE/E;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAG1G;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAE/D"}
@@ -1,26 +1,123 @@
1
1
  import { Buffer32 } from '@aztec/foundation/buffer';
2
2
  import { keccak256 } from '@aztec/foundation/crypto/keccak';
3
- import { makeEthSignDigest } from '@aztec/foundation/crypto/secp256k1-signer';
4
- export var SignatureDomainSeparator = /*#__PURE__*/ function(SignatureDomainSeparator) {
5
- SignatureDomainSeparator[SignatureDomainSeparator["blockProposal"] = 0] = "blockProposal";
6
- SignatureDomainSeparator[SignatureDomainSeparator["checkpointAttestation"] = 1] = "checkpointAttestation";
7
- SignatureDomainSeparator[SignatureDomainSeparator["attestationsAndSigners"] = 2] = "attestationsAndSigners";
8
- SignatureDomainSeparator[SignatureDomainSeparator["checkpointProposal"] = 3] = "checkpointProposal";
9
- SignatureDomainSeparator[SignatureDomainSeparator["signedTxs"] = 4] = "signedTxs";
10
- return SignatureDomainSeparator;
11
- }({});
12
- /**
13
- * Get the hashed payload for the signature of the `Signable`
14
- * @param s - The `Signable` to sign
15
- * @returns The hashed payload for the signature of the `Signable`
16
- */ export function getHashedSignaturePayload(s, domainSeparator) {
17
- return Buffer32.fromBuffer(keccak256(s.getPayloadToSign(domainSeparator)));
3
+ import { tryRecoverAddress } from '@aztec/foundation/crypto/secp256k1-signer';
4
+ import { EthAddress } from '@aztec/foundation/eth-address';
5
+ import { serializeToBuffer } from '@aztec/foundation/serialize';
6
+ import { hashTypedData } from 'viem';
7
+ import { z } from 'zod';
8
+ export const EMPTY_COORDINATION_SIGNATURE_CONTEXT = {
9
+ chainId: 0,
10
+ rollupAddress: EthAddress.ZERO
11
+ };
12
+ export const coordinationSignatureContextSchema = z.object({
13
+ chainId: z.number(),
14
+ rollupAddress: EthAddress.schema
15
+ });
16
+ export function coordinationSignatureContextEquals(a, b) {
17
+ return a.chainId === b.chainId && a.rollupAddress.equals(b.rollupAddress);
18
+ }
19
+ export function serializeCoordinationSignatureContext(ctx) {
20
+ return serializeToBuffer([
21
+ ctx.chainId,
22
+ ctx.rollupAddress
23
+ ]);
24
+ }
25
+ export function readCoordinationSignatureContext(reader) {
26
+ const chainId = reader.readNumber();
27
+ const rollupAddress = reader.readObject(EthAddress);
28
+ return {
29
+ chainId,
30
+ rollupAddress
31
+ };
18
32
  }
19
33
  /**
20
- * Get the hashed payload for the signature of the `Signable` as an Ethereum signed message EIP-712
21
- * @param s - the `Signable` to sign
22
- * @returns The hashed payload for the signature of the `Signable` as an Ethereum signed message
23
- */ export function getHashedSignaturePayloadEthSignedMessage(s, domainSeparator) {
24
- const payload = getHashedSignaturePayload(s, domainSeparator);
25
- return makeEthSignDigest(payload);
34
+ * Returns true if the signable carries a context matching the node's expected context.
35
+ * Use this at the P2P ingress boundary to reject foreign-chain messages cheaply before
36
+ * performing any signature recovery.
37
+ */ export function hasValidSignatureContext(signable, expected) {
38
+ return coordinationSignatureContextEquals(signable.signatureContext, expected);
39
+ }
40
+ const COORDINATION_SIGNATURE_NAME = 'Aztec Rollup';
41
+ const COORDINATION_SIGNATURE_VERSION = '1';
42
+ const EIP712_DOMAIN_FIELDS = [
43
+ {
44
+ name: 'name',
45
+ type: 'string'
46
+ },
47
+ {
48
+ name: 'version',
49
+ type: 'string'
50
+ },
51
+ {
52
+ name: 'chainId',
53
+ type: 'uint256'
54
+ },
55
+ {
56
+ name: 'verifyingContract',
57
+ type: 'address'
58
+ }
59
+ ];
60
+ const COORDINATION_SIGNATURE_TYPES = {
61
+ EIP712Domain: EIP712_DOMAIN_FIELDS,
62
+ BlockProposal: [
63
+ {
64
+ name: 'payloadHash',
65
+ type: 'bytes32'
66
+ }
67
+ ],
68
+ CheckpointProposal: [
69
+ {
70
+ name: 'payloadHash',
71
+ type: 'bytes32'
72
+ }
73
+ ],
74
+ CheckpointAttestation: [
75
+ {
76
+ name: 'payloadHash',
77
+ type: 'bytes32'
78
+ }
79
+ ],
80
+ AttestationsAndSigners: [
81
+ {
82
+ name: 'payloadHash',
83
+ type: 'bytes32'
84
+ }
85
+ ],
86
+ SignedTxs: [
87
+ {
88
+ name: 'payloadHash',
89
+ type: 'bytes32'
90
+ }
91
+ ]
92
+ };
93
+ export function getCoordinationSignatureTypedDataForPayloadHash(payloadHash, type, context) {
94
+ return {
95
+ domain: {
96
+ name: COORDINATION_SIGNATURE_NAME,
97
+ version: COORDINATION_SIGNATURE_VERSION,
98
+ chainId: context.chainId,
99
+ verifyingContract: context.rollupAddress.toString()
100
+ },
101
+ types: COORDINATION_SIGNATURE_TYPES,
102
+ primaryType: type,
103
+ message: {
104
+ payloadHash: payloadHash.toString()
105
+ }
106
+ };
107
+ }
108
+ export function getCoordinationSignatureTypedData(signable) {
109
+ const payloadHash = getHashedSignaturePayload(signable);
110
+ return getCoordinationSignatureTypedDataForPayloadHash(payloadHash, signable.primaryType, signable.signatureContext);
111
+ }
112
+ export function getHashedSignaturePayloadTypedData(signable) {
113
+ return Buffer32.fromString(hashTypedData(getCoordinationSignatureTypedData(signable)));
114
+ }
115
+ export function recoverCoordinationSigner(signable, signature) {
116
+ const digest = getHashedSignaturePayloadTypedData(signable);
117
+ return tryRecoverAddress(digest, signature, {
118
+ allowYParityAsV: true
119
+ });
120
+ }
121
+ export function getHashedSignaturePayload(s) {
122
+ return Buffer32.fromBuffer(keccak256(s.getPayloadToSign()));
26
123
  }
@@ -1,42 +1,44 @@
1
- import { Buffer32 } from '@aztec/foundation/buffer';
2
1
  import type { EthAddress } from '@aztec/foundation/eth-address';
3
2
  import { Signature } from '@aztec/foundation/eth-signature';
4
3
  import { BufferReader } from '@aztec/foundation/serialize';
4
+ import type { TypedDataDefinition } from 'viem';
5
5
  import { Tx } from '../tx/tx.js';
6
- import { SignatureDomainSeparator } from './signature_utils.js';
6
+ import { type CoordinationSignatureContext, type CoordinationSignatureType, type Signable } from './signature_utils.js';
7
7
  /**
8
8
  * A signed collection of transactions.
9
9
  * The signature is over the transaction objects themselves, providing
10
10
  * data availability guarantees beyond just the transaction hashes.
11
11
  */
12
- export declare class SignedTxs {
12
+ export declare class SignedTxs implements Signable {
13
13
  /** The transactions */
14
14
  readonly txs: Tx[];
15
15
  /** The proposer's signature over the transactions */
16
16
  readonly signature: Signature;
17
- private sender;
17
+ /** The signing domain (chainId + rollupAddress) the signature is bound to */
18
+ readonly signatureContext: CoordinationSignatureContext;
19
+ readonly primaryType: CoordinationSignatureType;
20
+ private cachedSender;
18
21
  constructor(
19
22
  /** The transactions */
20
23
  txs: Tx[],
21
24
  /** The proposer's signature over the transactions */
22
- signature: Signature);
25
+ signature: Signature,
26
+ /** The signing domain (chainId + rollupAddress) the signature is bound to */
27
+ signatureContext: CoordinationSignatureContext);
28
+ getPayloadToSign(): Buffer;
23
29
  /**
24
- * Get the payload to sign for this signed txs.
25
- */
26
- getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
27
- /**
28
- * Lazily evaluate the sender of the signed txs; result is cached
30
+ * Lazily evaluate the sender of the signed txs; result is cached.
29
31
  * @returns The sender address, or undefined if signature recovery fails
30
32
  */
31
33
  getSender(): EthAddress | undefined;
32
34
  /**
33
- * Create SignedTxs from a signer function
35
+ * Create SignedTxs from a typed-data signer function
34
36
  */
35
- static createFromSigner(txs: Tx[], payloadSigner: (payload: Buffer32) => Promise<Signature>): Promise<SignedTxs>;
37
+ static createFromSigner(txs: Tx[], signatureContext: CoordinationSignatureContext, typedDataSigner: (typedData: TypedDataDefinition) => Promise<Signature>): Promise<SignedTxs>;
36
38
  toBuffer(): Buffer;
37
39
  static fromBuffer(buf: Buffer | BufferReader): SignedTxs;
38
40
  getSize(): number;
39
41
  static empty(): SignedTxs;
40
42
  static random(): SignedTxs;
41
43
  }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVkX3R4cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9zaWduZWRfdHhzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUc5RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFDTCx3QkFBd0IsRUFHekIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5Qjs7OztHQUlHO0FBQ0gscUJBQWEsU0FBUztJQUlsQix1QkFBdUI7YUFDUCxHQUFHLEVBQUUsRUFBRSxFQUFFO0lBQ3pCLHFEQUFxRDthQUNyQyxTQUFTLEVBQUUsU0FBUztJQU50QyxPQUFPLENBQUMsTUFBTSxDQUF5QjtJQUV2QztJQUNFLHVCQUF1QjtJQUNQLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDekIscURBQXFEO0lBQ3JDLFNBQVMsRUFBRSxTQUFTLEVBQ2xDO0lBRUo7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsd0JBQXdCLEdBQUcsTUFBTSxDQUVsRTtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLEdBQUcsU0FBUyxDQU1sQztJQUVEOztPQUVHO0lBQ0gsT0FBYSxnQkFBZ0IsQ0FDM0IsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUNULGFBQWEsRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLEtBQUssT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUN2RCxPQUFPLENBQUMsU0FBUyxDQUFDLENBS3BCO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFNBQVMsQ0FTdkQ7SUFFRCxPQUFPLElBQUksTUFBTSxDQUVoQjtJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksU0FBUyxDQUV4QjtJQUVELE1BQU0sQ0FBQyxNQUFNLElBQUksU0FBUyxDQUV6QjtDQUNGIn0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVkX3R4cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9zaWduZWRfdHhzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBRTlFLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2hELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUNMLEtBQUssNEJBQTRCLEVBQ2pDLEtBQUsseUJBQXlCLEVBRTlCLEtBQUssUUFBUSxFQUtkLE1BQU0sc0JBQXNCLENBQUM7QUFFOUI7Ozs7R0FJRztBQUNILHFCQUFhLFNBQVUsWUFBVyxRQUFRO0lBTXRDLHVCQUF1QjthQUNQLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDekIscURBQXFEO2FBQ3JDLFNBQVMsRUFBRSxTQUFTO0lBQ3BDLDZFQUE2RTthQUM3RCxnQkFBZ0IsRUFBRSw0QkFBNEI7SUFWaEUsUUFBUSxDQUFDLFdBQVcsRUFBRSx5QkFBeUIsQ0FBZTtJQUU5RCxPQUFPLENBQUMsWUFBWSxDQUE0QztJQUVoRTtJQUNFLHVCQUF1QjtJQUNQLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDekIscURBQXFEO0lBQ3JDLFNBQVMsRUFBRSxTQUFTO0lBQ3BDLDZFQUE2RTtJQUM3RCxnQkFBZ0IsRUFBRSw0QkFBNEIsRUFDNUQ7SUFFSixnQkFBZ0IsSUFBSSxNQUFNLENBRXpCO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxJQUFJLFVBQVUsR0FBRyxTQUFTLENBS2xDO0lBRUQ7O09BRUc7SUFDSCxPQUFhLGdCQUFnQixDQUMzQixHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQ1QsZ0JBQWdCLEVBQUUsNEJBQTRCLEVBQzlDLGVBQWUsRUFBRSxDQUFDLFNBQVMsRUFBRSxtQkFBbUIsS0FBSyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQ3RFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FLcEI7SUFFRCxRQUFRLElBQUksTUFBTSxDQU9qQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsU0FBUyxDQVV2RDtJQUVELE9BQU8sSUFBSSxNQUFNLENBUWhCO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxTQUFTLENBRXhCO0lBRUQsTUFBTSxDQUFDLE1BQU0sSUFBSSxTQUFTLENBRXpCO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"signed_txs.d.ts","sourceRoot":"","sources":["../../src/p2p/signed_txs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAG9E,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,wBAAwB,EAGzB,MAAM,sBAAsB,CAAC;AAE9B;;;;GAIG;AACH,qBAAa,SAAS;IAIlB,uBAAuB;aACP,GAAG,EAAE,EAAE,EAAE;IACzB,qDAAqD;aACrC,SAAS,EAAE,SAAS;IANtC,OAAO,CAAC,MAAM,CAAyB;IAEvC;IACE,uBAAuB;IACP,GAAG,EAAE,EAAE,EAAE;IACzB,qDAAqD;IACrC,SAAS,EAAE,SAAS,EAClC;IAEJ;;OAEG;IACH,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM,CAElE;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,GAAG,SAAS,CAMlC;IAED;;OAEG;IACH,OAAa,gBAAgB,CAC3B,GAAG,EAAE,EAAE,EAAE,EACT,aAAa,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC,GACvD,OAAO,CAAC,SAAS,CAAC,CAKpB;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CASvD;IAED,OAAO,IAAI,MAAM,CAEhB;IAED,MAAM,CAAC,KAAK,IAAI,SAAS,CAExB;IAED,MAAM,CAAC,MAAM,IAAI,SAAS,CAEzB;CACF"}
1
+ {"version":3,"file":"signed_txs.d.ts","sourceRoot":"","sources":["../../src/p2p/signed_txs.ts"],"names":[],"mappings":"AAAA,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;AAE9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAGhD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAE9B,KAAK,QAAQ,EAKd,MAAM,sBAAsB,CAAC;AAE9B;;;;GAIG;AACH,qBAAa,SAAU,YAAW,QAAQ;IAMtC,uBAAuB;aACP,GAAG,EAAE,EAAE,EAAE;IACzB,qDAAqD;aACrC,SAAS,EAAE,SAAS;IACpC,6EAA6E;aAC7D,gBAAgB,EAAE,4BAA4B;IAVhE,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAe;IAE9D,OAAO,CAAC,YAAY,CAA4C;IAEhE;IACE,uBAAuB;IACP,GAAG,EAAE,EAAE,EAAE;IACzB,qDAAqD;IACrC,SAAS,EAAE,SAAS;IACpC,6EAA6E;IAC7D,gBAAgB,EAAE,4BAA4B,EAC5D;IAEJ,gBAAgB,IAAI,MAAM,CAEzB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,GAAG,SAAS,CAKlC;IAED;;OAEG;IACH,OAAa,gBAAgB,CAC3B,GAAG,EAAE,EAAE,EAAE,EACT,gBAAgB,EAAE,4BAA4B,EAC9C,eAAe,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,OAAO,CAAC,SAAS,CAAC,GACtE,OAAO,CAAC,SAAS,CAAC,CAKpB;IAED,QAAQ,IAAI,MAAM,CAOjB;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAUvD;IAED,OAAO,IAAI,MAAM,CAQhB;IAED,MAAM,CAAC,KAAK,IAAI,SAAS,CAExB;IAED,MAAM,CAAC,MAAM,IAAI,SAAS,CAEzB;CACF"}
@@ -1,9 +1,8 @@
1
- import { tryRecoverAddress } from '@aztec/foundation/crypto/secp256k1-signer';
2
1
  import { Signature } from '@aztec/foundation/eth-signature';
3
2
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
3
  import { MAX_TXS_PER_BLOCK } from '../deserialization/index.js';
5
4
  import { Tx } from '../tx/tx.js';
6
- import { SignatureDomainSeparator, getHashedSignaturePayload, getHashedSignaturePayloadEthSignedMessage } from './signature_utils.js';
5
+ import { EMPTY_COORDINATION_SIGNATURE_CONTEXT, getCoordinationSignatureTypedData, readCoordinationSignatureContext, recoverCoordinationSigner, serializeCoordinationSignatureContext } from './signature_utils.js';
7
6
  /**
8
7
  * A signed collection of transactions.
9
8
  * The signature is over the transaction objects themselves, providing
@@ -11,43 +10,45 @@ import { SignatureDomainSeparator, getHashedSignaturePayload, getHashedSignature
11
10
  */ export class SignedTxs {
12
11
  txs;
13
12
  signature;
14
- sender;
15
- constructor(/** The transactions */ txs, /** The proposer's signature over the transactions */ signature){
13
+ signatureContext;
14
+ primaryType;
15
+ cachedSender;
16
+ constructor(/** The transactions */ txs, /** The proposer's signature over the transactions */ signature, /** The signing domain (chainId + rollupAddress) the signature is bound to */ signatureContext){
16
17
  this.txs = txs;
17
18
  this.signature = signature;
19
+ this.signatureContext = signatureContext;
20
+ this.primaryType = 'SignedTxs';
21
+ this.cachedSender = undefined;
18
22
  }
19
- /**
20
- * Get the payload to sign for this signed txs.
21
- */ getPayloadToSign(domainSeparator) {
23
+ getPayloadToSign() {
22
24
  return serializeToBuffer([
23
- domainSeparator,
24
25
  this.txs.length,
25
26
  this.txs
26
27
  ]);
27
28
  }
28
29
  /**
29
- * Lazily evaluate the sender of the signed txs; result is cached
30
+ * Lazily evaluate the sender of the signed txs; result is cached.
30
31
  * @returns The sender address, or undefined if signature recovery fails
31
32
  */ getSender() {
32
- if (!this.sender) {
33
- const hashed = getHashedSignaturePayloadEthSignedMessage(this, SignatureDomainSeparator.signedTxs);
34
- this.sender = tryRecoverAddress(hashed, this.signature);
33
+ if (this.cachedSender === undefined) {
34
+ this.cachedSender = recoverCoordinationSigner(this, this.signature) ?? null;
35
35
  }
36
- return this.sender;
36
+ return this.cachedSender ?? undefined;
37
37
  }
38
38
  /**
39
- * Create SignedTxs from a signer function
40
- */ static async createFromSigner(txs, payloadSigner) {
41
- const tempSignedTxs = new SignedTxs(txs, Signature.empty());
42
- const hashed = getHashedSignaturePayload(tempSignedTxs, SignatureDomainSeparator.signedTxs);
43
- const signature = await payloadSigner(hashed);
44
- return new SignedTxs(txs, signature);
39
+ * Create SignedTxs from a typed-data signer function
40
+ */ static async createFromSigner(txs, signatureContext, typedDataSigner) {
41
+ const tempSignedTxs = new SignedTxs(txs, Signature.empty(), signatureContext);
42
+ const typedData = getCoordinationSignatureTypedData(tempSignedTxs);
43
+ const signature = await typedDataSigner(typedData);
44
+ return new SignedTxs(txs, signature, signatureContext);
45
45
  }
46
46
  toBuffer() {
47
47
  return serializeToBuffer([
48
48
  this.txs.length,
49
49
  this.txs,
50
- this.signature
50
+ this.signature,
51
+ serializeCoordinationSignatureContext(this.signatureContext)
51
52
  ]);
52
53
  }
53
54
  static fromBuffer(buf) {
@@ -58,18 +59,19 @@ import { SignatureDomainSeparator, getHashedSignaturePayload, getHashedSignature
58
59
  }
59
60
  const txs = reader.readArray(txCount, Tx);
60
61
  const signature = reader.readObject(Signature);
61
- return new SignedTxs(txs, signature);
62
+ const signatureContext = readCoordinationSignatureContext(reader);
63
+ return new SignedTxs(txs, signature, signatureContext);
62
64
  }
63
65
  getSize() {
64
- return 4 /* txs.length */ + this.txs.reduce((acc, tx)=>acc + tx.getSize(), 0) + this.signature.getSize();
66
+ return 4 /* txs.length */ + this.txs.reduce((acc, tx)=>acc + tx.getSize(), 0) + this.signature.getSize() + 4 /* chainId */ + 20 /* rollupAddress */ ;
65
67
  }
66
68
  static empty() {
67
- return new SignedTxs([], Signature.empty());
69
+ return new SignedTxs([], Signature.empty(), EMPTY_COORDINATION_SIGNATURE_CONTEXT);
68
70
  }
69
71
  static random() {
70
72
  return new SignedTxs([
71
73
  Tx.random(),
72
74
  Tx.random()
73
- ], Signature.random());
75
+ ], Signature.random(), EMPTY_COORDINATION_SIGNATURE_CONTEXT);
74
76
  }
75
77
  }
@@ -6,12 +6,16 @@ export declare class ParityBasePrivateInputs {
6
6
  readonly msgs: Tuple<Fr, typeof NUM_MSGS_PER_BASE_PARITY>;
7
7
  /** Root of the VK tree */
8
8
  readonly vkTreeRoot: Fr;
9
+ /** Prover identity committed to by the circuit, for sybil protection. */
10
+ readonly proverId: Fr;
9
11
  constructor(
10
12
  /** Aggregated proof of all the parity circuit iterations. */
11
13
  msgs: Tuple<Fr, typeof NUM_MSGS_PER_BASE_PARITY>,
12
14
  /** Root of the VK tree */
13
- vkTreeRoot: Fr);
14
- static fromSlice(array: Fr[], index: number, vkTreeRoot: Fr): ParityBasePrivateInputs;
15
+ vkTreeRoot: Fr,
16
+ /** Prover identity committed to by the circuit, for sybil protection. */
17
+ proverId: Fr);
18
+ static fromSlice(array: Fr[], index: number, vkTreeRoot: Fr, proverId: Fr): ParityBasePrivateInputs;
15
19
  /** Serializes the inputs to a buffer. */
16
20
  toBuffer(): Buffer<ArrayBufferLike>;
17
21
  /** Serializes the inputs to a hex string. */
@@ -30,6 +34,6 @@ export declare class ParityBasePrivateInputs {
30
34
  /** Returns a buffer representation for JSON serialization. */
31
35
  toJSON(): Buffer<ArrayBufferLike>;
32
36
  /** Creates an instance from a hex string. */
33
- static get schema(): import("zod").ZodType<ParityBasePrivateInputs, any, string>;
37
+ static get schema(): import("zod").ZodType<ParityBasePrivateInputs, string, import("zod/v4/core").$ZodTypeInternals<ParityBasePrivateInputs, string>>;
34
38
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyaXR5X2Jhc2VfcHJpdmF0ZV9pbnB1dHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJpdHkvcGFyaXR5X2Jhc2VfcHJpdmF0ZV9pbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1Qyx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssS0FBSyxFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBRzFGLHFCQUFhLHVCQUF1QjtJQUVoQyw2REFBNkQ7YUFDN0MsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUNoRSwwQkFBMEI7YUFDVixVQUFVLEVBQUUsRUFBRTtJQUpoQztJQUNFLDZEQUE2RDtJQUM3QyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLHdCQUF3QixDQUFDO0lBQ2hFLDBCQUEwQjtJQUNWLFVBQVUsRUFBRSxFQUFFLEVBQzVCO0lBRUosT0FBYyxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsR0FBRyx1QkFBdUIsQ0FXM0Y7SUFFRCx5Q0FBeUM7SUFDekMsUUFBUSw0QkFFUDtJQUVELDZDQUE2QztJQUM3QyxRQUFRLGtCQUVQO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksMkJBRzlDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sMkJBRTVCO0lBRUQsOERBQThEO0lBQzlELE1BQU0sNEJBRUw7SUFFRCw2Q0FBNkM7SUFDN0MsTUFBTSxLQUFLLE1BQU0sZ0VBRWhCO0NBQ0YifQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyaXR5X2Jhc2VfcHJpdmF0ZV9pbnB1dHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJpdHkvcGFyaXR5X2Jhc2VfcHJpdmF0ZV9pbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1Qyx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssS0FBSyxFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBRzFGLHFCQUFhLHVCQUF1QjtJQUVoQyw2REFBNkQ7YUFDN0MsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUNoRSwwQkFBMEI7YUFDVixVQUFVLEVBQUUsRUFBRTtJQUM5Qix5RUFBeUU7YUFDekQsUUFBUSxFQUFFLEVBQUU7SUFOOUI7SUFDRSw2REFBNkQ7SUFDN0MsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUNoRSwwQkFBMEI7SUFDVixVQUFVLEVBQUUsRUFBRTtJQUM5Qix5RUFBeUU7SUFDekQsUUFBUSxFQUFFLEVBQUUsRUFDMUI7SUFFSixPQUFjLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsdUJBQXVCLENBV3pHO0lBRUQseUNBQXlDO0lBQ3pDLFFBQVEsNEJBRVA7SUFFRCw2Q0FBNkM7SUFDN0MsUUFBUSxrQkFFUDtJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLDJCQU85QztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLDJCQUU1QjtJQUVELDhEQUE4RDtJQUM5RCxNQUFNLDRCQUVMO0lBRUQsNkNBQTZDO0lBQzdDLE1BQU0sS0FBSyxNQUFNLHFJQUVoQjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"parity_base_private_inputs.d.ts","sourceRoot":"","sources":["../../src/parity/parity_base_private_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAG1F,qBAAa,uBAAuB;IAEhC,6DAA6D;aAC7C,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAChE,0BAA0B;aACV,UAAU,EAAE,EAAE;IAJhC;IACE,6DAA6D;IAC7C,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAChE,0BAA0B;IACV,UAAU,EAAE,EAAE,EAC5B;IAEJ,OAAc,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,uBAAuB,CAW3F;IAED,yCAAyC;IACzC,QAAQ,4BAEP;IAED,6CAA6C;IAC7C,QAAQ,kBAEP;IAED;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,2BAG9C;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,2BAE5B;IAED,8DAA8D;IAC9D,MAAM,4BAEL;IAED,6CAA6C;IAC7C,MAAM,KAAK,MAAM,gEAEhB;CACF"}
1
+ {"version":3,"file":"parity_base_private_inputs.d.ts","sourceRoot":"","sources":["../../src/parity/parity_base_private_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAG1F,qBAAa,uBAAuB;IAEhC,6DAA6D;aAC7C,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAChE,0BAA0B;aACV,UAAU,EAAE,EAAE;IAC9B,yEAAyE;aACzD,QAAQ,EAAE,EAAE;IAN9B;IACE,6DAA6D;IAC7C,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAChE,0BAA0B;IACV,UAAU,EAAE,EAAE;IAC9B,yEAAyE;IACzD,QAAQ,EAAE,EAAE,EAC1B;IAEJ,OAAc,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,uBAAuB,CAWzG;IAED,yCAAyC;IACzC,QAAQ,4BAEP;IAED,6CAA6C;IAC7C,QAAQ,kBAEP;IAED;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,2BAO9C;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,2BAE5B;IAED,8DAA8D;IAC9D,MAAM,4BAEL;IAED,6CAA6C;IAC7C,MAAM,KAAK,MAAM,qIAEhB;CACF"}
@@ -6,11 +6,13 @@ import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
6
6
  export class ParityBasePrivateInputs {
7
7
  msgs;
8
8
  vkTreeRoot;
9
- constructor(/** Aggregated proof of all the parity circuit iterations. */ msgs, /** Root of the VK tree */ vkTreeRoot){
9
+ proverId;
10
+ constructor(/** Aggregated proof of all the parity circuit iterations. */ msgs, /** Root of the VK tree */ vkTreeRoot, /** Prover identity committed to by the circuit, for sybil protection. */ proverId){
10
11
  this.msgs = msgs;
11
12
  this.vkTreeRoot = vkTreeRoot;
13
+ this.proverId = proverId;
12
14
  }
13
- static fromSlice(array, index, vkTreeRoot) {
15
+ static fromSlice(array, index, vkTreeRoot, proverId) {
14
16
  // Can't use Tuple<Fr, typeof NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP> due to length
15
17
  if (array.length !== NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP) {
16
18
  throw new Error(`Msgs array length must be NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP=${NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP}`);
@@ -18,10 +20,10 @@ export class ParityBasePrivateInputs {
18
20
  const start = index * NUM_MSGS_PER_BASE_PARITY;
19
21
  const end = start + NUM_MSGS_PER_BASE_PARITY;
20
22
  const msgs = array.slice(start, end);
21
- return new ParityBasePrivateInputs(msgs, vkTreeRoot);
23
+ return new ParityBasePrivateInputs(msgs, vkTreeRoot, proverId);
22
24
  }
23
25
  /** Serializes the inputs to a buffer. */ toBuffer() {
24
- return serializeToBuffer(this.msgs, this.vkTreeRoot);
26
+ return serializeToBuffer(this.msgs, this.vkTreeRoot, this.proverId);
25
27
  }
26
28
  /** Serializes the inputs to a hex string. */ toString() {
27
29
  return bufferToHex(this.toBuffer());
@@ -31,7 +33,7 @@ export class ParityBasePrivateInputs {
31
33
  * @param buffer - The buffer to deserialize from.
32
34
  */ static fromBuffer(buffer) {
33
35
  const reader = BufferReader.asReader(buffer);
34
- return new ParityBasePrivateInputs(reader.readArray(NUM_MSGS_PER_BASE_PARITY, Fr), Fr.fromBuffer(reader));
36
+ return new ParityBasePrivateInputs(reader.readArray(NUM_MSGS_PER_BASE_PARITY, Fr), Fr.fromBuffer(reader), Fr.fromBuffer(reader));
35
37
  }
36
38
  /**
37
39
  * Deserializes the inputs from a hex string.